From f76fee63ed9cb3a30d3c0c092d860b1cb93a481b Mon Sep 17 00:00:00 2001
From: Gerard Smyth <gerard.smyth@gmail.com>
Date: Thu, 08 May 2014 13:09:30 -0400
Subject: [PATCH] Updated the SyndicationServlet to provide an additional option to return details of the tags in the repository instead of the commits. This uses a new 'ot' request parameter to indicate the object type of the content to return, which can be ither TAG or COMMIT. If this is not provided, then COMMIT is assumed to maintain backwards compatability. If tags are returned, then the paging parameters, 'l' and 'pg' are still supported, but searching options are currently ignored.

---
 src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties |  219 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 120 insertions(+), 99 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties
index 74ec602..5976614 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_zh_CN.properties
@@ -1,7 +1,7 @@
 gb.repository = \u7248\u672c\u5e93
-gb.owner = \u7ba1\u7406\u5458
+gb.owner = \u62e5\u6709\u8005
 gb.description = \u63cf\u8ff0
-gb.lastChange = \u6700\u8fd1\u4fee\u6539
+gb.lastChange = \u6700\u540e\u4fee\u6539
 gb.refs = refs
 gb.tag = \u6807\u7b7e
 gb.tags = \u6807\u7b7e
@@ -12,11 +12,11 @@
 gb.tree = \u76ee\u5f55
 gb.parent = parent
 gb.url = URL
-gb.history = \u5386\u53f2\u4fe1\u606f
-gb.raw = raw
+gb.history = \u5386\u53f2
+gb.raw = \u539f\u59cb\u6587\u6863
 gb.object = object
-gb.ticketId = ticket id
-gb.ticketAssigned = assigned
+gb.ticketId = \u5de5\u5355\u7f16\u53f7
+gb.ticketAssigned = \u5206\u914d\u60c5\u51b5
 gb.ticketOpenDate = \u5f00\u542f\u65e5\u671f
 gb.ticketState = \u72b6\u6001
 gb.ticketComments = \u8bc4\u8bba
@@ -24,18 +24,18 @@
 gb.local = \u672c\u5730
 gb.remote = \u8fdc\u7a0b
 gb.branches = \u5206\u652f
-gb.patch = patch
+gb.patch = \u8865\u4e01
 gb.diff = \u5bf9\u6bd4
 gb.log = \u65e5\u5fd7
 gb.moreLogs = \u66f4\u591a\u63d0\u4ea4...
 gb.allTags = \u6240\u6709\u6807\u7b7e...
 gb.allBranches = \u6240\u6709\u5206\u652f...
 gb.summary = \u6982\u51b5
-gb.ticket = ticket
+gb.ticket = \u5de5\u5355
 gb.newRepository = \u521b\u5efa\u7248\u672c\u5e93
 gb.newUser = \u6dfb\u52a0\u7528\u6237
-gb.commitdiff = \u5bf9\u6bd4\u63d0\u4ea4\u7684\u5185\u5bb9
-gb.tickets = tickets
+gb.commitdiff = \u63d0\u4ea4\u5bf9\u6bd4
+gb.tickets = \u5de5\u5355
 gb.pageFirst = \u9996\u9875
 gb.pagePrevious = \u524d\u4e00\u9875
 gb.pageNext = \u4e0b\u4e00\u9875
@@ -49,13 +49,13 @@
 gb.moreHistory = \u66f4\u591a\u7684\u5386\u53f2\u4fe1\u606f...
 gb.difftocurrent = \u5bf9\u6bd4\u5f53\u524d
 gb.search = \u641c\u7d22
-gb.searchForAuthor = \u6309\u4f5c\u8005\u641c\u7d22 commits
-gb.searchForCommitter = \u6309\u63d0\u4ea4\u8005\u641c\u7d22 commits
+gb.searchForAuthor = \u6309\u4f5c\u8005\u641c\u7d22\u63d0\u4ea4\u5185\u5bb9
+gb.searchForCommitter = \u6309\u63d0\u4ea4\u8005\u641c\u7d22\u63d0\u4ea4\u5185\u5bb9
 gb.addition = \u6dfb\u52a0
 gb.modification = \u4fee\u6539
 gb.deletion = \u5220\u9664
 gb.rename = \u91cd\u547d\u540d
-gb.metrics = metrics
+gb.metrics = \u7edf\u8ba1\u56fe\u8868
 gb.stats = \u7edf\u8ba1
 gb.markdown = markdown
 gb.changedFiles = \u5df2\u4fee\u6539\u6587\u4ef6
@@ -72,19 +72,19 @@
 gb.docs = \u6587\u6863
 gb.accessRestriction = \u8bbf\u95ee\u9650\u5236
 gb.name = \u540d\u79f0
-gb.enableTickets = \u5141\u8bb8 tickets
-gb.enableDocs = \u5141\u8bb8\u6587\u6863
+gb.enableTickets = \u5141\u8bb8\u4f7f\u7528\u5de5\u5355
+gb.enableDocs = \u5141\u8bb8\u4f7f\u7528\u6587\u6863
 gb.save = \u4fdd\u5b58
 gb.showRemoteBranches = \u663e\u793a\u8fdc\u7a0b\u5206\u652f
 gb.editUsers = \u7f16\u8f91\u7528\u6237
 gb.confirmPassword = \u786e\u8ba4\u5bc6\u7801
-gb.restrictedRepositories = \u7248\u672c\u5e93\u8bbe\u7f6e
+gb.restrictedRepositories = \u53d7\u9650\u7248\u672c\u5e93
 gb.canAdmin = \u7ba1\u7406\u6743\u9650
-gb.notRestricted = anonymous view, clone, & push
-gb.pushRestricted = authenticated push
-gb.cloneRestricted = authenticated clone & push
-gb.viewRestricted = authenticated view, clone, & push
-gb.useTicketsDescription = distributed Ticgit issues
+gb.notRestricted = \u533f\u540d\u6d4f\u89c8\uff0c\u514b\u9686\u4e0e\u63a8\u9001
+gb.pushRestricted = \u8ba4\u8bc1\u63a8\u9001
+gb.cloneRestricted = \u8ba4\u8bc1\u514b\u9686\u4e0e\u63a8\u9001
+gb.viewRestricted = \u8ba4\u8bc1\u6d4f\u89c8\uff0c\u514b\u9686\u4e0e\u63a8\u9001
+gb.useTicketsDescription = \u53ea\u8bfb\u5206\u5e03\u5f0f Ticgit \u4e8b\u52a1
 gb.useDocsDescription = \u5217\u51fa\u7248\u672c\u5e93\u5185\u6240\u6709 Markdown \u6587\u6863
 gb.showRemoteBranchesDescription = \u663e\u793a\u8fdc\u7a0b\u5206\u652f
 gb.canAdminDescription = Gitblit \u670d\u52a1\u5668\u7ba1\u7406\u5458
@@ -94,12 +94,12 @@
 gb.zip = zip
 gb.showReadme = \u663e\u793areadme
 gb.showReadmeDescription = \u5728\u6982\u51b5\u9875\u9762\u663e\u793a \\"readme\\" Markdown \u6587\u4ef6
-gb.nameDescription = \u4f7f\u7528 '/' \u5bf9\u7248\u672c\u5e93\u8fdb\u884c\u5206\u7ec4  \u4f8b\u5982. libraries/mycoollib.git
+gb.nameDescription = \u4f7f\u7528 '/' \u5bf9\u7248\u672c\u5e93\u8fdb\u884c\u5206\u7ec4  \u4f8b\u5982\uff1a libraries/mycoollib.git
 gb.ownerDescription = \u521b\u5efa\u8005\u53ef\u4ee5\u7f16\u8f91\u7248\u672c\u5e93\u5c5e\u6027
 gb.blob = blob
-gb.commitActivityTrend = commit \u6d3b\u52a8\u8d8b\u52bf
-gb.commitActivityDOW = \u6bcf\u5468 commit \u6d3b\u52a8
-gb.commitActivityAuthors = commit \u6d3b\u52a8\u4e3b\u8981\u7528\u6237
+gb.commitActivityTrend = \u63d0\u4ea4\u6d3b\u52a8\u8d8b\u52bf
+gb.commitActivityDOW = \u6bcf\u5468\u63d0\u4ea4\u6d3b\u52a8
+gb.commitActivityAuthors = \u63d0\u4ea4\u6d3b\u52a8\u4e3b\u8981\u7528\u6237
 gb.feed = feed
 gb.cancel = \u53d6\u6d88
 gb.changePassword = \u4fee\u6539\u5bc6\u7801
@@ -109,18 +109,18 @@
 gb.excludeFromFederation = exclude from federation
 gb.excludeFromFederationDescription = \u7981\u6b62\u5df2 federated \u7684 Gitblit \u5b9e\u4f8b\u4ece\u672c\u8d26\u6237\u62c9\u53d6
 gb.tokens = federation tokens
-gb.tokenAllDescription = all repositories, users, & settings
-gb.tokenUnrDescription = all repositories & users
-gb.tokenJurDescription = all repositories
+gb.tokenAllDescription = \u6240\u6709\u7248\u672c\u5e93\uff0c\u7528\u6237\u548c\u8bbe\u7f6e
+gb.tokenUnrDescription = \u6240\u6709\u7248\u672c\u5e93\u548c\u7528\u6237
+gb.tokenJurDescription = \u6240\u6709\u7248\u672c\u5e93
 gb.federatedRepositoryDefinitions = \u7248\u672c\u5e93\u5b9a\u4e49
 gb.federatedUserDefinitions = \u7528\u6237\u5b9a\u4e49
 gb.federatedSettingDefinitions = \u8bbe\u7f6e\u5b9a\u4e49
 gb.proposals = federation proposals
 gb.received = \u5df2\u63a5\u53d7
-gb.type = type
+gb.type = \u7c7b\u522b
 gb.token = token
 gb.repositories = \u7248\u672c\u5e93
-gb.proposal = proposal
+gb.proposal = \u5efa\u8bae
 gb.frequency = \u9891\u7387
 gb.folder = \u6587\u4ef6\u5939
 gb.lastPull = \u4e0a\u4e00\u6b21\u62c9\u53d6
@@ -129,9 +129,9 @@
 gb.exclusions = \u4f8b\u5916
 gb.registration = \u6ce8\u518c
 gb.registrations = federation \u6ce8\u518c
-gb.sendProposal = propose
+gb.sendProposal = \u63d0\u4ea4\u5efa\u8bae
 gb.status = \u72b6\u6001
-gb.origin = origin
+gb.origin = \u8fdc\u7aef
 gb.headRef = \u9ed8\u8ba4\u5206\u652f (HEAD)
 gb.headRefDescription = \u4fee\u6539 HEAD \u6240\u6307\u5411\u7684 ref\u3002 \u4f8b\u5982: refs/heads/master
 gb.federationStrategy = federation \u7b56\u7565
@@ -141,7 +141,7 @@
 gb.message = \u6d88\u606f
 gb.myUrlDescription = \u60a8\u7684 Gitblit \u5b9e\u4f8b\u7684\u516c\u5171\u8bbf\u95ee\u7f51\u5740
 gb.destinationUrl = \u53d1\u9001\u81f3
-gb.destinationUrlDescription = \u4f60\u6240\u8981\u53d1\u9001proposal\u7684 Gitblit \u5b9e\u4f8b\u7f51\u5740
+gb.destinationUrlDescription = \u4f60\u6240\u8981\u53d1\u9001\u5efa\u8bae\u7684 Gitblit \u5b9e\u4f8b\u7f51\u5740
 gb.users = \u7528\u6237
 gb.federation = federation
 gb.error = \u9519\u8bef
@@ -164,7 +164,7 @@
 gb.lastLogin = \u4e0a\u6b21\u767b\u5f55
 gb.skipSizeCalculation = \u5ffd\u7565\u5927\u5c0f\u4f30\u8ba1
 gb.skipSizeCalculationDescription = \u4e0d\u8ba1\u7b97\u7248\u672c\u5e93\u5927\u5c0f\uff08\u8282\u7701\u9875\u9762\u8f7d\u5165\u65f6\u95f4\uff09
-gb.skipSummaryMetrics = \u5ffd\u7565\u6982\u51b5\u5904 metrics
+gb.skipSummaryMetrics = \u5ffd\u7565\u6982\u51b5\u5904\u7684 metrics
 gb.skipSummaryMetricsDescription = \u6982\u51b5\u9875\u9762\u4e0d\u8ba1\u7b97metrics\uff08\u8282\u7701\u9875\u9762\u8f7d\u5165\u65f6\u95f4\uff09
 gb.accessLevel = \u8bbf\u95ee\u7ea7\u522b
 gb.default = \u9ed8\u8ba4
@@ -224,11 +224,11 @@
 gb.authored = authored
 gb.committed = committed
 gb.indexedBranches = \u5df2\u7d22\u5f15\u5206\u652f
-gb.indexedBranchesDescription = \u9009\u62e9\u8981\u653e\u5165\u4f60\u7684 Lucene \u7d22\u5f15\u7684\u5206\u652f
-gb.noIndexedRepositoriesWarning = \u60a8\u7684\u6240\u6709\u7248\u672c\u5e93\u90fd\u6ca1\u6709\u7ecf\u8fc7Lucene\u7d22\u5f15
+gb.indexedBranchesDescription = \u9009\u62e9\u8981\u653e\u5165\u60a8\u7684 Lucene \u7d22\u5f15\u7684\u5206\u652f
+gb.noIndexedRepositoriesWarning = \u60a8\u7684\u6240\u6709\u7248\u672c\u5e93\u90fd\u6ca1\u6709\u7ecf\u8fc7 Lucene \u7d22\u5f15
 gb.undefinedQueryWarning = \u67e5\u8be2\u672a\u5b9a\u4e49!
 gb.noSelectedRepositoriesWarning = \u8bf7\u81f3\u5c11\u9009\u62e9\u4e00\u4e2a\u7248\u672c\u5e93!
-gb.luceneDisabled = Lucene\u7d22\u5f15\u5df2\u88ab\u7981\u6b62
+gb.luceneDisabled = Lucene \u7d22\u5f15\u5df2\u88ab\u7981\u6b62
 gb.failedtoRead = \u8bfb\u53d6\u5931\u8d25
 gb.isNotValidFile = \u4e0d\u662f\u5408\u6cd5\u6587\u4ef6
 gb.failedToReadMessage = \u5728 {0} \u4e2d\u8bfb\u53d6\u9ed8\u8ba4\u6d88\u606f\u5931\u8d25!
@@ -312,8 +312,8 @@
 gb.duration.oneYear = 1 \u5e74
 gb.duration.years = {0} \u5e74
 gb.authorizationControl = \u6388\u6743\u63a7\u5236
-gb.allowAuthenticatedDescription = \u6388\u4e88\u6240\u6709\u8ba4\u8bc1\u7528\u6237\u53d7\u9650\u5236\u7684\u8bbf\u95ee\u6743\u9650
-gb.allowNamedDescription = \u6388\u4e88\u6307\u5b9a\u540d\u79f0\u7684\u7528\u6237\u6216\u56e2\u961f\u53d7\u9650\u5236\u7684\u8bbf\u95ee\u6743\u9650
+gb.allowAuthenticatedDescription = \u6388\u4e88\u6240\u6709\u8ba4\u8bc1\u7528\u6237\u53d7\u9650\u7684\u8bbf\u95ee\u6743\u9650
+gb.allowNamedDescription = \u6388\u4e88\u6307\u5b9a\u540d\u79f0\u7684\u7528\u6237\u6216\u56e2\u961f\u53d7\u9650\u7684\u8bbf\u95ee\u6743\u9650
 gb.markdownFailure = \u8bfb\u53d6 Markdown \u5185\u5bb9\u5931\u8d25\uff01
 gb.clearCache = \u6e05\u9664\u7f13\u5b58
 gb.projects = \u9879\u76ee
@@ -335,7 +335,7 @@
 gb.forksProhibited = \u7981\u6b62\u6d3e\u751f
 gb.forksProhibitedWarning = \u5f53\u524d\u7248\u672c\u5e93\u7981\u6b62\u6d3e\u751f
 gb.noForks = {0} \u6ca1\u6709\u6d3e\u751f
-gb.forkNotAuthorized = \u62b1\u6b49\uff0c\u4f60\u65e0\u6743\u6d3e\u751f {0}
+gb.forkNotAuthorized = \u62b1\u6b49\uff0c\u60a8\u65e0\u6743\u6d3e\u751f {0}
 gb.forkInProgress = \u6b63\u5728\u6d3e\u751f
 gb.preparingFork = \u6b63\u5728\u4e3a\u60a8\u51c6\u5907\u6d3e\u751f...
 gb.isFork = \u5df2\u6d3e\u751f
@@ -350,21 +350,21 @@
 gb.teamPermissions = \u56e2\u961f\u6743\u9650
 gb.add = \u6dfb\u52a0
 gb.noPermission = \u5220\u9664\u6b64\u6743\u9650
-gb.excludePermission = {0} (exclude)
-gb.viewPermission = {0} (view)
-gb.clonePermission = {0} (clone)
-gb.pushPermission = {0} (push)
-gb.createPermission = {0} (push, ref creation)
-gb.deletePermission = {0} (push, ref creation+deletion)
-gb.rewindPermission = {0} (push, ref creation+deletion+rewind)
+gb.excludePermission = {0} (\u6392\u9664)
+gb.viewPermission = {0} (\u6d4f\u89c8)
+gb.clonePermission = {0} (\u514b\u9686)
+gb.pushPermission = {0} (\u63a8\u9001)
+gb.createPermission = {0} (\u63a8\u9001, \u521b\u5efaref)
+gb.deletePermission = {0} (\u63a8\u9001, \u521b\u5efa\u5220\u9664ref)
+gb.rewindPermission = {0} (\u63a8\u9001, \u521b\u5efa\u5220\u9664\u4ee5\u53carewind ref)
 gb.permission = \u6743\u9650
 gb.regexPermission = \u6b64\u6743\u9650\u662f\u901a\u8fc7\u6b63\u5219\u8868\u8fbe\u5f0f \\"{0}\\" \u8bbe\u7f6e
 gb.accessDenied = \u8bbf\u95ee\u88ab\u62d2\u7edd
 gb.busyCollectingGarbage = \u62b1\u6b49\uff0cGitblit\u6b63\u5728 {0} \u5185\u6e05\u7406\u5783\u573e
-gb.gcPeriod = GC \u65f6\u95f4
+gb.gcPeriod = \u5783\u573e\u6e05\u7406\u65f6\u95f4
 gb.gcPeriodDescription = \u5783\u573e\u6e05\u7406\u7684\u6301\u7eed\u65f6\u95f4
-gb.gcThreshold = GC \u9600\u503c
-gb.gcThresholdDescription = \u6fc0\u53d1\u5783\u573e\u6e05\u7406\u7684\u6700\u5c0f objects \u5927\u5c0f
+gb.gcThreshold = \u5783\u573e\u6e05\u7406\u9600\u503c
+gb.gcThresholdDescription = \u6fc0\u53d1\u5783\u573e\u6e05\u7406\u7684\u6700\u5c0f\u5bf9\u8c61\u5927\u5c0f
 gb.ownerPermission = \u7248\u672c\u5e93\u521b\u5efa\u8005
 gb.administrator = \u7ba1\u7406\u5458
 gb.administratorPermission = Gitblit \u7ba1\u7406\u5458
@@ -375,13 +375,13 @@
 gb.mutable = mutable
 gb.specified = specified
 gb.effective = effective
-gb.organizationalUnit = \u7ec4\u7ec7\u90e8\u5206
+gb.organizationalUnit = \u7ec4\u7ec7\u5355\u5143
 gb.organization = \u7ec4\u7ec7
 gb.locality = \u5730\u533a
 gb.stateProvince = \u5dde\u6216\u7701
 gb.countryCode = \u56fd\u5bb6\u4ee3\u7801
 gb.properties = \u5c5e\u6027
-gb.issued = issued
+gb.issued = \u5df2\u53d1\u51fa
 gb.expires = \u5230\u671f
 gb.expired = \u5df2\u5230\u671f
 gb.expiring = \u5373\u5c06\u8fc7\u671f
@@ -416,8 +416,8 @@
 gb.time.inMinutes = {0} \u5206\u949f\u4e4b\u5185
 gb.time.inHours = {0} \u5c0f\u65f6\u4e4b\u5185
 gb.time.inDays = {0} \u5929\u4e4b\u5185
-gb.hostname = hostname
-gb.hostnameRequired = \u8bf7\u8f93\u5165 hostname
+gb.hostname = \u4e3b\u673a\u540d
+gb.hostnameRequired = \u8bf7\u8f93\u5165\u4e3b\u673a\u540d
 gb.newSSLCertificate = \u521b\u5efa\u670d\u52a1\u5668 SSL \u8bc1\u4e66
 gb.newCertificateDefaults = \u521b\u5efa\u8bc1\u4e66\u9ed8\u8ba4\u8bbe\u7f6e
 gb.duration = \u6301\u7eed\u65f6\u95f4
@@ -442,19 +442,19 @@
 gb.siteName = \u7f51\u7ad9\u540d\u79f0
 gb.siteNameDescription = \u60a8\u7684\u670d\u52a1\u5668\u7684\u7b80\u8981\u63cf\u8ff0
 gb.excludeFromActivity = \u4ece\u6d3b\u52a8\u9875\u9762\u6392\u9664
-gb.isSparkleshared = \u7248\u672c\u5e93\u5df2\u901a\u8fc7Sparkleshare\u5b8c\u6210\u540c\u6b65
+gb.isSparkleshared = \u7248\u672c\u5e93\u5df2\u901a\u8fc7 Sparkleshare \u5b8c\u6210\u540c\u6b65
 gb.owners = \u62e5\u6709\u8005
 gb.sessionEnded = \u4f1a\u8bdd\u5df2\u5173\u95ed
 gb.closeBrowser = \u8bf7\u5173\u95ed\u6d4f\u89c8\u5668\u4ee5\u4fbf\u6b63\u5e38\u5173\u95ed\u4f1a\u8bdd\u3002
 gb.doesNotExistInTree = {1} \u76ee\u5f55\u4e2d\u4e0d\u5b58\u5728 {0}
 gb.enableIncrementalPushTags = \u5141\u8bb8\u9012\u589e\u5f0f\u63a8\u9001\u6807\u7b7e
-gb.useIncrementalPushTagsDescription = \u6bcf\u6b21\u63a8\u9001\u65f6\uff0c\u81ea\u52a8\u4e3a\u6bcf\u4e2a\u5206\u652f\u6dfb\u52a0\u9012\u589e\u7684revision\u7f16\u53f7
+gb.useIncrementalPushTagsDescription = \u6bcf\u6b21\u63a8\u9001\u65f6\uff0c\u81ea\u52a8\u4e3a\u6bcf\u4e2a\u5206\u652f\u6dfb\u52a0\u9012\u589e\u7684\u4fee\u8ba2\u7f16\u53f7
 gb.incrementalPushTagMessage = \u63a8\u9001\u65f6\u81ea\u52a8\u4e3a\u5206\u652f [{0}] \u6dfb\u52a0\u6807\u7b7e
 gb.externalPermissions = {0} \u7684\u8bbf\u95ee\u6743\u9650\u5c5e\u4e8e\u5916\u90e8\u63a7\u5236
 gb.viewAccess = \u60a8\u6ca1\u6709 Gitblit \u8bfb\u6216\u5199\u7684\u6743\u9650
 gb.overview = \u603b\u89c8
 gb.dashboard = \u516c\u544a\u677f
-gb.monthlyActivity = \u6708\u5ea6\u6d3b\u52a8
+gb.monthlyActivity = \u6bcf\u6708\u6d3b\u52a8
 gb.myProfile = \u7528\u6237\u4e2d\u5fc3
 gb.compare = \u5bf9\u6bd4
 gb.manual = \u624b\u518c
@@ -470,9 +470,9 @@
 gb.oneCommitTo = 1 \u6b21\u63a8\u9001\u81f3
 gb.byNAuthors = \u6765\u81ea {0}
 gb.byOneAuthor = \u6765\u81ea {0}
-gb.viewComparison = \u5bf9\u6bd4\u4ee5\u4e0b {0} \u6b21\u63d0\u4ea4\u5185\u5bb9 \xbb
-gb.nMoreCommits = \u5176\u4ed6 {0} \u6b21\u63d0\u4ea4\xbb
-gb.oneMoreCommit = \u5176\u4ed6 1 \u6b21\u63d0\u4ea4 \xbb
+gb.viewComparison = \u5bf9\u6bd4\u4ee5\u4e0a {0} \u6b21\u63d0\u4ea4\u5185\u5bb9 \u00bb
+gb.nMoreCommits = \u5176\u4ed6 {0} \u6b21\u63d0\u4ea4 \u00bb
+gb.oneMoreCommit = \u5176\u4ed6 1 \u6b21\u63d0\u4ea4 \u00bb
 gb.pushedNewTag = \u63a8\u9001\u65b0\u6807\u7b7e
 gb.createdNewTag = \u521b\u5efa\u65b0\u6807\u7b7e
 gb.deletedTag = \u5220\u9664\u6807\u7b7e
@@ -484,7 +484,7 @@
 gb.rewind = REWIND
 gb.star = \u5173\u6ce8
 gb.unstar = \u53d6\u6d88\u5173\u6ce8
-gb.stargazers = stargazers
+gb.stargazers = \u5173\u6ce8\u8005
 gb.starredRepositories = \u5df2\u5173\u6ce8\u7248\u672c\u5e93
 gb.failedToUpdateUser = \u66f4\u65b0\u7528\u6237\u8d26\u6237\u4fe1\u606f\u5931\u8d25!
 gb.myRepositories = \u6211\u7684\u7248\u672c\u5e93
@@ -493,12 +493,12 @@
 gb.metricAuthorExclusions = author metric exclusions
 gb.myDashboard = \u6211\u7684\u516c\u544a\u677f
 gb.failedToFindAccount = \u5bfb\u627e\u8d26\u6237 ''{0}'' \u5931\u8d25
-gb.reflog = reflog
+gb.reflog = \u64cd\u4f5c\u8bb0\u5f55
 gb.active = \u6d3b\u52a8
 gb.starred = \u5df2\u5173\u6ce8
-gb.owned = \u5c5e\u4e8e\u60a8
-gb.starredAndOwned = \u5df2\u5173\u6ce8 & \u5c5e\u4e8e\u60a8
-gb.reviewPatchset = review {0} patchset {1}
+gb.owned = \u62e5\u6709\u7740
+gb.starredAndOwned = \u5df2\u5173\u6ce8 & \u62e5\u6709\u7740
+gb.reviewPatchset = \u4fee\u8ba2 {0} \u8865\u4e01\u96c6 {1}
 gb.todaysActivityStats = \u4eca\u5929 / \u6765\u81ea {2} \u7684 {1} \u6b21\u63d0\u4ea4
 gb.todaysActivityNone = \u4eca\u5929 / \u65e0
 gb.noActivityToday = \u4eca\u5929\u6ca1\u6709\u4efb\u4f55\u6d3b\u52a8
@@ -506,17 +506,17 @@
 gb.commitMessageRenderer = \u63d0\u4ea4\u4fe1\u606f\u4fee\u9970\u5668
 gb.diffStat = {0} \u6b21\u63d2\u5165 & {1} \u6b21\u5220\u9664
 gb.home = \u4e3b\u9875
-gb.isMirror = \u5f53\u524d\u7248\u672c\u662f\u955c\u50cf
+gb.isMirror = \u5f53\u524d\u7248\u672c\u662f\u4e00\u4e2a\u955c\u50cf
 gb.mirrorOf = {0} \u7684\u955c\u50cf
-gb.mirrorWarning = \u5f53\u524d\u7248\u672c\u5e93\u662f\u955c\u50cf\u65e0\u6cd5\u63a5\u53d7\u63a8\u9001
+gb.mirrorWarning = \u5f53\u524d\u7248\u672c\u5e93\u662f\u955c\u50cf\uff0c\u65e0\u6cd5\u63a5\u53d7\u63a8\u9001
 gb.docsWelcome1 = \u4f60\u53ef\u4ee5\u4f7f\u7528\u6587\u6863\u6587\u4ef6\u7ed9\u60a8\u7684\u7248\u672c\u5e93\u6dfb\u52a0\u6587\u6863\u3002
 gb.docsWelcome2 = \u63d0\u4ea4\u4e00\u4e2a README.md \u6216\u8005\u4e00\u4e2a HOME.md \u6765\u5f00\u59cb\u3002
 gb.createReadme = \u521b\u5efa\u4e00\u4e2a README
-gb.responsible = \u53ef\u76f8\u5e94
-gb.createdThisTicket = \u521b\u5efa\u5f53\u524d ticket
-gb.proposedThisChange = \u53d1\u8868\u5f53\u524d\u4fee\u6539
+gb.responsible = \u8d1f\u8d23\u4eba
+gb.createdThisTicket = \u521b\u5efa\u5f53\u524d\u5de5\u5355
+gb.proposedThisChange = \u63d0\u4ea4\u5f53\u524d\u4fee\u6539
 gb.uploadedPatchsetN = \u4e0a\u4f20\u8865\u4e01\u96c6 {0}
-gb.uploadedPatchsetNRevisionN = \u4e0a\u6b21\u8865\u4e01\u96c6 {0} revision {1}
+gb.uploadedPatchsetNRevisionN = \u4e0a\u6b21\u8865\u4e01\u96c6 {0} \u4fee\u8ba2 {1}
 gb.mergedPatchset = \u5df2\u5408\u5e76\u8865\u4e01\u96c6
 gb.commented = \u5df2\u8bc4\u8bba
 gb.noDescriptionGiven = \u65e0\u63cf\u8ff0
@@ -524,7 +524,7 @@
 gb.createdBy = \u521b\u5efa\u8005
 gb.oneParticipant = {0} \u4e2a\u53c2\u4e0e\u8005
 gb.nParticipants = {0} \u4e2a\u53c2\u4e0e\u8005
-gb.noComments = no comments
+gb.noComments = \u65e0\u8bc4\u8bba
 gb.oneComment = {0} \u6761\u8bc4\u8bba
 gb.nComments = {0} \u6761\u8bc4\u8bba
 gb.oneAttachment = {0} \u4e2a\u9644\u4ef6
@@ -535,9 +535,9 @@
 gb.open = \u5f00\u542f
 gb.closed = \u5df2\u5173\u95ed
 gb.merged = \u5df2\u5408\u5e76
-gb.ticketPatchset = ticket {0}, \u8865\u4e01\u96c6 {1}
+gb.ticketPatchset = \u5de5\u5355 {0}, \u8865\u4e01\u96c6 {1}
 gb.patchsetMergeable = \u5f53\u524d\u8865\u4e01\u96c6\u53ef\u4ee5\u88ab\u81ea\u52a8\u5408\u5e76\u81f3 {0}\u3002
-gb.patchsetMergeableMore = \u5f53\u524d\u8865\u4e01\u96c6\u4e5f\u53ef\u4ee5\u9001\u547d\u4ee4\u884c\u5408\u5e76\u81f3 {0} \u3002
+gb.patchsetMergeableMore = \u5f53\u524d\u8865\u4e01\u96c6\u4e5f\u53ef\u4ee5\u7528\u547d\u4ee4\u884c\u5408\u5e76\u81f3 {0} \u3002
 gb.patchsetAlreadyMerged = \u5f53\u524d\u8865\u4e01\u96c6\u5df2\u88ab\u5408\u5e76\u81f3 {0}.
 gb.patchsetNotMergeable = \u5f53\u524d\u8865\u4e01\u96c6\u65e0\u6cd5\u88ab\u81ea\u52a8\u5408\u5e76\u81f3 {0}.
 gb.patchsetNotMergeableMore = \u5f53\u524d\u8865\u4e01\u96c6\u5fc5\u987brebase\u6216\u8005\u624b\u52a8\u5408\u5e76\u81f3 {0} \u4ee5\u89e3\u51b3\u51b2\u7a81\u3002
@@ -551,12 +551,12 @@
 gb.showHideDetails = \u663e\u793a/\u9690\u85cf \u8be6\u7ec6\u5185\u5bb9
 gb.acceptNewPatchsets = \u63a5\u53d7\u8865\u4e01\u96c6
 gb.acceptNewPatchsetsDescription = \u63a5\u53d7\u63a8\u9001\u5230\u5f53\u524d\u7248\u672c\u5e93\u7684\u8865\u4e01\u96c6
-gb.acceptNewTickets = \u5141\u8bb8\u65b0\u7684ticket
-gb.acceptNewTicketsDescription = \u5141\u8bb8\u521b\u5efa\u5173\u4e8ebug, \u6539\u8fdb, \u4efb\u52a1\u76f8\u5173\u7684tickets
+gb.acceptNewTickets = \u5141\u8bb8\u521b\u5efa\u5de5\u5355
+gb.acceptNewTicketsDescription = \u5141\u8bb8\u521b\u5efa\u5173\u4e8ebug, \u6539\u8fdb, \u4efb\u52a1\u76f8\u5173\u7684\u5de5\u5355
 gb.requireApproval = \u9700\u8981\u786e\u8ba4
-gb.requireApprovalDescription = merge\u6309\u94ae\u53ea\u6709\u5728\u8865\u4e01\u96c6\u88ab\u786e\u8ba4\u540e\u624d\u4f1a\u88ab\u6fc0\u6d3b
+gb.requireApprovalDescription = \u5408\u5e76\u6309\u94ae\u53ea\u6709\u5728\u8865\u4e01\u96c6\u88ab\u786e\u8ba4\u540e\u624d\u4f1a\u88ab\u6fc0\u6d3b
 gb.topic = \u4e3b\u9898
-gb.proposalTickets = \u5df2\u53d1\u5e03\u4fee\u6539
+gb.proposalTickets = \u5df2\u53d1\u5e03\u5efa\u8bae
 gb.bugTickets = bugs
 gb.enhancementTickets = \u6539\u8fdb
 gb.taskTickets = \u4efb\u52a1
@@ -582,20 +582,20 @@
 gb.noMilestoneSelected = \u6ca1\u6709\u88ab\u9009\u4e2d\u7684milestone
 gb.notSpecified = \u672a\u6307\u5b9a
 gb.due = \u622a\u6b62\u65e5\u671f
-gb.queries = \u51fa\u5de1
-gb.searchTicketsTooltip = \u641c\u7d22 {0} \u4e2aticket
-gb.searchTickets = \u641c\u7d22tickets
+gb.queries = \u67e5\u8be2
+gb.searchTicketsTooltip = \u641c\u7d22 {0} \u4e2a\u516c\u9053
+gb.searchTickets = \u641c\u7d22\u5de5\u5355
 gb.new = \u65b0\u5efa
-gb.newTicket = \u65b0\u5efaticket
-gb.editTicket = \u7f16\u8f91ticket
-gb.ticketsWelcome = \u4f60\u53ef\u4ee5\u4f7f\u7528tickets\u7ba1\u7406\u60a8\u7684todo list, \u8ba8\u8bbabugs, \u5408\u4f5c\u5236\u4f5c\u8865\u4e01\u96c6\u3002
-gb.createFirstTicket = \u521b\u5efa\u60a8\u7684\u7b2c\u4e00\u4e2a ticket
+gb.newTicket = \u65b0\u5efa\u5de5\u5355
+gb.editTicket = \u7f16\u8f91\u5de5\u5355
+gb.ticketsWelcome = \u4f60\u53ef\u4ee5\u4f7f\u7528\u5de5\u5355\u7ba1\u7406\u60a8\u7684todo list, \u8ba8\u8bbabugs, \u5408\u4f5c\u5236\u4f5c\u8865\u4e01\u96c6\u3002
+gb.createFirstTicket = \u521b\u5efa\u60a8\u7684\u7b2c\u4e00\u4e2a\u5de5\u5355
 gb.title = \u6807\u9898
 gb.changedStatus = \u4fee\u6539\u72b6\u6001
 gb.discussion = \u8ba8\u8bba
 gb.updated = \u5df2\u66f4\u65b0
 gb.proposePatchset = \u63d0\u4ea4\u4e00\u4e2a\u8865\u4e01\u96c6
-gb.proposePatchsetNote = \u6b22\u8fce\u60a8\u4e3a\u5f53\u524dticket\u63d0\u4ea4\u8865\u4e01\u96c6\u3002
+gb.proposePatchsetNote = \u6b22\u8fce\u60a8\u4e3a\u5f53\u524d\u5de5\u5355\u63d0\u4ea4\u8865\u4e01\u96c6\u3002
 gb.proposeInstructions = \u9996\u5148\u521b\u5efa\u4e00\u4e2a\u8865\u4e01\u96c6\uff0c\u7136\u540e\u7528Git\u4e0a\u4f20\u3002  Gitblit \u4f1a\u81ea\u52a8\u901a\u8fc7id\u5c06\u8865\u4e01\u96c6\u4e0e\u5f53\u524dticket\u76f8\u8fde\u63a5\u3002
 gb.proposeWith = \u5bf9 {0} \u63d0\u4ea4\u4e00\u4e2a\u8865\u4e01\u96c6
 gb.revisionHistory = \u4fee\u8ba2\u5386\u53f2
@@ -607,23 +607,23 @@
 gb.checkout = \u68c0\u51fa
 gb.checkoutViaCommandLine = \u901a\u8fc7\u547d\u4ee4\u884c\u68c0\u51fa
 gb.checkoutViaCommandLineNote = \u60a8\u53ef\u4ee5\u68c0\u51fa\u7136\u540e\u5728\u672c\u5730\u4f7f\u7528\u514b\u9686\u6d4b\u8bd5\u4fee\u6539\u7684\u5185\u5bb9\u3002
-gb.checkoutStep1 = \u83b7\u53d6\u5f53\u524d\u8865\u4e01\u96c6 \\u2014 \u7136\u540e\u5728\u60a8\u7684\u672c\u5730\u9879\u76ee\u76ee\u5f55\u8fd0\u884c
-gb.checkoutStep2 = \u5c06\u8865\u4e01\u96c6\u68c0\u51fa\u81f3\u65b0\u7684\u5206\u652f\u8fdb\u884c\u67e5\u770b
+gb.checkoutStep1 = \u83b7\u53d6\u5f53\u524d\u8865\u4e01\u96c6 \u2014 \u7136\u540e\u5728\u60a8\u7684\u672c\u5730\u9879\u76ee\u76ee\u5f55\u8fd0\u884c
+gb.checkoutStep2 = \u5c06\u8865\u4e01\u96c6\u68c0\u51fa\u81f3\u65b0\u7684\u5206\u652f\u4ee5\u8fdb\u884c\u4fee\u8ba2
 gb.mergingViaCommandLine = \u4f7f\u7528\u547d\u4ee4\u884c\u5408\u5e76
-gb.mergingViaCommandLineNote = \u5982\u679c\u60a8\u4e0d\u60f3\u4f7f\u7528Merge\u6309\u94ae\uff0c\u6216\u8005\u65e0\u6cd5\u81ea\u52a8\u5408\u5e76\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u547d\u4ee4\u884c\u624b\u52a8\u5408\u5e76
-gb.mergeStep1 = \u68c0\u51fa\u4e00\u4e2a\u65b0\u7684\u5206\u652f\u4ee5\u67e5\u770b\u6539\u52a8 \\u2014 \u7136\u540e\u5728\u60a8\u7684\u672c\u5730\u9879\u76ee\u76ee\u5f55\u8fd0\u884c
-gb.mergeStep2 = \u5e26\u8fdb\u65b0\u7684\u4fee\u6539\u7136\u540e\u67e5\u770b
+gb.mergingViaCommandLineNote = \u5982\u679c\u60a8\u4e0d\u60f3\u4f7f\u7528\u5408\u5e76\u6309\u94ae\uff0c\u6216\u8005\u65e0\u6cd5\u81ea\u52a8\u5408\u5e76\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u547d\u4ee4\u884c\u624b\u52a8\u5408\u5e76
+gb.mergeStep1 = \u68c0\u51fa\u4e00\u4e2a\u65b0\u7684\u5206\u652f\u4ee5\u4fee\u8ba2\u6539\u52a8 \u2014 \u7136\u540e\u5728\u60a8\u7684\u672c\u5730\u9879\u76ee\u76ee\u5f55\u8fd0\u884c
+gb.mergeStep2 = \u5f15\u5165\u5df2\u63d0\u4ea4\u4fee\u6539\u540e\u4fee\u8ba2
 gb.mergeStep3 = \u5408\u5e76\u5df2\u63d0\u4ea4\u7684\u4fee\u6539\u7136\u540e\u66f4\u65b0\u670d\u52a1\u5668
 gb.download = \u4e0b\u8f7d
 gb.ptDescription = Gitblit \u8865\u4e01\u96c6\u5de5\u5177
-gb.ptCheckout = \u83b7\u53d6\u548c\u68c0\u51fa\u5f53\u524d\u8865\u4e01\u96c6\u5230\u67e5\u770b\u5206\u652f
+gb.ptCheckout = \u83b7\u53d6\u548c\u68c0\u51fa\u5f53\u524d\u8865\u4e01\u96c6\u5230\u4e00\u4e2a\u4fee\u8ba2\u5206\u652f
 gb.ptMerge = \u83b7\u53d6\u548c\u68c0\u51fa\u5f53\u524d\u8865\u4e01\u96c6\u5230\u60a8\u7684\u672c\u5730\u5206\u652f
-gb.ptDescription1 = Barnum \u662f\u4e00\u4e2aGit\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u7b80\u5316\u4e0eGitblit tickets\u548c\u8865\u4e01\u96c6\u5de5\u4f5c\u7684\u6b65\u9aa4\u3002
-gb.ptSimplifiedCollaboration = \u7b80\u5316\u7684\u5408\u4f5c\u683c\u5f0f
+gb.ptDescription1 = Barnum \u662f\u4e00\u4e2aGit\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u7b80\u5316\u4e0eGitblit\u5de5\u5355\u548c\u8865\u4e01\u96c6\u534f\u4f5c\u7684\u6b65\u9aa4\u3002
+gb.ptSimplifiedCollaboration = \u7b80\u5316\u534f\u4f5c\u683c\u5f0f
 gb.ptSimplifiedMerge = \u7b80\u5316\u5408\u5e76\u683c\u5f0f
 gb.ptDescription2 = Barnum \u9700\u8981 Python 3 \u4ee5\u53ca\u672c\u5730\u5b89\u88c5Git.  \u5b83\u53ef\u4ee5\u5de5\u4f5c\u5728 Windows, Linux, \u4ee5\u53ca Mac OS X\u4e0a\u9762\u3002
 gb.stepN = \u7b2c {0} \u6b65
-gb.watchers = \u89c2\u5bdf\u8005
+gb.watchers = \u5173\u6ce8\u8005
 gb.votes = \u6295\u7968
 gb.vote = \u5bf9\u5f53\u524d {0} \u6295\u7968
 gb.watch = \u5173\u6ce8 {0}
@@ -639,13 +639,34 @@
 gb.addedNCommits = \u6dfb\u52a0 {0} \u4e2a\u63d0\u4ea4
 gb.commitsInPatchsetN = \u8865\u4e01\u96c6 {0} \u4e2d\u7684\u63d0\u4ea4
 gb.patchsetN = \u8865\u4e01\u96c6 {0}
-gb.reviewedPatchsetRev = \u5df2\u5ba1\u67e5\u8865\u4e01\u96c6 {0} \u4fee\u8ba2 {1}: {2}
-gb.review = \u5ba1\u67e5
-gb.reviews = \u5ba1\u67e5
+gb.reviewedPatchsetRev = \u5df2\u4fee\u8ba2\u8865\u4e01\u96c6 {0} \u4fee\u8ba2 {1}: {2}
+gb.review = \u4fee\u8ba2
+gb.reviews = \u4fee\u8ba2
 gb.veto = \u5426\u51b3
 gb.needsImprovement = \u9700\u8981\u6539\u8fdb
 gb.looksGood = \u770b\u8d77\u6765\u4e0d\u9519
 gb.approve = \u540c\u610f
 gb.hasNotReviewed = \u672a\u88ab\u5ba1\u67e5\u8fc7
 gb.about = \u5173\u4e8e
-gb.ticketN = ticket #{0}
\ No newline at end of file
+gb.ticketN = \u5de5\u5355 #{0}
+gb.disableUser = \u7981\u6b62\u7528\u6237
+gb.disableUserDescription = \u7981\u6b62\u5f53\u524d\u8d26\u6237\u8fdb\u884c\u8ba4\u8bc1
+gb.any = \u4efb\u610f
+gb.milestoneProgress = {0} \u5f00\u542f, {1} \u5173\u95ed
+gb.nOpenTickets = {0} \u5f00\u542f
+gb.nClosedTickets = {0} \u5173\u95ed
+gb.nTotalTickets = \u603b\u8ba1 {0}
+gb.body = \u5185\u5bb9
+gb.mergeSha = \u5408\u5e76SHA
+gb.mergeTo = \u5408\u5e76\u5230
+gb.labels = \u6807\u7b7e
+gb.reviewers = \u4fee\u8ba2\u4eba
+gb.voters = \u6295\u7968\u4eba
+gb.mentions = \u63d0\u53ca
+gb.canNotProposePatchset = \u65e0\u6cd5\u63d0\u4ea4\u8865\u4e01\u96c6
+gb.repositoryIsMirror = \u5f53\u524d\u7248\u672c\u5e93\u662f\u53ea\u8bfb\u955c\u50cf\u3002
+gb.repositoryIsFrozen = \u5f53\u524d\u7248\u672c\u5e93\u5df2\u88ab\u51bb\u7ed3\u3002
+gb.repositoryDoesNotAcceptPatchsets = \u5f53\u524d\u7248\u672c\u5e93\u4e0d\u5141\u8bb8\u8865\u4e01\u96c6\u3002
+gb.serverDoesNotAcceptPatchsets = \u5f53\u524d\u670d\u52a1\u5668\u4e0d\u5141\u8bb8\u8865\u4e01\u96c6\u3002
+gb.ticketIsClosed = \u5f53\u524d\u5de5\u5355\u5df2\u5173\u95ed\u3002
+gb.mergeToDescription = \u5408\u5e76\u5de5\u5355\u8865\u4e01\u96c6\u7684\u9ed8\u8ba4\u96c6\u6210\u5206\u652f
\ No newline at end of file

--
Gitblit v1.9.1