##// END OF EJS Templates
Merge branch beta into stable
marcink -
r2854:d998cc84 merge rhodecode-0.0.1.4.2 default
parent child Browse files
Show More
@@ -9,6 +9,10 b' env:'
9 9 - TEST_DB=mysql://root@127.0.0.1/rhodecode_test
10 10 - TEST_DB=postgresql://postgres@127.0.0.1/rhodecode_test
11 11
12 services:
13 - mysql
14 - postgresql
15
12 16 # command to install dependencies
13 17 before_script:
14 18 - mysql -e 'create database rhodecode_test;'
@@ -23,4 +23,5 b' List of contributors to RhodeCode projec'
23 23 Takumi IINO <trot.thunder@gmail.com>
24 24 Indra Talip <indra.talip@gmail.com>
25 25 James Rhodes <jrhodes@redpointsoftware.com.au>
26 Dominik Ruf <dominikruf@gmail.com> No newline at end of file
26 Dominik Ruf <dominikruf@gmail.com>
27 xpol <xpolife@gmail.com> No newline at end of file
@@ -69,6 +69,8 b' use_gravatar = true'
69 69 ## {email} user email
70 70 ## {md5email} md5 hash of the user email (like at gravatar.com)
71 71 ## {size} size of the image that is expected from the server application
72 ## {scheme} http/https from RhodeCode server
73 ## {netloc} network location from RhodeCode server
72 74 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
73 75 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
74 76
@@ -5,11 +5,32 b' Changelog'
5 5 =========
6 6
7 7
8 1.4.1 (**2012-09-07**)
8 1.4.2 (**2012-09-12**)
9 9 ----------------------
10 10
11 :status: in-progress
12 :branch: beta
11 news
12 ++++
13
14 - added option to menu to quick lock/unlock repository for users that have
15 write access to
16 - Implemented permissions for writing to repo
17 groups. Now only write access to group allows to create a repostiory
18 within that group
19 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
20 - updated translation for zh_CN
21
22 fixes
23 +++++
24
25 - fixed visual permissions check on repos groups inside groups
26 - fixed issues with non-ascii search terms in search, and indexers
27 - fixed parsing of page number in GET parameters
28 - fixed issues with generating pull-request overview for repos with
29 bookmarks and tags, also preview doesn't loose chosen revision from
30 select dropdown
31
32 1.4.1 (**2012-09-07**)
33 ----------------------
13 34
14 35 news
15 36 ++++
@@ -7,9 +7,15 b' Step by step Installation for Windows'
7 7
8 8 RhodeCode step-by-step install Guide for Windows
9 9
10 Target OS: Windows XP SP3 English (Clean installation)
10 Target OS: Windows XP SP3 32bit English (Clean installation)
11 11 + All Windows Updates until 24-may-2012
12 12
13 .. note::
14
15 This installation is for 32bit systems, for 64bit windows you might need
16 to download proper 64bit version of "Windows Installer" and Win32py
17 extensions
18
13 19 Step1 - Install Visual Studio 2008 Express
14 20 ------------------------------------------
15 21
@@ -69,6 +69,8 b' use_gravatar = true'
69 69 ## {email} user email
70 70 ## {md5email} md5 hash of the user email (like at gravatar.com)
71 71 ## {size} size of the image that is expected from the server application
72 ## {scheme} http/https from RhodeCode server
73 ## {netloc} network location from RhodeCode server
72 74 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
73 75 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
74 76
@@ -26,7 +26,7 b''
26 26 import sys
27 27 import platform
28 28
29 VERSION = (1, 4, 1)
29 VERSION = (1, 4, 2)
30 30
31 31 try:
32 32 from rhodecode.lib import get_current_revision
@@ -69,6 +69,8 b' use_gravatar = true'
69 69 ## {email} user email
70 70 ## {md5email} md5 hash of the user email (like at gravatar.com)
71 71 ## {size} size of the image that is expected from the server application
72 ## {scheme} http/https from RhodeCode server
73 ## {netloc} network location from RhodeCode server
72 74 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
73 75 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
74 76
@@ -141,6 +141,7 b' def make_map(config):'
141 141 m.connect('repo_locking', "/repo_locking/{repo_name:.*?}",
142 142 action="repo_locking", conditions=dict(method=["PUT"],
143 143 function=check_repo))
144
144 145 with rmap.submapper(path_prefix=ADMIN_PREFIX,
145 146 controller='admin/repos_groups') as m:
146 147 m.connect("repos_groups", "/repos_groups",
@@ -561,6 +562,10 b' def make_map(config):'
561 562 controller='settings', action='index',
562 563 conditions=dict(function=check_repo))
563 564
565 rmap.connect('toggle_locking', "/{repo_name:.*?}/locking_toggle",
566 controller='settings', action="toggle_locking",
567 conditions=dict(method=["GET"], function=check_repo))
568
564 569 rmap.connect('repo_fork_create_home', '/{repo_name:.*?}/fork',
565 570 controller='forks', action='fork_create',
566 571 conditions=dict(function=check_repo, method=["POST"]))
@@ -32,6 +32,7 b' from webhelpers.paginate import Page'
32 32 from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator
33 33 from rhodecode.lib.base import BaseController, render
34 34 from rhodecode.model.db import UserLog
35 from rhodecode.lib.utils2 import safe_int
35 36
36 37 log = logging.getLogger(__name__)
37 38
@@ -50,7 +51,7 b' class AdminController(BaseController):'
50 51 .options(joinedload(UserLog.repository))\
51 52 .order_by(UserLog.action_date.desc())
52 53
53 p = int(request.params.get('page', 1))
54 p = safe_int(request.params.get('page', 1), 1)
54 55 c.users_log = Page(users_log, page=p, items_per_page=10)
55 56 c.log_data = render('admin/admin_log.html')
56 57
@@ -39,6 +39,7 b' from rhodecode.model.notification import'
39 39 from rhodecode.lib.auth import LoginRequired, NotAnonymous
40 40 from rhodecode.lib import helpers as h
41 41 from rhodecode.model.meta import Session
42 from rhodecode.lib.utils2 import safe_int
42 43
43 44
44 45 log = logging.getLogger(__name__)
@@ -62,7 +63,8 b' class NotificationsController(BaseContro'
62 63 c.user = self.rhodecode_user
63 64 notif = NotificationModel().get_for_user(self.rhodecode_user.user_id,
64 65 filter_=request.GET.getall('type'))
65 p = int(request.params.get('page', 1))
66
67 p = safe_int(request.params.get('page', 1), 1)
66 68 c.notifications = Page(notif, page=p, items_per_page=10)
67 69 c.pull_request_type = Notification.TYPE_PULL_REQUEST
68 70 c.comment_type = [Notification.TYPE_CHANGESET_COMMENT,
@@ -66,7 +66,7 b' class ReposController(BaseController):'
66 66 super(ReposController, self).__before__()
67 67
68 68 def __load_defaults(self):
69 c.repo_groups = RepoGroup.groups_choices()
69 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
70 70 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
71 71
72 72 repo_model = RepoModel()
@@ -292,9 +292,9 b' class ReposGroupsController(BaseControll'
292 292
293 293 c.repo_cnt = 0
294 294
295 c.groups = RepoGroup.query().order_by(RepoGroup.group_name)\
295 groups = RepoGroup.query().order_by(RepoGroup.group_name)\
296 296 .filter(RepoGroup.group_parent_id == id).all()
297
297 c.groups = self.scm_model.get_repos_groups(groups)
298 298 return render('admin/repos_groups/repos_groups.html')
299 299
300 300 @HasPermissionAnyDecorator('hg.admin')
@@ -256,14 +256,31 b' class SettingsController(BaseController)'
256 256
257 257 ## EXTENSIONS
258 258 sett = RhodeCodeUi.get_by_key('largefiles')
259 if not sett:
260 #make one if it's not there !
261 sett = RhodeCodeUi()
262 sett.ui_key = 'largefiles'
263 sett.ui_section = 'extensions'
259 264 sett.ui_active = form_result[_f('extensions_largefiles')]
260 265 Session().add(sett)
261 266
262 267 sett = RhodeCodeUi.get_by_key('hgsubversion')
268 if not sett:
269 #make one if it's not there !
270 sett = RhodeCodeUi()
271 sett.ui_key = 'hgsubversion'
272 sett.ui_section = 'extensions'
273
263 274 sett.ui_active = form_result[_f('extensions_hgsubversion')]
264 275 Session().add(sett)
265 276
266 277 # sett = RhodeCodeUi.get_by_key('hggit')
278 # if not sett:
279 # #make one if it's not there !
280 # sett = RhodeCodeUi()
281 # sett.ui_key = 'hggit'
282 # sett.ui_section = 'extensions'
283 #
267 284 # sett.ui_active = form_result[_f('extensions_hggit')]
268 285 # Session().add(sett)
269 286
@@ -451,7 +468,7 b' class SettingsController(BaseController)'
451 468 def create_repository(self):
452 469 """GET /_admin/create_repository: Form to create a new item"""
453 470
454 c.repo_groups = RepoGroup.groups_choices()
471 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
455 472 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
456 473 choices, c.landing_revs = ScmModel().get_repo_landing_revs()
457 474
@@ -37,6 +37,7 b' from rhodecode.lib.helpers import RepoPa'
37 37 from rhodecode.lib.compat import json
38 38 from rhodecode.lib.graphmod import _colored, _dagwalker
39 39 from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError
40 from rhodecode.lib.utils2 import safe_int
40 41
41 42 log = logging.getLogger(__name__)
42 43
@@ -65,7 +66,7 b' class ChangelogController(BaseRepoContro'
65 66 c.size = int(session.get('changelog_size', default))
66 67 # min size must be 1
67 68 c.size = max(c.size, 1)
68 p = int(request.params.get('page', 1))
69 p = safe_int(request.params.get('page', 1), 1)
69 70 branch_name = request.params.get('branch', None)
70 71 try:
71 72 if branch_name:
@@ -39,6 +39,7 b' from rhodecode.lib import diffs'
39 39
40 40 from rhodecode.model.db import Repository
41 41 from rhodecode.model.pull_request import PullRequestModel
42 from webob.exc import HTTPBadRequest
42 43
43 44 log = logging.getLogger(__name__)
44 45
@@ -51,10 +52,12 b' class CompareController(BaseRepoControll'
51 52 def __before__(self):
52 53 super(CompareController, self).__before__()
53 54
54 def __get_cs_or_redirect(self, rev, repo, redirect_after=True):
55 def __get_cs_or_redirect(self, rev, repo, redirect_after=True,
56 partial=False):
55 57 """
56 58 Safe way to get changeset if error occur it redirects to changeset with
57 proper message
59 proper message. If partial is set then don't do redirect raise Exception
60 instead
58 61
59 62 :param rev: revision to fetch
60 63 :param repo: repo instance
@@ -73,7 +76,9 b' class CompareController(BaseRepoControll'
73 76 except RepositoryError, e:
74 77 log.error(traceback.format_exc())
75 78 h.flash(str(e), category='warning')
79 if not partial:
76 80 redirect(h.url('summary_home', repo_name=repo.repo_name))
81 raise HTTPBadRequest()
77 82
78 83 def index(self, org_ref_type, org_ref, other_ref_type, other_ref):
79 84
@@ -97,9 +102,9 b' class CompareController(BaseRepoControll'
97 102 if c.org_repo.scm_instance.alias != 'hg':
98 103 log.error('Review not available for GIT REPOS')
99 104 raise HTTPNotFound
100
101 self.__get_cs_or_redirect(rev=org_ref, repo=org_repo)
102 self.__get_cs_or_redirect(rev=other_ref, repo=other_repo)
105 partial = request.environ.get('HTTP_X_PARTIAL_XHR')
106 self.__get_cs_or_redirect(rev=org_ref, repo=org_repo, partial=partial)
107 self.__get_cs_or_redirect(rev=other_ref, repo=other_repo, partial=partial)
103 108
104 109 c.cs_ranges, discovery_data = PullRequestModel().get_compare_data(
105 110 org_repo, org_ref, other_repo, other_ref
@@ -110,7 +115,7 b' class CompareController(BaseRepoControll'
110 115 c.target_repo = c.repo_name
111 116 # defines that we need hidden inputs with changesets
112 117 c.as_form = request.GET.get('as_form', False)
113 if request.environ.get('HTTP_X_PARTIAL_XHR'):
118 if partial:
114 119 return render('compare/compare_cs.html')
115 120
116 121 c.org_ref = org_ref[1]
@@ -30,6 +30,7 b' from rhodecode.lib.helpers import Page'
30 30 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
31 31 from rhodecode.lib.base import BaseRepoController, render
32 32 from rhodecode.model.db import Repository, User, UserFollowing
33 from rhodecode.lib.utils2 import safe_int
33 34
34 35 log = logging.getLogger(__name__)
35 36
@@ -43,7 +44,7 b' class FollowersController(BaseRepoContro'
43 44 super(FollowersController, self).__before__()
44 45
45 46 def followers(self, repo_name):
46 p = int(request.params.get('page', 1))
47 p = safe_int(request.params.get('page', 1), 1)
47 48 repo_id = c.rhodecode_db_repo.repo_id
48 49 d = UserFollowing.get_repo_followers(repo_id)\
49 50 .order_by(UserFollowing.follows_from)
@@ -42,6 +42,7 b' from rhodecode.model.db import Repositor'
42 42 from rhodecode.model.repo import RepoModel
43 43 from rhodecode.model.forms import RepoForkForm
44 44 from rhodecode.model.scm import ScmModel
45 from rhodecode.lib.utils2 import safe_int
45 46
46 47 log = logging.getLogger(__name__)
47 48
@@ -53,7 +54,7 b' class ForksController(BaseRepoController'
53 54 super(ForksController, self).__before__()
54 55
55 56 def __load_defaults(self):
56 c.repo_groups = RepoGroup.groups_choices()
57 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
57 58 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
58 59 choices, c.landing_revs = ScmModel().get_repo_landing_revs()
59 60 c.landing_revs_choices = choices
@@ -105,7 +106,7 b' class ForksController(BaseRepoController'
105 106 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
106 107 'repository.admin')
107 108 def forks(self, repo_name):
108 p = int(request.params.get('page', 1))
109 p = safe_int(request.params.get('page', 1), 1)
109 110 repo_id = c.rhodecode_db_repo.repo_id
110 111 d = []
111 112 for r in Repository.get_repo_forks(repo_id):
@@ -41,6 +41,7 b' from rhodecode.model.db import UserLog, '
41 41 from rhodecode.model.meta import Session
42 42 from sqlalchemy.sql.expression import func
43 43 from rhodecode.model.scm import ScmModel
44 from rhodecode.lib.utils2 import safe_int
44 45
45 46 log = logging.getLogger(__name__)
46 47
@@ -57,7 +58,7 b' class JournalController(BaseController):'
57 58 @NotAnonymous()
58 59 def index(self):
59 60 # Return a rendered template
60 p = int(request.params.get('page', 1))
61 p = safe_int(request.params.get('page', 1), 1)
61 62
62 63 c.user = User.get(self.rhodecode_user.user_id)
63 64 all_repos = self.sa.query(Repository)\
@@ -177,7 +178,7 b' class JournalController(BaseController):'
177 178 @LoginRequired()
178 179 def public_journal(self):
179 180 # Return a rendered template
180 p = int(request.params.get('page', 1))
181 p = safe_int(request.params.get('page', 1), 1)
181 182
182 183 c.following = self.sa.query(UserFollowing)\
183 184 .filter(UserFollowing.user_id == self.rhodecode_user.user_id)\
@@ -81,6 +81,19 b' class PullrequestsController(BaseRepoCon'
81 81
82 82 return hist_l
83 83
84 def _get_default_rev(self, repo):
85 """
86 Get's default revision to do compare on pull request
87
88 :param repo:
89 """
90 repo = repo.scm_instance
91 if 'default' in repo.branches:
92 return 'default'
93 else:
94 #if repo doesn't have default branch return first found
95 return repo.branches.keys()[0]
96
84 97 def show_all(self, repo_name):
85 98 c.pull_requests = PullRequestModel().get_all(repo_name)
86 99 c.repo_name = repo_name
@@ -106,7 +119,8 b' class PullrequestsController(BaseRepoCon'
106 119 # add org repo to other so we can open pull request agains itself
107 120 c.other_repos.extend(c.org_repos)
108 121
109 c.default_pull_request = org_repo.repo_name
122 c.default_pull_request = org_repo.repo_name # repo name pre-selected
123 c.default_pull_request_rev = self._get_default_rev(org_repo) # revision pre-selected
110 124 c.default_revs = self._get_repo_refs(org_repo.scm_instance)
111 125 #add orginal repo
112 126 other_repos_info[org_repo.repo_name] = {
@@ -130,6 +144,8 b' class PullrequestsController(BaseRepoCon'
130 144 #add parents of this fork also
131 145 if org_repo.parent:
132 146 c.default_pull_request = org_repo.parent.repo_name
147 c.default_pull_request_rev = self._get_default_rev(org_repo.parent)
148 c.default_revs = self._get_repo_refs(org_repo.parent.scm_instance)
133 149 c.other_repos.append((org_repo.parent.repo_name, '%s/%s' % (
134 150 org_repo.parent.user.username,
135 151 org_repo.parent.repo_name))
@@ -40,6 +40,7 b' from whoosh.index import open_dir, Empty'
40 40 from whoosh.qparser import QueryParser, QueryParserError
41 41 from whoosh.query import Phrase, Wildcard, Term, Prefix
42 42 from rhodecode.model.repo import RepoModel
43 from rhodecode.lib.utils2 import safe_str, safe_int
43 44
44 45 log = logging.getLogger(__name__)
45 46
@@ -82,7 +83,7 b' class SearchController(BaseController):'
82 83 log.debug(cur_query)
83 84
84 85 if c.cur_query:
85 p = int(request.params.get('page', 1))
86 p = safe_int(request.params.get('page', 1), 1)
86 87 highlight_items = set()
87 88 try:
88 89 idx = open_dir(config['app_conf']['index_dir'],
@@ -116,7 +117,7 b' class SearchController(BaseController):'
116 117
117 118 def url_generator(**kw):
118 119 return update_params("?q=%s&type=%s" \
119 % (c.cur_query, c.cur_type), **kw)
120 % (safe_str(c.cur_query), safe_str(c.cur_type)), **kw)
120 121 repo_location = RepoModel().repos_path
121 122 c.formated_results = Page(
122 123 WhooshResultWrapper(search_type, searcher, matcher,
@@ -35,13 +35,14 b' from pylons.i18n.translation import _'
35 35
36 36 import rhodecode.lib.helpers as h
37 37
38 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAllDecorator
38 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAllDecorator,\
39 HasRepoPermissionAnyDecorator
39 40 from rhodecode.lib.base import BaseRepoController, render
40 41 from rhodecode.lib.utils import invalidate_cache, action_logger
41 42
42 43 from rhodecode.model.forms import RepoSettingsForm
43 44 from rhodecode.model.repo import RepoModel
44 from rhodecode.model.db import RepoGroup
45 from rhodecode.model.db import RepoGroup, Repository
45 46 from rhodecode.model.meta import Session
46 47 from rhodecode.model.scm import ScmModel
47 48
@@ -55,7 +56,7 b' class SettingsController(BaseRepoControl'
55 56 super(SettingsController, self).__before__()
56 57
57 58 def __load_defaults(self):
58 c.repo_groups = RepoGroup.groups_choices()
59 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
59 60 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
60 61
61 62 repo_model = RepoModel()
@@ -109,7 +110,7 b' class SettingsController(BaseRepoControl'
109 110 changed_name = form_result['repo_name_full']
110 111 action_logger(self.rhodecode_user, 'user_updated_repo',
111 112 changed_name, self.ip_addr, self.sa)
112 Session.commit()
113 Session().commit()
113 114 except formencode.Invalid, errors:
114 115 c.repo_info = repo_model.get_by_repo_name(repo_name)
115 116 c.users_array = repo_model.get_users_js()
@@ -153,10 +154,38 b' class SettingsController(BaseRepoControl'
153 154 repo_model.delete(repo)
154 155 invalidate_cache('get_repo_cached_%s' % repo_name)
155 156 h.flash(_('deleted repository %s') % repo_name, category='success')
156 Session.commit()
157 Session().commit()
157 158 except Exception:
158 159 log.error(traceback.format_exc())
159 160 h.flash(_('An error occurred during deletion of %s') % repo_name,
160 161 category='error')
161 162
162 163 return redirect(url('home'))
164
165 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
166 def toggle_locking(self, repo_name):
167 """
168 Toggle locking of repository by simple GET call to url
169
170 :param repo_name:
171 """
172
173 try:
174 repo = Repository.get_by_repo_name(repo_name)
175
176 if repo.enable_locking:
177 if repo.locked[0]:
178 Repository.unlock(repo)
179 action = _('unlocked')
180 else:
181 Repository.lock(repo, c.rhodecode_user.user_id)
182 action = _('locked')
183
184 h.flash(_('Repository has been %s') % action,
185 category='success')
186 except Exception, e:
187 log.error(traceback.format_exc())
188 h.flash(_('An error occurred during unlocking'),
189 category='error')
190 return redirect(url('summary_home', repo_name=repo_name))
191
@@ -31,6 +31,7 b' from rhodecode.lib.auth import LoginRequ'
31 31 from rhodecode.lib.base import BaseRepoController, render
32 32 from rhodecode.lib.helpers import RepoPage
33 33 from pylons.controllers.util import redirect
34 from rhodecode.lib.utils2 import safe_int
34 35
35 36 log = logging.getLogger(__name__)
36 37
@@ -44,8 +45,8 b' class ShortlogController(BaseRepoControl'
44 45 super(ShortlogController, self).__before__()
45 46
46 47 def index(self, repo_name):
47 p = int(request.params.get('page', 1))
48 size = int(request.params.get('size', 20))
48 p = safe_int(request.params.get('page', 1), 1)
49 size = safe_int(request.params.get('size', 20), 20)
49 50
50 51 def url_generator(**kw):
51 52 return url('shortlog_home', repo_name=repo_name, size=size, **kw)
1 NO CONTENT: modified file, binary diff hidden
This diff has been collapsed as it changes many lines, (1278 lines changed) Show them Hide them
@@ -3,37 +3,40 b''
3 3 # This file is distributed under the same license as the RhodeCode project.
4 4 # FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
5 5 # mikespook <mikespook@gmail.com>, 2012.
6 # xpol <xpolife@gmail.com>, 2012.
6 7 msgid ""
7 8 msgstr ""
8 9 "Project-Id-Version: RhodeCode 1.2.0\n"
9 10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 11 "POT-Creation-Date: 2012-09-02 20:30+0200\n"
11 "PO-Revision-Date: 2012-04-05 17:37+0800\n"
12 "Last-Translator: mikespook <mikespook@gmail.com>\n"
12 "PO-Revision-Date: 2012-09-19 13:27+0800\n"
13 "Last-Translator: xpol <xpolife@gmail.com>\n"
13 14 "Language-Team: mikespook\n"
14 "Plural-Forms: nplurals=1; plural=0\n"
15 "Plural-Forms: nplurals=1; plural=0;\n"
15 16 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=utf-8\n"
17 "Content-Type: text/plain; charset=UTF-8\n"
17 18 "Content-Transfer-Encoding: 8bit\n"
18 19 "Generated-By: Babel 0.9.6\n"
20 "X-Generator: Poedit 1.5.3\n"
21 "X-Poedit-Basepath: E:\\home\\rhodecode\n"
22 "X-Poedit-SourceCharset: UTF-8\n"
19 23
20 24 #: rhodecode/controllers/changelog.py:94
21 #, fuzzy
22 25 msgid "All Branches"
23 msgstr "分支"
26 msgstr "所有分支"
24 27
25 28 #: rhodecode/controllers/changeset.py:83
26 29 msgid "show white space"
27 msgstr ""
30 msgstr "显示空白字符"
28 31
29 32 #: rhodecode/controllers/changeset.py:90 rhodecode/controllers/changeset.py:97
30 33 msgid "ignore white space"
31 msgstr ""
34 msgstr "忽略空白字符"
32 35
33 36 #: rhodecode/controllers/changeset.py:157
34 #, fuzzy, python-format
37 #, python-format
35 38 msgid "%s line context"
36 msgstr "文件内容"
39 msgstr "%s 行上下文"
37 40
38 41 #: rhodecode/controllers/changeset.py:333
39 42 #: rhodecode/controllers/changeset.py:348 rhodecode/lib/diffs.py:70
@@ -42,21 +45,21 b' msgstr "\xe4\xba\x8c\xe8\xbf\x9b\xe5\x88\xb6\xe6\x96\x87\xe4\xbb\xb6"'
42 45
43 46 #: rhodecode/controllers/changeset.py:408
44 47 msgid ""
45 "Changing status on a changeset associated witha closed pull request is "
46 "not allowed"
47 msgstr ""
48 "Changing status on a changeset associated witha closed pull request is not "
49 "allowed"
50 msgstr "不允许修改已关闭拉取请求的修订集状态"
48 51
49 52 #: rhodecode/controllers/compare.py:69
50 #, fuzzy
51 53 msgid "There are no changesets yet"
52 msgstr "没有任何变更"
54 msgstr "还没有修订集"
53 55
54 56 #: rhodecode/controllers/error.py:69
55 57 msgid "Home page"
56 58 msgstr "主页"
57 59
58 60 #: rhodecode/controllers/error.py:98
59 msgid "The request could not be understood by the server due to malformed syntax."
61 msgid ""
62 "The request could not be understood by the server due to malformed syntax."
60 63 msgstr "由于错误的语法,服务器无法对请求进行响应。"
61 64
62 65 #: rhodecode/controllers/error.py:101
@@ -88,24 +91,22 b' msgid "%s %s feed"'
88 91 msgstr "%s %s 订阅"
89 92
90 93 #: rhodecode/controllers/feed.py:75
91 #, fuzzy
92 94 msgid "commited on"
93 msgstr "提交"
95 msgstr "提交"
94 96
95 97 #: rhodecode/controllers/files.py:84
96 #, fuzzy
97 98 msgid "click here to add new file"
98 msgstr "添加新用户"
99 msgstr "点击此处添加新文件"
99 100
100 101 #: rhodecode/controllers/files.py:85
101 #, fuzzy, python-format
102 #, python-format
102 103 msgid "There are no files yet %s"
103 msgstr "尚无文件"
104 msgstr "还没有文件 %s"
104 105
105 106 #: rhodecode/controllers/files.py:239 rhodecode/controllers/files.py:299
106 107 #, python-format
107 108 msgid "This repository is has been locked by %s on %s"
108 msgstr ""
109 msgstr "版本库由 %s 于 %s 锁定"
109 110
110 111 #: rhodecode/controllers/files.py:266
111 112 #, python-format
@@ -126,19 +127,17 b' msgid "Error occurred during commit"'
126 127 msgstr "提交时发生错误"
127 128
128 129 #: rhodecode/controllers/files.py:318
129 #, fuzzy, python-format
130 #, python-format
130 131 msgid "Added %s via RhodeCode"
131 msgstr "通过 RhodeCode 修改了 %s"
132 msgstr "通过 RhodeCode 添加了 %s"
132 133
133 134 #: rhodecode/controllers/files.py:332
134 #, fuzzy
135 135 msgid "No content"
136 msgstr "文件内容"
136 msgstr "内容"
137 137
138 138 #: rhodecode/controllers/files.py:336
139 #, fuzzy
140 139 msgid "No filename"
141 msgstr "文件名"
140 msgstr "文件名"
142 141
143 142 #: rhodecode/controllers/files.py:378
144 143 msgid "downloads disabled"
@@ -161,7 +160,7 b' msgstr "\xe6\x9c\xaa\xe7\x9f\xa5\xe5\x8c\x85\xe7\xb1\xbb\xe5\x9e\x8b"'
161 160 #: rhodecode/templates/changeset/changeset_range.html:13
162 161 #: rhodecode/templates/changeset/changeset_range.html:31
163 162 msgid "Changesets"
164 msgstr "变更集"
163 msgstr "修订集"
165 164
166 165 #: rhodecode/controllers/files.py:495 rhodecode/controllers/pullrequests.py:72
167 166 #: rhodecode/controllers/summary.py:232 rhodecode/model/scm.py:543
@@ -176,18 +175,20 b' msgstr "\xe6\xa0\x87\xe7\xad\xbe"'
176 175 #: rhodecode/controllers/forks.py:73 rhodecode/controllers/admin/repos.py:90
177 176 #, python-format
178 177 msgid ""
179 "%s repository is not mapped to db perhaps it was created or renamed from "
180 "the filesystem please run the application again in order to rescan "
181 "repositories"
178 "%s repository is not mapped to db perhaps it was created or renamed from the "
179 "filesystem please run the application again in order to rescan repositories"
182 180 msgstr ""
181 "版本库 %s 没有映射到数据库,可能是从文件系统创建或者重命名,请重启 RhodeCode "
182 "以重新扫描版本库"
183 183
184 184 #: rhodecode/controllers/forks.py:133 rhodecode/controllers/settings.py:72
185 185 #, python-format
186 186 msgid ""
187 "%s repository is not mapped to db perhaps it was created or renamed from "
188 "the file system please run the application again in order to rescan "
189 "repositories"
187 "%s repository is not mapped to db perhaps it was created or renamed from the "
188 "file system please run the application again in order to rescan repositories"
190 189 msgstr ""
190 " 版本库 %s 没有映射到数据库,可能是从文件系统创建或者重命名,请重启 "
191 "RhodeCode 以重新扫描版本库"
191 192
192 193 #: rhodecode/controllers/forks.py:167
193 194 #, python-format
@@ -197,10 +198,9 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93 %s \xe8\xa2\xab\xe5\x88\x86\xe6\x94\xaf\xe5\x88\xb0 %s"'
197 198 #: rhodecode/controllers/forks.py:181
198 199 #, python-format
199 200 msgid "An error occurred during repository forking %s"
200 msgstr ""
201 msgstr "在分支版本库 %s 的时候发生错误"
201 202
202 203 #: rhodecode/controllers/journal.py:202 rhodecode/controllers/journal.py:239
203 #, fuzzy
204 204 msgid "public journal"
205 205 msgstr "公共日志"
206 206
@@ -219,37 +219,32 b' msgstr "\xe5\xaf\x86\xe7\xa0\x81\xe9\x87\x8d\xe7\xbd\xae\xe9\x93\xbe\xe6\x8e\xa5\xe5\xb7\xb2\xe7\xbb\x8f\xe5\x8f\x91\xe9\x80\x81"'
219 219
220 220 #: rhodecode/controllers/login.py:184
221 221 msgid ""
222 "Your password reset was successful, new password has been sent to your "
223 "email"
222 "Your password reset was successful, new password has been sent to your email"
224 223 msgstr "密码已经成功重置,新密码已经发送到你的邮箱"
225 224
226 225 #: rhodecode/controllers/pullrequests.py:74 rhodecode/model/scm.py:549
227 226 msgid "Bookmarks"
228 msgstr ""
227 msgstr "书签"
229 228
230 229 #: rhodecode/controllers/pullrequests.py:158
231 230 msgid "Pull request requires a title with min. 3 chars"
232 msgstr ""
231 msgstr "拉取请求的标题至少 3 个字符"
233 232
234 233 #: rhodecode/controllers/pullrequests.py:160
235 #, fuzzy
236 234 msgid "error during creation of pull request"
237 msgstr "提交时发生错误"
235 msgstr "提交拉取请求时发生错误"
238 236
239 237 #: rhodecode/controllers/pullrequests.py:181
240 #, fuzzy
241 238 msgid "Successfully opened new pull request"
242 msgstr "用户删除成功"
239 msgstr "成功提交拉取请求"
243 240
244 241 #: rhodecode/controllers/pullrequests.py:184
245 #, fuzzy
246 242 msgid "Error occurred during sending pull request"
247 msgstr "提交时发生错误"
243 msgstr "提交拉取请求时发生错误"
248 244
249 245 #: rhodecode/controllers/pullrequests.py:217
250 #, fuzzy
251 246 msgid "Successfully deleted pull request"
252 msgstr "用户删除成功"
247 msgstr "成功删除拉取请求"
253 248
254 249 #: rhodecode/controllers/search.py:131
255 250 msgid "Invalid search query. Try quoting it."
@@ -273,16 +268,17 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93 %s \xe6\x88\x90\xe5\x8a\x9f\xe6\x9b\xb4\xe6\x96\xb0"'
273 268 #: rhodecode/controllers/admin/repos.py:284
274 269 #, python-format
275 270 msgid "error occurred during update of repository %s"
276 msgstr ""
271 msgstr "在更新版本库 %s 的时候发生错误"
277 272
278 273 #: rhodecode/controllers/settings.py:143
279 274 #: rhodecode/controllers/admin/repos.py:302
280 275 #, python-format
281 276 msgid ""
282 "%s repository is not mapped to db perhaps it was moved or renamed from "
283 "the filesystem please run the application again in order to rescan "
284 "repositories"
277 "%s repository is not mapped to db perhaps it was moved or renamed from the "
278 "filesystem please run the application again in order to rescan repositories"
285 279 msgstr ""
280 "版本库 %s 没有映射到数据库,可能是从文件系统创建或者重命名,请重启 RhodeCode "
281 "以重新扫描版本库"
286 282
287 283 #: rhodecode/controllers/settings.py:155
288 284 #: rhodecode/controllers/admin/repos.py:314
@@ -295,11 +291,11 b' msgstr "\xe5\xb7\xb2\xe7\xbb\x8f\xe5\x88\xa0\xe9\x99\xa4\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93 %s"'
295 291 #: rhodecode/controllers/admin/repos.py:330
296 292 #, python-format
297 293 msgid "An error occurred during deletion of %s"
298 msgstr ""
294 msgstr "在删除 %s 的时候发生错误"
299 295
300 296 #: rhodecode/controllers/summary.py:138
301 297 msgid "No data loaded yet"
302 msgstr ""
298 msgstr "数据未加载"
303 299
304 300 #: rhodecode/controllers/summary.py:142
305 301 #: rhodecode/templates/summary/summary.html:148
@@ -308,35 +304,35 b' msgstr "\xe8\xaf\xa5\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x9f\xe8\xae\xa1\xe5\x8a\x9f\xe8\x83\xbd\xe5\xb7\xb2\xe7\xbb\x8f\xe7\xa6\x81\xe7\x94\xa8"'
308 304
309 305 #: rhodecode/controllers/admin/ldap_settings.py:50
310 306 msgid "BASE"
311 msgstr ""
307 msgstr "BASE"
312 308
313 309 #: rhodecode/controllers/admin/ldap_settings.py:51
314 310 msgid "ONELEVEL"
315 msgstr ""
311 msgstr "ONELEVEL"
316 312
317 313 #: rhodecode/controllers/admin/ldap_settings.py:52
318 314 msgid "SUBTREE"
319 msgstr ""
315 msgstr "SUBTREE"
320 316
321 317 #: rhodecode/controllers/admin/ldap_settings.py:56
322 318 msgid "NEVER"
323 msgstr ""
319 msgstr "NEVER"
324 320
325 321 #: rhodecode/controllers/admin/ldap_settings.py:57
326 322 msgid "ALLOW"
327 msgstr ""
323 msgstr "ALLOW"
328 324
329 325 #: rhodecode/controllers/admin/ldap_settings.py:58
330 326 msgid "TRY"
331 msgstr ""
327 msgstr "TRY"
332 328
333 329 #: rhodecode/controllers/admin/ldap_settings.py:59
334 330 msgid "DEMAND"
335 msgstr ""
331 msgstr "DEMAND"
336 332
337 333 #: rhodecode/controllers/admin/ldap_settings.py:60
338 334 msgid "HARD"
339 msgstr ""
335 msgstr "HARD"
340 336
341 337 #: rhodecode/controllers/admin/ldap_settings.py:64
342 338 msgid "No encryption"
@@ -344,11 +340,11 b' msgstr "\xe6\x9c\xaa\xe5\x8a\xa0\xe5\xaf\x86"'
344 340
345 341 #: rhodecode/controllers/admin/ldap_settings.py:65
346 342 msgid "LDAPS connection"
347 msgstr ""
343 msgstr "LDAPS 连接"
348 344
349 345 #: rhodecode/controllers/admin/ldap_settings.py:66
350 346 msgid "START_TLS on LDAP connection"
351 msgstr ""
347 msgstr "LDAP 连接上的 START_TLS"
352 348
353 349 #: rhodecode/controllers/admin/ldap_settings.py:126
354 350 msgid "Ldap settings updated successfully"
@@ -356,11 +352,11 b' msgstr "LDAP \xe8\xae\xbe\xe7\xbd\xae\xe5\xb7\xb2\xe7\xbb\x8f\xe6\x88\x90\xe5\x8a\x9f\xe6\x9b\xb4\xe6\x96\xb0"'
356 352
357 353 #: rhodecode/controllers/admin/ldap_settings.py:130
358 354 msgid "Unable to activate ldap. The \"python-ldap\" library is missing."
359 msgstr "无法启用 LDAP。“python-ldap”缺失。"
355 msgstr "无法启用 LDAP。缺失“python-ldap”。"
360 356
361 357 #: rhodecode/controllers/admin/ldap_settings.py:147
362 358 msgid "error occurred during update of ldap settings"
363 msgstr ""
359 msgstr "更新 LDAP 设置时发生错误"
364 360
365 361 #: rhodecode/controllers/admin/permissions.py:59
366 362 msgid "None"
@@ -427,11 +423,11 b' msgstr "\xe6\x88\x90\xe5\x8a\x9f\xe6\x9b\xb4\xe6\x96\xb0\xe9\xbb\x98\xe8\xae\xa4\xe6\x9d\x83\xe9\x99\x90"'
427 423
428 424 #: rhodecode/controllers/admin/permissions.py:130
429 425 msgid "error occurred during update of permissions"
430 msgstr ""
426 msgstr "更新权限时发生错误"
431 427
432 428 #: rhodecode/controllers/admin/repos.py:123
433 429 msgid "--REMOVE FORK--"
434 msgstr ""
430 msgstr "-- 移除分支 --"
435 431
436 432 #: rhodecode/controllers/admin/repos.py:192
437 433 #, python-format
@@ -446,67 +442,65 b' msgstr "\xe5\xbb\xba\xe7\xab\x8b\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93 %s"'
446 442 #: rhodecode/controllers/admin/repos.py:227
447 443 #, python-format
448 444 msgid "error occurred during creation of repository %s"
449 msgstr ""
445 msgstr "创建版本库时发生错误 %s"
450 446
451 447 #: rhodecode/controllers/admin/repos.py:319
452 448 #, python-format
453 449 msgid "Cannot delete %s it still contains attached forks"
454 msgstr ""
450 msgstr "无法删除 %s 因为它还有其他分支版本库"
455 451
456 452 #: rhodecode/controllers/admin/repos.py:348
457 453 msgid "An error occurred during deletion of repository user"
458 msgstr ""
454 msgstr "删除版本库用户时发生错误"
459 455
460 456 #: rhodecode/controllers/admin/repos.py:367
461 457 msgid "An error occurred during deletion of repository users groups"
462 msgstr ""
458 msgstr "删除版本库用户组时发生错误"
463 459
464 460 #: rhodecode/controllers/admin/repos.py:385
465 461 msgid "An error occurred during deletion of repository stats"
466 msgstr ""
462 msgstr "删除版本库统计时发生错误"
467 463
468 464 #: rhodecode/controllers/admin/repos.py:402
469 465 msgid "An error occurred during cache invalidation"
470 msgstr ""
466 msgstr "清除缓存时发生错误"
471 467
472 468 #: rhodecode/controllers/admin/repos.py:422
473 #, fuzzy
474 469 msgid "An error occurred during unlocking"
475 msgstr "在搜索操作中发生异常"
470 msgstr "解锁时发生错误"
476 471
477 472 #: rhodecode/controllers/admin/repos.py:442
478 473 msgid "Updated repository visibility in public journal"
479 msgstr ""
474 msgstr "成功更新在公共日志中的可见性"
480 475
481 476 #: rhodecode/controllers/admin/repos.py:446
482 477 msgid "An error occurred during setting this repository in public journal"
483 msgstr ""
478 msgstr "设置版本库到公共日志时发生错误"
484 479
485 480 #: rhodecode/controllers/admin/repos.py:451 rhodecode/model/validators.py:299
486 481 msgid "Token mismatch"
487 msgstr ""
482 msgstr "令牌不匹配"
488 483
489 484 #: rhodecode/controllers/admin/repos.py:464
490 485 msgid "Pulled from remote location"
491 msgstr ""
486 msgstr "成功拉取自远程路径"
492 487
493 488 #: rhodecode/controllers/admin/repos.py:466
494 489 msgid "An error occurred during pull from remote location"
495 msgstr ""
490 msgstr "从远程路径拉取时发生错误"
496 491
497 492 #: rhodecode/controllers/admin/repos.py:482
498 493 msgid "Nothing"
499 msgstr ""
494 msgstr ""
500 495
501 496 #: rhodecode/controllers/admin/repos.py:484
502 #, fuzzy, python-format
497 #, python-format
503 498 msgid "Marked repo %s as fork of %s"
504 msgstr "新版本库 %s 基于 %s 建立。"
499 msgstr "成功将版本库 %s 标记为从 %s 分支"
505 500
506 501 #: rhodecode/controllers/admin/repos.py:488
507 #, fuzzy
508 502 msgid "An error occurred during this operation"
509 msgstr "在搜索操作中发生异常"
503 msgstr "在搜索操作中发生错误"
510 504
511 505 #: rhodecode/controllers/admin/repos_groups.py:116
512 506 #, python-format
@@ -516,7 +510,7 b' msgstr "\xe5\xbb\xba\xe7\xab\x8b\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84 %s"'
516 510 #: rhodecode/controllers/admin/repos_groups.py:129
517 511 #, python-format
518 512 msgid "error occurred during creation of repos group %s"
519 msgstr ""
513 msgstr "创建版本库组时发生错误 %s"
520 514
521 515 #: rhodecode/controllers/admin/repos_groups.py:163
522 516 #, python-format
@@ -526,12 +520,12 b' msgstr "\xe6\x9b\xb4\xe6\x96\xb0\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84 %s"'
526 520 #: rhodecode/controllers/admin/repos_groups.py:176
527 521 #, python-format
528 522 msgid "error occurred during update of repos group %s"
529 msgstr ""
523 msgstr "更新版本库组时发生错误 %s"
530 524
531 525 #: rhodecode/controllers/admin/repos_groups.py:194
532 526 #, python-format
533 527 msgid "This group contains %s repositores and cannot be deleted"
534 msgstr ""
528 msgstr "这个组内有 %s 个版本库因而无法删除"
535 529
536 530 #: rhodecode/controllers/admin/repos_groups.py:202
537 531 #, python-format
@@ -540,27 +534,26 b' msgstr "\xe7\xa7\xbb\xe9\x99\xa4\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84 %s"'
540 534
541 535 #: rhodecode/controllers/admin/repos_groups.py:208
542 536 msgid "Cannot delete this group it still contains subgroups"
543 msgstr ""
537 msgstr "不能删除包含子组的组"
544 538
545 539 #: rhodecode/controllers/admin/repos_groups.py:213
546 540 #: rhodecode/controllers/admin/repos_groups.py:218
547 541 #, python-format
548 542 msgid "error occurred during deletion of repos group %s"
549 msgstr ""
543 msgstr "删除版本库组时发生错误 %s"
550 544
551 545 #: rhodecode/controllers/admin/repos_groups.py:238
552 #, fuzzy
553 546 msgid "An error occurred during deletion of group user"
554 msgstr "在搜索操作中发生异常"
547 msgstr "删除组用户时发生错误"
555 548
556 549 #: rhodecode/controllers/admin/repos_groups.py:258
557 550 msgid "An error occurred during deletion of group users groups"
558 msgstr ""
551 msgstr "删除版本库组的用户组时发生错误"
559 552
560 553 #: rhodecode/controllers/admin/settings.py:121
561 554 #, python-format
562 555 msgid "Repositories successfully rescanned added: %s,removed: %s"
563 msgstr ""
556 msgstr "重新扫描版本库成功,增加 %s, 移除 %s"
564 557
565 558 #: rhodecode/controllers/admin/settings.py:129
566 559 msgid "Whoosh reindex task scheduled"
@@ -573,26 +566,23 b' msgstr "\xe6\x9b\xb4\xe6\x96\xb0\xe5\xba\x94\xe7\x94\xa8\xe8\xae\xbe\xe7\xbd\xae"'
573 566 #: rhodecode/controllers/admin/settings.py:164
574 567 #: rhodecode/controllers/admin/settings.py:275
575 568 msgid "error occurred during updating application settings"
576 msgstr ""
569 msgstr "更新设置时发生错误"
577 570
578 571 #: rhodecode/controllers/admin/settings.py:200
579 #, fuzzy
580 572 msgid "Updated visualisation settings"
581 msgstr "更新应用设置"
573 msgstr "成功更新可视化设置"
582 574
583 575 #: rhodecode/controllers/admin/settings.py:205
584 #, fuzzy
585 576 msgid "error occurred during updating visualisation settings"
586 msgstr "提交时发生错误"
577 msgstr "更新可视化设置时发生错误"
587 578
588 579 #: rhodecode/controllers/admin/settings.py:271
589 #, fuzzy
590 580 msgid "Updated VCS settings"
591 msgstr "更新 mercurial 设置"
581 msgstr "成功更新版本控制系统设置"
592 582
593 583 #: rhodecode/controllers/admin/settings.py:285
594 584 msgid "Added new hook"
595 msgstr "新钩子"
585 msgstr "新钩子"
596 586
597 587 #: rhodecode/controllers/admin/settings.py:297
598 588 msgid "Updated hooks"
@@ -600,15 +590,15 b' msgstr "\xe6\x9b\xb4\xe6\x96\xb0\xe9\x92\xa9\xe5\xad\x90"'
600 590
601 591 #: rhodecode/controllers/admin/settings.py:301
602 592 msgid "error occurred during hook creation"
603 msgstr ""
593 msgstr "创建钩子时发生错误"
604 594
605 595 #: rhodecode/controllers/admin/settings.py:320
606 596 msgid "Email task created"
607 msgstr ""
597 msgstr "已创建电子邮件任务"
608 598
609 599 #: rhodecode/controllers/admin/settings.py:375
610 600 msgid "You can't edit this user since it's crucial for entire application"
611 msgstr ""
601 msgstr "由于是系统帐号,无法编辑该用户"
612 602
613 603 #: rhodecode/controllers/admin/settings.py:406
614 604 msgid "Your account was updated successfully"
@@ -618,7 +608,7 b' msgstr "\xe4\xbd\xa0\xe7\x9a\x84\xe5\xb8\x90\xe5\x8f\xb7\xe5\xb7\xb2\xe7\xbb\x8f\xe6\x9b\xb4\xe6\x96\xb0\xe5\xae\x8c\xe6\x88\x90"'
618 608 #: rhodecode/controllers/admin/users.py:191
619 609 #, python-format
620 610 msgid "error occurred during update of user %s"
621 msgstr ""
611 msgstr "更新用户 %s 时发生错误"
622 612
623 613 #: rhodecode/controllers/admin/users.py:130
624 614 #, python-format
@@ -628,7 +618,7 b' msgstr "\xe5\x88\x9b\xe5\xbb\xba\xe7\x94\xa8\xe6\x88\xb7 %s"'
628 618 #: rhodecode/controllers/admin/users.py:142
629 619 #, python-format
630 620 msgid "error occurred during creation of user %s"
631 msgstr ""
621 msgstr "创建用户 %s 时发生错误"
632 622
633 623 #: rhodecode/controllers/admin/users.py:171
634 624 msgid "User updated successfully"
@@ -640,7 +630,7 b' msgstr "\xe7\x94\xa8\xe6\x88\xb7\xe5\x88\xa0\xe9\x99\xa4\xe6\x88\x90\xe5\x8a\x9f"'
640 630
641 631 #: rhodecode/controllers/admin/users.py:212
642 632 msgid "An error occurred during deletion of user"
643 msgstr ""
633 msgstr "删除用户时发生错误"
644 634
645 635 #: rhodecode/controllers/admin/users.py:226
646 636 msgid "You can't edit this user"
@@ -648,42 +638,37 b' msgstr "\xe6\x97\xa0\xe6\xb3\x95\xe7\xbc\x96\xe8\xbe\x91\xe8\xaf\xa5\xe7\x94\xa8\xe6\x88\xb7"'
648 638
649 639 #: rhodecode/controllers/admin/users.py:266
650 640 msgid "Granted 'repository create' permission to user"
651 msgstr ""
641 msgstr "已授予用户‘创建版本库’的权限"
652 642
653 643 #: rhodecode/controllers/admin/users.py:271
654 644 msgid "Revoked 'repository create' permission to user"
655 msgstr ""
645 msgstr "已撤销用户‘创建版本库’的权限"
656 646
657 647 #: rhodecode/controllers/admin/users.py:277
658 #, fuzzy
659 648 msgid "Granted 'repository fork' permission to user"
660 msgstr "版本库权限"
649 msgstr "成功授予了用户“分支版本库权限"
661 650
662 651 #: rhodecode/controllers/admin/users.py:282
663 #, fuzzy
664 652 msgid "Revoked 'repository fork' permission to user"
665 msgstr "版本库权限"
653 msgstr "成功撤销用户“分支版本库权限"
666 654
667 655 #: rhodecode/controllers/admin/users.py:288
668 656 #: rhodecode/controllers/admin/users_groups.py:255
669 #, fuzzy
670 657 msgid "An error occurred during permissions saving"
671 msgstr "在搜索操作中发生异常"
658 msgstr "保存权限时发生错误"
672 659
673 660 #: rhodecode/controllers/admin/users.py:303
674 661 #, python-format
675 662 msgid "Added email %s to user"
676 msgstr ""
663 msgstr "已为用户添加电子邮件 %s"
677 664
678 665 #: rhodecode/controllers/admin/users.py:309
679 #, fuzzy
680 666 msgid "An error occurred during email saving"
681 msgstr "在搜索操作中发生异常"
667 msgstr "保存电子邮件时发生错误"
682 668
683 669 #: rhodecode/controllers/admin/users.py:319
684 #, fuzzy
685 670 msgid "Removed email from user"
686 msgstr "移除版本库组 %s"
671 msgstr "成功删除用户电子邮件"
687 672
688 673 #: rhodecode/controllers/admin/users_groups.py:84
689 674 #, python-format
@@ -693,7 +678,7 b' msgstr "\xe5\xbb\xba\xe7\xab\x8b\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\x84 %s"'
693 678 #: rhodecode/controllers/admin/users_groups.py:95
694 679 #, python-format
695 680 msgid "error occurred during creation of users group %s"
696 msgstr ""
681 msgstr "创建用户组 %s 时发生错误"
697 682
698 683 #: rhodecode/controllers/admin/users_groups.py:135
699 684 #, python-format
@@ -703,7 +688,7 b' msgstr "\xe6\x9b\xb4\xe6\x96\xb0\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\x84 %s"'
703 688 #: rhodecode/controllers/admin/users_groups.py:157
704 689 #, python-format
705 690 msgid "error occurred during update of users group %s"
706 msgstr ""
691 msgstr "更新用户组 %s 时发生错误"
707 692
708 693 #: rhodecode/controllers/admin/users_groups.py:174
709 694 msgid "successfully deleted users group"
@@ -711,23 +696,23 b' msgstr "\xe5\x88\xa0\xe9\x99\xa4\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\x84\xe6\x88\x90\xe5\x8a\x9f"'
711 696
712 697 #: rhodecode/controllers/admin/users_groups.py:179
713 698 msgid "An error occurred during deletion of users group"
714 msgstr ""
699 msgstr "删除用户组时发生错误"
715 700
716 701 #: rhodecode/controllers/admin/users_groups.py:233
717 702 msgid "Granted 'repository create' permission to users group"
718 msgstr ""
703 msgstr "已授予用户组‘创建版本库’的权限"
719 704
720 705 #: rhodecode/controllers/admin/users_groups.py:238
721 706 msgid "Revoked 'repository create' permission to users group"
722 msgstr ""
707 msgstr "已撤销用户组‘创建版本库’的权限"
723 708
724 709 #: rhodecode/controllers/admin/users_groups.py:244
725 710 msgid "Granted 'repository fork' permission to users group"
726 msgstr ""
711 msgstr "已授予用户组‘分支版本库’的权限"
727 712
728 713 #: rhodecode/controllers/admin/users_groups.py:249
729 714 msgid "Revoked 'repository fork' permission to users group"
730 msgstr ""
715 msgstr "已撤销用户组‘分支版本库’的权限"
731 716
732 717 #: rhodecode/lib/auth.py:499
733 718 msgid "You need to be a registered user to perform this action"
@@ -738,51 +723,51 b' msgid "You need to be a signed in to vie'
738 723 msgstr "必须登录才能访问该页面"
739 724
740 725 #: rhodecode/lib/diffs.py:86
741 msgid "Changeset was too big and was cut off, use diff menu to display this diff"
742 msgstr "变更集因过大而被截断,可查看原始变更集作为替代"
726 msgid ""
727 "Changeset was too big and was cut off, use diff menu to display this diff"
728 msgstr "修订集因过大而被截断,可查看原始修订集作为替代"
743 729
744 730 #: rhodecode/lib/diffs.py:96
745 #, fuzzy
746 731 msgid "No changes detected"
747 msgstr "尚无修订"
732 msgstr "未发现差异"
748 733
749 734 #: rhodecode/lib/helpers.py:372
750 735 #, python-format
751 736 msgid "%a, %d %b %Y %H:%M:%S"
752 msgstr ""
737 msgstr "%Y/%b/%d %H:%M:%S %a"
753 738
754 739 #: rhodecode/lib/helpers.py:484
755 740 msgid "True"
756 msgstr ""
741 msgstr ""
757 742
758 743 #: rhodecode/lib/helpers.py:488
759 744 msgid "False"
760 msgstr ""
745 msgstr ""
761 746
762 747 #: rhodecode/lib/helpers.py:532
763 #, fuzzy
764 748 msgid "Changeset not found"
765 msgstr "修改"
749 msgstr "未找到修订集"
766 750
767 751 #: rhodecode/lib/helpers.py:555
768 752 #, python-format
769 753 msgid "Show all combined changesets %s->%s"
770 msgstr ""
754 msgstr "显示合并的修订集 %s->%s"
771 755
772 756 #: rhodecode/lib/helpers.py:561
773 757 msgid "compare view"
774 msgstr ""
758 msgstr "比较显示"
775 759
776 760 #: rhodecode/lib/helpers.py:581
777 761 msgid "and"
778 msgstr ""
762 msgstr "还有"
779 763
780 764 #: rhodecode/lib/helpers.py:582
781 765 #, python-format
782 766 msgid "%s more"
783 msgstr ""
784
785 #: rhodecode/lib/helpers.py:583 rhodecode/templates/changelog/changelog.html:48
767 msgstr "%s 个"
768
769 #: rhodecode/lib/helpers.py:583
770 #: rhodecode/templates/changelog/changelog.html:48
786 771 msgid "revisions"
787 772 msgstr "修订"
788 773
@@ -795,257 +780,235 b' msgstr "\xe5\x88\x86\xe6\x94\xaf\xe5\x90\x8d\xe7\xa7\xb0"'
795 780 #: rhodecode/templates/pullrequests/pullrequest_show.html:12
796 781 #, python-format
797 782 msgid "Pull request #%s"
798 msgstr ""
783 msgstr "拉取请求 #%s"
799 784
800 785 #: rhodecode/lib/helpers.py:626
801 786 msgid "[deleted] repository"
802 msgstr ""
787 msgstr "[删除] 版本库"
803 788
804 789 #: rhodecode/lib/helpers.py:628 rhodecode/lib/helpers.py:638
805 790 msgid "[created] repository"
806 msgstr ""
791 msgstr "[创建] 版本库"
807 792
808 793 #: rhodecode/lib/helpers.py:630
809 #, fuzzy
810 794 msgid "[created] repository as fork"
811 msgstr "建立版本库 %s"
795 msgstr "[创建] 分支版本库"
812 796
813 797 #: rhodecode/lib/helpers.py:632 rhodecode/lib/helpers.py:640
814 798 msgid "[forked] repository"
815 msgstr ""
799 msgstr "[分支] 版本库"
816 800
817 801 #: rhodecode/lib/helpers.py:634 rhodecode/lib/helpers.py:642
818 802 msgid "[updated] repository"
819 msgstr ""
803 msgstr "[更新] 版本库"
820 804
821 805 #: rhodecode/lib/helpers.py:636
822 806 msgid "[delete] repository"
823 msgstr ""
807 msgstr "[删除] 版本库"
824 808
825 809 #: rhodecode/lib/helpers.py:644
826 #, fuzzy
827 810 msgid "[created] user"
828 msgstr "创建用户 %s"
811 msgstr "[创建] 用户"
829 812
830 813 #: rhodecode/lib/helpers.py:646
831 #, fuzzy
832 814 msgid "[updated] user"
833 msgstr "更新用户组 %s"
815 msgstr "[更新] 用户"
834 816
835 817 #: rhodecode/lib/helpers.py:648
836 #, fuzzy
837 818 msgid "[created] users group"
838 msgstr "建立用户组 %s"
819 msgstr "[创建] 用户组"
839 820
840 821 #: rhodecode/lib/helpers.py:650
841 #, fuzzy
842 822 msgid "[updated] users group"
843 msgstr "更新用户组 %s"
823 msgstr "[更新] 用户组"
844 824
845 825 #: rhodecode/lib/helpers.py:652
846 826 msgid "[commented] on revision in repository"
847 msgstr ""
827 msgstr "[评论] 了版本库中的修订"
848 828
849 829 #: rhodecode/lib/helpers.py:654
850 #, fuzzy
851 830 msgid "[commented] on pull request for"
852 msgstr "创建用户 %s"
831 msgstr "[评论] 拉取请求"
853 832
854 833 #: rhodecode/lib/helpers.py:656
855 834 msgid "[closed] pull request for"
856 msgstr ""
835 msgstr "[关闭] 拉取请求"
857 836
858 837 #: rhodecode/lib/helpers.py:658
859 838 msgid "[pushed] into"
860 msgstr ""
839 msgstr "[推送] 到"
861 840
862 841 #: rhodecode/lib/helpers.py:660
863 842 msgid "[committed via RhodeCode] into repository"
864 msgstr ""
843 msgstr "[通过 RhodeCode 提交] 到版本库"
865 844
866 845 #: rhodecode/lib/helpers.py:662
867 846 msgid "[pulled from remote] into repository"
868 msgstr ""
847 msgstr "[远程拉取] 到版本库"
869 848
870 849 #: rhodecode/lib/helpers.py:664
871 850 msgid "[pulled] from"
872 msgstr ""
851 msgstr "[拉取] 自"
873 852
874 853 #: rhodecode/lib/helpers.py:666
875 854 msgid "[started following] repository"
876 msgstr ""
855 msgstr "[开始关注] 版本库"
877 856
878 857 #: rhodecode/lib/helpers.py:668
879 858 msgid "[stopped following] repository"
880 msgstr ""
859 msgstr "[停止关注] 版本库"
881 860
882 861 #: rhodecode/lib/helpers.py:840
883 862 #, python-format
884 863 msgid " and %s more"
885 msgstr ""
864 msgstr "还有 %s 个"
886 865
887 866 #: rhodecode/lib/helpers.py:844
888 867 msgid "No Files"
889 868 msgstr "没有文件"
890 869
891 870 #: rhodecode/lib/utils2.py:335
892 #, fuzzy, python-format
871 #, python-format
893 872 msgid "%d year"
894 873 msgid_plural "%d years"
895 msgstr[0] "年"
874 msgstr[0] "%d 年"
896 875
897 876 #: rhodecode/lib/utils2.py:336
898 #, fuzzy, python-format
877 #, python-format
899 878 msgid "%d month"
900 879 msgid_plural "%d months"
901 msgstr[0] "月"
880 msgstr[0] "%d 月"
902 881
903 882 #: rhodecode/lib/utils2.py:337
904 #, fuzzy, python-format
883 #, python-format
905 884 msgid "%d day"
906 885 msgid_plural "%d days"
907 msgstr[0] ""
886 msgstr[0] "%d 天"
908 887
909 888 #: rhodecode/lib/utils2.py:338
910 #, fuzzy, python-format
889 #, python-format
911 890 msgid "%d hour"
912 891 msgid_plural "%d hours"
913 msgstr[0] "时"
892 msgstr[0] "%d 小时"
914 893
915 894 #: rhodecode/lib/utils2.py:339
916 #, fuzzy, python-format
895 #, python-format
917 896 msgid "%d minute"
918 897 msgid_plural "%d minutes"
919 msgstr[0] "分"
898 msgstr[0] "%d "
920 899
921 900 #: rhodecode/lib/utils2.py:340
922 #, fuzzy, python-format
901 #, python-format
923 902 msgid "%d second"
924 903 msgid_plural "%d seconds"
925 msgstr[0] "秒"
904 msgstr[0] "%d 秒"
926 905
927 906 #: rhodecode/lib/utils2.py:355
928 #, fuzzy, python-format
907 #, python-format
929 908 msgid "%s ago"
930 msgstr "之前"
909 msgstr "%s 之前"
931 910
932 911 #: rhodecode/lib/utils2.py:357
933 912 #, python-format
934 913 msgid "%s and %s ago"
935 msgstr ""
914 msgstr "%s 零 %s 之前"
936 915
937 916 #: rhodecode/lib/utils2.py:360
938 917 msgid "just now"
939 msgstr "现在"
918 msgstr "刚才"
940 919
941 920 #: rhodecode/lib/celerylib/tasks.py:269
942 #, fuzzy
943 921 msgid "password reset link"
944 msgstr "密码重置链接已经发送"
922 msgstr "密码重置链接"
945 923
946 924 #: rhodecode/model/comment.py:110
947 925 #, python-format
948 926 msgid "on line %s"
949 msgstr ""
927 msgstr "在 %s 行"
950 928
951 929 #: rhodecode/model/comment.py:157
952 930 msgid "[Mention]"
953 msgstr ""
931 msgstr "[提及]"
954 932
955 933 #: rhodecode/model/db.py:1140
956 #, fuzzy
957 934 msgid "Repository no access"
958 msgstr "个版本库"
935 msgstr "无版本库访问权限"
959 936
960 937 #: rhodecode/model/db.py:1141
961 #, fuzzy
962 938 msgid "Repository read access"
963 msgstr "这个版本库已经存在"
939 msgstr "版本库读取权限"
964 940
965 941 #: rhodecode/model/db.py:1142
966 #, fuzzy
967 942 msgid "Repository write access"
968 msgstr "版本库"
943 msgstr "版本库写入权限"
969 944
970 945 #: rhodecode/model/db.py:1143
971 #, fuzzy
972 946 msgid "Repository admin access"
973 msgstr "版本库"
947 msgstr "版本库管理权限"
974 948
975 949 #: rhodecode/model/db.py:1145
976 #, fuzzy
977 950 msgid "Repositories Group no access"
978 msgstr "版本库组"
951 msgstr "版本库组访问权限"
979 952
980 953 #: rhodecode/model/db.py:1146
981 #, fuzzy
982 954 msgid "Repositories Group read access"
983 msgstr "版本库组"
955 msgstr "版本库组读取权限"
984 956
985 957 #: rhodecode/model/db.py:1147
986 #, fuzzy
987 958 msgid "Repositories Group write access"
988 msgstr "版本库组"
959 msgstr "版本库组写入"
989 960
990 961 #: rhodecode/model/db.py:1148
991 #, fuzzy
992 962 msgid "Repositories Group admin access"
993 msgstr "版本库组"
963 msgstr "版本库组管理权限"
994 964
995 965 #: rhodecode/model/db.py:1150
996 #, fuzzy
997 966 msgid "RhodeCode Administrator"
998 msgstr "用户管理员"
967 msgstr "RhodeCode 管理员"
999 968
1000 969 #: rhodecode/model/db.py:1151
1001 #, fuzzy
1002 970 msgid "Repository creation disabled"
1003 msgstr "建版本库"
971 msgstr "禁用创建版本库"
1004 972
1005 973 #: rhodecode/model/db.py:1152
1006 #, fuzzy
1007 974 msgid "Repository creation enabled"
1008 msgstr "建版本库"
975 msgstr "允许创建版本库"
1009 976
1010 977 #: rhodecode/model/db.py:1153
1011 #, fuzzy
1012 978 msgid "Repository forking disabled"
1013 msgstr "建立版本库"
979 msgstr "禁用分支 版本库"
1014 980
1015 981 #: rhodecode/model/db.py:1154
1016 #, fuzzy
1017 982 msgid "Repository forking enabled"
1018 msgstr "建立版本库"
983 msgstr "允许分支版本库"
1019 984
1020 985 #: rhodecode/model/db.py:1155
1021 #, fuzzy
1022 986 msgid "Register disabled"
1023 msgstr "禁用"
987 msgstr "禁用注册"
1024 988
1025 989 #: rhodecode/model/db.py:1156
1026 990 msgid "Register new user with RhodeCode with manual activation"
1027 msgstr ""
991 msgstr "用手动激活注册新用户"
1028 992
1029 993 #: rhodecode/model/db.py:1159
1030 994 msgid "Register new user with RhodeCode with auto activation"
1031 msgstr ""
995 msgstr "用自动激活注册新用户"
1032 996
1033 997 #: rhodecode/model/db.py:1579
1034 998 msgid "Not Reviewed"
1035 msgstr ""
999 msgstr "未检视"
1036 1000
1037 1001 #: rhodecode/model/db.py:1580
1038 #, fuzzy
1039 1002 msgid "Approved"
1040 msgstr "移除"
1003 msgstr "已批准"
1041 1004
1042 1005 #: rhodecode/model/db.py:1581
1043 1006 msgid "Rejected"
1044 msgstr ""
1007 msgstr "驳回"
1045 1008
1046 1009 #: rhodecode/model/db.py:1582
1047 1010 msgid "Under Review"
1048 msgstr ""
1011 msgstr "检视中"
1049 1012
1050 1013 #: rhodecode/model/forms.py:43
1051 1014 msgid "Please enter a login"
@@ -1054,7 +1017,7 b' msgstr "\xe8\xaf\xb7\xe7\x99\xbb\xe5\xbd\x95"'
1054 1017 #: rhodecode/model/forms.py:44
1055 1018 #, python-format
1056 1019 msgid "Enter a value %(min)i characters long or more"
1057 msgstr ""
1020 msgstr "输入一个不少于 %(min)i 个字符的值"
1058 1021
1059 1022 #: rhodecode/model/forms.py:52
1060 1023 msgid "Please enter a password"
@@ -1063,46 +1026,42 b' msgstr "\xe8\xaf\xb7\xe8\xbe\x93\xe5\x85\xa5\xe5\xaf\x86\xe7\xa0\x81"'
1063 1026 #: rhodecode/model/forms.py:53
1064 1027 #, python-format
1065 1028 msgid "Enter %(min)i characters or more"
1066 msgstr ""
1029 msgstr "输入少于 %(min)i 个字符"
1067 1030
1068 1031 #: rhodecode/model/notification.py:220
1069 1032 msgid "commented on commit"
1070 msgstr ""
1033 msgstr "评论了评论"
1071 1034
1072 1035 #: rhodecode/model/notification.py:221
1073 #, fuzzy
1074 1036 msgid "sent message"
1075 msgstr "提交信息"
1037 msgstr "发送信息"
1076 1038
1077 1039 #: rhodecode/model/notification.py:222
1078 1040 msgid "mentioned you"
1079 msgstr ""
1041 msgstr "提到了你"
1080 1042
1081 1043 #: rhodecode/model/notification.py:223
1082 #, fuzzy
1083 1044 msgid "registered in RhodeCode"
1084 msgstr "成功注册到 rhodecode"
1045 msgstr "注册到 RhodeCode"
1085 1046
1086 1047 #: rhodecode/model/notification.py:224
1087 1048 msgid "opened new pull request"
1088 msgstr ""
1049 msgstr "创建新的拉取请求"
1089 1050
1090 1051 #: rhodecode/model/notification.py:225
1091 1052 msgid "commented on pull request"
1092 msgstr ""
1053 msgstr "评论了拉取请求"
1093 1054
1094 1055 #: rhodecode/model/pull_request.py:84
1095 1056 #, python-format
1096 1057 msgid "%(user)s wants you to review pull request #%(pr_id)s"
1097 msgstr ""
1058 msgstr "%(user)s 想要你检视拉取请求 #%(pr_id)s"
1098 1059
1099 1060 #: rhodecode/model/scm.py:535
1100 #, fuzzy
1101 1061 msgid "latest tip"
1102 msgstr "最后登录"
1062 msgstr "最后 tip 版本"
1103 1063
1104 1064 #: rhodecode/model/user.py:230
1105 #, fuzzy
1106 1065 msgid "new user registration"
1107 1066 msgstr "[RhodeCode] 新用户注册"
1108 1067
@@ -1116,71 +1075,73 b' msgid "You can\'t remove this user since '
1116 1075 msgstr "由于是系统帐号,无法删除该用户"
1117 1076
1118 1077 #: rhodecode/model/user.py:329
1119 #, fuzzy, python-format
1078 #, python-format
1120 1079 msgid ""
1121 "user \"%s\" still owns %s repositories and cannot be removed. Switch "
1122 "owners or remove those repositories. %s"
1123 msgstr "由于该用户拥有版本库 %s 因而无法删除,请变更版本库所有者或删除版本库"
1080 "user \"%s\" still owns %s repositories and cannot be removed. Switch owners "
1081 "or remove those repositories. %s"
1082 msgstr ""
1083 "由于用户 \"%s\" 拥有版本库 %s 因而无法删除,请修改版本库所有者或删除版本"
1084 "库。%s"
1124 1085
1125 1086 #: rhodecode/model/validators.py:35 rhodecode/model/validators.py:36
1126 1087 msgid "Value cannot be an empty list"
1127 msgstr ""
1088 msgstr "值不能为空"
1128 1089
1129 1090 #: rhodecode/model/validators.py:82
1130 #, fuzzy, python-format
1091 #, python-format
1131 1092 msgid "Username \"%(username)s\" already exists"
1132 msgstr "用户名已经存在"
1093 msgstr "用户名称 %(username)s 已经存在"
1133 1094
1134 1095 #: rhodecode/model/validators.py:84
1135 1096 #, python-format
1136 1097 msgid "Username \"%(username)s\" is forbidden"
1137 msgstr ""
1098 msgstr "不允许用户名 \"%(username)s\""
1138 1099
1139 1100 #: rhodecode/model/validators.py:86
1140 1101 msgid ""
1141 1102 "Username may only contain alphanumeric characters underscores, periods or"
1142 1103 " dashes and must begin with alphanumeric character"
1143 msgstr "只能使用字母、数字、下划线、小数点或减号作为用户名,且必须由数字或字母开头"
1104 msgstr ""
1105 "只能使用字母、数字、下划线、小数点或减号作为用户名,且必须由数字或字母开头"
1144 1106
1145 1107 #: rhodecode/model/validators.py:114
1146 #, fuzzy, python-format
1108 #, python-format
1147 1109 msgid "Username %(username)s is not valid"
1148 msgstr "用户或用户组名称无效"
1110 msgstr "用户名称 %(username)s 无效"
1149 1111
1150 1112 #: rhodecode/model/validators.py:133
1151 #, fuzzy
1152 1113 msgid "Invalid users group name"
1153 msgstr "无效用户名"
1114 msgstr "无效用户名"
1154 1115
1155 1116 #: rhodecode/model/validators.py:134
1156 #, fuzzy, python-format
1117 #, python-format
1157 1118 msgid "Users group \"%(usersgroup)s\" already exists"
1158 msgstr "该用户组名称已经存在"
1119 msgstr "用户组 \"%(usersgroup)s\" 已经存在"
1159 1120
1160 1121 #: rhodecode/model/validators.py:136
1161 1122 msgid ""
1162 1123 "users group name may only contain alphanumeric characters underscores, "
1163 1124 "periods or dashes and must begin with alphanumeric character"
1164 msgstr "只能使用字母、数字、下划线、小数点或减号作为用户组名,且必须由数字或字母开头"
1125 msgstr ""
1126 "只能使用字母、数字、下划线、小数点或减号作为用户组名,且必须由数字或字母开头"
1165 1127
1166 1128 #: rhodecode/model/validators.py:174
1167 1129 msgid "Cannot assign this group as parent"
1168 msgstr ""
1130 msgstr "不能将这个组作为 parent"
1169 1131
1170 1132 #: rhodecode/model/validators.py:175
1171 #, fuzzy, python-format
1133 #, python-format
1172 1134 msgid "Group \"%(group_name)s\" already exists"
1173 msgstr "该用户名已经存在"
1135 msgstr "组 \"%(group_name)s\" 已经存在"
1174 1136
1175 1137 #: rhodecode/model/validators.py:177
1176 #, fuzzy, python-format
1138 #, python-format
1177 1139 msgid "Repository with name \"%(group_name)s\" already exists"
1178 msgstr "这个版本库已经存在"
1140 msgstr "已经存在名为 \"%(group_name)s\" 的版本库"
1179 1141
1180 1142 #: rhodecode/model/validators.py:235
1181 #, fuzzy
1182 1143 msgid "Invalid characters (non-ascii) in password"
1183 msgstr "密码含有无效字符"
1144 msgstr "密码含有无效(非ASCII)字符"
1184 1145
1185 1146 #: rhodecode/model/validators.py:250
1186 1147 msgid "Passwords do not match"
@@ -1199,37 +1160,36 b' msgid "Your account is disabled"'
1199 1160 msgstr "该帐号已被禁用"
1200 1161
1201 1162 #: rhodecode/model/validators.py:313
1202 #, fuzzy, python-format
1163 #, python-format
1203 1164 msgid "Repository name %(repo)s is disallowed"
1204 msgstr "该版本库名称被禁用"
1165 msgstr "版本库名称不能为 %(repo)s"
1205 1166
1206 1167 #: rhodecode/model/validators.py:315
1207 #, fuzzy, python-format
1168 #, python-format
1208 1169 msgid "Repository named %(repo)s already exists"
1209 msgstr "这个版本库已经存在"
1170 msgstr "已经存在版本库 %(repo)s"
1210 1171
1211 1172 #: rhodecode/model/validators.py:316
1212 #, fuzzy, python-format
1173 #, python-format
1213 1174 msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
1214 msgstr "组中已经存在该版本库"
1175 msgstr "版本库组 \"%(group)s\" 中已经存在版本库 \"%(repo)s\""
1215 1176
1216 1177 #: rhodecode/model/validators.py:318
1217 #, fuzzy, python-format
1178 #, python-format
1218 1179 msgid "Repositories group with name \"%(repo)s\" already exists"
1219 msgstr "这个版本库已经存在"
1180 msgstr "已经存在名为 \"%(repo)s\" 的版本库组"
1220 1181
1221 1182 #: rhodecode/model/validators.py:431
1222 1183 msgid "invalid clone url"
1223 msgstr "无效的 clone 地址"
1184 msgstr "无效的克隆地址"
1224 1185
1225 1186 #: rhodecode/model/validators.py:432
1226 1187 msgid "Invalid clone url, provide a valid clone http(s)/svn+http(s) url"
1227 msgstr ""
1188 msgstr "无效的克隆地址,提供一个有效的克隆 http(s) 或 svn+http(s) 地址"
1228 1189
1229 1190 #: rhodecode/model/validators.py:457
1230 #, fuzzy
1231 1191 msgid "Fork have to be the same type as parent"
1232 msgstr "分支必须使用相同的版本库类型"
1192 msgstr "分支必须使用和父版本库相同的类型"
1233 1193
1234 1194 #: rhodecode/model/validators.py:478
1235 1195 msgid "This username or users group name is not valid"
@@ -1244,24 +1204,24 b' msgid "This e-mail address is already ta'
1244 1204 msgstr "该邮件地址已被使用"
1245 1205
1246 1206 #: rhodecode/model/validators.py:597
1247 #, fuzzy, python-format
1207 #, python-format
1248 1208 msgid "e-mail \"%(email)s\" does not exist."
1249 msgstr "邮件地址不存在"
1209 msgstr "邮件地址 \"%(email)s\" 不存在"
1250 1210
1251 1211 #: rhodecode/model/validators.py:634
1252 1212 msgid ""
1253 "The LDAP Login attribute of the CN must be specified - this is the name "
1254 "of the attribute that is equivalent to \"username\""
1255 msgstr ""
1213 "The LDAP Login attribute of the CN must be specified - this is the name of "
1214 "the attribute that is equivalent to \"username\""
1215 msgstr "LDAP 登陆属性的 CN 必须指定 - 这个名字作为用户名"
1256 1216
1257 1217 #: rhodecode/model/validators.py:653
1258 1218 #, python-format
1259 1219 msgid "Revisions %(revs)s are already part of pull request or have set status"
1260 msgstr ""
1220 msgstr "修订 %(revs)s 已经包含在拉取请求中或者或者已经设置状态"
1261 1221
1262 1222 #: rhodecode/templates/index.html:3
1263 1223 msgid "Dashboard"
1264 msgstr ""
1224 msgstr "控制面板"
1265 1225
1266 1226 #: rhodecode/templates/index_base.html:6
1267 1227 #: rhodecode/templates/repo_switcher_list.html:4
@@ -1285,7 +1245,7 b' msgstr "\xe4\xb8\xaa\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
1285 1245 #: rhodecode/templates/index_base.html:15
1286 1246 #: rhodecode/templates/admin/repos/repos.html:21
1287 1247 msgid "ADD REPOSITORY"
1288 msgstr "新版本库"
1248 msgstr "新版本库"
1289 1249
1290 1250 #: rhodecode/templates/index_base.html:29
1291 1251 #: rhodecode/templates/admin/repos_groups/repos_groups_add.html:32
@@ -1351,7 +1311,7 b' msgstr "\xe6\x9c\x80\xe5\x90\x8e\xe4\xbf\xae\xe6\x94\xb9"'
1351 1311 #: rhodecode/templates/admin/users/user_edit_my_account.html:159
1352 1312 #: rhodecode/templates/journal/journal.html:188
1353 1313 msgid "Tip"
1354 msgstr ""
1314 msgstr "Tip"
1355 1315
1356 1316 #: rhodecode/templates/index_base.html:74
1357 1317 #: rhodecode/templates/index_base.html:173
@@ -1364,26 +1324,25 b' msgstr "\xe6\x89\x80\xe6\x9c\x89\xe8\x80\x85"'
1364 1324 #: rhodecode/templates/summary/summary.html:48
1365 1325 #: rhodecode/templates/summary/summary.html:51
1366 1326 msgid "RSS"
1367 msgstr ""
1327 msgstr "RSS"
1368 1328
1369 1329 #: rhodecode/templates/index_base.html:76
1370 1330 msgid "Atom"
1371 msgstr ""
1331 msgstr "Atom"
1372 1332
1373 1333 #: rhodecode/templates/index_base.html:110
1374 1334 #: rhodecode/templates/index_base.html:112
1375 1335 #, python-format
1376 1336 msgid "Subscribe to %s rss feed"
1377 msgstr "订阅 rss %s"
1337 msgstr "订阅 %s 的 RSS"
1378 1338
1379 1339 #: rhodecode/templates/index_base.html:117
1380 1340 #: rhodecode/templates/index_base.html:119
1381 1341 #, python-format
1382 1342 msgid "Subscribe to %s atom feed"
1383 msgstr "订阅 atom %s"
1343 msgstr "订阅 %s 的 Atom"
1384 1344
1385 1345 #: rhodecode/templates/index_base.html:140
1386 #, fuzzy
1387 1346 msgid "Group Name"
1388 1347 msgstr "组名"
1389 1348
@@ -1397,7 +1356,7 b' msgstr "\xe7\xbb\x84\xe5\x90\x8d"'
1397 1356 #: rhodecode/templates/journal/journal.html:211
1398 1357 #: rhodecode/templates/tags/tags.html:60
1399 1358 msgid "Click to sort ascending"
1400 msgstr ""
1359 msgstr "点击以升序排列"
1401 1360
1402 1361 #: rhodecode/templates/index_base.html:159
1403 1362 #: rhodecode/templates/index_base.html:199
@@ -1409,10 +1368,9 b' msgstr ""'
1409 1368 #: rhodecode/templates/journal/journal.html:212
1410 1369 #: rhodecode/templates/tags/tags.html:61
1411 1370 msgid "Click to sort descending"
1412 msgstr ""
1371 msgstr "点击以降序排列"
1413 1372
1414 1373 #: rhodecode/templates/index_base.html:169
1415 #, fuzzy
1416 1374 msgid "Last Change"
1417 1375 msgstr "最后修改"
1418 1376
@@ -1425,7 +1383,7 b' msgstr "\xe6\x9c\x80\xe5\x90\x8e\xe4\xbf\xae\xe6\x94\xb9"'
1425 1383 #: rhodecode/templates/journal/journal.html:213
1426 1384 #: rhodecode/templates/tags/tags.html:62
1427 1385 msgid "No records found."
1428 msgstr ""
1386 msgstr "没有找到记录"
1429 1387
1430 1388 #: rhodecode/templates/index_base.html:201
1431 1389 #: rhodecode/templates/admin/repos/repos.html:97
@@ -1436,7 +1394,7 b' msgstr ""'
1436 1394 #: rhodecode/templates/journal/journal.html:214
1437 1395 #: rhodecode/templates/tags/tags.html:63
1438 1396 msgid "Data error."
1439 msgstr ""
1397 msgstr "数据错误"
1440 1398
1441 1399 #: rhodecode/templates/index_base.html:202
1442 1400 #: rhodecode/templates/admin/repos/repos.html:98
@@ -1446,9 +1404,8 b' msgstr ""'
1446 1404 #: rhodecode/templates/branches/branches.html:81
1447 1405 #: rhodecode/templates/journal/journal.html:215
1448 1406 #: rhodecode/templates/tags/tags.html:64
1449 #, fuzzy
1450 1407 msgid "Loading..."
1451 msgstr "加载文件列表..."
1408 msgstr "载入中..."
1452 1409
1453 1410 #: rhodecode/templates/login.html:5 rhodecode/templates/login.html:54
1454 1411 msgid "Sign In"
@@ -1476,9 +1433,8 b' msgid "Password"'
1476 1433 msgstr "密码"
1477 1434
1478 1435 #: rhodecode/templates/login.html:50
1479 #, fuzzy
1480 1436 msgid "Remember me"
1481 msgstr "成员"
1437 msgstr "记住密码"
1482 1438
1483 1439 #: rhodecode/templates/login.html:60
1484 1440 msgid "Forgot your password ?"
@@ -1585,13 +1541,12 b' msgstr "\xe6\xb2\xa1\xe6\x9c\x89\xe4\xbb\xbb\xe4\xbd\x95\xe6\xa0\x87\xe7\xad\xbe"'
1585 1541 #: rhodecode/templates/switch_to_list.html:28
1586 1542 #: rhodecode/templates/bookmarks/bookmarks.html:15
1587 1543 msgid "bookmarks"
1588 msgstr ""
1544 msgstr "书签"
1589 1545
1590 1546 #: rhodecode/templates/switch_to_list.html:35
1591 1547 #: rhodecode/templates/bookmarks/bookmarks_data.html:32
1592 #, fuzzy
1593 1548 msgid "There are no bookmarks yet"
1594 msgstr "尚未有任何分支"
1549 msgstr "无书签"
1595 1550
1596 1551 #: rhodecode/templates/admin/admin.html:5
1597 1552 #: rhodecode/templates/admin/admin.html:9
@@ -1626,7 +1581,7 b' msgstr "\xe6\x9d\xa5\xe6\xba\x90 IP"'
1626 1581
1627 1582 #: rhodecode/templates/admin/admin_log.html:53
1628 1583 msgid "No actions yet"
1629 msgstr "无操作"
1584 msgstr "无操作"
1630 1585
1631 1586 #: rhodecode/templates/admin/ldap/ldap.html:5
1632 1587 msgid "LDAP administration"
@@ -1634,7 +1589,7 b' msgstr "LDAP \xe7\xae\xa1\xe7\x90\x86\xe5\x91\x98"'
1634 1589
1635 1590 #: rhodecode/templates/admin/ldap/ldap.html:11
1636 1591 msgid "Ldap"
1637 msgstr ""
1592 msgstr "LDAP"
1638 1593
1639 1594 #: rhodecode/templates/admin/ldap/ldap.html:28
1640 1595 msgid "Connection settings"
@@ -1670,15 +1625,15 b' msgstr "\xe6\x90\x9c\xe7\xb4\xa2\xe8\xae\xbe\xe7\xbd\xae"'
1670 1625
1671 1626 #: rhodecode/templates/admin/ldap/ldap.html:59
1672 1627 msgid "Base DN"
1673 msgstr ""
1628 msgstr "Base DN"
1674 1629
1675 1630 #: rhodecode/templates/admin/ldap/ldap.html:63
1676 1631 msgid "LDAP Filter"
1677 msgstr ""
1632 msgstr "LDAP 过滤器"
1678 1633
1679 1634 #: rhodecode/templates/admin/ldap/ldap.html:67
1680 1635 msgid "LDAP Search Scope"
1681 msgstr ""
1636 msgstr "LDAP 搜索范围"
1682 1637
1683 1638 #: rhodecode/templates/admin/ldap/ldap.html:70
1684 1639 msgid "Attribute mappings"
@@ -1715,42 +1670,38 b' msgstr "\xe4\xbf\x9d\xe5\xad\x98"'
1715 1670 #: rhodecode/templates/admin/notifications/notifications.html:5
1716 1671 #: rhodecode/templates/admin/notifications/notifications.html:9
1717 1672 msgid "My Notifications"
1718 msgstr ""
1673 msgstr "我的通知"
1719 1674
1720 1675 #: rhodecode/templates/admin/notifications/notifications.html:29
1721 1676 msgid "All"
1722 msgstr ""
1677 msgstr "全部"
1723 1678
1724 1679 #: rhodecode/templates/admin/notifications/notifications.html:30
1725 #, fuzzy
1726 1680 msgid "Comments"
1727 msgstr "提交"
1681 msgstr "评论"
1728 1682
1729 1683 #: rhodecode/templates/admin/notifications/notifications.html:31
1730 1684 #: rhodecode/templates/base/base.html:254
1731 1685 #: rhodecode/templates/base/base.html:256
1732 1686 msgid "Pull requests"
1733 msgstr ""
1687 msgstr "拉取请求"
1734 1688
1735 1689 #: rhodecode/templates/admin/notifications/notifications.html:35
1736 1690 msgid "Mark all read"
1737 msgstr ""
1691 msgstr "全部标记为已读"
1738 1692
1739 1693 #: rhodecode/templates/admin/notifications/notifications_data.html:39
1740 #, fuzzy
1741 1694 msgid "No notifications here yet"
1742 msgstr "尚无操作"
1695 msgstr "无通知"
1743 1696
1744 1697 #: rhodecode/templates/admin/notifications/show_notification.html:5
1745 1698 #: rhodecode/templates/admin/notifications/show_notification.html:11
1746 #, fuzzy
1747 1699 msgid "Show notification"
1748 msgstr "显示注释"
1700 msgstr "显示通知"
1749 1701
1750 1702 #: rhodecode/templates/admin/notifications/show_notification.html:9
1751 #, fuzzy
1752 1703 msgid "Notifications"
1753 msgstr "位置"
1704 msgstr "通知"
1754 1705
1755 1706 #: rhodecode/templates/admin/permissions/permissions.html:5
1756 1707 msgid "Permissions administration"
@@ -1780,9 +1731,10 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe6\x9d\x83\xe9\x99\x90"'
1780 1731 #: rhodecode/templates/admin/permissions/permissions.html:49
1781 1732 msgid ""
1782 1733 "All default permissions on each repository will be reset to choosen "
1783 "permission, note that all custom default permission on repositories will "
1784 "be lost"
1734 "permission, note that all custom default permission on repositories will be "
1735 "lost"
1785 1736 msgstr ""
1737 "所有版本库的默认权限将被重置到选择的权限,所有版本库的自定义权限将被丢弃"
1786 1738
1787 1739 #: rhodecode/templates/admin/permissions/permissions.html:50
1788 1740 msgid "overwrite existing settings"
@@ -1797,9 +1749,8 b' msgid "Repository creation"'
1797 1749 msgstr "建立版本库"
1798 1750
1799 1751 #: rhodecode/templates/admin/permissions/permissions.html:71
1800 #, fuzzy
1801 1752 msgid "Repository forking"
1802 msgstr "建立版本库"
1753 msgstr "版本库分支"
1803 1754
1804 1755 #: rhodecode/templates/admin/permissions/permissions.html:78
1805 1756 #: rhodecode/templates/admin/repos/repo_edit.html:241
@@ -1819,19 +1770,19 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
1819 1770
1820 1771 #: rhodecode/templates/admin/repos/repo_add.html:13
1821 1772 msgid "add new"
1822 msgstr "新"
1773 msgstr "新"
1823 1774
1824 1775 #: rhodecode/templates/admin/repos/repo_add_base.html:20
1825 1776 #: rhodecode/templates/summary/summary.html:95
1826 1777 #: rhodecode/templates/summary/summary.html:96
1827 1778 msgid "Clone from"
1828 msgstr "clone 自"
1779 msgstr "克隆自"
1829 1780
1830 1781 #: rhodecode/templates/admin/repos/repo_add_base.html:24
1831 1782 #: rhodecode/templates/admin/repos/repo_edit.html:44
1832 1783 #: rhodecode/templates/settings/repo_settings.html:43
1833 1784 msgid "Optional http[s] url from which repository should be cloned."
1834 msgstr ""
1785 msgstr "可选的,指定版本库应该从哪个 http[s] 地址克隆。"
1835 1786
1836 1787 #: rhodecode/templates/admin/repos/repo_add_base.html:29
1837 1788 #: rhodecode/templates/admin/repos/repo_edit.html:49
@@ -1844,7 +1795,7 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84"'
1844 1795 #: rhodecode/templates/admin/repos/repo_add_base.html:33
1845 1796 #: rhodecode/templates/forks/fork.html:54
1846 1797 msgid "Optionaly select a group to put this repository into."
1847 msgstr ""
1798 msgstr "可选的,选择一个组将版本库放到其中"
1848 1799
1849 1800 #: rhodecode/templates/admin/repos/repo_add_base.html:38
1850 1801 #: rhodecode/templates/admin/repos/repo_edit.html:58
@@ -1852,31 +1803,30 b' msgid "Type"'
1852 1803 msgstr "类型"
1853 1804
1854 1805 #: rhodecode/templates/admin/repos/repo_add_base.html:42
1855 #, fuzzy
1856 1806 msgid "Type of repository to create."
1857 msgstr "建立版本库"
1807 msgstr "要创建的版本库类型"
1858 1808
1859 1809 #: rhodecode/templates/admin/repos/repo_add_base.html:47
1860 1810 #: rhodecode/templates/admin/repos/repo_edit.html:66
1861 1811 #: rhodecode/templates/forks/fork.html:41
1862 1812 #: rhodecode/templates/settings/repo_settings.html:57
1863 #, fuzzy
1864 1813 msgid "Landing revision"
1865 msgstr "下一个修订"
1814 msgstr "默认修订"
1866 1815
1867 1816 #: rhodecode/templates/admin/repos/repo_add_base.html:51
1868 1817 #: rhodecode/templates/admin/repos/repo_edit.html:70
1869 1818 #: rhodecode/templates/forks/fork.html:45
1870 1819 #: rhodecode/templates/settings/repo_settings.html:61
1871 1820 msgid "Default revision for files page, downloads, whoosh and readme"
1872 msgstr ""
1821 msgstr "文件浏览、下载、whoosh和readme的默认修订版本"
1873 1822
1874 1823 #: rhodecode/templates/admin/repos/repo_add_base.html:60
1875 1824 #: rhodecode/templates/admin/repos/repo_edit.html:79
1876 1825 #: rhodecode/templates/forks/fork.html:63
1877 1826 #: rhodecode/templates/settings/repo_settings.html:70
1878 msgid "Keep it short and to the point. Use a README file for longer descriptions."
1879 msgstr ""
1827 msgid ""
1828 "Keep it short and to the point. Use a README file for longer descriptions."
1829 msgstr "保持简短。用 README 文件来写更长的描述。"
1880 1830
1881 1831 #: rhodecode/templates/admin/repos/repo_add_base.html:69
1882 1832 #: rhodecode/templates/admin/repos/repo_edit.html:89
@@ -1885,15 +1835,15 b' msgstr ""'
1885 1835 msgid ""
1886 1836 "Private repositories are only visible to people explicitly added as "
1887 1837 "collaborators."
1888 msgstr ""
1838 msgstr "私有版本库只对显示添加的合作者可见。"
1889 1839
1890 1840 #: rhodecode/templates/admin/repos/repo_add_base.html:73
1891 1841 msgid "add"
1892 msgstr "新"
1842 msgstr "新"
1893 1843
1894 1844 #: rhodecode/templates/admin/repos/repo_add_create_repository.html:9
1895 1845 msgid "add new repository"
1896 msgstr "新版本库"
1846 msgstr "新版本库"
1897 1847
1898 1848 #: rhodecode/templates/admin/repos/repo_edit.html:5
1899 1849 msgid "Edit repository"
@@ -1913,12 +1863,12 b' msgstr "\xe7\xbc\x96\xe8\xbe\x91"'
1913 1863 #: rhodecode/templates/admin/repos/repo_edit.html:40
1914 1864 #: rhodecode/templates/settings/repo_settings.html:39
1915 1865 msgid "Clone uri"
1916 msgstr "clone 地址"
1866 msgstr "克隆地址"
1917 1867
1918 1868 #: rhodecode/templates/admin/repos/repo_edit.html:53
1919 1869 #: rhodecode/templates/settings/repo_settings.html:52
1920 1870 msgid "Optional select a group to put this repository into."
1921 msgstr ""
1871 msgstr "可选的,选择一个组将版本库放到其中"
1922 1872
1923 1873 #: rhodecode/templates/admin/repos/repo_edit.html:94
1924 1874 msgid "Enable statistics"
@@ -1926,7 +1876,7 b' msgstr "\xe5\x90\xaf\xe7\x94\xa8\xe7\xbb\x9f\xe8\xae\xa1"'
1926 1876
1927 1877 #: rhodecode/templates/admin/repos/repo_edit.html:98
1928 1878 msgid "Enable statistics window on summary page."
1929 msgstr ""
1879 msgstr "启用概况页的统计窗口"
1930 1880
1931 1881 #: rhodecode/templates/admin/repos/repo_edit.html:103
1932 1882 msgid "Enable downloads"
@@ -1934,22 +1884,20 b' msgstr "\xe5\x90\xaf\xe7\x94\xa8\xe4\xb8\x8b\xe8\xbd\xbd"'
1934 1884
1935 1885 #: rhodecode/templates/admin/repos/repo_edit.html:107
1936 1886 msgid "Enable download menu on summary page."
1937 msgstr ""
1887 msgstr "启用概况页的下载菜单"
1938 1888
1939 1889 #: rhodecode/templates/admin/repos/repo_edit.html:112
1940 1890 #: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:66
1941 #, fuzzy
1942 1891 msgid "Enable locking"
1943 msgstr "启用"
1892 msgstr "启用锁定"
1944 1893
1945 1894 #: rhodecode/templates/admin/repos/repo_edit.html:116
1946 1895 msgid "Enable lock-by-pulling on repository."
1947 msgstr ""
1896 msgstr "启用版本库的拉取锁定"
1948 1897
1949 1898 #: rhodecode/templates/admin/repos/repo_edit.html:126
1950 #, fuzzy
1951 1899 msgid "Change owner of this repository."
1952 msgstr "%s 库的修改"
1900 msgstr "修改这个版本库的所有者"
1953 1901
1954 1902 #: rhodecode/templates/admin/repos/repo_edit.html:142
1955 1903 #: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:75
@@ -1986,11 +1934,11 b' msgstr "\xe7\xa1\xae\xe8\xae\xa4\xe7\xa7\xbb\xe9\x99\xa4\xe5\xbd\x93\xe5\x89\x8d\xe7\xbb\x9f\xe8\xae\xa1"'
1986 1934
1987 1935 #: rhodecode/templates/admin/repos/repo_edit.html:162
1988 1936 msgid "Fetched to rev"
1989 msgstr ""
1937 msgstr "获取到修订"
1990 1938
1991 1939 #: rhodecode/templates/admin/repos/repo_edit.html:163
1992 1940 msgid "Stats gathered"
1993 msgstr ""
1941 msgstr "已收集的统计"
1994 1942
1995 1943 #: rhodecode/templates/admin/repos/repo_edit.html:171
1996 1944 msgid "Remote"
@@ -1998,11 +1946,11 b' msgstr "\xe8\xbf\x9c\xe7\xa8\x8b"'
1998 1946
1999 1947 #: rhodecode/templates/admin/repos/repo_edit.html:175
2000 1948 msgid "Pull changes from remote location"
2001 msgstr ""
1949 msgstr "从远程路径拉取修订集"
2002 1950
2003 1951 #: rhodecode/templates/admin/repos/repo_edit.html:175
2004 1952 msgid "Confirm to pull changes from remote side"
2005 msgstr ""
1953 msgstr "确认从远程拉取修订集"
2006 1954
2007 1955 #: rhodecode/templates/admin/repos/repo_edit.html:186
2008 1956 msgid "Cache"
@@ -2010,7 +1958,7 b' msgstr "\xe7\xbc\x93\xe5\xad\x98"'
2010 1958
2011 1959 #: rhodecode/templates/admin/repos/repo_edit.html:190
2012 1960 msgid "Invalidate repository cache"
2013 msgstr ""
1961 msgstr "清除版本库缓存"
2014 1962
2015 1963 #: rhodecode/templates/admin/repos/repo_edit.html:190
2016 1964 msgid "Confirm to invalidate repository cache"
@@ -2033,49 +1981,46 b' msgstr "\xe6\xb7\xbb\xe5\x8a\xa0\xe5\x88\xb0\xe5\x85\xac\xe5\x85\xb1\xe6\x97\xa5\xe5\xbf\x97"'
2033 1981
2034 1982 #: rhodecode/templates/admin/repos/repo_edit.html:208
2035 1983 msgid ""
2036 "All actions made on this repository will be accessible to everyone in "
2037 "public journal"
2038 msgstr ""
1984 "All actions made on this repository will be accessible to everyone in public "
1985 "journal"
1986 msgstr "任何人都可以在公共日志上看到这个版本库上的所有动作"
2039 1987
2040 1988 #: rhodecode/templates/admin/repos/repo_edit.html:215
2041 #, fuzzy
2042 1989 msgid "Locking"
2043 msgstr "锁"
1990 msgstr "锁"
2044 1991
2045 1992 #: rhodecode/templates/admin/repos/repo_edit.html:220
2046 1993 msgid "Unlock locked repo"
2047 msgstr ""
1994 msgstr "解锁版本库"
2048 1995
2049 1996 #: rhodecode/templates/admin/repos/repo_edit.html:220
2050 #, fuzzy
2051 1997 msgid "Confirm to unlock repository"
2052 msgstr "确认删除版本库"
1998 msgstr "确认解锁版本库"
2053 1999
2054 2000 #: rhodecode/templates/admin/repos/repo_edit.html:223
2055 2001 msgid "lock repo"
2056 msgstr ""
2002 msgstr "锁定版本库"
2057 2003
2058 2004 #: rhodecode/templates/admin/repos/repo_edit.html:223
2059 #, fuzzy
2060 2005 msgid "Confirm to lock repository"
2061 msgstr "确认删除版本库"
2006 msgstr "确认锁定版本库"
2062 2007
2063 2008 #: rhodecode/templates/admin/repos/repo_edit.html:224
2064 #, fuzzy
2065 2009 msgid "Repository is not locked"
2066 msgstr "版本库"
2010 msgstr "版本库未锁定"
2067 2011
2068 2012 #: rhodecode/templates/admin/repos/repo_edit.html:229
2069 msgid "Force locking on repository. Works only when anonymous access is disabled"
2070 msgstr ""
2013 msgid ""
2014 "Force locking on repository. Works only when anonymous access is disabled"
2015 msgstr "强制锁定版本库。只有在禁止匿名访问时候才有效"
2071 2016
2072 2017 #: rhodecode/templates/admin/repos/repo_edit.html:236
2073 2018 msgid "Set as fork of"
2074 msgstr ""
2019 msgstr "设置 fork 自"
2075 2020
2076 2021 #: rhodecode/templates/admin/repos/repo_edit.html:245
2077 2022 msgid "Manually set this repository as a fork of another from the list"
2078 msgstr ""
2023 msgstr "从列表中手动设置这个版本库 fork 自另一版本库"
2079 2024
2080 2025 #: rhodecode/templates/admin/repos/repo_edit.html:251
2081 2026 #: rhodecode/templates/changeset/changeset_file_comment.html:26
@@ -2093,11 +2038,13 b' msgstr "\xe7\xa1\xae\xe8\xae\xa4\xe5\x88\xa0\xe9\x99\xa4\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
2093 2038
2094 2039 #: rhodecode/templates/admin/repos/repo_edit.html:259
2095 2040 msgid ""
2096 "This repository will be renamed in a special way in order to be "
2097 "unaccesible for RhodeCode and VCS systems.\n"
2098 " If you need fully delete it from filesystem "
2099 "please do it manually"
2041 "This repository will be renamed in a special way in order to be unaccesible "
2042 "for RhodeCode and VCS systems.\n"
2043 " If you need fully delete it from filesystem please "
2044 "do it manually"
2100 2045 msgstr ""
2046 "这个版本库将以特殊的方式重命名这样 RhodeCode 和版本控制系统将不能访问它。\n"
2047 " 如果需要从文件系统完全删除,你需要手动操作"
2101 2048
2102 2049 #: rhodecode/templates/admin/repos/repo_edit_perms.html:3
2103 2050 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:3
@@ -2136,16 +2083,15 b' msgstr "\xe7\xa7\x81\xe6\x9c\x89\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
2136 2083 #: rhodecode/templates/admin/repos/repo_edit_perms.html:19
2137 2084 #: rhodecode/templates/admin/repos/repo_edit_perms.html:28
2138 2085 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:18
2139 #, fuzzy
2140 2086 msgid "default"
2141 msgstr "删除"
2087 msgstr "默认"
2142 2088
2143 2089 #: rhodecode/templates/admin/repos/repo_edit_perms.html:33
2144 2090 #: rhodecode/templates/admin/repos/repo_edit_perms.html:58
2145 2091 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:23
2146 2092 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:42
2147 2093 msgid "revoke"
2148 msgstr ""
2094 msgstr "移除"
2149 2095
2150 2096 #: rhodecode/templates/admin/repos/repo_edit_perms.html:83
2151 2097 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:67
@@ -2172,7 +2118,7 b' msgstr "\xe7\xbb\x84"'
2172 2118
2173 2119 #: rhodecode/templates/admin/repos_groups/repos_groups.html:12
2174 2120 msgid "with"
2175 msgstr ""
2121 msgstr ""
2176 2122
2177 2123 #: rhodecode/templates/admin/repos_groups/repos_groups_add.html:5
2178 2124 msgid "Add repos group"
@@ -2212,7 +2158,7 b' msgstr "\xe7\xbc\x96\xe8\xbe\x91\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe7\xbb\x84"'
2212 2158 msgid ""
2213 2159 "Enable lock-by-pulling on group. This option will be applied to all other"
2214 2160 " groups and repositories inside"
2215 msgstr ""
2161 msgstr "启用组的拉取锁定。这个选项将应用到组内的其他组和版本库"
2216 2162
2217 2163 #: rhodecode/templates/admin/repos_groups/repos_groups_show.html:5
2218 2164 msgid "Repositories groups administration"
@@ -2223,9 +2169,8 b' msgid "ADD NEW GROUP"'
2223 2169 msgstr "添加组"
2224 2170
2225 2171 #: rhodecode/templates/admin/repos_groups/repos_groups_show.html:35
2226 #, fuzzy
2227 2172 msgid "Number of toplevel repositories"
2228 msgstr "版本库数量"
2173 msgstr "顶层版本库数量"
2229 2174
2230 2175 #: rhodecode/templates/admin/repos_groups/repos_groups_show.html:36
2231 2176 #: rhodecode/templates/admin/users/users.html:87
@@ -2242,9 +2187,9 b' msgid "delete"'
2242 2187 msgstr "删除"
2243 2188
2244 2189 #: rhodecode/templates/admin/repos_groups/repos_groups_show.html:54
2245 #, fuzzy, python-format
2190 #, python-format
2246 2191 msgid "Confirm to delete this group: %s"
2247 msgstr "确认删除该组"
2192 msgstr "确认删除该版本库: %s"
2248 2193
2249 2194 #: rhodecode/templates/admin/repos_groups/repos_groups_show.html:62
2250 2195 msgid "There are no repositories groups yet"
@@ -2287,10 +2232,11 b' msgstr "\xe9\x87\x8d\xe6\x96\xb0\xe6\x89\xab\xe6\x8f\x8f\xe9\x80\x89\xe9\xa1\xb9"'
2287 2232
2288 2233 #: rhodecode/templates/admin/settings/settings.html:38
2289 2234 msgid ""
2290 "In case a repository was deleted from filesystem and there are leftovers "
2291 "in the database check this option to scan obsolete data in database and "
2292 "remove it."
2293 msgstr "如果版本库已经从文件系统删除,但数据库仍然有遗留信息,请勾选该项进行清理"
2235 "In case a repository was deleted from filesystem and there are leftovers in "
2236 "the database check this option to scan obsolete data in database and remove "
2237 "it."
2238 msgstr ""
2239 "如果版本库已经从文件系统删除,但数据库仍然有遗留信息,请勾选该项进行清理"
2294 2240
2295 2241 #: rhodecode/templates/admin/settings/settings.html:39
2296 2242 msgid "destroy old data"
@@ -2298,9 +2244,10 b' msgstr "\xe6\xb8\x85\xe7\x90\x86\xe6\x97\xa7\xe6\x95\xb0\xe6\x8d\xae"'
2298 2244
2299 2245 #: rhodecode/templates/admin/settings/settings.html:41
2300 2246 msgid ""
2301 "Rescan repositories location for new repositories. Also deletes obsolete "
2302 "if `destroy` flag is checked "
2247 "Rescan repositories location for new repositories. Also deletes obsolete if "
2248 "`destroy` flag is checked "
2303 2249 msgstr ""
2250 "重新扫描版本库路径以发现新版本库。 同时删除过时的,如果设置有 `destroy` 标志"
2304 2251
2305 2252 #: rhodecode/templates/admin/settings/settings.html:46
2306 2253 msgid "Rescan repositories"
@@ -2332,11 +2279,11 b' msgstr "\xe5\xba\x94\xe7\x94\xa8\xe5\x90\x8d\xe7\xa7\xb0"'
2332 2279
2333 2280 #: rhodecode/templates/admin/settings/settings.html:95
2334 2281 msgid "Realm text"
2335 msgstr ""
2282 msgstr "Realm text"
2336 2283
2337 2284 #: rhodecode/templates/admin/settings/settings.html:104
2338 2285 msgid "GA code"
2339 msgstr ""
2286 msgstr "GA code"
2340 2287
2341 2288 #: rhodecode/templates/admin/settings/settings.html:112
2342 2289 #: rhodecode/templates/admin/settings/settings.html:167
@@ -2345,56 +2292,52 b' msgid "Save settings"'
2345 2292 msgstr "保存设置"
2346 2293
2347 2294 #: rhodecode/templates/admin/settings/settings.html:119
2348 #, fuzzy
2349 2295 msgid "Visualisation settings"
2350 msgstr "全局设置"
2296 msgstr "可视化设置"
2351 2297
2352 2298 #: rhodecode/templates/admin/settings/settings.html:128
2353 #, fuzzy
2354 2299 msgid "Icons"
2355 msgstr "选项"
2300 msgstr "图标"
2356 2301
2357 2302 #: rhodecode/templates/admin/settings/settings.html:133
2358 2303 msgid "Show public repo icon on repositories"
2359 msgstr ""
2304 msgstr "显示公共版本库图标"
2360 2305
2361 2306 #: rhodecode/templates/admin/settings/settings.html:137
2362 #, fuzzy
2363 2307 msgid "Show private repo icon on repositories"
2364 msgstr "私有版本库"
2308 msgstr "显示私有版本库图标"
2365 2309
2366 2310 #: rhodecode/templates/admin/settings/settings.html:144
2367 #, fuzzy
2368 2311 msgid "Meta-Tagging"
2369 msgstr "设置"
2312 msgstr "元标记"
2370 2313
2371 2314 #: rhodecode/templates/admin/settings/settings.html:149
2372 2315 msgid "Stylify recognised metatags:"
2373 msgstr ""
2316 msgstr "样式化识别的元标记"
2374 2317
2375 2318 #: rhodecode/templates/admin/settings/settings.html:176
2376 #, fuzzy
2377 2319 msgid "VCS settings"
2378 msgstr "设置"
2320 msgstr "版本控制系统设置"
2379 2321
2380 2322 #: rhodecode/templates/admin/settings/settings.html:185
2381 2323 msgid "Web"
2382 msgstr ""
2324 msgstr "网络"
2383 2325
2384 2326 #: rhodecode/templates/admin/settings/settings.html:190
2385 #, fuzzy
2386 2327 msgid "require ssl for vcs operations"
2387 msgstr "使用 SSL 推送"
2328 msgstr "要求使用 SSL进行版本控制系统操作"
2388 2329
2389 2330 #: rhodecode/templates/admin/settings/settings.html:192
2390 2331 msgid ""
2391 "RhodeCode will require SSL for pushing or pulling. If SSL is missing it "
2392 "will return HTTP Error 406: Not Acceptable"
2332 "RhodeCode will require SSL for pushing or pulling. If SSL is missing it will "
2333 "return HTTP Error 406: Not Acceptable"
2393 2334 msgstr ""
2335 "勾选后 RhodeCode 将要求使用 SSL 进行推送和拉取。如果没有使用 SSL 将返回 HTTP "
2336 "406错误:Not Acceptable"
2394 2337
2395 2338 #: rhodecode/templates/admin/settings/settings.html:198
2396 2339 msgid "Hooks"
2397 msgstr ""
2340 msgstr "钩子"
2398 2341
2399 2342 #: rhodecode/templates/admin/settings/settings.html:203
2400 2343 msgid "Update repository after push (hg update)"
@@ -2417,23 +2360,22 b' msgid "advanced setup"'
2417 2360 msgstr "高级设置"
2418 2361
2419 2362 #: rhodecode/templates/admin/settings/settings.html:224
2420 #, fuzzy
2421 2363 msgid "Mercurial Extensions"
2422 msgstr "Mercurial 版本库"
2364 msgstr "Mercurial 扩展"
2423 2365
2424 2366 #: rhodecode/templates/admin/settings/settings.html:229
2425 2367 msgid "largefiles extensions"
2426 msgstr ""
2368 msgstr "大文件扩展"
2427 2369
2428 2370 #: rhodecode/templates/admin/settings/settings.html:233
2429 2371 msgid "hgsubversion extensions"
2430 msgstr ""
2372 msgstr "hgsubversion 扩展"
2431 2373
2432 2374 #: rhodecode/templates/admin/settings/settings.html:235
2433 2375 msgid ""
2434 2376 "Requires hgsubversion library installed. Allows clonning from svn remote "
2435 2377 "locations"
2436 msgstr ""
2378 msgstr " 允许从远程 svn 地址克隆。需要安装 hgsubversion 库"
2437 2379
2438 2380 #: rhodecode/templates/admin/settings/settings.html:245
2439 2381 msgid "Repositories location"
@@ -2442,8 +2384,8 b' msgstr "\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93\xe8\xb7\xaf\xe5\xbe\x84"'
2442 2384 #: rhodecode/templates/admin/settings/settings.html:250
2443 2385 msgid ""
2444 2386 "This a crucial application setting. If you are really sure you need to "
2445 "change this, you must restart application in order to make this setting "
2446 "take effect. Click this label to unlock."
2387 "change this, you must restart application in order to make this setting take "
2388 "effect. Click this label to unlock."
2447 2389 msgstr "这是一个关键设置。如果确认修改该项设置,请重启服务以便设置生效。"
2448 2390
2449 2391 #: rhodecode/templates/admin/settings/settings.html:251
@@ -2452,30 +2394,27 b' msgstr "\xe8\xa7\xa3\xe9\x94\x81"'
2452 2394
2453 2395 #: rhodecode/templates/admin/settings/settings.html:252
2454 2396 msgid ""
2455 "Location where repositories are stored. After changing this value a "
2456 "restart, and rescan is required"
2457 msgstr ""
2397 "Location where repositories are stored. After changing this value a restart, "
2398 "and rescan is required"
2399 msgstr "版本库存储路径。 修改后需要重启和重新扫描"
2458 2400
2459 2401 #: rhodecode/templates/admin/settings/settings.html:272
2460 2402 msgid "Test Email"
2461 msgstr ""
2403 msgstr "测试邮件"
2462 2404
2463 2405 #: rhodecode/templates/admin/settings/settings.html:280
2464 #, fuzzy
2465 2406 msgid "Email to"
2466 msgstr "电子邮件"
2407 msgstr "发送到"
2467 2408
2468 2409 #: rhodecode/templates/admin/settings/settings.html:288
2469 #, fuzzy
2470 2410 msgid "Send"
2471 msgstr ""
2411 msgstr "发送"
2472 2412
2473 2413 #: rhodecode/templates/admin/settings/settings.html:294
2474 2414 msgid "System Info and Packages"
2475 msgstr ""
2415 msgstr "系统和软件包信息"
2476 2416
2477 2417 #: rhodecode/templates/admin/settings/settings.html:297
2478 #, fuzzy
2479 2418 msgid "show"
2480 2419 msgstr "显示"
2481 2420
@@ -2493,9 +2432,8 b' msgid "add new user"'
2493 2432 msgstr "添加新用户"
2494 2433
2495 2434 #: rhodecode/templates/admin/users/user_add.html:50
2496 #, fuzzy
2497 2435 msgid "Password confirmation"
2498 msgstr "密码不符"
2436 msgstr "确认密码"
2499 2437
2500 2438 #: rhodecode/templates/admin/users/user_add.html:86
2501 2439 #: rhodecode/templates/admin/users/user_edit.html:113
@@ -2521,11 +2459,11 b' msgstr "\xe4\xbd\xbf\xe7\x94\xa8\xe4\xb8\xad"'
2521 2459 #: rhodecode/templates/admin/users/user_edit.html:43
2522 2460 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:20
2523 2461 msgid "API key"
2524 msgstr ""
2462 msgstr "API 密钥"
2525 2463
2526 2464 #: rhodecode/templates/admin/users/user_edit.html:59
2527 2465 msgid "LDAP DN"
2528 msgstr ""
2466 msgstr "LDAP DN"
2529 2467
2530 2468 #: rhodecode/templates/admin/users/user_edit.html:68
2531 2469 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:35
@@ -2535,13 +2473,12 b' msgstr "\xe6\x96\xb0\xe5\xaf\x86\xe7\xa0\x81"'
2535 2473 #: rhodecode/templates/admin/users/user_edit.html:77
2536 2474 #: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
2537 2475 msgid "New password confirmation"
2538 msgstr ""
2476 msgstr "确认新密码"
2539 2477
2540 2478 #: rhodecode/templates/admin/users/user_edit.html:147
2541 2479 #: rhodecode/templates/admin/users_groups/users_group_edit.html:108
2542 #, fuzzy
2543 2480 msgid "Inherit default permissions"
2544 msgstr "默认权限"
2481 msgstr "继承默认权限"
2545 2482
2546 2483 #: rhodecode/templates/admin/users/user_edit.html:152
2547 2484 #: rhodecode/templates/admin/users_groups/users_group_edit.html:113
@@ -2549,7 +2486,7 b' msgstr "\xe9\xbb\x98\xe8\xae\xa4\xe6\x9d\x83\xe9\x99\x90"'
2549 2486 msgid ""
2550 2487 "Select to inherit permissions from %s settings. With this selected below "
2551 2488 "options does not have any action"
2552 msgstr ""
2489 msgstr "勾选以从 %s 继承权限设置。 勾选后下面的选项将不起作用"
2553 2490
2554 2491 #: rhodecode/templates/admin/users/user_edit.html:158
2555 2492 #: rhodecode/templates/admin/users_groups/users_group_edit.html:119
@@ -2558,48 +2495,41 b' msgstr "\xe5\x88\x9b\xe5\xbb\xba\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
2558 2495
2559 2496 #: rhodecode/templates/admin/users/user_edit.html:166
2560 2497 #: rhodecode/templates/admin/users_groups/users_group_edit.html:127
2561 #, fuzzy
2562 2498 msgid "Fork repositories"
2563 msgstr "版本库"
2499 msgstr "分支版本库"
2564 2500
2565 2501 #: rhodecode/templates/admin/users/user_edit.html:186
2566 2502 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:22
2567 2503 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:39
2568 #, fuzzy
2569 2504 msgid "Nothing here yet"
2570 msgstr "尚无操作"
2505 msgstr "无条目"
2571 2506
2572 2507 #: rhodecode/templates/admin/users/user_edit.html:193
2573 2508 #: rhodecode/templates/admin/users/user_edit_my_account.html:60
2574 2509 #: rhodecode/templates/admin/users/user_edit_my_account.html:194
2575 #, fuzzy
2576 2510 msgid "Permission"
2577 2511 msgstr "权限"
2578 2512
2579 2513 #: rhodecode/templates/admin/users/user_edit.html:194
2580 #, fuzzy
2581 2514 msgid "Edit Permission"
2582 msgstr "版本库权限"
2515 msgstr "编辑权限"
2583 2516
2584 2517 #: rhodecode/templates/admin/users/user_edit.html:243
2585 #, fuzzy
2586 2518 msgid "Email addresses"
2587 2519 msgstr "邮件地址"
2588 2520
2589 2521 #: rhodecode/templates/admin/users/user_edit.html:256
2590 #, fuzzy, python-format
2522 #, python-format
2591 2523 msgid "Confirm to delete this email: %s"
2592 msgstr "确认删除该用户"
2524 msgstr "确认删除邮件地址: %s"
2593 2525
2594 2526 #: rhodecode/templates/admin/users/user_edit.html:270
2595 #, fuzzy
2596 2527 msgid "New email address"
2597 msgstr "邮件地址"
2528 msgstr "增加邮件地址"
2598 2529
2599 2530 #: rhodecode/templates/admin/users/user_edit.html:277
2600 #, fuzzy
2601 2531 msgid "Add"
2602 msgstr "增"
2532 msgstr "增"
2603 2533
2604 2534 #: rhodecode/templates/admin/users/user_edit_my_account.html:5
2605 2535 #: rhodecode/templates/base/base.html:124
@@ -2611,49 +2541,44 b' msgid "My Account"'
2611 2541 msgstr "我的账户"
2612 2542
2613 2543 #: rhodecode/templates/admin/users/user_edit_my_account.html:35
2614 #, fuzzy
2615 2544 msgid "My permissions"
2616 msgstr "权限"
2545 msgstr "我的权限"
2617 2546
2618 2547 #: rhodecode/templates/admin/users/user_edit_my_account.html:38
2619 2548 #: rhodecode/templates/journal/journal.html:41
2620 #, fuzzy
2621 2549 msgid "My repos"
2622 msgstr "版本库"
2550 msgstr "我的版本库"
2623 2551
2624 2552 #: rhodecode/templates/admin/users/user_edit_my_account.html:41
2625 #, fuzzy
2626 2553 msgid "My pull requests"
2627 msgstr "创建用户 %s"
2554 msgstr "我的拉取请求"
2628 2555
2629 2556 #: rhodecode/templates/admin/users/user_edit_my_account.html:45
2630 #, fuzzy
2631 2557 msgid "Add repo"
2632 msgstr "新"
2558 msgstr "新建版本库"
2633 2559
2634 2560 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:2
2635 2561 msgid "Opened by me"
2636 msgstr ""
2562 msgstr "我创建的"
2637 2563
2638 2564 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:10
2639 2565 #, python-format
2640 2566 msgid "Pull request #%s opened on %s"
2641 msgstr ""
2567 msgstr "拉取请求 #%s 创建于 %s"
2642 2568
2643 2569 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:15
2644 #, fuzzy
2645 2570 msgid "Confirm to delete this pull request"
2646 msgstr "确认删除版本库"
2571 msgstr "确认删除拉取请求"
2647 2572
2648 2573 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:26
2649 2574 msgid "I participate in"
2650 msgstr ""
2575 msgstr "我参与的"
2651 2576
2652 2577 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:33
2653 2578 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:30
2654 2579 #, python-format
2655 2580 msgid "Pull request #%s opened by %s on %s"
2656 msgstr ""
2581 msgstr "拉取请求 #%s 由 %s 创建于 %s"
2657 2582
2658 2583 #: rhodecode/templates/admin/users/user_edit_my_account_repos.html:7
2659 2584 #: rhodecode/templates/bookmarks/bookmarks.html:40
@@ -2672,9 +2597,9 b' msgstr "\xe7\xa7\x81\xe6\x9c\x89"'
2672 2597
2673 2598 #: rhodecode/templates/admin/users/user_edit_my_account_repos.html:31
2674 2599 #: rhodecode/templates/data_table/_dt_elements.html:7
2675 #, fuzzy, python-format
2600 #, python-format
2676 2601 msgid "Confirm to delete this repository: %s"
2677 msgstr "确认删除版本库"
2602 msgstr "确认删除版本库: %s"
2678 2603
2679 2604 #: rhodecode/templates/admin/users/user_edit_my_account_repos.html:38
2680 2605 #: rhodecode/templates/journal/journal.html:94
@@ -2684,7 +2609,7 b' msgstr "\xe6\xb2\xa1\xe6\x9c\x89\xe4\xbb\xbb\xe4\xbd\x95\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
2684 2609 #: rhodecode/templates/admin/users/user_edit_my_account_repos.html:40
2685 2610 #: rhodecode/templates/journal/journal.html:96
2686 2611 msgid "create one now"
2687 msgstr ""
2612 msgstr "创建一个"
2688 2613
2689 2614 #: rhodecode/templates/admin/users/users.html:5
2690 2615 msgid "Users administration"
@@ -2704,7 +2629,6 b' msgid "username"'
2704 2629 msgstr "用户名"
2705 2630
2706 2631 #: rhodecode/templates/admin/users/users.html:80
2707 #, fuzzy
2708 2632 msgid "firstname"
2709 2633 msgstr "名"
2710 2634
@@ -2724,7 +2648,7 b' msgstr "\xe5\x90\xaf\xe7\x94\xa8"'
2724 2648 #: rhodecode/templates/admin/users/users.html:86
2725 2649 #: rhodecode/templates/base/base.html:226
2726 2650 msgid "ldap"
2727 msgstr ""
2651 msgstr "LDAP"
2728 2652
2729 2653 #: rhodecode/templates/admin/users_groups/users_group_add.html:5
2730 2654 msgid "Add users group"
@@ -2768,9 +2692,8 b' msgid "Add all elements"'
2768 2692 msgstr "添加全部项目"
2769 2693
2770 2694 #: rhodecode/templates/admin/users_groups/users_group_edit.html:146
2771 #, fuzzy
2772 2695 msgid "Group members"
2773 msgstr "选择组成员"
2696 msgstr "拥护者成员"
2774 2697
2775 2698 #: rhodecode/templates/admin/users_groups/users_groups.html:5
2776 2699 msgid "Users groups administration"
@@ -2790,9 +2713,9 b' msgid "members"'
2790 2713 msgstr "成员"
2791 2714
2792 2715 #: rhodecode/templates/admin/users_groups/users_groups.html:45
2793 #, fuzzy, python-format
2716 #, python-format
2794 2717 msgid "Confirm to delete this users group: %s"
2795 msgstr "确认删除该组"
2718 msgstr "确认删除该组: %s"
2796 2719
2797 2720 #: rhodecode/templates/base/base.html:41
2798 2721 msgid "Submit a bug"
@@ -2800,20 +2723,19 b' msgstr "\xe6\x8f\x90\xe4\xba\xa4 bug"'
2800 2723
2801 2724 #: rhodecode/templates/base/base.html:77
2802 2725 msgid "Login to your account"
2803 msgstr ""
2726 msgstr "登录"
2804 2727
2805 2728 #: rhodecode/templates/base/base.html:100
2806 2729 msgid "Forgot password ?"
2807 2730 msgstr "忘记密码?"
2808 2731
2809 2732 #: rhodecode/templates/base/base.html:107
2810 #, fuzzy
2811 2733 msgid "Log In"
2812 2734 msgstr "登录"
2813 2735
2814 2736 #: rhodecode/templates/base/base.html:118
2815 2737 msgid "Inbox"
2816 msgstr ""
2738 msgstr "收件箱"
2817 2739
2818 2740 #: rhodecode/templates/base/base.html:122
2819 2741 #: rhodecode/templates/base/base.html:300
@@ -2830,7 +2752,8 b' msgstr ""'
2830 2752 #: rhodecode/templates/files/files_add.html:15
2831 2753 #: rhodecode/templates/files/files_edit.html:15
2832 2754 #: rhodecode/templates/followers/followers.html:9
2833 #: rhodecode/templates/forks/fork.html:9 rhodecode/templates/forks/forks.html:9
2755 #: rhodecode/templates/forks/fork.html:9
2756 #: rhodecode/templates/forks/forks.html:9
2834 2757 #: rhodecode/templates/pullrequests/pullrequest.html:8
2835 2758 #: rhodecode/templates/pullrequests/pullrequest_show.html:8
2836 2759 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:8
@@ -2861,12 +2784,12 b' msgstr "\xe5\x88\x87\xe6\x8d\xa2\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
2861 2784
2862 2785 #: rhodecode/templates/base/base.html:146
2863 2786 msgid "Products"
2864 msgstr ""
2787 msgstr "产品"
2865 2788
2866 2789 #: rhodecode/templates/base/base.html:152
2867 2790 #: rhodecode/templates/base/base.html:182
2868 2791 msgid "loading..."
2869 msgstr ""
2792 msgstr "载入中..."
2870 2793
2871 2794 #: rhodecode/templates/base/base.html:158
2872 2795 #: rhodecode/templates/base/base.html:160
@@ -2885,7 +2808,7 b' msgstr "\xe6\xa6\x82\xe5\x86\xb5"'
2885 2808 #: rhodecode/templates/data_table/_dt_elements.html:25
2886 2809 #: rhodecode/templates/data_table/_dt_elements.html:27
2887 2810 msgid "Changelog"
2888 msgstr "修记录"
2811 msgstr "修记录"
2889 2812
2890 2813 #: rhodecode/templates/base/base.html:175
2891 2814 #: rhodecode/templates/base/base.html:177
@@ -2900,7 +2823,7 b' msgstr "\xe5\x88\x87\xe6\x8d\xa2\xe5\x88\xb0"'
2900 2823 #: rhodecode/templates/data_table/_dt_elements.html:33
2901 2824 #: rhodecode/templates/data_table/_dt_elements.html:35
2902 2825 msgid "Files"
2903 msgstr "档案"
2826 msgstr "浏览"
2904 2827
2905 2828 #: rhodecode/templates/base/base.html:195
2906 2829 #: rhodecode/templates/base/base.html:199
@@ -2917,12 +2840,12 b' msgstr "\xe8\xae\xbe\xe7\xbd\xae"'
2917 2840 #: rhodecode/templates/data_table/_dt_elements.html:80
2918 2841 #: rhodecode/templates/forks/fork.html:13
2919 2842 msgid "fork"
2920 msgstr ""
2843 msgstr "分支"
2921 2844
2922 2845 #: rhodecode/templates/base/base.html:211
2923 2846 #: rhodecode/templates/changelog/changelog.html:40
2924 2847 msgid "Open new pull request"
2925 msgstr ""
2848 msgstr "新建拉取请求"
2926 2849
2927 2850 #: rhodecode/templates/base/base.html:213
2928 2851 msgid "search"
@@ -2943,12 +2866,12 b' msgstr "\xe6\x9d\x83\xe9\x99\x90"'
2943 2866 #: rhodecode/templates/base/base.html:238
2944 2867 #: rhodecode/templates/base/base.html:240
2945 2868 msgid "Followers"
2946 msgstr "跟随者"
2869 msgstr "关注者"
2947 2870
2948 2871 #: rhodecode/templates/base/base.html:246
2949 2872 #: rhodecode/templates/base/base.html:248
2950 2873 msgid "Forks"
2951 msgstr ""
2874 msgstr "分支"
2952 2875
2953 2876 #: rhodecode/templates/base/base.html:327
2954 2877 #: rhodecode/templates/base/base.html:329
@@ -2958,20 +2881,19 b' msgid "Search"'
2958 2881 msgstr "搜索"
2959 2882
2960 2883 #: rhodecode/templates/base/root.html:42
2961 #, fuzzy
2962 2884 msgid "add another comment"
2963 msgstr "添加成员"
2885 msgstr "添加新的评论"
2964 2886
2965 2887 #: rhodecode/templates/base/root.html:43
2966 2888 #: rhodecode/templates/journal/journal.html:120
2967 2889 #: rhodecode/templates/summary/summary.html:57
2968 2890 msgid "Stop following this repository"
2969 msgstr "停止跟随该版本库"
2891 msgstr "停止关注该版本库"
2970 2892
2971 2893 #: rhodecode/templates/base/root.html:44
2972 2894 #: rhodecode/templates/summary/summary.html:61
2973 2895 msgid "Start following this repository"
2974 msgstr "开始跟随该版本库"
2896 msgstr "开始关注该版本库"
2975 2897
2976 2898 #: rhodecode/templates/base/root.html:45
2977 2899 msgid "Group"
@@ -2979,7 +2901,7 b' msgstr "\xe7\xbb\x84"'
2979 2901
2980 2902 #: rhodecode/templates/base/root.html:47
2981 2903 msgid "search truncated"
2982 msgstr ""
2904 msgstr "搜索被截断"
2983 2905
2984 2906 #: rhodecode/templates/base/root.html:48
2985 2907 msgid "no matching files"
@@ -2988,31 +2910,28 b' msgstr "\xe6\xb2\xa1\xe6\x9c\x89\xe7\xac\xa6\xe5\x90\x88\xe7\x9a\x84\xe6\x96\x87\xe4\xbb\xb6"'
2988 2910 #: rhodecode/templates/bookmarks/bookmarks.html:5
2989 2911 #, python-format
2990 2912 msgid "%s Bookmarks"
2991 msgstr ""
2913 msgstr "%s 书签"
2992 2914
2993 2915 #: rhodecode/templates/bookmarks/bookmarks.html:39
2994 2916 #: rhodecode/templates/bookmarks/bookmarks_data.html:8
2995 2917 #: rhodecode/templates/branches/branches.html:54
2996 2918 #: rhodecode/templates/tags/tags.html:39
2997 2919 #: rhodecode/templates/tags/tags_data.html:8
2998 #, fuzzy
2999 2920 msgid "Author"
3000 2921 msgstr "作者"
3001 2922
3002 2923 #: rhodecode/templates/branches/branches.html:5
3003 #, fuzzy, python-format
2924 #, python-format
3004 2925 msgid "%s Branches"
3005 msgstr "分支"
2926 msgstr "%s 分支"
3006 2927
3007 2928 #: rhodecode/templates/branches/branches.html:29
3008 #, fuzzy
3009 2929 msgid "Compare branches"
3010 msgstr "分支"
2930 msgstr "比较分支"
3011 2931
3012 2932 #: rhodecode/templates/branches/branches.html:57
3013 2933 #: rhodecode/templates/compare/compare_diff.html:5
3014 2934 #: rhodecode/templates/compare/compare_diff.html:13
3015 #, fuzzy
3016 2935 msgid "Compare"
3017 2936 msgstr "比较显示"
3018 2937
@@ -3035,31 +2954,30 b' msgid "revision"'
3035 2954 msgstr "修订"
3036 2955
3037 2956 #: rhodecode/templates/branches/branches_data.html:10
3038 #, fuzzy
3039 2957 msgid "compare"
3040 2958 msgstr "比较显示"
3041 2959
3042 2960 #: rhodecode/templates/changelog/changelog.html:6
3043 #, fuzzy, python-format
2961 #, python-format
3044 2962 msgid "%s Changelog"
3045 msgstr "修改记录"
2963 msgstr "%s 修订记录"
3046 2964
3047 2965 #: rhodecode/templates/changelog/changelog.html:15
3048 2966 #, python-format
3049 2967 msgid "showing %d out of %d revision"
3050 2968 msgid_plural "showing %d out of %d revisions"
3051 msgstr[0] ""
2969 msgstr[0] "显示 %2d 中的 %1d 个版本"
3052 2970
3053 2971 #: rhodecode/templates/changelog/changelog.html:37
3054 2972 #: rhodecode/templates/forks/forks_data.html:19
3055 2973 #, python-format
3056 2974 msgid "compare fork with %s"
3057 msgstr ""
2975 msgstr "与 %s 比较"
3058 2976
3059 2977 #: rhodecode/templates/changelog/changelog.html:37
3060 2978 #: rhodecode/templates/forks/forks_data.html:21
3061 2979 msgid "Compare fork"
3062 msgstr ""
2980 msgstr "比较分支"
3063 2981
3064 2982 #: rhodecode/templates/changelog/changelog.html:46
3065 2983 msgid "Show"
@@ -3068,33 +2986,32 b' msgstr "\xe6\x98\xbe\xe7\xa4\xba"'
3068 2986 #: rhodecode/templates/changelog/changelog.html:72
3069 2987 #: rhodecode/templates/summary/summary.html:364
3070 2988 msgid "show more"
3071 msgstr ""
2989 msgstr "显示更多"
3072 2990
3073 2991 #: rhodecode/templates/changelog/changelog.html:76
3074 2992 msgid "Affected number of files, click to show more details"
3075 msgstr ""
2993 msgstr "影响的文件数,点击显示详细信息"
3076 2994
3077 2995 #: rhodecode/templates/changelog/changelog.html:89
3078 2996 #: rhodecode/templates/changeset/changeset.html:38
3079 2997 #: rhodecode/templates/changeset/changeset_file_comment.html:20
3080 2998 #: rhodecode/templates/changeset/changeset_range.html:46
3081 #, fuzzy
3082 2999 msgid "Changeset status"
3083 msgstr "变更集"
3000 msgstr "修订集状态"
3084 3001
3085 3002 #: rhodecode/templates/changelog/changelog.html:92
3086 3003 msgid "Click to open associated pull request"
3087 msgstr ""
3004 msgstr "点击建立相关的拉取请求"
3088 3005
3089 3006 #: rhodecode/templates/changelog/changelog.html:102
3090 3007 #: rhodecode/templates/changeset/changeset.html:78
3091 3008 msgid "Parent"
3092 msgstr ""
3009 msgstr "父版本"
3093 3010
3094 3011 #: rhodecode/templates/changelog/changelog.html:108
3095 3012 #: rhodecode/templates/changeset/changeset.html:84
3096 3013 msgid "No parents"
3097 msgstr ""
3014 msgstr "无父版本"
3098 3015
3099 3016 #: rhodecode/templates/changelog/changelog.html:113
3100 3017 #: rhodecode/templates/changeset/changeset.html:88
@@ -3112,7 +3029,7 b' msgstr "\xe5\x88\x86\xe6\x94\xaf"'
3112 3029
3113 3030 #: rhodecode/templates/changelog/changelog.html:122
3114 3031 msgid "bookmark"
3115 msgstr ""
3032 msgstr "书签"
3116 3033
3117 3034 #: rhodecode/templates/changelog/changelog.html:128
3118 3035 #: rhodecode/templates/changeset/changeset.html:96
@@ -3121,7 +3038,7 b' msgstr "\xe6\xa0\x87\xe7\xad\xbe"'
3121 3038
3122 3039 #: rhodecode/templates/changelog/changelog.html:164
3123 3040 msgid "Show selected changes __S -> __E"
3124 msgstr ""
3041 msgstr "显示选定的修订集 __S -> __E"
3125 3042
3126 3043 #: rhodecode/templates/changelog/changelog.html:255
3127 3044 msgid "There are no changes yet"
@@ -3150,16 +3067,16 b' msgstr "\xe6\xb7\xbb\xe5\x8a\xa0"'
3150 3067 #: rhodecode/templates/changeset/changeset.html:72
3151 3068 #, python-format
3152 3069 msgid "affected %s files"
3153 msgstr ""
3070 msgstr "影响 %s 文件"
3154 3071
3155 3072 #: rhodecode/templates/changeset/changeset.html:6
3156 #, fuzzy, python-format
3073 #, python-format
3157 3074 msgid "%s Changeset"
3158 msgstr "无变更"
3075 msgstr "%s 修订集"
3159 3076
3160 3077 #: rhodecode/templates/changeset/changeset.html:14
3161 3078 msgid "Changeset"
3162 msgstr ""
3079 msgstr "修订集"
3163 3080
3164 3081 #: rhodecode/templates/changeset/changeset.html:43
3165 3082 #: rhodecode/templates/changeset/diff_block.html:20
@@ -3173,87 +3090,85 b' msgstr "\xe4\xb8\x8b\xe8\xbd\xbd diff"'
3173 3090
3174 3091 #: rhodecode/templates/changeset/changeset.html:48
3175 3092 #: rhodecode/templates/changeset/changeset_file_comment.html:82
3176 #, fuzzy, python-format
3093 #, python-format
3177 3094 msgid "%d comment"
3178 3095 msgid_plural "%d comments"
3179 msgstr[0] "提交"
3096 msgstr[0] "%d 条评论"
3180 3097
3181 3098 #: rhodecode/templates/changeset/changeset.html:48
3182 3099 #: rhodecode/templates/changeset/changeset_file_comment.html:82
3183 3100 #, python-format
3184 3101 msgid "(%d inline)"
3185 3102 msgid_plural "(%d inline)"
3186 msgstr[0] ""
3103 msgstr[0] "(%d 内嵌)"
3187 3104
3188 3105 #: rhodecode/templates/changeset/changeset.html:103
3189 3106 #, python-format
3190 3107 msgid "%s files affected with %s insertions and %s deletions:"
3191 msgstr ""
3108 msgstr "%s 个文件受影响包括 %s 行插入和 %s 行删除:"
3192 3109
3193 3110 #: rhodecode/templates/changeset/changeset.html:119
3194 3111 msgid "Changeset was too big and was cut off..."
3195 msgstr ""
3112 msgstr "修订集太大已被截断......"
3196 3113
3197 3114 #: rhodecode/templates/changeset/changeset_file_comment.html:42
3198 3115 msgid "Submitting..."
3199 msgstr ""
3116 msgstr "提交中……"
3200 3117
3201 3118 #: rhodecode/templates/changeset/changeset_file_comment.html:45
3202 3119 msgid "Commenting on line {1}."
3203 msgstr ""
3120 msgstr "在 {1} 行上评论"
3204 3121
3205 3122 #: rhodecode/templates/changeset/changeset_file_comment.html:46
3206 3123 #: rhodecode/templates/changeset/changeset_file_comment.html:121
3207 3124 #, python-format
3208 3125 msgid "Comments parsed using %s syntax with %s support."
3209 msgstr ""
3126 msgstr "评论使用 %s 语法并支持 %s"
3210 3127
3211 3128 #: rhodecode/templates/changeset/changeset_file_comment.html:48
3212 3129 #: rhodecode/templates/changeset/changeset_file_comment.html:123
3213 msgid "Use @username inside this text to send notification to this RhodeCode user"
3214 msgstr ""
3130 msgid ""
3131 "Use @username inside this text to send notification to this RhodeCode user"
3132 msgstr "在文本中使用 @用户名 以发送通知到该 RhodeCode 用户"
3215 3133
3216 3134 #: rhodecode/templates/changeset/changeset_file_comment.html:59
3217 3135 #: rhodecode/templates/changeset/changeset_file_comment.html:138
3218 #, fuzzy
3219 3136 msgid "Comment"
3220 msgstr "提交"
3137 msgstr "评论"
3221 3138
3222 3139 #: rhodecode/templates/changeset/changeset_file_comment.html:60
3223 3140 #: rhodecode/templates/changeset/changeset_file_comment.html:71
3224 3141 msgid "Hide"
3225 msgstr ""
3142 msgstr "影藏"
3226 3143
3227 3144 #: rhodecode/templates/changeset/changeset_file_comment.html:67
3228 #, fuzzy
3229 3145 msgid "You need to be logged in to comment."
3230 msgstr "必须登录才能访问该页面"
3146 msgstr "必须登录才能评论"
3231 3147
3232 3148 #: rhodecode/templates/changeset/changeset_file_comment.html:67
3233 3149 msgid "Login now"
3234 msgstr ""
3150 msgstr "现在登陆"
3235 3151
3236 3152 #: rhodecode/templates/changeset/changeset_file_comment.html:118
3237 3153 msgid "Leave a comment"
3238 msgstr ""
3154 msgstr "发表评论"
3239 3155
3240 3156 #: rhodecode/templates/changeset/changeset_file_comment.html:124
3241 3157 msgid "Check this to change current status of code-review for this changeset"
3242 msgstr ""
3158 msgstr "勾选以改变这个修订集的代码审查状态"
3243 3159
3244 3160 #: rhodecode/templates/changeset/changeset_file_comment.html:124
3245 #, fuzzy
3246 3161 msgid "change status"
3247 msgstr "变更集"
3162 msgstr "改变状态"
3248 3163
3249 3164 #: rhodecode/templates/changeset/changeset_file_comment.html:140
3250 3165 msgid "Comment and close"
3251 msgstr ""
3166 msgstr "评论并关闭"
3252 3167
3253 3168 #: rhodecode/templates/changeset/changeset_range.html:5
3254 #, fuzzy, python-format
3169 #, python-format
3255 3170 msgid "%s Changesets"
3256 msgstr "变更集"
3171 msgstr "%s 修订集"
3257 3172
3258 3173 #: rhodecode/templates/changeset/changeset_range.html:29
3259 3174 #: rhodecode/templates/compare/compare_diff.html:29
@@ -3264,26 +3179,23 b' msgstr "\xe6\xaf\x94\xe8\xbe\x83\xe6\x98\xbe\xe7\xa4\xba"'
3264 3179 #: rhodecode/templates/compare/compare_diff.html:41
3265 3180 #: rhodecode/templates/pullrequests/pullrequest_show.html:69
3266 3181 msgid "Files affected"
3267 msgstr ""
3182 msgstr "影响文件"
3268 3183
3269 3184 #: rhodecode/templates/changeset/diff_block.html:19
3270 3185 msgid "diff"
3271 msgstr ""
3186 msgstr "差别"
3272 3187
3273 3188 #: rhodecode/templates/changeset/diff_block.html:27
3274 #, fuzzy
3275 3189 msgid "show inline comments"
3276 msgstr "文件内容"
3190 msgstr "显示内嵌评论"
3277 3191
3278 3192 #: rhodecode/templates/compare/compare_cs.html:5
3279 #, fuzzy
3280 3193 msgid "No changesets"
3281 msgstr "无修订"
3194 msgstr "无修订"
3282 3195
3283 3196 #: rhodecode/templates/compare/compare_diff.html:37
3284 #, fuzzy
3285 3197 msgid "Outgoing changesets"
3286 msgstr "尚无修订"
3198 msgstr "传出修订集"
3287 3199
3288 3200 #: rhodecode/templates/data_table/_dt_elements.html:39
3289 3201 #: rhodecode/templates/data_table/_dt_elements.html:41
@@ -3313,40 +3225,40 b' msgstr "\xe5\x85\xac\xe5\x85\xb1\xe7\x89\x88\xe6\x9c\xac\xe5\xba\x93"'
3313 3225 #: rhodecode/templates/summary/summary.html:87
3314 3226 #: rhodecode/templates/summary/summary.html:88
3315 3227 msgid "Fork of"
3316 msgstr ""
3228 msgstr "分支自"
3317 3229
3318 3230 #: rhodecode/templates/data_table/_dt_elements.html:92
3319 3231 msgid "No changesets yet"
3320 msgstr "无修订"
3232 msgstr "无修订"
3321 3233
3322 3234 #: rhodecode/templates/data_table/_dt_elements.html:104
3323 #, fuzzy, python-format
3235 #, python-format
3324 3236 msgid "Confirm to delete this user: %s"
3325 msgstr "确认删除用户"
3237 msgstr "确认删除用户: %s"
3326 3238
3327 3239 #: rhodecode/templates/email_templates/main.html:8
3328 3240 msgid "This is an notification from RhodeCode."
3329 msgstr ""
3241 msgstr "这是 RhodeCode 发送的一个通知。"
3330 3242
3331 3243 #: rhodecode/templates/errors/error_document.html:46
3332 3244 #, python-format
3333 3245 msgid "You will be redirected to %s in %s seconds"
3334 msgstr ""
3246 msgstr "%1s 秒后你将重定向到 %2s"
3335 3247
3336 3248 #: rhodecode/templates/files/file_diff.html:4
3337 #, fuzzy, python-format
3249 #, python-format
3338 3250 msgid "%s File diff"
3339 msgstr "文件 diff"
3251 msgstr "%s 文件差异"
3340 3252
3341 3253 #: rhodecode/templates/files/file_diff.html:12
3342 3254 msgid "File diff"
3343 msgstr "文件 diff"
3255 msgstr "文件差异"
3344 3256
3345 3257 #: rhodecode/templates/files/files.html:4
3346 3258 #: rhodecode/templates/files/files.html:72
3347 #, fuzzy, python-format
3259 #, python-format
3348 3260 msgid "%s files"
3349 msgstr "文件"
3261 msgstr "%s 文件"
3350 3262
3351 3263 #: rhodecode/templates/files/files.html:12
3352 3264 #: rhodecode/templates/summary/summary.html:340
@@ -3355,41 +3267,35 b' msgstr "\xe6\x96\x87\xe4\xbb\xb6"'
3355 3267
3356 3268 #: rhodecode/templates/files/files_add.html:4
3357 3269 #: rhodecode/templates/files/files_edit.html:4
3358 #, fuzzy, python-format
3270 #, python-format
3359 3271 msgid "%s Edit file"
3360 msgstr "编辑文件"
3272 msgstr "%s 编辑文件"
3361 3273
3362 3274 #: rhodecode/templates/files/files_add.html:19
3363 #, fuzzy
3364 3275 msgid "add file"
3365 msgstr "编辑文件"
3276 msgstr "新建文件"
3366 3277
3367 3278 #: rhodecode/templates/files/files_add.html:40
3368 #, fuzzy
3369 3279 msgid "Add new file"
3370 msgstr "添加新用户"
3280 msgstr "新建文件"
3371 3281
3372 3282 #: rhodecode/templates/files/files_add.html:45
3373 #, fuzzy
3374 3283 msgid "File Name"
3375 3284 msgstr "文件名"
3376 3285
3377 3286 #: rhodecode/templates/files/files_add.html:49
3378 3287 #: rhodecode/templates/files/files_add.html:58
3379 #, fuzzy
3380 3288 msgid "or"
3381 msgstr ""
3289 msgstr "或者"
3382 3290
3383 3291 #: rhodecode/templates/files/files_add.html:49
3384 3292 #: rhodecode/templates/files/files_add.html:54
3385 #, fuzzy
3386 3293 msgid "Upload file"
3387 msgstr "编辑文件"
3294 msgstr "上传文件"
3388 3295
3389 3296 #: rhodecode/templates/files/files_add.html:58
3390 #, fuzzy
3391 3297 msgid "Create new file"
3392 msgstr "创建用户 %s"
3298 msgstr "创建新文件"
3393 3299
3394 3300 #: rhodecode/templates/files/files_add.html:63
3395 3301 #: rhodecode/templates/files/files_edit.html:39
@@ -3399,7 +3305,7 b' msgstr "\xe4\xbd\x8d\xe7\xbd\xae"'
3399 3305
3400 3306 #: rhodecode/templates/files/files_add.html:67
3401 3307 msgid "use / to separate directories"
3402 msgstr ""
3308 msgstr "使用 / 目录分隔符"
3403 3309
3404 3310 #: rhodecode/templates/files/files_add.html:77
3405 3311 #: rhodecode/templates/files/files_edit.html:63
@@ -3426,7 +3332,7 b' msgstr "\xe4\xb8\x8b\xe4\xb8\x80\xe4\xb8\xaa\xe4\xbf\xae\xe8\xae\xa2"'
3426 3332
3427 3333 #: rhodecode/templates/files/files_browser.html:23
3428 3334 msgid "follow current branch"
3429 msgstr ""
3335 msgstr "沿着当前分支"
3430 3336
3431 3337 #: rhodecode/templates/files/files_browser.html:27
3432 3338 msgid "search file list"
@@ -3434,9 +3340,8 b' msgstr "\xe6\x90\x9c\xe7\xb4\xa2\xe6\x96\x87\xe4\xbb\xb6\xe5\x88\x97\xe8\xa1\xa8"'
3434 3340
3435 3341 #: rhodecode/templates/files/files_browser.html:31
3436 3342 #: rhodecode/templates/shortlog/shortlog_data.html:65
3437 #, fuzzy
3438 3343 msgid "add new file"
3439 msgstr "添加新用户"
3344 msgstr "新建文件"
3440 3345
3441 3346 #: rhodecode/templates/files/files_browser.html:35
3442 3347 msgid "Loading file list..."
@@ -3448,20 +3353,19 b' msgstr "\xe5\xa4\xa7\xe5\xb0\x8f"'
3448 3353
3449 3354 #: rhodecode/templates/files/files_browser.html:49
3450 3355 msgid "Mimetype"
3451 msgstr ""
3356 msgstr "MIME 类型"
3452 3357
3453 3358 #: rhodecode/templates/files/files_browser.html:50
3454 #, fuzzy
3455 3359 msgid "Last Revision"
3456 msgstr "下一个修订"
3360 msgstr "最后修订号"
3457 3361
3458 3362 #: rhodecode/templates/files/files_browser.html:51
3459 3363 msgid "Last modified"
3460 msgstr "最后修改"
3364 msgstr "最后修改"
3461 3365
3462 3366 #: rhodecode/templates/files/files_browser.html:52
3463 3367 msgid "Last commiter"
3464 msgstr "最后提交"
3368 msgstr "最后提交"
3465 3369
3466 3370 #: rhodecode/templates/files/files_edit.html:19
3467 3371 msgid "edit file"
@@ -3484,12 +3388,10 b' msgid "download as raw"'
3484 3388 msgstr "下载原始文件"
3485 3389
3486 3390 #: rhodecode/templates/files/files_edit.html:54
3487 #, fuzzy
3488 3391 msgid "source"
3489 msgstr "显示代码"
3392 msgstr "显示源文件"
3490 3393
3491 3394 #: rhodecode/templates/files/files_edit.html:59
3492 #, fuzzy
3493 3395 msgid "Editing file"
3494 3396 msgstr "编辑文件"
3495 3397
@@ -3498,20 +3400,18 b' msgid "History"'
3498 3400 msgstr "历史"
3499 3401
3500 3402 #: rhodecode/templates/files/files_source.html:9
3501 #, fuzzy
3502 3403 msgid "diff to revision"
3503 msgstr "下一个修订"
3404 msgstr "比较差异"
3504 3405
3505 3406 #: rhodecode/templates/files/files_source.html:10
3506 #, fuzzy
3507 3407 msgid "show at revision"
3508 msgstr "下一个修订"
3408 msgstr "显示修订"
3509 3409
3510 3410 #: rhodecode/templates/files/files_source.html:14
3511 #, fuzzy, python-format
3411 #, python-format
3512 3412 msgid "%s author"
3513 3413 msgid_plural "%s authors"
3514 msgstr[0] "作者"
3414 msgstr[0] "%s 个作者"
3515 3415
3516 3416 #: rhodecode/templates/files/files_source.html:36
3517 3417 msgid "show source"
@@ -3528,39 +3428,37 b' msgstr "\xe6\x96\x87\xe4\xbb\xb6\xe8\xbf\x87\xe5\xa4\xa7\xef\xbc\x8c\xe4\xb8\x8d\xe8\x83\xbd\xe6\x98\xbe\xe7\xa4\xba"'
3528 3428
3529 3429 #: rhodecode/templates/files/files_source.html:124
3530 3430 msgid "Selection link"
3531 msgstr ""
3431 msgstr "选择链接"
3532 3432
3533 3433 #: rhodecode/templates/files/files_ypjax.html:5
3534 #, fuzzy
3535 3434 msgid "annotation"
3536 3435 msgstr "显示注释"
3537 3436
3538 3437 #: rhodecode/templates/files/files_ypjax.html:15
3539 3438 msgid "Go back"
3540 msgstr ""
3439 msgstr "返回"
3541 3440
3542 3441 #: rhodecode/templates/files/files_ypjax.html:16
3543 3442 msgid "No files at given path"
3544 msgstr ""
3443 msgstr "指定的路径中没有文件"
3545 3444
3546 3445 #: rhodecode/templates/followers/followers.html:5
3547 #, fuzzy, python-format
3446 #, python-format
3548 3447 msgid "%s Followers"
3549 msgstr "跟随者"
3448 msgstr "%s 个关注者"
3550 3449
3551 3450 #: rhodecode/templates/followers/followers.html:13
3552 3451 msgid "followers"
3553 msgstr "跟随者"
3452 msgstr "关注者"
3554 3453
3555 3454 #: rhodecode/templates/followers/followers_data.html:12
3556 #, fuzzy
3557 3455 msgid "Started following -"
3558 msgstr "开始跟随"
3456 msgstr "开始关注 - "
3559 3457
3560 3458 #: rhodecode/templates/forks/fork.html:5
3561 #, fuzzy, python-format
3459 #, python-format
3562 3460 msgid "%s Fork"
3563 msgstr "分支"
3461 msgstr "%s 的分支"
3564 3462
3565 3463 #: rhodecode/templates/forks/fork.html:31
3566 3464 msgid "Fork name"
@@ -3571,30 +3469,29 b' msgid "Private"'
3571 3469 msgstr "私有"
3572 3470
3573 3471 #: rhodecode/templates/forks/fork.html:77
3574 #, fuzzy
3575 3472 msgid "Copy permissions"
3576 msgstr "权限"
3473 msgstr "拷贝权限"
3577 3474
3578 3475 #: rhodecode/templates/forks/fork.html:81
3579 3476 msgid "Copy permissions from forked repository"
3580 msgstr ""
3477 msgstr "从被分支版本库拷贝权限"
3581 3478
3582 3479 #: rhodecode/templates/forks/fork.html:86
3583 3480 msgid "Update after clone"
3584 msgstr ""
3481 msgstr "克隆后更新"
3585 3482
3586 3483 #: rhodecode/templates/forks/fork.html:90
3587 3484 msgid "Checkout source after making a clone"
3588 msgstr ""
3485 msgstr "完成克隆后检出源代码"
3589 3486
3590 3487 #: rhodecode/templates/forks/fork.html:94
3591 3488 msgid "fork this repository"
3592 3489 msgstr "对该版本库建立分支"
3593 3490
3594 3491 #: rhodecode/templates/forks/forks.html:5
3595 #, fuzzy, python-format
3492 #, python-format
3596 3493 msgid "%s Forks"
3597 msgstr "分支"
3494 msgstr "%s 的分支"
3598 3495
3599 3496 #: rhodecode/templates/forks/forks.html:13
3600 3497 msgid "forks"
@@ -3606,47 +3503,42 b' msgstr "\xe5\xb7\xb2\xe6\x9c\x89\xe5\x88\x86\xe6\x94\xaf"'
3606 3503
3607 3504 #: rhodecode/templates/forks/forks_data.html:38
3608 3505 msgid "There are no forks yet"
3609 msgstr "尚未有任何分支"
3506 msgstr "分支"
3610 3507
3611 3508 #: rhodecode/templates/journal/journal.html:13
3612 #, fuzzy
3613 3509 msgid "ATOM journal feed"
3614 msgstr "公共日志 %s %s 订阅"
3510 msgstr "订阅日志 ATOM"
3615 3511
3616 3512 #: rhodecode/templates/journal/journal.html:14
3617 #, fuzzy
3618 3513 msgid "RSS journal feed"
3619 msgstr "公共日志 %s %s 订阅"
3514 msgstr "订阅日志 RSS"
3620 3515
3621 3516 #: rhodecode/templates/journal/journal.html:24
3622 3517 #: rhodecode/templates/pullrequests/pullrequest.html:27
3623 3518 msgid "Refresh"
3624 msgstr ""
3519 msgstr "刷新"
3625 3520
3626 3521 #: rhodecode/templates/journal/journal.html:27
3627 3522 #: rhodecode/templates/journal/public_journal.html:24
3628 #, fuzzy
3629 3523 msgid "RSS feed"
3630 msgstr "%s %s 订阅"
3524 msgstr "订阅 RSS"
3631 3525
3632 3526 #: rhodecode/templates/journal/journal.html:30
3633 3527 #: rhodecode/templates/journal/public_journal.html:27
3634 3528 msgid "ATOM feed"
3635 msgstr ""
3529 msgstr "订阅 ATOM"
3636 3530
3637 3531 #: rhodecode/templates/journal/journal.html:41
3638 #, fuzzy
3639 3532 msgid "Watched"
3640 msgstr "缓存"
3533 msgstr "关注的"
3641 3534
3642 3535 #: rhodecode/templates/journal/journal.html:46
3643 #, fuzzy
3644 3536 msgid "ADD"
3645 msgstr "新"
3537 msgstr "新建版本库"
3646 3538
3647 3539 #: rhodecode/templates/journal/journal.html:114
3648 3540 msgid "following user"
3649 msgstr "跟随中用户"
3541 msgstr "关注用户"
3650 3542
3651 3543 #: rhodecode/templates/journal/journal.html:114
3652 3544 msgid "user"
@@ -3654,21 +3546,19 b' msgstr "\xe7\x94\xa8\xe6\x88\xb7"'
3654 3546
3655 3547 #: rhodecode/templates/journal/journal.html:147
3656 3548 msgid "You are not following any users or repositories"
3657 msgstr "尚未跟随任何用户或版本库"
3549 msgstr "未关注任何用户或版本库"
3658 3550
3659 3551 #: rhodecode/templates/journal/journal_data.html:47
3660 3552 msgid "No entries yet"
3661 msgstr ""
3553 msgstr "没有条目"
3662 3554
3663 3555 #: rhodecode/templates/journal/public_journal.html:13
3664 #, fuzzy
3665 3556 msgid "ATOM public journal feed"
3666 msgstr "公共日志 %s %s 订阅"
3557 msgstr "订阅公共日志 ATOM"
3667 3558
3668 3559 #: rhodecode/templates/journal/public_journal.html:14
3669 #, fuzzy
3670 3560 msgid "RSS public journal feed"
3671 msgstr "公共日志 %s %s 订阅"
3561 msgstr "订阅公共日志 RSS"
3672 3562
3673 3563 #: rhodecode/templates/journal/public_journal.html:21
3674 3564 msgid "Public Journal"
@@ -3677,127 +3567,117 b' msgstr "\xe5\x85\xac\xe5\x85\xb1\xe6\x97\xa5\xe5\xbf\x97"'
3677 3567 #: rhodecode/templates/pullrequests/pullrequest.html:4
3678 3568 #: rhodecode/templates/pullrequests/pullrequest.html:12
3679 3569 msgid "New pull request"
3680 msgstr ""
3570 msgstr "新建拉取请求"
3681 3571
3682 3572 #: rhodecode/templates/pullrequests/pullrequest.html:28
3683 3573 msgid "refresh overview"
3684 msgstr ""
3574 msgstr "刷新概览"
3685 3575
3686 3576 #: rhodecode/templates/pullrequests/pullrequest.html:66
3687 #, fuzzy
3688 3577 msgid "Detailed compare view"
3689 msgstr "比较显示"
3578 msgstr "详细比较显示"
3690 3579
3691 3580 #: rhodecode/templates/pullrequests/pullrequest.html:70
3692 3581 #: rhodecode/templates/pullrequests/pullrequest_show.html:82
3693 3582 msgid "Pull request reviewers"
3694 msgstr ""
3583 msgstr "拉取请求检视人员"
3695 3584
3696 3585 #: rhodecode/templates/pullrequests/pullrequest.html:79
3697 3586 #: rhodecode/templates/pullrequests/pullrequest_show.html:94
3698 #, fuzzy
3699 3587 msgid "owner"
3700 3588 msgstr "所有者"
3701 3589
3702 3590 #: rhodecode/templates/pullrequests/pullrequest.html:91
3703 3591 #: rhodecode/templates/pullrequests/pullrequest_show.html:109
3704 3592 msgid "Add reviewer to this pull request."
3705 msgstr ""
3593 msgstr "为这个拉取请求增加检视人员"
3706 3594
3707 3595 #: rhodecode/templates/pullrequests/pullrequest.html:97
3708 #, fuzzy
3709 3596 msgid "Create new pull request"
3710 msgstr "创建用户 %s"
3597 msgstr "创建新的拉取请求"
3711 3598
3712 3599 #: rhodecode/templates/pullrequests/pullrequest.html:106
3713 3600 #: rhodecode/templates/pullrequests/pullrequest_show.html:25
3714 3601 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
3715 #, fuzzy
3716 3602 msgid "Title"
3717 msgstr ""
3603 msgstr "标题"
3718 3604
3719 3605 #: rhodecode/templates/pullrequests/pullrequest.html:115
3720 #, fuzzy
3721 3606 msgid "description"
3722 3607 msgstr "描述"
3723 3608
3724 3609 #: rhodecode/templates/pullrequests/pullrequest.html:123
3725 3610 msgid "Send pull request"
3726 msgstr ""
3611 msgstr "发送拉取请求"
3727 3612
3728 3613 #: rhodecode/templates/pullrequests/pullrequest_show.html:23
3729 3614 #, python-format
3730 3615 msgid "Closed %s"
3731 msgstr ""
3616 msgstr "关闭于 %s"
3732 3617
3733 3618 #: rhodecode/templates/pullrequests/pullrequest_show.html:31
3734 #, fuzzy
3735 3619 msgid "Status"
3736 msgstr "变更集"
3620 msgstr "状态"
3737 3621
3738 3622 #: rhodecode/templates/pullrequests/pullrequest_show.html:36
3739 3623 msgid "Pull request status"
3740 msgstr ""
3624 msgstr "拉取请求状态"
3741 3625
3742 3626 #: rhodecode/templates/pullrequests/pullrequest_show.html:44
3743 3627 msgid "Still not reviewed by"
3744 msgstr ""
3628 msgstr "还未检视的检视人员"
3745 3629
3746 3630 #: rhodecode/templates/pullrequests/pullrequest_show.html:47
3747 3631 #, python-format
3748 3632 msgid "%d reviewer"
3749 3633 msgid_plural "%d reviewers"
3750 msgstr[0] ""
3634 msgstr[0] "%d 个检视者"
3751 3635
3752 3636 #: rhodecode/templates/pullrequests/pullrequest_show.html:54
3753 #, fuzzy
3754 3637 msgid "Created on"
3755 msgstr "创建用户 %s"
3638 msgstr "创建 %s"
3756 3639
3757 3640 #: rhodecode/templates/pullrequests/pullrequest_show.html:61
3758 #, fuzzy
3759 3641 msgid "Compare view"
3760 3642 msgstr "比较显示"
3761 3643
3762 3644 #: rhodecode/templates/pullrequests/pullrequest_show.html:65
3763 #, fuzzy
3764 3645 msgid "Incoming changesets"
3765 msgstr "尚无修订"
3646 msgstr "传入修订集"
3766 3647
3767 3648 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
3768 #, fuzzy
3769 3649 msgid "all pull requests"
3770 msgstr "创建用户 %s"
3650 msgstr "所有拉取请求"
3771 3651
3772 3652 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
3773 3653 msgid "All pull requests"
3774 msgstr ""
3654 msgstr "所有拉取请求"
3775 3655
3776 3656 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
3777 3657 msgid "Closed"
3778 msgstr ""
3779
3658 msgstr "已关闭"
3659
3660 # 中文中 repo name 在前面 serch term在后面
3780 3661 #: rhodecode/templates/search/search.html:6
3781 #, fuzzy, python-format
3662 #, python-format
3782 3663 msgid "Search \"%s\" in repository: %s"
3783 msgstr "在版本库"
3664 msgstr "在版本库 %2s 中搜索 \"%1s\""
3784 3665
3785 3666 #: rhodecode/templates/search/search.html:8
3786 #, fuzzy, python-format
3667 #, python-format
3787 3668 msgid "Search \"%s\" in all repositories"
3788 msgstr "在所有的版本库"
3669 msgstr "在所有的版本库中搜索 \"%s\""
3789 3670
3790 3671 #: rhodecode/templates/search/search.html:12
3791 3672 #: rhodecode/templates/search/search.html:32
3792 #, fuzzy, python-format
3673 #, python-format
3793 3674 msgid "Search in repository: %s"
3794 msgstr "在版本库"
3675 msgstr "在版本库 %s 中搜索"
3795 3676
3796 3677 #: rhodecode/templates/search/search.html:14
3797 3678 #: rhodecode/templates/search/search.html:34
3798 #, fuzzy
3799 3679 msgid "Search in all repositories"
3800 msgstr "在所有的版本库"
3680 msgstr "在所有的版本库中搜索"
3801 3681
3802 3682 #: rhodecode/templates/search/search.html:48
3803 3683 msgid "Search term"
@@ -3812,7 +3692,6 b' msgid "File contents"'
3812 3692 msgstr "文件内容"
3813 3693
3814 3694 #: rhodecode/templates/search/search.html:64
3815 #, fuzzy
3816 3695 msgid "Commit messages"
3817 3696 msgstr "提交信息"
3818 3697
@@ -3827,14 +3706,14 b' msgid "Permission denied"'
3827 3706 msgstr "权限不足"
3828 3707
3829 3708 #: rhodecode/templates/settings/repo_settings.html:5
3830 #, fuzzy, python-format
3709 #, python-format
3831 3710 msgid "%s Settings"
3832 msgstr "设置"
3711 msgstr "%s 设置"
3833 3712
3834 3713 #: rhodecode/templates/shortlog/shortlog.html:5
3835 #, fuzzy, python-format
3714 #, python-format
3836 3715 msgid "%s Shortlog"
3837 msgstr "简短日志"
3716 msgstr "%s 简短日志"
3838 3717
3839 3718 #: rhodecode/templates/shortlog/shortlog.html:14
3840 3719 msgid "shortlog"
@@ -3842,55 +3721,52 b' msgstr "\xe7\xae\x80\xe7\x9f\xad\xe6\x97\xa5\xe5\xbf\x97"'
3842 3721
3843 3722 #: rhodecode/templates/shortlog/shortlog_data.html:7
3844 3723 msgid "age"
3845 msgstr ""
3724 msgstr "时间"
3846 3725
3847 3726 #: rhodecode/templates/shortlog/shortlog_data.html:18
3848 #, fuzzy
3849 3727 msgid "No commit message"
3850 msgstr "提交信息"
3728 msgstr "没有提交信息"
3851 3729
3852 3730 #: rhodecode/templates/shortlog/shortlog_data.html:62
3853 3731 msgid "Add or upload files directly via RhodeCode"
3854 msgstr ""
3732 msgstr "通过 RhodeCode 直接添加或者上传文件"
3855 3733
3856 3734 #: rhodecode/templates/shortlog/shortlog_data.html:71
3857 3735 msgid "Push new repo"
3858 msgstr ""
3736 msgstr "Push 新版本库"
3859 3737
3860 3738 #: rhodecode/templates/shortlog/shortlog_data.html:79
3861 #, fuzzy
3862 3739 msgid "Existing repository?"
3863 msgstr "Git 版本库"
3740 msgstr "现有版本库?"
3864 3741
3865 3742 #: rhodecode/templates/summary/summary.html:4
3866 #, fuzzy, python-format
3743 #, python-format
3867 3744 msgid "%s Summary"
3868 msgstr "概要"
3745 msgstr "%s 概要"
3869 3746
3870 3747 #: rhodecode/templates/summary/summary.html:12
3871 3748 msgid "summary"
3872 3749 msgstr "概要"
3873 3750
3874 3751 #: rhodecode/templates/summary/summary.html:20
3875 #, fuzzy, python-format
3752 #, python-format
3876 3753 msgid "repo %s ATOM feed"
3877 msgstr "订阅 atom %s"
3754 msgstr "订阅 ATOM %s"
3878 3755
3879 3756 #: rhodecode/templates/summary/summary.html:21
3880 #, fuzzy, python-format
3757 #, python-format
3881 3758 msgid "repo %s RSS feed"
3882 msgstr "订阅 rss %s"
3759 msgstr "订阅 RSS %s"
3883 3760
3884 3761 #: rhodecode/templates/summary/summary.html:49
3885 3762 #: rhodecode/templates/summary/summary.html:52
3886 #, fuzzy
3887 3763 msgid "ATOM"
3888 msgstr "作者"
3764 msgstr "ATOM"
3889 3765
3890 3766 #: rhodecode/templates/summary/summary.html:82
3891 #, fuzzy, python-format
3767 #, python-format
3892 3768 msgid "Non changable ID %s"
3893 msgstr "无变更"
3769 msgstr "不可变 ID %s"
3894 3770
3895 3771 #: rhodecode/templates/summary/summary.html:87
3896 3772 msgid "public"
@@ -3898,7 +3774,7 b' msgstr "\xe5\x85\xac\xe5\x85\xb1"'
3898 3774
3899 3775 #: rhodecode/templates/summary/summary.html:95
3900 3776 msgid "remote clone"
3901 msgstr "远程 clone"
3777 msgstr "远程克隆"
3902 3778
3903 3779 #: rhodecode/templates/summary/summary.html:116
3904 3780 msgid "Contact"
@@ -3906,20 +3782,19 b' msgstr "\xe8\x81\x94\xe7\xb3\xbb\xe6\x96\xb9\xe5\xbc\x8f"'
3906 3782
3907 3783 #: rhodecode/templates/summary/summary.html:130
3908 3784 msgid "Clone url"
3909 msgstr "clone 地址"
3785 msgstr "克隆地址"
3910 3786
3911 3787 #: rhodecode/templates/summary/summary.html:133
3912 3788 msgid "Show by Name"
3913 msgstr ""
3789 msgstr "以名字显示"
3914 3790
3915 3791 #: rhodecode/templates/summary/summary.html:134
3916 3792 msgid "Show by ID"
3917 msgstr ""
3793 msgstr "以 ID 显示"
3918 3794
3919 3795 #: rhodecode/templates/summary/summary.html:142
3920 #, fuzzy
3921 3796 msgid "Trending files"
3922 msgstr "编辑文件"
3797 msgstr "文件趋势图"
3923 3798
3924 3799 #: rhodecode/templates/summary/summary.html:150
3925 3800 #: rhodecode/templates/summary/summary.html:166
@@ -3933,50 +3808,48 b' msgstr "\xe4\xb8\x8b\xe8\xbd\xbd"'
3933 3808
3934 3809 #: rhodecode/templates/summary/summary.html:162
3935 3810 msgid "There are no downloads yet"
3936 msgstr "任何下载"
3811 msgstr "无下载"
3937 3812
3938 3813 #: rhodecode/templates/summary/summary.html:164
3939 3814 msgid "Downloads are disabled for this repository"
3940 3815 msgstr "这个版本库的下载已经禁用"
3941 3816
3942 3817 #: rhodecode/templates/summary/summary.html:170
3943 #, fuzzy
3944 3818 msgid "Download as zip"
3945 msgstr "下载原始文件"
3819 msgstr "下载 zip 包"
3946 3820
3947 3821 #: rhodecode/templates/summary/summary.html:173
3948 3822 msgid "Check this to download archive with subrepos"
3949 msgstr ""
3823 msgstr "勾选以下载包含子版本库的压缩包"
3950 3824
3951 3825 #: rhodecode/templates/summary/summary.html:173
3952 3826 msgid "with subrepos"
3953 msgstr ""
3827 msgstr "包括子版本库"
3954 3828
3955 3829 #: rhodecode/templates/summary/summary.html:186
3956 3830 msgid "Commit activity by day / author"
3957 msgstr ""
3831 msgstr "按日期或作者的提交活动"
3958 3832
3959 3833 #: rhodecode/templates/summary/summary.html:197
3960 3834 msgid "Stats gathered: "
3961 msgstr ""
3835 msgstr "已收集的统计: "
3962 3836
3963 3837 #: rhodecode/templates/summary/summary.html:218
3964 3838 msgid "Shortlog"
3965 3839 msgstr "简短日志"
3966 3840
3967 3841 #: rhodecode/templates/summary/summary.html:220
3968 #, fuzzy
3969 3842 msgid "Quick start"
3970 msgstr "快速过滤..."
3843 msgstr "快速入门"
3971 3844
3972 3845 #: rhodecode/templates/summary/summary.html:233
3973 3846 #, python-format
3974 3847 msgid "Readme file at revision '%s'"
3975 msgstr ""
3848 msgstr "修订 '%s' 中的README"
3976 3849
3977 3850 #: rhodecode/templates/summary/summary.html:236
3978 3851 msgid "Permalink to this readme"
3979 msgstr ""
3852 msgstr "这个 README 的固定链接"
3980 3853
3981 3854 #: rhodecode/templates/summary/summary.html:293
3982 3855 #, python-format
@@ -4016,7 +3889,6 b' msgid "file removed"'
4016 3889 msgstr "文件已删除"
4017 3890
4018 3891 #: rhodecode/templates/tags/tags.html:5
4019 #, fuzzy, python-format
3892 #, python-format
4020 3893 msgid "%s Tags"
4021 msgstr "之前"
4022
3894 msgstr "%s 标签"
@@ -44,6 +44,7 b' from rhodecode.lib.vcs.nodes import File'
44 44 from rhodecode.lib.vcs.backends.base import EmptyChangeset
45 45 from rhodecode.lib.helpers import escape
46 46 from rhodecode.lib.utils import make_ui
47 from rhodecode.lib.utils2 import safe_unicode
47 48
48 49
49 50 def wrap_to_table(str_):
@@ -214,7 +215,7 b' class DiffProcessor(object):'
214 215 self.adds += 1
215 216 elif l.startswith('-') and not l.startswith('---'):
216 217 self.removes += 1
217 return l.decode('utf8', 'replace')
218 return safe_unicode(l)
218 219
219 220 output = list(diffiterator)
220 221 size = len(output)
@@ -10,6 +10,7 b' import urllib'
10 10 import math
11 11 import logging
12 12 import re
13 import urlparse
13 14
14 15 from datetime import datetime
15 16 from pygments.formatters.html import HtmlFormatter
@@ -711,11 +712,15 b' HasRepoPermissionAny, HasRepoPermissionA'
711 712 #==============================================================================
712 713
713 714 def gravatar_url(email_address, size=30):
715 from pylons import url ## doh, we need to re-import url to mock it later
714 716 if(str2bool(config['app_conf'].get('use_gravatar')) and
715 717 config['app_conf'].get('alternative_gravatar_url')):
716 718 tmpl = config['app_conf'].get('alternative_gravatar_url', '')
719 parsed_url = urlparse.urlparse(url.current(qualified=True))
717 720 tmpl = tmpl.replace('{email}', email_address)\
718 721 .replace('{md5email}', hashlib.md5(email_address.lower()).hexdigest())\
722 .replace('{netloc}', parsed_url.netloc)\
723 .replace('{scheme}', parsed_url.scheme)\
719 724 .replace('{size}', str(size))
720 725 return tmpl
721 726
@@ -77,6 +77,8 b' class WhooshIndexingDaemon(object):'
77 77
78 78 #filter repo list
79 79 if repo_list:
80 #Fix non-ascii repo names to unicode
81 repo_list = map(safe_unicode, repo_list)
80 82 self.filtered_repo_paths = {}
81 83 for repo_name, repo in self.repo_paths.items():
82 84 if repo_name in repo_list:
@@ -238,6 +240,7 b' class WhooshIndexingDaemon(object):'
238 240 writer_is_dirty = False
239 241 try:
240 242 indexed_total = 0
243 repo_name = None
241 244 for repo_name, repo in self.repo_paths.items():
242 245 # skip indexing if there aren't any revs in the repo
243 246 num_of_revs = len(repo)
@@ -279,10 +282,10 b' class WhooshIndexingDaemon(object):'
279 282 if writer_is_dirty:
280 283 log.debug('>> COMMITING CHANGES TO CHANGESET INDEX<<')
281 284 writer.commit(merge=True)
282 log.debug('>> COMMITTED CHANGES TO CHANGESET INDEX<<')
285 log.debug('>>> FINISHED REBUILDING CHANGESET INDEX <<<')
283 286 else:
284 287 writer.cancel
285 log.debug('>> NOTHING TO COMMIT<<')
288 log.debug('>> NOTHING TO COMMIT TO CHANGESET INDEX<<')
286 289
287 290 def update_file_index(self):
288 291 log.debug((u'STARTING INCREMENTAL INDEXING UPDATE FOR EXTENSIONS %s '
@@ -364,11 +367,11 b' class WhooshIndexingDaemon(object):'
364 367 )
365 368 finally:
366 369 if writer_is_dirty:
367 log.debug('>> COMMITING CHANGES <<')
370 log.debug('>> COMMITING CHANGES TO FILE INDEX <<')
368 371 writer.commit(merge=True)
369 log.debug('>>> FINISHED REBUILDING INDEX <<<')
372 log.debug('>>> FINISHED REBUILDING FILE INDEX <<<')
370 373 else:
371 log.debug('>> NOTHING TO COMMIT<<')
374 log.debug('>> NOTHING TO COMMIT TO FILE INDEX <<')
372 375 writer.cancel()
373 376
374 377 def build_indexes(self):
@@ -147,6 +147,23 b' def generate_api_key(username, salt=None'
147 147 return hashlib.sha1(username + salt).hexdigest()
148 148
149 149
150 def safe_int(val, default=None):
151 """
152 Returns int() of val if val is not convertable to int use default
153 instead
154
155 :param val:
156 :param default:
157 """
158
159 try:
160 val = int(val)
161 except ValueError:
162 val = default
163
164 return val
165
166
150 167 def safe_unicode(str_, from_encoding=None):
151 168 """
152 169 safe unicode function. Does few trick to turn str_ into unicode
@@ -13,6 +13,7 b' from mercurial.match import match'
13 13
14 14 from rhodecode.lib.vcs.exceptions import VCSError
15 15 from rhodecode.lib.vcs.nodes import FileNode, NodeError
16 from rhodecode.lib.vcs.utils import safe_unicode
16 17
17 18
18 19 def get_udiff(filenode_old, filenode_new, show_whitespace=True):
@@ -149,7 +150,7 b' class DiffProcessor(object):'
149 150 self.adds += 1
150 151 elif l.startswith('-') and not l.startswith('---'):
151 152 self.removes += 1
152 return l.decode('utf8', 'replace')
153 return safe_unicode(l)
153 154
154 155 output = list(diffiterator)
155 156 size = len(output)
@@ -1027,14 +1027,20 b' class RepoGroup(Base, BaseModel):'
1027 1027 self.group_name)
1028 1028
1029 1029 @classmethod
1030 def groups_choices(cls):
1030 def groups_choices(cls, check_perms=False):
1031 1031 from webhelpers.html import literal as _literal
1032 from rhodecode.model.scm import ScmModel
1033 groups = cls.query().all()
1034 if check_perms:
1035 #filter group user have access to, it's done
1036 #magically inside ScmModel based on current user
1037 groups = ScmModel().get_repos_groups(groups)
1032 1038 repo_groups = [('', '')]
1033 1039 sep = ' &raquo; '
1034 1040 _name = lambda k: _literal(sep.join(k))
1035 1041
1036 1042 repo_groups.extend([(x.group_id, _name(x.full_path_splitted))
1037 for x in cls.query().all()])
1043 for x in groups])
1038 1044
1039 1045 repo_groups = sorted(repo_groups, key=lambda t: t[1].split(sep)[0])
1040 1046 return repo_groups
@@ -177,7 +177,8 b' def RepoForm(edit=False, old_data={}, su'
177 177 repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True),
178 178 v.SlugifyName())
179 179 clone_uri = All(v.UnicodeString(strip=True, min=1, not_empty=False))
180 repo_group = v.OneOf(repo_groups, hideList=True)
180 repo_group = All(v.CanWriteGroup(),
181 v.OneOf(repo_groups, hideList=True))
181 182 repo_type = v.OneOf(supported_backends)
182 183 description = v.UnicodeString(strip=True, min=1, not_empty=False)
183 184 private = v.StringBoolean(if_missing=False)
@@ -203,7 +204,8 b' def RepoForkForm(edit=False, old_data={}'
203 204 filter_extra_fields = False
204 205 repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True),
205 206 v.SlugifyName())
206 repo_group = v.OneOf(repo_groups, hideList=True)
207 repo_group = All(v.CanWriteGroup(),
208 v.OneOf(repo_groups, hideList=True))
207 209 repo_type = All(v.ValidForkType(old_data), v.OneOf(supported_backends))
208 210 description = v.UnicodeString(strip=True, min=1, not_empty=True)
209 211 private = v.StringBoolean(if_missing=False)
@@ -19,6 +19,7 b' from rhodecode.model.db import RepoGroup'
19 19 ChangesetStatus
20 20 from rhodecode.lib.exceptions import LdapImportError
21 21 from rhodecode.config.routing import ADMIN_PREFIX
22 from rhodecode.lib.auth import HasReposGroupPermissionAny
22 23
23 24 # silence warnings and pylint
24 25 UnicodeString, OneOf, Int, Number, Regex, Email, Bool, StringBoolean, Set, \
@@ -466,6 +467,25 b' def ValidForkType(old_data={}):'
466 467 return _validator
467 468
468 469
470 def CanWriteGroup():
471 class _validator(formencode.validators.FancyValidator):
472 messages = {
473 'permission_denied': _(u"You don't have permissions "
474 "to create repository in this group")
475 }
476
477 def validate_python(self, value, state):
478 gr = RepoGroup.get(value)
479 if not HasReposGroupPermissionAny(
480 'group.write', 'group.admin'
481 )(gr.group_name, 'get group of repo form'):
482 msg = M(self, 'permission_denied', state)
483 raise formencode.Invalid(msg, value, state,
484 error_dict=dict(repo_type=msg)
485 )
486 return _validator
487
488
469 489 def ValidPerms(type_='repo'):
470 490 if type_ == 'group':
471 491 EMPTY_PERM = 'group.none'
@@ -658,6 +658,24 b' div:hover > a.permalink {'
658 658 padding: 12px 9px 7px 24px;
659 659 }
660 660
661 #header #header-inner #quick li ul li a.locking_add,#header #header-inner #quick li ul li a.locking_add:hover
662 {
663 background: #FFF url("../images/icons/lock_add.png") no-repeat 4px
664 9px;
665 width: 167px;
666 margin: 0;
667 padding: 12px 9px 7px 24px;
668 }
669
670 #header #header-inner #quick li ul li a.locking_del,#header #header-inner #quick li ul li a.locking_del:hover
671 {
672 background: #FFF url("../images/icons/lock_delete.png") no-repeat 4px
673 9px;
674 width: 167px;
675 margin: 0;
676 padding: 12px 9px 7px 24px;
677 }
678
661 679 #header #header-inner #quick li ul li a.pull_request,#header #header-inner #quick li ul li a.pull_request:hover
662 680 {
663 681 background: #FFF url("../images/icons/arrow_join.png") no-repeat 4px
@@ -86,7 +86,18 b' var prevElementSibling = function( el ) '
86 86 }
87 87 }
88 88
89 var setSelectValue = function(select, val){
90 var selection = YUD.get(select);
89 91
92 // select element
93 for(var i=0;i<selection.options.length;i++){
94 console.log(selection.options[i].innerHTML);
95 if (selection.options[i].innerHTML == val) {
96 selection.selectedIndex = i;
97 break;
98 }
99 }
100 }
90 101
91 102
92 103 /**
@@ -70,7 +70,7 b''
70 70 </tr>
71 71 <tr>
72 72 <td colspan="6">
73 ${h.checkbox('recursive',value="True", label=_('apply to parents'))}
73 ${h.checkbox('recursive',value="True", label=_('apply to children'))}
74 74 <span class="help-block">${_('Set or revoke permission to all children of that group, including repositories and other groups')}</span>
75 75 </td>
76 76 </tr>
@@ -201,17 +201,26 b''
201 201 <ul>
202 202 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
203 203 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
204 <li>${h.link_to(_('settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
204 <li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
205 205 %else:
206 <li>${h.link_to(_('settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
206 <li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
207 207 %endif
208 208 %endif
209
209 210 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
210 211 %if h.is_hg(c.rhodecode_repo):
211 212 <li>${h.link_to(_('Open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}</li>
212 213 %endif
213 214 <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
214 215
216 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
217 %if c.rhodecode_db_repo.locked[0]:
218 <li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
219 %else:
220 <li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
221 %endif
222 %endif
223
215 224 % if h.HasPermissionAll('hg.admin')('access admin main page'):
216 225 <li>
217 226 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
@@ -227,7 +236,7 b''
227 236 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
228 237 </ul>
229 238 </%def>
230
239 ## ADMIN MENU
231 240 ${admin_menu()}
232 241 </li>
233 242 % endif
@@ -9,8 +9,8 b''
9 9
10 10 ## CSS ###
11 11 <%def name="css()">
12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen"/>
13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}"/>
12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css', ver=c.rhodecode_version)}" media="screen"/>
13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.rhodecode_version)}"/>
14 14 ## EXTRA FOR CSS
15 15 ${self.css_extra()}
16 16 </%def>
@@ -50,13 +50,13 b''
50 50 };
51 51 var _TM = TRANSLATION_MAP;
52 52 </script>
53 <script type="text/javascript" src="${h.url('/js/yui.2.9.js')}"></script>
53 <script type="text/javascript" src="${h.url('/js/yui.2.9.js', ver=c.rhodecode_version)}"></script>
54 54 <!--[if lt IE 9]>
55 55 <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
56 56 <![endif]-->
57 <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
58 <script type="text/javascript" src="${h.url('/js/native.history.js')}"></script>
59 <script type="text/javascript" src="${h.url('/js/rhodecode.js')}"></script>
57 <script type="text/javascript" src="${h.url('/js/yui.flot.js', ver=c.rhodecode_version)}"></script>
58 <script type="text/javascript" src="${h.url('/js/native.history.js', ver=c.rhodecode_version)}"></script>
59 <script type="text/javascript" src="${h.url('/js/rhodecode.js', ver=c.rhodecode_version)}"></script>
60 60 ## EXTRA FOR JS
61 61 ${self.js_extra()}
62 62
@@ -53,7 +53,7 b''
53 53 <img id="other_repo_gravatar" alt="gravatar" src=""/>
54 54 </div>
55 55 <span style="font-size: 20px">
56 ${h.select('other_repo',c.default_pull_request ,c.other_repos,class_='refs')}:${h.select('other_ref','',c.default_revs,class_='refs')}
56 ${h.select('other_repo',c.default_pull_request ,c.other_repos,class_='refs')}:${h.select('other_ref',c.default_pull_request_rev,c.default_revs,class_='refs')}
57 57 </span>
58 58 <div id="other_repo_desc" style="padding:5px 3px 3px 42px;"></div>
59 59 </div>
@@ -135,6 +135,7 b''
135 135 PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
136 136
137 137 var other_repos_info = ${c.other_repos_info|n};
138
138 139 var loadPreview = function(){
139 140 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none');
140 141 var url = "${h.url('compare_url',
@@ -145,28 +146,38 b''
145 146 as_form=True)}";
146 147
147 148 var select_refs = YUQ('#pull_request_form select.refs')
148
149 var rev_data = {}; // gather the org/other ref and repo here
149 150 for(var i=0;i<select_refs.length;i++){
150 151 var select_ref = select_refs[i];
151 152 var select_ref_data = select_ref.value.split(':');
152 153 var key = null;
153 154 var val = null;
155
154 156 if(select_ref_data.length>1){
155 157 key = select_ref.name+"_type";
156 158 val = select_ref_data[0];
157 159 url = url.replace(key,val);
160 rev_data[key] = val;
158 161
159 162 key = select_ref.name;
160 163 val = select_ref_data[1];
161 164 url = url.replace(key,val);
165 rev_data[key] = val;
162 166
163 167 }else{
164 168 key = select_ref.name;
165 169 val = select_ref.value;
166 170 url = url.replace(key,val);
171 rev_data[key] = val;
167 172 }
168 173 }
169 174
175 YUE.on('other_repo', 'change', function(e){
176 var repo_name = e.currentTarget.value;
177 // replace the <select> of changed repo
178 YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs'];
179 });
180
170 181 ypjax(url,'pull_request_overview', function(data){
171 182 var sel_box = YUQ('#pull_request_form #other_repo')[0];
172 183 var repo_name = sel_box.options[sel_box.selectedIndex].value;
@@ -175,6 +186,8 b''
175 186 YUD.get('other_repo_gravatar').src = other_repos_info[repo_name]['gravatar'];
176 187 YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description'];
177 188 YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs'];
189 // select back the revision that was just compared
190 setSelectValue(YUD.get('other_ref'), rev_data['other_ref']);
178 191 })
179 192 }
180 193 YUE.on('refresh','click',function(e){
@@ -159,6 +159,20 b' class TestLibs(unittest.TestCase):'
159 159 config['app_conf']['use_gravatar'] = True
160 160 config['app_conf'].update(kwargs)
161 161 return config
162
163 class fake_url():
164 @classmethod
165 def current(cls, *args, **kwargs):
166 return 'https://server.com'
167
168 with mock.patch('pylons.url', fake_url):
169 fake = fake_conf(alternative_gravatar_url='http://test.com/{email}')
170 with mock.patch('pylons.config', fake):
171 from pylons import url
172 assert url.current() == 'https://server.com'
173 grav = gravatar_url(email_address='test@foo.com', size=24)
174 assert grav == 'http://test.com/test@foo.com'
175
162 176 fake = fake_conf(alternative_gravatar_url='http://test.com/{email}')
163 177 with mock.patch('pylons.config', fake):
164 178 grav = gravatar_url(email_address='test@foo.com', size=24)
@@ -175,3 +189,10 b' class TestLibs(unittest.TestCase):'
175 189 em = 'test@foo.com'
176 190 grav = gravatar_url(email_address=em, size=24)
177 191 assert grav == 'http://test.com/%s/%s' % (_md5(em), 24)
192
193 fake = fake_conf(alternative_gravatar_url='{scheme}://{netloc}/{md5email}/{size}')
194 with mock.patch('pylons.config', fake):
195 em = 'test@foo.com'
196 grav = gravatar_url(email_address=em, size=24)
197 assert grav == 'https://server.com/%s/%s' % (_md5(em), 24)
198
General Comments 0
You need to be logged in to leave comments. Login now