Compare commits

..

1031 Commits

Author SHA1 Message Date
Unknwon
f43d21d0af locale: sync from Crowdin 2018-12-11 22:17:09 -05:00
Unknwon
8e2c3b315b models: remove legacy support 2018-12-11 22:00:01 -05:00
Nikita
9079fb6a0d pkg/markup: support data URL of base64 encoded images (#5391) 2018-12-10 23:53:08 -05:00
Unknwon
db3f0048d8 templates: rename template function Str2html -> Str2HTML 2018-12-10 22:23:56 -05:00
Unknwon
d3d8284985 templates: sanitize special links in commit message (#5545)
Reported by @cezar97.
2018-12-10 22:21:42 -05:00
Unknwon
f545faa06d templates: make state changing routes to POST method (#5541)
- pkg/context: add ParamsUser to unify the injection process
2018-12-06 22:58:02 -05:00
Unknwon
458aadbb10 vendor: update github.com/go-macaron/session 2018-12-04 19:36:05 -05:00
Unknwon
f2ec0d80a8 user/auth: flush and destroy session at logout (#5540)
Reported by @cezar97.
2018-12-04 19:35:44 -05:00
Unknwon
be6bb5314e ci: update appveyor.yml 2018-12-03 20:00:28 -05:00
Unknwon
98114944fc vendor: update github.com/gogs/go-gogs-client
Bring fixes for #5538
2018-12-03 14:45:19 -05:00
Unknwon
6690023555 pkg/context: use host address and apply insecure flag for go-get=1 when needed (#5305) 2018-12-03 13:36:11 -05:00
Unknwon
a7e8187a0d pkg/context: expose port in import path for 'go-get=1' (#5305) 2018-12-03 13:24:31 -05:00
Unknwon
0c1b72616a locale: sync from Crowdin 2018-12-02 20:02:09 -05:00
Unknwon
945a378e55 public/css: adjust width of label color in dropdown
models/issue: unify Issue receiver name to 'issue'
2018-12-02 17:54:55 -05:00
Unknwon
29c5be47ed models/issue: fix panic when clear labels (#5445) 2018-12-02 17:51:24 -05:00
无闻
e0f18b2255 github: update issue templates (#5537) 2018-12-02 15:25:06 -05:00
Unknwon
e755aafe29 vendor: update github.com/gogs/go-gogs-client 2018-12-02 12:55:16 -05:00
Unknwon
e1b3a25008 api/repo: support edit repository issue tracker (gogs/go-gogs-client#94) 2018-12-02 12:55:05 -05:00
Unknwon
69c1cd3f38 routes/api: change status handle to new style
Also fixed one bug that did not catch team not found error.
2018-12-01 21:41:30 -05:00
Unknwon
ce13fbb98a routes/api: allow get repository without login (#5475) 2018-12-01 21:40:19 -05:00
Samuel Cochran
084d9e0009 templates/user/dashboard: include 'org' query parameter in new mirror URL (#5534) 2018-11-29 07:21:16 -05:00
Unknwon
3db9b06a6e api: fix critical CSRF vulnerabilities on API routes (#5355)
By explicitly requires token authentication.
2018-11-28 21:05:58 -05:00
Unknwon
e9be8016e6 README: add new sponsor 2018-11-27 10:46:46 -05:00
Unknwon
1f9e21ebd5 templates/wiki: fix emoji rendering (#4869) 2018-11-26 07:02:21 -05:00
Unknwon
a91d9054ad conf: fix unexpected behavior of config inheritance (#5007) 2018-11-26 06:44:06 -05:00
Charles Kenney
6c90d12a0c routes/repo/issue: implement issue pre-filling (#5521)
Signed-off-by: Charles Kenney <charlesc.kenney@gmail.com>
2018-11-20 13:16:42 -05:00
Unknwon
38e8ccac92 conf: add go-bindata install command in README
[ci skip]
2018-11-20 02:37:16 -05:00
Unknwon
1d19a58424 locale: sync from Crowdin 2018-11-19 18:58:00 -05:00
Danilo Riecken P. de Morais
f47f9ceade mirror: trigger additional push webhook on new branch (#5508)
This commit fixes issue #5473 and makes a new branch behave like a
      push event and trigger the appropriate webhook.
2018-11-14 23:03:03 -05:00
Federico Culloca
81effe674d templates/user/profile: added rel="me" to website link on user profile (#5485)
* Added rel="me" to website link on user profile

See issue #5008

* Added `nofollow` as per feedback
2018-11-12 20:49:30 -05:00
Unknwon
831251bcaa ci: remove Go master for the moment 2018-11-08 18:03:16 -05:00
A.J. Ruckman
f4630f9044 public/css: add 'overflow-wrap: break-word' to dashboard news feeds (#5507) 2018-11-08 17:51:56 -05:00
William Hilton
dae311ea9d repo/http: update CORS headers to allow custom user-agent (#5498)
At some point after #4970 was merged, isomorphic-git started sending a custom User-Agent in its HTTP requests to deal with some services (\*cough\* gists \*cough\*) which filtered git traffic by User-Agent. Sadly, this broke cloning from Gogs using isomorphic-git in the browser (https://github.com/isomorphic-git/isomorphic-git/issues/555). This PR fixes it by telling browsers it is OK for CORS requests to send a custom User-Agent header.
2018-11-07 18:14:15 -05:00
Unknwon
4677b46904 vendor: update github.com/go-macaron/session (#5469)
Fix security flaw reported by c957861129d62331c5704d2f04d11e41.
2018-11-06 22:22:02 -05:00
Unknwon
a4dd2b1916 Merge branch 'master' of github.com:gogs/gogs into develop 2018-11-05 16:48:31 -05:00
Masen Furer
3d117b8964 Dockerfile.aarch64hub: install shadow package (#5481)
the shadow package contains the usermod(8) utility which is used by
start.sh and finalize.sh to configure the git user
2018-11-05 16:46:53 -05:00
hopegolden
6a083e9561 ldap: grammar fix (#5493) 2018-11-05 16:44:28 -05:00
hopegolden
044d359a7e docker: grammar fix (#5492) 2018-11-05 16:44:01 -05:00
Unknwon
f35d4164d6 pkg/bindata: update content 2018-11-04 18:37:01 -05:00
Unknwon
3058f8fd69 conf: change default session cookie name
[CI SKIP]
2018-10-24 10:05:35 -04:00
Unknwon
5129ed215e vendor: update github.com/go-macaron/session (#5469)
Fix security flaw reported by c957861129d62331c5704d2f04d11e41.
2018-10-24 09:59:07 -04:00
Unknwon
b93079f1c1 vendor: update github.com/go-macaron/session (#5469)
Fix security flaw reported by c957861129d62331c5704d2f04d11e41.
2018-10-24 09:43:59 -04:00
Unknwon
a1098384c0 vendor: update github.com/gogs/git-module 2018-10-23 07:02:13 -04:00
aboron
43bca4df40 ldap: fix group membership search handling when the group members are listed by 'dn' (#4684) (#4688)
Also, fixed typo in group member list return size check.
2018-10-23 04:16:39 -04:00
Unknwon
82269e4b8c locale: sync from Crowdin 2018-10-16 16:58:18 -04:00
Unknwon
14e49614e6 gogs: rise Go requirement to 1.7 2018-10-03 20:49:49 -04:00
Unknwon
a221b2807f routes/repo/issue: fix redirect with unexpected escape (#5443) 2018-09-30 13:55:40 -04:00
Unknwon
0d66b1cc1c pkg/context: apply EscapePound at context level
Always escape template variable {{.Link}} variable and  redirect calls.

Relates to #5442
2018-09-28 23:56:45 -04:00
Unknwon
1843354d88 templates/repo/setting: fix missing EscapePound (#5442) 2018-09-28 23:32:00 -04:00
Unknwon
bd7d1e2f16 routes: fix open redirect vulnerability (#5355)
Reported by @cezar97.
2018-09-28 23:19:29 -04:00
Unknwon
aff0bbcc32 pkg/ssh: print actual error in panic (#5435) 2018-09-28 15:37:34 -04:00
Unknwon
33e009bedb README: add FOSSA badge
[ci skip]
2018-09-26 19:04:41 -04:00
Unknwon
f94dc67a43 librejs: add jQuery
[ci skip]
2018-09-19 13:24:49 -04:00
Unknwon
091f63fd4e Makefile: only read GOPATH from env var
[ci skip]
2018-09-18 12:33:14 -04:00
Unknwon
3a4c981e31 locale: sync from Crowdin 2018-09-16 11:53:32 -04:00
Unknwon
0d48344f93 docker: chown only for the frist time (#5422) 2018-09-15 13:57:41 -04:00
Unknwon
21ceba6cfd Revert "docker: remove chown the git repos on startup (refs #4996). (#5390)"
This reverts commit 068e6ce2c9.
2018-09-15 13:46:14 -04:00
Unknwon
f8302c5470 ci: fix go vet and add Go 1.11.x 2018-09-14 22:48:35 -04:00
Unknwon
7a7e07a57c vendor: add dependencies of Prometheus client 2018-09-14 22:38:06 -04:00
Unknwon
520530dfcf metrics: add initial Prometheus support (#4141) 2018-09-14 22:29:43 -04:00
Unknwon
31c18b4bc7 repo: adjust pull request setting description (#5359) 2018-09-14 20:10:54 -04:00
Unknwon
1ec365de25 repo: trigger webhook when delete branch after merged pull request (#5331) 2018-09-14 20:04:31 -04:00
Unknwon
99f3eabb1b README: update vision
[ci skip]
2018-09-14 15:25:15 -04:00
Unknwon
32479744f6 templates/admin/monitor: fix field error
[ci skip]
2018-09-13 23:30:59 -04:00
Unknwon
b68de2330d auth: support set default login source (#5274) 2018-09-13 14:06:04 -04:00
haixunlu
68a6579852 login_source: add default authentication switch (#5338)
* Add default Authentication Switch.

* adjust the code accroding to reviews

* #1. Remove redudant logic.
#2, Fix a bug in "Edit" panel.

* Remove unused logic

* Fix local authentication files are not flushed.

* refactor according to review.
2018-09-13 13:49:07 -04:00
Jakob Lykke Andersen
798798f7ab templates: hide dashboard org creation when not allowed (#5393)
The admin -> DISABLE_REGULAR_ORG_CREATION setting
hides organization creation in the header, but not
in the dashboard.
2018-09-11 14:10:09 -04:00
leonunix
54e9442a14 docker: fix aarch64 dockerfile make docker image error (#5411) 2018-09-10 15:38:35 -04:00
Unknwon
f7b9f35ce1 locale: sync from Crowdin 2018-09-10 10:41:00 -04:00
Ross Golder
068e6ce2c9 docker: remove chown the git repos on startup (refs #4996). (#5390) 2018-09-08 08:07:30 -04:00
PiPc2
5d4bb4d6f8 librejs.html: fix semantic version (#5404)
currently incompatible with librejs
2018-09-06 20:16:21 -04:00
Unknwon
a05c19682e locale: sync from Crowdin 2018-08-23 12:45:53 +08:00
Stefan Liu
5caa7436d8 gogs: remove app flags line (#5388)
No meaning for this line
2018-08-23 12:35:36 +08:00
Unknwon
512a900202 repo/editor: hide internal error detail
Prevent exposure of server path
2018-08-17 23:35:53 +08:00
Unknwon
ba7b2cc1f6 vendor: update github.com/gogs/git-module 2018-08-17 23:15:26 +08:00
Unknwon
ac73d43444 repo_editor: able to trigger Git hooks (#4338) 2018-08-17 23:15:20 +08:00
Unknwon
33434a40d7 vendor: update github.com/gogs/git-module 2018-08-17 20:03:00 +08:00
Unknwon
844d69143f pkg/markup: allow match SHA1 length 7-40 (#3321) 2018-08-17 20:02:43 +08:00
Unknwon
77275a9b31 models: rename Id to ID 2018-08-16 20:26:09 +08:00
Unknwon
de10d9be08 models: fix delete undesired release attachments when delete a comment (#4627)
Apparently, AfterDelete has ID=0
2018-08-16 20:17:19 +08:00
Steven Haigh
3c227af508 scripts: add NoNewPrivileges=true to systemd unit file (#5381)
Also add comment about unsupported options in different systemd versions.
2018-08-16 19:07:36 +08:00
Unknwon
4c1a479a60 models: fix delete public keys ORM syntax (#5376) 2018-08-14 22:10:44 +08:00
Michael Li
cc95d251d6 docker: add new Dockerfile.docker-ce for docker-ce(>=v17.06) to build docker image (#5322)
* add new Dockerfile.docker-ce for docker-ce(>=v17.06) to  build docker image

* change default Dockerfile to support docker-ce(>=v17.06) multi-stage build
2018-08-13 20:50:25 +08:00
chromium1337
1f247cf813 routes: fix open redirect vulnerability #5364 (#5365) 2018-08-06 17:10:16 +08:00
GeekComb
c9bb33afc3 repo: fix issue of fork repository no check the limit of users' repository (#5346) 2018-07-18 20:03:09 +08:00
Unknwon
97fb9d283f locale: sync from Crowdin 2018-07-16 06:14:54 +08:00
Bogdan Khomutsky
66016b8499 scripts: apply hardening for systemd service (#5332) 2018-07-09 16:13:28 +08:00
PHANI
8bbf0293f5 webhook: add headers to support spring config server (#5325)
Spring cloud config server dependency spring cloud config monitor looks for X-Github-Event condition PropertyPathEndpoint.class -> GithubPropertyPathNotificationExtractor.class if ("push".equals(headers.getFirst("X-Github-Event"))) {...}
2018-07-09 16:12:30 +08:00
cezar97
87b229d280 templates: add 'rel=noopener noreferrer' to <a> tags (#5319)
Signed-off-by: cezar97 <cezar97@protonmail.com>
2018-07-02 19:33:14 +08:00
Unknwon
2a86b3e31d restore: reset milestone deadline_unix and closed_date_unix (#5264) 2018-06-27 22:08:24 +08:00
Steve Chung
436dd6c0a4 routes/repo/setting: require autosize when repo/settings/options is rendered (#5315) 2018-06-26 21:40:09 +08:00
Unknwon
f6bdefe3f3 public: minor fix for PR #5276 2018-06-26 21:16:29 +08:00
ususdei
cd71077c6a pull request: able to add custom commit description (#5276)
* pull request merges now allow for custom commit messages

* allow i18n on commit_message label

* place label above textarea for commit message

* rename commit message for pull requests into commit description and pass to git separately
2018-06-26 20:49:46 +08:00
Unknwon
029b33c650 restore: ignore created_unix for milestone table (#5264) 2018-06-25 20:33:21 +08:00
Unknwon
f4f4edf276 vendor: update github.com/gogs/git-module 2018-06-25 19:58:40 +08:00
Unknwon
992ea5802a locale: sync from Crowdin 2018-06-18 12:21:51 +08:00
Unknwon
376a629c9f repo: add changes to repository avatar feature (#5221) 2018-06-17 22:18:41 +08:00
Sergey Dryabzhinsky
303fa37b60 repo: support avatars (#5221)
* First code for repository avatars

* Last code for repository avatars

- add new option for repo avatars location on filesystem
- add route catch in web
- add new fields to repo model
- add migration
- update settings handlers
- update repo header template

* Update locale messages

* Add repo avatars to home page

* Add repo avatars to organization right panel

* Show repo avatars in repo list

* Remove AvatarEamil field, remove Gravatar support, use generic locale messages

* Fix migration

* Fix seed and not used tool

* Revert public css changes, add them to less files

* Latest lessc (2.6.0) don't put result into file but output to stdout

So redirect output to file

* Simplify things:

- migration don't needed, and table changes too
- just upload file to repo avatar storage
- or generate random image

* Fix repo image seed - name not unique

* Get rid of not needed model fields

* Class value is enough, remove height attribute

* Don't generate random avatar for repository

- use html and semantic ui icons if no avatar found

* Update styles and templates for repo

- use repo icon as default avatar
- use globe icon for public repos
- add micro style for repo avatars at dashboard

* Remvoe redundant empty line

* Fix nl2br filter - must return string

* Fix css style for micro-repo-avatar in dashboard list

* Remove `|len`, works fine w/o it.

* Update after review 2:

- use static route for repository avatar
- format images settings block in settings

* Update after review 2:

- no random avatar for repo

* Update after review 2:

- no random avatar for repo 2
- update imports
- update UploadAvatar* functions

* Update after review 2:

- update templates

* Fix trace call

* Remove unused immport since we use static route for repo avatars.
2018-06-17 20:21:52 +08:00
Unknwon
ef02414d7e pkg/setting: ignore config inline comment by default 2018-06-17 09:10:18 +08:00
Unknwon
bcf83ea792 vendor: update gopkg.in/ini.v1 2018-06-17 09:08:21 +08:00
Unknwon
86a27cf16d modes/repo: syntax fix for PR #5234 2018-06-16 16:48:47 +08:00
James
08ae0dd74b repo: show in search if any part is public (#5234)
if repo is private but wiki and/or issue are public show repo in search
2018-06-16 16:34:55 +08:00
Unknwon
93f3a7f96a vendor: update github.com/go-sql-driver/mysql 2018-06-15 13:33:08 +08:00
Unknwon
7856b1202d *: fix wrong format type 2018-06-13 22:26:56 +08:00
Unknwon
e5ddbcab7d routes/repo/http: fix wrong format type 2018-06-13 21:58:46 +08:00
oOOps
f9bc980b0b api: correct pagination in repository search api (#5293) 2018-06-13 21:55:09 +08:00
奶爸
806754b512 repo: clean up webhook and hook_task when delete repository (#5239) 2018-06-11 21:35:38 +08:00
Unknwon
4d18df204a Merge branch 'pr-5277' into develop
# Conflicts:
#	models/migrations/migrations.go
2018-06-11 21:32:57 +08:00
奶爸
04b4431bc0 migrations: clean unlinked webhook and hook_tasks 2018-06-11 21:29:24 +08:00
Unknwon
dfd494c113 repo: minor improve for PR #5219 and support UTF-8 byte count 2018-06-11 21:06:24 +08:00
Sergey Dryabzhinsky
57897cc8c2 repo: update repository description field to contain more than 256 symbols (#5219)
* Update repository description field to contain more than 256 symbols

- update repository model - description field now is `TEXT` and limited by 4000 symbols
- new migration
- add description to html forms - repo creation and repo settings
- add translation for description

* Update for description field, new features

- add autosize (height) for description textarea, new plugin
- set max description length to 512 symbols
- update locales

* Fix migration - typo in var

* Update repo description behaviour

- add textarea autosize for /repo/create
- add symbols counter under description testarea (create/edit)

* Fix function definition - it a var

* Revert ru-RU locale

* Update by review

- Use type `varchar(512)` in migration
- Remove unused files from autosize plugin

* Fix migration - new project paths

* Fixes after review 2

- copyright year
- format includes
- use switch instead of multi-if

* Remove unused `default:` option.
2018-06-11 20:34:26 +08:00
Unknwon
459c8be94f ci: remove Go 1.6.x 2018-06-09 17:43:26 +08:00
Unknwon
5e158b51db vendor: add new dependencies 2018-06-09 17:34:38 +08:00
Unknwon
fbecc18e2e *: use jsoniter to replace encoding/json 2018-06-09 17:32:58 +08:00
Unknwon
b538c5345e restore: reset original created_unix after insert (#5264) 2018-06-09 17:21:58 +08:00
Unknwon
694208865b vendor: add github.com/json-iterator/go 2018-06-09 17:20:38 +08:00
Unknwon
a75c435245 vendor: update github.com/go-xorm/… 2018-06-09 16:28:52 +08:00
Unknwon
53c8e4263b models: skip JSON for fields skipped by XORM
Reduce output JSON size by backup command
2018-06-09 16:06:47 +08:00
Unknwon
078549518d vendor: update github.com/gogs/git-module 2018-06-09 10:00:45 +08:00
Alexey Terentyev
4c844081f3 routes/repo: added deletion of an empty line at the end of file (#5261) (#5270)
* Added deletion of an empty line at the end of file (#5261)

Signed-off-by: Alexey Terentyev <axifnx@gmail.com>

* Fix after feedback

Signed-off-by: Alexey Terentyev <axifnx@gmail.com>
2018-06-06 21:32:54 +08:00
Unknwon
91441c3fb2 locale: sync from Crowdin 2018-06-05 07:31:34 +08:00
Michael Li
b152cbe45a Makefile: fix make build failure when environment of GOPATH have multiple items (#5262)
* fixed make build failure when enviroment of GOPATH have Multiple items

gogs source in /other/path/to/go/src/github.com/gogs/gogs and then

>cd /other/path/go/go/src/github.com/gogs/gogs
>GOPATH=/path/to/go:/other/path/to/go make

will also build success in this fixed code

* in makefile rename gogits to gogs
2018-06-04 18:41:54 +08:00
Unknwon
c08aab90ec models/mirror: shot push webhook after synced commits (#4528) 2018-06-03 20:32:44 +08:00
Unknwon
8d091ec062 vendor: update github.com/gogs/git-module 2018-06-03 20:26:29 +08:00
Unknwon
0376e59520 pkg/setting: fix '[git] GC_ARGS' is not loaded 2018-06-03 16:02:17 +08:00
Unknwon
e25fe22f9d pkg/template: fix NewLine2br return type to string 2018-06-02 08:15:56 +08:00
Unknwon
bef7f6745c templates/repo/settings: fix mirror setting error 2018-05-30 21:32:40 +08:00
Unknwon
775919c129 mirror: show sync feeds on dashboard (#2017) 2018-05-30 21:26:03 +08:00
Unknwon
702acc06d8 vendor: update github.com/gogs/git-module 2018-05-29 06:43:19 +08:00
Sergey Dryabzhinsky
b5a1daa756 template: simple html filter for repository description (#5242)
* Add markdown renderer function to templates, use it for description in repo template

* Fix function call

* Define function Md2html in template namespace

* Change filter from Md2html to nl2br

* Change filter name to NewLine2br as suggested

* Update description output:

- just replace `\n` by `<br>`
- sanitize html after replace
2018-05-29 06:42:27 +08:00
Unknwon
5a47301dbd docker: rename "gogits" to "gogs" 2018-05-27 09:29:34 +08:00
Unknwon
e33d9e77f4 vendor: rename "gogits" to "gogs" 2018-05-27 09:07:15 +08:00
Unknwon
aff4208244 *: rename "gogits" to "gogs" 2018-05-27 08:53:48 +08:00
Wei He
73dbaefec5 routes/user/setting: fix avatar email update error (#5245) 2018-05-26 09:19:04 +08:00
Unknwon
05edcde6c9 routes/user/auth: improve coding style 2018-05-21 14:45:47 +08:00
Unknwon
01ccc2cc96 security: prevent same passcode from being reused
Reported by @cezar97.
2018-05-21 14:24:06 +08:00
Madzahttr
cd093a07a3 templates/mail/auth: update copyright year (#5224)
* Update activate.tmpl

* Update activate_email.tmpl

* Update register_notify.tmpl

* Update reset_passwd.tmpl
2018-05-13 05:25:51 -04:00
Sergey Dryabzhinsky
7e450542d9 templates/repo: use correct Semantic UI icon styles to fix star and watch icons (#5218)
* Update font-awesome to 4.7.0

* Fix font-awesome styles overrided by semantic

* Revert back

* Revert back 2

* Just use right `semantic` icon styles
2018-05-10 04:58:04 -04:00
Michael Li
45545e897c templates/user/dashboard: make page more concise for user's activity/issues/PR information (#5209) 2018-05-08 14:43:23 -04:00
Lauris BH
eccc8109c1 security: fix path cleanup for repository init and editor (#5207)
Reported by Kacper Szurek https://security.szurek.pl/.
2018-05-08 14:32:49 -04:00
Unknwon
2fabcd0455 locale: sync from Crowdin 2018-05-02 20:46:54 -04:00
Unknwon
e3ce295215 public/css: generate CSS for PR #5169 2018-04-26 17:05:30 -04:00
Florian Wiech
8df59c01d5 public/css: fix file view responsiveness (#5169) 2018-04-26 17:00:55 -04:00
Unknwon
15f9a83618 templates/repo: escape branch name (#4601) 2018-04-25 22:35:50 -04:00
Unknwon
d572381a37 vendor: update gopkg.in/clog.v1 2018-04-25 22:13:16 -04:00
Unknwon
9127001f11 pkg/setting: support Discord logger 2018-04-25 22:13:01 -04:00
Unknwon
742420a5e2 .github: update link to ISSUE_TEMPLATE.md (#5193) 2018-04-25 18:28:41 -04:00
Unknwon
f439df4441 locale: sync from Crowdin 2018-04-25 13:50:48 -04:00
rokuu
c92e8940dc pkg/form: fix bad locale reference (#5196) 2018-04-24 09:57:42 -04:00
rokuu
c68fc4f31a templates: fixes broken UI under supported resolution (1024x768) #5179 (#5182)
* Update view_list.tmpl

* Update commits_table.tmpl

* Update dashboard.tmpl

* Update list.tmpl

* Update list.tmpl

* Update list.tmpl

* Update list.tmpl

* Update notice.tmpl

* Update monitor.tmpl

* Update view_file.tmpl

* Update diff_preview.tmpl

* Update box.tmpl
2018-04-24 09:54:22 -04:00
rokuu
0e80e47592 public/{less,css}: fix overflow of brand logo hyperlink (#5189)
* Update gogs.css

* Update _base.less
2018-04-21 12:11:24 -04:00
Cosmin Stroe
54b9311344 pkg/markup/markdown: Issue mentions should also render with square brackets (#4707)
* gofmt reformat of markdown.go
2018-04-21 12:08:11 -04:00
rokuu
9387b79b98 templates: delete legacy file (#5180) 2018-04-19 01:27:59 -04:00
Unknwon
5c2de3a9ea pkg/template: fix Gravatar URLs are badly generated (#5157) 2018-04-18 19:40:35 -04:00
Changwoo Ryu
eac5b48da0 locale: Add myself to TRANSLATORS (#5177) 2018-04-18 11:09:38 -04:00
Unknwon
f89d948c06 templates/repo/issue: rework escape delete branch link after merged pull request (#4601) 2018-04-16 23:08:09 -04:00
Unknwon
45a0988833 templates/repo/issue: escape delete branch link after merged pull request (#4601) 2018-04-16 23:02:20 -04:00
Nicolas Ettlin
afbb31c05e MISC: fix Mac OS X → macOS (#5168) 2018-04-16 19:29:11 -04:00
Unknwon
e6af6487e1 locale: sync from Crowdin
Add Vietnamese
2018-04-16 17:48:23 -04:00
Josef Kemetmüller
c0b45fa36f ldap: return valid LDAP string if user input lacks "%s" (#5171)
If the user provides a string that does not contain "%s", fmt.Sprintf
silently appends "%!(EXTRA type=value)" instead of failing loudly.
This fixes #4375.
2018-04-16 17:19:45 -04:00
Unknwon
cb47595f13 Bump version 2018-04-12 10:57:43 -04:00
Unknwon
c59704a24b public: update Semantic UI 2.2.13 -> 2.3.1 2018-04-12 09:57:27 -04:00
Unknwon
f2ecfdc96a auth: support authentication source config file (#3142) 2018-04-12 09:55:58 -04:00
Unknwon
717d409b72 templates/admin/auth/list: rename list title 2018-04-11 19:39:17 -04:00
Unknwon
6e207c823e templates/admin/auth/list: move "new" button to table foot 2018-04-11 19:38:52 -04:00
Unknwon
b69294b6d6 locale: sync from Crowdin 2018-04-09 12:38:39 -04:00
Unknwon
6cbaa4787b MISC: update docker build script 2018-04-09 07:26:55 -04:00
Unknwon
8b66c433c5 models/pull: fix error on merge pull requests to non-default branch (#5138) 2018-04-09 07:26:38 -04:00
Unknwon
3329bfa5b2 .github: adjust ISSUE_TEMPLATE 2018-04-05 17:23:03 -04:00
Unknwon
f41f5785bf docker: update README about "custom" directory (#5150) 2018-04-05 17:19:45 -04:00
Unknwon
55f148f499 template: delete legacy file 2018-04-02 00:03:07 -04:00
Unknwon
2978bb1773 README: update sponsors
[CI SKIP]
2018-03-30 23:26:48 -04:00
Unknwon
0152e12172 locale: sync from Crowdin 2018-03-30 23:19:20 -04:00
Unknwon
38d73a4be6 .gopmfile: delete as no longer used
[CI SKIP]
2018-03-30 22:52:05 -04:00
Unknwon
34bd04f925 MISC: fix typo and grammar
Reference: 932490d7f1 (commitcomment-28344918)
2018-03-30 04:40:13 -04:00
Unknwon
17d789a785 pkg/mailer: support custom mail subject prefix (#4524) 2018-03-30 03:52:23 -04:00
Unknwon
63a263f542 templates/admin/config: show SSH.StartBuiltinServer 2018-03-30 01:42:35 -04:00
Unknwon
932490d7f1 conf: add option to rewrite authorized_keys file at start (#4435)
Added config option '[server] REWRITE_AUTHORIZED_KEYS_AT_START'.
2018-03-30 01:32:18 -04:00
Unknwon
a855abf8c0 models: rename RewriteAllPublicKeys -> RewriteAuthorizedKeys 2018-03-30 01:26:36 -04:00
Unknwon
0d2398aaff bindata: update 2018-03-29 05:58:31 -04:00
Unknwon
c17a6ff533 templates/repo: show quick guide to people with write permission (#4646)
Used to only show people who has admin permission.
2018-03-29 05:57:11 -04:00
Rebecca Turner
c3c7944d79 conf: default to disabling federated avatar lookup (#5126)
It's a fun feature but `ENABLE_FEDERATED_AVATAR` being true by default
leads to confusion and huge slowdowns (see #2838, #980, #914) --- it's
unexpected that Gogs requires DNS configured (?) for avatars.

Avatar lookup is a niche feature that I don't believe should be enabled
by default given how prone it is to causing problems.
2018-03-29 05:48:53 -04:00
Unknwon
75555585e8 models/pull: fix rebase merging no effect (#5051) 2018-03-21 19:11:36 -04:00
Unknwon
28e0003a9a templates/repo/branches: escape pound in branch name (#4874) 2018-03-20 20:11:02 -04:00
Jorge Maldonado Ventura
2818ce4632 templates: make dropdowns menus work when JavaScript is disabled (#4780)
* Make dropdowns menus work when JavaScript is disabled

* Update head.tmpl

* Update head.tmpl
2018-03-20 20:04:34 -04:00
Unknwon
52ee796d6d repo_branch: fix SQL builder (#5054) 2018-03-20 19:06:13 -04:00
Unknwon
0f737f2999 vendor: update gopkg.in/clog.v1 2018-03-20 00:48:21 -04:00
William Hilton
6a185e94b9 repo/http: add CORS headers to allow clone/push from browser agents (#4970) 2018-03-14 11:08:00 -04:00
Unknwon
ba0a78da2a templates/repo/branches: escape pound in branch name (#4874) 2018-03-12 15:27:27 -04:00
Dennis Chen
f0bbcef3a4 api: fix nil pointer dereference on repo/forks (#4633)
Sets BaseRepo value for each resulting fork in GetForks().
Finds correct permissions for parent repository in APIFormat().

The output JSON is a little redundant, perhaps we should offer a
different view of the api.Repository without the Parent attribute?

Signed-off-by: Dennis Chen <barracks510@gmail.com>
2018-03-12 15:03:51 -04:00
Unknwon
d7280f82ac locale: sync from Crowdin 2018-03-12 09:23:29 -04:00
m2nlight
aa53d0978c models: add ROW_FORMAT=DYNAMIC when creating table for supports mysql 5.6 (#4913)
* Add ROW_FORMAT=DYNAMIC when creating table for supports mysql 5.6 (fix #4894)

* Update models.go

Rename NewEngine2 to NewEngineWithParams

* Rename NewEngine2 to NewEngineWithParams

Please update vendor when https://github.com/go-xorm/xorm/pull/798 closed.

* Update dialect_mysql.go

* Update dialect_mysql.go

* Update models.go
2018-03-09 15:44:07 -05:00
Julian Xhokaxhiu
ffdd8b3afa docker: enable Automated builds for aarch64 ( ARM64 ) platforms (#5058)
* Enable Automated builds for aarch64

* Native aarch64 build

* Move to the new organization

* Try to build it with latest go binary

* Rebuild using Go 1.10
2018-03-09 13:05:33 -05:00
Unknwon
86d249eb16 migrations: remove unused function and fix compile error 2018-03-09 00:33:40 -05:00
Unknwon
28f74cf1c6 vendor: update github.com/go-xorm/xorm (#4913) 2018-03-09 00:26:47 -05:00
Unknwon
83655d5c00 vendor: update github.com/go-xorm/core (#4913) 2018-03-09 00:25:05 -05:00
Unknwon
63eaac67a6 repo: improve error handling for PR #4803 2018-03-08 07:22:14 -05:00
Unknwon
1f7983059a models: move ErrBranchNotExist to errors package 2018-03-08 07:15:55 -05:00
bayangan1991
51e087fd87 repo: disallow web ui to delete protected branch after PR merged (#4803)
* Disallow web ui to delete protected branch

* Fix for branches not yet protected

Had to change how error was handled. If a branch had not yet been protected the error would be generated.

Reworked to start as false and then use the protected if it was found.
2018-03-08 07:11:34 -05:00
Markus Hauschild
679147cd5d pkgr: update spec to build on Debian 9 (Stretch) (#5083) 2018-03-08 02:14:18 -05:00
Unknwon
40eb652cfa public/plugins: update notebookjs to 0.3.0 (#5077) 2018-03-08 02:12:04 -05:00
Ruben Vermeersch
f4e4ea1374 public: update notebookjs to 0.3.0 (#5084)
Fixes #5077
2018-03-08 02:06:57 -05:00
James
199d67581a templates/user/dashboard/issues: show labels to each issue (#4976)
* add issue labels

* remove hyperlink from issue label

* wrap labels in right aligned span

* put issues with div

put the issue labels within a div so they don't interfere with the number of comments
2018-03-07 06:39:38 -05:00
Unknwon
49bd893a77 bindata: update changes from pull requests 2018-03-06 17:22:27 -05:00
Andres D
8729a60c1d templates/user/auth/login: disable password autocomplete (#5068)
As gogs can be linked with PAM it is recommended to disable the autocomplete on the password input.
2018-03-06 17:20:38 -05:00
Wendell Sun
e4f187cd3d models: bug fix for query protected branches (#5054)
Signed-off-by: Wendell Sun <iwendellsun@gmail.com>
2018-03-06 17:11:31 -05:00
Larry Li
f9c706e31b templates/user/settings: fix delete email button (#4998) 2018-03-06 17:03:43 -05:00
Anton Kazarinov
c5728291ba conf/gitignore: add PhpStorm and WebStorm (#4974) 2018-03-06 16:49:14 -05:00
Sanxing Chen
68d22e78bf templates: update year in footer (#4966)
Happy new year!
2018-03-06 16:47:35 -05:00
Douglas Thrift
0bfce7aca4 repo/commit: fix file commit history pagination (#4965)
- The `commits_table.tmpl` pagination uses a `$.FileName` variable in
  order to generate the next/previous URLs, but it seems like that
  variable was no longer being populated in `renderCommits`.
2018-03-06 16:46:53 -05:00
Drahoslav Bednář
7faa2356d8 pkg/context: add doctype to go-get=1 response (#4938) 2018-03-06 16:43:48 -05:00
Arnie97
2a8a293c7c pkg/tool: use identicon image as the default gravatar (#4934) 2018-03-06 16:43:00 -05:00
Flávio Monteiro
f3e8352193 locale: update TRANSLATORS (#4908) 2018-03-06 16:37:28 -05:00
kaajavi
ca874ba8c7 templates/repo: fix wrong branch url in branches view (#4902) 2018-03-06 16:35:24 -05:00
Unknwon
f274f76607 vendor: update github.com/go-xorm/core
Related #4642
2018-03-06 05:27:04 -05:00
Unknwon
a8b9cefa73 ci: add Go 1.10 2018-03-06 01:31:12 -05:00
Unknwon
b9e4a052b8 vendor: update gopkg.in/macaron.v1 2018-03-06 01:25:55 -05:00
Unknwon
4a669f5478 web: support HTTP HEAD requests (#2857) 2018-03-06 01:21:13 -05:00
Unknwon
ade8aab43f locale: sync from Crowdin
Added Indonesian and Persian
2018-03-05 04:37:44 -05:00
Unknwon
17d2a9c435 vendor: update github.com/gogits/git-module 2018-03-02 02:17:04 -05:00
Unknwon
6f2347fc71 locale: sync from Crowdin
Fixes #4811
2017-11-22 14:46:14 -05:00
Unknwon
dd245fe8bd pull_request: fix changes not pushed to upstream if between two repositories (#4890) 2017-11-22 14:12:52 -05:00
m2nlight
f12c058b78 models: update mySQL charset=utf8mb4 (#4880)
* Add utf8mb4 to connStr for mysql. fix #4131

* Update models.go. charset=utf8mb4 for mysql.

charset=utf8mb4 for mysql.
2017-11-22 13:42:30 -05:00
Robin Alexander Richtsfeld
3cba8778b2 scripts: fix overextending of variable name (#4888) 2017-11-22 13:40:38 -05:00
Unknwon
1c33c936e6 MISC: add Discord invite link to README
[CI SKIP]
2017-11-21 13:27:39 -05:00
m2nlight
67d67289c7 models: add utf8mb4 to connStr for mysql (#4878) 2017-11-21 00:25:36 -05:00
Unknwon
f4ab9f9932 css: fix UI breaks 2017-11-19 16:56:41 -05:00
Unknwon
b752fe6808 MISC: bump version 2017-11-19 13:29:06 -05:00
Unknwon
114677b747 bindata: update 2017-11-19 12:49:46 -05:00
无闻
9362b9fdfe cmd/hook: fix custom hook cannot be executed on Windows (#4255)
This solution still requires the server installed git-bash.
2017-11-18 21:45:29 -05:00
Unknwon
f48921c256 README: update numer of language supported
[CI SKIP]
2017-11-18 01:51:43 -05:00
Unknwon
51e0eef11e locale: sync from Crowdin 2017-11-18 01:27:56 -05:00
Ross Williams
925c2a2ca2 docker: symlink fixes (#4747)
* Prevent circular links (symlinks) from being created:
	* /data/gogs/log/log -> /data/gogs/log
	* /data/gogs/data/data -> /data/gogs/data
	* /data/git/git -> /data/git
2017-11-18 00:50:07 -05:00
Yen Chi Hsuan
f1465b6847 locale: fix the language name for zh_TW (#4807) 2017-11-18 00:48:07 -05:00
Ryan Chang
5260d70b19 templates: fix typo in repo/home.tmpl (#4845) 2017-11-18 00:47:48 -05:00
33MHz
339fd9c5a4 locale: fix English grammar for delete repository dialog (#4862)
* fix typo in en-US delete dialog

* fix typo in en-GB delete dialog

* improve en-GB delete dialog language

* improve en-US delete dialog language
2017-11-18 00:47:20 -05:00
Unknwon
0f14b92bce MISC: minor fixes in webhook 2017-11-18 00:38:46 -05:00
Unknwon
43d6ad5fda pull: fix after commit ID is not latest commit in the base branch (#4442) 2017-11-18 00:38:06 -05:00
Unknwon
667c40c3de css: fix minor table issue 2017-11-17 00:12:59 -05:00
Unknwon
3b8b8a2ee3 pull_request: able to ignore whitespace when check conflict (#4834) 2017-11-16 22:22:38 -05:00
Unknwon
6f04ee879c auth/ldap: allow placeholder %s for BindDN (#2526) 2017-11-16 19:32:33 -05:00
Unknwon
e1e76d3f88 admin/config: add UI for [http] section (#3987) 2017-11-16 19:03:46 -05:00
Unknwon
221aa8968a CI: add go 1.9.x 2017-11-16 18:44:54 -05:00
Unknwon
86931f546f repo: fix go-get meta tags (#4832)
The first part in go-import should be the root import path. It
included subpath when 'go get' with a subpath and was not correct.
2017-11-16 18:43:03 -05:00
Unknwon
ae40bb00b3 vendor: update github.com/gogits/git-module (#4855) 2017-11-16 13:13:28 -05:00
Unknwon
3dd93f5533 vendor: update github.com/gogits/git-module 2017-11-16 00:04:07 -05:00
Unknwon
181dc5d75e editor: remove out of sync branch before checkout again
If a branch was deleted from server, sometimes it is not reflected
on local copy. Therefore, we need to remove the branch with same
name if it is out of sync and then checkout to correct version.
2017-11-16 00:03:35 -05:00
Mohammad Gholami
ae4c4708ad locale: update TRANSLATORS (#4866)
Crowdin contributor
2017-11-15 23:45:24 -05:00
Unknwon
34c2e52bd5 repo/pull: allow rebase before merging (#4805) 2017-11-15 23:28:31 -05:00
mharinder
5cd1fdeb9e pull: add an option to use rebase for merging pull requests
For DVCS, either merge or rebase works for getting new code in a pull
request in the main branch.

The rebase workflow produces a linear history which is cleaner, and
more bisect-able.

This commit adds a repo-level option to enable the rebase workflow. Once
enabled, "Merge Pull Request" will be replaced by
"Rebase and Merge Pull Request" which does exactly what the user wants.
It's unlikely a project wants a mixed-use of both rebase and merge
workflows, therefore the feature is not implemented as a drop-down
button like what GitHub does
(https://github.com/blog/2243-rebase-and-merge-pull-requests).
2017-11-15 23:28:23 -05:00
Unknwon
dbe6de313e public: update Semantic UI 2.2.10 -> 2.2.13 2017-11-15 21:59:47 -05:00
Anton Antonov
77c77fbd42 api: add endpoint /api/v1/user/orgs (#4835)
* Add API endpoint /api/v1/user/orgs

The difference between this endpoint and
/api/v1/admin/users/<username>/orgs,
is that here you're creating a repo with the `user`
that corresponds to the API token you're using.

* Extract duplicate API org creation
2017-11-13 22:27:30 -05:00
Unknwon
9b4054f1fc locale: sync from Crowdin 2017-11-05 23:59:12 -05:00
Unknwon
af3911b833 MISC: update README and migration comment 2017-10-22 19:29:29 -04:00
Unknwon
4258bf3d54 user/auth: fix page not redirect after login 2017-10-22 19:29:17 -04:00
Unknwon
4d1d66d906 Bump version 2017-10-15 00:12:52 -04:00
Unknwon
b727e0be71 SECURITY: fix branch name persistent XSS
Reported by Carl Hattenfels.
2017-10-15 00:07:46 -04:00
Unknwon
ea313d0c1e SECURITY: HTML injection in user search API
Reported by Tim Hawes.
2017-10-14 23:53:20 -04:00
Unknwon
c1507eda45 locale: sync from Crowdin 2017-10-14 04:19:24 -04:00
Robert Beal
ce7496aec9 docker: allow setting UID and GID when running a container (#4776)
* Allow setting the UID and GID when running a docker container via shadow

* Disable password login via usermod (fix leaving user in insecure state)
2017-10-13 16:26:39 -04:00
Josef Kemetmüller
b16c12f67b cmd/admin: add subcommands for all admin dashboard actions (#4813) 2017-10-10 17:02:44 -04:00
Unknwon
1b24e6ed76 locale: sync from Crowdin 2017-09-25 20:29:10 -04:00
Athurg Feng
52f3833811 Add Dingtalk webhook support (#4773)
* Add dingtalk webhook into html template

* Add Dingtalk's icon

* Insert dingtalk into repo's webhook page template

* Insert dingtalk into org's webhook page

* Add dingtalk into default webhook config

* Add locale string for add_dingtalk_hook_desc

* Update bindata

* Add dingtalk webhook form validator

* Add dingtalk hook task

* Add dingtalk hook create handler

* Add dingtalk hook edit handler

* Add dingtalk router

* Add dingtalk webhook task skeleton

* Add markdown link formatter

* Add Dingtalk ActionCard create wrapper

* Add support for dingtalk create event payload

* Add support for dingtalk delete event payload

* Add support for dingtalk fork event payload

* Add support for dingtalk push event payload

* Add support for dingtalk issue event payload

* Add support for dingtalk issue comment payload

* Add support for dingtalk pull event payload

* Add support for dingtalk release event payload
2017-09-21 14:32:48 -04:00
Unknwon
b1100b5e34 locale: sync from Crowdin 2017-08-15 18:20:28 -04:00
Sb
ab2c6cb008 models: fix #4692 and typo in comments (#4695) 2017-08-13 02:11:48 -04:00
Unknwon
f2c3f4a944 locale: sync from Crowdin 2017-07-30 02:45:13 -04:00
Unknwon
6bc11c4450 hook: fix email not sent after push (#4430)
Turns out mail service was not initialized at all, also mail must
be sent in sync in hook mode before program exits.
2017-07-27 16:53:02 -04:00
Unknwon
643c85e9c8 routes/home: minor code improve 2017-07-18 22:09:57 -04:00
Unknwon
ee9950ec2f explore: fix total repository number and page number do not match (#4441)
Because in the final repository list we use Distinct to remove
duplicates, but didn't do so when count total number of repositories.
2017-07-18 22:07:40 -04:00
Unknwon
dc10594d7b repo: fix cannot fork repository (#4572)
Should not load attributes if repository not found in HasForkedRepo.
2017-07-18 12:56:23 -04:00
Unknwon
e02fac4968 repo: fix panic on pull request submit (#4572) 2017-07-14 18:51:23 -04:00
Julian Xhokaxhiu
5a88546a80 docker: enable Automated builds for rpi (#4431)
* Enable Automated builds for rpi

* Rename the file to fit only for Docker Hub

* Update the binary to v2.9.0+resin1

* Restore default status

* Commit as new file

In order to avoid breaking native builds
2017-07-14 18:04:19 -04:00
Unknwon
f67d6bbca3 repo/diff: fix line number in split view template (#4584) 2017-07-14 17:02:45 -04:00
Unknwon
c970c4ee41 css: not include line numbers in diff selection (#4584)
Changed template file in order to make CSS work properly.
2017-07-14 16:50:49 -04:00
Unknwon
3a6623104f Makefile: correct errors 2017-07-14 16:48:55 -04:00
Unknwon
b18a2bdcd3 locale: sync from Crowdin 2017-07-14 16:48:41 -04:00
Unknwon
d09eaef542 locale: sync from Crowdin 2017-07-09 21:38:11 -04:00
Unknwon
13cca8a66a models/comment: remove unused SQL parameter (#4586) 2017-06-27 20:39:59 -04:00
Unknwon
8ed2330d6e issue_comment: fix pg syntax ambiguous (#4586)
Also handle error related to time parsing.
2017-06-27 20:21:36 -04:00
Andy Hochhaus
261237745f api: fix ListIssueComments API (#4587) 2017-06-27 19:59:41 -04:00
Unknwon
c9d76a381b css: update less (#4584) 2017-06-27 15:21:14 -04:00
Einar
2961afe8fb css: not include line numbers in diff selection (#4584) 2017-06-27 15:08:19 -04:00
Unknwon
ea03bee1b9 locale: sync from Crowdin 2017-06-27 14:45:10 -04:00
Unknwon
d1a96c2543 cmd/restore: skip non existent directories in backup archive (#4413) 2017-06-25 01:16:32 -04:00
Unknwon
11b1498a6e api/repo: load attributes when listing user repositories (#4565) 2017-06-21 17:41:18 -04:00
Unknwon
f59500a90b locale: sync from Crowdin 2017-06-20 00:10:10 -04:00
Credomane Evonguard
3df25fadfa scripts: fix LSB init scripts so gogs starts when using mysql/postgresql for database (#4561) 2017-06-14 20:37:32 -04:00
Unknwon
0e6a6bf880 Refactoring: remove sessionRelease()
XORM supports automatic roll back in session Close() already.
2017-06-11 03:06:36 -04:00
Unknwon
e1f01305d8 vendor: update github.com/go-macaron/binding (#4428) 2017-06-11 02:59:49 -04:00
Unknwon
23b83cb736 pkg/process: fix potential race condition
Following conditions were not protected:
1. Use and increase next pid
2. Append and remove process from the list
2017-06-11 02:28:08 -04:00
Unknwon
e16196124e setting: disable SSH minimum key size check when not eligible (#4507) 2017-06-11 02:06:26 -04:00
Unknwon
ab2197bc75 random: some code simplify 2017-06-11 00:56:31 -04:00
Unknwon
a887e475e3 repo: change action visibility when repository visibility changed (#4414) 2017-06-11 00:43:56 -04:00
Unknwon
4400d2fdd9 Refactoring: rename package routers -> routes 2017-06-11 00:34:14 -04:00
Unknwon
6197a7639a locale: sync from Crowdin 2017-06-10 01:43:18 -04:00
Unknwon
91f65cedc8 repo/view: trim Windows line ending when display content (#4546) 2017-06-09 20:05:04 -04:00
Unknwon
7b85ee4954 vendor: update github.com/gogits/git-module (#4475) 2017-06-08 16:56:09 -04:00
Unknwon
1af01f5e30 restore: create data directory before restoring data files (#4413) 2017-06-08 16:26:56 -04:00
Unknwon
3efc0d8681 repo: load base repository for loadAttributes 2017-06-08 16:18:04 -04:00
Unknwon
09f2cbfb18 api/repo: response full API format for search results (#4522) 2017-06-08 15:53:19 -04:00
Unknwon
88791089ed locale: sync from Crowdin 2017-06-08 14:11:25 -04:00
Unknwon
089eb1a099 Change required version to Go 1.6 2017-06-07 21:44:18 -04:00
Unknwon
b40dc550ed vendor: update github.com/go-xorm/* (#4419) 2017-06-07 01:19:32 -04:00
Unknwon
c210984b40 repo: improve relative path detection (#4366) 2017-06-06 16:06:28 -04:00
Unknwon
455dc072ba repo: use BranchLink instead of TreeLink (#4366) 2017-06-06 15:50:12 -04:00
Unknwon
a851b77ac9 markup: able to display image from IPython notebook (#4366) 2017-06-06 15:41:27 -04:00
Simon Dann
e9a2b72ddb models/repo: modify keyword search to include description for #4287 (#4548)
* Modified repository keyword search to include description for #4287

* Replacing Where with And for #4548
2017-06-06 06:23:42 -04:00
Unknwon
c0be055541 api/repo: fix admin migrate repo for non-org users (#4479) 2017-06-05 17:11:57 -04:00
无闻
51d7f1264b api: GitHub compliance (#4549)
* Add undocumented endpoint for /repositories/:id

* GitHub API Compliance
2017-06-05 15:34:11 -04:00
Unknwon
3359b942b3 vendor: update github.com/gogits/git-module 2017-06-05 13:35:13 -04:00
Unknwon
2155ef0208 README: add GitPitch 2017-06-05 00:59:08 -04:00
Unknwon
36d6450977 repo/pull: detect case when no merge base found (#4434) 2017-06-05 00:10:53 -04:00
Unknwon
02a576a6a0 locale: update translations 2017-06-04 14:55:55 -04:00
Unknwon
2478b87432 Refactoring: rename ctx -> c 2017-06-03 07:26:09 -04:00
Unknwon
e33c714073 repo: always response go-get meta when requested (#1878) 2017-06-03 06:54:06 -04:00
Unknwon
f4d61ac6d2 templates: fix version 2017-06-03 06:52:45 -04:00
Unknwon
5c10eff67f bindata: regenerate 2017-06-03 06:51:16 -04:00
Unknwon
239dd978ff repo: support go get subpkg (#1878) 2017-06-03 06:50:09 -04:00
Unknwon
af4cf463f5 css: fix fluid container for spilt diff view 2017-06-03 04:34:01 -04:00
Peter Mescalchin
21c1b8d834 conf: rename attachment toggle from ENABLE to ENABLED (#4474) 2017-06-03 03:02:55 -04:00
Unknwon
16913ba814 css: start using fixing width container
Get rid of responsive issue.

Also fixes #4527.
2017-06-03 02:58:54 -04:00
Unknwon
6bb9c442b2 issue: fix updated_unix is not updated for new comments (#4462) 2017-06-02 17:30:15 -04:00
Unknwon
c407921644 orgmode: recover panic from third-party package 2017-06-02 17:19:06 -04:00
Unknwon
a1411c36de vendor: update github.com/gogits/go-gogs-client 2017-06-02 14:26:43 -04:00
Unknwon
c69fa18434 repo: expose more fields to API format (#4484) 2017-06-02 14:26:34 -04:00
Unknwon
4cb01fe332 locale: add Hungarian 2017-06-01 23:41:58 -04:00
Lilian Besson
612a7e76f1 cmd/admin: fix typo Preform → Perform (#4540)
Just an English typo in the command line help.
2017-05-31 07:10:42 -04:00
Simon Dann
bf060387af ui: fix emoji not rendered in commits table (#4440) 2017-05-29 23:46:43 -04:00
Unknwon
0778d7de80 vendor: update github.com/msteinert/pam (#4216) 2017-05-29 23:43:40 -04:00
Jonas Östanbäck
9085c3b73d repo/download: fix for downloading zero bytes files. (#4436)
Allocated buffer served to client and not properly truncated to
number of bytes read.

Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com>
2017-05-29 23:28:38 -04:00
BartWillems
306ba917ea conf: made the default webhook timeout duration longer. (#4423)
A 5 seconds timeout is too low and can cause random timeouts in certain setups.
2017-05-29 23:27:02 -04:00
Richard Bukovansky
1a3a303f8d locale: better explenation for team membership and granted access (#4417)
As discussed here https://crowdin.com/translate/gogs/1/enus-cs#378 I'm suggesting this update.
2017-05-29 23:25:21 -04:00
Pablo Saavedra
5906268917 models/org_team: getUserTeams uses includes always -1 in the IN statement (#4412)
Ensure that the IN clause contains one value at least. The idea is avoid a
syntax error in the SQL sentence and rollbacks in the transactions.
For example:

    ERROR:  syntax error at or near ")"
    LINE 1: ...RE ... and team.id IN ();

We will always add the -1 value in the IN list.
2017-05-29 23:24:37 -04:00
Unknwon
a1d411a018 ldap: minor fix for PR #4398 2017-05-29 23:18:34 -04:00
aboron
dbb7e5464b ldap: add check for group membership (#4398)
* Add standard LDAP group membership checking.

* Fix formatting, typo, grammer, and syntax errors

* Debugging done.
Gave up on locale file edits.
2017-05-29 22:33:50 -04:00
Unknwon
11ad64f6cb backup: use datetime string as default archive name
Because unix timestamp is not very human readable.
2017-05-29 16:51:30 -04:00
Unknwon
4e87e62d5c models/repo_collaboration: cannot change permissions of collaborators (#4512) 2017-05-29 16:33:18 -04:00
Unknwon
a5bd095c30 locale: add en-GB 2017-05-25 12:53:28 -04:00
Unknwon
b17995a332 restore: reset table sequences for PostgreSQL (#4357) 2017-05-21 04:37:37 -04:00
Unknwon
ce6e8ed8fe models: remove redundant tags for primary keys 2017-05-21 04:36:41 -04:00
Jon Lundy
1755025e7f models/login_source: add check for user for create/update on LDAP (#4405)
* Add check for user for create/update

* Update login_source.go

* Update login_source.go
2017-05-21 02:14:28 -04:00
Gibheer
1a4ba4c390 models/ssh_key: don't run ssh-keygen check if disabled (#4519)
* don't load key when key size should not be checked

This makes it possible for users with incompatible ssh-keygen versions
to just disable the check completely without running into errors.

* add proper ed25519 constant

The x/crypto/ssh library has support for ed25519 now, so it is possible
to support it.
2017-05-20 08:41:57 -04:00
spacetourist
0a6ceabb9b Allow configurable HTTPS SSL/TLS version(#4451) 2017-05-20 08:31:25 -04:00
Unknwon
d71a8fece8 feature/org-mode: fix compile error 2017-05-17 18:50:14 -04:00
Unknwon
5202b7da48 vendor: add github.com/chaseadamsio/goorgeous 2017-05-17 18:46:23 -04:00
Unknwon
1b5a418fd3 modules/markup: initial support for org-mode (#4373) 2017-05-17 18:46:23 -04:00
Unknwon
a11044f789 locale: sync from Crowdin 2017-05-17 18:37:25 -04:00
Benjamin
4b2bf41381 locale: added missing word and fixed a typo (#4490) 2017-05-17 18:31:02 -04:00
rouzier
07d5badfed cmd/update: fix typo (#4492) 2017-05-17 18:30:19 -04:00
peter zhang
10ee2e0dad vendor: update xorm version for fix git clone error build with golang 1.8.1 (#4460) 2017-04-26 19:47:16 -04:00
Unknwon
6500aafcb8 install: validate port in SMTP host address (#2243) 2017-04-07 23:23:39 -04:00
Unknwon
6ebdf91b32 templates/repo: fix README.ipynb not rendered (#4367) 2017-04-07 22:33:19 -04:00
Unknwon
91cd350b63 repo/editor: fix wrong context for subdirectory (#4368) 2017-04-07 21:44:55 -04:00
Unknwon
6ea9642d64 js: remove Preview, Full Screen and Side-by-side buttons for repository file editing (#4402) 2017-04-07 18:46:03 -04:00
Unknwon
65277e47c5 api/repo: add Mirror field (#4392) 2017-04-07 18:15:23 -04:00
Unknwon
9e3c83372f api/repo: improve migration error handling 2017-04-07 16:00:25 -04:00
Unknwon
809db853fa locale: fix zh-CN 2017-04-07 15:41:54 -04:00
Unknwon
62a20b8a2d repo/wiki: improve UI 2017-04-07 15:30:08 -04:00
Unknwon
d0612be402 user/setting: improve UI 2017-04-07 15:08:53 -04:00
Unknwon
5f8ec0dc8b templates/repo: improve symlink file icon in list view (#4237) 2017-04-07 13:51:10 -04:00
Unknwon
fda4b1106e user/setting: simplify code 2017-04-07 00:49:30 -04:00
Unknwon
ac43eab51f Refactoring: rename Signed -> Logged 2017-04-06 23:48:49 -04:00
Unknwon
8d0417497b modes/mirror: make Updated unchanged if no new commits fetched (#4341)
After sync mirror, get latest commit date and compare to current
repository updated time, only update it if the commit date is newer.
2017-04-06 20:58:57 -04:00
Unknwon
90b9f7e08c pkg/setting: rename {AppUrl, AppSubUrl} -> {AppURL, AppSubURL} 2017-04-06 17:27:57 -04:00
Unknwon
2c404daca6 pkg/context: rename {CsrfToken, CsrfTokenHtml} -> {CSRFToken, CSRFTokenHTML} 2017-04-06 17:20:38 -04:00
Unknwon
0e271799f2 Refactoring: rename and simplify pkg/tool functions 2017-04-06 17:13:53 -04:00
Unknwon
3c0de17133 js: set cursor to the end of autofocus input string 2017-04-06 17:00:12 -04:00
Unknwon
bd1f2ccaf8 user/settings/security: add token description about 2FA 2017-04-06 16:27:31 -04:00
Unknwon
ec491b023f api/repo: fix nil error panic 2017-04-06 01:37:01 -04:00
Unknwon
f191bff0b9 api/repo: check user type of owner for migration
Report by MiaoWoo.
2017-04-06 01:20:20 -04:00
Unknwon
1a04da864f vendor: add github.com/boombuler/barcode/utils 2017-04-06 00:15:39 -04:00
Unknwon
c8c975c99b vendor: add packages for 2fa 2017-04-06 00:14:39 -04:00
Unknwon
a617d52374 2fa: initial support (#945) 2017-04-06 00:14:30 -04:00
Unknwon
624474386a templates/repo/branches: fix links for mirror repository
Also added new pull request button for stale branches.
2017-04-05 17:59:22 -04:00
Unknwon
e0a787b5ee Update locales 2017-04-05 13:26:53 -04:00
Unknwon
63598688e4 pkg/markup: init default sanitizer.policy
App would panic if user has validation error on installation and
the sanitizer is not yet built. Therefore we need a minimal valid
object for sanitizer at start.
2017-04-05 13:12:05 -04:00
Unknwon
497cdc9250 user/setting: reorder navbar 2017-04-05 09:27:42 -04:00
Unknwon
edaf14f2b6 Refactoring: remove tool.TplName 2017-04-05 09:17:21 -04:00
Unknwon
6fbb984ebf Refactoring: rename pkg/base -> pkg/tool 2017-04-05 09:05:40 -04:00
Unknwon
ba151eda0a css: improve fonts under Windows 2017-04-04 21:05:01 -04:00
Unknwon
c05717a5f0 models/mirror: feed git.IsRepoURLAccessible with raw mirror address 2017-04-04 20:42:18 -04:00
Unknwon
5a488b6517 models/mirror: unescape credentials at read (#4014)
If we save credentials already escaped, 'url.QueryEscape' still
escapes it and makes the credentials become incorrect.
2017-04-04 20:21:35 -04:00
Unknwon
ae1d50d19a models/mirror: escape credentials before write mirror address (#4014)
Special characters such as '@', ';', '#' and ':' could occur in
password portion of credentials, which breaks the interpretation
and saves 'config' file in with extra characters that are not
recognized by Git (due to INI library).
2017-04-04 19:40:46 -04:00
Unknwon
fe25effe7c repo/http: fix client is not informed to provide credentials
When Git client has cached credentials for a site, missing response
header 'WWW-Authenticate: Basic realm="."' will result in Git client
does not prompt user to input credentials again but plain error
message and halts push/pull process.
2017-04-04 19:36:30 -04:00
Unknwon
d05395fe90 Refactoring: rename modules -> pkg
Reasons to change:

1. Shorter than 'modules'
2. More generally used by other Go projects
3. Corresponds to the naming of '$GOPATH/pkg' directory
2017-04-04 19:29:59 -04:00
Unknwon
37b10666de modules/context: add *Context. ServerError method
Also use constants from net/http to replace raw integers.
2017-04-04 19:25:05 -04:00
Unknwon
41c8e87be8 repo/commit: improve error detection
Response 404 not 500 for raw diff if object does not exist.
2017-04-04 02:01:29 -04:00
Unknwon
55afc1ad21 models/repo_diff: move core functions to gogits/git-module 2017-04-04 01:45:57 -04:00
Unknwon
16c6ca72cd css: fix font of .ui.label.button style 2017-04-04 01:19:47 -04:00
Unknwon
b873ec2bce templates/repo/branches: hide pull request button if not allowed (#4377) 2017-04-03 22:24:21 -04:00
Unknwon
1bc805bb4b public: update Semantic UI 2.2.7 -> 2.2.10
[CI SKIP]
2017-04-03 22:20:17 -04:00
Unknwon
348c75c91b issue: response wrong type of comment from AJAX 2017-04-03 20:06:15 -04:00
Unknwon
76ebdb265b css: update fonts
[CI SKIP]
2017-04-03 18:20:49 -04:00
Unknwon
88ae3510ff Prepare release 2017-04-03 16:26:43 -04:00
Unknwon
c07899701a vendor: update github.com/gogits/git-module 2017-04-03 15:09:53 -04:00
Unknwon
ab42671c63 repo: handle git.ErrUnsupportedVersion error type 2017-04-01 17:56:55 -04:00
Unknwon
b3ac33cbcf vendor: update github.com/gogits/git-module 2017-04-01 17:50:11 -04:00
Unknwon
3b94162803 modules/setting: set default session GC interval to 3600s 2017-03-31 23:55:42 -04:00
Unknwon
52aade232d modes: fix test compile error 2017-03-31 18:28:08 -04:00
Unknwon
3a9276307c modules/markup: move common functions to markup.go 2017-03-31 17:46:57 -04:00
Unknwon
ca6326c937 modules/base: move file-related functions to file.go 2017-03-31 17:20:05 -04:00
Unknwon
8da16ac302 modules/markup: rename Markdown render fucntions
The unified function 'Markdown' accepts both string or []byte type
input and renders to HTML with []byte type.
2017-03-31 16:37:30 -04:00
Unknwon
761bb3cf53 modules/markup: protect sanitizer from possible modification
Only expose public APIs for 'Sanitize' and 'SanitizeBytes' to
eliminate unintentional modifications to sanitizer policy. Also
use 'sync.Once' to make sure multiple calls of 'NewSanitizer' is
safe (although should never happen, but this is a better way).
2017-03-31 16:19:10 -04:00
Unknwon
c1c269d9ef modules: rename markdown -> markup
To further support more markup languages (e.g. Org-mode, AsciiDoc,
reStructuredText), the name 'markdown' is inappropriate.

This is the first step towards more markup language support.
2017-03-31 15:29:43 -04:00
Unknwon
9edac05e05 templates/repo: improve README icon and font 2017-03-31 15:11:40 -04:00
Unknwon
9c1620d49c css: font-family fixes for Chinese 2017-03-31 14:13:25 -04:00
John Behm
65bb6eb284 locale: update TRANSLATORS (#4372)
* Update TRANSLATORS

* Update TRANSLATORS
2017-03-31 12:37:46 -04:00
Unknwon
aff55ff105 vendor: update github.com/go-macaron/captcha
[CI SKIP]
2017-03-30 12:35:43 -04:00
Unknwon
4a67bb5806 migrations.v17: skip if table not exist 2017-03-30 11:37:27 -04:00
Unknwon
1afafde3b3 user/setting: preserve user input with validation error (#1123) 2017-03-30 01:03:44 -04:00
Unknwon
ab634ce61a cmd/web: fix routes requires sign in (#4359)
Redirect user to sign in page when visit private repository with
public issues if user want to post comment or create new issue.
2017-03-30 00:34:20 -04:00
Unknwon
9d06ebd01a markdown: improve filter of class attribute for code blocks
Only allow HighlightJS specific classes.

Reported by ChALkeR.
2017-03-29 19:52:53 -04:00
Kyle McCullough
09723ec0e5 migration.v17: handle mysql error (#4361) 2017-03-29 19:02:07 -04:00
Hassan Amouhzi
864761c2d0 js: use jQuery .find() (#4343) 2017-03-28 17:36:48 -04:00
Unknwon
abe7f7bc36 migration.v17: add nil error check 2017-03-28 16:38:16 -04:00
Unknwon
717bcc4ad8 migration/v17: skip if protect_branch_whitelist table not exist (#4355) 2017-03-28 11:20:58 -04:00
Unknwon
11ffdac3f8 org/dashboard: fix wrong repository count (#4351)
Should not include count for inaccessible repositories.
2017-03-28 11:16:29 -04:00
David Beitey
cf7d5d0c56 docker: fix heading in README.md (#4353)
The unicode non-breaking space character was breaking the heading format; this switches that character for an ASCII space.
2017-03-28 07:50:36 -04:00
Unknwon
375f1b1fde Prepare release
[CI SKIP]
2017-03-27 14:56:56 -04:00
Unknwon
ad3c6ef205 Update locales 2017-03-27 14:40:55 -04:00
Unknwon
30d9e2ee3c docker: use vendor to replace go get 2017-03-27 14:04:48 -04:00
Unknwon
1038916460 models/protect_branch: fix whitelist with invalid 'protect_branch_id' (#4333)
If user creates a protect branch for the first time (which has ID=0),
it generates invalid whitelist records with 'protect_branch_id=0'.
This prevents future updates of protect branch whitelist.

Migration: remove existing invalid protect branch whitelist records.
2017-03-27 13:13:04 -04:00
Unknwon
73de9f9d6a repo/settings/branches: add prompt for bare repository 2017-03-27 13:12:29 -04:00
Jonas
f40eb9774e modes/mirror: corrected NextUpdate not set (#4345) 2017-03-26 23:24:48 -04:00
Pablo Saavedra
496e07c1c9 models/repo: avoid duplicated results in SearchRepositoryByName (#4344) 2017-03-26 23:23:17 -04:00
Unknwon
c238647020 cmd/web: remove dependency version checker 2017-03-25 04:17:55 -04:00
Unknwon
78f94986e3 user/settings: fix bad error handle of leave organization 2017-03-25 03:44:12 -04:00
Unknwon
8f52ab8201 models/repo_editor: add pull request test task after commit (#4338) 2017-03-25 03:36:13 -04:00
Unknwon
260ebcc1ca repo/milestone: simplify code 2017-03-24 18:54:17 -04:00
Unknwon
09cb48e41c repo: recalculate milestone completeness on issue list (#4316) 2017-03-24 18:36:35 -04:00
Unknwon
674106c7b6 repo: cleanup some code 2017-03-24 16:32:14 -04:00
Unknwon
8196430f47 repo: allow private repository to have public wiki or issues
Relates to #649 and #2157
2017-03-24 16:25:40 -04:00
Unknwon
7a99e56893 repo: update size after fork, migrate and mirror sync (#4336) 2017-03-24 14:22:19 -04:00
Unknwon
79ba0314e9 milestone: only show issue-related count under issue list (#4316) 2017-03-24 14:00:01 -04:00
Unknwon
c441f8080e api/repo: add endpoint to sync mirror (#2235) 2017-03-23 20:46:39 -04:00
Unknwon
bd1e757350 user: remove sanitizer for FullName (#1937) 2017-03-23 20:24:02 -04:00
Unknwon
3144be5c81 repo: remove legacy sanitizer for repository description
Related to #4329.
2017-03-23 20:23:23 -04:00
Unknwon
fdc7cb565d repo: fix unable to propose pull request from secondary fork (#4324) 2017-03-23 20:04:20 -04:00
Unknwon
a6dbde4c46 user/settings: minor input style fix (#4327) 2017-03-23 19:39:05 -04:00
Unknwon
8ce23e2c71 cmd/backup: able to specify archive name (#4320)
Added flag '--archive-name' for backup command.
2017-03-23 18:44:24 -04:00
Unknwon
8a3f4fc616 models: add config options for XORM logger (#3183)
Added new config section '[log.xorm]'.
2017-03-23 18:34:25 -04:00
Unknwon
66c1e6b0e8 user/settings: complete repositories panel (#4312) 2017-03-23 14:28:31 -04:00
Unknwon
beee6e03b1 error: move ErrRepoNotExist -> errors.RepoNotExist 2017-03-23 14:27:34 -04:00
Rob Richards
902372067c user/settings: add repositories panel (#4312)
* Add Repositories panel to user settings
issue #4277

* modified personal repo settings format
2017-03-23 12:57:43 -04:00
Nikolay Korotkiy
7adaf8f812 locale: fix language names (#4330) 2017-03-23 11:37:46 -04:00
Unknwon
71753cdd46 templates/label: another minor style improve 2017-03-22 16:20:31 -04:00
Unknwon
d3363430dc templates/label: minor style improve
Add an empty space to make <span> have width.
2017-03-22 15:54:27 -04:00
Unknwon
945e65eedf README: update alts
[CI SKIP]
2017-03-22 15:28:22 -04:00
Unknwon
85a050fca7 issue: fix redirect to random issue if index does not exist (#4315) 2017-03-22 13:20:29 -04:00
Unknwon
bb86d66496 repo: rename PageIsViewCode -> PageIsViewFiles
Also highlight 'Files' tab when use editor.
2017-03-22 12:58:12 -04:00
Unknwon
aba8789542 vendor: update github.com/go-macaron/session (#3363) 2017-03-20 14:06:41 -04:00
Unknwon
5f1bbbde49 user/settings: fix cannot change profile for non-local users (#4313) 2017-03-20 14:01:23 -04:00
Unknwon
0203eaab00 user/dashboard: hide More button if reached end on first load 2017-03-20 14:00:51 -04:00
Unknwon
2807274e2d repo/webhook: able to retrigger delivery history (#2187) 2017-03-19 17:44:46 -04:00
Unknwon
55a5ad5cdc api/repo: fix incorrect permission values (#4309) 2017-03-18 16:44:40 -04:00
Unknwon
b3c4a39208 setting: add config option for raw file render mode (#3608)
Added '[repository] ENABLE_RAW_FILE_RENDER_MODE'.
2017-03-17 19:42:21 -04:00
Unknwon
cac7af2c78 explore: able list and search for private but accessible repositories (#3088) 2017-03-17 19:17:40 -04:00
Unknwon
2d4dc544be install: able to enable console mode (#3119) 2017-03-17 00:16:46 -04:00
Unknwon
171f97868d repo: allow issues and wiki for bare repository (#4104) 2017-03-16 23:10:45 -04:00
Unknwon
becaec19a7 setting: add login status cookie (#2885)
Added config options EnableLoginStatusCookie and LoginStatusCookieName under section '[security]'.
2017-03-16 22:42:17 -04:00
Unknwon
bc630cc52b repo/commit: able to config default commits page size (#4230)
Added config option '[ui.user] COMMITS_PAGING_NUM'.
2017-03-16 22:28:32 -04:00
Unknwon
d591cb0dfb dashboard/feeds: able to load more history (#2511) 2017-03-16 22:05:53 -04:00
Unknwon
07a9cbe0a9 setting: able to config dashboard news feed paging number (#4247) 2017-03-16 20:25:28 -04:00
Unknwon
7c802f6d83 repo/setting: filter out deleted branch in protect list (#4288) 2017-03-16 20:09:27 -04:00
Unknwon
431e930367 Add Go 1.8 to .travis.yml 2017-03-16 17:46:55 -04:00
Unknwon
9e8ffa14cb webhook: add file status to push event (#3897) 2017-03-16 17:33:04 -04:00
Unknwon
0ccd7c97ab models: rename ErrUserNotExist -> errors.UserNotExist 2017-03-16 17:18:43 -04:00
Unknwon
4e64e71e28 templates/repo/webhook: move to its own directory 2017-03-16 15:50:18 -04:00
Unknwon
86c7f45383 js: minor fix for #4294 2017-03-15 16:38:41 -04:00
Brian Paulson
50b36a732c ui: added Select class to ui.dropdown menus to prevent label changing (#4294) 2017-03-15 16:35:13 -04:00
Unknwon
f54bcba339 Update locales 2017-03-13 23:41:22 -04:00
Unknwon
f0209ac2f6 api: handle new events for hook 2017-03-13 14:32:16 -04:00
Unknwon
e1dcd11051 repo/settings: improve Git hook editor 2017-03-13 06:00:37 -04:00
Unknwon
24734a33e7 release: improve attachment handle 2017-03-13 05:26:17 -04:00
Unknwon
1df54ea0cd release: able to add attchments to release (#1614)
Added new config section '[release.attachment]’.
2017-03-13 04:32:20 -04:00
Unknwon
e6df2259ab explore: panic if search without login (#3088) 2017-03-13 02:41:04 -04:00
Unknwon
96ae0129ef models/repo: minor code style and comment fix (#4273) 2017-03-13 00:53:50 -04:00
Rob Richards
aaadc61ee8 models/repo: allow SearchRepos to return private but accessible repositories (#4273)
* models/repo.go SearchRepositoryByName()
Updated function to return public and private repositories that the logged in user has been given rights to view
issue #3088

* models/repo.go SearchRepositoryName
changed repository table alias to 'repo'
removed debug line

* models/repo.go SearchRepositoryByName
modified UserID search query to use the "access" table instead of team_repo, team_user etc

* models/repo.go SearchRepositoryByName
1) uppercased SQL keywords
2) removed alias for ACCESS table
2017-03-13 00:37:12 -04:00
Danny Althoff
44a6b63316 cmd/hook: fixed typo (#4280) 2017-03-12 13:43:05 -04:00
Unknwon
5f058c3f07 issue_mail: fix issue poster not receive email if not watching (#2929) 2017-03-12 13:42:19 -04:00
Unknwon
b116dc506b migrations/v16: use continue not return for bad records 2017-03-12 03:34:19 -04:00
Unknwon
bf58f26305 migrations/v16: make SQLite3 work 2017-03-12 03:30:53 -04:00
Unknwon
601f174ea0 migrations/v16: only Warn if repository happens to have bad data 2017-03-12 03:08:25 -04:00
Unknwon
a34c21cde3 migrations/v16: sync table 2017-03-12 03:05:41 -04:00
Unknwon
bb19bb601e repo: able to view size (#1158) 2017-03-12 01:59:48 -05:00
Unknwon
05dbd3f7d7 refactoring: experimental with models/errors package 2017-03-12 00:47:34 -05:00
Unknwon
dee76e4189 models/webhook: add skip check for Release event 2017-03-11 18:44:50 -05:00
Unknwon
b615d670b3 webhook: add Release event (#2387) 2017-03-11 18:41:32 -05:00
Girish Sonawane
b9bb4a62d6 api: make CORS work by handling preflight OPTIONS request (#4264)
* make CORS work by handling preflight OPTIONS request

* Update api.go
2017-03-11 03:01:59 -05:00
Unknwon
61e2bff757 repo: commits, branches and releases should highlight files tab 2017-03-11 02:13:42 -05:00
Unknwon
9713016637 repo/branches: hide buttons for regular users 2017-03-11 01:52:37 -05:00
Unknwon
5c7cb1594b repo/branches: overview and all (#2310) 2017-03-11 01:43:45 -05:00
Unknwon
3eb57370a6 api/repo: fix cannot reponse branch with slashes (#4198) 2017-03-10 23:37:25 -05:00
Unknwon
ac8b1e595f markdown: support Smartypants (#4162)
Added new config section '[smartypants]', and disabled by default.
2017-03-10 23:30:40 -05:00
Unknwon
31c55213ff css/repository: fix undesired style for label template select list 2017-03-10 19:15:28 -05:00
Unknwon
23da90e25d issue_mail: send notifications to participants in comments (#2929) 2017-03-10 18:47:02 -05:00
Unknwon
60ee79363d templates: use owner's avatar as image of repository 2017-03-10 17:00:10 -05:00
Unknwon
8fa6d0d302 repo/pull: handle head repository of merged pull requests deleted 2017-03-10 16:58:41 -05:00
Unknwon
a534f9f9b6 templates/repo: change some buttons to use 'basic' style 2017-03-10 15:36:55 -05:00
Unknwon
aa99e805c8 repo/release: 404 when edit draft (4262) 2017-03-10 15:27:55 -05:00
Unknwon
0049c80cd9 less/repository: minor fix for #git-stats 2017-03-10 15:23:01 -05:00
Unknwon
ebc0943713 templates/repo: only show Git stats in repository home page (#3518)
Move 'Commits' and 'Releases' tabs down to body.

This patch also reduces page load time for pages that do not need
to use commits count anywhere. Get commits count can hurt
performance badly for huge repositories that has tens of thousands
commits like Linux Kernel.
2017-03-10 15:13:48 -05:00
Unknwon
451aef7a1c release: improve page load performance
Previously, we load all releases of a repository which could hurt
performance when the repository has a lot of releases.

Now we're able to only load releases in current page view we need
to show by matching with 'tag_name'.
2017-03-10 14:12:46 -05:00
Unknwon
22882d7c04 models/user: explicitly select for organization type 2017-03-10 12:31:50 -05:00
Unknwon
c3cde864f8 models/pull: treat all errors as conflict (#4265)
If there is a misdetection, log shows everything.
2017-03-09 13:36:40 -05:00
Unknwon
f860ddbbb7 models/pull: better error message detection (#4265)
Stop using English phrases in case of Git localization.
2017-03-09 13:04:41 -05:00
Unknwon
89cc6aa430 webhook: add issue comment event 2017-03-09 04:11:23 -05:00
Unknwon
c93731339f webhook: support Issues event (#2319)
Also addresses #3485.
2017-03-09 00:03:29 -05:00
Unknwon
bab448681d models/user: handle case when user doesn't belong to any organization (#4258) 2017-03-08 22:21:31 -05:00
Unknwon
de2d3e3fd8 ssh_key: create parent directory of 'authorized_keys' file 2017-03-08 22:08:31 -05:00
Unknwon
295d251232 mirror: update repository updated_unix after sync (#2807) 2017-03-08 17:47:44 -05:00
Unknwon
83f6b8e847 Protected branches: allow whitelist bypass require pull request check (#4207) 2017-03-08 16:43:36 -05:00
Unknwon
e38fef0009 Update README 2017-03-08 10:17:53 -05:00
Unknwon
6c3424dc3f repo/setting: fix admin cannot transfer organizational repository 2017-03-07 18:51:24 -05:00
Unknwon
d1f0bc48ce repo/setting: fix admin cannot delete organizational repository wiki 2017-03-07 15:51:53 -05:00
Unknwon
bb005f3f9a models/user: better directory handling when change username
Previously, if the user base directory somehow doesn't exist, the
application throws 500 for failure of rename.

Now it detects if the application should rename or just create a
new directory.
2017-03-07 14:12:19 -05:00
Unknwon
e6dbfd918c security: fix vulnerability in changing username
Reported by João Arnaut.
2017-03-07 14:07:20 -05:00
Unknwon
c2f0711db0 Update locale 2017-03-06 23:37:46 -05:00
Unknwon
92153fd898 git_hook: add new env var 'GOGS_AUTH_USER_EMAIL' (#4252) 2017-03-06 23:28:03 -05:00
Unknwon
a9d2480c7f templates/user/profile: fix link to avatar settings (#4251) 2017-03-06 23:23:37 -05:00
Unknwon
fd70d503e0 public: minor fixes on build tool config 2017-03-06 17:59:36 -05:00
Unknwon
8b73c8076f modules/markdown: fix wrong raw link to internal images 2017-03-05 16:54:00 -05:00
Unknwon
971a96a962 Revert "public: update Semantic UI from 2.2.7 -> 2.2.9"
This reverts commit eaab01fa49.
2017-03-05 16:35:35 -05:00
Unknwon
e9838a83ce routers/repo/http: only prompt HTTP Basic Authentication when intended
Sometimes user could simply request wrong URL, but if that wrong URL
has nothing related Git HTTP operations, HTTP Basic Authentication
should not prompted. Instead, clean 404 page should be presented.

The patch also supports Git HTTP operations without '.git' suffix
to the repository name, which addresses #4226 and #4189.
2017-03-04 21:26:32 -05:00
Fastidious
837fc9847d conf/gitignore: use correct OS name (#4240)
This is no more OSX, but macOS. Long live macOS!
2017-03-04 20:17:25 -05:00
Unknwon
7e883f891a scripts: update gogs.service (#4223)
According to https://goo.gl/ea8k9K, it hurts nothing to use
nonexistent services but gains convenient for default settings.
2017-03-04 11:40:37 -05:00
Félix MIKAELIAN
e19a69442d Update README.md (#4238) 2017-03-04 11:19:14 -05:00
Unknwon
ebd95dd082 models/org: reduce to 2 SQL executions for GetOrgIDsByUserID
This also addresses #4231. It is now ignoring nonexistent
organizations returned from 'org_user' table.
This was a bug caused in older version that didn't cleanup
'org_user' table when delete an organization.
2017-03-03 18:26:51 -05:00
Unknwon
f7b7d008b6 setting: fix Webhook.SkipTLSVerify didn't load (#4228) 2017-03-02 22:08:39 -05:00
Unknwon
b39454ca16 scripts: update gogs.service (#4223)
Add 'After=mariadb.service’.

[CI SKIP]
2017-03-02 12:21:31 -05:00
Bo-Yi Wu
00943a025f locale: update TRANSLATORS (#4224) 2017-03-02 11:37:14 -05:00
Unknwon
600f748cb0 vendor: update golang.org/x/crypto/ssh
Related to #4160
2017-03-01 21:33:58 -05:00
Unknwon
038b107c3d Update locale
Also fixes #4213
2017-03-01 12:31:04 -05:00
Unknwon
c6e08d76fd admin/config: minor CSS fix 2017-02-28 23:25:03 -05:00
Unknwon
6daac151b8 miniwinsvc: fix import path 2017-02-28 23:01:51 -05:00
Unknwon
e08161a302 hook: fix can’t be executed while run as service on Windows (#4207) 2017-02-28 22:58:52 -05:00
atzoum
341eafcf04 adapt Dockerfile.aarch64 (#4210) 2017-02-28 16:16:23 -05:00
Unknwon
dd649eb4cc admin: fix template error
Also a try to display key-value pairs in table.
2017-02-28 12:42:16 -05:00
Unknwon
d43f5f17fd webhook: fix push panic to organizational repository (#4206) 2017-02-28 10:28:48 -05:00
Corentin BRETON
193cc3ba9a locale: update TRANSLATORS (#4204) 2017-02-28 07:06:12 -05:00
Unknwon
fd667ca1d8 Merge branch 'master' of github.com:gogits/gogs into develop 2017-02-28 06:22:28 -05:00
Unknwon
9d40b8a83c Bump version 2017-02-28 05:45:50 -05:00
Unknwon
b0169ba064 Merge branch 'master' of github.com:gogits/gogs into develop 2017-02-28 05:34:51 -05:00
Unknwon
9ace35ee8b repo_branch: fix inapproriate logic 2017-02-28 05:33:30 -05:00
Unknwon
ca2cfaf71e cmd: able to backup and restore
Not very robust, must execute under correct workdir.

Addresses #2072, #3708, #648
2017-02-27 22:48:19 -05:00
Unknwon
b06f299748 webhook: add fork event 2017-02-27 22:48:18 -05:00
Unknwon
beea014343 template: add more icons for news feed 2017-02-27 22:47:33 -05:00
Unknwon
70072e2842 dashboard: add delete branch and tag news feeds 2017-02-27 22:47:33 -05:00
Unknwon
f0086e66ae webhook: able to detect delete branch or tag (#2315) 2017-02-27 22:47:21 -05:00
Unknwon
7fe13e72d8 cmd: refactoring command name 2017-02-27 22:47:12 -05:00
Unknwon
87f0ce793d repo: able to perform initial commit on behave of actual user 2017-02-27 22:47:12 -05:00
Unknwon
25cf755f30 editor: fix compile error 2017-02-27 22:46:42 -05:00
Unknwon
c7a8051a71 mailer: make text/html as default format
Change config option from '[mailer] ENABLE_HTML_ALTERNATIVE' to '[mailer] USE_PLAIN_TEXT'
2017-02-27 22:46:42 -05:00
Unknwon
a47553b7aa admin/config: remove duplicated config info 2017-02-27 22:46:32 -05:00
Unknwon
d7954014a4 markdown: fix links for image nested inside a link (#2636) 2017-02-27 22:46:32 -05:00
Unknwon
429345b9df editor: fix cannot create branch with slashes (#3568) 2017-02-27 22:46:32 -05:00
Unknwon
eaab01fa49 public: update Semantic UI from 2.2.7 -> 2.2.9 2017-02-27 22:45:35 -05:00
Unknwon
4f9c5981a9 refactoring: modules/auth/*_form.go -> modules/form 2017-02-27 22:45:35 -05:00
Unknwon
b3757e424f Prepare release 2017-02-27 18:38:16 -05:00
Unknwon
2381fe72cb base/tool: downgrade error to warning 2017-02-26 20:44:53 -05:00
Unknwon
e28bc7023f modes/org: code format for PR #4194 2017-02-26 15:29:16 -05:00
dlob
aff8fb28bd models/org: use XORM chain operations instead of raw SQL (#4194)
This also solved MSSQL pagination query syntax problem reported in #4176.
2017-02-26 15:19:34 -05:00
Unknwon
6a543c8066 Update README 2017-02-25 21:21:12 -05:00
Unknwon
4d90527a6e repo: does not allow fork to original owner (#4182)
But can still fork to organizations.
2017-02-25 03:52:54 -05:00
Unknwon
c64b842df9 templates: able to inject content to head and footer (#1286) 2017-02-24 18:26:41 -05:00
Unknwon
27c4252548 dashboard: fix commits CSS 2017-02-24 14:55:07 -05:00
Unknwon
10b93efc4a repo: able to add organization member as repository collaborator 2017-02-24 13:56:02 -05:00
Unknwon
0696d430c9 protect_branch: only list teams have write access
List teams without write access to the repository cause confusion
to make users think members of team could push to the branch.
2017-02-24 13:19:42 -05:00
Unknwon
68b231bd89 template: use DisplayName of users when possible (#4187) 2017-02-24 12:43:49 -05:00
Unknwon
6ec859f2b0 webhook: send secret with SHA256 HMAC hex digest (#3692) 2017-02-24 12:23:19 -05:00
Unknwon
452551fa23 webhook: highlight delivery response on click
This decreases page load time for webhook edit page.
2017-02-24 12:22:22 -05:00
Kyle Filz
ec05c64ead docker: update Dockerfile for Raspberry Pi (#4185) 2017-02-24 00:37:21 -05:00
Unknwon
cd15a17970 models/repo: delete protect branch options when delete repository 2017-02-23 18:42:03 -05:00
Unknwon
6072e9a52c repo: add protect branch whitelist (#4177)
Add options to add users and teams to whitelist of a protected
branch. This is only available for organizational repositories.
2017-02-23 18:25:12 -05:00
Unknwon
b78e03934d models/access: hasAccess only need userID not user object 2017-02-23 16:15:25 -05:00
Cyril Rohr
3c0d162961 packager: update files (#4181)
* Fix packaging

* Fix macaron vendor sha

Revision 8be5635c28f40a85ce8e8f65c6118b4ee4e548e9 does not exist

* Add build dependency for centos
2017-02-23 15:33:58 -05:00
Unknwon
48cf9edcf5 templates/repo/diff: fix tag-code doesn't display in split view 2017-02-23 13:24:59 -05:00
Unknwon
0c8c1ee96f pull: fix split view on pull request page (#3695) 2017-02-23 13:12:28 -05:00
Unknwon
7d80c5a722 mirror: does not allow create releases 2017-02-23 13:09:26 -05:00
Unknwon
5ec21d56ef editor: fix cannot redirect to correct pull request URL
Was only possible to correctly redirect to pull request page within
same repository. And didn't take care of case when upstream has
disabled pull request.

Also add a new method 'PullRequestURL' to unify the code.
2017-02-23 13:05:29 -05:00
Unknwon
266c8f5a85 release: fix unable to edit release of a fork repository 2017-02-23 11:35:33 -05:00
Unknwon
162504e90c repo/setting: fix admin cannot delete organizational repository 2017-02-22 23:16:23 -05:00
Unknwon
5ea0592f61 webhook: fix organizational webhook last delivery status cannot be updated 2017-02-22 22:55:28 -05:00
Unknwon
054e97d614 csrf: able to set custom cookie name
Add new config option '[session] CSRF_COOKIE_NAME'.
2017-02-22 21:46:43 -05:00
Unknwon
28983c94ff comment: only show title of commit message from a commit ref (#3206) 2017-02-22 08:25:26 -05:00
Unknwon
0cfa489cf0 models/git_diff: add bound check 2017-02-22 06:59:45 -05:00
Anders H
e0af5c280d locale: update TRANSLATORS (#4170) 2017-02-22 06:17:08 -05:00
Unknwon
d21dc0da78 migrate: fix unexpected removal of repository when wiki is detected 2017-02-21 22:00:45 -05:00
Unknwon
60aca9ea18 webhook: also only enable certain types (#3356)
Add new config option '[webhook] TYPES’.
2017-02-21 20:21:25 -05:00
Argentumbolo
6a8ad0b357 locale: changes relates to Ukrainian language (#4168)
- Add Ukrainian translation into templates/home.tmpl
    - Fix Ukrainian language name in conf/app.ini
          because on Ukrainian 'language' is female.
    - Add me as translator into conf/locale/TRANSLATORS
2017-02-21 17:57:27 -05:00
Unknwon
bd970b8b27 webhook: only trigger specific webhook for test delivery (#3030) 2017-02-21 15:44:35 -05:00
Unknwon
0f3155660e webhook: minor improvements on Discord 2017-02-21 13:58:00 -05:00
Unknwon
437df04d8c Prepare release 2017-02-21 12:17:39 -05:00
Unknwon
8216360da8 webhook: support color for Discord 2017-02-21 11:36:19 -05:00
Unknwon
c5b85f2733 models/repo: fix repository files weren't cleaned up (#4167) 2017-02-21 11:12:46 -05:00
Orion
ba88bb5f5f locale: update translators (#4166) 2017-02-21 09:11:44 -05:00
Unknwon
5895d43574 editor: redirect to new pull request page after create new branch 2017-02-20 22:29:15 -05:00
Unknwon
e78f252713 webhook: blank page for organization Discord type 2017-02-20 22:13:34 -05:00
Oscar Quisbert
6a78580429 locale: update TRANSLATORS (#4161) 2017-02-20 21:12:29 -05:00
Unknwon
6002d72603 router: fix 404 when repository name contains dot
E.g. atomi.github.io
2017-02-20 18:05:34 -05:00
Unknwon
934734a85a diff: able to highlight line with hashtag URL 2017-02-20 16:16:32 -05:00
Óscar García Amor
491934784f locale: add new translator (#4158) 2017-02-20 13:47:38 -05:00
Alexey Agafonov
fe69a7b116 Update home.tmpl (#4159)
Russian lang. Small fix.
2017-02-20 13:46:56 -05:00
Unknwon
0bef74d499 vendor: update github.com/go-macaron/toolbox (#2857)
Support HEAD requests of '/healthcheck' for service monitoring.
2017-02-20 13:39:46 -05:00
Unknwon
2322de653c models/webhook: fix bad query 2017-02-20 01:04:02 -05:00
Unknwon
95b94b2166 bindata: generate data for PR #4155 2017-02-19 20:12:21 -05:00
Tyler
dd4d623612 Update 'disable_register_mail' verbiage (#4155) 2017-02-19 19:55:19 -05:00
Unknwon
41a2632ae7 webhook: minor text change on Discord 2017-02-19 16:07:28 -05:00
Unknwon
f3a228ed61 vendor: update gopkg.in/macaron.v1 2017-02-19 15:51:10 -05:00
Unknwon
c4fdc26fa5 migration: drop 0.6.x support 2017-02-19 14:42:06 -05:00
Unknwon
7de71333c6 repo: several minor improvements
1. Fix sample content didn't show up when hook doesn't exist.
2. Fix CSS 'word-break' to use 'break-word' not 'break-all'.
3. Fix single quote in 'locale_en-US.ini' file.
2017-02-19 13:18:16 -05:00
Unknwon
cd9b29ff3f api: add list user and organization's repositories (#3984) 2017-02-18 23:37:16 -05:00
Unknwon
50a7c3c20d repo: able to fork own repository (#1791) 2017-02-18 23:04:11 -05:00
huqiangit
c3f52ab52d this fix #3958 (#4153)
Deal with '/' in Wiki page title.
2017-02-18 22:51:21 -05:00
Unknwon
40fbe7fa8e models/repo: handle deletion on Windows (#4152) 2017-02-18 22:47:32 -05:00
Unknwon
ef922ff757 css: cleanup unused files 2017-02-18 21:06:43 -05:00
yaourt
1841316f18 Provide an updated Dockerfile where Gogs is build with Go 1.8 (#4151)
In order to have an up to date Docker image based on alpine 3.5
  and having Gogs built with Go 1.8

Refs: [ #4145 ]
2017-02-18 20:43:27 -05:00
Unknwon
0a2f87f941 cron: add repository archive cleanup (#4061) 2017-02-18 19:35:59 -05:00
Unknwon
c69900325d commits: able to specify pageSize dynamically (#3965)
Usage: <url>?page={page}&pageSize={pageSize}

Also avoid/removed getting total commits count for pagination,
users are only allowed navigation by 'newer' and 'older'.
2017-02-18 18:37:47 -05:00
Unknwon
685737b816 locale: add Ukrainian support 2017-02-18 15:00:11 -05:00
Unknwon
5d766bc4d6 docker: improve README [CI SKIP] 2017-02-18 13:53:58 -05:00
Unknwon
1083c0cd9a admin/config: display repository related settings (#3816) 2017-02-18 13:29:43 -05:00
Unknwon
7b8f086f72 repo/settings: add description and link to personal SSH keys (#3936) 2017-02-18 12:56:06 -05:00
Unknwon
21d538a738 install: able to enable builtin SSH server (#3773) 2017-02-18 12:47:35 -05:00
Unknwon
36f448f47f footer: update Twitter handle [CI SKIP] 2017-02-18 11:55:59 -05:00
Unknwon
dbd9f05c06 vendor: update github.com/go-xorm/* 2017-02-18 11:22:44 -05:00
app
77757f6d39 I've got Translation Credits message from 无闻 (joe2010xtmf) (#4144) 2017-02-18 11:06:06 -05:00
Ganesha
018614cdf0 Update TRANSLATORS (#4146) 2017-02-18 11:05:44 -05:00
Jonas De Kegel
5d9680b00d Update TRANSLATORS (#4147) 2017-02-18 11:05:23 -05:00
Unknwon
c8982f4165 settings: fix organization panel CSS 2017-02-18 02:22:59 -05:00
wp-src
71f0dd858b Update TRANSLATORS (#4143) 2017-02-18 02:07:46 -05:00
火文狼
956bdb18c9 Update TRANSLATORS (#4142) 2017-02-18 01:33:20 -05:00
Unknwon
a07b1f630a webhook: add native Discord support 2017-02-18 00:54:56 -05:00
Unknwon
266586e866 repo: assignee can be anyone who has read access (#3739) 2017-02-17 22:17:27 -05:00
Unknwon
b481927d5e Improve error handling 2017-02-17 18:23:35 -05:00
Unknwon
7bd6052efe vendor: update gopkg.in/clog.v1 2017-02-17 18:05:41 -05:00
Unknwon
07801cbf09 repo/release: add pagination (#2164) 2017-02-17 17:41:55 -05:00
Pierre Prinetti
81e74858d8 Update TRANSLATORS (#4140) 2017-02-17 16:19:11 -05:00
Olexander Yermakov
f4e714d54a Update TRANSLATORS (#4139) 2017-02-17 15:41:23 -05:00
Alexandre Espinosa Menor
edccbc0481 Added myself (#4138) 2017-02-17 15:14:45 -05:00
Unknwon
7e09d210ba Initial version of protected branches (#776)
- Able to restrict force push and deletion
- Able to restrict direct push
2017-02-17 15:10:50 -05:00
Riste Risafov
dab768212a Update TRANSLATORS (#4137) 2017-02-17 14:07:43 -05:00
javydreamercsw
c033cfc684 Update TRANSLATORS (#4136) 2017-02-17 14:07:28 -05:00
sergystepanov
89593a82c1 Update TRANSLATORS (#4135) 2017-02-17 13:54:06 -05:00
Unknwon
ba93504804 setting: check mailService.From only if it has value (#4134) 2017-02-17 12:28:23 -05:00
Unknwon
57cb23ac81 Security: fix XSS attack on alert 2017-02-17 08:16:27 -05:00
Unknwon
5155f026b4 Security: fix XSS attack on milestone
Reported by Miguel Ángel Jimeno.
2017-02-17 08:06:48 -05:00
Unknwon
d521e716dd refactoring: SSH and HTTP push procees is now unified
We used to handle SSH and HTTP push separately which produces
duplicated code, but now with post-receive hook, the process
is unified to one single place and much cleaner.
Thus, UpdateTask struct is removed.

Narrow down the range of Git HTTP routes to reduce condufsing
HTTP Basic Authentication window popup on browser.

By detecting <old-commit, new-commit, ref-name> inside post-receive
hook, Git HTTP doesn't need to read the whole content body anymore,
which completely solve the RAM problem reported in #636.
2017-02-16 16:33:49 -05:00
Unknwon
3b49a99b60 wiki: fix crash with blob name contains tab (#3916) 2017-02-16 11:47:54 -05:00
Unknwon
f129e0ecb5 repo/editor: fix breadcrumb path cuts parent dirs (#3859) 2017-02-16 08:34:49 -05:00
Unknwon
88143f1934 models/repo: UpdateLocalCopy should always aceept valid branch name 2017-02-16 06:28:37 -05:00
Unknwon
3137665e6e Simplify description 2017-02-15 22:29:31 -05:00
Unknwon
f35bd34002 models/repo: use reset --hard to align with remote branch (#4123)
If user has force pushed to a branch, git pull will fail.
2017-02-15 21:00:46 -05:00
Unknwon
b9560ec9cb vendor: update git-module (#4128) 2017-02-15 18:34:02 -05:00
Unknwon
189924cabf repo/branch: force delete merged branch (#4128) 2017-02-15 18:24:32 -05:00
Unknwon
c2277796e4 wiki: remove redundant string replace (#3754) 2017-02-15 18:18:33 -05:00
Unknwon
f97b250509 Security: prevent XSS attach on wiki page
Reported by Miguel Ángel Jimeno.
2017-02-15 18:05:02 -05:00
Mourad Boufarguine
59981b8818 Enable syntax highlighting for CMakeLists.txt files #2199 (#4130) 2017-02-15 12:38:54 -05:00
Unknwon
40bce6310c Improve error handling 2017-02-15 12:35:24 -05:00
Unknwon
a4f9e5031f migration.v15: don't generate hook file if wiki not exist (#1623) 2017-02-15 05:45:15 -05:00
Unknwon
4da325a45c user/profile: paging doesn't respect private repository count (#4082) 2017-02-15 05:39:36 -05:00
Unknwon
fd5881fb64 migration: minor code fix (#1623) 2017-02-15 05:28:05 -05:00
Unknwon
0f6e464126 migration: should regenerate wiki hook files (#1623) 2017-02-15 05:25:51 -05:00
Unknwon
6132a82287 admin: sync wiki's hook files as well 2017-02-15 05:15:39 -05:00
Unknwon
32a868d431 wiki: handle '#' in edit page (#3767) 2017-02-15 05:10:00 -05:00
Unknwon
94f91543b6 Fix compilation error 2017-02-15 04:09:07 -05:00
Unknwon
3d52ef6e39 Solve conflicts (#3837) 2017-02-15 04:01:59 -05:00
Thibault Meyer
a45205b988 Commits fetch concurrency (#3837) 2017-02-15 03:59:53 -05:00
Unknwon
ec9c14c09d vendor: update dependency 2017-02-14 18:47:09 -05:00
Kim "BKC" Carlbäcker
b6fc35f637 Implement list/check/delete Repo Collaborator (#3689) 2017-02-14 18:45:08 -05:00
Unknwon
e24d62e583 modules/ssh: SSH_KEYGEN_PATH not used for exec ssh-keygen (#4124) 2017-02-14 18:08:26 -05:00
Unknwon
0386b5ae54 cmd/hook: check existence before call custom hook 2017-02-14 18:06:54 -05:00
Unknwon
a0253cab62 vendor: update git-module 2017-02-14 17:21:55 -05:00
Unknwon
0f32aeec70 migration: adjust rule to prevent migrate wrong hook file 2017-02-14 16:50:16 -05:00
Unknwon
78145cd166 migration: handle edge case 2017-02-14 16:40:49 -05:00
Unknwon
904f0ebec3 migration: add trace log 2017-02-14 16:30:49 -05:00
Unknwon
039dc33367 git: delegate all server-side Git hooks (#1623) 2017-02-14 16:22:16 -05:00
Christian Höppner
859009259a Typo in LocalCopyPath (#4122)
This won't fix any bugs, but a typo is a typo.
2017-02-14 07:39:55 -05:00
Unknwon
4c5255f5ad cookie: enhance cookie security (#3525) 2017-02-14 03:52:20 -05:00
Unknwon
279e475b89 webhook: match email with real user in database for test delivery (#3652) 2017-02-14 03:32:13 -05:00
Unknwon
f4aedda13a org/team: make 'new' as reserved for team name (#3789) 2017-02-14 03:16:02 -05:00
Unknwon
1381f0f28e vendor: check in missing dependency 2017-02-13 20:58:53 -05:00
Unknwon
f967e9d021 vendor: add new dependency (#3772) 2017-02-13 20:52:35 -05:00
dlob
5179063e71 Added mssql support. (#3772) 2017-02-13 20:50:00 -05:00
Unknwon
ad4bbf5173 Update new logo
[CI SKIP]
2017-02-13 19:11:31 -05:00
Egon Elbre
35f30a306b Icon redesign. (#4121) 2017-02-13 18:20:30 -05:00
Unknwon
c37d3f6486 vendor: remove unnecessary sublime files 2017-02-13 14:09:08 -05:00
Unknwon
bd786b8ef0 auth: remove MD5 for secure cookie secret (#4117)
Update vendor accordingly
2017-02-13 14:05:49 -05:00
Unknwon
d02e7d9e6a install: no need to check SMTPFrom is not set (#4118) 2017-02-13 04:20:03 -05:00
Unknwon
1c87b082c1 api/issue: minor code refactor (#3688) 2017-02-12 19:46:38 -05:00
Kim "BKC" Carlbäcker
99d86c7175 Implement more issue-endpoints (#3688) 2017-02-12 19:42:28 -05:00
Aaron Wood
68ead67a63 Use very strong ciphers (#4116)
* Use very strong ciphers

* Remove TLS_RSA_WITH_AES_256_GCM_SHA384 to be compatible with Go 1.5
2017-02-12 19:12:07 -05:00
Unknwon
2d38b75400 diff: fix can't show compare page for fork repository (#4110) 2017-02-12 18:43:26 -05:00
Unknwon
f59a607361 install: allow sender's username to be non-email (#3717) 2017-02-12 18:35:25 -05:00
Unknwon
d21767dc9f routers/repo: allow shorter SHA to download archive (#3834)
SHA length from 7-40 is now supported.
2017-02-12 18:28:42 -05:00
Unknwon
ab78d4e2b7 base/tool: reduce unnecessary report 2017-02-12 16:13:30 -05:00
Unknwon
127005d733 webhook: remove bad characters of Slack-type webhook for Discord (#4088) 2017-02-11 16:31:58 -05:00
Unknwon
0ae666f3e6 auth: few security improvements 2017-02-11 07:12:06 -05:00
Unknwon
23f2efa8c1 Update locales 2017-02-11 03:59:25 -05:00
Unknwon
5791e1398c install: validate SMTP From
Invalid SMTP From will cause fatal error in post-install and exit
the program.
2017-02-11 03:29:30 -05:00
Unknwon
9b72661767 config: show Git version in admin panel 2017-02-11 03:04:45 -05:00
Unknwon
0958fe5a4e Improve Open Graph Meta tags (#3664) 2017-02-11 00:03:10 -05:00
Simeon Radivoev
4a1dc29e23 Added Open Graph Meta tags to head template (#3664) 2017-02-10 23:37:23 -05:00
Unknwon
2ca668e79e Add more details on error report
[CI SKIP]
2017-02-10 17:11:46 -05:00
Unknwon
ee59016585 wiki: clean up broken data if migration failed (#3792) 2017-02-10 17:07:21 -05:00
Unknwon
7ac09681a2 markdown: fix mailto: doesn't recognize as valid link (#3790) 2017-02-10 17:03:27 -05:00
Unknwon
1863f38286 models/repo: fix SQLite3 database-lock when fail to delete repository (#4048) 2017-02-10 16:56:58 -05:00
Unknwon
6b6f54b79b Some file refactoring 2017-02-10 16:51:09 -05:00
Unknwon
b67ec01d41 Able to disable non-admin to create new organization (#1556)
Add new config option '[admin] DISABLE_REGULAR_ORG_CREATION', by
default it's 'false'.
2017-02-10 16:41:51 -05:00
Unknwon
2c154ccbe7 Minor improve on error handling 2017-02-10 16:05:11 -05:00
Unknwon
3f95824e65 api/repo/milestone: fix change status didn't take effect 2017-02-10 15:54:02 -05:00
spacetourist
29722af1ae Configurable SSH cipher suite (#4109)
* Configurable SSH cipher suite

* Maintain ordering
2017-02-10 14:04:43 -05:00
Unknwon
563fc7c6d7 dump: check existence before include data subdirs (#4100) 2017-02-10 11:58:04 -05:00
Unknwon
9b8fa69c15 models/ssh_key: fix SSH_KEYGEN_PATH not working (#3770) 2017-02-10 02:26:55 -05:00
Unknwon
f5dc436441 Minor improve on error handling 2017-02-10 00:11:51 -05:00
Unknwon
d9d329bec8 modules/setting: add Slack logger
Conn and email loggers are removed for now unless people requested
for them, then try to add back in gopkg.in/clog.v1
2017-02-09 23:53:57 -05:00
Unknwon
76879e977b docker: fix script 2017-02-09 20:48:02 -05:00
Unknwon
9c3c9a8eb9 Update CI settings 2017-02-09 20:11:34 -05:00
Unknwon
2fd69f13d9 vendor: check in vendors
Bye bye glide...
2017-02-09 19:48:13 -05:00
Unknwon
eb66060cd7 log: start using gopkg.in/clog.v1 2017-02-09 19:29:59 -05:00
Unknwon
8a19f8a63c Update locales
This patch also fixes #4073
2017-02-09 16:04:35 -05:00
Unknwon
f7c11a27d0 models/repo: clean up repository local copy after rename (#3641) 2017-02-09 15:56:39 -05:00
Unknwon
418dab9b96 models/pull: load attributes when fetch list of pull requests (#4089)
Code only fetched issues corresponding to the pull requests, and left
out necessary base/head repository objects, which is required later
to generate API format.
2017-02-09 15:45:35 -05:00
Unknwon
09ad42b918 dump: include data-subdirs (#4100) 2017-02-09 15:33:57 -05:00
Unknwon
074c92b0a3 routers/repo/branch: fix can't delete branch with slashes after merge (#4089) 2017-02-09 15:25:48 -05:00
Unknwon
e893e1fc63 models: set XORM log level to WARNING in production 2017-02-09 15:09:37 -05:00
Unknwon
6622b7b49a models: remove TiDB embedded driver support
Users should all start tidb-server process and connect to it as if
it is a MySQL server with MySQL drivers.
2017-02-09 09:31:38 -05:00
Unknwon
afab38b0d7 routers/repo/pull: fix 404 on PR compare (#4074)
Due to recent code refactor, ctx.PullRequest is not initialized for
route repo.CompareAndPullRequest, which leads the UI thinks the
compare is not happening inside the same repository.

The current fix is to allow compare URL to include redundant head
user name so everything works fine again, but code logic isn't
as clean as before.

Made comments about possible future fix.
2017-02-08 18:43:46 -05:00
Unknwon
ede58ade4c models/org_team: fix compile error 2017-02-08 18:18:55 -05:00
Unknwon
a2dd9ec2e1 models/org_team: panic when team num_repos is negative (#3671) 2017-02-08 18:13:46 -05:00
Unknwon
591c333dcd liberjs: pointing licenses to GitHub instead of local 2017-02-07 18:50:16 -05:00
Jorge Maldonado Ventura
6971143dc5 Make Gogs compatible with LibreJS (#4092) 2017-02-07 18:47:08 -05:00
Unknwon
5d6ea4a81b IPythonNotebook: fix a bit more CSS 2017-02-07 17:27:33 -05:00
Unknwon
2374a3ef64 IPythonNotebook: fix Markdown cell CSS 2017-02-07 17:18:18 -05:00
Unknwon
0d9e435bfe IPythonNotebook: CSS adjustment for PR #4070 2017-02-07 17:11:46 -05:00
Herbert
9af0dd23dd Ipython notebook support (#4070)
* added marked and notebookjs javascript libraries

* added ipython notebook render support using javascript libraries

* recompiled gogs.css to include ipynb-related css

* removed superflous javascript library files
2017-02-07 16:18:11 -05:00
Unknwon
39eb6df769 Fix wrong commit SHA in .gopmfile (#4093) 2017-02-07 11:23:16 -05:00
Unknwon
c0f25d24b2 Update locales 2017-02-05 22:42:01 -05:00
Crayon
4f778da35e Change copyright date to 2017 (#4079)
The copyright date in the footer was still set to 2016.
2017-02-02 20:09:24 -05:00
Unknwon
f0f8205b8b models/ssh_key: little key methods receiver rename 2017-02-01 21:34:14 -05:00
Unknwon
2bb1de1805 cmd/serve: minor code improve for PR #4078 2017-02-01 21:28:43 -05:00
Pablo Saavedra
0081c6911d Check deploy keys when Gogs is run with Service.RequireSignInView=true (#4078)
* Check deploy keys when Gogs is run with require_sign_in_view

Check if the deploy key can access to a repository. A deploy key
doesn't represent an gogs user, so in a site with Service.RequireSignInView
activated we should give read access only in the repositories where
this deploy key is in use. In other case, a deploy service or system
using an active deploy key can get read access to all the repositories
in a Gogs service.

* Refactoring: Comments starts in a new line

* Minor change in a comment

* Code cleaning. Replace spaces with tabs
2017-02-01 21:08:59 -05:00
Unknwon
2527037973 routers/repo: minor code fix for PR #3758 2017-02-01 07:24:20 -05:00
Andrey Nering
1d951cfc49 Fix 500 when repo has invalid .editorconfig (#3758)
Creating a notice instead

Fixes #3643
2017-02-01 07:21:03 -05:00
Unknwon
32a0255ce3 bindata: generate for PR #3646 2017-01-31 21:01:13 -05:00
Rémy Boulanouar
be3a13a0d6 Allow use to set an external tracker url and to redirect user when clicking in Issues same behavior as Wiki. (#3646) 2017-01-31 20:53:48 -05:00
Unknwon
d293aa9ced Do a fast-fail testing on repository URL before mirroring
To ensure the URL is accessible under good condition to prevent
long blocking on URL resolution without syncing anything.
2017-01-31 18:40:38 -05:00
Unknwon
0cfcaca351 conf: minor comments fix 2017-01-31 18:08:34 -05:00
Unknwon
412ba5b2a9 Prepare for release 2017-01-31 07:36:59 -05:00
Unknwon
c17f93e6c0 Makefile: remove -buildmode=pie 2017-01-30 15:28:42 -05:00
Unknwon
a5afa37203 Makefile: fix string concatenation 2017-01-30 15:24:31 -05:00
Unknwon
6bfbed0616 Use commit time instead of author time for push commits (#4037) 2017-01-30 13:38:16 -05:00
Unknwon
185c90df12 Skip deletion for temporary data when not exist on Windows (#4069) 2017-01-30 13:30:04 -05:00
Unknwon
7463d9c51d Fix can not save release draft as draft again (#3669)
But release was not saved as draft in the first time, is not
possible to be draft afterwards because the Git tag was created.
2017-01-30 13:21:24 -05:00
Renato P. de Aquino
ec5a967937 Issue #3814 (#3903) 2017-01-30 08:35:12 -05:00
Unknwon
4bc98f7aa2 Move models/mail.go to modules/mail.go
To use interface to replace *models.User in avoiding cycle import.
2017-01-30 07:20:48 -05:00
Unknwon
207960b459 Fix create user can use user email which is used (#4016) 2017-01-29 18:29:53 -05:00
Unknwon
7b3b46c675 Fix showing total number of PRs when user does not have any repositories (#4007) 2017-01-28 20:17:01 -05:00
Unknwon
5e01ecbc05 Able to set custom Access-Control-Allow-Origin header (#3987)
Added new config option '[http] ACCESS_CONTROL_ALLOW_ORIGIN'.
2017-01-28 19:59:17 -05:00
Dennis Chen
c98aa0e895 api: display repository forks (#3252)
Lists the forks of a repository at the /:user/:repo/forks endpoint.

Signed-off-by: Dennis Chen <barracks510@gmail.com>
2017-01-28 17:59:21 -05:00
Aaron Wood
263203ec28 Produce a position independent executable (#4011)
* Produce a position independent executable

* Add OS detection to the main Makefile so we don't apply -pie on OS X
2017-01-28 17:16:34 -05:00
Denis Denisov
84f28fc5d6 Safe compare password (timing attack) (#4064) 2017-01-28 13:28:52 -05:00
Unknwon
9144ea2b1d Fix inappropriate CSS rule for Markdown on wiki page (#3766) 2017-01-28 09:47:16 -05:00
Unknwon
0d73dcaf0f Fix cross-repository reference link error (#4025) 2017-01-28 09:40:32 -05:00
Unknwon
a6a3afd130 Update locales 2017-01-28 05:54:05 -05:00
Unknwon
7aa53635fe Add 'Organizations' page to user settings (#3587)
User is now able to view full list of organizations belongs to.
2017-01-27 22:36:45 -05:00
Rémy Boulanouar
2ee0c61e62 Setting orgs (#3587)
* Implement organizations listing in setting and allow user to create new organization.

* Implement organizations listing in setting and allow user to create new organization.

* Add space remove by mistake

* Remove unused part of the template

* Update display and behavior according to @Unknown remarks
2017-01-27 22:02:27 -05:00
Unknwon
3d23c13160 Add AppVeyor badge to README 2017-01-27 19:42:41 -05:00
Unknwon
e2afd886fd Update appveyor.yml 2017-01-27 19:33:40 -05:00
Unknwon
aa682b3b7e Add appveyor.yml 2017-01-27 19:25:00 -05:00
Unknwon
e43479d948 Fix changed branch is not reflected when creating PR (#3604) 2017-01-27 18:56:32 -05:00
Unknwon
a2f2f7717a Fix template error when rendering non-README markdown (#4063) 2017-01-27 16:52:19 -05:00
cybe
740192564b Verify repository is not bare before retrieving blob. (#3996) 2017-01-27 07:09:25 -05:00
Unknwon
8bcc0e392e Update XORM required version and 'go fmt' 2017-01-26 17:49:29 -05:00
Unknwon
ae319da5fd Disable local path migration by default (#4033)
Site admin now has to enable manually by config option
[repository] ENABLE_LOCAL_PATH_MIGRATION = true.
Site admin always grants this permission, but regulars users have
to be allowed by site admins in admin user panel.
2017-01-26 17:43:37 -05:00
Unknwon
6d6848af5c Fix log depth of AvatarLink 2017-01-26 17:22:25 -05:00
Unknwon
0d60b58434 templates/repo: rename 'Code' to 'Files' 2017-01-25 18:15:37 -05:00
Unknwon
ad57f18894 modules/sync: minor field refactor 2017-01-25 18:10:27 -05:00
Óscar García Amor
80cd8f6a29 Fix #3714 (#4060) 2017-01-25 17:48:31 -05:00
Unknwon
8cb903fbbb Fix unexpected rendering of README when it is not in Markdown
This patch also handles case when a file name looks like README
but is not a text file (e.g. image, PDF).
2017-01-25 07:10:52 -05:00
Unknwon
d1c327d508 repo/home.tmpl: only ellipsis on repository name
File name could contain non-ASCII characters.
See details on https://discuss.gogs.io/t/topic/758.
2017-01-24 21:15:44 -05:00
Óscar García Amor
eaf57229d3 Fix notification email issues (#4055) 2017-01-24 08:18:14 -05:00
atzoum
4e967bc765 Dockerfile for aarch64 (odroid c2 & pine64) (#4018) 2017-01-23 18:31:24 -05:00
Aaron Wood
64788ffff6 Remove call to set GOMAXPROCS (#4010)
* Remove call to set GOMAXPROCS

* Remove runtime import
2017-01-23 18:30:40 -05:00
Joakim Fremstad
3143e35d83 Reword README.md (#4047) 2017-01-23 18:30:29 -05:00
Unknwon
8d5a693382 locale: remove unused locale string 2017-01-23 14:33:25 -05:00
Sandro Santilli
1e185787a9 Enable federated avatars by default (#3997) 2017-01-22 06:03:38 -05:00
Unknwon
1b2ecde1c9 Update locales 2017-01-21 20:12:19 -05:00
Unknwon
e8c3e9bcf8 Improve code for fix of #4006 2017-01-03 11:02:14 +08:00
Unknwon
cdfcef04a1 Fix incorrect logic check for fork repo action 2017-01-03 10:39:05 +08:00
Unknwon
8aa35577b3 Fix vulnerability reported in #4006 2017-01-03 10:36:27 +08:00
Unknwon
c4086d43db Update locales 2017-01-01 13:33:24 +08:00
Unknwon
8059175a5c Fix dashboard issues/pull request counting 2016-12-27 22:01:18 +08:00
Unknwon
f8fd084bd2 Fix dashboard issue/pull request scoping 2016-12-27 20:32:27 +08:00
Unknwon
d528704503 Minor code fix for PR #3560 2016-12-27 20:26:35 +08:00
Unknwon
98076ee72d Upgrade Sematic UI to 2.2.7 2016-12-27 18:56:21 +08:00
hgaiser
e6ef75204b Fix assigned/created issues in dashboard. (#3560)
* Fix assigned/created issues in dashboard.

* Use GetUserIssueStats for getting all Dashboard stats.

* Use gofmt to format the file properly.

* Replace &Issue{} with new(Issue).

* Check if user has access to given repository.

* Remove unnecessary filtering of issues.

* Return 404 error if invalid repository is given.

* Use correct number of issues in paginater.
2016-12-27 18:54:24 +08:00
Joel-Liang
d674cb7f20 Fix wrong anchors for non-latin headings (#3981)
Change Javascript regular expression to match non-latin characters
The regex comes from here: http://stackoverflow.com/questions/150033/regular-expression-to-match-non-english-characters#comment22322603_150078

And this patch should fixed these two issues: #3919 #3843
2016-12-26 22:37:20 -05:00
Unknwon
114c179e5a Update .gopmfile and glide.lock 2016-12-23 21:53:30 -05:00
Unknwon
598e062241 Add Galician support
- Update locales
2016-12-23 21:06:15 -05:00
David A. Lareo
bf70082c22 New locale "galician" (#3917) 2016-12-23 20:53:24 -05:00
Unknwon
2994272e91 Code fix for PR #3748 2016-12-23 20:44:27 -05:00
typeless
cdedc2d188 Use temporary file to avoid out-of-memory when receiving big chunks. (#3748)
* Use temporary file to avoid out-of-memory when receiving big chunk.

Not perfect but I think it's a reasonable solution.
For small request bodies, I suppose performance wouldn't be an issue.
For large ones, this seems to be a necessary evil.

* Must close the open file to avoid fd leaks
2016-12-23 19:50:12 -05:00
Unknwon
42a3bbb0f4 Fetch before Checkout when create pull request (#3699) 2016-12-23 19:36:16 -05:00
Unknwon
eb79532812 Minor fix for PR #3436 2016-12-23 19:00:24 -05:00
lstahlman
5feb68a589 Improve issue references in markdown. (#3436) 2016-12-23 18:49:53 -05:00
Unknwon
03f7f3ee67 Some code renaming 2016-12-22 19:58:30 -05:00
Unknwon
6383bf7480 Fix reported vulnerability
Ability to use labels from arbitrary repositories.

Reported by Miguel Ángel Jimeno.
2016-12-22 19:44:59 -05:00
Unknwon
f471ef1bc7 Fix vulnerability reported in #3962 2016-12-22 19:35:06 -05:00
Unknwon
7ebe0a9916 Fix vulnerabilities reported in #3959 2016-12-22 19:19:56 -05:00
Unknwon
89e93fe01e Minor code fix for PR #3602
Closes #1122
2016-12-22 03:49:50 -05:00
raphael10241024
0f8a5fdf49 fix bug #1122 log.smtp receiver configure error (#3602) 2016-12-22 03:45:51 -05:00
Gian Perrone
3c91c9063b Enable Ubuntu 16.04 build at packager.io (#3617) 2016-12-22 03:41:54 -05:00
Unknwon
e629c7583b Fix #3675
Closes #3676
2016-12-22 03:35:53 -05:00
ipavl
539b07e205 Pluralize "Statistic" (#3665)
Other locales appear to use the plural version, and the text is being associated with more than one statistic.
2016-12-22 03:26:33 -05:00
Unknwon
16d3e7085e Minor fix for PR #3667 2016-12-22 01:51:49 -05:00
Thibault Meyer
c47fbc629b Feature #2583: Disable HTTP cloning (#3667)
* Can disable GIT interactions by HTTP protocol

* rename variable + fix wiki link

* missing space
2016-12-22 01:42:04 -05:00
Unknwon
d04b19545d Code fix for PR #3547 2016-12-22 01:28:06 -05:00
Kurt Madel
3b0e2c1c3f PR Webhook - Add base/head info (#3547)
* messing with getting local go-gogs-client

* coding style fix

* added comments for required fields
2016-12-22 01:01:15 -05:00
Unknwon
79a2745b4a Set ProdMode in the correct place
Closes #3696, #3611

Previously, ProdMode can only be true for web server,
which always prints dev mode log message to incoming SSH
connections and leaks unexpected information.
2016-12-22 00:27:45 -05:00
Unknwon
6cc992ea54 Minor fix for PR #3687 2016-12-21 23:52:11 -05:00
Stefan Grönke
3376354ed8 Check if file is a symlink with web editor (#3687)
* editor checks for symlinks

* translate file_is_a_symlink message

* credit translation author
2016-12-21 23:49:56 -05:00
Unknwon
c2e1370588 Update README
[CI SKIP]
2016-12-21 22:47:55 -05:00
Thibault Meyer
93616fe776 Fix regex on route file (#3851) 2016-12-21 19:46:43 -05:00
Najeeb R
e5972bbcde #3480 Fix new ssh key adding issues (#3565)
* #3480 Fix new ssh key adding issues

Added regular exp match (108) and remove training new line (111) that cause system to think its an ssh2 key.

* #3480 Fix new ssh key adding issues

-Sanitizate new lines (windows format) in posted key
-Edit sanitization implementation to use string replace for code readability and maintenability.
2016-12-21 19:35:48 -05:00
Flare
952e510dfa Added public entries to reserved keywords list
Closes #3728
2016-12-21 19:24:23 -05:00
Unknwon
8f442dde03 Dirty hack for #3905
I beileve this is a bug in XORM which wrongly identifies a struct
to inappropriate table name. Also seems to be random.
2016-12-21 05:11:52 -05:00
Unknwon
c1e53cdc72 Minor fix for PR #3822 2016-12-21 04:18:23 -05:00
stroucki
e9f6a43073 Fix database write context interleaving bug (#3822)
* UpdateIssueUsersByMentions was calling database write operations while
a transaction session was in progress. MailParticipants was failing
silently because of the SQLITE_LOCKED error. Make sure failures in
MailParticipants enter the log, and pass on the transaction context.

issue: let caller pass in database context, and use it
issue_comment: obtain database context to pass to UpdateIssueMentions
issue_comment: log any error from call to MailParticipants
issue_mail: pass on database context to UpdateIssueMentions

* issue: forgot debug statement
2016-12-21 04:11:07 -05:00
Unknwon
67380cf47b Minor code fix 2016-12-21 04:08:23 -05:00
LefsFlare
39fdb0f9c4 Fixed 404 caused by unexpected question mark (#3668)
This fixes 404 caused when creating new files or wiki pages with question marks.
2016-12-21 04:05:49 -05:00
imilo
85fbd6e9c6 New settings option for a custom SSH host (#3763) 2016-12-21 03:46:54 -05:00
Mateusz Hromada
2cfdce88e0 Check for zero length passwords in LDAP module. (#3827) 2016-12-21 03:43:37 -05:00
Саша Иванов
ca6cbb95cc #3791 update LDAP username check (#3906) 2016-12-21 03:43:22 -05:00
leonklingele
7cb440273c Don't use custom PBKDF2 function (#3952)
Instead, use golang.org/x/crypto/pbkdf2
2016-12-21 03:42:44 -05:00
leonklingele
d96f2a7184 Fix random string generator (#3953)
* Remove unused custom-alphabet feature of random string generator

* Fix modulo-biased random string generator

* Random string generator should return error if it fails to read random data via crypto/rand
2016-12-21 03:41:37 -05:00
Nico Mandery
adcb1d7c65 serve video files using the HTML5 video tag (#3967) 2016-12-21 03:40:23 -05:00
afilippov1985
04fbfad2d4 init script for gentoo (#3761) 2016-12-21 03:38:07 -05:00
SeongAhJo
bab051a8c1 Fix Typo Errors (#3885)
* Fix typos

* Fix typos
2016-12-21 03:33:30 -05:00
leonklingele
ad6de46ce4 Fix typo: 'passowrd' -> 'password' (#3951) 2016-12-21 03:31:40 -05:00
Bo Zhang
282f7fb8fa Fix typos (#3852) 2016-12-21 03:13:11 -05:00
M5oul
5034ef787c [mod] readme: update YunoHost package link. (#3881) 2016-12-21 03:12:53 -05:00
Sandro Santilli
3925166d31 Add support for using "libravatar" as the GravatarSource (#3969)
Just to make it easier for administrator to configure libre avatar,
as it is done for "duoshuo" and "gravatar"
2016-12-21 03:10:15 -05:00
Alexander Lunegov
7358e46815 Fix string format verbs (#3637) 2016-12-21 02:09:43 -05:00
Unknwon
8f09fc64bd Minor fix for PR #3624 2016-12-21 01:48:11 -05:00
Kim "BKC" Carlbäcker
b2de3d71c5 More Issue-Comments API-endpoints (#3624)
* ListAllInRepo & Delete Issue-Comments

* Moar data in issue-comments
2016-12-21 01:21:15 -05:00
Unknwon
44ed991726 Merge branch 'develop' of https://github.com/tanapoln/gogs into develop 2016-12-21 00:49:44 -05:00
Unknwon
34b92cdb44 Fix #3905 2016-12-20 23:23:57 -05:00
Unknwon
d3b2ff17d6 Update locales 2016-12-20 22:35:55 -05:00
Unknwon
cc45a8ab06 cmd: new command 'import locale'
Quickly import locale files downloaded from Crowdin.
2016-12-20 22:34:58 -05:00
Unknwon
105c528369 Add Korean support 2016-12-20 21:59:59 -05:00
Unknwon
5d0b334d56 Update git-module required version 2016-12-20 21:28:32 -05:00
Unknwon
b092733c2e Update git-module version to support back Git 1.7.1 2016-12-08 11:44:45 -05:00
Unknwon
baeccdb161 Add github.com/go-xorm/builder to dependency 2016-11-23 21:04:16 -05:00
Unknwon
394fc61129 Update glide.lock and .gopmfile for XORM 2016-11-23 20:58:45 -05:00
Unknwon
55dc9d898f Drop Go 1.4 support
Due to golang.org/x/crypto/ssh requires a method from STD in Go 1.5.

And Go 1.4 is fairly old version for now.
2016-11-23 20:23:18 -05:00
Unknwon
552d5c7ceb Update glide.lock and .gopmfile
Closes #3690 #3727
2016-11-23 20:06:41 -05:00
Unknwon
95065de39a Fork go-libravatar to remove import path check
To use GitHub import path as much as possible.
2016-11-19 21:55:21 -05:00
Unknwon
a3ea4b8802 Update locales and add Swedish 2016-11-19 21:40:13 -05:00
Rémy Boulanouar
6bcff7828f Fix mention in comments like (@dblk) (#3655)
* Fix mention in comments like (@dblk)

* Better fix to avoid making link for "Hello@DblK"
2016-10-16 22:17:59 -04:00
LefsFlare
2cb5ec5983 Prevented user enumeration of valid users through HTTP status codes of login (#3639) (#3654) 2016-10-16 22:08:40 -04:00
LefsFlare
2bec8a4f1e Changed interface (#3685) 2016-09-22 19:38:12 -04:00
Unknwon
7e15ff9486 Update locales
Add new locale Serbian (Cyrillic)
2016-09-15 20:03:36 -04:00
Unknwon
12445fe2ed Add build system link to README [CI SKIP] 2016-09-08 20:56:05 -04:00
Unknwon
491407ddf8 #3590 fix 404 for release draft edition
Closes #3591
2016-09-03 06:00:59 -04:00
Unknwon
6da55159a2 #3589 LoadRepoConfig after ORM is initialized 2016-09-02 23:18:37 -04:00
Tanapol Nearunchorn
73fedc7275 provide button to delete merged pull request 2016-09-02 10:12:21 +07:00
Unknwon
c50d59874d #3577 incorrect URL produced by AvatarLink 2016-09-01 12:36:26 -04:00
Daniel Oaks
b3d9ca4ccd Add the ability to explore organizations (#3573)
* Add ability to explore organizations

* Use right icon for org explore links
2016-09-01 09:08:05 -04:00
Daniel Oaks
4efaf8e882 Fix repo list display on Safari (#3569) 2016-09-01 08:04:25 -04:00
raphael10241024
178556142a fix link error under preview (#3566) 2016-09-01 06:01:27 -04:00
Unknwon
7c1fbed057 Fix panic when attempt login with non-exist user 2016-09-01 05:12:34 -04:00
Thibault Meyer
bc902b8f74 Feature #3492: Add option to hide footer load times (#3562)
* Add option to hide footer load times

* Rename option variable + minor changes
2016-09-01 01:01:32 -04:00
Unknwon
8ee14db51e Update locales 2016-09-01 00:35:04 -04:00
Rémy Boulanouar
5d35578811 Update size of SHA to fix #3538 (#3563) 2016-08-31 14:22:17 -07:00
Corben Dallas
d09fca3ca9 Add a (Open)SuSE init script (#3558) 2016-08-31 14:04:21 -07:00
Unknwon
dadd35b636 #3559 fix template error 2016-08-31 13:59:23 -07:00
Unknwon
c2afdf2192 Minor code fix [CI SKIP] 2016-08-31 04:31:53 -07:00
Unknwon
152e715999 models/login_source: code improvement 2016-08-31 01:22:41 -07:00
Unknwon
99c2ae7b35 #3515 use alert instead 500 for duplicated login source name 2016-08-31 00:56:10 -07:00
无闻
cd9b926af7 Support Editorconfig on web editor (#3512) 2016-08-30 16:47:22 -07:00
Andrey Nering
9ac46fb983 Support Editorconfig on web editor 2016-08-30 20:30:47 -03:00
Unknwon
8516dfcb6c #2018 able to sync now for mirrors
- Refactor code to use sync.UniqueQueue
- Closes #3509
2016-08-30 16:18:33 -07:00
Unknwon
c1ecb6c60a modules/sync: add UniqueQueue 2016-08-30 15:50:30 -07:00
Unknwon
43297148b2 modules/sync: rename SingleInstancePool to ExclusivePool 2016-08-30 15:19:53 -07:00
Unknwon
c0c1a4b01b js: fix comment issue status button title change 2016-08-30 14:37:46 -07:00
Sandro Santilli
47a3243ff1 Add all, check and dist Makefile rules (#3549)
These are to follow the GNU Coding Standards Makefile Targets:
https://www.gnu.org/prep/standards/html_node/Standard-Targets.html
2016-08-30 14:06:05 -07:00
Unknwon
22e14a0a67 templates/repo/view: fix bad link 2016-08-30 13:59:41 -07:00
Unknwon
48a0b5b026 UI: fix block selection on code for empty line are not highlighted 2016-08-30 06:03:38 -07:00
Unknwon
16eb2eb6a3 Fix import path 2016-08-30 05:49:54 -07:00
Unknwon
e6ec1ca1f8 #3548 disable issue cannot edit label and milestonefor pull requests 2016-08-30 05:30:47 -07:00
Unknwon
6f90835f95 Make bindata 2016-08-30 05:24:34 -07:00
Unknwon
643142acab Web editor: support upload files 2016-08-30 05:23:59 -07:00
Unknwon
7c31f235da Web editor: support upload files 2016-08-30 05:12:37 -07:00
Kim "BKC" Carlbäcker
4f40019130 codegangsta/cli => urfave/cli (#3546) 2016-08-30 04:57:58 -07:00
Unknwon
780cc2d110 router/repo: code refactoring 2016-08-30 02:08:38 -07:00
Unknwon
2a13f682e0 Bump git-module required version 2016-08-29 23:57:22 -07:00
Unknwon
28cf0e6aaa #3459 code quality improvement 2016-08-29 20:00:06 -07:00
Thibault Meyer
92fb30c526 Load a set of predefined labels (#3459)
* Can use a predefined set of labels

* Change UI

* Fix HTML file indentation

* Avoid reading file from other directory (security issue)

* Apply a better fix

* Remove not used variable

* Merge upstream/develop

* Do modifications

* Raname

* remove binding + rename variable
2016-08-29 19:02:49 -07:00
Andrey Nering
9f44c26789 Update .editorconfig (#3534)
[CI SKIP]
2016-08-29 18:05:44 -07:00
LFlare
3738b6399e Fixed typo (#3533)
Git convention has it capitalised.
2016-08-29 11:31:12 -07:00
Unknwon
62b0dc4853 Web editor: fix cannot create new file in subdirectory 2016-08-29 00:10:21 -07:00
Unknwon
429c92c0ce #3516 enforce line ending to be \n from web editor 2016-08-28 05:32:10 -07:00
Unknwon
579e5e4fee Web editor: disallow edit mirror repository 2016-08-28 04:56:41 -07:00
Unknwon
ba27d71abe Web editor: improve edit file 2016-08-28 04:31:42 -07:00
Unknwon
7115e3a4d5 css: remove profile avatar height 2016-08-28 03:19:27 -07:00
Unknwon
0114fdcba4 Web editor: improve delete file process 2016-08-28 01:41:44 -07:00
Unknwon
dad5c15520 #2901 allow setting preferred licenses
- Closes #3488
2016-08-28 00:06:22 -07:00
Unknwon
6e171c5225 Web editor: improve edit file tooltip 2016-08-27 15:25:01 -07:00
Unknwon
f0b5c3b90a #3448 redirect if any after sign in 2016-08-27 15:07:02 -07:00
Unknwon
c30b856d14 #3505 use user’s info for committer and author 2016-08-27 13:37:55 -07:00
Unknwon
13c106af77 label: adjust forecolor boundary 2016-08-27 12:44:39 -07:00
Unknwon
ce1e4348da #3521 fix wiki HTTP/S clone URL does not have .wiki suffix 2016-08-27 12:29:52 -07:00
Unknwon
13a8823bd3 #3495 only start builtin SSH server after user finish installation 2016-08-27 12:25:22 -07:00
Unknwon
bbca2916f7 Update highlightjs 2016-08-27 11:56:20 -07:00
Unknwon
37305a59ca migrations: sync table first 2016-08-26 17:32:41 -07:00
Unknwon
bb359a74f1 migrations: set comment updated as created 2016-08-26 14:07:21 -07:00
Unknwon
6b98d58906 #2966 code cleanup 2016-08-26 13:40:53 -07:00
Iwan Budi Kusnanto
8dca9f95fa issues comment API : list, create, edit (#2966)
add `since` query string support to list issue comment
2016-08-26 11:23:21 -07:00
Thibault Meyer
f50e568fd1 Fix #3189: Sort labels by name (#3446)
* Fix #3189 #3445: Order labels by name

* Order labels by name on Issues view
2016-08-25 17:43:53 -07:00
Unknwon
f8a48ffaad Web editor: improve code quality 2016-08-24 21:35:03 -07:00
Kurt Madel
67fb0fe6a5 added support to set pull_request event from api (#3513) 2016-08-24 20:44:58 -07:00
Unknwon
0b273ac4d5 #3383 code cleanup 2016-08-24 16:05:56 -07:00
lstahlman
84b56c3c53 Additional API support for milestones (#3383) 2016-08-24 15:18:56 -07:00
Kim "BKC" Carlbäcker
06602a84ff Fix PR-webhook issue where Label-data is stale (#3486) (#3510)
* Fix PR-webhook issue where Label-data is stale

* Conventions \o/

* logs are nice if they're consistent...
2016-08-24 12:01:30 -07:00
Kim Carlbäcker
b710f6bd65 Update gopmfile and glide.lock (#3508) 2016-08-23 14:53:16 -07:00
rugk
95bd19c509 libravatar.org supports HTTPS (#3498) 2016-08-23 09:50:33 -07:00
Kim Carlbäcker
7c5710d31f Issues can be closed via API (#3170) (#3479)
* Issues can be closed via API

* Error-checking is nice xD

* EditIssueOption.Status => State

* Use const instead of string-literal
2016-08-23 09:09:32 -07:00
Unknwon
7f7216be6e Code quality improvement on JS 2016-08-17 22:44:07 -07:00
Unknwon
ec332cf903 Minor naming improvement 2016-08-17 16:10:07 -07:00
Thibault Meyer
2c5411b00c Fix #3361: Dumps are created world readable (#3473)
* Set dump file permission to 0600

* Typo
2016-08-17 11:38:42 -07:00
Unknwon
a00c932bbc General code quality improvement 2016-08-16 23:06:38 -07:00
Unknwon
6f9a95f830 #2246 add HTMLURL to webhook type
- Fill Milestone and Assignee field when available in webhook payload
2016-08-16 10:19:09 -07:00
Unknwon
8bf57be9ba Fix git diff tests 2016-08-16 07:45:06 -07:00
Unknwon
b1504ed99a #3464 add diff signs which does not have inline diff 2016-08-16 07:37:28 -07:00
Unknwon
9349def72e #3464 reproduce diff signs
Commited wrong file.
2016-08-16 07:33:53 -07:00
Unknwon
6cda35a75f #3464 reproduce diff signs 2016-08-16 07:31:54 -07:00
Unknwon
2625193a48 models/repo_editor: improve code quality 2016-08-15 22:20:55 -07:00
Unknwon
f3c3258921 Fix repository owner can assign self 2016-08-15 18:48:20 -07:00
Unknwon
4042d1f0c3 models/issue: improve quality and performance of NewIssue function 2016-08-15 18:40:32 -07:00
Unknwon
4a46613916 markdown: fix treating pure number as SHA1
- Detect non-exist commit and return 404 not 500
2016-08-15 15:27:19 -07:00
Unknwon
6c8fcb3af2 #3467 fix clone fail when wiki is empty 2016-08-15 15:09:34 -07:00
Unknwon
61e27dedf7 #3466 fix response of pull request form validation error 2016-08-15 14:04:44 -07:00
Unknwon
94392a7af3 Fix empty repository panic on send test webhook 2016-08-15 05:53:47 -07:00
Unknwon
cc647ba9d5 #3461 fix security issue of REAMDE path in create repository 2016-08-15 02:35:54 -07:00
Unknwon
5e89485cec Update README [CI SKIP] 2016-08-15 02:12:18 -07:00
Unknwon
8637e67e6f Fix outdated edit can’t overwrite changes 2016-08-15 02:06:35 -07:00
Unknwon
4a19fd6441 Web editor: temporarily disable upload and quick fix for edit and new
Try to merge into develop branch ASAP, then continue minor fixes afterwards.
2016-08-15 01:42:20 -07:00
Unknwon
54e0ada9d5 Web editor: improve delete file 2016-08-14 23:52:24 -07:00
Unknwon
cd89f6c502 Web editor: improve edit file and diff preview 2016-08-14 23:52:24 -07:00
Unknwon
660e7a178a modules/sync: move sync objects to independent module 2016-08-14 23:52:24 -07:00
Unknwon
15845cb287 Code clean up for new config options 2016-08-14 23:52:24 -07:00
Richard Mahn
d0a0239bac Squashed commit of the following:
commit 0afcb843d7
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 17:13:29 2016 -0600

    Removed Upload stats as the upload table is just a temporary table

commit 7ecd73ff55
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 08:42:41 2016 -0600

    Fix for CodeMirror mode

commit c29b9ab531
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 08:03:33 2016 -0600

    Made tabbing in editor use spaces

commit 23af384c53
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 07:56:46 2016 -0600

    Fix for data-url

commit cfb8a97591
Merge: 7fc8a89 991ce42
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 07:42:53 2016 -0600

    Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file

    Conflicts:
    	modules/bindata/bindata.go
    	public/js/gogs.js

commit 7fc8a89cb4
Merge: fd3d86c c03d040
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 07:40:00 2016 -0600

    Merge branch 'feature-create-and-edit-repo-file' of github.com:richmahn/gogs into feature-create-and-edit-repo-file

commit fd3d86ca6b
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Sun Jul 31 07:39:44 2016 -0600

    Code cleanup

commit c03d0401c1
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Fri Jul 29 15:38:23 2016 -0600

    Code cleanup

commit 98e1206ccf
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Thu Jul 28 18:36:01 2016 -0600

    Code cleanup and fixes

commit c2895dc742
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Thu Jul 28 18:24:04 2016 -0600

    Fixes per Unknwon's requests

commit 6aa7e46b21
Merge: 889e9fa ad7ea88
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Thu Jul 28 17:13:43 2016 -0600

    Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file

    Conflicts:
    	modules/bindata/bindata.go
    	modules/setting/setting.go

commit 889e9faf1b
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Fri Jul 22 14:09:18 2016 -0600

    Fix in gogs.js

commit 47603edf22
Merge: bb57912 cf85e9e
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Fri Jul 22 14:07:36 2016 -0600

    Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file

    Conflicts:
    	modules/bindata/bindata.go
    	public/js/gogs.js

commit bb57912558
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Fri Jul 22 14:02:18 2016 -0600

    Update for using CodeMirror mode addon

commit d10d128c51
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Tue Jul 19 16:12:57 2016 -0600

    Update for Edit

commit 34a3498202
Merge: fa1b752 1c7dcdd
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Tue Jul 19 11:52:02 2016 -0600

    Merge remote-tracking branch 'gogits/develop' into feature-create-and-edit-repo-file

    Conflicts:
    	modules/bindata/bindata.go

commit fa1b752be2
Author: Richard Mahn <richard_mahn@wycliffeassociates.org>
Date:   Fri Jul 15 18:35:42 2016 -0600

    Feature for editing, creating, uploading and deleting files
2016-08-14 23:52:24 -07:00
Unknwon
7e7613cdec Fix template nil error 2016-08-14 23:43:13 -07:00
Unknwon
a5b88c4d0c Fix template error [CI SKIP] 2016-08-14 16:45:15 -07:00
Unknwon
dccb0c15b9 Replace convert.To with APIFormat calls 2016-08-14 04:17:26 -07:00
Unknwon
3f7f4852ef #2246 fully support of webhooks for pull request 2016-08-14 03:32:24 -07:00
Unknwon
0f33b04c87 Add subcommand to create new user in CLI 2016-08-13 16:11:52 -07:00
Unknwon
fd3b9ca3aa CSS: remove font “Meiryo Ui” 2016-08-12 22:05:20 -07:00
Justin Ray Vrooman
f1a5a4277d fix grammar + typo. (#3453) 2016-08-12 17:06:07 -07:00
Unknwon
f59d2dd034 Code clean up 2016-08-12 03:04:50 -07:00
Unknwon
5be881756b #3442 add test suites 2016-08-12 02:56:50 -07:00
Thibault Meyer
4296427214 Fix #3437: Cannot connect to PostgreSQL via IPv6 address (#3442)
* Change PostgreSQL connstring parsing to handle IPv6

* Fix used variable

* Remove redundant code + use variable
2016-08-12 02:42:06 -07:00
Unknwon
7551141dbe Minor fix on top menu dropdown icon position 2016-08-11 23:12:06 -07:00
Unknwon
5544a7037b Add new dependency 2016-08-11 17:12:55 -07:00
Andrey Nering
dbed39ba05 On showing diff/file, use the tab_width specified on .editorconfig, if any (#3241)
Closes #3182
2016-08-11 17:07:09 -07:00
Unknwon
aa1fc30b89 Add .mailmap 2016-08-11 16:57:48 -07:00
Andrey Nering
fa12c282f6 Add Content-Disposition header for downloads (#3439) 2016-08-11 16:53:40 -07:00
Andrey Nering
25b23c4bc9 Do not show non-image attachment in a <img> tag. Fixes #3215 (#3311) 2016-08-11 16:16:36 -07:00
Thibault Meyer
7eafe3213f Fix #3321: commit tag shortener (#3418)
* Fix #3321: commit tag shortener

* Check short commit

* remove debug

* Edit unit tests

* Show 10-char short SHA
2016-08-11 15:34:00 -07:00
Unknwon
2cb04db526 Fix #3391 2016-08-11 15:29:39 -07:00
Unknwon
96f92e6105 Fix email FROM 2016-08-11 15:16:01 -07:00
Unknwon
a47aef5460 #2852 code cleanup 2016-08-11 14:55:10 -07:00
Odin Ugedal
1dd003bd4c Add initial support for unix sockets (#2852) 2016-08-11 14:46:33 -07:00
Unknwon
70fbcd2f27 models: rename EnableTidb to EnableTiDB 2016-08-11 14:38:45 -07:00
Unknwon
5850308a37 #3013 support connect PostgreSQL via unix socket 2016-08-11 14:38:26 -07:00
Thibault Meyer
53c573ed02 Fix #3314: Cannot edit release with tag name contains slash (#3434) 2016-08-11 13:45:42 -07:00
Unknwon
10b47eddd2 Update glide.lock and .gopmfile [CI SKIP] 2016-08-11 11:51:12 -07:00
Robin Lambertz
5a9709fa9d Add MaxRepoCreation to EditUser API (#2781) 2016-08-11 11:49:31 -07:00
Unknwon
7e9b42c87d #2780 code clean up 2016-08-11 11:35:46 -07:00
Robin Lambertz
b6c14f8b21 Add AddCollaborator API Endpoint (#2780)
* Add AddCollaborator API Endpoint

* Add optional Permission to AddCollaborator endpoint

* Use APIContext
2016-08-11 11:23:25 -07:00
Unknwon
5077408d78 #3233 code cleanup and minor issue fix 2016-08-11 10:53:51 -07:00
Andrew
0885784f13 Wiki mirroring implementation (#3233)
* Implement wiki mirroring, add Update mirrors operation to admin dashboard

* bindata.go update after merge

* Implement checking Git repo endpoint existence, support for BB included

* Remove admin dashboard operation
Fix bindata.go

* Apply gofmt to repo model file

* Try to remove bindata from PR

* Revert accepted wiki names change in favor of better system

* Remove unused imports
2016-08-11 10:18:51 -07:00
Sandro Santilli
3380c946e1 Always set redirect_to on header-provided sign-in (#3435)
This is an attempt to fix #3089 following the strategy introduced
in d625e41c6c, although that strategy
by itself does not seem to be sufficient.

What needs be done is honouring the redirect_url query parameter
from the auth router.
2016-08-11 10:14:39 -07:00
Unknwon
d625e41c6c #3408 minor code fix 2016-08-11 07:41:01 -07:00
Sandro Santilli
eb1bfe0e59 Do not show the "Sign up for free" button in issue tracker (#3408)
* Do not show the "Sign up for free" button in issue tracker

The "Sign in to comment" link is good enough and will correctly
show or not show the "Sign Up" button link for those not having
an account already.

Fixes #3407 (link to nowhere when registration is disabled)

* Move html from translation to template

* Remove extra space in `{{ .SignInLink }}`.
2016-08-11 07:36:23 -07:00
Unknwon
042d350762 Fix only user has repo write access can comment 2016-08-11 06:22:56 -07:00
Unknwon
0f26f3678a #3279 use doer email for FROM field of issues 2016-08-11 06:17:45 -07:00
Thibault Meyer
6a81632e36 Fix typo CacheInternal -> CacheInterval (#3432) 2016-08-11 05:59:11 -07:00
Kim Carlbäcker
b756806ee9 Add "support" for git-daemon-export-ok (#2940) (#3046)
* add git-daemon-export-ok "support"

* Slight fix to git-daemon-export-ok

* Add error-checking for git-demon-export-ok

* Remove old comments and fixed logging-issues

* Check if git-daemon-export-ok exists or not
2016-08-10 20:08:09 -07:00
Unknwon
81e6f82caf Update glide.lock and .gopmfile [CI SKIP] 2016-08-10 11:57:53 -07:00
Unknwon
29f76f3936 Update locales [CI SKIP] 2016-08-10 11:54:52 -07:00
lstahlman
ea192147ea Add test pull request task on merging a PR. Fixes #3396 (#3425) 2016-08-10 11:38:44 -07:00
Thibault Meyer
99812a80fd Fix #3420: Bad commit URL generation (#3424) 2016-08-10 11:35:06 -07:00
Thibault Meyer
8ad92bb8a4 Verify list len before use it with IN (#3423) 2016-08-10 11:06:51 -07:00
Unknwon
b85927e488 #3091 show Git configs on admin panel 2016-08-10 11:01:42 -07:00
Unknwon
87b408a2e5 Update bindata.go [CI SKIP] 2016-08-09 23:58:15 -07:00
Thibault Meyer
fc68fb951c Feature #3398: Redefine global mirror interval (#3409)
* add mirror::GLOBAL_INTERVAL on app.ini

* rename key to DEFAULT_INTERVAL

* add key on default app.ini + move code
2016-08-09 23:47:16 -07:00
Unknwon
5448d29b2e #3417 wrong dashboard issue count for create by you 2016-08-09 23:19:52 -07:00
Unknwon
bb51eb5188 Update cron revision [CI SKIP] 2016-08-09 22:02:51 -07:00
lstahlman
89f71b44f7 Add committer information to API and Webhooks. Also fixes #3271 (#3414) 2016-08-09 22:01:57 -07:00
Unknwon
c5d4a9e046 #2907 Add commit timestamp to webhook 2016-08-09 18:28:06 -07:00
Unknwon
edd786446c #3158 skip RUN_USER check on Windows 2016-08-09 17:41:18 -07:00
Unknwon
b0b88d9bc5 #3091 add config option for Git GC 2016-08-09 17:24:32 -07:00
Unknwon
15b0cbe318 #3007 update git-module require version 2016-08-09 17:15:48 -07:00
Unknwon
9f0c571238 Change LICENSE copyright holder name [CI SKIP] 2016-08-09 13:05:15 -07:00
Unknwon
f70343660d Little code refactoring 2016-08-09 12:56:00 -07:00
Rory McNamara
c8b45ecc27 Render the Code view on the server (minus syntax highlighting) (#2942)
* render code view server side

* remove debug print

* fix multiline selection bug

* change string concatenation to bytes.Buffer for efficiency

* Fix newlines added by previous for hljs

* fix selection highlighting

* make css changes in .less
2016-08-09 12:35:20 -07:00
Unknwon
9e8a8867ea #3325 use correct word for .gitignore 2016-08-09 12:16:21 -07:00
lstahlman
2c82fc3edb Fix for #3410 overall issues for organisations is limited to num_repos from the user (#3412) 2016-08-09 10:00:42 -07:00
Unknwon
bbe866122d #3406 fix regression of MustEnableIssues check 2016-08-09 09:39:55 -07:00
Unknwon
87954dbfeb Adjust .codebeatsettings 2016-08-08 23:26:10 -07:00
lstahlman
699c71d319 Fix for #3401 Links of pull request comment email should use pulls URL (#3403) 2016-08-08 22:40:05 -07:00
Unknwon
21f25799b4 Add codebeat files 2016-08-08 20:03:46 -07:00
Unknwon
90af997fec #3399 500 for upstream pulls page if user has forked repository 2016-08-08 13:02:55 -07:00
Unknwon
b73318bc62 Fix 404 when comment on pulls and not using interal issue tracker 2016-08-08 11:29:50 -07:00
Unknwon
e5bf4281b5 #2825 early response 200 when ?go-get=1 2016-08-07 14:29:16 -07:00
Unknwon
0c2b9bbb2b Update glide.lock and .gopmfile 2016-08-07 11:05:19 -07:00
Unknwon
99385db0c4 #3320 code cleanup 2016-08-07 11:01:47 -07:00
Sandro Santilli
90dd0657b5 Add support for federated avatars (#3320)
* Add support for federated avatars

Fixes #3105

Removes avatar fetching duplication code
Adds an "Enable Federated Avatar" checkbox in user settings
(defaults to unchecked)

Moves avatar settings all in the same form, making
local and remote avatars mutually exclusive

Renames UploadAvatarForm to AvatarForm
as it's not anymore only for uploading

* Run gofmt on all modified files

* Move Avatar form in its own page

* Add go-libravatar dependency to vendor/ dir

Hopefully helps with accepting the contribution.
See also #3214

* Revert "Add go-libravatar dependency to vendor/ dir"

This reverts commit a8cb93ae640bbb90f7d25012fc257bda9fae9b82.

* Make federated avatar setting a global configuration

Removes the per-user setting

* Move avatar handling back to base tool, disable federated avatar in offline mode

* Format, handle error

* Properly set fallback host

* Use unsupported github.com mirror for importing go-libravatar

* Remove comment showing life exists outside of github.com

... pity, but contribution would not be accepted otherwise

* Use Combo for Get and Post methods over /avatar

* FEDERATED_AVATAR -> ENABLE_FEDERATED_AVATAR

* Fix persistance of federated avatar lookup checkbox at install time

* Federated Avatars -> Enable Federated Avatars

* Use len(string) == 0 instead of string == ""

* Move import line where it belong

See
https://github.com/Unknwon/go-code-convention/blob/master/en-US/import_packages.md

Pity the import url is still the unofficial one, but oh well...

* Save a line (and waste much more expensive time)

* Remove redundant parens

* Remove an empty line

* Remove empty lines

* Reorder lines to make diff smaller

* Remove another newline

Unknwon review got me start a fight against newlines

* Move DISABLE_GRAVATAR and ENABLE_FEDERATED_AVATAR after OFFLINE_MODE

On re-reading the diff I figured what Unknwon meant here:
https://github.com/gogits/gogs/pull/3320/files#r73741106

* Remove newlines that weren't there before my intervention
2016-08-07 10:27:38 -07:00
Unknwon
ec92565f23 #3393 fix missing sub-url prefix in relative avatar link 2016-08-07 10:13:05 -07:00
Andrey Nering
2772791fda Improve diff highlight (#3390)
- Try to reduce memory allocations
- Add possibility to disable diff highlight (can improve performance for large diffs)
- Tweaking with cost for prettier (cleaner) diffs
- Do not calculate diff when the number of removed lines in a block is not equal to the number of added lines (this usually resulted in ugly diffs)
2016-08-07 09:49:47 -07:00
Unknwon
08c976f811 Only do go vet on this codebase 2016-08-06 11:20:10 -07:00
Unknwon
72dd299ca0 Update .gitattributes 2016-08-06 10:36:40 -07:00
Thibault Meyer
30fda0f1ae Fix #3315: Release dont use tag creation date (#3374)
* Fix #3315: Release dont use tag creation date

* Simplify code and apply gofmt

* remove useless block (ctx.Repo.GitRepo.GetTag) on EditReleasePost

* apply gofmt on modified files
2016-08-06 10:02:15 -07:00
Unknwon
ab9c5fb5e7 #2593 allow render raw content
Use URL query parameter render=1 to render content in raw mode.
2016-08-05 18:34:13 -07:00
rugk
28dc5bb566 Replace gogs.io http links with https version (#3386) 2016-08-05 17:35:40 -07:00
Unknwon
cf6d321991 Ignore repository with issue disabled or use external tracker in dashboard issues 2016-08-05 12:46:26 -07:00
Unknwon
50422f1fc2 #3348 always use relative avatar link in the template 2016-08-05 12:12:54 -07:00
Unknwon
db3d393576 routers/api: rename handlers to be unexported 2016-08-04 17:08:01 -07:00
Unknwon
2f105f3979 #2162 completely disable builtin issue tracker when enable external tracker 2016-08-04 16:32:02 -07:00
1761 changed files with 815670 additions and 30059 deletions

View File

@@ -1,19 +1,21 @@
[run]
init_cmds = [
["make", "build-dev", "TAGS=sqlite"],
["make", "build-dev"],
["./gogs", "web"]
]
watch_all = true
watch_dirs = [
"$WORKDIR/cmd",
"$WORKDIR/models",
"$WORKDIR/modules",
"$WORKDIR/routers"
"$WORKDIR/pkg",
"$WORKDIR/routes"
]
watch_exts = [".go"]
ignore_files = [".+_test.go"]
build_delay = 1500
interrupt_timout = 1
graceful_kill = true
cmds = [
["make", "build-dev", "TAGS=sqlite"], # cert pam tidb
["make", "build-dev"], # TAGS=sqlite cert pam tidb
["./gogs", "web"]
]

7
.codebeatignore Normal file
View File

@@ -0,0 +1,7 @@
conf/**
docker/**
modules/bindata/**
packager/**
public/**
scripts/**
templates/**

7
.codebeatsettings Normal file
View File

@@ -0,0 +1,7 @@
{
"GOLANG": {
"TOTAL_LOC": [500, 999, 1999, 9999],
"TOO_MANY_FUNCTIONS": [50, 99, 199, 999],
"TOO_MANY_IVARS": [20, 50, 70, 99]
}
}

View File

@@ -1,5 +1,3 @@
.git
.git/**
packager
packager/**
scripts
@@ -14,6 +12,4 @@ config.codekit
.editorconfig
.gitignore
Dockerfile*
vendor
vendor/**
gogs

View File

@@ -5,8 +5,21 @@ root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
[*.yml]
[*.go]
indent_style = tab
indent_size = 4
[*.tmpl]
indent_style = tab
indent_size = 2
[*.{less,yml}]
indent_style = space
indent_size = 2
[*.js]
indent_style = tab
indent_size = 4

10
.gitattributes vendored
View File

@@ -1,2 +1,10 @@
conf/gitignore/* linguist-vendored
conf/license/* linguist-vendored
public/assets/* linguist-vendored
public/plugins/* linguist-vendored
public/plugins/* linguist-vendored
public/css/themes/* linguist-vendored
public/css/github.min.css linguist-vendored
public/css/semantic-2.3.1.min.css linguist-vendored
public/js/libs/* linguist-vendored
public/js/jquery-1.11.3.min.js linguist-vendored
public/js/semantic-2.3.1.min.js linguist-vendored

View File

@@ -15,26 +15,7 @@ Depends on the situation, you will:
### Bug Report
If you find something you consider a bug, please create a issue on [GitHub](https://github.com/gogits/gogs/issues). To avoid wasting time and reduce back-and-forth communication with team members, please include at least the following information in a form comfortable for you:
- Bug Description
- Gogs Version
- Git Version
- System Type
- Error Log
- Other information
Please take a moment to check that an issue on [GitHub](https://github.com/gogits/gogs/issues) doesn't already exist documenting your bug report or improvement proposal. If it does, it never hurts to add a quick "+1" or "I have this problem too". This will help prioritize the most common problems and requests.
#### Bug Report Example
Gogs crashed when creating a repository with a license, using v0.5.13.0207, SQLite3, Git 1.9.0, Ubuntu 12.04.
Error log:
```
2014/09/01 07:21:49 [E] nil pointer
```
If you find something you consider a bug, please create an issue on [GitHub](https://github.com/gogits/gogs/issues). To avoid wasting time and reduce back-and-forth communication with team members, please be respect to [Issue Template](ISSUE_TEMPLATE.md).
### Feature Request
@@ -46,7 +27,7 @@ Please read detailed information on [Wiki](https://github.com/gogits/gogs/wiki/C
### Ask For Help
Before opening an issue, please make sure your problem isn't already addressed on the [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.html) and [FAQs](http://gogs.io/docs/intro/faqs.html) pages.
Before opening an issue, please make sure your problem isn't already addressed on the [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) and [FAQs](https://gogs.io/docs/intro/faqs.html) pages.
## Code of conduct

View File

@@ -1,8 +1,10 @@
The issue will be closed without any reasons if it does not satisfy any of following requirements:
1. Please do NOT post questions or config/deploy problems on GitHub, please use our forum: https://discuss.gogs.io
2. Please take a moment to search that an issue doesn't already exist.
3. Please give all relevant information below for bug reports; incomplete details considered invalid report.
1. Please speak English, we have forum in [中文](https://discuss.gogs.io/c/getting-help/getting-help-chinese).
2. Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
3. Please do not end your title with a question mark or period.
3. Please take a moment to search that an issue doesn't already exist.
4. Please give all relevant information below for bug reports; incomplete details considered invalid report.
**You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.**
@@ -12,12 +14,13 @@ The issue will be closed without any reasons if it does not satisfy any of follo
- Database (use `[x]`):
- [ ] PostgreSQL
- [ ] MySQL
- [ ] MSSQL
- [ ] SQLite
- Can you reproduce the bug at https://try.gogs.io:
- [ ] Yes (provide example URL)
- [ ] No
- [ ] Not relevant
- Log gist:
- Log gist (usually found in `log/gogs.log`):
## Description

51
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,51 @@
---
name: Bug report
about: Create a report to help us improve
---
First of all, read https://www.chiark.greenend.org.uk/~sgtatham/bugs.html.
If you don't want to read, it's up to you. But don't waste your time continue reporting.
The issue will be closed without any explanation if it does not satisfy any of following requirements:
1. Please speak English, we have forum in [中文](https://discuss.gogs.io/c/getting-help/getting-help-chinese).
2. Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
3. Please do not end your title with a question mark or period.
3. Please take a moment to search that an issue doesn't already exist.
4. Please give all relevant information below for bug reports; incomplete details considered invalid report.
**You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.**
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
- Gogs version (or commit ref):
- Git version:
- Operating system:
- Database (replace `[ ]` with `[x]`):
- [ ] PostgreSQL
- [ ] MySQL
- [ ] MSSQL
- [ ] SQLite
- Can you reproduce the bug at https://try.gogs.io:
- [ ] Yes (provide example URL)
- [ ] No
- [ ] Not relevant
- Log gist (usually found in `log/gogs.log`):

View File

@@ -0,0 +1,26 @@
---
name: Feature request
about: Suggest an idea for this project
---
The issue will be closed without any explanation if it does not satisfy any of following requirements:
1. Please speak English, we have forum in [中文](https://discuss.gogs.io/c/getting-help/getting-help-chinese).
2. Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
3. Please do not end your title with a question mark or period.
4. Please take a moment to search that an issue doesn't already exist.
**You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.**
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

5
.gitignore vendored
View File

@@ -14,7 +14,6 @@ public/img/avatar/
profile/
*.pem
output*
gogs.sublime-project
gogs.sublime-workspace
*.sublime-project
*.sublime-workspace
/release
vendor

View File

@@ -1,58 +0,0 @@
[target]
path = github.com/gogits/gogs
[deps]
github.com/bradfitz/gomemcache = commit:fb1f79c
github.com/codegangsta/cli = commit:1efa31f
github.com/go-macaron/binding = commit:9440f33
github.com/go-macaron/cache = commit:5617353
github.com/go-macaron/captcha = commit:8aa5919
github.com/go-macaron/csrf = commit:6a9a7df
github.com/go-macaron/gzip = commit:cad1c65
github.com/go-macaron/i18n = commit:ef57533
github.com/go-macaron/inject = commit:c5ab7bf
github.com/go-macaron/session = commit:66031fc
github.com/go-macaron/toolbox = commit:82b5115
github.com/go-sql-driver/mysql = commit:0b58b37
github.com/go-xorm/core = commit:bc1b7f8
github.com/go-xorm/xorm = commit:b8b1711
github.com/gogits/chardet = commit:2404f77
github.com/gogits/cron = commit:96040e4
github.com/gogits/git-module = commit:53bcb73
github.com/gogits/go-gogs-client = commit:d725743
github.com/issue9/identicon = commit:d36b545
github.com/jaytaylor/html2text = commit:52d9b78
github.com/kardianos/minwinsvc = commit:cad6b2b
github.com/klauspost/compress = commit:14eb9c4
github.com/klauspost/cpuid = commit:09cded8
github.com/klauspost/crc32 = commit:19b0b33
github.com/lib/pq = commit:4dd446e
github.com/mattn/go-sqlite3 = commit:e118d44
github.com/mcuadros/go-version = commit:d52711f
github.com/microcosm-cc/bluemonday = commit:9dc1992
github.com/msteinert/pam = commit:02ccfbf
github.com/nfnt/resize = commit:891127d
github.com/russross/blackfriday = commit:93622da
github.com/satori/go.uuid = commit:0aa62d5
github.com/sergi/go-diff = commit:ec7fdbb
github.com/shurcooL/sanitized_anchor_name = commit:10ef21a
github.com/Unknwon/cae = commit:7f5e046
github.com/Unknwon/com = commit:28b053d
github.com/Unknwon/i18n = commit:39d6f27
github.com/Unknwon/paginater = commit:7748a72
golang.org/x/crypto = commit:bc89c49
golang.org/x/net = commit:57bfaa8
golang.org/x/sys = commit:a646d33
golang.org/x/text = commit:2910a50
gopkg.in/alexcesaro/quotedprintable.v3 = commit:2caba25
gopkg.in/asn1-ber.v1 = commit:4e86f43
gopkg.in/bufio.v1 = commit:567b2bf
gopkg.in/gomail.v2 = commit:81ebce5
gopkg.in/ini.v1 = commit:cf53f92
gopkg.in/ldap.v2 = commit:537128f
gopkg.in/macaron.v1 = commit:2133042
gopkg.in/redis.v2 = commit:e617904
[res]
include = public|scripts|templates

2
.mailmap Normal file
View File

@@ -0,0 +1,2 @@
Unknwon <u@gogs.io> <joe2010xtmf@163.com>
Unknwon <u@gogs.io> 无闻 <u@gogs.io>

View File

@@ -7,13 +7,22 @@ targets:
- git
debian-8:
<<: *debian
ubuntu-14.04:
debian-9:
<<: *debian
ubuntu-12.04:
<<: *debian
ubuntu-14.04:
<<: *debian
ubuntu-16.04:
<<: *debian
build_dependencies:
- bzr
- mercurial
centos-6: &el
build_dependencies:
- pam-devel
# required for go buildpack
- perl-Digest-SHA
dependencies:
- pam
- git
@@ -21,7 +30,7 @@ targets:
<<: *el
before:
- mv packager/Procfile .
- mv packager/.godir .
after:
- mv bin/main gogs
- mv bin/gogs gogs
after_install: ./packager/hooks/postinst
buildpack: https://github.com/heroku/heroku-buildpack-go.git#v62

View File

@@ -1,29 +1,15 @@
language: go
go:
- 1.4
- 1.5
- 1.6
- 1.7.x
- 1.8.x
- 1.9.x
- 1.10.x
- 1.11.x
before_install:
- sudo apt-get update -qq
- sudo apt-get install -y libpam-dev
- go get github.com/msteinert/pam
install:
- go get -t -v ./...
script:
script:
- go build -v -tags "pam"
- go test -v -cover -race ./...
notifications:
email:
- u@gogs.io
slack: gophercn:o5pSanyTeNhnfYc3QnG0X7Wx
webhooks:
urls:
- https://webhooks.gitter.im/e/b590f8e03882f7aedc3e
on_success: change
on_failure: always
on_start: never

View File

@@ -1,22 +1,42 @@
FROM alpine:3.3
MAINTAINER jp@roemer.im
FROM golang:alpine AS binarybuilder
# Install build deps
RUN apk --no-cache --no-progress add --virtual build-deps build-base git linux-pam-dev
WORKDIR /go/src/github.com/gogs/gogs
COPY . .
RUN make build TAGS="sqlite cert pam"
FROM alpine:latest
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-amd64 /usr/sbin/gosu
ADD https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata
ENV GOGS_CUSTOM /data/gogs
COPY . /app/gogs/
WORKDIR /app/gogs/
RUN ./docker/build.sh
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
WORKDIR /app/gogs
COPY docker ./docker
COPY templates ./templates
COPY public ./public
COPY --from=binarybuilder /go/src/github.com/gogs/gogs/gogs .
RUN ./docker/finalize.sh
# Configure Docker Container
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["docker/start.sh"]
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

38
Dockerfile.aarch64 Normal file
View File

@@ -0,0 +1,38 @@
FROM aarch64/alpine:3.5
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-arm64 /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata
ENV GOGS_CUSTOM /data/gogs
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# Configure Docker Container
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

48
Dockerfile.aarch64hub Normal file
View File

@@ -0,0 +1,48 @@
FROM arm64v8/alpine:3.8
ENV GOGS_CUSTOM /data/gogs
ENV QEMU_EXECVE 1
# For cross compile on dockerhub
################################
COPY ./docker/aarch64/qemu-aarch64-static /usr/bin/
COPY ./docker/aarch64/resin-xbuild /usr/bin/
RUN [ "/usr/bin/qemu-aarch64-static", "/bin/sh", "-c", "ln -s resin-xbuild /usr/bin/cross-build-start; ln -s resin-xbuild /usr/bin/cross-build-end; ln /bin/sh /bin/sh.real" ]
RUN [ "cross-build-start" ]
# Prepare the container
#######################
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.10/gosu-arm64 /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh shadow socat tzdata go=1.10.1-r0
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build.sh \
&& ./docker/finalize.sh
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
# For cross compile on dockerhub
################################
RUN [ "cross-build-end" ]
# Configure Docker Container
############################
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

View File

@@ -1,25 +1,38 @@
FROM hypriot/rpi-alpine-scratch:v3.2
MAINTAINER jp@roemer.im, raxetul@gmail.com
FROM armhf/alpine:3.5
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-armhf /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& echo "http://dl-4.alpinelinux.org/alpine/v3.3/main/" | tee /etc/apk/repositories \
&& echo "http://dl-4.alpinelinux.org/alpine/v3.3/community/" | tee -a /etc/apk/repositories \
&& apk -U --no-progress upgrade && rm -f /var/cache/apk/APKINDEX.* \
&& apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata
ENV GOGS_CUSTOM /data/gogs
COPY . /app/gogs/
WORKDIR /app/gogs/
RUN ./docker/build.sh
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# Configure Docker Container
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["docker/start.sh"]
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

58
Dockerfile.rpihub Normal file
View File

@@ -0,0 +1,58 @@
FROM armhf/alpine:3.5
ENV GOGS_CUSTOM /data/gogs
ENV QEMU_EXECVE 1
# For cross compile on dockerhub
################################
COPY ./docker/armhf/qemu-arm-static /usr/bin/
COPY ./docker/armhf/resin-xbuild /usr/bin/
RUN [ "/usr/bin/qemu-arm-static", "/bin/sh", "-c", "ln -s resin-xbuild /usr/bin/cross-build-start; ln -s resin-xbuild /usr/bin/cross-build-end; ln /bin/sh /bin/sh.real" ]
RUN [ "cross-build-start" ]
# Prepare the container
#######################
# Install system utils & Gogs runtime dependencies
ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-armhf /usr/sbin/gosu
RUN chmod +x /usr/sbin/gosu \
&& echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories \
&& apk --no-cache --no-progress add \
bash \
ca-certificates \
curl \
git \
linux-pam \
openssh \
s6 \
shadow \
socat \
tzdata
# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
COPY docker /app/gogs/docker
COPY templates /app/gogs/templates
COPY public /app/gogs/public
WORKDIR /app/gogs/build
COPY . .
RUN ./docker/build-go.sh \
&& ./docker/build.sh \
&& ./docker/finalize.sh
# For cross compile on dockerhub
################################
RUN [ "cross-build-end" ]
# Configure Docker Container
############################
VOLUME ["/data"]
EXPOSE 22 3000
ENTRYPOINT ["/app/gogs/docker/start.sh"]
CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]

View File

@@ -1,4 +1,4 @@
Copyright (c) 2014 All Gogs Contributors
Copyright (c) The Gogs Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,9 +1,11 @@
LDFLAGS += -X "github.com/gogits/gogs/modules/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
LDFLAGS += -X "github.com/gogits/gogs/modules/setting.BuildGitHash=$(shell git rev-parse HEAD)"
LDFLAGS += -X "github.com/gogs/gogs/pkg/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
LDFLAGS += -X "github.com/gogs/gogs/pkg/setting.BuildGitHash=$(shell git rev-parse HEAD)"
DATA_FILES := $(shell find conf | sed 's/ /\\ /g')
LESS_FILES := $(wildcard public/less/gogs.less public/less/_*.less)
GENERATED := modules/bindata/bindata.go public/css/gogs.css
GENERATED := pkg/bindata/bindata.go public/css/gogs.css
OS := $(shell uname)
TAGS = ""
BUILD_FLAGS = "-v"
@@ -11,18 +13,29 @@ BUILD_FLAGS = "-v"
RELEASE_ROOT = "release"
RELEASE_GOGS = "release/gogs"
NOW = $(shell date -u '+%Y%m%d%I%M%S')
GOVET = go tool vet -composites=false -methods=false -structtags=false
.PHONY: build pack release bindata clean
.IGNORE: public/css/gogs.css
all: build
check: test
dist: release
web: build
./gogs web
govet:
$(GOVET) gogs.go
$(GOVET) models pkg routes
build: $(GENERATED)
go install $(BUILD_FLAGS) -ldflags '$(LDFLAGS)' -tags '$(TAGS)'
cp '$(GOPATH)/bin/gogs' .
govet:
go tool vet -composites=false -methods=false -structtags=false .
build-dev: $(GENERATED) govet
go install $(BUILD_FLAGS) -tags '$(TAGS)'
cp '$(GOPATH)/bin/gogs' .
@@ -40,15 +53,15 @@ pack:
release: build pack
bindata: modules/bindata/bindata.go
bindata: pkg/bindata/bindata.go
modules/bindata/bindata.go: $(DATA_FILES)
go-bindata -o=$@ -ignore="\\.DS_Store|README.md|TRANSLATORS" -pkg=bindata conf/...
pkg/bindata/bindata.go: $(DATA_FILES)
go-bindata -o=$@ -ignore="\\.DS_Store|README.md|TRANSLATORS|auth.d" -pkg=bindata conf/...
less: public/css/gogs.css
public/css/gogs.css: $(LESS_FILES)
lessc $< $@
@type lessc >/dev/null 2>&1 && lessc $< >$@ || echo "lessc command not found, skipped."
clean:
go clean -i ./...
@@ -60,7 +73,11 @@ test:
go test -cover -race ./...
fixme:
grep -rnw "FIXME" routers models modules
grep -rnw "FIXME" cmd routers models pkg
todo:
grep -rnw "TODO" routers models modules
grep -rnw "TODO" cmd routers models pkg
# Legacy code should be remove by the time of release
legacy:
grep -rnw "LEGACY" cmd routes models pkg

View File

@@ -1,38 +1,37 @@
Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?branch=master)](https://travis-ci.org/gogits/gogs) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/gogs/localized.svg)](https://crowdin.com/project/gogs) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/gogits/gogs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Gogs [![Build Status](https://travis-ci.org/gogs/gogs.svg?branch=master)](https://travis-ci.org/gogs/gogs) [![Build status](https://ci.appveyor.com/api/projects/status/b9uu5ejl933e2wlt/branch/master?svg=true)](https://ci.appveyor.com/project/Unknwon/gogs/branch/master) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/gogs/localized.svg)](https://crowdin.com/project/gogs) [![Discord](https://img.shields.io/discord/382595433060499458.svg)](https://discord.gg/9aqdHU7)
=====================
![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
![](https://github.com/gogs/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
##### Current tip version: 0.9.60 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions)
##### Current tip version: [`.VERSION`](templates/.VERSION) (see [Releases](https://github.com/gogs/gogs/releases) for binary versions)
| Web | UI | Preview |
|:-------------:|:-------:|:-------:|
|![Dashboard](https://gogs.io/img/screenshots/1.png)|![Repository](https://gogs.io/img/screenshots/2.png)|![Commits History](https://gogs.io/img/screenshots/3.png)|
|![Profile](https://gogs.io/img/screenshots/4.png)|![Admin Dashboard](https://gogs.io/img/screenshots/5.png)|![Diff](https://gogs.io/img/screenshots/6.png)|
|![Issues](https://gogs.io/img/screenshots/7.png)|![Releases](https://gogs.io/img/screenshots/8.png)|![Organization](https://gogs.io/img/screenshots/9.png)|
|![Dashboard](https://gogs.io/img/screenshots/1.png)|![Repository](https://gogs.io/img/screenshots/2.png)|![Editor](https://gogs.io/img/screenshots/3.png)|
|![Profile](https://gogs.io/img/screenshots/4.png)|![Diff](https://gogs.io/img/screenshots/5.png)|![Repository Settings](https://gogs.io/img/screenshots/6.png?ts=20170322)|
|![Webhook](https://gogs.io/img/screenshots/7.png)|![Organization](https://gogs.io/img/screenshots/8.png)|![Admin Dashboard](https://gogs.io/img/screenshots/9.png)|
### Important Notes
1. **YOU MUST READ [Contributing Code](https://github.com/gogits/gogs/wiki/Contributing-Code) BEFORE STARTING TO WORK ON A PULL REQUEST**.
1. **YOU MUST READ [Contributing Code](https://github.com/gogs/gogs/wiki/Contributing-Code) BEFORE STARTING TO WORK ON A PULL REQUEST**.
2. Due to testing purpose, data of [try.gogs.io](https://try.gogs.io) was reset in **Jan 28, 2015** and will reset multiple times after. Please do **NOT** put your important data on the site.
3. The demo site [try.gogs.io](https://try.gogs.io) is running under `develop` branch.
4. If you think there are vulnerabilities in the project, please talk privately to **u@gogs.io**. Thanks!
5. If you're interested in using APIs, we have experimental support with [documentation](https://github.com/gogits/go-gogs-client/wiki).
6. If your team/company is using Gogs and would like to put your logo on [our website](http://gogs.io), contact us by any means.
4. If you think there are vulnerabilities in the project, please talk privately to **u@gogs.io**, and the name you want to be credited as. Thanks!
5. If you're interested in using APIs, we have experimental support with [documentation](https://github.com/gogs/go-gogs-client/wiki).
6. If your team/company is using Gogs and would like to put your logo on [our website](https://gogs.io), contact us by any means.
[简体中文](README_ZH.md)
## Purpose
## Vision
The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, Windows and ARM.
This project aims to build a simple, stable and extensible self-hosted Git service that can be setup in the most painless way. With Go, this can be done with an independent binary distribution across **ALL platforms** that Go supports, including Linux, macOS, Windows and ARM.
## Overview
- Please see the [Documentation](http://gogs.io/docs/intro) for common usages and change log.
- See the [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) to follow the develop team.
- Please see the [Documentation](https://gogs.io/docs/intro) for common usages and change log.
- Want to try it before doing anything else? Do it [online](https://try.gogs.io/gogs/gogs)!
- Having trouble? Get help with [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.html) or [User Forum](https://discuss.gogs.io/).
- Want to help with localization? Check out the [guide](http://gogs.io/docs/features/i18n.html)!
- Having trouble? Get help with [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) or [User Forum](https://discuss.gogs.io/).
- Want to help with localization? Check out the [guide](https://gogs.io/docs/features/i18n.html)!
## Features
@@ -41,36 +40,41 @@ The goal of this project is to make the easiest, fastest, and most painless way
- SMTP/LDAP/Reverse proxy authentication
- Reverse proxy with sub-path
- Account/Organization/Repository management
- Repository/Organization webhooks (including Slack)
- Repository Git hooks/deploy keys
- Repository issues, pull requests and wiki
- Add/Remove repository collaborators
- Gravatar and custom source
- Repository/Organization webhooks (including Slack and Discord)
- Repository Git hooks/deploy keys
- Repository issues, pull requests, wiki and protected branches
- Migrate and mirror repository and its wiki
- Web editor for repository files and wiki
- Jupyter Notebook
- Two-factor authentication
- Gravatar and Federated avatar with custom source
- Mail service
- Administration panel
- Supports MySQL, PostgreSQL, SQLite3 and [TiDB](https://github.com/pingcap/tidb) (experimental)
- Multi-language support ([18 languages](https://crowdin.com/project/gogs))
- Supports MySQL, PostgreSQL, SQLite3, MSSQL and [TiDB](https://github.com/pingcap/tidb) (via MySQL protocol)
- Multi-language support ([29 languages](https://crowdin.com/project/gogs))
## System Requirements
## Hardware Requirements
- A cheap Raspberry Pi is powerful enough for basic functionality.
- 2 CPU cores and 1GB RAM would be the baseline for teamwork.
- A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker [CaaS](https://blog.docker.com/2016/02/containers-as-a-service-caas/).
- 2 CPU cores and 512MB RAM would be the baseline for teamwork.
- Increase CPU cores when your team size gets significantly larger, memory footprint remains low.
## Browser Support
- Please see [Semantic UI](https://github.com/Semantic-Org/Semantic-UI#browser-support) for specific versions of supported browsers.
- The official support minimal size is **1024*768**, UI may still looks right in smaller size but no promises and fixes.
- The smallest resolution officially supported is **1024*768**, however the UI may still look right in smaller resolutions, but no promises or fixes.
## Installation
Make sure you install the [prerequisites](http://gogs.io/docs/installation) first.
Make sure you install the [prerequisites](https://gogs.io/docs/installation) first.
There are 5 ways to install Gogs:
- [Install from binary](http://gogs.io/docs/installation/install_from_binary.html)
- [Install from source](http://gogs.io/docs/installation/install_from_source.html)
- [Install from packages](http://gogs.io/docs/installation/install_from_packages.html)
- [Ship with Docker](https://github.com/gogits/gogs/tree/master/docker)
- [Install from binary](https://gogs.io/docs/installation/install_from_binary.html)
- [Install from source](https://gogs.io/docs/installation/install_from_source.html)
- [Install from packages](https://gogs.io/docs/installation/install_from_packages.html)
- [Ship with Docker](https://github.com/gogs/gogs/tree/master/docker)
- [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
### Tutorials
@@ -78,15 +82,16 @@ There are 5 ways to install Gogs:
- [How To Set Up Gogs on Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04)
- [Run your own GitHub-like service with the help of Docker](http://blog.hypriot.com/post/run-your-own-github-like-service-with-docker/)
- [Dockerized Gogs git server and alpine postgres in 20 minutes or less](http://garthwaite.org/docker-gogs.html)
- [Host Your Own Private GitHub with Gogs.io](https://eladnava.com/host-your-own-private-github-with-gogs-io/)
- [Host Your Own Private GitHub with Gogs](https://eladnava.com/host-your-own-private-github-with-gogs-io/)
- [使用 Gogs 搭建自己的 Git 服务器](https://mynook.info/blog/post/host-your-own-git-server-using-gogs) (Chinese)
- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654) (Chinese)
- [Installing Gogs on FreeBSD](https://www.codejam.info/2015/03/installing-gogs-on-freebsd.html)
- [Gogs on Raspberry Pi](http://blog.meinside.pe.kr/Gogs-on-Raspberry-Pi/)
- [Cloudflare Full SSL with GOGS (Go Git Service) using NGINX](http://www.listekconsulting.com/articles/cloudflare-full-ssl-with-gogs-go-git-service-using-nginx/)
- [Cloudflare Full SSL with Gogs using NGINX](http://www.listekconsulting.com/articles/cloudflare-full-ssl-with-gogs-go-git-service-using-nginx/)
### Screencasts
- [How to install Gogs on a Linux Server (DigitalOcean)](https://www.youtube.com/watch?v=deSfX0gqefE)
- [Instalando Gogs no Ubuntu](https://www.youtube.com/watch?v=4UkHAR1F7ZA) (Português)
### Deploy to Cloud
@@ -94,21 +99,22 @@ There are 5 ways to install Gogs:
- [OpenShift](https://github.com/tkisme/gogs-openshift)
- [Cloudron](https://cloudron.io/appstore.html#io.gogs.cloudronapp)
- [Scaleway](https://www.scaleway.com/imagehub/gogs/)
- [Portal](https://portaldemo.xyz/cloud/)
- [Sandstorm](https://github.com/cem/gogs-sandstorm)
- [sloppy.io](https://github.com/sloppyio/quickstarters/tree/master/gogs)
- [YunoHost](https://github.com/mbugeia/gogs_ynh)
- [YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
- [DPlatform](https://github.com/j8r/DPlatform)
## Software and Service Support
- [Drone](https://github.com/drone/drone) (CI)
- [Jenkins](https://wiki.jenkins-ci.org/display/JENKINS/Gogs+Webhook+Plugin) (CI)
- [Fabric8](http://fabric8.io/) (DevOps)
- [Taiga](https://taiga.io/) (Project Management)
- [Puppet](https://forge.puppetlabs.com/Siteminds/gogs) (IT)
- [Kanboard](http://kanboard.net/plugin/gogs-webhook) (Project Management)
- [BearyChat](https://bearychat.com/) (Team Communication)
- [HiWork](http://www.hiwork.cc/) (Team Communication)
- [GitPitch](https://gitpitch.com/) (Markdown Presentations)
### Product Support
@@ -117,19 +123,18 @@ There are 5 ways to install Gogs:
## Acknowledgments
- Router and middleware mechanism of [Macaron](https://github.com/go-macaron/macaron).
- System Monitor Status is inspired by [GoBlog](https://github.com/fuxiaohei/goblog).
- Thanks [lavachen](http://www.lavachen.cn/) and [Rocker](http://weibo.com/rocker1989) for designing Logo.
- Thanks [Crowdin](https://crowdin.com/project/gogs) for providing open source translation plan.
- Thanks [DigitalOcean](https://www.digitalocean.com) for hosting home and demo sites.
- Thanks [KeyCDN](https://www.keycdn.com/) and [QiNiu](http://www.qiniu.com/) for providing CDN service.
- Thanks [Egon Elbre](https://twitter.com/egonelbre) for designing logo.
- Thanks [Crowdin](https://crowdin.com/project/gogs) for sponsoring open source translation plan.
- Thanks [DigitalOcean](https://www.digitalocean.com) and [VPSServer](https://www.vpsserver.com/) for sponsoring VPS service.
- Thanks [KeyCDN](https://www.keycdn.com/) for sponsoring CDN service.
## Contributors
- Ex-team members [@lunny](https://github.com/lunny), [@fuxiaohei](https://github.com/fuxiaohei) and [@slene](https://github.com/slene).
- See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors.
- See [contributors page](https://github.com/gogs/gogs/graphs/contributors) for top 100 contributors.
- See [TRANSLATORS](conf/locale/TRANSLATORS) for public list of translators.
## License
This project is under the MIT License. See the [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) file for the full license text.
This project is under the MIT License. See the [LICENSE](https://github.com/gogs/gogs/blob/master/LICENSE) file for the full license text.
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fgogs%2Fgogs.svg?type=small)](https://app.fossa.io/projects/git%2Bgithub.com%2Fgogs%2Fgogs?ref=badge_small)

View File

@@ -1,19 +1,18 @@
Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?branch=master)](https://travis-ci.org/gogits/gogs)
Gogs [![Build Status](https://travis-ci.org/gogs/gogs.svg?branch=master)](https://travis-ci.org/gogs/gogs) [![Build status](https://ci.appveyor.com/api/projects/status/b9uu5ejl933e2wlt/branch/master?svg=true)](https://ci.appveyor.com/project/Unknwon/gogs/branch/master)
=====================
Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务。
Gogs 是一款极易搭建的自助 Git 服务。
## 开发目的
## 项目愿景
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 **所有平台**,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
本项目旨在打造一个最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 **所有平台**,包括 Linux、macOS、Windows 以及 ARM 平台。
## 项目概览
- 有关基本用法和变更日志,请通过 [使用手册](http://gogs.io/docs/intro/) 查看。
- 您可以到 [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) 跟随开发团队的脚步。
- 有关基本用法和变更日志,请通过 [使用手册](https://gogs.io/docs/intro) 查看。
- 想要先睹为快?直接去 [在线体验](https://try.gogs.io/gogs/gogs) 。
- 使用过程中遇到问题?尝试从 [故障排查](http://gogs.io/docs/intro/troubleshooting.html) 页面或 [用户论坛](https://discuss.gogs.io/) 获取帮助。
- 希望帮助多国语言界面的翻译吗?请立即访问 [详情页面](http://gogs.io/docs/features/i18n.html)
- 使用过程中遇到问题?尝试从 [故障排查](https://gogs.io/docs/intro/troubleshooting.html) 页面或 [用户论坛](https://discuss.gogs.io/) 获取帮助。
- 希望帮助多国语言界面的翻译吗?请立即访问 [详情页面](https://gogs.io/docs/features/i18n.html)
## 功能特性
@@ -22,20 +21,25 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- 支持 SMTP、LDAP 和反向代理的用户认证
- 支持反向代理子路径
- 支持用户、组织和仓库管理系统
- 支持仓库和组织级别 Web 钩子(包括 Slack 集成)
- 支持仓库 Git 钩子和部署密钥
- 支持仓库工单Issue、合并请求Pull Request以及 Wiki
- 支持添加和删除仓库协作者
- 支持 Gravatar 以及自定义源
- 支持仓库和组织级别 Web 钩子(包括 Slack 和 Discord 集成)
- 支持仓库 Git 钩子和部署密钥
- 支持仓库工单Issue、合并请求Pull Request、Wiki 和保护分支
- 支持迁移和镜像仓库以及它的 Wiki
- 支持在线编辑仓库文件和 Wiki
- 支持自定义源的 Gravatar 和 Federated Avatar
- 支持 Jupyter Notebook
- 支持两步验证登录
- 支持邮件服务
- 支持后台管理面板
- 支持 MySQL、PostgreSQL、SQLite3 和 [TiDB](https://github.com/pingcap/tidb)实验性支持) 数据库
- 支持多语言本地化([18 种语言]([more](https://crowdin.com/project/gogs))
- 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 [TiDB](https://github.com/pingcap/tidb)通过 MySQL 协议)数据库
- 支持多语言本地化([29 种语言]([more](https://crowdin.com/project/gogs))
## 系统要求
## 硬件要求
- 最低的系统硬件要求为一个廉价的树莓派
- 如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存
- 如果用于团队项目管理,建议使用 2 核 CPU 及 512MB 内存
- 当团队成员大量增加时,可以考虑添加 CPU 核数,内存占用保持不变
## 浏览器支持
@@ -44,14 +48,14 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
## 安装部署
在安装 Gogs 之前,您需要先安装 [基本环境](http://gogs.io/docs/installation)。
在安装 Gogs 之前,您需要先安装 [基本环境](https://gogs.io/docs/installation)。
然后,您可以通过以下 5 种方式来安装 Gogs
- [二进制安装](http://gogs.io/docs/installation/install_from_binary.html)
- [源码安装](http://gogs.io/docs/installation/install_from_source.html)
- [包管理安装](http://gogs.io/docs/installation/install_from_packages.html)
- [采用 Docker 部署](https://github.com/gogits/gogs/tree/master/docker)
- [二进制安装](https://gogs.io/docs/installation/install_from_binary.html)
- [源码安装](https://gogs.io/docs/installation/install_from_source.html)
- [包管理安装](https://gogs.io/docs/installation/install_from_packages.html)
- [采用 Docker 部署](https://github.com/gogs/gogs/tree/master/docker)
- [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
### 使用教程
@@ -64,7 +68,6 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- [OpenShift](https://github.com/tkisme/gogs-openshift)
- [Cloudron](https://cloudron.io/appstore.html#io.gogs.cloudronapp)
- [Scaleway](https://www.scaleway.com/imagehub/gogs/)
- [Portal](https://portaldemo.xyz/cloud/)
- [Sandstorm](https://github.com/cem/gogs-sandstorm)
- [sloppy.io](https://github.com/sloppyio/quickstarters/tree/master/gogs)
- [YunoHost](https://github.com/mbugeia/gogs_ynh)
@@ -73,12 +76,14 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
## 软件及服务支持
- [Drone](https://github.com/drone/drone)CI
- [Jenkins](https://wiki.jenkins-ci.org/display/JENKINS/Gogs+Webhook+Plugin)CI
- [Fabric8](http://fabric8.io/)DevOps
- [Taiga](https://taiga.io/)(项目管理)
- [Puppet](https://forge.puppetlabs.com/Siteminds/gogs)IT
- [Kanboard](http://kanboard.net/plugin/gogs-webhook)(项目管理)
- [BearyChat](https://bearychat.com/)(团队交流)
- [HiWork](http://www.hiwork.cc/)(团队交流)
- [GitPitch](https://gitpitch.com/)Markdown 演示)
### 产品支持
@@ -87,19 +92,16 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
## 特别鸣谢
- 基于 [Macaron](https://github.com/go-macaron/macaron) 的路由与中间件机制
- 基于 [GoBlog](https://github.com/fuxiaohei/goblog) 修改的系统监视状态。
- 感谢 [lavachen](http://www.lavachen.cn/) 和 [Rocker](http://weibo.com/rocker1989) 设计的 Logo。
- 感谢 [Egon Elbre](https://twitter.com/egonelbre) 设计的 Logo
- 感谢 [Crowdin](https://crowdin.com/project/gogs) 提供免费的开源项目本地化支持。
- 感谢 [DigitalOcean](https://www.digitalocean.com) 提供主站和体验站点的服务器赞助。
- 感谢 [KeyCDN](https://www.keycdn.com/) 和 [七牛云存储](http://www.qiniu.com/) 提供 CDN 服务赞助。
- 感谢 [DigitalOcean](https://www.digitalocean.com) 和 [VPSServer](https://www.vpsserver.com/) 提供服务器赞助。
- 感谢 [KeyCDN](https://www.keycdn.com/) 提供 CDN 服务赞助。
## 贡献成员
- 前团队成员 [@lunny](https://github.com/lunny)、[@fuxiaohei](https://github.com/fuxiaohei) 和 [@slene](https://github.com/slene)
- 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。
- 您可以通过查看 [贡献者页面](https://github.com/gogs/gogs/graphs/contributors) 获取 TOP 100 的贡献者列表
- 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取公开的翻译人员列表。
## 授权许可
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) 文件中。
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/gogs/gogs/blob/master/LICENSE) 文件中。

20
appveyor.yml Normal file
View File

@@ -0,0 +1,20 @@
version: "{build}"
skip_tags: true
clone_folder: c:\gopath\src\github.com\gogs\gogs
clone_depth: 1
environment:
GOPATH: c:\gopath
GOVERSION: 1.11
build: false
deploy: false
install:
- go build -v
notifications:
- provider: Email
to:
- u@gogs.io
on_build_success: false

183
cmd/admin.go Normal file
View File

@@ -0,0 +1,183 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"reflect"
"runtime"
"github.com/urfave/cli"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/pkg/setting"
)
var (
Admin = cli.Command{
Name: "admin",
Usage: "Perform admin operations on command line",
Description: `Allow using internal logic of Gogs without hacking into the source code
to make automatic initialization process more smoothly`,
Subcommands: []cli.Command{
subcmdCreateUser,
subcmdDeleteInactivateUsers,
subcmdDeleteRepositoryArchives,
subcmdDeleteMissingRepositories,
subcmdGitGcRepos,
subcmdRewriteAuthorizedKeys,
subcmdSyncRepositoryHooks,
subcmdReinitMissingRepositories,
},
}
subcmdCreateUser = cli.Command{
Name: "create-user",
Usage: "Create a new user in database",
Action: runCreateUser,
Flags: []cli.Flag{
stringFlag("name", "", "Username"),
stringFlag("password", "", "User password"),
stringFlag("email", "", "User email address"),
boolFlag("admin", "User is an admin"),
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdDeleteInactivateUsers = cli.Command{
Name: "delete-inactive-users",
Usage: "Delete all inactive accounts",
Action: adminDashboardOperation(
models.DeleteInactivateUsers,
"All inactivate accounts have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdDeleteRepositoryArchives = cli.Command{
Name: "delete-repository-archives",
Usage: "Delete all repositories archives",
Action: adminDashboardOperation(
models.DeleteRepositoryArchives,
"All repositories archives have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdDeleteMissingRepositories = cli.Command{
Name: "delete-missing-repositories",
Usage: "Delete all repository records that lost Git files",
Action: adminDashboardOperation(
models.DeleteMissingRepositories,
"All repositories archives have been deleted successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdGitGcRepos = cli.Command{
Name: "collect-garbage",
Usage: "Do garbage collection on repositories",
Action: adminDashboardOperation(
models.GitGcRepos,
"All repositories have done garbage collection successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdRewriteAuthorizedKeys = cli.Command{
Name: "rewrite-authorized-keys",
Usage: "Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)",
Action: adminDashboardOperation(
models.RewriteAuthorizedKeys,
"All public keys have been rewritten successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdSyncRepositoryHooks = cli.Command{
Name: "resync-hooks",
Usage: "Resync pre-receive, update and post-receive hooks",
Action: adminDashboardOperation(
models.SyncRepositoryHooks,
"All repositories' pre-receive, update and post-receive hooks have been resynced successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
subcmdReinitMissingRepositories = cli.Command{
Name: "reinit-missing-repositories",
Usage: "Reinitialize all repository records that lost Git files",
Action: adminDashboardOperation(
models.ReinitMissingRepositories,
"All repository records that lost Git files have been reinitialized successfully",
),
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
)
func runCreateUser(c *cli.Context) error {
if !c.IsSet("name") {
return fmt.Errorf("Username is not specified")
} else if !c.IsSet("password") {
return fmt.Errorf("Password is not specified")
} else if !c.IsSet("email") {
return fmt.Errorf("Email is not specified")
}
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
if err := models.CreateUser(&models.User{
Name: c.String("name"),
Email: c.String("email"),
Passwd: c.String("password"),
IsActive: true,
IsAdmin: c.Bool("admin"),
}); err != nil {
return fmt.Errorf("CreateUser: %v", err)
}
fmt.Printf("New user '%s' has been successfully created!\n", c.String("name"))
return nil
}
func adminDashboardOperation(operation func() error, successMessage string) func(*cli.Context) error {
return func(c *cli.Context) error {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
if err := operation(); err != nil {
functionName := runtime.FuncForPC(reflect.ValueOf(operation).Pointer()).Name()
return fmt.Errorf("%s: %v", functionName, err)
}
fmt.Printf("%s\n", successMessage)
return nil
}
}

137
cmd/backup.go Normal file
View File

@@ -0,0 +1,137 @@
// Copyright 2017 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"io/ioutil"
"os"
"path"
"time"
"github.com/Unknwon/cae/zip"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/ini.v1"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/pkg/setting"
)
var Backup = cli.Command{
Name: "backup",
Usage: "Backup files and database",
Description: `Backup dumps and compresses all related files and database into zip file,
which can be used for migrating Gogs to another server. The output format is meant to be
portable among all supported database engines.`,
Action: runBackup,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
stringFlag("target", "./", "Target directory path to save backup archive"),
stringFlag("archive-name", fmt.Sprintf("gogs-backup-%s.zip", time.Now().Format("20060102150405")), "Name of backup archive"),
boolFlag("database-only", "Only dump database"),
boolFlag("exclude-repos", "Exclude repositories"),
},
}
const _CURRENT_BACKUP_FORMAT_VERSION = 1
const _ARCHIVE_ROOT_DIR = "gogs-backup"
func runBackup(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
tmpDir := c.String("tempdir")
if !com.IsExist(tmpDir) {
log.Fatal(0, "'--tempdir' does not exist: %s", tmpDir)
}
rootDir, err := ioutil.TempDir(tmpDir, "gogs-backup-")
if err != nil {
log.Fatal(0, "Fail to create backup root directory '%s': %v", rootDir, err)
}
log.Info("Backup root directory: %s", rootDir)
// Metadata
metaFile := path.Join(rootDir, "metadata.ini")
metadata := ini.Empty()
metadata.Section("").Key("VERSION").SetValue(com.ToStr(_CURRENT_BACKUP_FORMAT_VERSION))
metadata.Section("").Key("DATE_TIME").SetValue(time.Now().String())
metadata.Section("").Key("GOGS_VERSION").SetValue(setting.AppVer)
if err = metadata.SaveTo(metaFile); err != nil {
log.Fatal(0, "Fail to save metadata '%s': %v", metaFile, err)
}
archiveName := path.Join(c.String("target"), c.String("archive-name"))
log.Info("Packing backup files to: %s", archiveName)
z, err := zip.Create(archiveName)
if err != nil {
log.Fatal(0, "Fail to create backup archive '%s': %v", archiveName, err)
}
if err = z.AddFile(_ARCHIVE_ROOT_DIR+"/metadata.ini", metaFile); err != nil {
log.Fatal(0, "Fail to include 'metadata.ini': %v", err)
}
// Database
dbDir := path.Join(rootDir, "db")
if err = models.DumpDatabase(dbDir); err != nil {
log.Fatal(0, "Fail to dump database: %v", err)
}
if err = z.AddDir(_ARCHIVE_ROOT_DIR+"/db", dbDir); err != nil {
log.Fatal(0, "Fail to include 'db': %v", err)
}
// Custom files
if !c.Bool("database-only") {
if err = z.AddDir(_ARCHIVE_ROOT_DIR+"/custom", setting.CustomPath); err != nil {
log.Fatal(0, "Fail to include 'custom': %v", err)
}
}
// Data files
if !c.Bool("database-only") {
for _, dir := range []string{"attachments", "avatars", "repo-avatars"} {
dirPath := path.Join(setting.AppDataPath, dir)
if !com.IsDir(dirPath) {
continue
}
if err = z.AddDir(path.Join(_ARCHIVE_ROOT_DIR+"/data", dir), dirPath); err != nil {
log.Fatal(0, "Fail to include 'data': %v", err)
}
}
}
// Repositories
if !c.Bool("exclude-repos") && !c.Bool("database-only") {
reposDump := path.Join(rootDir, "repositories.zip")
log.Info("Dumping repositories in '%s'", setting.RepoRootPath)
if err = zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
log.Fatal(0, "Fail to dump repositories: %v", err)
}
log.Info("Repositories dumped to: %s", reposDump)
if err = z.AddFile(_ARCHIVE_ROOT_DIR+"/repositories.zip", reposDump); err != nil {
log.Fatal(0, "Fail to include 'repositories.zip': %v", err)
}
}
if err = z.Close(); err != nil {
log.Fatal(0, "Fail to save backup archive '%s': %v", archiveName, err)
}
os.RemoveAll(rootDir)
log.Info("Backup succeed! Archive is located at: %s", archiveName)
log.Shutdown()
return nil
}

View File

@@ -22,13 +22,13 @@ import (
"strings"
"time"
"github.com/codegangsta/cli"
"github.com/urfave/cli"
)
var CmdCert = cli.Command{
var Cert = cli.Command{
Name: "cert",
Usage: "Generate self-signed certificate",
Description: `Generate a self-signed X.509 certificate for a TLS server.
Description: `Generate a self-signed X.509 certificate for a TLS server.
Outputs to 'cert.pem' and 'key.pem' and will overwrite existing files.`,
Action: runCert,
Flags: []cli.Flag{

View File

@@ -10,10 +10,10 @@ import (
"fmt"
"os"
"github.com/codegangsta/cli"
"github.com/urfave/cli"
)
var CmdCert = cli.Command{
var Cert = cli.Command{
Name: "cert",
Usage: "Generate self-signed certificate",
Description: `Please use build tags "cert" to rebuild Gogs in order to have this ability`,

View File

@@ -7,7 +7,7 @@ package cmd
import (
"time"
"github.com/codegangsta/cli"
"github.com/urfave/cli"
)
func stringFlag(name, value, usage string) cli.StringFlag {

View File

@@ -1,104 +0,0 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"log"
"os"
"path"
"time"
"io/ioutil"
"github.com/Unknwon/cae/zip"
"github.com/codegangsta/cli"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/setting"
)
var CmdDump = cli.Command{
Name: "dump",
Usage: "Dump Gogs files and database",
Description: `Dump compresses all related files and database into zip file.
It can be used for backup and capture Gogs server image to send to maintainer`,
Action: runDump,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary dir path"),
},
}
func runDump(ctx *cli.Context) error {
if ctx.IsSet("config") {
setting.CustomConf = ctx.String("config")
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
tmpDir := ctx.String("tempdir")
if _, err := os.Stat(tmpDir); os.IsNotExist(err) {
log.Fatalf("Path does not exist: %s", tmpDir)
}
TmpWorkDir, err := ioutil.TempDir(tmpDir, "gogs-dump-")
if err != nil {
log.Fatalf("Fail to create tmp work directory: %v", err)
}
log.Printf("Creating tmp work dir: %s", TmpWorkDir)
reposDump := path.Join(TmpWorkDir, "gogs-repo.zip")
dbDump := path.Join(TmpWorkDir, "gogs-db.sql")
log.Printf("Dumping local repositories...%s", setting.RepoRootPath)
zip.Verbose = ctx.Bool("verbose")
if err := zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
log.Fatalf("Fail to dump local repositories: %v", err)
}
log.Printf("Dumping database...")
if err := models.DumpDatabase(dbDump); err != nil {
log.Fatalf("Fail to dump database: %v", err)
}
fileName := fmt.Sprintf("gogs-dump-%d.zip", time.Now().Unix())
log.Printf("Packing dump files...")
z, err := zip.Create(fileName)
if err != nil {
os.Remove(fileName)
log.Fatalf("Fail to create %s: %v", fileName, err)
}
if err := z.AddFile("gogs-repo.zip", reposDump); err != nil {
log.Fatalf("Fail to include gogs-repo.zip: %v", err)
}
if err := z.AddFile("gogs-db.sql", dbDump); err != nil {
log.Fatalf("Fail to include gogs-db.sql: %v", err)
}
customDir, err := os.Stat(setting.CustomPath)
if err == nil && customDir.IsDir() {
if err := z.AddDir("custom", setting.CustomPath); err != nil {
log.Fatalf("Fail to include custom: %v", err)
}
} else {
log.Printf("Custom dir %s doesn't exist, skipped", setting.CustomPath)
}
if err := z.AddDir("log", setting.LogRootPath); err != nil {
log.Fatalf("Fail to include log: %v", err)
}
// FIXME: SSH key file.
if err = z.Close(); err != nil {
os.Remove(fileName)
log.Fatalf("Fail to save %s: %v", fileName, err)
}
log.Printf("Removing tmp work dir: %s", TmpWorkDir)
os.RemoveAll(TmpWorkDir)
log.Printf("Finish dumping in file %s", fileName)
return nil
}

277
cmd/hook.go Normal file
View File

@@ -0,0 +1,277 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"bufio"
"bytes"
"crypto/tls"
"fmt"
"os"
"os/exec"
"path"
"path/filepath"
"strings"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"github.com/gogs/git-module"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/models/errors"
"github.com/gogs/gogs/pkg/httplib"
"github.com/gogs/gogs/pkg/mailer"
"github.com/gogs/gogs/pkg/setting"
"github.com/gogs/gogs/pkg/template"
)
var (
Hook = cli.Command{
Name: "hook",
Usage: "Delegate commands to corresponding Git hooks",
Description: "All sub-commands should only be called by Git",
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
Subcommands: []cli.Command{
subcmdHookPreReceive,
subcmdHookUpadte,
subcmdHookPostReceive,
},
}
subcmdHookPreReceive = cli.Command{
Name: "pre-receive",
Usage: "Delegate pre-receive Git hook",
Description: "This command should only be called by Git",
Action: runHookPreReceive,
}
subcmdHookUpadte = cli.Command{
Name: "update",
Usage: "Delegate update Git hook",
Description: "This command should only be called by Git",
Action: runHookUpdate,
}
subcmdHookPostReceive = cli.Command{
Name: "post-receive",
Usage: "Delegate post-receive Git hook",
Description: "This command should only be called by Git",
Action: runHookPostReceive,
}
)
func runHookPreReceive(c *cli.Context) error {
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
return nil
}
setup(c, "hooks/pre-receive.log", true)
isWiki := strings.Contains(os.Getenv(models.ENV_REPO_CUSTOM_HOOKS_PATH), ".wiki.git/")
buf := bytes.NewBuffer(nil)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
buf.Write(scanner.Bytes())
buf.WriteByte('\n')
if isWiki {
continue
}
fields := bytes.Fields(scanner.Bytes())
if len(fields) != 3 {
continue
}
oldCommitID := string(fields[0])
newCommitID := string(fields[1])
branchName := strings.TrimPrefix(string(fields[2]), git.BRANCH_PREFIX)
// Branch protection
repoID := com.StrTo(os.Getenv(models.ENV_REPO_ID)).MustInt64()
protectBranch, err := models.GetProtectBranchOfRepoByName(repoID, branchName)
if err != nil {
if errors.IsErrBranchNotExist(err) {
continue
}
fail("Internal error", "GetProtectBranchOfRepoByName [repo_id: %d, branch: %s]: %v", repoID, branchName, err)
}
if !protectBranch.Protected {
continue
}
// Whitelist users can bypass require pull request check
bypassRequirePullRequest := false
// Check if user is in whitelist when enabled
userID := com.StrTo(os.Getenv(models.ENV_AUTH_USER_ID)).MustInt64()
if protectBranch.EnableWhitelist {
if !models.IsUserInProtectBranchWhitelist(repoID, userID, branchName) {
fail(fmt.Sprintf("Branch '%s' is protected and you are not in the push whitelist", branchName), "")
}
bypassRequirePullRequest = true
}
// Check if branch allows direct push
if !bypassRequirePullRequest && protectBranch.RequirePullRequest {
fail(fmt.Sprintf("Branch '%s' is protected and commits must be merged through pull request", branchName), "")
}
// check and deletion
if newCommitID == git.EMPTY_SHA {
fail(fmt.Sprintf("Branch '%s' is protected from deletion", branchName), "")
}
// Check force push
output, err := git.NewCommand("rev-list", "--max-count=1", oldCommitID, "^"+newCommitID).
RunInDir(models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.ENV_REPO_NAME)))
if err != nil {
fail("Internal error", "Fail to detect force push: %v", err)
} else if len(output) > 0 {
fail(fmt.Sprintf("Branch '%s' is protected from force push", branchName), "")
}
}
customHooksPath := filepath.Join(os.Getenv(models.ENV_REPO_CUSTOM_HOOKS_PATH), "pre-receive")
if !com.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if setting.IsWindows {
hookCmd = exec.Command("bash.exe", "custom_hooks/pre-receive")
} else {
hookCmd = exec.Command(customHooksPath)
}
hookCmd.Dir = models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.ENV_REPO_NAME))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = buf
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Fail to execute custom pre-receive hook: %v", err)
}
return nil
}
func runHookUpdate(c *cli.Context) error {
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
return nil
}
setup(c, "hooks/update.log", false)
args := c.Args()
if len(args) != 3 {
fail("Arguments received are not equal to three", "Arguments received are not equal to three")
} else if len(args[0]) == 0 {
fail("First argument 'refName' is empty", "First argument 'refName' is empty")
}
customHooksPath := filepath.Join(os.Getenv(models.ENV_REPO_CUSTOM_HOOKS_PATH), "update")
if !com.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if setting.IsWindows {
hookCmd = exec.Command("bash.exe", append([]string{"custom_hooks/update"}, args...)...)
} else {
hookCmd = exec.Command(customHooksPath, args...)
}
hookCmd.Dir = models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.ENV_REPO_NAME))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = os.Stdin
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Fail to execute custom pre-receive hook: %v", err)
}
return nil
}
func runHookPostReceive(c *cli.Context) error {
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
return nil
}
setup(c, "hooks/post-receive.log", true)
// Post-receive hook does more than just gather Git information,
// so we need to setup additional services for email notifications.
setting.NewPostReceiveHookServices()
mailer.NewContext()
mailer.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"),
path.Join(setting.CustomPath, "templates/mail"), template.NewFuncMap())
isWiki := strings.Contains(os.Getenv(models.ENV_REPO_CUSTOM_HOOKS_PATH), ".wiki.git/")
buf := bytes.NewBuffer(nil)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
buf.Write(scanner.Bytes())
buf.WriteByte('\n')
// TODO: support news feeds for wiki
if isWiki {
continue
}
fields := bytes.Fields(scanner.Bytes())
if len(fields) != 3 {
continue
}
options := models.PushUpdateOptions{
OldCommitID: string(fields[0]),
NewCommitID: string(fields[1]),
RefFullName: string(fields[2]),
PusherID: com.StrTo(os.Getenv(models.ENV_AUTH_USER_ID)).MustInt64(),
PusherName: os.Getenv(models.ENV_AUTH_USER_NAME),
RepoUserName: os.Getenv(models.ENV_REPO_OWNER_NAME),
RepoName: os.Getenv(models.ENV_REPO_NAME),
}
if err := models.PushUpdate(options); err != nil {
log.Error(2, "PushUpdate: %v", err)
}
// Ask for running deliver hook and test pull request tasks
reqURL := setting.LocalURL + options.RepoUserName + "/" + options.RepoName + "/tasks/trigger?branch=" +
template.EscapePound(strings.TrimPrefix(options.RefFullName, git.BRANCH_PREFIX)) +
"&secret=" + os.Getenv(models.ENV_REPO_OWNER_SALT_MD5) +
"&pusher=" + os.Getenv(models.ENV_AUTH_USER_ID)
log.Trace("Trigger task: %s", reqURL)
resp, err := httplib.Head(reqURL).SetTLSClientConfig(&tls.Config{
InsecureSkipVerify: true,
}).Response()
if err == nil {
resp.Body.Close()
if resp.StatusCode/100 != 2 {
log.Error(2, "Fail to trigger task: not 2xx response code")
}
} else {
log.Error(2, "Fail to trigger task: %v", err)
}
}
customHooksPath := filepath.Join(os.Getenv(models.ENV_REPO_CUSTOM_HOOKS_PATH), "post-receive")
if !com.IsFile(customHooksPath) {
return nil
}
var hookCmd *exec.Cmd
if setting.IsWindows {
hookCmd = exec.Command("bash.exe", "custom_hooks/post-receive")
} else {
hookCmd = exec.Command(customHooksPath)
}
hookCmd.Dir = models.RepoPath(os.Getenv(models.ENV_REPO_OWNER_NAME), os.Getenv(models.ENV_REPO_NAME))
hookCmd.Stdout = os.Stdout
hookCmd.Stdin = buf
hookCmd.Stderr = os.Stderr
if err := hookCmd.Run(); err != nil {
fail("Internal error", "Fail to execute custom post-receive hook: %v", err)
}
return nil
}

113
cmd/import.go Normal file
View File

@@ -0,0 +1,113 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"bufio"
"bytes"
"fmt"
"os"
"path/filepath"
"time"
"github.com/Unknwon/com"
"github.com/urfave/cli"
"github.com/gogs/gogs/pkg/setting"
)
var (
Import = cli.Command{
Name: "import",
Usage: "Import portable data as local Gogs data",
Description: `Allow user import data from other Gogs installations to local instance
without manually hacking the data files`,
Subcommands: []cli.Command{
subcmdImportLocale,
},
}
subcmdImportLocale = cli.Command{
Name: "locale",
Usage: "Import locale files to local repository",
Action: runImportLocale,
Flags: []cli.Flag{
stringFlag("source", "", "Source directory that stores new locale files"),
stringFlag("target", "", "Target directory that stores old locale files"),
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
)
func runImportLocale(c *cli.Context) error {
if !c.IsSet("source") {
return fmt.Errorf("Source directory is not specified")
} else if !c.IsSet("target") {
return fmt.Errorf("Target directory is not specified")
}
if !com.IsDir(c.String("source")) {
return fmt.Errorf("Source directory does not exist or is not a directory")
} else if !com.IsDir(c.String("target")) {
return fmt.Errorf("Target directory does not exist or is not a directory")
}
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setting.NewContext()
now := time.Now()
line := make([]byte, 0, 100)
badChars := []byte(`="`)
escapedQuotes := []byte(`\"`)
regularQuotes := []byte(`"`)
// Cut out en-US.
for _, lang := range setting.Langs[1:] {
name := fmt.Sprintf("locale_%s.ini", lang)
source := filepath.Join(c.String("source"), name)
target := filepath.Join(c.String("target"), name)
if !com.IsFile(source) {
continue
}
// Crowdin surrounds double quotes for strings contain quotes inside,
// this breaks INI parser, we need to fix that.
sr, err := os.Open(source)
if err != nil {
return fmt.Errorf("Open: %v", err)
}
tw, err := os.Create(target)
if err != nil {
if err != nil {
return fmt.Errorf("Open: %v", err)
}
}
scanner := bufio.NewScanner(sr)
for scanner.Scan() {
line = scanner.Bytes()
idx := bytes.Index(line, badChars)
if idx > -1 && line[len(line)-1] == '"' {
// We still want the "=" sign
line = append(line[:idx+1], line[idx+2:len(line)-1]...)
line = bytes.Replace(line, escapedQuotes, regularQuotes, -1)
}
tw.Write(line)
tw.WriteString("\n")
}
sr.Close()
tw.Close()
// Modification time of files from Crowdin often ahead of current,
// so we need to set back to current.
os.Chtimes(target, now, now)
}
fmt.Println("Locale files has been successfully imported!")
return nil
}

148
cmd/restore.go Normal file
View File

@@ -0,0 +1,148 @@
// Copyright 2017 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"os"
"path"
"github.com/Unknwon/cae/zip"
"github.com/Unknwon/com"
"github.com/mcuadros/go-version"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/ini.v1"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/pkg/setting"
)
var Restore = cli.Command{
Name: "restore",
Usage: "Restore files and database from backup",
Description: `Restore imports all related files and database from a backup archive.
The backup version must lower or equal to current Gogs version. You can also import
backup from other database engines, which is useful for database migrating.
If corresponding files or database tables are not presented in the archive, they will
be skipped and remain unchanged.`,
Action: runRestore,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
boolFlag("verbose, v", "Show process details"),
stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
stringFlag("from", "", "Path to backup archive"),
boolFlag("database-only", "Only import database"),
boolFlag("exclude-repos", "Exclude repositories"),
},
}
// lastSupportedVersionOfFormat returns the last supported version of the backup archive
// format that is able to import.
var lastSupportedVersionOfFormat = map[int]string{}
func runRestore(c *cli.Context) error {
zip.Verbose = c.Bool("verbose")
tmpDir := c.String("tempdir")
if !com.IsExist(tmpDir) {
log.Fatal(0, "'--tempdir' does not exist: %s", tmpDir)
}
log.Info("Restore backup from: %s", c.String("from"))
if err := zip.ExtractTo(c.String("from"), tmpDir); err != nil {
log.Fatal(0, "Failed to extract backup archive: %v", err)
}
archivePath := path.Join(tmpDir, _ARCHIVE_ROOT_DIR)
defer os.RemoveAll(archivePath)
// Check backup version
metaFile := path.Join(archivePath, "metadata.ini")
if !com.IsExist(metaFile) {
log.Fatal(0, "File 'metadata.ini' is missing")
}
metadata, err := ini.Load(metaFile)
if err != nil {
log.Fatal(0, "Failed to load metadata '%s': %v", metaFile, err)
}
backupVersion := metadata.Section("").Key("GOGS_VERSION").MustString("999.0")
if version.Compare(setting.AppVer, backupVersion, "<") {
log.Fatal(0, "Current Gogs version is lower than backup version: %s < %s", setting.AppVer, backupVersion)
}
formatVersion := metadata.Section("").Key("VERSION").MustInt()
if formatVersion == 0 {
log.Fatal(0, "Failed to determine the backup format version from metadata '%s': %s", metaFile, "VERSION is not presented")
}
if formatVersion != _CURRENT_BACKUP_FORMAT_VERSION {
log.Fatal(0, "Backup format version found is %d but this binary only supports %d\nThe last known version that is able to import your backup is %s",
formatVersion, _CURRENT_BACKUP_FORMAT_VERSION, lastSupportedVersionOfFormat[formatVersion])
}
// If config file is not present in backup, user must set this file via flag.
// Otherwise, it's optional to set config file flag.
configFile := path.Join(archivePath, "custom/conf/app.ini")
if c.IsSet("config") {
setting.CustomConf = c.String("config")
} else if !com.IsExist(configFile) {
log.Fatal(0, "'--config' is not specified and custom config file is not found in backup")
} else {
setting.CustomConf = configFile
}
setting.NewContext()
models.LoadConfigs()
models.SetEngine()
// Database
dbDir := path.Join(archivePath, "db")
if err = models.ImportDatabase(dbDir, c.Bool("verbose")); err != nil {
log.Fatal(0, "Failed to import database: %v", err)
}
// Custom files
if !c.Bool("database-only") {
if com.IsExist(setting.CustomPath) {
if err = os.Rename(setting.CustomPath, setting.CustomPath+".bak"); err != nil {
log.Fatal(0, "Failed to backup current 'custom': %v", err)
}
}
if err = os.Rename(path.Join(archivePath, "custom"), setting.CustomPath); err != nil {
log.Fatal(0, "Failed to import 'custom': %v", err)
}
}
// Data files
if !c.Bool("database-only") {
os.MkdirAll(setting.AppDataPath, os.ModePerm)
for _, dir := range []string{"attachments", "avatars", "repo-avatars"} {
// Skip if backup archive does not have corresponding data
srcPath := path.Join(archivePath, "data", dir)
if !com.IsDir(srcPath) {
continue
}
dirPath := path.Join(setting.AppDataPath, dir)
if com.IsExist(dirPath) {
if err = os.Rename(dirPath, dirPath+".bak"); err != nil {
log.Fatal(0, "Failed to backup current 'data': %v", err)
}
}
if err = os.Rename(srcPath, dirPath); err != nil {
log.Fatal(0, "Failed to import 'data': %v", err)
}
}
}
// Repositories
reposPath := path.Join(archivePath, "repositories.zip")
if !c.Bool("exclude-repos") && !c.Bool("database-only") && com.IsExist(reposPath) {
if err := zip.ExtractTo(reposPath, path.Dir(setting.RepoRootPath)); err != nil {
log.Fatal(0, "Failed to extract 'repositories.zip': %v", err)
}
}
log.Info("Restore succeed!")
log.Shutdown()
return nil
}

272
cmd/serv.go Normal file
View File

@@ -0,0 +1,272 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
"github.com/Unknwon/com"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/models/errors"
"github.com/gogs/gogs/pkg/setting"
)
const (
_ACCESS_DENIED_MESSAGE = "Repository does not exist or you do not have access"
)
var Serv = cli.Command{
Name: "serv",
Usage: "This command should only be called by SSH shell",
Description: `Serv provide access auth for repositories`,
Action: runServ,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
func fail(userMessage, logMessage string, args ...interface{}) {
fmt.Fprintln(os.Stderr, "Gogs:", userMessage)
if len(logMessage) > 0 {
if !setting.ProdMode {
fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
}
log.Fatal(3, logMessage, args...)
}
os.Exit(1)
}
func setup(c *cli.Context, logPath string, connectDB bool) {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
} else if c.GlobalIsSet("config") {
setting.CustomConf = c.GlobalString("config")
}
setting.NewContext()
level := log.TRACE
if setting.ProdMode {
level = log.ERROR
}
log.New(log.FILE, log.FileConfig{
Level: level,
Filename: filepath.Join(setting.LogRootPath, logPath),
FileRotationConfig: log.FileRotationConfig{
Rotate: true,
Daily: true,
MaxDays: 3,
},
})
log.Delete(log.CONSOLE) // Remove primary logger
if !connectDB {
return
}
models.LoadConfigs()
if setting.UseSQLite3 {
workDir, _ := setting.WorkDir()
os.Chdir(workDir)
}
if err := models.SetEngine(); err != nil {
fail("Internal error", "SetEngine: %v", err)
}
}
func parseSSHCmd(cmd string) (string, string) {
ss := strings.SplitN(cmd, " ", 2)
if len(ss) != 2 {
return "", ""
}
return ss[0], strings.Replace(ss[1], "'/", "'", 1)
}
func checkDeployKey(key *models.PublicKey, repo *models.Repository) {
// Check if this deploy key belongs to current repository.
if !models.HasDeployKey(key.ID, repo.ID) {
fail("Key access denied", "Deploy key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID)
}
// Update deploy key activity.
deployKey, err := models.GetDeployKeyByRepo(key.ID, repo.ID)
if err != nil {
fail("Internal error", "GetDeployKey: %v", err)
}
deployKey.Updated = time.Now()
if err = models.UpdateDeployKey(deployKey); err != nil {
fail("Internal error", "UpdateDeployKey: %v", err)
}
}
var (
allowedCommands = map[string]models.AccessMode{
"git-upload-pack": models.ACCESS_MODE_READ,
"git-upload-archive": models.ACCESS_MODE_READ,
"git-receive-pack": models.ACCESS_MODE_WRITE,
}
)
func runServ(c *cli.Context) error {
setup(c, "serv.log", true)
if setting.SSH.Disabled {
println("Gogs: SSH has been disabled")
return nil
}
if len(c.Args()) < 1 {
fail("Not enough arguments", "Not enough arguments")
}
sshCmd := os.Getenv("SSH_ORIGINAL_COMMAND")
if len(sshCmd) == 0 {
println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.")
println("If this is unexpected, please log in with password and setup Gogs under another user.")
return nil
}
verb, args := parseSSHCmd(sshCmd)
repoFullName := strings.ToLower(strings.Trim(args, "'"))
repoFields := strings.SplitN(repoFullName, "/", 2)
if len(repoFields) != 2 {
fail("Invalid repository path", "Invalid repository path: %v", args)
}
ownerName := strings.ToLower(repoFields[0])
repoName := strings.TrimSuffix(strings.ToLower(repoFields[1]), ".git")
repoName = strings.TrimSuffix(repoName, ".wiki")
owner, err := models.GetUserByName(ownerName)
if err != nil {
if errors.IsUserNotExist(err) {
fail("Repository owner does not exist", "Unregistered owner: %s", ownerName)
}
fail("Internal error", "Fail to get repository owner '%s': %v", ownerName, err)
}
repo, err := models.GetRepositoryByName(owner.ID, repoName)
if err != nil {
if errors.IsRepoNotExist(err) {
fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", owner.Name, repoName)
}
fail("Internal error", "Fail to get repository: %v", err)
}
repo.Owner = owner
requestMode, ok := allowedCommands[verb]
if !ok {
fail("Unknown git command", "Unknown git command '%s'", verb)
}
// Prohibit push to mirror repositories.
if requestMode > models.ACCESS_MODE_READ && repo.IsMirror {
fail("Mirror repository is read-only", "")
}
// Allow anonymous (user is nil) clone for public repositories.
var user *models.User
key, err := models.GetPublicKeyByID(com.StrTo(strings.TrimPrefix(c.Args()[0], "key-")).MustInt64())
if err != nil {
fail("Invalid key ID", "Invalid key ID '%s': %v", c.Args()[0], err)
}
if requestMode == models.ACCESS_MODE_WRITE || repo.IsPrivate {
// Check deploy key or user key.
if key.IsDeployKey() {
if key.Mode < requestMode {
fail("Key permission denied", "Cannot push with deployment key: %d", key.ID)
}
checkDeployKey(key, repo)
} else {
user, err = models.GetUserByKeyID(key.ID)
if err != nil {
fail("Internal error", "Fail to get user by key ID '%d': %v", key.ID, err)
}
mode, err := models.AccessLevel(user.ID, repo)
if err != nil {
fail("Internal error", "Fail to check access: %v", err)
}
if mode < requestMode {
clientMessage := _ACCESS_DENIED_MESSAGE
if mode >= models.ACCESS_MODE_READ {
clientMessage = "You do not have sufficient authorization for this action"
}
fail(clientMessage,
"User '%s' does not have level '%v' access to repository '%s'",
user.Name, requestMode, repoFullName)
}
}
} else {
setting.NewService()
// Check if the key can access to the repository in case of it is a deploy key (a deploy keys != user key).
// A deploy key doesn't represent a signed in user, so in a site with Service.RequireSignInView activated
// we should give read access only in repositories where this deploy key is in use. In other case, a server
// or system using an active deploy key can get read access to all the repositories in a Gogs service.
if key.IsDeployKey() && setting.Service.RequireSignInView {
checkDeployKey(key, repo)
}
}
// Update user key activity.
if key.ID > 0 {
key, err := models.GetPublicKeyByID(key.ID)
if err != nil {
fail("Internal error", "GetPublicKeyByID: %v", err)
}
key.Updated = time.Now()
if err = models.UpdatePublicKey(key); err != nil {
fail("Internal error", "UpdatePublicKey: %v", err)
}
}
// Special handle for Windows.
if setting.IsWindows {
verb = strings.Replace(verb, "-", " ", 1)
}
var gitCmd *exec.Cmd
verbs := strings.Split(verb, " ")
if len(verbs) == 2 {
gitCmd = exec.Command(verbs[0], verbs[1], repoFullName)
} else {
gitCmd = exec.Command(verb, repoFullName)
}
if requestMode == models.ACCESS_MODE_WRITE {
gitCmd.Env = append(os.Environ(), models.ComposeHookEnvs(models.ComposeHookEnvsOptions{
AuthUser: user,
OwnerName: owner.Name,
OwnerSalt: owner.Salt,
RepoID: repo.ID,
RepoName: repo.Name,
RepoPath: repo.RepoPath(),
})...)
}
gitCmd.Dir = setting.RepoRootPath
gitCmd.Stdout = os.Stdout
gitCmd.Stdin = os.Stdin
gitCmd.Stderr = os.Stderr
if err = gitCmd.Run(); err != nil {
fail("Internal error", "Fail to execute git command: %v", err)
}
return nil
}

View File

@@ -1,295 +0,0 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"crypto/tls"
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
"github.com/Unknwon/com"
"github.com/codegangsta/cli"
gouuid "github.com/satori/go.uuid"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/httplib"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting"
)
const (
_ACCESS_DENIED_MESSAGE = "Repository does not exist or you do not have access"
)
var CmdServ = cli.Command{
Name: "serv",
Usage: "This command should only be called by SSH shell",
Description: `Serv provide access auth for repositories`,
Action: runServ,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
func setup(logPath string) {
setting.NewContext()
log.NewGitLogger(filepath.Join(setting.LogRootPath, logPath))
models.LoadConfigs()
if setting.UseSQLite3 || setting.UseTiDB {
workDir, _ := setting.WorkDir()
os.Chdir(workDir)
}
models.SetEngine()
}
func parseCmd(cmd string) (string, string) {
ss := strings.SplitN(cmd, " ", 2)
if len(ss) != 2 {
return "", ""
}
return ss[0], strings.Replace(ss[1], "'/", "'", 1)
}
var (
allowedCommands = map[string]models.AccessMode{
"git-upload-pack": models.ACCESS_MODE_READ,
"git-upload-archive": models.ACCESS_MODE_READ,
"git-receive-pack": models.ACCESS_MODE_WRITE,
}
)
func fail(userMessage, logMessage string, args ...interface{}) {
fmt.Fprintln(os.Stderr, "Gogs:", userMessage)
if len(logMessage) > 0 {
if !setting.ProdMode {
fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
}
log.GitLogger.Fatal(3, logMessage, args...)
return
}
log.GitLogger.Close()
os.Exit(1)
}
func handleUpdateTask(uuid string, user, repoUser *models.User, reponame string, isWiki bool) {
task, err := models.GetUpdateTaskByUUID(uuid)
if err != nil {
if models.IsErrUpdateTaskNotExist(err) {
log.GitLogger.Trace("No update task is presented: %s", uuid)
return
}
log.GitLogger.Fatal(2, "GetUpdateTaskByUUID: %v", err)
} else if err = models.DeleteUpdateTaskByUUID(uuid); err != nil {
log.GitLogger.Fatal(2, "DeleteUpdateTaskByUUID: %v", err)
}
if isWiki {
return
}
if err = models.PushUpdate(models.PushUpdateOptions{
RefName: task.RefName,
OldCommitID: task.OldCommitID,
NewCommitID: task.NewCommitID,
PusherID: user.ID,
PusherName: user.Name,
RepoUserName: repoUser.Name,
RepoName: reponame,
}); err != nil {
log.GitLogger.Error(2, "Update: %v", err)
}
// Ask for running deliver hook and test pull request tasks.
reqURL := setting.LocalURL + repoUser.Name + "/" + reponame + "/tasks/trigger?branch=" +
strings.TrimPrefix(task.RefName, "refs/heads/") + "&secret=" + base.EncodeMD5(repoUser.Salt)
log.GitLogger.Trace("Trigger task: %s", reqURL)
resp, err := httplib.Head(reqURL).SetTLSClientConfig(&tls.Config{
InsecureSkipVerify: true,
}).Response()
if err == nil {
resp.Body.Close()
if resp.StatusCode/100 != 2 {
log.GitLogger.Error(2, "Fail to trigger task: not 2xx response code")
}
} else {
log.GitLogger.Error(2, "Fail to trigger task: %v", err)
}
}
func runServ(c *cli.Context) error {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setup("serv.log")
if setting.SSH.Disabled {
println("Gogs: SSH has been disabled")
return nil
}
if len(c.Args()) < 1 {
fail("Not enough arguments", "Not enough arguments")
}
cmd := os.Getenv("SSH_ORIGINAL_COMMAND")
if len(cmd) == 0 {
println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.")
println("If this is unexpected, please log in with password and setup Gogs under another user.")
return nil
}
verb, args := parseCmd(cmd)
repoPath := strings.ToLower(strings.Trim(args, "'"))
rr := strings.SplitN(repoPath, "/", 2)
if len(rr) != 2 {
fail("Invalid repository path", "Invalid repository path: %v", args)
}
username := strings.ToLower(rr[0])
reponame := strings.ToLower(strings.TrimSuffix(rr[1], ".git"))
isWiki := false
if strings.HasSuffix(reponame, ".wiki") {
isWiki = true
reponame = reponame[:len(reponame)-5]
}
repoUser, err := models.GetUserByName(username)
if err != nil {
if models.IsErrUserNotExist(err) {
fail("Repository owner does not exist", "Unregistered owner: %s", username)
}
fail("Internal error", "Failed to get repository owner (%s): %v", username, err)
}
repo, err := models.GetRepositoryByName(repoUser.ID, reponame)
if err != nil {
if models.IsErrRepoNotExist(err) {
fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, reponame)
}
fail("Internal error", "Failed to get repository: %v", err)
}
requestedMode, has := allowedCommands[verb]
if !has {
fail("Unknown git command", "Unknown git command %s", verb)
}
// Prohibit push to mirror repositories.
if requestedMode > models.ACCESS_MODE_READ && repo.IsMirror {
fail("mirror repository is read-only", "")
}
// Allow anonymous clone for public repositories.
var (
keyID int64
user *models.User
)
if requestedMode == models.ACCESS_MODE_WRITE || repo.IsPrivate {
keys := strings.Split(c.Args()[0], "-")
if len(keys) != 2 {
fail("Key ID format error", "Invalid key argument: %s", c.Args()[0])
}
key, err := models.GetPublicKeyByID(com.StrTo(keys[1]).MustInt64())
if err != nil {
fail("Invalid key ID", "Invalid key ID[%s]: %v", c.Args()[0], err)
}
keyID = key.ID
// Check deploy key or user key.
if key.Type == models.KEY_TYPE_DEPLOY {
if key.Mode < requestedMode {
fail("Key permission denied", "Cannot push with deployment key: %d", key.ID)
}
// Check if this deploy key belongs to current repository.
if !models.HasDeployKey(key.ID, repo.ID) {
fail("Key access denied", "Deploy key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID)
}
// Update deploy key activity.
deployKey, err := models.GetDeployKeyByRepo(key.ID, repo.ID)
if err != nil {
fail("Internal error", "GetDeployKey: %v", err)
}
deployKey.Updated = time.Now()
if err = models.UpdateDeployKey(deployKey); err != nil {
fail("Internal error", "UpdateDeployKey: %v", err)
}
} else {
user, err = models.GetUserByKeyID(key.ID)
if err != nil {
fail("internal error", "Failed to get user by key ID(%d): %v", keyID, err)
}
mode, err := models.AccessLevel(user, repo)
if err != nil {
fail("Internal error", "Fail to check access: %v", err)
} else if mode < requestedMode {
clientMessage := _ACCESS_DENIED_MESSAGE
if mode >= models.ACCESS_MODE_READ {
clientMessage = "You do not have sufficient authorization for this action"
}
fail(clientMessage,
"User %s does not have level %v access to repository %s",
user.Name, requestedMode, repoPath)
}
}
}
uuid := gouuid.NewV4().String()
os.Setenv("uuid", uuid)
// Special handle for Windows.
if setting.IsWindows {
verb = strings.Replace(verb, "-", " ", 1)
}
var gitcmd *exec.Cmd
verbs := strings.Split(verb, " ")
if len(verbs) == 2 {
gitcmd = exec.Command(verbs[0], verbs[1], repoPath)
} else {
gitcmd = exec.Command(verb, repoPath)
}
gitcmd.Dir = setting.RepoRootPath
gitcmd.Stdout = os.Stdout
gitcmd.Stdin = os.Stdin
gitcmd.Stderr = os.Stderr
if err = gitcmd.Run(); err != nil {
fail("Internal error", "Failed to execute git command: %v", err)
}
if requestedMode == models.ACCESS_MODE_WRITE {
handleUpdateTask(uuid, user, repoUser, reponame, isWiki)
}
// Update user key activity.
if keyID > 0 {
key, err := models.GetPublicKeyByID(keyID)
if err != nil {
fail("Internal error", "GetPublicKeyById: %v", err)
}
key.Updated = time.Now()
if err = models.UpdatePublicKey(key); err != nil {
fail("Internal error", "UpdatePublicKey: %v", err)
}
}
return nil
}

View File

@@ -1,58 +0,0 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package cmd
import (
"os"
"github.com/codegangsta/cli"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting"
)
var CmdUpdate = cli.Command{
Name: "update",
Usage: "This command should only be called by Git hook",
Description: `Update get pushed info and insert into database`,
Action: runUpdate,
Flags: []cli.Flag{
stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
},
}
func runUpdate(c *cli.Context) error {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
setup("update.log")
if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
log.GitLogger.Trace("SSH_ORIGINAL_COMMAND is empty")
return nil
}
args := c.Args()
if len(args) != 3 {
log.GitLogger.Fatal(2, "Arguments received are not equal to three")
} else if len(args[0]) == 0 {
log.GitLogger.Fatal(2, "First argument 'refName' is empty, shouldn't use")
}
task := models.UpdateTask{
UUID: os.Getenv("uuid"),
RefName: args[0],
OldCommitID: args[1],
NewCommitID: args[2],
}
if err := models.AddUpdateTask(&task); err != nil {
log.GitLogger.Fatal(2, "AddUpdateTask: %v", err)
}
return nil
}

View File

@@ -8,13 +8,14 @@ import (
"crypto/tls"
"fmt"
"io/ioutil"
"net"
"net/http"
"net/http/fcgi"
"os"
"path"
"strings"
"github.com/codegangsta/cli"
"github.com/Unknwon/com"
"github.com/go-macaron/binding"
"github.com/go-macaron/cache"
"github.com/go-macaron/captcha"
@@ -23,33 +24,31 @@ import (
"github.com/go-macaron/i18n"
"github.com/go-macaron/session"
"github.com/go-macaron/toolbox"
"github.com/go-xorm/xorm"
"github.com/mcuadros/go-version"
"gopkg.in/ini.v1"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/urfave/cli"
log "gopkg.in/clog.v1"
"gopkg.in/macaron.v1"
"github.com/gogits/git-module"
"github.com/gogits/go-gogs-client"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/modules/bindata"
"github.com/gogits/gogs/modules/context"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting"
"github.com/gogits/gogs/modules/template"
"github.com/gogits/gogs/routers"
"github.com/gogits/gogs/routers/admin"
apiv1 "github.com/gogits/gogs/routers/api/v1"
"github.com/gogits/gogs/routers/dev"
"github.com/gogits/gogs/routers/org"
"github.com/gogits/gogs/routers/repo"
"github.com/gogits/gogs/routers/user"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/pkg/bindata"
"github.com/gogs/gogs/pkg/context"
"github.com/gogs/gogs/pkg/form"
"github.com/gogs/gogs/pkg/mailer"
"github.com/gogs/gogs/pkg/setting"
"github.com/gogs/gogs/pkg/template"
"github.com/gogs/gogs/routes"
"github.com/gogs/gogs/routes/admin"
apiv1 "github.com/gogs/gogs/routes/api/v1"
"github.com/gogs/gogs/routes/dev"
"github.com/gogs/gogs/routes/org"
"github.com/gogs/gogs/routes/repo"
"github.com/gogs/gogs/routes/user"
)
var CmdWeb = cli.Command{
var Web = cli.Command{
Name: "web",
Usage: "Start Gogs web server",
Usage: "Start web server",
Description: `Gogs web server is the only thing you need to run,
and it takes care of all the other things for you`,
Action: runWeb,
@@ -59,43 +58,19 @@ and it takes care of all the other things for you`,
},
}
type VerChecker struct {
ImportPath string
Version func() string
Expected string
}
// checkVersion checks if binary matches the version of templates files.
func checkVersion() {
// Templates.
data, err := ioutil.ReadFile(setting.StaticRootPath + "/templates/.VERSION")
if err != nil {
log.Fatal(4, "Fail to read 'templates/.VERSION': %v", err)
log.Fatal(2, "Fail to read 'templates/.VERSION': %v", err)
}
if string(data) != setting.AppVer {
log.Fatal(4, "Binary and template file version does not match, did you forget to recompile?")
}
// Check dependency version.
checkers := []VerChecker{
{"github.com/go-xorm/xorm", func() string { return xorm.Version }, "0.5.5"},
{"github.com/go-macaron/binding", binding.Version, "0.3.2"},
{"github.com/go-macaron/cache", cache.Version, "0.1.2"},
{"github.com/go-macaron/csrf", csrf.Version, "0.1.0"},
{"github.com/go-macaron/i18n", i18n.Version, "0.3.0"},
{"github.com/go-macaron/session", session.Version, "0.1.6"},
{"github.com/go-macaron/toolbox", toolbox.Version, "0.1.0"},
{"gopkg.in/ini.v1", ini.Version, "1.8.4"},
{"gopkg.in/macaron.v1", macaron.Version, "1.1.4"},
{"github.com/gogits/git-module", git.Version, "0.3.3"},
{"github.com/gogits/go-gogs-client", gogs.Version, "0.10.1"},
}
for _, c := range checkers {
if !version.Compare(c.Version(), c.Expected, ">=") {
log.Fatal(4, `Dependency outdated!
Package '%s' current version (%s) is below requirement (%s),
please use following command to update this package and recompile Gogs:
go get -u %[1]s`, c.ImportPath, c.Version(), c.Expected)
tplVer := strings.TrimSpace(string(data))
if tplVer != setting.AppVer {
if version.Compare(tplVer, setting.AppVer, ">") {
log.Fatal(2, "Binary version is lower than template file version, did you forget to recompile Gogs?")
} else {
log.Fatal(2, "Binary version is higher than template file version, did you forget to update template files?")
}
}
}
@@ -110,8 +85,8 @@ func newMacaron() *macaron.Macaron {
if setting.EnableGzip {
m.Use(gzip.Gziper())
}
if setting.Protocol == setting.FCGI {
m.SetURLPrefix(setting.AppSubUrl)
if setting.Protocol == setting.SCHEME_FCGI {
m.SetURLPrefix(setting.AppSubURL)
}
m.Use(macaron.Static(
path.Join(setting.StaticRootPath, "public"),
@@ -122,7 +97,14 @@ func newMacaron() *macaron.Macaron {
m.Use(macaron.Static(
setting.AvatarUploadPath,
macaron.StaticOptions{
Prefix: "avatars",
Prefix: models.USER_AVATAR_URL_PREFIX,
SkipLogging: setting.DisableRouterLog,
},
))
m.Use(macaron.Static(
setting.RepositoryAvatarUploadPath,
macaron.StaticOptions{
Prefix: models.REPO_AVATAR_URL_PREFIX,
SkipLogging: setting.DisableRouterLog,
},
))
@@ -134,7 +116,7 @@ func newMacaron() *macaron.Macaron {
Funcs: funcMap,
IndentJSON: macaron.Env != macaron.PROD,
}))
models.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"),
mailer.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"),
path.Join(setting.CustomPath, "templates/mail"), funcMap)
localeNames, err := bindata.AssetDir("conf/locale")
@@ -146,7 +128,7 @@ func newMacaron() *macaron.Macaron {
localFiles[name] = bindata.MustAsset("conf/locale/" + name)
}
m.Use(i18n.I18n(i18n.Options{
SubURL: setting.AppSubUrl,
SubURL: setting.AppSubURL,
Files: localFiles,
CustomDirectory: path.Join(setting.CustomPath, "conf/locale"),
Langs: setting.Langs,
@@ -157,10 +139,10 @@ func newMacaron() *macaron.Macaron {
m.Use(cache.Cacher(cache.Options{
Adapter: setting.CacheAdapter,
AdapterConfig: setting.CacheConn,
Interval: setting.CacheInternal,
Interval: setting.CacheInterval,
}))
m.Use(captcha.Captchaer(captcha.Options{
SubURL: setting.AppSubUrl,
SubURL: setting.AppSubURL,
}))
m.Use(session.Sessioner(setting.SessionConfig))
m.Use(csrf.Csrfer(csrf.Options{
@@ -168,7 +150,7 @@ func newMacaron() *macaron.Macaron {
Cookie: setting.CSRFCookieName,
SetCookie: true,
Header: "X-Csrf-Token",
CookiePath: setting.AppSubUrl,
CookiePath: setting.AppSubURL,
}))
m.Use(toolbox.Toolboxer(m, toolbox.Options{
HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
@@ -182,11 +164,11 @@ func newMacaron() *macaron.Macaron {
return m
}
func runWeb(ctx *cli.Context) error {
if ctx.IsSet("config") {
setting.CustomConf = ctx.String("config")
func runWeb(c *cli.Context) error {
if c.IsSet("config") {
setting.CustomConf = c.String("config")
}
routers.GlobalInit()
routes.GlobalInit()
checkVersion()
m := newMacaron()
@@ -198,76 +180,100 @@ func runWeb(ctx *cli.Context) error {
bindIgnErr := binding.BindIgnErr
m.SetAutoHead(true)
// FIXME: not all routes need go through same middlewares.
// Especially some AJAX requests, we can reduce middleware number to improve performance.
// Routers.
m.Get("/", ignSignIn, routers.Home)
m.Get("/", ignSignIn, routes.Home)
m.Group("/explore", func() {
m.Get("", func(ctx *context.Context) {
ctx.Redirect(setting.AppSubUrl + "/explore/repos")
m.Get("", func(c *context.Context) {
c.Redirect(setting.AppSubURL + "/explore/repos")
})
m.Get("/repos", routers.ExploreRepos)
m.Get("/users", routers.ExploreUsers)
m.Get("/repos", routes.ExploreRepos)
m.Get("/users", routes.ExploreUsers)
m.Get("/organizations", routes.ExploreOrganizations)
}, ignSignIn)
m.Combo("/install", routers.InstallInit).Get(routers.Install).
Post(bindIgnErr(auth.InstallForm{}), routers.InstallPost)
m.Combo("/install", routes.InstallInit).Get(routes.Install).
Post(bindIgnErr(form.Install{}), routes.InstallPost)
m.Get("/^:type(issues|pulls)$", reqSignIn, user.Issues)
// ***** START: User *****
m.Group("/user", func() {
m.Get("/login", user.SignIn)
m.Post("/login", bindIgnErr(auth.SignInForm{}), user.SignInPost)
m.Group("/login", func() {
m.Combo("").Get(user.Login).
Post(bindIgnErr(form.SignIn{}), user.LoginPost)
m.Combo("/two_factor").Get(user.LoginTwoFactor).Post(user.LoginTwoFactorPost)
m.Combo("/two_factor_recovery_code").Get(user.LoginTwoFactorRecoveryCode).Post(user.LoginTwoFactorRecoveryCodePost)
})
m.Get("/sign_up", user.SignUp)
m.Post("/sign_up", bindIgnErr(auth.RegisterForm{}), user.SignUpPost)
m.Post("/sign_up", bindIgnErr(form.Register{}), user.SignUpPost)
m.Get("/reset_password", user.ResetPasswd)
m.Post("/reset_password", user.ResetPasswdPost)
}, reqSignOut)
m.Group("/user/settings", func() {
m.Get("", user.Settings)
m.Post("", bindIgnErr(auth.UpdateProfileForm{}), user.SettingsPost)
m.Post("/avatar", binding.MultipartForm(auth.UploadAvatarForm{}), user.SettingsAvatar)
m.Post("", bindIgnErr(form.UpdateProfile{}), user.SettingsPost)
m.Combo("/avatar").Get(user.SettingsAvatar).
Post(binding.MultipartForm(form.Avatar{}), user.SettingsAvatarPost)
m.Post("/avatar/delete", user.SettingsDeleteAvatar)
m.Combo("/email").Get(user.SettingsEmails).
Post(bindIgnErr(auth.AddEmailForm{}), user.SettingsEmailPost)
Post(bindIgnErr(form.AddEmail{}), user.SettingsEmailPost)
m.Post("/email/delete", user.DeleteEmail)
m.Get("/password", user.SettingsPassword)
m.Post("/password", bindIgnErr(auth.ChangePasswordForm{}), user.SettingsPasswordPost)
m.Post("/password", bindIgnErr(form.ChangePassword{}), user.SettingsPasswordPost)
m.Combo("/ssh").Get(user.SettingsSSHKeys).
Post(bindIgnErr(auth.AddSSHKeyForm{}), user.SettingsSSHKeysPost)
Post(bindIgnErr(form.AddSSHKey{}), user.SettingsSSHKeysPost)
m.Post("/ssh/delete", user.DeleteSSHKey)
m.Group("/security", func() {
m.Get("", user.SettingsSecurity)
m.Combo("/two_factor_enable").Get(user.SettingsTwoFactorEnable).
Post(user.SettingsTwoFactorEnablePost)
m.Combo("/two_factor_recovery_codes").Get(user.SettingsTwoFactorRecoveryCodes).
Post(user.SettingsTwoFactorRecoveryCodesPost)
m.Post("/two_factor_disable", user.SettingsTwoFactorDisable)
})
m.Group("/repositories", func() {
m.Get("", user.SettingsRepos)
m.Post("/leave", user.SettingsLeaveRepo)
})
m.Group("/organizations", func() {
m.Get("", user.SettingsOrganizations)
m.Post("/leave", user.SettingsLeaveOrganization)
})
m.Combo("/applications").Get(user.SettingsApplications).
Post(bindIgnErr(auth.NewAccessTokenForm{}), user.SettingsApplicationsPost)
Post(bindIgnErr(form.NewAccessToken{}), user.SettingsApplicationsPost)
m.Post("/applications/delete", user.SettingsDeleteApplication)
m.Route("/delete", "GET,POST", user.SettingsDelete)
}, reqSignIn, func(ctx *context.Context) {
ctx.Data["PageIsUserSettings"] = true
}, reqSignIn, func(c *context.Context) {
c.Data["PageIsUserSettings"] = true
})
m.Group("/user", func() {
// r.Get("/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds)
m.Any("/activate", user.Activate)
m.Any("/activate_email", user.ActivateEmail)
m.Get("/email2user", user.Email2User)
m.Get("/forget_password", user.ForgotPasswd)
m.Post("/forget_password", user.ForgotPasswdPost)
m.Get("/logout", user.SignOut)
m.Post("/logout", user.SignOut)
})
// ***** END: User *****
adminReq := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
reqAdmin := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
// ***** START: Admin *****
m.Group("/admin", func() {
m.Get("", adminReq, admin.Dashboard)
m.Get("", admin.Dashboard)
m.Get("/config", admin.Config)
m.Post("/config/test_mail", admin.SendTestMail)
m.Get("/monitor", admin.Monitor)
m.Group("/users", func() {
m.Get("", admin.Users)
m.Combo("/new").Get(admin.NewUser).Post(bindIgnErr(auth.AdminCrateUserForm{}), admin.NewUserPost)
m.Combo("/:userid").Get(admin.EditUser).Post(bindIgnErr(auth.AdminEditUserForm{}), admin.EditUserPost)
m.Combo("/new").Get(admin.NewUser).Post(bindIgnErr(form.AdminCrateUser{}), admin.NewUserPost)
m.Combo("/:userid").Get(admin.EditUser).Post(bindIgnErr(form.AdminEditUser{}), admin.EditUserPost)
m.Post("/:userid/delete", admin.DeleteUser)
})
@@ -282,9 +288,9 @@ func runWeb(ctx *cli.Context) error {
m.Group("/auths", func() {
m.Get("", admin.Authentications)
m.Combo("/new").Get(admin.NewAuthSource).Post(bindIgnErr(auth.AuthenticationForm{}), admin.NewAuthSourcePost)
m.Combo("/new").Get(admin.NewAuthSource).Post(bindIgnErr(form.Authentication{}), admin.NewAuthSourcePost)
m.Combo("/:authid").Get(admin.EditAuthSource).
Post(bindIgnErr(auth.AuthenticationForm{}), admin.EditAuthSourcePost)
Post(bindIgnErr(form.Authentication{}), admin.EditAuthSourcePost)
m.Post("/:authid/delete", admin.DeleteAuthSource)
})
@@ -293,7 +299,7 @@ func runWeb(ctx *cli.Context) error {
m.Post("/delete", admin.DeleteNotices)
m.Get("/empty", admin.EmptyNotices)
})
}, adminReq)
}, reqAdmin)
// ***** END: Admin *****
m.Group("", func() {
@@ -302,40 +308,40 @@ func runWeb(ctx *cli.Context) error {
m.Get("/followers", user.Followers)
m.Get("/following", user.Following)
m.Get("/stars", user.Stars)
})
}, context.InjectParamsUser())
m.Get("/attachments/:uuid", func(ctx *context.Context) {
attach, err := models.GetAttachmentByUUID(ctx.Params(":uuid"))
m.Get("/attachments/:uuid", func(c *context.Context) {
attach, err := models.GetAttachmentByUUID(c.Params(":uuid"))
if err != nil {
if models.IsErrAttachmentNotExist(err) {
ctx.Error(404)
} else {
ctx.Handle(500, "GetAttachmentByUUID", err)
}
c.NotFoundOrServerError("GetAttachmentByUUID", models.IsErrAttachmentNotExist, err)
return
} else if !com.IsFile(attach.LocalPath()) {
c.NotFound()
return
}
fr, err := os.Open(attach.LocalPath())
if err != nil {
ctx.Handle(500, "Open", err)
c.Handle(500, "Open", err)
return
}
defer fr.Close()
ctx.Header().Set("Cache-Control", "public,max-age=86400")
// Fix #312. Attachments with , in their name are not handled correctly by Google Chrome.
// We must put the name in " manually.
if err = repo.ServeData(ctx, "\""+attach.Name+"\"", fr); err != nil {
ctx.Handle(500, "ServeData", err)
c.Header().Set("Cache-Control", "public,max-age=86400")
fmt.Println("attach.Name:", attach.Name)
c.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename="%s"`, attach.Name))
if err = repo.ServeData(c, attach.Name, fr); err != nil {
c.Handle(500, "ServeData", err)
return
}
})
m.Post("/issues/attachments", repo.UploadIssueAttachment)
m.Post("/releases/attachments", repo.UploadReleaseAttachment)
}, ignSignIn)
m.Group("/:username", func() {
m.Get("/action/:action", user.Action)
}, reqSignIn)
m.Post("/action/:action", user.Action)
}, reqSignIn, context.InjectParamsUser())
if macaron.Env == macaron.DEV {
m.Get("/template/*", dev.TemplatePreview)
@@ -346,8 +352,14 @@ func runWeb(ctx *cli.Context) error {
// ***** START: Organization *****
m.Group("/org", func() {
m.Get("/create", org.Create)
m.Post("/create", bindIgnErr(auth.CreateOrgForm{}), org.CreatePost)
m.Group("", func() {
m.Get("/create", org.Create)
m.Post("/create", bindIgnErr(form.CreateOrg{}), org.CreatePost)
}, func(c *context.Context) {
if !c.User.CanCreateOrganization() {
c.NotFound()
}
})
m.Group("/:org", func() {
m.Get("/dashboard", user.Dashboard)
@@ -367,26 +379,30 @@ func runWeb(ctx *cli.Context) error {
m.Group("/:org", func() {
m.Get("/teams/new", org.NewTeam)
m.Post("/teams/new", bindIgnErr(auth.CreateTeamForm{}), org.NewTeamPost)
m.Post("/teams/new", bindIgnErr(form.CreateTeam{}), org.NewTeamPost)
m.Get("/teams/:team/edit", org.EditTeam)
m.Post("/teams/:team/edit", bindIgnErr(auth.CreateTeamForm{}), org.EditTeamPost)
m.Post("/teams/:team/edit", bindIgnErr(form.CreateTeam{}), org.EditTeamPost)
m.Post("/teams/:team/delete", org.DeleteTeam)
m.Group("/settings", func() {
m.Combo("").Get(org.Settings).
Post(bindIgnErr(auth.UpdateOrgSettingForm{}), org.SettingsPost)
m.Post("/avatar", binding.MultipartForm(auth.UploadAvatarForm{}), org.SettingsAvatar)
Post(bindIgnErr(form.UpdateOrgSetting{}), org.SettingsPost)
m.Post("/avatar", binding.MultipartForm(form.Avatar{}), org.SettingsAvatar)
m.Post("/avatar/delete", org.SettingsDeleteAvatar)
m.Group("/hooks", func() {
m.Get("", org.Webhooks)
m.Post("/delete", org.DeleteWebhook)
m.Get("/:type/new", repo.WebhooksNew)
m.Post("/gogs/new", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksNewPost)
m.Post("/slack/new", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksNewPost)
m.Post("/gogs/new", bindIgnErr(form.NewWebhook{}), repo.WebHooksNewPost)
m.Post("/slack/new", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksNewPost)
m.Post("/discord/new", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksNewPost)
m.Post("/dingtalk/new", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksNewPost)
m.Get("/:id", repo.WebHooksEdit)
m.Post("/gogs/:id", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksEditPost)
m.Post("/slack/:id", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksEditPost)
m.Post("/gogs/:id", bindIgnErr(form.NewWebhook{}), repo.WebHooksEditPost)
m.Post("/slack/:id", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksEditPost)
m.Post("/discord/:id", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksEditPost)
m.Post("/dingtalk/:id", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksEditPost)
})
m.Route("/delete", "GET,POST", org.SettingsDelete)
@@ -400,125 +416,204 @@ func runWeb(ctx *cli.Context) error {
// ***** START: Repository *****
m.Group("/repo", func() {
m.Get("/create", repo.Create)
m.Post("/create", bindIgnErr(auth.CreateRepoForm{}), repo.CreatePost)
m.Post("/create", bindIgnErr(form.CreateRepo{}), repo.CreatePost)
m.Get("/migrate", repo.Migrate)
m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), repo.MigratePost)
m.Post("/migrate", bindIgnErr(form.MigrateRepo{}), repo.MigratePost)
m.Combo("/fork/:repoid").Get(repo.Fork).
Post(bindIgnErr(auth.CreateRepoForm{}), repo.ForkPost)
Post(bindIgnErr(form.CreateRepo{}), repo.ForkPost)
}, reqSignIn)
m.Group("/:username/:reponame", func() {
m.Group("/settings", func() {
m.Combo("").Get(repo.Settings).
Post(bindIgnErr(auth.RepoSettingForm{}), repo.SettingsPost)
Post(bindIgnErr(form.RepoSetting{}), repo.SettingsPost)
m.Combo("/avatar").Get(repo.SettingsAvatar).
Post(binding.MultipartForm(form.Avatar{}), repo.SettingsAvatarPost)
m.Post("/avatar/delete", repo.SettingsDeleteAvatar)
m.Group("/collaboration", func() {
m.Combo("").Get(repo.Collaboration).Post(repo.CollaborationPost)
m.Combo("").Get(repo.SettingsCollaboration).Post(repo.SettingsCollaborationPost)
m.Post("/access_mode", repo.ChangeCollaborationAccessMode)
m.Post("/delete", repo.DeleteCollaboration)
})
m.Group("/branches", func() {
m.Get("", repo.SettingsBranches)
m.Post("/default_branch", repo.UpdateDefaultBranch)
m.Combo("/*").Get(repo.SettingsProtectedBranch).
Post(bindIgnErr(form.ProtectBranch{}), repo.SettingsProtectedBranchPost)
}, func(c *context.Context) {
if c.Repo.Repository.IsMirror {
c.NotFound()
return
}
})
m.Group("/hooks", func() {
m.Get("", repo.Webhooks)
m.Post("/delete", repo.DeleteWebhook)
m.Get("/:type/new", repo.WebhooksNew)
m.Post("/gogs/new", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksNewPost)
m.Post("/slack/new", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksNewPost)
m.Get("/:id", repo.WebHooksEdit)
m.Post("/:id/test", repo.TestWebhook)
m.Post("/gogs/:id", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksEditPost)
m.Post("/slack/:id", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksEditPost)
m.Post("/gogs/new", bindIgnErr(form.NewWebhook{}), repo.WebHooksNewPost)
m.Post("/slack/new", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksNewPost)
m.Post("/discord/new", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksNewPost)
m.Post("/dingtalk/new", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksNewPost)
m.Post("/gogs/:id", bindIgnErr(form.NewWebhook{}), repo.WebHooksEditPost)
m.Post("/slack/:id", bindIgnErr(form.NewSlackHook{}), repo.SlackHooksEditPost)
m.Post("/discord/:id", bindIgnErr(form.NewDiscordHook{}), repo.DiscordHooksEditPost)
m.Post("/dingtalk/:id", bindIgnErr(form.NewDingtalkHook{}), repo.DingtalkHooksEditPost)
m.Group("/:id", func() {
m.Get("", repo.WebHooksEdit)
m.Post("/test", repo.TestWebhook)
m.Post("/redelivery", repo.RedeliveryWebhook)
})
m.Group("/git", func() {
m.Get("", repo.GitHooks)
m.Combo("/:name").Get(repo.GitHooksEdit).
Post(repo.GitHooksEditPost)
m.Get("", repo.SettingsGitHooks)
m.Combo("/:name").Get(repo.SettingsGitHooksEdit).
Post(repo.SettingsGitHooksEditPost)
}, context.GitHookService())
})
m.Group("/keys", func() {
m.Combo("").Get(repo.DeployKeys).
Post(bindIgnErr(auth.AddSSHKeyForm{}), repo.DeployKeysPost)
m.Combo("").Get(repo.SettingsDeployKeys).
Post(bindIgnErr(form.AddSSHKey{}), repo.SettingsDeployKeysPost)
m.Post("/delete", repo.DeleteDeployKey)
})
}, func(ctx *context.Context) {
ctx.Data["PageIsSettings"] = true
}, func(c *context.Context) {
c.Data["PageIsSettings"] = true
})
}, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.RepoRef())
m.Get("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action)
m.Post("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action)
m.Group("/:username/:reponame", func() {
m.Get("/issues", repo.RetrieveLabels, repo.Issues)
m.Get("/issues/:index", repo.ViewIssue)
m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
m.Get("/milestones", repo.Milestones)
}, ignSignIn, context.RepoAssignment(true))
m.Group("/:username/:reponame", func() {
// FIXME: should use different URLs but mostly same logic for comments of issue and pull reuqest.
// So they can apply their own enable/disable logic on routers.
m.Group("/issues", func() {
m.Combo("/new", repo.MustEnableIssues).Get(context.RepoRef(), repo.NewIssue).
Post(bindIgnErr(auth.CreateIssueForm{}), repo.NewIssuePost)
m.Combo("/:index/comments").Post(bindIgnErr(auth.CreateCommentForm{}), repo.NewComment)
m.Group("/:index", func() {
m.Post("/label", repo.UpdateIssueLabel)
m.Post("/milestone", repo.UpdateIssueMilestone)
m.Post("/assignee", repo.UpdateIssueAssignee)
}, reqRepoWriter)
Post(bindIgnErr(form.NewIssue{}), repo.NewIssuePost)
m.Group("/:index", func() {
m.Post("/title", repo.UpdateIssueTitle)
m.Post("/content", repo.UpdateIssueContent)
m.Combo("/comments").Post(bindIgnErr(form.CreateComment{}), repo.NewComment)
})
})
m.Group("/comments/:id", func() {
m.Post("", repo.UpdateCommentContent)
m.Post("/delete", repo.DeleteComment)
})
}, reqSignIn, context.RepoAssignment(true))
m.Group("/:username/:reponame", func() {
m.Group("/wiki", func() {
m.Get("/?:page", repo.Wiki)
m.Get("/_pages", repo.WikiPages)
}, repo.MustEnableWiki, context.RepoRef())
}, ignSignIn, context.RepoAssignment(false, true))
m.Group("/:username/:reponame", func() {
// FIXME: should use different URLs but mostly same logic for comments of issue and pull reuqest.
// So they can apply their own enable/disable logic on routers.
m.Group("/issues", func() {
m.Group("/:index", func() {
m.Post("/label", repo.UpdateIssueLabel)
m.Post("/milestone", repo.UpdateIssueMilestone)
m.Post("/assignee", repo.UpdateIssueAssignee)
}, reqRepoWriter)
})
m.Group("/labels", func() {
m.Post("/new", bindIgnErr(auth.CreateLabelForm{}), repo.NewLabel)
m.Post("/edit", bindIgnErr(auth.CreateLabelForm{}), repo.UpdateLabel)
m.Post("/new", bindIgnErr(form.CreateLabel{}), repo.NewLabel)
m.Post("/edit", bindIgnErr(form.CreateLabel{}), repo.UpdateLabel)
m.Post("/delete", repo.DeleteLabel)
m.Post("/initialize", bindIgnErr(form.InitializeLabels{}), repo.InitializeLabels)
}, reqRepoWriter, context.RepoRef())
m.Group("/milestones", func() {
m.Combo("/new").Get(repo.NewMilestone).
Post(bindIgnErr(auth.CreateMilestoneForm{}), repo.NewMilestonePost)
Post(bindIgnErr(form.CreateMilestone{}), repo.NewMilestonePost)
m.Get("/:id/edit", repo.EditMilestone)
m.Post("/:id/edit", bindIgnErr(auth.CreateMilestoneForm{}), repo.EditMilestonePost)
m.Post("/:id/edit", bindIgnErr(form.CreateMilestone{}), repo.EditMilestonePost)
m.Get("/:id/:action", repo.ChangeMilestonStatus)
m.Post("/delete", repo.DeleteMilestone)
}, reqRepoWriter, context.RepoRef())
m.Group("/releases", func() {
m.Get("/new", repo.NewRelease)
m.Post("/new", bindIgnErr(auth.NewReleaseForm{}), repo.NewReleasePost)
m.Get("/edit/:tagname", repo.EditRelease)
m.Post("/edit/:tagname", bindIgnErr(auth.EditReleaseForm{}), repo.EditReleasePost)
m.Post("/new", bindIgnErr(form.NewRelease{}), repo.NewReleasePost)
m.Post("/delete", repo.DeleteRelease)
}, reqRepoWriter, context.RepoRef())
m.Get("/edit/*", repo.EditRelease)
m.Post("/edit/*", bindIgnErr(form.EditRelease{}), repo.EditReleasePost)
}, repo.MustBeNotBare, reqRepoWriter, func(c *context.Context) {
c.Data["PageIsViewFiles"] = true
})
// FIXME: Should use c.Repo.PullRequest to unify template, currently we have inconsistent URL
// for PR in same repository. After select branch on the page, the URL contains redundant head user name.
// e.g. /org1/test-repo/compare/master...org1:develop
// which should be /org1/test-repo/compare/master...develop
m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
Post(bindIgnErr(auth.CreateIssueForm{}), repo.CompareAndPullRequestPost)
}, reqSignIn, context.RepoAssignment(), repo.MustBeNotBare)
Post(bindIgnErr(form.NewIssue{}), repo.CompareAndPullRequestPost)
m.Group("", func() {
m.Combo("/_edit/*").Get(repo.EditFile).
Post(bindIgnErr(form.EditRepoFile{}), repo.EditFilePost)
m.Combo("/_new/*").Get(repo.NewFile).
Post(bindIgnErr(form.EditRepoFile{}), repo.NewFilePost)
m.Post("/_preview/*", bindIgnErr(form.EditPreviewDiff{}), repo.DiffPreviewPost)
m.Combo("/_delete/*").Get(repo.DeleteFile).
Post(bindIgnErr(form.DeleteRepoFile{}), repo.DeleteFilePost)
m.Group("", func() {
m.Combo("/_upload/*").Get(repo.UploadFile).
Post(bindIgnErr(form.UploadRepoFile{}), repo.UploadFilePost)
m.Post("/upload-file", repo.UploadFileToServer)
m.Post("/upload-remove", bindIgnErr(form.RemoveUploadFile{}), repo.RemoveUploadFileFromServer)
}, func(c *context.Context) {
if !setting.Repository.Upload.Enabled {
c.NotFound()
return
}
})
}, repo.MustBeNotBare, reqRepoWriter, context.RepoRef(), func(c *context.Context) {
if !c.Repo.CanEnableEditor() {
c.NotFound()
return
}
c.Data["PageIsViewFiles"] = true
})
}, reqSignIn, context.RepoAssignment())
m.Group("/:username/:reponame", func() {
m.Group("", func() {
m.Get("/releases", repo.Releases)
m.Get("/^:type(issues|pulls)$", repo.RetrieveLabels, repo.Issues)
m.Get("/^:type(issues|pulls)$/:index", repo.ViewIssue)
m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
m.Get("/milestones", repo.Milestones)
m.Get("/releases", repo.MustBeNotBare, repo.Releases)
m.Get("/pulls", repo.RetrieveLabels, repo.Pulls)
m.Get("/pulls/:index", repo.ViewPull)
}, context.RepoRef())
// m.Get("/branches", repo.Branches)
m.Group("/branches", func() {
m.Get("", repo.Branches)
m.Get("/all", repo.AllBranches)
m.Post("/delete/*", reqSignIn, reqRepoWriter, repo.DeleteBranchPost)
}, repo.MustBeNotBare, func(c *context.Context) {
c.Data["PageIsViewFiles"] = true
})
m.Group("/wiki", func() {
m.Get("/?:page", repo.Wiki)
m.Get("/_pages", repo.WikiPages)
m.Group("", func() {
m.Combo("/_new").Get(repo.NewWiki).
Post(bindIgnErr(auth.NewWikiForm{}), repo.NewWikiPost)
Post(bindIgnErr(form.NewWiki{}), repo.NewWikiPost)
m.Combo("/:page/_edit").Get(repo.EditWiki).
Post(bindIgnErr(auth.NewWikiForm{}), repo.EditWikiPost)
Post(bindIgnErr(form.NewWiki{}), repo.EditWikiPost)
m.Post("/:page/delete", repo.DeleteWikiPagePost)
}, reqSignIn, reqRepoWriter)
}, repo.MustEnableWiki, context.RepoRef())
m.Get("/archive/*", repo.Download)
m.Get("/archive/*", repo.MustBeNotBare, repo.Download)
m.Group("/pulls/:index", func() {
m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
@@ -530,28 +625,34 @@ func runWeb(ctx *cli.Context) error {
m.Get("/src/*", repo.Home)
m.Get("/raw/*", repo.SingleDownload)
m.Get("/commits/*", repo.RefCommits)
m.Get("/commit/:sha([a-z0-9]{40})$", repo.Diff)
m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.Diff)
m.Get("/forks", repo.Forks)
}, context.RepoRef())
m.Get("/commit/:sha([a-z0-9]{40})\\.:ext(patch|diff)", repo.RawDiff)
}, repo.MustBeNotBare, context.RepoRef())
m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.MustBeNotBare, repo.RawDiff)
m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.CompareDiff)
}, ignSignIn, context.RepoAssignment(), repo.MustBeNotBare)
m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.MustBeNotBare, context.RepoRef(), repo.CompareDiff)
}, ignSignIn, context.RepoAssignment())
m.Group("/:username/:reponame", func() {
m.Get("/stars", repo.Stars)
m.Get("/watchers", repo.Watchers)
}, ignSignIn, context.RepoAssignment(), context.RepoRef())
m.Group("/:username", func() {
m.Group("/:reponame", func() {
m.Get("", repo.Home)
m.Get("\\.git$", repo.Home)
}, ignSignIn, context.RepoAssignment(true), context.RepoRef())
m.Get("/:reponame", ignSignIn, context.RepoAssignment(), context.RepoRef(), repo.Home)
m.Group("/:reponame", func() {
m.Any("/*", ignSignInAndCsrf, repo.HTTP)
m.Head("/tasks/trigger", repo.TriggerTask)
})
// Use the regexp to match the repository name
// Duplicated routes to enable different ways of accessing same set of URLs,
// e.g. with or without ".git" suffix.
m.Group("/:reponame([\\d\\w-_\\.]+\\.git$)", func() {
m.Get("", ignSignIn, context.RepoAssignment(), context.RepoRef(), repo.Home)
m.Options("/*", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
m.Route("/*", "GET,POST", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
})
m.Options("/:reponame/*", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
m.Route("/:reponame/*", "GET,POST", ignSignInAndCsrf, repo.HTTPContexter(), repo.HTTP)
})
// ***** END: Repository *****
@@ -559,41 +660,97 @@ func runWeb(ctx *cli.Context) error {
apiv1.RegisterRoutes(m)
}, ignSignIn)
m.Group("/-", func() {
if setting.Prometheus.Enabled {
m.Get("/metrics", func(c *context.Context) {
if !setting.Prometheus.EnableBasicAuth {
return
}
c.RequireBasicAuth(setting.Prometheus.BasicAuthUsername, setting.Prometheus.BasicAuthPassword)
}, promhttp.Handler())
}
})
// robots.txt
m.Get("/robots.txt", func(ctx *context.Context) {
m.Get("/robots.txt", func(c *context.Context) {
if setting.HasRobotsTxt {
ctx.ServeFileContent(path.Join(setting.CustomPath, "robots.txt"))
c.ServeFileContent(path.Join(setting.CustomPath, "robots.txt"))
} else {
ctx.Error(404)
c.NotFound()
}
})
// Not found handler.
m.NotFound(routers.NotFound)
m.NotFound(routes.NotFound)
// Flag for port number in case first time run conflict.
if ctx.IsSet("port") {
setting.AppUrl = strings.Replace(setting.AppUrl, setting.HttpPort, ctx.String("port"), 1)
setting.HttpPort = ctx.String("port")
if c.IsSet("port") {
setting.AppURL = strings.Replace(setting.AppURL, setting.HTTPPort, c.String("port"), 1)
setting.HTTPPort = c.String("port")
}
var listenAddr string
if setting.Protocol == setting.SCHEME_UNIX_SOCKET {
listenAddr = fmt.Sprintf("%s", setting.HTTPAddr)
} else {
listenAddr = fmt.Sprintf("%s:%s", setting.HTTPAddr, setting.HTTPPort)
}
log.Info("Listen: %v://%s%s", setting.Protocol, listenAddr, setting.AppSubURL)
var err error
listenAddr := fmt.Sprintf("%s:%s", setting.HttpAddr, setting.HttpPort)
log.Info("Listen: %v://%s%s", setting.Protocol, listenAddr, setting.AppSubUrl)
switch setting.Protocol {
case setting.HTTP:
case setting.SCHEME_HTTP:
err = http.ListenAndServe(listenAddr, m)
case setting.HTTPS:
server := &http.Server{Addr: listenAddr, TLSConfig: &tls.Config{MinVersion: tls.VersionTLS10}, Handler: m}
case setting.SCHEME_HTTPS:
var tlsMinVersion uint16
switch setting.TLSMinVersion {
case "SSL30":
tlsMinVersion = tls.VersionSSL30
case "TLS12":
tlsMinVersion = tls.VersionTLS12
case "TLS11":
tlsMinVersion = tls.VersionTLS11
case "TLS10":
fallthrough
default:
tlsMinVersion = tls.VersionTLS10
}
server := &http.Server{Addr: listenAddr, TLSConfig: &tls.Config{
MinVersion: tlsMinVersion,
CurvePreferences: []tls.CurveID{tls.CurveP521, tls.CurveP384, tls.CurveP256},
PreferServerCipherSuites: true,
CipherSuites: []uint16{
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, // Required for HTTP/2 support.
tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
tls.TLS_RSA_WITH_AES_256_CBC_SHA,
},
}, Handler: m}
err = server.ListenAndServeTLS(setting.CertFile, setting.KeyFile)
case setting.FCGI:
case setting.SCHEME_FCGI:
err = fcgi.Serve(nil, m)
case setting.SCHEME_UNIX_SOCKET:
os.Remove(listenAddr)
var listener *net.UnixListener
listener, err = net.ListenUnix("unix", &net.UnixAddr{listenAddr, "unix"})
if err != nil {
break // Handle error after switch
}
// FIXME: add proper implementation of signal capture on all protocols
// execute this on SIGTERM or SIGINT: listener.Close()
if err = os.Chmod(listenAddr, os.FileMode(setting.UnixSocketPermission)); err != nil {
log.Fatal(4, "Failed to set permission of unix socket: %v", err)
}
err = http.Serve(listener, m)
default:
log.Fatal(4, "Invalid protocol: %s", setting.Protocol)
}
if err != nil {
log.Fatal(4, "Fail to start server: %v", err)
log.Fatal(4, "Failed to start server: %v", err)
}
return nil

View File

@@ -1,3 +1,6 @@
Execute following command in ROOT directory when anything is changed:
$ make bindata
```
$ go get -u github.com/go-bindata/go-bindata/...
$ make bindata
```

View File

@@ -1,66 +1,22 @@
# NEVER EVER MODIFY THIS FILE
# PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE
# !!! NEVER EVER MODIFY THIS FILE !!!
# !!! PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE !!!
# !!! IF YOU ARE PACKAGING PROVIDER, PLEASE MAKE OWN COPY OF IT !!!
; App name that shows on every page title
APP_NAME = Gogs: Go Git Service
; Change it if you run locally
APP_NAME = Gogs
; The name of the system user that runs Gogs
RUN_USER = git
; Either "dev", "prod" or "test", default is "dev"
; Either "dev", "prod" or "test"
RUN_MODE = dev
[repository]
ROOT =
SCRIPT_TYPE = bash
; Default ANSI charset
ANSI_CHARSET =
; Force every new repository to be private
FORCE_PRIVATE = false
; Global maximum creation limit of repository per user, -1 means no limit
MAX_CREATION_LIMIT = -1
; Patch test queue length, make it as large as possible
PULL_REQUEST_QUEUE_LENGTH = 10000
[ui]
; Number of repositories that are showed in one explore page
EXPLORE_PAGING_NUM = 20
; Number of issues that are showed in one page
ISSUE_PAGING_NUM = 10
; Number of maximum commits showed in one activity feed
FEED_MAX_COMMIT_NUM = 5
; Value of `theme-color` meta tag, used by Android >= 5.0
; An invalid color like "none" or "disable" will have the default style
; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android
THEME_COLOR_META_TAG = `#ff5343`
; Max size of files to be displayed (defaults is 8MiB)
MAX_DISPLAY_FILE_SIZE = 8388608
[ui.admin]
; Number of users that are showed in one page
USER_PAGING_NUM = 50
; Number of repos that are showed in one page
REPO_PAGING_NUM = 50
; Number of notices that are showed in one page
NOTICE_PAGING_NUM = 25
; Number of organization that are showed in one page
ORG_PAGING_NUM = 50
[ui.user]
; Number of repos that are showed in one page
REPO_PAGING_NUM = 15
[markdown]
; Enable hard line break extension
ENABLE_HARD_LINE_BREAK = false
; List of custom URL-Schemes that are allowed as links when rendering Markdown
; for example git,magnet
CUSTOM_URL_SCHEMES =
[server]
PROTOCOL = http
DOMAIN = localhost
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
HTTP_ADDR = 0.0.0.0
HTTP_PORT = 3000
; Permission for unix socket
UNIX_SOCKET_PERMISSION = 666
; Local (DMZ) URL for Gogs workers (such as SSH update) accessing web service.
; In most cases you do not need to change the default value.
; Alter it only if your SSH server node is not the same as HTTP node.
@@ -69,14 +25,20 @@ LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
DISABLE_SSH = false
; Whether use builtin SSH server or not.
START_SSH_SERVER = false
; Domain name to be exposed in clone URL
; Domain name to be exposed in SSH clone URL
SSH_DOMAIN = %(DOMAIN)s
; Port number to be exposed in clone URL
; Port number to be exposed in SSH clone URL
SSH_PORT = 22
; Network interface builtin SSH server listens on
SSH_LISTEN_HOST = 0.0.0.0
; Port number builtin SSH server listens on
SSH_LISTEN_PORT = %(SSH_PORT)s
; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'.
SSH_ROOT_PATH =
; Indicate whether to rewrite authorized_keys at start, ignored when use builtin SSH server
REWRITE_AUTHORIZED_KEYS_AT_START = false
; Choose the ciphers to support for SSH connections
SSH_SERVER_CIPHERS = aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, arcfour256, arcfour128
; Directory to create temporary files when test publick key using ssh-keygen,
; default is system temporary directory.
SSH_KEY_TEST_PATH =
@@ -96,6 +58,9 @@ DISABLE_ROUTER_LOG = false
; $ openssl pkcs12 -in cert.pfx -out key.pem -nocerts -nodes
CERT_FILE = custom/https/cert.pem
KEY_FILE = custom/https/key.pem
; Allowed TLS version values: SSL30, TLS10, TLS11, TLS12
TLS_MIN_VERSION = TLS10
; Upper level of template and static file path
; default is the path where Gogs is executed
STATIC_ROOT_PATH =
@@ -106,6 +71,90 @@ ENABLE_GZIP = false
; Landing page for non-logged users, can be "home" or "explore"
LANDING_PAGE = home
[repository]
; Root path for storing repositories's data, default is "~/<username>/gogs-repositories"
ROOT =
; The script type server supports, sometimes could be "sh"
SCRIPT_TYPE = bash
; Default ANSI charset for an unrecognized charset
ANSI_CHARSET =
; Force every new repository to be private
FORCE_PRIVATE = false
; Global maximum creation limit of repository per user, -1 means no limit
MAX_CREATION_LIMIT = -1
; Mirror sync queue length, increase if mirror syncing starts hanging
MIRROR_QUEUE_LENGTH = 1000
; Patch test queue length, increase if pull request patch testing starts hanging
PULL_REQUEST_QUEUE_LENGTH = 1000
; Preferred Licenses to place at the top of the list
; Name must match file name in conf/license or custom/conf/license
PREFERRED_LICENSES = Apache License 2.0,MIT License
; Disable ability to interact with repositories by HTTP protocol
DISABLE_HTTP_GIT = false
; Enable ability to migrate repository by local path
ENABLE_LOCAL_PATH_MIGRATION = false
; Concurrency is used to retrieve commits information. This variable define
; the maximum number of tasks that can be run at the same time. Usually, the
; value depend of how many CPUs (cores) you have. If the value is set to zero
; or under, Gogs will automatically detect the number of CPUs your system have
COMMITS_FETCH_CONCURRENCY = 0
; Enable render mode for raw file
ENABLE_RAW_FILE_RENDER_MODE = false
[repository.editor]
; List of file extensions that should have line wraps in the CodeMirror editor.
; Separate extensions with a comma. To line wrap files without extension, just put a comma
LINE_WRAP_EXTENSIONS = .txt,.md,.markdown,.mdown,.mkd,
; Valid file modes that have a preview API associated with them, such as api/v1/markdown.
; Separate values by commas. Preview tab in edit mode won't show if the file extension doesn't match
PREVIEWABLE_FILE_MODES = markdown
[repository.upload]
; Enable repository file uploads.
ENABLED = true
; Path to temporarily store uploads (default path gets cleaned by Gogs in every start)
TEMP_PATH = data/tmp/uploads
; File types that are allowed to be uploaded, e.g. image/jpeg|image/png. Leave empty means allow any file type
ALLOWED_TYPES =
; Maximum size of each file in MB
FILE_MAX_SIZE = 3
; Maximum number of files per upload
MAX_FILES = 5
; Attachment settings for releases
[release.attachment]
; Whether attachments are enabled. Defaults to `true`
ENABLED = true
; Path for attachments. Defaults to `data/attachments`
PATH = data/attachments
; One or more allowed types, e.g. image/jpeg|image/png
ALLOWED_TYPES = */*
; Max size of each file. Defaults to 32MB
MAX_SIZE = 32
; Max number of files per upload. Defaults to 10
MAX_FILES = 10
[markdown]
; Enable hard line break extension
ENABLE_HARD_LINE_BREAK = false
; List of custom URL-Schemes that are allowed as links when rendering Markdown
; for example git,magnet
CUSTOM_URL_SCHEMES =
; List of file extensions that should be rendered/edited as Markdown
; Separate extensions with a comma. To render files w/o extension as markdown, just put a comma
FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
[smartypants]
ENABLED = false
FRACTIONS = true
DASHES = true
LATEX_DASHES = true
ANGLED_QUOTES = true
[http]
; Value for Access-Control-Allow-Origin header, default is not to present
ACCESS_CONTROL_ALLOW_ORIGIN =
; Define allowed algorithms and their minimum key length (use -1 to disable a type)
[ssh.minimum_key_sizes]
ED25519 = 256
@@ -114,7 +163,7 @@ RSA = 2048
DSA = 1024
[database]
; Either "mysql", "postgres" or "sqlite3", it's your choice
; Either "mysql", "postgres" or "sqlite3", you can connect to TiDB with MySQL protocol
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
@@ -126,6 +175,8 @@ SSL_MODE = disable
PATH = data/gogs.db
[admin]
; Disable regular (non-admin) users to create organizations
DISABLE_REGULAR_ORG_CREATION = false
[security]
INSTALL_LOCK = false
@@ -135,8 +186,12 @@ SECRET_KEY = !#@FDEWREWR&*(
LOGIN_REMEMBER_DAYS = 7
COOKIE_USERNAME = gogs_awesome
COOKIE_REMEMBER_NAME = gogs_incredible
COOKIE_SECURE = false
; Reverse proxy authentication header name of user name
REVERSE_PROXY_AUTHENTICATION_USER = X-WEBAUTH-USER
; Enable to set cookie to indicate user login status
ENABLE_LOGIN_STATUS_COOKIE = false
LOGIN_STATUS_COOKIE_NAME = login_status
[service]
ACTIVE_CODE_LIVE_MINUTES = 180
@@ -156,10 +211,12 @@ ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
ENABLE_CAPTCHA = true
[webhook]
; Hook task queue length
; Types are enabled for users to use, can be "gogs", "slack", "discord", "dingtalk"
TYPES = gogs, slack, discord, dingtalk
; Hook task queue length, increase if webhook shooting starts hanging
QUEUE_LENGTH = 1000
; Deliver timeout in seconds
DELIVER_TIMEOUT = 5
DELIVER_TIMEOUT = 15
; Allow insecure certification
SKIP_TLS_VERIFY = false
; Number of history information in each page
@@ -169,8 +226,8 @@ PAGING_NUM = 10
ENABLED = false
; Buffer length of channel, keep it as it is if you don't know what it is.
SEND_BUFFER_LEN = 100
; Name displayed in mail title
SUBJECT = %(APP_NAME)s
; Prefix prepended to the subject line
SUBJECT_PREFIX = `[%(APP_NAME)s] `
; Mail server
; Gmail: smtp.gmail.com:587
; QQ: smtp.qq.com:465
@@ -191,8 +248,8 @@ FROM =
; Mailer user name and password
USER =
PASSWD =
; Use text/html as alternative format of content
ENABLE_HTML_ALTERNATIVE = false
; Use text/plain as format of content
USE_PLAIN_TEXT = false
[cache]
; Either "memory", "redis", or "memcache", default is "memory"
@@ -214,33 +271,44 @@ PROVIDER = memory
; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
PROVIDER_CONFIG = data/sessions
; Session cookie name
COOKIE_NAME = i_like_gogits
COOKIE_NAME = i_like_gogs
; If you use session in https only, default is false
COOKIE_SECURE = false
; Enable set cookie, default is true
ENABLE_SET_COOKIE = true
; Session GC time interval, default is 86400
GC_INTERVAL_TIME = 86400
; Session GC time interval, default is 3600
GC_INTERVAL_TIME = 3600
; Session life time, default is 86400
SESSION_LIFE_TIME = 86400
; Cookie name for CSRF
CSRF_COOKIE_NAME = _csrf
[picture]
; Path to store user uploaded avatars
AVATAR_UPLOAD_PATH = data/avatars
; Path to store repository uploaded avatars
REPOSITORY_AVATAR_UPLOAD_PATH = data/repo-avatars
; Chinese users can choose "duoshuo"
; or a custom avatar source, like: http://cn.gravatar.com/avatar/
GRAVATAR_SOURCE = gravatar
; This value will be forced to be true in offline mode.
DISABLE_GRAVATAR = false
; Federated avatar lookup uses DNS to discover avatar associated
; with emails, see https://www.libravatar.org
; This value will be forced to be false in offline mode or Gravatar is disbaled.
ENABLE_FEDERATED_AVATAR = false
; Attachment settings for issues
[attachment]
; Whether attachments are enabled. Defaults to `true`
ENABLE = true
ENABLED = true
; Path for attachments. Defaults to `data/attachments`
PATH = data/attachments
; One or more allowed types, e.g. image/jpeg|image/png
ALLOWED_TYPES = image/jpeg|image/png
; Max size of each file. Defaults to 32MB
; Max size of each file. Defaults to 4MB
MAX_SIZE = 4
; Max number of files per upload. Defaults to 10
; Max number of files per upload. Defaults to 5
MAX_FILES = 5
[time]
@@ -249,66 +317,61 @@ MAX_FILES = 5
; For more information about the format see http://golang.org/pkg/time/#pkg-constants
FORMAT =
; General settings of loggers
[log]
ROOT_PATH =
; Either "console", "file", "conn", "smtp" or "database", default is "console"
; Can be "console" and "file", default is "console"
; Use comma to separate multiple modes, e.g. "console, file"
MODE = console
; Buffer length of channel, keep it as it is if you don't know what it is.
BUFFER_LEN = 10000
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
BUFFER_LEN = 100
; Either "Trace", "Info", "Warn", "Error", "Fatal", default is "Trace"
LEVEL = Trace
; For "console" mode only
[log.console]
LEVEL =
; Comment out to inherit
; LEVEL =
; For "file" mode only
[log.file]
LEVEL =
; This enables automated log rotate(switch of following options), default is true
; Comment out to inherit
; LEVEL =
; This enables automated log rotate (switch of following options)
LOG_ROTATE = true
; Max line number of single file, default is 1000000
MAX_LINES = 1000000
; Segment log daily
DAILY_ROTATE = true
; Max size shift of single file, default is 28 means 1 << 28, 256MB
MAX_SIZE_SHIFT = 28
; Segment log daily, default is true
DAILY_ROTATE = true
; Expired days of log file(delete after max days), default is 7
; Max line number of single file
MAX_LINES = 1000000
; Expired days of log file (delete after max days)
MAX_DAYS = 7
; For "conn" mode only
[log.conn]
LEVEL =
; Reconnect host for every single message, default is false
RECONNECT_ON_MSG = false
; Try to reconnect when connection is lost, default is false
RECONNECT = false
; Either "tcp", "unix" or "udp", default is "tcp"
PROTOCOL = tcp
; Host address
ADDR =
; For "slack" mode only
[log.slack]
; Comment out to inherit
; LEVEL =
; Webhook URL
URL =
; For "smtp" mode only
[log.smtp]
LEVEL =
; Name displayed in mail title, default is "Diagnostic message from server"
SUBJECT = Diagnostic message from server
; Mail server
HOST =
; Mailer user name and password
USER =
PASSWD =
; Receivers, can be one or more, e.g. ["1@example.com","2@example.com"]
RECEIVERS =
[log.discord]
; Comment out to inherit
; LEVEL =
; Webhook URL
URL =
; Username displayed in webhook
USERNAME = %(APP_NAME)s
; For "database" mode only
[log.database]
LEVEL =
; Either "mysql" or "postgres"
DRIVER =
; Based on xorm, e.g.: root:root@localhost/gogs?charset=utf8
CONN =
[log.xorm]
; Enable file rotation
ROTATE = true
; Rotate every day
ROTATE_DAILY = true
; Rotate once file size excesses x MB
MAX_SIZE = 100
; Maximum days to keep logger files
MAX_DAYS = 3
[cron]
; Enable running cron tasks periodically.
@@ -333,12 +396,21 @@ ARGS =
RUN_AT_START = true
SCHEDULE = @every 24h
; Cleanup repository archives
[cron.repo_archive_cleanup]
RUN_AT_START = false
SCHEDULE = @every 24h
; Time duration to check if archive should be cleaned
OLDER_THAN = 24h
[git]
; Max number of lines allowed of a single file in diff view.
; Disables highlight of added and removed changes
DISABLE_DIFF_HIGHLIGHT = false
; Max number of lines allowed of a single file in diff view
MAX_GIT_DIFF_LINES = 1000
; Max number of characters of a line allowed in diff view.
; Max number of characters of a line allowed in diff view
MAX_GIT_DIFF_LINE_CHARACTERS = 500
; Max number of files shown in diff view.
; Max number of files shown in diff view
MAX_GIT_DIFF_FILES = 100
; Arguments for command 'git gc', e.g. "--aggressive --auto"
; see more on http://git-scm.com/docs/git-gc/1.7.5
@@ -350,14 +422,57 @@ MIGRATE = 600
MIRROR = 300
CLONE = 300
PULL = 300
GC = 60
[mirror]
; Default interval in hours between each check
DEFAULT_INTERVAL = 8
[api]
; Max number of items will response in a page
MAX_RESPONSE_ITEMS = 50
[ui]
; Number of repositories that are showed in one explore page
EXPLORE_PAGING_NUM = 20
; Number of issues that are showed in one page
ISSUE_PAGING_NUM = 10
; Number of maximum commits showed in one activity feed
FEED_MAX_COMMIT_NUM = 5
; Value of "theme-color" meta tag, used by Android >= 5.0
; An invalid color like "none" or "disable" will have the default style
; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android
THEME_COLOR_META_TAG = `#ff5343`
; Max size in bytes of files to be displayed (default is 8MB)
MAX_DISPLAY_FILE_SIZE = 8388608
[ui.admin]
; Number of users that are showed in one page
USER_PAGING_NUM = 50
; Number of repos that are showed in one page
REPO_PAGING_NUM = 50
; Number of notices that are showed in one page
NOTICE_PAGING_NUM = 25
; Number of organization that are showed in one page
ORG_PAGING_NUM = 50
[ui.user]
; Number of repos that are showed in one page
REPO_PAGING_NUM = 15
; Number of news feeds that are showed in one page
NEWS_FEED_PAGING_NUM = 20
; Number of commits that are showed in one page
COMMITS_PAGING_NUM = 30
[prometheus]
ENABLED = true
ENABLE_BASIC_AUTH = false
BASIC_AUTH_USERNAME =
BASIC_AUTH_PASSWORD =
[i18n]
LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ
NAMES = English,简体中文,繁體中文(香港),繁體中文(台湾,Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano,Suomalainen,Türkçe,čeština
LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR,gl-ES,uk-UA,en-GB,hu-HU,sk-SK,id-ID,fa-IR,vi-VN
NAMES = English,简体中文,繁體中文(香港),繁體中文(臺灣,Deutsch,français,Nederlands,latviešu,русский,日本語,español,português do Brasil,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어,galego,українська,English (United Kingdom),Magyar,Slovenčina,Indonesian,Persian,Vietnamese
; Used for datetimepicker
[i18n.datelang]
@@ -379,6 +494,17 @@ it-IT = it
fi-FI = fi
tr-TR = tr
cs-CZ = cs-CZ
sr-SP = sr
sv-SE = sv
ko-KR = ko
gl-ES = gl
uk-UA = uk
en-GB = en-GB
hu-HU = hu
sk-SK = sk
id-ID = id
fa-IR = fa
vi-VN = vi
; Extension mapping to highlight class
; e.g. .toml=ini
@@ -386,5 +512,7 @@ cs-CZ = cs-CZ
[other]
SHOW_FOOTER_BRANDING = false
; Show version information about gogs and go in the footer
; Show version information about Gogs and Go in the footer
SHOW_FOOTER_VERSION = true
; Show time of template execution in the footer
SHOW_FOOTER_TEMPLATE_LOAD_TIME = true

View File

@@ -0,0 +1,29 @@
# This is an example of LDAP (BindDN) authentication
#
id = 101
type = ldap_bind_dn
name = LDAP BindDN
is_activated = true
[config]
host = mydomain.com
port = 636
# 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
security_protocol = 0
skip_verify = false
bind_dn =
bind_password =
user_base = ou=Users,dc=mydomain,dc=com
attribute_username =
attribute_name =
attribute_surname =
attribute_mail = mail
attributes_in_bind = false
filter = (&(objectClass=posixAccount)(cn=%s))
admin_filter =
group_enabled = false
group_dn =
group_filter =
group_member_uid =
user_uid =

View File

@@ -0,0 +1,30 @@
# This is an example of LDAP (simple auth) authentication
#
id = 102
type = ldap_simple_auth
name = LDAP Simple Auth
is_activated = true
[config]
host = mydomain.com
port = 636
# 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
security_protocol = 0
skip_verify = false
bind_dn =
bind_password =
user_base =
user_dn = cn=%s,ou=Users,dc=mydomain,dc=com
attribute_username =
attribute_name =
attribute_surname =
attribute_mail = mail
attributes_in_bind = false
filter = (&(objectClass=posixAccount)(cn=%s))
admin_filter =
group_enabled = false
group_dn =
group_filter =
group_member_uid =
user_uid =

View File

@@ -0,0 +1,10 @@
# This is an example of PAM authentication
#
id = 104
type = pam
name = System Auth
is_activated = true
[config]
service_name = system-auth

View File

@@ -0,0 +1,16 @@
# This is an example of SMTP authentication
#
id = 103
type = smtp
name = GMail
is_activated = true
[config]
# Either "PLAIN" or "LOGIN"
auth = PLAIN
host = smtp.gmail.com
port = 587
allowed_domains =
tls = true
skip_verify = false

63
conf/gitignore/PhpStorm vendored Normal file
View File

@@ -0,0 +1,63 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Ruby plugin and RubyMine
/.rakeTasks
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### PhpStorm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/sonarlint

63
conf/gitignore/WebStorm vendored Normal file
View File

@@ -0,0 +1,63 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Ruby plugin and RubyMine
/.rakeTasks
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### WebStorm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/sonarlint

View File

@@ -1,24 +1,25 @@
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

7
conf/label/Default Normal file
View File

@@ -0,0 +1,7 @@
#ee0701 bug
#cccccc duplicate
#84b6eb enhancement
#128a0c help wanted
#e6e6e6 invalid
#cc317c question
#ffffff wontfix

View File

@@ -7,22 +7,34 @@ Akihiro YAGASAKI <yaggytter AT momiage DOT com>
Aleksejs Grocevs <aleksejs AT grocevs DOT pro>
Aleksey Tarakin <hukendo AT yandex DOT ru>
Alexander Steinhöfer <kontakt AT lx-s DOT de>
Alexandre Espinosa Menor <aemenor DOT gmail DOT com>
Alexandre Magno <alexandre DOT mbm AT gmail DOT com>
Anders B. Hansen <anders AT birkoe DOT com>
András Schenkerik <moviesharkteam AT gmail DOT com>
Andrey Nering <andrey AT nering DOT com DOT br>
Andrey Paskal <apaskal AT gmail DOT com>
Andrey Solomatin <toadron AT yandex DOT ru>
Antoine GIRARD <sapk AT sapk DOT fr>
Arthur Aslanyan <arthur DOT e DOT aslanyan AT gmail DOT com>
Aurelien Darragon <aurelien DOT darragon AT gmail DOT com>
Barış Arda Yılmaz <ardayilmazgamer AT gmail DOT com>
Bo-Yi Wu <appleboy DOT tw AT gmail DOT com>
Breton Corentin <contact AT neodarz DOT net>
Camille Baronnet <gogs AT camillebaronnet DOT fr>
Changwoo Ryu <cwryu AT debian DOT org>
Christoph Kisfeld <christoph DOT kisfeld AT gmail DOT com>
Cysioland
Damaris Padieu <damizx AT hotmail DOT fr>
Daniel Speichert <daniel AT speichert DOT pl>
David Yzaguirre <dvdyzag AT gmail DOT com>
Denys Khomenko
Dmitriy Nogay <me AT catwhocode DOT ga>
Enrico Testori hypertesto AT gmail DOT com
Ezequiel Gonzalez Rial <gonrial AT gmail DOT com>
Farhan Naysee <wpmagic70 AT gmail DOT com>
Flávio Monteiro <flaviomonteiro2013 AT gmail DOT com>
Gabriel Dugny <gabriel DOT dugny AT gmail DOT com>
Ganesha <reekoheek AT gmail DOT com>
Gregor Santner <gdev AT live DOT de>
Halil Kaya <halil AT halilkaya DOT net>
Hamid Feizabadi <hamidfzm AT gmail DOT com>
@@ -30,32 +42,44 @@ Huimin Wang <wanghm2009 AT hotmail DOT co DOT jp>
ilko <kontact-mr.k AT outlook DOT com">
Ilya Makarov
Jamie Mansfield <dev AT jamierocks DOT uk>
Javier Ortiz Bultron <javier DOT ortiz DOT 78 AT gmail DOT com>
Jean THOMAS <contact AT tibounise DOT com>
John Behm <jxsl13 AT googlemail DOT com>
Jonas De Kegel <jonasgithub [AT] gmail [DOT] com>
Joubert RedRat <me+github AT redrat DOT com DOT br>
Juraj Bubniak <contact AT jbub DOT eu>
Lafriks <lafriks AT gmail DOT com>
Lauri Ojansivu <x AT xet7 DOT org>
Luc Stepniewski <luc AT stepniewski DOT fr>
Luca Bozzo <luca AT bozzo DOT it>
Luca Kröger <l DOT kroeger01 AT gmail DOT com>
Luc Stepniewski <luc AT stepniewski DOT fr>
Łukasz Jan Niemier <lukasz AT niemier DOT pl>
Marc Schiller <marc AT schiller DOT im>
Marvin Menzerath <github AT marvin-menzerath DOT de>
Michael Härtl <haertl DOT mike AT gmail DOT com>
Miguel de la Cruz <miguel AT mcrx DOT me>
Mikhail Burdin <xdshot9000 AT gmail DOT com>
Mohammad Gholami <gholami DOT mohammad DOT mgh AT gmail DOT com>
Morten Sørensen <klim8d AT gmail DOT com>
Muhammad Fawwaz Orabi <mfawwaz93 AT gmail DOT com>
Nakao Takamasa <at.mattenn AT gmail DOT com>
Natan Albuquerque <natanalbuquerque5 AT gmail DOT com>
Odilon Junior <odilon DOT junior93 AT gmail DOT com>
Oleksandr Yermakov <olexander DOT yermakov AT gmail DOT com>
Óscar García Amor <ogarcia AT connectical DOT com>
Pablo Saavedra <psaavedra AT igalia DOT com>
Pierre Prinetti >meatqrawldotnet<
Richard Bukovansky <richard DOT bukovansky @ gmail DOT com>
Robert Nuske <robert DOT nuske AT web DOT de>
Robin Hübner <profan AT prfn DOT se>
Rste Risafov <risafov AT lazy DOT com>
SeongJae Park <sj38 DOT park AT gmail DOT com>
Sergey Stepanov <sergystepanov AT gmail DOT com>
Thomas Fanninger <gogs DOT thomas AT fanninger DOT at>
Tilmann Bach <tilmann AT outlook DOT com>
Toni Villena Jiménez <tonivj5 AT gmail DOT com>
Vladimir Jigulin mogaika AT yandex DOT ru
Vladimir Vissoultchev <wqweto AT gmail DOT com>
Vongola <me AT vongola DOT tw>
YJSoft <yjsoft AT yjsoft DOT pe DOT kr>
Łukasz Jan Niemier <lukasz AT niemier DOT pl>
Pablo Saavedra <psaavedra AT igalia DOT com>
Oscar Quisbert <quisbert_karos AT outlook DOT com>

View File

@@ -58,9 +58,8 @@ db_name=Име на база данни
db_helper=Моля, използвайте INNODB engine с utf8_general_ci кодиране на знаци за MySQL.
ssl_mode=Режим SSL
path=Път
sqlite_helper=Файл на SQLite3 или TiDB база данни.<br>Моля използвайте абсолютен път до файл когато стартирате Gogs като услуга.
err_empty_db_path=Пътят до SQLite3 или TiDB база данни не може да е празен.
err_invalid_tidb_name=TiDB не позволява "." и "-" в името на базата данни.
sqlite_helper=Път към файл на SQLite3 база от данни. <br>Моля използвайте абсолютен път, когато стартирате gogs като услуга.
err_empty_db_path=Пътят към SQLite3 базата от данни не може да бъде празен.
no_admin_and_disable_registration=Невъзможно изключване на регистрациите без предварително да е създаден поне един административен профил.
err_empty_admin_password=Паролата на администратор не може да е празна.
@@ -75,12 +74,16 @@ domain=Домейн
domain_helper=Тази настройка влияе на URL адреса за клониране чрез SSH.
ssh_port=SSH порт
ssh_port_helper=Номер на порт на SSH сървъра. Оставете празно за да изключите достъп през SSH.
use_builtin_ssh_server=Използване на вграден SSH сървър
use_builtin_ssh_server_popup=Стартиране на вграден SSH сървър за Git операции, различен от системния SSH демон.
http_port=HTTP порт
http_port_helper=Порт, на който приложението ще слуша.
app_url=URL адрес на приложението
app_url_helper=Този настройка променя HTTP/HTTPS адреса за клониране, а понякога и адреса на ел. поща.
log_root_path=Път към журналите
log_root_path_helper=Директория в която се записват журналите.
enable_console_mode=Включване на конзолен режим
enable_console_mode_popup=Изписване на логовете в конзолата, в допълнение към файловият режим.
optional_title=Опционални настройки
email_title=Настройки на пощенска услуга
@@ -96,6 +99,8 @@ offline_mode=Включи офлайн режима
offline_mode_popup=Изключи CDN дори в продукционен режим, всички ресурсни файлове ще бъдат доставяни локално.
disable_gravatar=Изключи връзка с Gravatar
disable_gravatar_popup=Изключва Gravatar и външни източници, така че всички аватари трябва да са или качени от потребителите или да се ползват аватари по подразбиране.
federated_avatar_lookup=Използване на външни аватари
federated_avatar_lookup_popup=Позволява използване на външни аватари от услуги съвместими с libravatar.
disable_registration=Изключи саморегистрацията
disable_registration_popup=Изключи потребителската саморегистрация, само администратор може да създава профили.
enable_captcha=Включи Captcha
@@ -114,6 +119,8 @@ sqlite3_not_available=Вашата версия не поддържа SQLite3,
invalid_db_setting=Настройките на базата данни са некоректни: %v
invalid_repo_path=Основният път към хранилищата е невалиден: %v
run_user_not_match=Потребителският контекст на приложението не е на текущия потребител: %s -> %s
smtp_host_missing_port=Липсва порт в зададения SMTP адрес.
invalid_smtp_from=Невалидно поле От: %v
save_config_failed=Неуспешно запазване на конфигурация: %v
invalid_admin_setting=Настройките на профил на администратора са невалидни: %v
install_success=Добре дошли! Радваме се, че избрахте Gogs, и Ви пожелаваме приятна работа и сърдечни поздрави!
@@ -135,6 +142,7 @@ issues.in_your_repos=Във Вашите хранилища
[explore]
repos=Хранилища
users=Потребители
organizations=Организации
search=Търсене
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=Вече имате профил? Впишете се сег
social_register_hepler_msg=Вече имате профил? Свържете се сега!
disable_register_prompt=За съжаление създаването на нови регистрации е изключено. Обърнете се към администратора на сайта.
disable_register_mail=За съжаление потвърждението на регистрации е изключено.
auth_source=Authentication Source
local=Local
remember_me=Запомни ме
forgot_password=Забравена парола
forget_password=Забравена парола?
@@ -154,7 +164,6 @@ prohibit_login_desc=Вашият профил е със забрана за вл
resent_limit_prompt=За съжаление Вие съвсем наскоро изпратихте писмо за активация. Моля изчакайте 3 минути, след което опитайте отново.
has_unconfirmed_mail=Здравейте %s, имате непотвърден адрес на ел. поща (<b>%s</b>). Ако не сте получили писмо за потвърждение или имате нужда да се изпрати ново писмо, моля щракнете бутона по-долу.
resend_mail=Щракнете тук, за да се изпрати ново писмо за потвърждение
email_not_associate=Този адрес на ел. поща не е свързан с никой профил.
send_reset_mail=Щракнете тук, за да получите (отново) писмо за нулиране на паролата
reset_password=Нулиране на паролата
invalid_code=За съжаление Вашия код за потвърждение е изтекъл или е невалиден.
@@ -162,6 +171,14 @@ reset_password_helper=Щракнете тук, за да нулирате пар
password_too_short=Размерът на паролата не може да бъде по-малък от 6 знака.
non_local_account=Нелокални потребители не могат да сменят паролата си през Gogs.
login_two_factor=Двуфакторно удостоверяване
login_two_factor_passcode=Парола за удостоверяване
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Код за възстановяване
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Този код за възстановяване вече е бил използван или не е валиден.
[mail]
activate_account=Моля активирайте Вашия профил
activate_email=Провери адрес на ел. поща
@@ -187,9 +204,17 @@ TeamName=Име на екипа
AuthName=Име на удостоверението
AdminEmail=Ел. поща на администратора
NewBranchName=Име на нов клон
CommitSummary=Резюме на ревизия
CommitMessage=Текст на ревизия
CommitChoice=Избор на ревизия
TreeName=Път до файл
Content=Съдържание
require_error=` не може да бъде празен.`
alpha_dash_error=` трябва да e валидна буква, число или тире(-_).`
alpha_dash_dot_error=` трябва да e валидна буква, число, тире(-_) или точка.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error=` трябва да е с размер %s.`
min_size_error=` трябва да съдържа поне %s знака.`
max_size_error=` трябва да съдържа най-много %s знака.`
@@ -206,6 +231,7 @@ org_name_been_taken=Името на организацията вече се п
team_name_been_taken=Името на екипа вече се ползва.
email_been_used=Този адрес на ел. поща вече се ползва.
username_password_incorrect=Потребителското име или паролата не са верни.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Моля уверете се, че въведеното име на хранилище е вярно.
enterred_invalid_owner_name=Моля уверете се, че въведеното име на притежател е вярно.
enterred_invalid_password=Моля уверете се, че въведената парола е вярна.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Потребителското име '%s' не е
[settings]
profile=Профил
password=Парола
avatar=Аватар
ssh_keys=SSH ключове
social=Социални профили
applications=Приложения
security=Сигурност
repos=Хранилища
orgs=Организации
applications=Приложения
delete=Изтрий профил
uid=UID
public_profile=Публичен профил
profile_desc=Вашият адрес на ел. поща е публичен и ще бъде използван за всички свързани с профила Ви уведомления и всички уеб базирани операции, направени чрез сайта.
@@ -259,6 +286,8 @@ change_username_prompt=Този промяна ще засегне всички
continue=Продължи
cancel=Отказ
lookup_avatar_by_mail=Търсене на аватари по адрес на ел. поща
federated_avatar_lookup=Външно търсене на аватари
enable_custom_avatar=Разреши потребителски аватар
choose_new_avatar=Избор на нов аватар
update_avatar=Запази настройките на аватара
@@ -308,10 +337,31 @@ no_activity=Няма скорошна дейност
key_state_desc=Този ключ е използван през последните 7 дни
token_state_desc=Този API ключ е използван през последните 7 дни
manage_social=Управление на свързани профили в социалните мрежи
social_desc=Това е списък на свързани профили в социалните мрежи. Премахнете всички, които не разпознавате.
unbind=Освобождаване
unbind_success=Социалния профил е освободен.
two_factor=Two-factor Authentication
two_factor_status=Статус:
two_factor_on=Вкл.
two_factor_off=Изкл.
two_factor_enable=Активиране
two_factor_disable=Деактивиране
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=След това въведете паролата:
two_factor_verify=Потвърждаване
two_factor_invalid_passcode=Въведената парола е невалидна! Моля опитайте отново.
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Ново генериране на кодове за възстановяване
two_factor_regenerate_recovery_codes_error=Неуспешно генериране на кодове за възстановяване: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Управление на индивидуални API ключове за достъп
generate_new_token=Генериране на нов API ключ
@@ -325,6 +375,15 @@ access_token_deletion=Изтрий индивидуален API ключ за д
access_token_deletion_desc=При изтриване на този индивидуален API ключ за достъп ще се премахнат всички свързани права на приложението. Желаете ли да продължите?
delete_token_success=Индивидуалният API ключ за достъп е изтрит успешно! Не забравяйте да преконфигурирате приложението също.
orgs.none=Не сте член на никоя организация.
orgs.leave_title=Напусни организация
orgs.leave_desc=Ще загубите достъп до всички хранилища и екипи, след като напуснете организацията. Желаете ли да продължите?
repos.leave=Напускане
repos.leave_title=Напускане на хранилище
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=Вие успешно напуснахте хранилище "%s"!
delete_account=Изтриване на собствения профил
delete_prompt=Тази операция ще изтрие Вашия профил завинаги и тя <strong>НЕ МОЖЕ</strong> да бъде отменена в последствие!
confirm_delete_account=Потвърди изтриването
@@ -345,7 +404,7 @@ fork_from=Разклонение от
fork_visiblity_helper=Не може да променяте видимостта на разклонено хранилище.
repo_desc=Описание
repo_lang=Програмен език
repo_lang_helper=Изберете .gitignore файлове
repo_gitignore_helper=Избор на .gitignore шаблони
license=Лиценз
license_helper=Изберете лицензионен файл
readme=Readme
@@ -358,9 +417,12 @@ mirror_prune_desc=Премахва всички препратки за отда
mirror_interval=Интервал на отразяване (часове)
mirror_address=Адрес на огледало
mirror_address_desc=Моля включете потребител и парола в адреса ако са нужни.
mirror_last_synced=Последна синхр.
watchers=Наблюдаващи
stargazers=Харесващи
forks=Разклонения
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=Притежателят е достигнал настроения лимит от %d брой хранилища.
form.name_reserved=Името на хранилището '%s' е запазено.
@@ -371,14 +433,14 @@ migrate_type=Тип мигриране
migrate_type_helper=Това хранилище ще бъде <span class="text blue">огледало</span>
migrate_repo=Мигрирай хранилище
migrate.clone_address=Адрес за клониране
migrate.clone_address_desc=Това може да е HTTP/HTTPS/GIT адрес или локален път на сървъра.
migrate.clone_address_desc=Може да използвате HTTP/HTTPS/GIT адрес.
migrate.clone_address_desc_import_local=Можете да мигрирате хранилище от локален път на сървъра.
migrate.permission_denied=Недостатъчни права за импорт на локални хранилища.
migrate.invalid_local_path=Невалиден път - не съществува или не е директория.
migrate.failed=Грешка при миграция: %v
mirror_from=огледало от
forked_from=разклонено от
fork_from_self=Не можете да разклоните хранилище което си е Ваше!
copy_link=Копирай
copy_link_success=Копирано!
copy_link_error=Натиснете ⌘-C или Ctrl-C за да копирате
@@ -394,9 +456,9 @@ quick_guide=Бърз справочник
clone_this_repo=Клонирай хранилището
create_new_repo_command=Създай ново хранилище чрез командния ред
push_exist_repo=Предай съществуващо хранилище през командния ред
repo_is_empty=Това хранилище е празно. Моля проверете по-късно пак!
bare_message=Това хранилище все още не съдържа нищо.
code=Код
files=Файлове
branch=Клон
tree=ИН на ревизия
filter_branch_and_tag=Филтър по маркер или клон
@@ -407,13 +469,63 @@ pulls=Заявки за сливане
labels=Етикети
milestones=Етапи
commits=Ревизии
git_branches=Клонове
releases=Версии
file_raw=Директен файл
file_history=История
file_view_raw=Виж директен файл
file_permalink=Постоянна връзка
file_too_large=Този файл е твърде голям за да се визуализира
video_not_supported_in_browser=Вашият браузър не поддържа HTML5 видео тагове.
branches.overview=Преглед
branches.active_branches=Активни клонове
branches.stale_branches=Застинали клонове
branches.all=Всички клонове
branches.updated_by=Актуализирани %[1]s от %[2]s
branches.change_default_branch=Промяна на клон по подразбиране
editor.new_file=Нов файл
editor.upload_file=Качи файл
editor.edit_file=Редактирай файл
editor.preview_changes=Преглед на промени
editor.cannot_edit_non_text_files=Невъзможна редакция на нетекстови файлове
editor.edit_this_file=Редактирай този файл
editor.must_be_on_a_branch=Трябва да сте избрали клон за да предложите промени в този файл
editor.fork_before_edit=Първо трябва да разклоните хранилището преди да редактирате файл
editor.delete_this_file=Изтрий този файл
editor.must_have_write_access=Трябва да имате права за писане за да предложите промени в този файл
editor.file_delete_success=Файл '%s' е изтрит успешно!
editor.name_your_file=Име на файл...
editor.filename_help=За да добавите директория, въведете името ѝ и натиснете /. За да я премахнете, позиционирайте се в началото на полето и натиснете BackSpace.
editor.or=или
editor.cancel_lower=отказ
editor.commit_changes=Промени в ревизия
editor.add_tmpl=Добави '%s/<filename>'
editor.add=Добави '%s'
editor.update=Модифицирай '%s'
editor.delete=Изтрий '%s'
editor.commit_message_desc=Добавяне на опционално разширено описание...
editor.commit_directly_to_this_branch=Запази ревизия директно в клон <strong class="branch-name">%s</strong>.
editor.create_new_branch=Създай <strong>нов клон</strong> от тази ревизия и изпрати заявки за сливане.
editor.new_branch_name_desc=Име на нов клон...
editor.cancel=Отказ
editor.filename_cannot_be_empty=Името не може да бъде празно.
editor.branch_already_exists=Клон '%s' вече съществува в това хранилище.
editor.directory_is_a_file=Частта '%s' в пътя е файл, не директория в това хранилище.
editor.file_is_a_symlink=Файл "%s" е символна връзка, която не може да се модифицира от редактора.
editor.filename_is_a_directory=Име '%s' вече съществува като директория в това хранилище.
editor.file_editing_no_longer_exists=Файл '%s' който редактирате вече не съществува в това хранилище.
editor.file_changed_while_editing=Съдържанието на файла е било променено докато правихте редакциите. <a target="_blank" href="%s">Щракнете тук</a> за да прегледате какво е променено или <strong>натиснете Запис на ревизия</strong> отново за да презапишете чуждите промени.
editor.file_already_exists=Файл с име '%s' вече съществува в това хранилище.
editor.no_changes_to_show=Няма промени.
editor.fail_to_update_file=Невъзможно модифициране/създаване на файл '%s' заради грешка: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Добави поддиректория...
editor.unable_to_upload_files=Невъзможно качване на файлове в '%s' заради грешка: %v
editor.upload_files_to_dir=Качи файлове в '%s'
commits.commit_history=Commit History
commits.commits=Ревизии
commits.search=Търсене в ревизии
commits.find=Намери
@@ -439,6 +551,11 @@ issues.create=Създай задача
issues.new_label=Нов етикет
issues.new_label_placeholder=Име на етикета...
issues.create_label=Създай етикет
issues.label_templates.title=Зареждане на предварително зададен набор от етикети
issues.label_templates.info=Липсват етикети все още. Можете да щракнете върху "Нов етикет" по-горе, за да създадете нов или да изберете предварително зададени набори от по-долу.
issues.label_templates.helper=Изберете набор етикети
issues.label_templates.use=Използвай този набор етикети
issues.label_templates.fail_to_load_file=Неуспешно зареждане на шаблон с етикети '%s': %v
issues.open_tab=%d отворени
issues.close_tab=%d затворени
issues.filter_label=Етикет
@@ -480,8 +597,7 @@ issues.commit_ref_at=`посочи тази задача от ревизия <a
issues.poster=Участник
issues.collaborator=Сътрудник
issues.owner=Притежател
issues.sign_up_for_free=Регистрирай се безплатно
issues.sign_in_require_desc=за да се включите в този разговор. Вече имате профил? <a href="%s">Влезте, за да коментирате</a>
issues.sign_in_require_desc=<a href="%s">Впишете се</a> за да се присъедините към разговора.
issues.edit=Редакция
issues.cancel=Отказ
issues.save=Запис
@@ -496,6 +612,8 @@ issues.label_deletion=Изтрий етикет
issues.label_deletion_desc=При изтриване на този етикет ще се премахне информацията за него във всички свързани задачи. Желаете ли да продължите?
issues.label_deletion_success=Етикетът е изтрит успешно!
issues.num_participants=%d участника
issues.attachment.open_tab=`Щракнете за да прегледате "%s" в нов раздел`
issues.attachment.download=`Щракнете за да изтеглите "%s"`
pulls.new=Нова заявка за сливане
pulls.compare_changes=Сравни промените
@@ -505,6 +623,7 @@ pulls.compare_compare=сравни
pulls.filter_branch=Филтър по клон
pulls.no_results=Няма резултати.
pulls.nothing_to_compare=Няма нищо за сравняване, защото родителският клон и върхът са еднакви.
pulls.nothing_merge_base=Няма нищо за сравняване, защото двата клона имат напълно различна история.
pulls.has_pull_request=`Вече има заявка за сливане между тези две цели: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Създай заявка за сливане
pulls.title_desc=заяви обединяване на %[1]d ревизии от <code>%[2]s</code> във <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=Проверката за конфликт все още е в
pulls.can_auto_merge_desc=Може да се извърши обединяване на тази заявка за сливане.
pulls.cannot_auto_merge_desc=Не може да се извърши обединяване, защото съществуват конфликти между ревизиите.
pulls.cannot_auto_merge_helper=Моля, използвайте инструменти на командния ред за да разрешите конфликтите.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Обедини заявка за сливане
pulls.open_unmerged_pull_exists=`Невъзможно повторно отваряне, защото вече съществува заявка за сливане (#%d) от същото хранилище със същата информация за обединяване, която чака да бъде извършена`
pulls.delete_branch=Изтрий клон
pulls.delete_branch_has_new_commits=Клонът не може да бъде изтрит, защото има ревизии след последното обединяване.
milestones.new=Нов етап
milestones.open_tab=%d отворени
@@ -572,26 +696,61 @@ settings.collaboration.admin=За администрация
settings.collaboration.write=За писане
settings.collaboration.read=За четене
settings.collaboration.undefined=Недефинирано
settings.branches=Клонове
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Клон по подразбиране
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Update
settings.update_default_branch_unsupported=Промяна на клон по подразбиране не се поддържа от тази версия на Git сървъра.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Защитени клонове
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Избор на клон...
settings.branch_protection=Защита на клон
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Protect this branch
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Списък на всички, които могат да изпращат към този клон
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Потребители, които могат да изпращат към този клон
settings.protect_whitelist_search_users=Търсене на потребители
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Търсене на екипи
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Уеб-куки
settings.githooks=Git куки
settings.basic_settings=Основни настройки
settings.mirror_settings=Настройки на огледало
settings.sync_mirror=Синхр. сега
settings.mirror_sync_in_progress=Синхронизация на огледалото е в ход, моля обновете страницата след минута.
settings.site=Официален сайт
settings.update_settings=Запази настройките
settings.change_reponame_prompt=Тази промяна ще засегне връзките, които се отнасят до това хранилището.
settings.advanced_settings=Разширени настройки
settings.wiki_desc=Включва уики за да може потребителите да създават документи
settings.wiki_desc=Включи система за уики
settings.use_internal_wiki=Използвай вградено уики
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Използвай външно уики
settings.external_wiki_url=URL адрес на външно уики
settings.external_wiki_url_desc=Посетителите ще бъдат пренасочени към този URL адрес от връзката за раздел уики.
settings.issues_desc=Включва вградена система за проследяване на задачи
settings.issues_desc=Включи система за проследяване на задачи
settings.use_internal_issue_tracker=Изполвай вградена система за проследяване на задачи
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Използвай външна система за проследяване на задачи
settings.external_tracker_url=URL адрес на външна система за проследяване на задачи
settings.external_tracker_url_desc=Посетителите ще бъдат пренасочени към този URL адрес от връзката на раздела.
settings.tracker_url_format=Формат на URL адрес на външна система за проследяване на задачи
settings.tracker_issue_style=Стил на именуване на външна система за проследяване на задачи:
settings.tracker_issue_style.numeric=Цифров
settings.tracker_issue_style.alphanumeric=Символен
settings.tracker_url_format_desc=Можете да използвате текстови маркери <code>{user} {repo} {index}</code> за потребителско име, име на хранилище и индекс на задача съответно.
settings.pulls_desc=Включва заявки за сливане за да може да се приемат външни доработки
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Опасна зона
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Новият притежател вече има хранилище със същото име. Изберете друго име.
settings.convert=Промени към редовно хранилище
settings.convert_desc=Можете да промените това огледало към редовно хранилище. Конверсията не може да се отмени.
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=Данните за уики на това хра
settings.delete=Изтрий това хранилище
settings.delete_desc=След като изтриете хранилището, няма връщане назад. Моля, бъдете сигурни.
settings.delete_notices_1=- Тази операция <strong>НЕ МОЖЕ</strong> да бъде отменена в последствие.
settings.delete_notices_2=- Тази операция ще изтрие всичко от това хранилище, включително Git данни, задачи, коментари и достъпа на сътрудници.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Всички разклонения ще станат независими след изтриването.
settings.deletion_success=Хранилището е изтрито успешно!
settings.update_settings_success=Настройките на хранилището са запазени успешно.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Този потребител няма да
settings.remove_collaborator_success=Сътрудникът е премахнат.
settings.search_user_placeholder=Име на потребител...
settings.org_not_allowed_to_be_collaborator=Невъзможно добавяне на организация като сътрудник.
settings.user_is_org_member=Потребителят вече участва в организацията и не може да бъде добавен като сътрудник.
settings.add_webhook=Добави уеб-кука
settings.hooks_desc=Уеб-куките много приличат на обикновен HTTP POST тригер. Когато нещо се случи в Gogs, ние ще изпратим уведомление до сървъра, който посочите. Научете повече в <a target="_blank" href="%s">Ръководство за уеб-куки</a>.
settings.webhook_deletion=Изтрий уеб-кука
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Уеб-куката е изтрита успе
settings.webhook.test_delivery=Тестово изпращане
settings.webhook.test_delivery_desc=Симулира тестово изпращане за тест на настройките на уеб-куката
settings.webhook.test_delivery_success=Тестовата уеб-кука е добавена в опашката за изпращане. Може да отнеме няколко секунди преди да се появи в историята с доставени.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Заявка
settings.webhook.response=Отговор
settings.webhook.headers=Заглавки
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Gogs ще изпрати <code>POST</code> заявк
settings.payload_url=URL адрес на изпращане
settings.content_type=Тип на съдържанието
settings.secret=Тайна
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username=Потребителско име
settings.slack_icon_url=URL адрес на икона
settings.slack_color=Цвят
@@ -658,8 +819,20 @@ settings.event_send_everything=При <strong>всички</strong> събити
settings.event_choose=Нека избера от какво имам нужда.
settings.event_create=Създаване
settings.event_create_desc=Създаване на клон или маркер
settings.event_delete=Изтриване
settings.event_delete_desc=Изтрит клон или етикет
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_push=Предаване
settings.event_push_desc=Git предаване към хранилището
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request=Заявка за сливане
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Активна
settings.active_helper=Подробности относно събитието, което е задействало куката, също ще бъдат изпратени.
settings.add_hook_success=Новата уеб-кука е добавена успешно.
@@ -669,10 +842,13 @@ settings.delete_webhook=Изтрий уеб-куката
settings.recent_deliveries=Последни изпращания
settings.hook_type=Тип на куката
settings.add_slack_hook_desc=Добавяне на интеграция със <a href="%s">Slack</a> във Вашето хранилище.
settings.add_discord_hook_desc=Добавяне на интеграция с <a href="%s">Discord</a> към хранилището.
settings.add_dingtalk_hook_desc=Добавяне на интеграция с <a href="%s">Dingtalk</a> към хранилището.
settings.slack_token=API ключ
settings.slack_domain=Домейн
settings.slack_channel=Канал
settings.deploy_keys=Ключове за внедряване
settings.deploy_keys_helper=<b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key=Добави ключ за внедряване
settings.deploy_key_desc=Този ключ за внедряване има права само за четене. Това не е същото като SSH ключове на персонален потребител.
settings.no_deploy_keys=Все още няма настроен никакъв ключ за внедряване.
@@ -684,6 +860,8 @@ settings.add_key_success=Новият ключ за внедряване '%s' е
settings.deploy_key_deletion=Изтрий ключ за внедряване
settings.deploy_key_deletion_desc=При изтриването на този ключ за внедряване ще се премахнат свързаните права за достъп до това хранилище. Желаете ли да продължите?
settings.deploy_key_deletion_success=Ключът за внедряване е изтрит успешно!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Преглед на файлове
diff.parent=родител
@@ -702,7 +880,6 @@ release.releases=Версии
release.new_release=Нова версия
release.draft=Чернови
release.prerelease=Предварителни
release.stable=Стабилни
release.edit=редактиране
release.ahead=<strong>%d</strong> ревизии на %s след тази версия
release.source_code=Изходен код
@@ -751,6 +928,7 @@ team_permission_desc=Какво ниво на достъп трябва да и
form.name_reserved=Името на организацията '%s' е запазено.
form.name_pattern_not_allowed=Име на организацията от вида '%s' не е разрешено.
form.team_name_reserved=Име на екип "%s" е запазено.
settings=Настройки
settings.options=Опции
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Почисти изтрити данни в хранил
dashboard.git_gc_repos_success=Всички хранилища са почистени от изтрити данни успешно.
dashboard.resync_all_sshkeys=Презапис на ".ssh/authorized_keys" файл (внимание: не-Gogs ключове ще бъдат загубени)
dashboard.resync_all_sshkeys_success=Всички публични ключове са презаписани успешно.
dashboard.resync_all_update_hooks=Презапис на всички куки, закачени на актуализация на хранилищата (необходимо, когато се ползва собствен път за конфигурацията)
dashboard.resync_all_update_hooks_success=Всички куки, закачени на актуализация на хранилищата, са презаписани успешно.
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Реинициализира всички записи за хранилища
dashboard.reinit_missing_repos_success=Всички записи за хранилища със загубени Git файлове са реинициализирани успешно.
@@ -917,12 +1095,14 @@ repos.private=Частно
repos.watches=Наблюдавания
repos.stars=Харесвания
repos.issues=Задачи
repos.size=Размер
auths.auth_manage_panel=Управление на удостоверявания
auths.auth_sources=Authentication Sources
auths.new=Добави нов начин на удостоверяване
auths.name=Име
auths.type=Тип
auths.enabled=Активно
auths.default=Default
auths.updated=Последна модификация
auths.auth_type=Тип на удостоверяване
auths.auth_name=Име на удостоверяване
@@ -931,15 +1111,21 @@ auths.domain=Домейн
auths.host=Сървър
auths.port=Порт
auths.bind_dn=Име (DN) за свръзка
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Парола за свръзка
auths.bind_password_helper=Внимание: Тази парола се запазва некриптирана. Моля използвайте потребител, който няма административен достъп.
auths.user_base=Базов OU за търсене
auths.user_dn=Име (DN) на потребител
auths.attribute_username=Атрибут за име
auths.attribute_username_placeholder=Оставете празно за да използва потребителското име от форма за вписване.
auths.attribute_name=Атрибут за име
auths.attribute_name=First Name Attribute
auths.attribute_surname=Атрибут за фамилия
auths.attribute_mail=Атрибут за ел. поща
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Извличане на атрибути от контекста на име (DN) за свръзка
auths.filter=Филтър за потребител
auths.admin_filter=Филтър за администратор
@@ -953,9 +1139,9 @@ auths.enable_tls=Включи TLS криптиране
auths.skip_tls_verify=Пропусни проверка на TLS сертификат
auths.pam_service_name=Име на PAM услуга
auths.enable_auto_register=Включи автоматична регистрация
auths.tips=Съвети
auths.edit=Редактирай настройки за удостоверяване
auths.activated=Това удостоверяване е активно
auths.default_auth=This authentication is default login source
auths.new_success=Новото удостоверяване '%s' е добавено успешно.
auths.update_success=Настройките за удостоверяване са запазени успешно.
auths.update=Запази настройки за удостоверяване
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Изтрий удостоверяването
auths.delete_auth_desc=Това удостоверяване ще бъде изтрито. Желаете ли да продължите?
auths.still_in_used=Това удостоверяване все още се използва от някои потребители. Моля изтрийте ги или ги конвертирайте до друг тип на влизане първо.
auths.deletion_success=Удостоверяването е изтрито успешно!
auths.login_source_exist=Източник за валидация на потребители "%s" вече съществува.
config.not_set=(not set)
config.server_config=Сървърни настройки
config.app_name=Име на приложението
config.app_ver=Версия на приложението
@@ -974,10 +1162,9 @@ config.offline_mode=Офлайн режим
config.disable_router_log=Изключи журнал на маршрутизатора
config.run_user=Потребителски контекст
config.run_mode=Режим на изпълнение
config.repo_root_path=Основен път към хранилища
config.git_version=Git версия
config.static_file_root_path=Път към статични файлове
config.log_file_root_path=Път към журнал
config.script_type=Тип на скрипта
config.reverse_auth_user=Потребителско име при обратно удостоверяване
config.ssh_config=SSH конфигурация
@@ -987,11 +1174,25 @@ config.ssh_domain=Домейн
config.ssh_port=Порт
config.ssh_listen_port=Порт за слушане
config.ssh_root_path=Основен път
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Път до ключове
config.ssh_keygen_path=Път до генератор ('ssh-keygen')
config.ssh_minimum_key_size_check=Проверка за минимален размер на ключове
config.ssh_minimum_key_sizes=Минимален размер на ключове
config.repo_config=Конфигурация на хранилище
config.repo_root_path=Основен път към хранилища
config.script_type=Тип на скрипта
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Предпочитани лицензи
config.disable_http_git=Забраняване на HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=Конфигуриране на HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Настройки на базата данни
config.db_type=Тип
config.db_host=Сървър
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL режим
config.db_ssl_mode_helper=(само за postgres)
config.db_path=Път
config.db_path_helper=(за "sqlite3" и "tidb")
config.service_config=Настройка на услугата
config.register_email_confirm=Изисквай потвърждение на адреси на ел. поща
config.disable_register=Изключи нови регистрации
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Изключи проверка минимален
config.enable_captcha=Включи Captcha
config.active_code_lives=Кодове за активиране
config.reset_password_code_lives=Кодове за изчистване на парола
config.webhook_config=Конфигурация на уеб-куки
config.queue_length=Дължина на опашка
config.deliver_timeout=Време за отказ при изпращане
config.skip_tls_verify=Пропусни проверка на TLS
config.mailer_config=Конфигурация на мейлър
config.mailer_enabled=Активен
config.mailer_disable_helo=Изключи HELO
config.mailer_name=Име
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Сървър
config.mailer_user=Потребител
config.send_test_mail=Изпрати тестово писмо
config.test_mail_failed=Невъзможно изпращане на тестово писмо до '%s': %v
config.test_mail_sent=Тестово писмо беше изпратено до '%s'.
config.oauth_config=OAuth конфигурация
config.oauth_enabled=Активна
config.cache_config=Конфигурация на кеша
config.cache_adapter=Кеш адаптер
config.cache_interval=Кеш интервал
config.cache_conn=Кеш на връзката
config.session_config=Конфигурация на сесии
config.session_provider=Доставчик на сесии
config.provider_config=Конфигурация на доставчик
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC през интервал
config.session_life_time=Период на валидност на сесиите
config.https_only=HTTPS само
config.cookie_life_time=Период на валидност на бисквитките
config.picture_config=Конфигурация на изображения
config.picture_service=Услуги за снимки
config.disable_gravatar=Изключи Gravatar
config.enable_federated_avatar=Включи външни аватари
config.git_config=Конфигурация на git
config.git_disable_diff_highlight=Забрани оцветяване на синтаксис при преглед на разлики
config.git_max_diff_lines=Максимален брой различни редове (за файл)
config.git_max_diff_line_characters=Максимален брой различни символи (на ред)
config.git_max_diff_files=Максимален брой променени файлове (при показване)
config.git_gc_args=Аргументи на GC
config.git_migrate_timeout=Време за отказ при миграция
config.git_mirror_timeout=Време за отказ при синхр. на огледало
config.git_clone_timeout=Време за отказ при клониране
config.git_pull_timeout=Време за отказ при сливане
config.git_gc_timeout=Време за отказ при GC
config.log_config=Конфигурация на журнал
config.log_mode=Режим на журнал
config.log_mode=Режим
config.log_options=Настройки
monitor.cron=Cron задачи
monitor.name=Име
@@ -1074,17 +1297,24 @@ notices.delete_success=Системните съобщения са изтрит
create_repo=създаде хранилище <a href="%s"> %s</a>
rename_repo=преименува хранилище от <code>%[1]s</code> на <a href="%[2]s">%[3]s</a>
commit_repo=предаде към <a href="%[1]s/src/%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
compare_commits=Сравнение между тези %d ревизии
transfer_repo=прехвърли хранилище <code>%s</code> към <a href="%s">%s</a>
create_issue=`отвори задача <a href="%s/issues/%s">%s#%[2]s"</a>`
close_issue=`затвори <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`повторно отвори <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`коментира задача <a href="%s/issues/%s">%s#%[2]s"</a>`
create_pull_request=`създаде заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`затвори заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`повторно отвори заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`коментира задача <a href="%s/issues/%s">%s#%[2]s"</a>`
merge_pull_request=`обедини заявка за сливане <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=прехвърли хранилище <code>%s</code> към <a href="%s">%s</a>
create_branch=създаде клон <a href="%[1]s/src/%[2]s"> %[3]s</a> % <a href="%[1]s">[4]s</a>
delete_branch=изтри клон <code>%[2]s</code> % <a href="%[1]s">[3]s</a>
push_tag=предаде маркер <a href="%s/src/%s">%[2]s</a> към <a href="%[1]s">[3]s</a>
compare_commits=Сравнение между тези %d ревизии
delete_tag=изтри етикет <code>%[2]s</code> % <a href="%[1]s">[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=преди

File diff suppressed because it is too large Load Diff

View File

@@ -47,8 +47,8 @@ cancel=Abbrechen
[install]
install=Installation
title=Installationsschritte für den ersten Start
docker_helper=Wenn Gogs innerhalb Docker läuft, lesen Sie sich bitte den <a target="_blank" href="%s">Leitfaden</a> genau durch, bevor Sie irgendwas auf dieser Seite ändern!
requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3 oder TiDB.
docker_helper=Wenn Gogs innerhalb von Docker läuft, lesen Sie sich bitte den <a target="_blank" href="%s">Leitfaden</a> genau durch, bevor Sie irgendwas auf dieser Seite ändern!
requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3, MSSQL oder TiDB.
db_title=Datenbankeinstellungen
db_type=Datenbanktyp
host=Host
@@ -58,9 +58,8 @@ db_name=Datenbankname
db_helper=Bitte verwenden Sie in MySQL die InnoDB-Engine mit dem Zeichensatz utf8_general_ci.
ssl_mode=SSL-Modus
path=Pfad
sqlite_helper=Der Dateipfad zur SQLite3- oder TiDB-Datenbank. <br>Bitte verwenden Sie einen absoluten Pfad, wenn Gogs als Service gestartet wird.
err_empty_db_path=SQLite3 oder TiDB Datenbankpfad darf nicht leer sein.
err_invalid_tidb_name=Der TiDB Datenbankname darf nicht "." und "-" enthalten.
sqlite_helper=Der Dateipfad zur SQLite3-Datenbank. <br>Bitte verwenden Sie einen absoluten Pfad, wenn Gogs als Service gestartet wird.
err_empty_db_path=SQLite3 Datenbankpfad darf nicht leer sein.
no_admin_and_disable_registration=Sie können die Registrierung nicht deaktivieren, ohne ein Administratorkonto zu erstellen.
err_empty_admin_password=Das Administrator-Passwort darf nicht leer sein.
@@ -75,12 +74,16 @@ domain=Domain
domain_helper=Dies hat Auswirkung auf die SSH Klon-URLs.
ssh_port=SSH Port
ssh_port_helper=Der Port Ihres SSH-Servers. Leer lassen um SSH zu deaktivieren.
use_builtin_ssh_server=Eingebauten SSH-Server verwenden
use_builtin_ssh_server_popup=Starte eingebauten SSH-Server für git-Aufgaben, um es vom System-SSH-Dämon zu trennen.
http_port=HTTP Port
http_port_helper=Auf dieser Port Nummer wird Gogs erreichbar sein.
app_url=Anwendungs-URL
app_url_helper=Dies hat Auswirkung auf die HTTP/HTTPS Klon-URLs und den Inhalt der E-Mails.
log_root_path=Logdateipfad
log_root_path_helper=Verzeichnis in das Logdateien geschrieben werden.
enable_console_mode=Konsolen-Modus einschalten
enable_console_mode_popup=Zusätzlich zum Datei-Modus, zeige Logs auch in der Konsole.
optional_title=Optionale Einstellungen
email_title=E-Mail-Service Einstellungen
@@ -96,6 +99,8 @@ offline_mode=Offline-Modus aktivieren
offline_mode_popup=CDN auch im Produktivmodus deaktivieren. Alle Dateien werden von diesem Server ausgeliefert.
disable_gravatar=Gravatar-Dienst deaktivieren
disable_gravatar_popup=Gravatar und benutzerdefinierte Quellen deaktivieren. Alle Profilbilder werden vom Nutzer hochgeladen oder sind das Standard-Profilbild.
federated_avatar_lookup=Suche nach föderierten Profilbildern einschalten
federated_avatar_lookup_popup=Der Suche nach föderierten Profilbildern die Verwendung von föderierten open source Services basierend auf libravatar erlauben.
disable_registration=Registrierung deaktivieren
disable_registration_popup=Registrierung neuer Benutzer deaktivieren. Nur Administratoren können Benutzerkonten anlegen.
enable_captcha=Captcha aktivieren
@@ -114,6 +119,8 @@ sqlite3_not_available=Ihre Gogs-Version unterstützt SQLite3 nicht. Bitte laden
invalid_db_setting=Datenbankeinstellungen sind nicht korrekt: %v
invalid_repo_path=Repository Verzeichnis ist ungültig: %v
run_user_not_match=Der ausführende Benutzer ist nicht der aktuelle Benutzer: %s -> %s
smtp_host_missing_port=In der Adresse des SMTP Host fehlt die Portnummer.
invalid_smtp_from=SMTP Absender Feld ist nicht gültig: %v
save_config_failed=Fehler beim Speichern der Konfiguration: %v
invalid_admin_setting=Admin-Konto Einstellungen sind ungültig: %v
install_success=Herzlich Willkommen! Wir sind froh, dass Sie sich für Gogs entschieden haben. Wir wünschen viel Vergnügen damit.
@@ -135,6 +142,7 @@ issues.in_your_repos=In Ihren Repositories
[explore]
repos=Repositories
users=Benutzer
organizations=Organisationen
search=Suche
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=Haben Sie bereits ein Konto? Jetzt anmelden!
social_register_hepler_msg=Haben Sie bereits ein Konto? Jetzt verknüpfen!
disable_register_prompt=Es tut uns leid, die Registrierung wurde deaktiviert. Bitte wenden Sie sich an den Administrator.
disable_register_mail=Es tut uns leid, die Bestätigung der Registrierungs-E-Mail wurde deaktiviert.
auth_source=Authentifizierungsquelle
local=Lokalisierung
remember_me=Angemeldet bleiben
forgot_password=Passwort vergessen
forget_password=Passwort vergessen?
@@ -154,7 +164,6 @@ prohibit_login_desc=Ihrem Konto ist es nicht gestattet sich anzumelden. Bitte ko
resent_limit_prompt=Es tut uns leid, aber Sie haben bereits eine Aktivierungs-E-Mail angefordert. Bitte warten Sie 3 Minuten und probieren Sie es dann nochmal.
has_unconfirmed_mail=Hallo %s, Sie haben eine unbestätigte E-Mail-Adresse (<b>%s</b>). Wenn Sie keine Bestätigungs-E-Mail erhalten haben oder eine neue benötigen, klicken Sie bitte auf den folgenden Button.
resend_mail=Hier klicken, um die Aktivierungs-E-Mail erneut zu versenden
email_not_associate=Diese E-Mail-Adresse ist mit keinem Konto verknüpft.
send_reset_mail=Hier klicken, um die E-Mail zum Passwort-zurücksetzen erneut zu versenden
reset_password=Passwort zurücksetzen
invalid_code=Es tut uns leid, der Bestätigungscode ist abgelaufen oder ungültig.
@@ -162,6 +171,14 @@ reset_password_helper=Hier klicken, um das Passwort zurückzusetzen
password_too_short=Das Passwort muss mindenstens 6 Zeichen lang sein.
non_local_account=Nicht-lokale Konten können Passwörter nicht via Gogs ändern.
login_two_factor=Zwei-Faktor-Authentifizierung
login_two_factor_passcode=PIN
login_two_factor_enter_recovery_code=Geben Sie einen Wiederherstellungscode für die Zwei-Faktor-Authentifizierung ein
login_two_factor_recovery=Zwei-Faktor-Wiederherstellung
login_two_factor_recovery_code=Wiederherstellungscode
login_two_factor_enter_passcode=Geben Sie die Zwei-Faktor-Authentifizierungs PIN ein
login_two_factor_invalid_recovery_code=Der Wiederherstellungscode wurde schon benutzt oder ist nicht gültig.
[mail]
activate_account=Bitte aktivieren Sie Ihr Konto
activate_email=Bestätigen Sie Ihre E-Mail-Adresse
@@ -187,9 +204,17 @@ TeamName=Teamname
AuthName=Name der Autorisierung
AdminEmail=Administrator E-Mail
NewBranchName=Neuer Branch Name
CommitSummary=Commit Zusammenfassung
CommitMessage=Commit Nachricht
CommitChoice=Commit Auswahl
TreeName=Dateipfad
Content=Inhalt
require_error=` darf nicht leer sein.`
alpha_dash_error=` kann ausschließlich alphanumerische Zeichen und "-_" enthalten.`
alpha_dash_dot_error=` kann ausschließlich alphanumerische Zeichen und ".-_" enthalten.`
alpha_dash_dot_slash_error=` kann ausschließlich alphanumerische Zeichen und ".-_/" enthalten.`
size_error=` muss die Größe %s haben.`
min_size_error=` muss mindestens %s Zeichen enthalten.`
max_size_error=` darf höchstens %s Zeichen enthalten.`
@@ -206,6 +231,7 @@ org_name_been_taken=Organisationsname ist bereits vergeben.
team_name_been_taken=Teamname ist bereits vergeben.
email_been_used=E-Mail-Adresse wird bereits verwendet.
username_password_incorrect=Benutzername oder Passwort ist nicht korrekt.
auth_source_mismatch=Die ausgewählte Authentifizierungsquelle ist dem Benutzer nicht zugeordnet.
enterred_invalid_repo_name=Bitte achten Sie darauf, dass der von Ihnen eingegebene Repository-Name korrekt ist.
enterred_invalid_owner_name=Bitte achten Sie darauf, dass der eingegebene Name des Besitzers korrekt ist.
enterred_invalid_password=Bitte achten Sie darauf, dass das eingegebene Passwort richtig ist.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Benutzernamen der Form '%s' sind nicht erlaubt.
[settings]
profile=Profil
password=Passwort
avatar=Profilbild
ssh_keys=SSH-Schlüssel
social=Soziale Konten
applications=Anwendungen
security=Sicherheit
repos=Repositories
orgs=Organisationen
applications=Anwendungen
delete=Konto löschen
uid=Uid
public_profile=Öffentliches Profil
profile_desc=Ihre E-Mail-Adresse ist öffentlich einsehbar und dient dazu, Ihnen Benachrichtigungen bezüglich Ihres Kontos und Aktivitäten auf der Webseite zu schicken.
@@ -259,6 +286,8 @@ change_username_prompt=Diese Änderung wirkt sich auf die Links zu Ihrem Benutze
continue=Weiter
cancel=Abbrechen
lookup_avatar_by_mail=Suche nach Profilbildern via E-Mail
federated_avatar_lookup=Suche nach föderierten Profilbildern
enable_custom_avatar=Benutzerdefiniertes Profilbild aktivieren
choose_new_avatar=Neues Profilbild auswählen
update_avatar=Profilbildeinstellungen aktualisieren
@@ -308,13 +337,34 @@ no_activity=Keine neuen Aktivitäten
key_state_desc=Dieser Schlüssel wurde in den letzten 7 Tagen verwendet
token_state_desc=Dieses Token wurde in den letzten 7 Tagen benutzt
manage_social=Verknüpfte soziale Konten verwalten
social_desc=Dies ist eine Liste verknüpfter sozialer Konten. Bitte entfernen Sie alle Verknüpfungen, die Ihnen nicht bekannt sind.
unbind=Verknüpfung entfernen
unbind_success=Die Verknüpfung zum sozialen Konto wurde entfernt.
two_factor=Zwei-Faktor-Authentifizierung
two_factor_status=Status:
two_factor_on=Ein
two_factor_off=Aus
two_factor_enable=Aktivieren
two_factor_disable=Deaktivieren
two_factor_view_recovery_codes=Betrachten und verwahren Sie <a href="%s%s">Ihre Wiederherstellungscodes</a> an einem sicheren Ort. Sie können diese als Passwort-Code nutzen, auch wenn Sie den Zugriff zu Ihrer Authentifizierungsanwendung verloren haben.
two_factor_http=Für HTTP/HTTPS-Operationen können Sie keine schlichten Benutzernamen und Passwörter mehr nutzen. Bitte erstellen und benutzen Sie ein <a href="%[1]s%[2]s">Persönliches Zugriffs-Token</a> als Ihre Anmeldeinformation, z.B. <code>%[3]s</code>.
two_factor_enable_title=Zwei-Faktor-Authentifizierung aktivieren
two_factor_scan_qr=Bitte benutzen Sie Ihre Authentifizierungsanwendung, um das Bild zu scannen:
two_factor_or_enter_secret=Oder geben Sie Ihren Geheim-Code ein:
two_factor_then_enter_passcode=Geben Sie die PIN ein:
two_factor_verify=Bestätigen
two_factor_invalid_passcode=Die eingegebene PIN ist ungültig. Bitte versuchen Sie es erneut!
two_factor_reused_passcode=Der von dir eingegebene Passcode wurde bereits verwendet, bitte probiere einen anderen!
two_factor_enable_error=Einschalten der Zwei-Faktor-Authentifizierung ist fehlgeschlagen: %v
two_factor_enable_success=Die Zwei-Faktor-Authentifizierung wurde für Ihr Konto erfolgreich aktiviert!
two_factor_recovery_codes_title=Zwei-Faktor-Authentifizierung-Wiederherstellungscodes
two_factor_recovery_codes_desc=Wiederherstellungscodes sind dazu gedacht, verwendet zu werden, wenn Sie vorübergehend keinen Zugriff zu Ihrer Authentifizierungsanwendung haben. Jeder Wiederherstellungscode kann nur einmal verwendet werden. <b>Bitte bewahren Sie diese Codes an einem sicheren Ort auf</b>.
two_factor_regenerate_recovery_codes=Wiederherstellungscodes neu generieren
two_factor_regenerate_recovery_codes_error=Das erneute Generieren der Wiederherstellungscodes ist fehlgeschlagen: %v
two_factor_regenerate_recovery_codes_success=Die neuen Wiederherstellungscodes wurden erfolgreich generiert!
two_factor_disable_title=Zwei-Faktor-Authentifizierung deaktivieren
two_factor_disable_desc=Das Sicherheitsniveau Ihres Kontos wird deutlich reduziert sein, nachdem die Zwei-Faktor-Authentifizierung deaktiviert wurde. Möchten Sie fortfahren?
two_factor_disable_success=Die Zwei-Faktor-Authentifizierung wurde erfolgreich deaktiviert!
manage_access_token=Verwaltung persönlicher Zugangs-Token
generate_new_token=Neuen Token erzeugen
generate_new_token=Neues Token erzeugen
tokens_desc=Die von Ihnen erzeugten Token können zum Zugriff auf die Gogs-API verwendet werden.
new_token_desc=Jeder Token erlaubt vollen Zugriff auf ihr Konto.
token_name=Token-Name
@@ -325,6 +375,15 @@ access_token_deletion=Persönlichen Token entfernen
access_token_deletion_desc=Das Löschen dieses persönlichen Zugangs-Tokens wird alle zugehörigen Zugriffe der Anwendung entfernen. Möchten Sie fortfahren?
delete_token_success=Persönlicher Zugriffs-Token wurde erfolgreich entfernt! Vergessen Sie nicht Ihre Anwendung zu aktualisieren.
orgs.none=Sie sind kein Mitglied einer Organisation.
orgs.leave_title=Organisation verlassen
orgs.leave_desc=Sie verlieren den Zugriff auf alle Repositories und Teams nach dem Verlassen der Organisation. Möchten Sie fortfahren?
repos.leave=Verlassen
repos.leave_title=Repository verlassen
repos.leave_desc=Der Zugang zum Repository wird verloren gehen, wenn Sie es verlassen. Möchten Sie fortfahren?
repos.leave_success=Sie haben das Repository '%s' erfolgreich verlassen!
delete_account=Konto löschen
delete_prompt=Diese Aktion wird Ihr Konto dauerhaft löschen und kann <strong>NICHT</strong> rückgängig gemacht werden!
confirm_delete_account=Löschvorgang bestätigen
@@ -339,13 +398,13 @@ visibility=Sichtbarkeit
visiblity_helper=Dieses Repository ist <span class="ui red text">privat</span>
visiblity_helper_forced=Der Administrator hat festgelegt, dass alle neuen Repositories <span class="ui red text">privat</span> sein müssen
visiblity_fork_helper=(Eine Änderung dieses Wertes wirkt sich auf alle Forks aus)
clone_helper=Sie brauchen Hilfe beim Klonen? Öffnen Sie die <a target="_blank" href="%s">Hilfe</a>!
clone_helper=Brauchen Sie Hilfe beim Klonen? Hier gibt es <a target="_blank" href="%s">Hilfe</a>!
fork_repo=Repository forken
fork_from=Fork von
fork_visiblity_helper=Die Sichtbarkeit von geforkten Repositories ist nicht veränderbar.
repo_desc=Beschreibung
repo_lang=Sprache
repo_lang_helper=Wählen Sie eine .gitignore-Datei aus
repo_gitignore_helper=Wählen Sie eine .gitignore Vorlage aus
license=Lizenz
license_helper=Wählen Sie eine Lizenz aus
readme=Readme
@@ -358,9 +417,12 @@ mirror_prune_desc=Entferne alle Verweise auf nicht mehr existierende entfernte R
mirror_interval=Mirror-Intervall (in Stunden)
mirror_address=Mirror-Adresse
mirror_address_desc=Bitte die nötigen Zugangsdaten in die Adresse mit aufnehmen.
mirror_last_synced=Zuletzt synchronisiert
watchers=Beobachter
stargazers=In Favoriten von
forks=Forks
repo_description_helper=Beschreibung des Repository. Maximal 512 Zeichen.
repo_description_length=Verfügbare Zeichen
form.reach_limit_of_creation=Der Besitzer hat die maximale Anzahl von %d erstellbaren Repositories erreicht.
form.name_reserved=Repository-Name '%s' ist reserviert.
@@ -371,14 +433,14 @@ migrate_type=Migrationstyp
migrate_type_helper=Dieses Repository wird ein <span class="text blue">Mirror</span> sein
migrate_repo=Repository migrieren
migrate.clone_address=Adresse kopieren
migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT URL oder ein lokaler Serverpfad sein.
migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT-URL sein.
migrate.clone_address_desc_import_local=Sie dürfen auch ein Repository vom lokalen Serverpfad migrieren.
migrate.permission_denied=Ihnen fehlen die Rechte zum Importieren lokaler Repositories.
migrate.invalid_local_path=Der lokale Pfad ist ungültig, existiert nicht oder ist kein Ordner.
migrate.failed=Fehler bei Migration: %v
mirror_from=Mirror von
forked_from=geforkt von
fork_from_self=Sie können kein Repository forken, das Ihnen gehört!
copy_link=Kopieren
copy_link_success=Kopiert!
copy_link_error=Drücken Sie ⌘-C oder Strg-C zum Kopieren
@@ -394,9 +456,9 @@ quick_guide=Kurzanleitung
clone_this_repo=Dieses Repository klonen
create_new_repo_command=Erstellen Sie ein neues Repository mittels der Kommandozeile
push_exist_repo=Bestehendes Repository von der Kommandozeile pushen
repo_is_empty=Dieses Repository ist leer. Bitte kommen Sie später wieder!
bare_message=Dieses Repository hat noch keinen Inhalt.
code=Code
files=Dateien
branch=Branch
tree=Struktur
filter_branch_and_tag=Nach Branch oder Tag filtern
@@ -407,13 +469,63 @@ pulls=Pull-Requests
labels=Label
milestones=Meilensteine
commits=Commits
git_branches=Branches
releases=Releases
file_raw=Originalformat
file_history=Verlauf
file_view_raw=Ansicht im Originalformat
file_permalink=Permalink
file_too_large=Diese Datei ist zu groß zum Anzeigen
video_not_supported_in_browser=Ihr Browser unterstützt HTML5 Video-Tags nicht.
branches.overview=Übersicht
branches.active_branches=Aktive Branches
branches.stale_branches=Alte Branches
branches.all=Alle Branches
branches.updated_by=Aktualisiert %[1]s von %[2]s
branches.change_default_branch=Ändere Standard-Branch
editor.new_file=Neue Datei
editor.upload_file=Datei hochladen
editor.edit_file=Datei bearbeiten
editor.preview_changes=Vorschau der Änderungen
editor.cannot_edit_non_text_files=Nicht-Text Dateien können nicht bearbeitet werden
editor.edit_this_file=Datei bearbeiten
editor.must_be_on_a_branch=Sie müssen sich in einem Branch befinden, um Änderungen an dieser Datei vorzuschlagen oder vorzunehmen
editor.fork_before_edit=Um die Datei zu bearbeiten, müssen Sie das Repository forken
editor.delete_this_file=Datei löschen
editor.must_have_write_access=Du musst Schreibzugriff haben, um Änderungen an dieser Datei vorzuschlagen oder vorzunehmen
editor.file_delete_success=Die Datei '%s' wurde erfolgreich gelöscht!
editor.name_your_file=Dateinamen eingeben...
editor.filename_help=Um einen Ordner hinzuzufügen, gib den Namen ein und drücke /. Um einen Ordner zu entfernen, gehe zum Anfang des Feldes und drücke auf die Rücktaste.
editor.or=oder
editor.cancel_lower=abbrechen
editor.commit_changes=Änderungen einchecken
editor.add_tmpl=Hinzufügen von '%s/<filename>'
editor.add='%s' hinzufügen
editor.update='%s' ändern
editor.delete='%s' löschen
editor.commit_message_desc=Eine ausführlichere Beschreibung kann hinzugefügt werden...
editor.commit_directly_to_this_branch=Direkt in den <strong class="branch-name">%s</strong> Branch einchecken.
editor.create_new_branch=Einen <strong>neuen Branch</strong> für diesen Commit erstellen und einen Pull Request starten.
editor.new_branch_name_desc=Neuer Branch Name...
editor.cancel=Abbrechen
editor.filename_cannot_be_empty=Der Dateiname darf nicht leer sein.
editor.branch_already_exists=Branch '%s' existiert bereits in diesem Repository.
editor.directory_is_a_file='%s' im übergeordneten Verzeichnis ist eine Datei und kein Verzeichnis.
editor.file_is_a_symlink=Die Datei '%s' ist ein Symlink, der im Webeditor nicht bearbeitet werden kann.
editor.filename_is_a_directory=Die Datei '%s' existiert bereits als Verzeichnis in diesem Repository.
editor.file_editing_no_longer_exists=Die Datei '%s', welche Sie bearbeiten, existiert in diesem Repository nicht mehr.
editor.file_changed_while_editing=Seit dem Start der Bearbeitung hat sich die Datei geändert. <a target="_blank" href="%s">Hier klicken</a> um die Änderungen zu sehen, oder nochmals <strong>Commit drücken</strong> um die Änderungen zu überschreiben.
editor.file_already_exists=Eine Datei mit dem Namen '%s' existiert bereits in diesem Repository.
editor.no_changes_to_show=Keine Änderungen vorhanden.
editor.fail_to_update_file=Fehler beim Ändern/Erstellen der Datei '%s'. Fehler: %v
editor.fail_to_delete_file=Fehler beim Löschen der Datei '%s'. Fehler: %v
editor.add_subdir=Unterverzeichnis erstellen...
editor.unable_to_upload_files=Fehler beim Hochladen der Dateien zu '%s'. Fehler: %v
editor.upload_files_to_dir=Dateien hochladen nach '%s'
commits.commit_history=Commit Verlauf
commits.commits=Commits
commits.search=Commits durchsuchen
commits.find=Finden
@@ -439,6 +551,11 @@ issues.create=Issue erstellen
issues.new_label=Neues Label
issues.new_label_placeholder=Label-Name...
issues.create_label=Label erstellen
issues.label_templates.title=Lade vordefinierte Label
issues.label_templates.info=Es sind noch keine Label vorhanden. Sie können vordefinierte Label benutzen, oder auf "Neues Label" klicken um eines zu erstellen.
issues.label_templates.helper=Wählen Sie ein Label
issues.label_templates.use=Dieses Label Set benutzen
issues.label_templates.fail_to_load_file=Fehler beim Laden der Label Template Datei '%s': %v
issues.open_tab=%d offen
issues.close_tab=%d geschlossen
issues.filter_label=Label
@@ -480,8 +597,7 @@ issues.commit_ref_at=`hat dieses Issue <a id="%[1]s" href="#%[1]s">%[2]s</a> aus
issues.poster=Ersteller
issues.collaborator=Mitarbeiter
issues.owner=Besitzer
issues.sign_up_for_free=Kostenlos anmelden
issues.sign_in_require_desc=um dieser Diskussion beizutreten. Haben Sie bereits ein Konto? <a href="%s">Anmelden um zu kommentieren</a>
issues.sign_in_require_desc=<a href="%s">Anmelden</a>, um an der Diskussion teilzunehmen.
issues.edit=Bearbeiten
issues.cancel=Abbrechen
issues.save=Speichern
@@ -496,6 +612,8 @@ issues.label_deletion=Label löschen
issues.label_deletion_desc=Das Label wird von allen verknüpften Issues entfernt. Möchten Sie fortfahren?
issues.label_deletion_success=Label wurde erfolgreich gelöscht!
issues.num_participants=%d Beteiligte
issues.attachment.open_tab=`Klicken um "%s" in einem neuen Tab zu öffnen`
issues.attachment.download=`Klicken um "%s" herunterzuladen`
pulls.new=Neuer Pull-Request
pulls.compare_changes=Änderungen vergleichen
@@ -505,6 +623,7 @@ pulls.compare_compare=vergleichen
pulls.filter_branch=Branch filtern
pulls.no_results=Keine Ergebnisse verfügbar.
pulls.nothing_to_compare=Es gibt nichts zu vergleichen, da Base- und Head-Branch gleich sind.
pulls.nothing_merge_base=Es gibt nichts zu vergleichen, da beide Zweige eine komplett unterschiedliche Historie haben.
pulls.has_pull_request=`Es existiert bereits ein Pull-Request zwischen diesen beiden Zielen: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Pull-Request erstellen
pulls.title_desc=möchte %[1]d Commits von <code>%[2]s</code> nach <code>%[3]s</code> zusammenführen
@@ -520,16 +639,21 @@ pulls.is_checking=Die Konfliktprüfung läuft noch. Bitte aktualisieren Sie die
pulls.can_auto_merge_desc=Dieser Pull-Request kann automatisch zusammengeführt werden.
pulls.cannot_auto_merge_desc=Dieser Pull-Request kann nicht automatisch zusammengeführt werden, da es Konflikte gibt.
pulls.cannot_auto_merge_helper=Bitte manuell zusammenführen, um die Konflikte zu lösen.
pulls.create_merge_commit=Erstelle einen Merge-Commit
pulls.rebase_before_merging=Rebase vor dem Zusammenführen
pulls.commit_description=Commit Beschreibung
pulls.merge_pull_request=Pull-Request zusammenführen
pulls.open_unmerged_pull_exists=`Sie können diesen Pull-Request nicht wieder öffnen, da bereits ein offener Pull-Request (#%d) aus dem selben Repository mit den gleichen Merge-Informationen existiert und auf das Zusammenführen wartet.`
pulls.delete_branch=Zweig löschen
pulls.delete_branch_has_new_commits=Zweig kann nicht gelöscht werden, da er noch weitere Commits nach dem Zusammenführen enthält.
milestones.new=Neuer Meilenstein
milestones.open_tab=%d offen
milestones.close_tab=%d geschlossen
milestones.closed=Geschlossen %s
milestones.no_due_date=Kein Fälligkeitsdatum
milestones.open=Offen
milestones.close=Geschlossen
milestones.open=Öffnen
milestones.close=Schließen
milestones.new_subheader=Erstellen Sie Meilensteine, um ihre Issues zu organisieren.
milestones.create=Meilenstein erstellen
milestones.title=Titel
@@ -572,26 +696,61 @@ settings.collaboration.admin=Adminrechte
settings.collaboration.write=Schreibrechte
settings.collaboration.read=Leserechte
settings.collaboration.undefined=Nicht definiert
settings.branches=Branches
settings.branches_bare=Branches leerer Repositories können nicht verwaltet werden. Bitte erst Datei(en) pushen.
settings.default_branch=Standard-Branch
settings.default_branch_desc=Der Standard-Branch gilt als Basis für Commits, Pull-Requests und Online-Bearbeitung.
settings.update=Aktualisieren
settings.update_default_branch_unsupported=Die Änderung des Standard-Branch wird von der Git-Version auf dem Server nicht unterstützt.
settings.update_default_branch_success=Standard-Branch dieses Repositories wurde erfolgreich aktualisiert!
settings.protected_branches=Protected Branches
settings.protected_branches_desc=Schützt Branches vor forcierten Pushes und versehentlichem Löschen. Comitter können freigeschaltet werden.
settings.choose_a_branch=Wählen Sie einen Branch...
settings.branch_protection=Branch-Schutz
settings.branch_protection_desc=Bitte wählen Sie Schutzoptionen für den Branch <b>%s</b>.
settings.protect_this_branch=Diesen Branch schützen
settings.protect_this_branch_desc=Verhindere forcierte Pushes sowie Löschungen.
settings.protect_require_pull_request=Verlange Pull-Request an Stelle von direkten Pushes
settings.protect_require_pull_request_desc=Aktivieren Sie diese Option, um direktes Pushen in diesen Branch zu verhindern. Commits müssen in einen anderen, ungeschützten Branch gepusht werden und dann per Pull-Request in diesen Branch überführt werden.
settings.protect_whitelist_committers=Hinzufügen von Benutzern oder Teams zur Whitelist, die in diesen Branch pushen dürfen
settings.protect_whitelist_committers_desc=Fügt Benutzer oder Teams zur Push-Whitelist dieses Branches hinzu. Auf der Whitelist geführte Benutze können können ohne Prüfung von Pull-Requests pushen.
settings.protect_whitelist_users=Benutzer, die in diesen Branch pushen können
settings.protect_whitelist_search_users=Benutzer suchen
settings.protect_whitelist_teams=Teams, deren Mitglieder in diesen Branch pushen können
settings.protect_whitelist_search_teams=Teams suchen
settings.update_protect_branch_success=Schutzoptionen für diesen Branch wurden erfolgreich aktualisiert!
settings.hooks=Webhooks
settings.githooks=Git-Hooks
settings.basic_settings=Grundeinstellungen
settings.mirror_settings=Mirror Einstellungen
settings.sync_mirror=Jetzt synchronisieren
settings.mirror_sync_in_progress=Mirror Synchronisierung läuft, bitte die Seite in ca. einer Minute neu laden.
settings.site=Offizielle Webseite
settings.update_settings=Einstellungen speichern
settings.change_reponame_prompt=Diese Änderung wirkt sich darauf aus, wie sich Links auf Repositories beziehen.
settings.advanced_settings=Erweiterte Einstellungen
settings.wiki_desc=Wiki aktivieren, damit Benutzer Seiten anlegen können
settings.wiki_desc=Wiki einschalten
settings.use_internal_wiki=Eingebautes Wiki verwenden
settings.allow_public_wiki_desc=Erlaube öffentlichen Zugang zum Wiki, auch wenn das Repository privat ist
settings.use_external_wiki=Externes Wiki verwenden
settings.external_wiki_url=Externe Wiki URL
settings.external_wiki_url_desc=Besucher werden auf diese URL umgeleitet, wenn sie auf den Tab klicken.
settings.issues_desc=Eingebautes einfaches Issue-System verwenden
settings.issues_desc=Issue-Tracker einschalten
settings.use_internal_issue_tracker=Eingebauten Issue-Tracker verwenden
settings.allow_public_issues_desc=Erlaube öffentlichen Zugriff auf Issues, auch wenn das Repository privat ist
settings.use_external_issue_tracker=Externes Issue-System verwenden
settings.external_tracker_url=URL eines externen Issue Trackers
settings.external_tracker_url_desc=Besucher werden auf diese URL umgeleitet, wenn sie auf den Tab klicken.
settings.tracker_url_format=URL-Format des externen Issue-Systems
settings.tracker_issue_style=Namenskonvention des externen Issue-Trackers:
settings.tracker_issue_style.numeric=Numerisch
settings.tracker_issue_style.alphanumeric=Alphanumerisch
settings.tracker_url_format_desc=Sie können die Platzhalter <code>{user} {repo} {index}</code> für den Benutzernamen, den Namen des Repositories und die Issue-Nummer verwenden.
settings.pulls_desc=Pull-Requests aktivieren, um öffentliche Mitwirkung zu ermöglichen
settings.pulls_desc=Erlaube Pull-Requests zur Zusammenarbeit von Repositories und Branches
settings.pulls.ignore_whitespace=Ignoriere whitespace Änderungen
settings.pulls.allow_rebase_merge=Die Verwendung von Rebase erlauben, um Commits zu mergen
settings.danger_zone=Gefahrenzone
settings.cannot_fork_to_same_owner=Besitzer kann das Repository nicht forken.
settings.new_owner_has_same_repo=Der neue Eigentümer hat bereits ein Repository mit dem gleichen Namen. Bitte wählen Sie einen anderen Namen.
settings.convert=In ein normales Repository umwandeln
settings.convert_desc=Dieser Mirror kann in ein normales Repository umgewandelt werden. Dies kann nicht rückgängig gemacht werden.
@@ -599,12 +758,12 @@ settings.convert_notices_1=- Dieser Vorgang wandelt das Mirror-Repository in ein
settings.convert_confirm=Umwandlung bestätigen
settings.convert_succeed=Das Repository wurde erfolgreich in ein normales Repository umgewandelt.
settings.transfer=Besitz übertragen
settings.transfer_desc=Dieses Repository auf einen anderen Benutzer bzw. eine Organisation in der Sie Admin-Rechte haben übertragen.
settings.transfer_desc=Dieses Repository auf einen anderen Benutzer oder eine Organisation, in der Sie Admin-Rechte haben, übertragen.
settings.transfer_notices_1=- Sie werden keinen Zugriff mehr haben, wenn der neue Besitzer ein individueller Benutzer ist.
settings.transfer_notices_2=- Sie werden weiterhin Zugriff haben, wenn der neue Besitzer eine Organisation ist und Sie einer der Besitzer sind.
settings.transfer_form_title=Bitte geben Sie die folgenden Informationen ein, um die Operation zu bestätigen:
settings.wiki_delete=Wiki-Daten löschen
settings.wiki_delete_desc=Das Löschen von Wiki Daten kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig.
settings.wiki_delete_desc=Das Löschen von Wiki-Daten kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig.
settings.wiki_delete_notices_1=- Dies löscht und deaktiviert das Wiki für %s
settings.wiki_deletion_success=Repository Wiki Daten erfolgreich gelöscht.
settings.delete=Dieses Repository löschen
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Nach dem Löschen wird dieser Benutzer keine
settings.remove_collaborator_success=Mitarbeiter wurde entfernt.
settings.search_user_placeholder=Benutzer suchen...
settings.org_not_allowed_to_be_collaborator=Eine Organisation kann nicht als Mitarbeiter hinzugefügt werden.
settings.user_is_org_member=Benutzer ist ein Organisationsmitglied und kann nicht als Mitarbeiter hinzugefügt werden.
settings.add_webhook=Webhook hinzufügen
settings.hooks_desc=Webhooks erlauben es Ihnen, externe Dienste zu informieren, wenn etwas Bestimmtes in Ihrem Repository passiert. Gogs sendet dann einen POST-Request an alle angegebenen URLs. Erfahren Sie mehr in unserem <a target="_blank" href="%s">Webhooks Guide</a>.
settings.webhook_deletion=Webhook entfernen
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Webhook wurde erfolgreich entfernt!
settings.webhook.test_delivery=Senden testen
settings.webhook.test_delivery_desc=Sendet ein simuliertes Push-Ereignis, um die Webhook-Einstellungen zu testen
settings.webhook.test_delivery_success=Test-Webhook wurde zur Auslieferungswarteschlange hinzugefügt. Es kann einige Sekunden dauern, bevor es in der Auslieferungshistorie erscheint.
settings.webhook.redelivery=Erneuter Versand
settings.webhook.redelivery_success=Hook-Task '%s' wurde wieder zur Auslieferungswarteschlange hinzugefügt. Es kann einige Sekunden, bis sich der Auslieferungsstatus in der History aktualisiert hat.
settings.webhook.request=Anfrage
settings.webhook.response=Antwort
settings.webhook.headers=Kopfzeilen
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Gogs sendet einen <code>POST</code>-Request an die unt
settings.payload_url=Payload URL
settings.content_type=Inhaltstyp
settings.secret=Secret
settings.secret_desc=Das Secret wird im <code>X-Gogs-Signature</code> Header als hexadezimalem SHA256 HMAC Stempel der Nutzlast.
settings.slack_username=Benutzername
settings.slack_icon_url=Icon URL
settings.slack_color=Farbe
@@ -658,8 +819,20 @@ settings.event_send_everything=Ich brauche <strong>alles</strong>.
settings.event_choose=Lass mich auswählen, was ich brauche.
settings.event_create=Erstellen
settings.event_create_desc=Branch/Tag erstellt
settings.event_delete=Löschen
settings.event_delete_desc=Branch/Tag gelöscht
settings.event_fork=Fork
settings.event_fork_desc=Repository geforkt
settings.event_push=Push
settings.event_push_desc=Git push auf ein Repository
settings.event_issues=Issues
settings.event_issues_desc=Issue geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht, einem Meilenstein zugewiesen oder davon entfernt.
settings.event_pull_request=Pull-Request
settings.event_pull_request_desc=Pull-Request geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht, einem Meilenstein zugewiesen, davon entfernt oder synchronisiert.
settings.event_issue_comment=Issue-Kommentar
settings.event_issue_comment_desc=Issue-Kommentar angelegt, geändert oder gelöscht.
settings.event_release=Release
settings.event_release_desc=Release in Repository veröffentlicht.
settings.active=Aktiv
settings.active_helper=Details über das auslösende Ereignis des Webhooks werden ebenfalls mit gesendet
settings.add_hook_success=Webhook hinzugefügt
@@ -669,10 +842,13 @@ settings.delete_webhook=Webhook löschen
settings.recent_deliveries=Letzte Zustellungen
settings.hook_type=Hook Typ
settings.add_slack_hook_desc=Fügen Sie <a href="%s">Slack</a>-Integration zu Ihrem Repository hinzu.
settings.add_discord_hook_desc=Fügen Sie <a href="%s">Discord</a>-Integration zu Ihrem Repository hinzu.
settings.add_dingtalk_hook_desc=<a href="%s">Dingtalk</a>-Integration zu deinem Repository hinzufügen.
settings.slack_token=Token
settings.slack_domain=Domain
settings.slack_channel=Kanal
settings.deploy_keys=Deploy-Schlüssel
settings.deploy_keys_helper=<b>Häufiger Fehler!</b> Wenn Sie öffentliche Schlüssel hinzufügen wollen, gehen Sie zu Ihren <a href="%s%s"> Kontoeinstellungen</a>.
settings.add_deploy_key=Deploy-Schlüssel hinzufügen
settings.deploy_key_desc=Deploy-Schlüssel haben nur lesenden Zugriff. Sie sind nicht identisch mit dem SSH-Schlüssel des persönlichen Kontos.
settings.no_deploy_keys=Sie haben noch keine Deploy-Schlüssel hinzugefügt.
@@ -684,6 +860,8 @@ settings.add_key_success=Der Deploy-Schlüssel '%s' wurde erfolgreich hinzugefü
settings.deploy_key_deletion=Deploy-Schlüssel löschen
settings.deploy_key_deletion_desc=Nach dem Löschen dieses Deploy-Schlüssels werden entsprechende Zugriffe auf dieses Repository nicht mehr möglich sein. Möchten Sie wirklich fortfahren?
settings.deploy_key_deletion_success=Deploy-Schlüssel wurde erfolgreich gelöscht!
settings.description_desc=Beschreibung des Repository. Maximal 512 Zeichen.
settings.description_length=Verfügbare Zeichen
diff.browse_source=Quellcode durchsuchen
diff.parent=Ursprung
@@ -702,7 +880,6 @@ release.releases=Releases
release.new_release=Neues Release
release.draft=Entwurf
release.prerelease=Pre-Release
release.stable=Stabil
release.edit=bearbeiten
release.ahead=<strong>%d</strong> Commits zu %s seit diesem Release
release.source_code=Quelltext
@@ -751,6 +928,7 @@ team_permission_desc=Welche Berechtigungsstufe soll das Team haben?
form.name_reserved=Organisationsname '%s' ist bereits vergeben.
form.name_pattern_not_allowed=Organisationsnamen der Form '%s' sind nicht erlaubt.
form.team_name_reserved=Der Teamname '%s' ist reserviert.
settings=Einstellungen
settings.options=Optionen
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Garbage Collection auf Repositories ausführen
dashboard.git_gc_repos_success=Garbage Collection wurde auf allen Repositories erfolgreich ausgeführt.
dashboard.resync_all_sshkeys=Datei '.ssh/authorized_keys' neu anlegen (Achtung: Schlüssel, die nicht zu Gogs gehören gehen verloren)
dashboard.resync_all_sshkeys_success=Alle öffentlichen Keys wurden erfolgreich neu geschrieben.
dashboard.resync_all_update_hooks=Alle Aktualisierungs-Hooks von Repositories neu anlegen (wird benötigt, wenn der angepasste Konfigurationspfad geändert wurde)
dashboard.resync_all_update_hooks_success=Die Hooks aller Repositories wurden erfolgreich neu angelegt.
dashboard.resync_all_hooks=Synchronisiere pre-receive, update und post-receive Hooks für alle Repositories
dashboard.resync_all_hooks_success=Pre-receive, update und post-receive Hooks aller Repositorien wurden erfolgreich synchronisiert.
dashboard.reinit_missing_repos=Alle Repository-Datensätze mit verloren gegangenen Git-Dateien neu initialisieren
dashboard.reinit_missing_repos_success=Alle Repository-Datensätze, die Git-Dateien verloren haben wurden erfolgreich neu initialisiert.
@@ -917,12 +1095,14 @@ repos.private=Privat
repos.watches=Beobachtungen
repos.stars=Favoriten
repos.issues=Issues
repos.size=Größe
auths.auth_manage_panel=Authentifizierung
auths.auth_sources=Authentifizierungsquelle
auths.new=Neue Quelle hinzufügen
auths.name=Name
auths.type=Typ
auths.enabled=Aktiviert
auths.default=Standard
auths.updated=Aktualisiert
auths.auth_type=Authentifizierungstyp
auths.auth_name=Authentifizierungsname
@@ -931,15 +1111,21 @@ auths.domain=Domain
auths.host=Host
auths.port=Port
auths.bind_dn=DN binden
auths.bind_dn_helper=Sie können "%s" als Platzhalter für den Benutzernamen einsetzen, z.B. DOM\%s
auths.bind_password=Passwort binden
auths.bind_password_helper=Achtung: Das Passwort wird im Klartext gespeichert. Benutzen Sie kein Konto mit hoher Berechtigungsstufe.
auths.user_base=Basis für Benutzersuche
auths.user_dn=Benutzer DN
auths.user_dn=Benutzer-DN
auths.attribute_username=Attribut Benutzername
auths.attribute_username_placeholder=Leer lassen, um den Wert aus dem Anmeldeformular als Benutzernamen zu verwenden.
auths.attribute_name=Attribut Vorname
auths.attribute_name=Vornamenattribut
auths.attribute_surname=Attribut Nachname
auths.attribute_mail=Attribut E-Mail
auths.verify_group_membership=Überprüfen der Gruppenmitgliedschaft
auths.group_search_base_dn=Gruppensuche Basisdomainname
auths.group_filter=Gruppenfilter
auths.group_attribute_contain_user_list=Gruppenattribut, beinhaltet die Benutzerliste
auths.user_attribute_listed_in_group=Benutzerattribut in der Gruppenliste
auths.attributes_in_bind=Hole Attribute im Bind-Kontext
auths.filter=Benutzerfilter
auths.admin_filter=Admin Filter
@@ -953,9 +1139,9 @@ auths.enable_tls=TLS-Verschlüsselung aktivieren
auths.skip_tls_verify=TLS-Prüfung überspringen
auths.pam_service_name=PAM Dienstname
auths.enable_auto_register=Automatische Registrierung aktivieren
auths.tips=Tipps
auths.edit=Authentifizierungseinstellungen bearbeiten
auths.activated=Diese Authentifizierung ist aktiv
auths.default_auth=Diese Authentifizierungsmethode ist die Vorgabe
auths.new_success=Neue Authentifizierung '%s' wurde erfolgreich hinzugefügt.
auths.update_success=Die Authentifizierungseinstellungen wurden erfolgreich aktualisiert.
auths.update=Authentifizierungseinstellungen aktualisieren
@@ -964,9 +1150,11 @@ auths.delete_auth_title=Authentifizierung löschen
auths.delete_auth_desc=Diese Authentifizierung wird gelöscht. Möchten Sie fortfahren?
auths.still_in_used=Diese Authentifizierung wird noch von einigen Benutzern verwendet. Bitte löschen Sie diese Benutzer oder ändern Sie deren Anmeldetyp.
auths.deletion_success=Authentifizierung wurde erfolgreich gelöscht!
auths.login_source_exist=Login-Quelle '%s' ist bereits vorhanden.
config.not_set=(nicht festgelegt)
config.server_config=Serverkonfiguration
config.app_name=Anwendungsname
config.app_name=Name der Anwendung
config.app_ver=Anwendungsversion
config.app_url=Anwendungs-URL
config.domain=Domain
@@ -974,10 +1162,9 @@ config.offline_mode=Offline-Modus
config.disable_router_log=Router-Log deaktivieren
config.run_user=Ausführender Benutzer
config.run_mode=Laufzeit-Modus
config.repo_root_path=Repository-Verzeichnis
config.git_version=Git Version
config.static_file_root_path=Verzeichnis für statische Dateien
config.log_file_root_path=Log-Verzeichnis
config.script_type=Skript-Typ
config.reverse_auth_user=Nutzer bei Reverse-Authentifizierung
config.ssh_config=SSH Konfiguration
@@ -987,11 +1174,25 @@ config.ssh_domain=Domain
config.ssh_port=Port
config.ssh_listen_port=Listen Port
config.ssh_root_path=Verzeichnis
config.ssh_rewrite_authorized_keys_at_start=Beim Start authorized_keys umschreiben
config.ssh_key_test_path=Schlüssel-Test-Pfad
config.ssh_keygen_path=Keygen ('ssh-keygen') Pfad
config.ssh_minimum_key_size_check=Prüfung der Mindestschlüssellänge
config.ssh_minimum_key_sizes=Minimale Schlüssellängen
config.repo_config=Repository-Konfiguration
config.repo_root_path=Repository-Verzeichnis
config.script_type=Skript-Typ
config.repo_force_private=Erzwinge privat
config.max_creation_limit=Maximal erstellbare Anzahl
config.preferred_licenses=Bevorzugte Lizenzen
config.disable_http_git=Deaktiviere HTTP-Git
config.enable_local_path_migration=Erlaube Migration von lokalem Pfad
config.commits_fetch_concurrency=Anzahl gleichzeitiger Commit-/Fetch-Prozesse
config.http_config=HTTP-Konfiguration
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Datenbankkonfiguration
config.db_type=Typ
config.db_host=Host
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL-Modus
config.db_ssl_mode_helper=(nur für "postgres")
config.db_path=Verzeichnis
config.db_path_helper=(für "sqlite3" und "tidb")
config.service_config=Service-Konfiguration
config.register_email_confirm=E-Mail-Bestätigung bei Registrierung
config.disable_register=Registrierung deaktivieren
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Prüfung der Mindestschlüssellänge deaktiveren
config.enable_captcha=Captcha aktivieren
config.active_code_lives=Aktivierungscode Lebensdauer
config.reset_password_code_lives=Passwortcode Lebensdauer
config.webhook_config=Webhook-Konfiguration
config.queue_length=Warteschlangenlänge
config.deliver_timeout=Zeitlimit für Zustellung
config.skip_tls_verify=TLS verifikation überspringen
config.mailer_config=Mailer-Konfiguration
config.mailer_enabled=Aktiviert
config.mailer_disable_helo=HELO Deaktivieren
config.mailer_name=Name
config.mailer_subject_prefix=Betreff-Präfix
config.mailer_host=Host
config.mailer_user=Benutzer
config.send_test_mail=Test-E-Mail senden
config.test_mail_failed=Das Senden der Test-E-Mail an '%s': %v ist fehlgeschlagen
config.test_mail_sent=Test-E-Mail wurde an '%s' gesendet.
config.oauth_config=OAuth-Konfiguration
config.oauth_enabled=Aktiviert
config.cache_config=Cache-Konfiguration
config.cache_adapter=Cache-Adapter
config.cache_interval=Cache-Intervall
config.cache_conn=Cache-Anbindung
config.session_config=Session-Konfiguration
config.session_provider=Session-Provider
config.provider_config=Provider-Einstellungen
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC-Intervall
config.session_life_time=Session-Lebensdauer
config.https_only=Nur HTTPS
config.cookie_life_time=Cookie-Lebensdauer
config.picture_config=Konfiguration der Profilbilder
config.picture_service=Bildservice
config.disable_gravatar=Gravatar deaktivieren
config.enable_federated_avatar=Föderierte Profilbilder einschalten
config.git_config=Git Konfiguration
config.git_disable_diff_highlight=Diff Syntaxhervorhebung ausschalten
config.git_max_diff_lines=Max Diff Zeilen (in einer Datei)
config.git_max_diff_line_characters=Max Diff Zeichen (in einer Zeile)
config.git_max_diff_files=Max Diff Dateien (Anzeige)
config.git_gc_args=GC-Argumente
config.git_migrate_timeout=Zeitlimit für Migration
config.git_mirror_timeout=Zeitlimit für Mirror-Aktualisierung
config.git_clone_timeout=Zeitlimit für Clone
config.git_pull_timeout=Zeitlimit für Pull
config.git_gc_timeout=Zeitlimit für GC
config.log_config=Konfiguration des Loggings
config.log_mode=Log-Modus
config.log_mode=Modus
config.log_options=Optionen
monitor.cron=Cron-Tasks
monitor.name=Name
@@ -1074,17 +1297,24 @@ notices.delete_success=Systemmitteilungen wurden erfolgreich gelöscht.
create_repo=hat das Repository <a href="%s">%s</a> erstellt
rename_repo=hat das Repository von <code>%[1]s</code> zu <a href="%[2]s">%[3]s</a> umbenannt
commit_repo=hat auf <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> gepusht
compare_commits=Zeige Vergleich für diese %d Commits
transfer_repo=hat Repository <code>%s</code> transferiert an <a href="%s">%s</a>
create_issue=`hat Issue <a href="%s/issues/%s">%s#%[2]s</a> geöffnet`
close_issue=`hat Issue <a href="%s/issues/%s">%s#%[2]s</a> geschlossen`
reopen_issue=`hat Issue <a href="%s/issues/%s">%s#%[2]s</a> wieder geöffnet`
comment_issue=`hat Issue <a href="%s/issues/%s">%s#%[2]s</a> kommentiert`
create_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> erstellt`
close_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> geschlossen`
reopen_pull_request=`hat den Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> wieder geöffnet`
comment_issue=`hat Issue <a href="%s/issues/%s">%s#%[2]s</a> kommentiert`
merge_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> zuammengeführt`
transfer_repo=hat Repository <code>%s</code> transferiert an <a href="%s">%s</a>
merge_pull_request=`hat Pull-Request <a href="%s/pulls/%s">%s#%[2]s</a> zusammengeführt`
create_branch=hat neuen Branch <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> angelegt
delete_branch=hat Branch <code>%[2]s</code> in <a href="%[1]s">%[3]s</a> gelöscht
push_tag=hat Tag <a href="%s/src/%s">%[2]s</a> auf <a href="%[1]s">%[3]s</a> gepusht
compare_commits=Zeige Vergleich für diese %d Commits
delete_tag=hat Tag <code>%[2]s</code> in <a href="%[1]s">%[3]s</a> gelöscht
fork_repo=hat das Repository nach <a href="%s">%s</a> geforkt
mirror_sync_push=hat auf <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a> gepusht
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=vor

1345
conf/locale/locale_en-GB.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -48,7 +48,7 @@ cancel = Cancel
install = Installation
title = Install Steps For First-time Run
docker_helper = If you're running Gogs inside Docker, please read <a target="_blank" href="%s">Guidelines</a> carefully before you change anything in this page!
requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB.
requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3, MSSQL or TiDB.
db_title = Database Settings
db_type = Database Type
host = Host
@@ -58,9 +58,8 @@ db_name = Database Name
db_helper = Please use INNODB engine with utf8_general_ci charset for MySQL.
ssl_mode = SSL Mode
path = Path
sqlite_helper = The file path of SQLite3 or TiDB database. <br>Please use absolute path when you start as service.
err_empty_db_path = SQLite3 or TiDB database path cannot be empty.
err_invalid_tidb_name = TiDB database name does not allow characters "." and "-".
sqlite_helper = The file path of SQLite3 database. <br>Please use absolute path when you start as service.
err_empty_db_path = SQLite3 database path cannot be empty.
no_admin_and_disable_registration = You cannot disable registration without creating an admin account.
err_empty_admin_password = Admin password cannot be empty.
@@ -75,12 +74,16 @@ domain = Domain
domain_helper = This affects SSH clone URLs.
ssh_port = SSH Port
ssh_port_helper = Port number which your SSH server is using, leave it empty to disable SSH feature.
use_builtin_ssh_server = Use Builtin SSH Server
use_builtin_ssh_server_popup = Start builtin SSH server for Git operations to distinguish from system SSH daemon.
http_port = HTTP Port
http_port_helper = Port number which application will listen on.
app_url = Application URL
app_url_helper = This affects HTTP/HTTPS clone URL and somewhere in email.
log_root_path = Log Path
log_root_path_helper = Directory to write log files to.
enable_console_mode = Enable Console Mode
enable_console_mode_popup = In addition to file mode, also print logs to console.
optional_title = Optional Settings
email_title = Email Service Settings
@@ -96,6 +99,8 @@ offline_mode = Enable Offline Mode
offline_mode_popup = Disable CDN even in production mode, all resource files will be served locally.
disable_gravatar = Disable Gravatar Service
disable_gravatar_popup = Disable Gravatar and custom sources, all avatars are uploaded by users or default.
federated_avatar_lookup = Enable Federated Avatars Lookup
federated_avatar_lookup_popup = Enable federated avatars lookup to use federated open source service based on libravatar.
disable_registration = Disable Self-registration
disable_registration_popup = Disable user self-registration, only admin can create accounts.
enable_captcha = Enable Captcha
@@ -114,6 +119,8 @@ sqlite3_not_available = Your release version does not support SQLite3, please do
invalid_db_setting = Database setting is not correct: %v
invalid_repo_path = Repository root path is invalid: %v
run_user_not_match = Run user isn't the current user: %s -> %s
smtp_host_missing_port = SMTP Host is missing port in address.
invalid_smtp_from = SMTP From field is not valid: %v
save_config_failed = Fail to save configuration: %v
invalid_admin_setting = Admin account setting is invalid: %v
install_success = Welcome! We're glad that you chose Gogs, have fun and take care.
@@ -135,6 +142,7 @@ issues.in_your_repos = In your repositories
[explore]
repos = Repositories
users = Users
organizations = Organizations
search = Search
[auth]
@@ -142,7 +150,9 @@ create_new_account = Create New Account
register_hepler_msg = Already have an account? Sign in now!
social_register_hepler_msg = Already have an account? Bind now!
disable_register_prompt = Sorry, registration has been disabled. Please contact the site administrator.
disable_register_mail = Sorry, Register Mail Confirmation has been disabled.
disable_register_mail = Sorry, email services are disabled. Please contact the site administrator.
auth_source = Authentication Source
local = Local
remember_me = Remember Me
forgot_password= Forgot Password
forget_password = Forgot password?
@@ -154,7 +164,6 @@ prohibit_login_desc = Your account is prohibited to login, please contact site a
resent_limit_prompt = Sorry, you already requested an activation email recently. Please wait 3 minutes then try again.
has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (<b>%s</b>). If you haven't received a confirmation email or need to resend a new one, please click on the button below.
resend_mail = Click here to resend your activation email
email_not_associate = This email address is not associated with any account.
send_reset_mail = Click here to (re)send your password reset email
reset_password = Reset Your Password
invalid_code = Sorry, your confirmation code has expired or not valid.
@@ -162,6 +171,14 @@ reset_password_helper = Click here to reset your password
password_too_short = Password length cannot be less then 6.
non_local_account = Non-local accounts cannot change passwords through Gogs.
login_two_factor = Two-factor Authentication
login_two_factor_passcode = Authentication Passcode
login_two_factor_enter_recovery_code = Enter a two-factor recovery code
login_two_factor_recovery = Two-factor Recovery
login_two_factor_recovery_code = Recovery Code
login_two_factor_enter_passcode = Enter a two-factor passcode
login_two_factor_invalid_recovery_code = Recovery code has been used or does not valid.
[mail]
activate_account = Please activate your account
activate_email = Verify your email address
@@ -187,9 +204,17 @@ TeamName = Team name
AuthName = Authorization name
AdminEmail = Admin email
NewBranchName = New branch name
CommitSummary = Commit summary
CommitMessage = Commit message
CommitChoice = Commit choice
TreeName = File path
Content = Content
require_error = ` cannot be empty.`
alpha_dash_error = ` must be valid alpha or numeric or dash(-_) characters.`
alpha_dash_dot_error = ` must be valid alpha or numeric or dash(-_) or dot characters.`
alpha_dash_dot_slash_error = ` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error = ` must be size %s.`
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
@@ -206,6 +231,7 @@ org_name_been_taken = Organization name has already been taken.
team_name_been_taken = Team name has already been taken.
email_been_used = Email address has already been used.
username_password_incorrect = Username or password is not correct.
auth_source_mismatch = The authentication source selected is not associated with the user.
enterred_invalid_repo_name = Please make sure that the repository name you entered is correct.
enterred_invalid_owner_name = Please make sure that the owner name you entered is correct.
enterred_invalid_password = Please make sure the that password you entered is correct.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed = Username pattern '%s' is not allowed.
[settings]
profile = Profile
password = Password
avatar = Avatar
ssh_keys = SSH Keys
social = Social Accounts
applications = Applications
security = Security
repos = Repositories
orgs = Organizations
applications = Applications
delete = Delete Account
uid = Uid
public_profile = Public Profile
profile_desc = Your email address is public and will be used for any account related notifications, and any web based operations made via the site.
@@ -259,7 +286,9 @@ change_username_prompt = This change will affect the way how links relate to you
continue = Continue
cancel = Cancel
enable_custom_avatar = Enable Custom Avatar
lookup_avatar_by_mail = Lookup Avatar by mail
federated_avatar_lookup = Federated Avatar Lookup
enable_custom_avatar = Use Custom Avatar
choose_new_avatar = Choose new avatar
update_avatar = Update Avatar Setting
delete_current_avatar = Delete Current Avatar
@@ -284,7 +313,7 @@ email_deletion = Email Deletion
email_deletion_desc = Deleting this email address will remove related information from your account. Do you want to continue?
email_deletion_success = Email has been deleted successfully!
add_new_email = Add new email address
add_email = Add email
add_email = Add Email
add_email_confirmation_sent = A new confirmation email has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process.
add_email_success = Your new email address was successfully added.
@@ -308,10 +337,31 @@ no_activity = No recent activity
key_state_desc = This key is used in last 7 days
token_state_desc = This token is used in last 7 days
manage_social = Manage Associated Social Accounts
social_desc = This is a list of associated social accounts. Remove any binding that you do not recognize.
unbind = Unbind
unbind_success = Social account has been unbound.
two_factor = Two-factor Authentication
two_factor_status = Status:
two_factor_on = On
two_factor_off = Off
two_factor_enable = Enable
two_factor_disable = Disable
two_factor_view_recovery_codes = View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http = For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title = Enable Two-factor Authentication
two_factor_scan_qr = Please use your authentication application to scan the image:
two_factor_or_enter_secret = Or enter the secret:
two_factor_then_enter_passcode = Then enter passcode:
two_factor_verify = Verify
two_factor_invalid_passcode = The passcode you entered is not valid, please try again!
two_factor_reused_passcode = The passcode you entered has already been used, please try another one!
two_factor_enable_error = Enable Two-factor authentication failed: %v
two_factor_enable_success = Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title = Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc = Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes = Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error = Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success = New recovery codes has been generated successfully!
two_factor_disable_title = Disable Two-factor Authentication
two_factor_disable_desc = Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success = Two-factor authentication has disabled successfully!
manage_access_token = Manage Personal Access Tokens
generate_new_token = Generate New Token
@@ -325,6 +375,15 @@ access_token_deletion = Personal Access Token Deletion
access_token_deletion_desc = Delete this personal access token will remove all related accesses of application. Do you want to continue?
delete_token_success = Personal access token has been removed successfully! Don't forget to update your application as well.
orgs.none = You are not a member of any organizations.
orgs.leave_title = Leave organization
orgs.leave_desc = You will lose access to all repositories and teams after you left the organization. Do you want to continue?
repos.leave = Leave
repos.leave_title = Leave repository
repos.leave_desc = You will lose access to the repository after you left. Do you want to continue?
repos.leave_success = You have left repository '%s' successfully!
delete_account = Delete Your Account
delete_prompt = The operation will delete your account permanently, and <strong>CANNOT</strong> be undone!
confirm_delete_account = Confirm Deletion
@@ -345,7 +404,7 @@ fork_from = Fork From
fork_visiblity_helper = You cannot alter the visibility of a forked repository.
repo_desc = Description
repo_lang = Language
repo_lang_helper = Select .gitignore files
repo_gitignore_helper = Select .gitignore templates
license = License
license_helper = Select a license file
readme = Readme
@@ -358,9 +417,12 @@ mirror_prune_desc = Remove any remote-tracking references that no longer exist o
mirror_interval = Mirror Interval (hour)
mirror_address = Mirror Address
mirror_address_desc = Please include necessary user credentials in the address.
mirror_last_synced = Last Synced
watchers = Watchers
stargazers = Stargazers
forks = Forks
repo_description_helper = Description of repository. Maximum 512 characters length.
repo_description_length = Available characters
form.reach_limit_of_creation = The owner has reached maximum creation limit of %d repositories.
form.name_reserved = Repository name '%s' is reserved.
@@ -371,14 +433,14 @@ migrate_type = Migration Type
migrate_type_helper = This repository will be a <span class="text blue">mirror</span>
migrate_repo = Migrate Repository
migrate.clone_address = Clone Address
migrate.clone_address_desc = This can be a HTTP/HTTPS/GIT URL or local server path.
migrate.clone_address_desc = This can be a HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local = You're also allowed to migrate a repository by local server path.
migrate.permission_denied = You are not allowed to import local repositories.
migrate.invalid_local_path = Invalid local path, it does not exist or not a directory.
migrate.failed = Migration failed: %v
mirror_from = mirror of
forked_from = forked from
fork_from_self = You cannot fork a repository you already own!
copy_link = Copy
copy_link_success = Copied!
copy_link_error = Press ⌘-C or Ctrl-C to copy
@@ -394,9 +456,9 @@ quick_guide = Quick Guide
clone_this_repo = Clone this repository
create_new_repo_command = Create a new repository on the command line
push_exist_repo = Push an existing repository from the command line
repo_is_empty = This repository is empty, please come back later!
bare_message = This repository does not have any content yet.
code = Code
files = Files
branch = Branch
tree = Tree
filter_branch_and_tag = Filter branch or tag
@@ -407,13 +469,63 @@ pulls = Pull Requests
labels = Labels
milestones = Milestones
commits = Commits
git_branches = Branches
releases = Releases
file_raw = Raw
file_history = History
file_view_raw = View Raw
file_permalink = Permalink
file_too_large = This file is too large to be shown
video_not_supported_in_browser = Your browser doesn't support HTML5 video tag.
branches.overview = Overview
branches.active_branches = Active Branches
branches.stale_branches = Stale Branches
branches.all = All Branches
branches.updated_by = Updated %[1]s by %[2]s
branches.change_default_branch = Change Default Branch
editor.new_file = New file
editor.upload_file = Upload file
editor.edit_file = Edit file
editor.preview_changes = Preview Changes
editor.cannot_edit_non_text_files = Cannot edit non-text files
editor.edit_this_file = Edit this file
editor.must_be_on_a_branch = You must be on a branch to make or propose changes to this file
editor.fork_before_edit = You must fork this repository before editing the file
editor.delete_this_file = Delete this file
editor.must_have_write_access = You must have write access to make or propose changes to this file
editor.file_delete_success = File '%s' has been deleted successfully!
editor.name_your_file = Name your file...
editor.filename_help = To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
editor.or = or
editor.cancel_lower = cancel
editor.commit_changes = Commit Changes
editor.add_tmpl = Add '%s/<filename>'
editor.add = Add '%s'
editor.update = Update '%s'
editor.delete = Delete '%s'
editor.commit_message_desc = Add an optional extended description...
editor.commit_directly_to_this_branch = Commit directly to the <strong class="branch-name">%s</strong> branch.
editor.create_new_branch = Create a <strong>new branch</strong> for this commit and start a pull request.
editor.new_branch_name_desc = New branch name...
editor.cancel = Cancel
editor.filename_cannot_be_empty = Filename cannot be empty.
editor.branch_already_exists = Branch '%s' already exists in this repository.
editor.directory_is_a_file = Entry '%s' in the parent path is a file not a directory in this repository.
editor.file_is_a_symlink = The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory = The filename '%s' is an existing directory in this repository.
editor.file_editing_no_longer_exists = The file '%s' you are editing no longer exists in the repository.
editor.file_changed_while_editing = File content has been changed since you started editing. <a target="_blank" href="%s">Click here</a> to see what have been changed or <strong>press commit again</strong> to overwrite those changes.
editor.file_already_exists = A file with name '%s' already exists in this repository.
editor.no_changes_to_show = There are no changes to show.
editor.fail_to_update_file = Failed to update/create file '%s' with error: %v
editor.fail_to_delete_file = Failed to delete file '%s' with error: %v
editor.add_subdir = Add subdirectory...
editor.unable_to_upload_files = Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir = Upload files to '%s'
commits.commit_history = Commit History
commits.commits = Commits
commits.search = Search commits
commits.find = Find
@@ -439,6 +551,11 @@ issues.create = Create Issue
issues.new_label = New Label
issues.new_label_placeholder = Label name...
issues.create_label = Create Label
issues.label_templates.title = Load a predefined set of labels
issues.label_templates.info = There aren't any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
issues.label_templates.helper = Select a label set
issues.label_templates.use = Use this label set
issues.label_templates.fail_to_load_file = Failed to load label template file '%s': %v
issues.open_tab = %d Open
issues.close_tab = %d Closed
issues.filter_label = Label
@@ -480,8 +597,7 @@ issues.commit_ref_at = `referenced this issue from a commit <a id="%[1]s" href="
issues.poster = Poster
issues.collaborator = Collaborator
issues.owner = Owner
issues.sign_up_for_free = Sign up for free
issues.sign_in_require_desc = to join this conversation. Already have an account? <a href="%s">Sign in to comment</a>
issues.sign_in_require_desc = <a href="%s">Sign in</a> to join this conversation.
issues.edit = Edit
issues.cancel = Cancel
issues.save = Save
@@ -496,6 +612,8 @@ issues.label_deletion = Label Deletion
issues.label_deletion_desc = Deleting this label will remove its information in all related issues. Do you want to continue?
issues.label_deletion_success = Label has been deleted successfully!
issues.num_participants = %d Participants
issues.attachment.open_tab = `Click to see "%s" in a new tab`
issues.attachment.download = `Click to download "%s"`
pulls.new = New Pull Request
pulls.compare_changes = Compare Changes
@@ -505,6 +623,7 @@ pulls.compare_compare = compare
pulls.filter_branch = Filter branch
pulls.no_results = No results found.
pulls.nothing_to_compare = There is nothing to compare because base and head branches are even.
pulls.nothing_merge_base = There is nothing to compare because two branches have completely different history.
pulls.has_pull_request = `There is already a pull request between these two targets: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create = Create Pull Request
pulls.title_desc = wants to merge %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking = The conflict checking is still in progress, please refresh p
pulls.can_auto_merge_desc = This pull request can be merged automatically.
pulls.cannot_auto_merge_desc = This pull request can't be merged automatically because there are conflicts.
pulls.cannot_auto_merge_helper = Please merge manually in order to resolve the conflicts.
pulls.create_merge_commit = Create a merge commit
pulls.rebase_before_merging = Rebase before merging
pulls.commit_description = Commit Description
pulls.merge_pull_request = Merge Pull Request
pulls.open_unmerged_pull_exists = `You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
pulls.delete_branch = Delete Branch
pulls.delete_branch_has_new_commits = Branch cannot be deleted because it has new commits after mergence.
milestones.new = New Milestone
milestones.open_tab = %d Open
@@ -572,28 +696,61 @@ settings.collaboration.admin = Admin
settings.collaboration.write = Write
settings.collaboration.read = Read
settings.collaboration.undefined = Undefined
settings.branches = Branches
settings.branches_bare = You cannot manage branches for bare repository. Please push some content first.
settings.default_branch = Default Branch
settings.default_branch_desc = The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update = Update
settings.update_default_branch_unsupported = Change default branch is not supported by the Git version on server.
settings.update_default_branch_success = Default branch of this repository has been updated successfully!
settings.protected_branches = Protected Branches
settings.protected_branches_desc = Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch = Choose a branch...
settings.branch_protection = Branch Protection
settings.branch_protection_desc = Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch = Protect this branch
settings.protect_this_branch_desc = Disable force pushes and prevent from deletion.
settings.protect_require_pull_request = Require pull request instead direct pushing
settings.protect_require_pull_request_desc = Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers = Whitelist who can push to this branch
settings.protect_whitelist_committers_desc = Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users = Users who can push to this branch
settings.protect_whitelist_search_users = Search users
settings.protect_whitelist_teams = Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams = Search teams
settings.update_protect_branch_success = Protect options for this branch has been updated successfully!
settings.hooks = Webhooks
settings.githooks = Git Hooks
settings.basic_settings = Basic Settings
settings.mirror_settings = Mirror Settings
settings.sync_mirror = Sync Now
settings.mirror_sync_in_progress = Mirror syncing is in progress, please refresh page in about a minute.
settings.site = Official Site
settings.update_settings = Update Settings
settings.change_reponame_prompt = This change will affect how links relate to the repository.
settings.advanced_settings = Advanced Settings
settings.wiki_desc = Enable wiki system
settings.use_internal_wiki = Use builtin wiki
settings.allow_public_wiki_desc = Allow public access to wiki when repository is private
settings.use_external_wiki = Use external wiki
settings.external_wiki_url = External Wiki URL
settings.external_wiki_url_desc = Visitors will be redirected to URL when they click on the tab.
settings.issues_desc = Enable issue tracker
settings.use_internal_issue_tracker = Use builtin lightweight issue tracker
settings.allow_public_issues_desc = Allow public access to issues when repository is private
settings.use_external_issue_tracker = Use external issue tracker
settings.external_tracker_url = External Issue Tracker URL
settings.external_tracker_url_desc = Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format = External Issue Tracker URL Format
settings.tracker_issue_style = External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
settings.tracker_url_format_desc = You can use placeholder <code>{user} {repo} {index}</code> for user name, repository name and issue index.
settings.pulls_desc = Enable pull requests to accept public contributions
settings.pulls_desc = Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace = Ignore changes in whitespace
settings.pulls.allow_rebase_merge = Allow use rebase to merge commits
settings.danger_zone = Danger Zone
settings.cannot_fork_to_same_owner = You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
settings.convert = Convert To Regular Repository
settings.convert_desc = You can convert this mirror to a regular repository. This cannot be reversed.
@@ -612,7 +769,7 @@ settings.wiki_deletion_success = Repository wiki data have been erased successfu
settings.delete = Delete This Repository
settings.delete_desc = Once you delete a repository, there is no going back. Please be certain.
settings.delete_notices_1 = - This operation <strong>CANNOT</strong> be undone.
settings.delete_notices_2 = - This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators.
settings.delete_notices_2 = - This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1 = - All forks will become independent after deletion.
settings.deletion_success = Repository has been deleted successfully!
settings.update_settings_success = Repository options has been updated successfully.
@@ -628,7 +785,6 @@ settings.collaborator_deletion_desc = This user will no longer have collaboratio
settings.remove_collaborator_success = Collaborator has been removed.
settings.search_user_placeholder = Search user...
settings.org_not_allowed_to_be_collaborator = Organization is not allowed to be added as a collaborator.
settings.user_is_org_member = User is organization member who cannot be added as a collaborator.
settings.add_webhook = Add Webhook
settings.hooks_desc = Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this <a target="_blank" href="%s">Webhooks Guide</a>.
settings.webhook_deletion = Delete Webhook
@@ -637,6 +793,8 @@ settings.webhook_deletion_success = Webhook has been deleted successfully!
settings.webhook.test_delivery = Test Delivery
settings.webhook.test_delivery_desc = Send a fake push event delivery to test your webhook settings
settings.webhook.test_delivery_success = Test webhook has been added to delivery queue. It may take few seconds before it shows up in the delivery history.
settings.webhook.redelivery = Redelivery
settings.webhook.redelivery_success = Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request = Request
settings.webhook.response = Response
settings.webhook.headers = Headers
@@ -647,21 +805,34 @@ settings.githook_edit_desc = If the hook is inactive, sample content will be pre
settings.githook_name = Hook Name
settings.githook_content = Hook Content
settings.update_githook = Update Hook
settings.add_webhook_desc = Gogs will send a <code>POST</code> request to the URL you specify, along with regarding the event that occured. You can also specify what kind of data format you'd like to get upon triggering the hook (JSON, x-www-form-urlencoded, XML, etc). More information can be found in our <a target="_blank" href="%s">Webhooks Guide</a>.
settings.add_webhook_desc = Gogs will send a <code>POST</code> request to the URL you specify, along with details regarding the event that occurred. You can also specify what kind of data format you'd like to get upon triggering the hook (JSON, x-www-form-urlencoded, XML, etc). More information can be found in our <a target="_blank" href="%s">Webhooks Guide</a>.
settings.payload_url = Payload URL
settings.content_type = Content Type
settings.secret = Secret
settings.secret_desc = Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username = Username
settings.slack_icon_url = Icon URL
settings.slack_color = Color
settings.event_desc = When should this webhook be triggered?
settings.event_push_only = Just the <code>push</code> event.
settings.event_send_everything = I need <strong>everything</strong>.
settings.event_choose = Let me choose what I need.
settings.event_push_only = Just the <code>push</code> event
settings.event_send_everything = I need <strong>everything</strong>
settings.event_choose = Let me choose what I need
settings.event_create = Create
settings.event_create_desc = Branch, or tag created
settings.event_create_desc = Branch or tag created
settings.event_delete = Delete
settings.event_delete_desc = Branch or tag deleted
settings.event_fork = Fork
settings.event_fork_desc = Repository forked
settings.event_push = Push
settings.event_push_desc = Git push to a repository
settings.event_issues = Issues
settings.event_issues_desc = Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request = Pull Request
settings.event_pull_request_desc = Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment = Issue Comment
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_release = Release
settings.event_release_desc = Release published in a repository.
settings.active = Active
settings.active_helper = Details regarding the event which triggered the hook will be delivered as well.
settings.add_hook_success = New webhook has been added.
@@ -671,10 +842,13 @@ settings.delete_webhook = Delete Webhook
settings.recent_deliveries = Recent Deliveries
settings.hook_type = Hook Type
settings.add_slack_hook_desc = Add <a href="%s">Slack</a> integration to your repository.
settings.add_discord_hook_desc = Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc = Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
settings.deploy_keys = Deploy Keys
settings.deploy_keys_helper = <b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key = Add Deploy Key
settings.deploy_key_desc = Deploy keys have read-only access. They are not the same as personal account SSH keys.
settings.no_deploy_keys = You haven't added any deploy keys.
@@ -686,6 +860,8 @@ settings.add_key_success = New deploy key '%s' has been added successfully!
settings.deploy_key_deletion = Delete Deploy Key
settings.deploy_key_deletion_desc = Deleting this deploy key will remove all related accesses for this repository. Do you want to continue?
settings.deploy_key_deletion_success = Deploy key has been deleted successfully!
settings.description_desc = Description of repository. Maximum 512 characters length.
settings.description_length = Available characters
diff.browse_source = Browse Source
diff.parent = parent
@@ -704,7 +880,6 @@ release.releases = Releases
release.new_release = New Release
release.draft = Draft
release.prerelease = Pre-Release
release.stable = Stable
release.edit = edit
release.ahead = <strong>%d</strong> commits to %s since this release
release.source_code = Source Code
@@ -753,6 +928,7 @@ team_permission_desc = What permission level should this team have?
form.name_reserved = Organization name '%s' is reserved.
form.name_pattern_not_allowed = Organization name pattern '%s' is not allowed.
form.team_name_reserved = Team name '%s' is reserved.
settings = Settings
settings.options = Options
@@ -802,9 +978,9 @@ teams.add_team_member = Add Team Member
teams.delete_team_title = Team Deletion
teams.delete_team_desc = As this team will be deleted, members of this team may lose access to some repositories. Do you want to continue?
teams.delete_team_success = Given team has been deleted successfully.
teams.read_permission_desc = This team grants <strong>Read</strong> access: members can view and clone the team's repositories.
teams.write_permission_desc = This team grants <strong>Write</strong> access: members can read from and push to the team's repositories.
teams.admin_permission_desc = This team grants <strong>Admin</strong> access: members can read from, push to, and add collaborators to the team's repositories.
teams.read_permission_desc = Membership in this team grants <strong>Read</strong> access: members can view and clone the team's repositories.
teams.write_permission_desc = Membership in this team grants <strong>Write</strong> access: members can read from and push to the team's repositories.
teams.admin_permission_desc = Membership in this team grants <strong>Admin</strong> access: members can read from, push to, and add collaborators to the team's repositories.
teams.repositories = Team Repositories
teams.search_repo_placeholder = Search repository...
teams.add_team_repository = Add Team Repository
@@ -824,7 +1000,7 @@ first_page = First
last_page = Last
total = Total: %d
dashboard.statistic = Statistic
dashboard.statistic = Statistics
dashboard.operations = Operations
dashboard.system_status = System Monitor Status
dashboard.statistic_info = Gogs database has <b>%d</b> users, <b>%d</b> organizations, <b>%d</b> public keys, <b>%d</b> repositories, <b>%d</b> watches, <b>%d</b> stars, <b>%d</b> actions, <b>%d</b> accesses, <b>%d</b> issues, <b>%d</b> comments, <b>%d</b> social accounts, <b>%d</b> follows, <b>%d</b> mirrors, <b>%d</b> releases, <b>%d</b> login sources, <b>%d</b> webhooks, <b>%d</b> milestones, <b>%d</b> labels, <b>%d</b> hook tasks, <b>%d</b> teams, <b>%d</b> update tasks, <b>%d</b> attachments.
@@ -843,8 +1019,8 @@ dashboard.git_gc_repos = Do garbage collection on repositories
dashboard.git_gc_repos_success = All repositories have done garbage collection successfully.
dashboard.resync_all_sshkeys = Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)
dashboard.resync_all_sshkeys_success = All public keys have been rewritten successfully.
dashboard.resync_all_update_hooks = Rewrite all update hook of repositories (needed when custom config path is changed)
dashboard.resync_all_update_hooks_success = All repositories' update hook have been rewritten successfully.
dashboard.resync_all_hooks = Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success = All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos = Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success = All repository records that lost Git files have been reinitialized successfully.
@@ -919,12 +1095,14 @@ repos.private = Private
repos.watches = Watches
repos.stars = Stars
repos.issues = Issues
repos.size = Size
auths.auth_manage_panel = Authentication Manage Panel
auths.auth_sources = Authentication Sources
auths.new = Add New Source
auths.name = Name
auths.type = Type
auths.enabled = Enabled
auths.default = Default
auths.updated = Updated
auths.auth_type = Authentication Type
auths.auth_name = Authentication Name
@@ -933,15 +1111,21 @@ auths.domain = Domain
auths.host = Host
auths.port = Port
auths.bind_dn = Bind DN
auths.bind_dn_helper = You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password = Bind Password
auths.bind_password_helper = Warning: This password is stored in plain text. Do not use a high privileged account.
auths.user_base = User Search Base
auths.user_dn = User DN
auths.attribute_username = Username attribute
auths.attribute_username = Username Attribute
auths.attribute_username_placeholder = Leave empty to use sign-in form field value for user name.
auths.attribute_name = First name attribute
auths.attribute_surname = Surname attribute
auths.attribute_mail = Email attribute
auths.attribute_name = First Name Attribute
auths.attribute_surname = Surname Attribute
auths.attribute_mail = Email Attribute
auths.verify_group_membership = Verify group membership
auths.group_search_base_dn = Group Search Base DN
auths.group_filter = Group Filter
auths.group_attribute_contain_user_list = Group Attribute Containing List of Users
auths.user_attribute_listed_in_group = User Attribute Listed in Group
auths.attributes_in_bind = Fetch attributes in Bind DN context
auths.filter = User Filter
auths.admin_filter = Admin Filter
@@ -955,9 +1139,9 @@ auths.enable_tls = Enable TLS Encryption
auths.skip_tls_verify = Skip TLS Verify
auths.pam_service_name = PAM Service Name
auths.enable_auto_register = Enable Auto Registration
auths.tips = Tips
auths.edit = Edit Authentication Setting
auths.activated = This authentication is activated
auths.default_auth = This authentication is default login source
auths.new_success = New authentication '%s' has been added successfully.
auths.update_success = Authentication setting has been updated successfully.
auths.update = Update Authentication Setting
@@ -966,7 +1150,9 @@ auths.delete_auth_title = Authentication Deletion
auths.delete_auth_desc = This authentication is going to be deleted, do you want to continue?
auths.still_in_used = This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success = Authentication has been deleted successfully!
auths.login_source_exist = Login source '%s' already exists.
config.not_set = (not set)
config.server_config = Server Configuration
config.app_name = Application Name
config.app_ver = Application Version
@@ -976,10 +1162,9 @@ config.offline_mode = Offline Mode
config.disable_router_log = Disable Router Log
config.run_user = Run User
config.run_mode = Run Mode
config.repo_root_path = Repository Root Path
config.git_version = Git Version
config.static_file_root_path = Static File Root Path
config.log_file_root_path = Log File Root Path
config.script_type = Script Type
config.reverse_auth_user = Reverse Authentication User
config.ssh_config = SSH Configuration
@@ -989,11 +1174,25 @@ config.ssh_domain = Domain
config.ssh_port = Port
config.ssh_listen_port = Listen Port
config.ssh_root_path = Root Path
config.ssh_rewrite_authorized_keys_at_start = Rewrite authorized_keys At Start
config.ssh_key_test_path = Key Test Path
config.ssh_keygen_path = Keygen ('ssh-keygen') Path
config.ssh_minimum_key_size_check = Minimum Key Size Check
config.ssh_minimum_key_sizes = Minimum Key Sizes
config.repo_config = Repository Configuration
config.repo_root_path = Repository Root Path
config.script_type = Script Type
config.repo_force_private = Force Private
config.max_creation_limit = Max Creation Limit
config.preferred_licenses = Preferred Licenses
config.disable_http_git = Disable HTTP Git
config.enable_local_path_migration = Enable Local Path Migration
config.commits_fetch_concurrency = Commits Fetch Concurrency
config.http_config = HTTP Configuration
config.http_access_control_allow_origin = Access Control Allow Origin
config.db_config = Database Configuration
config.db_type = Type
config.db_host = Host
@@ -1003,6 +1202,7 @@ config.db_ssl_mode = SSL Mode
config.db_ssl_mode_helper = (for "postgres" only)
config.db_path = Path
config.db_path_helper = (for "sqlite3" and "tidb")
config.service_config = Service Configuration
config.register_email_confirm = Require Email Confirmation
config.disable_register = Disable Registration
@@ -1013,25 +1213,30 @@ config.disable_key_size_check = Disable Minimum Key Size Check
config.enable_captcha = Enable Captcha
config.active_code_lives = Active Code Lives
config.reset_password_code_lives = Reset Password Code Lives
config.webhook_config = Webhook Configuration
config.queue_length = Queue Length
config.deliver_timeout = Deliver Timeout
config.skip_tls_verify = Skip TLS Verify
config.mailer_config = Mailer Configuration
config.mailer_enabled = Enabled
config.mailer_disable_helo = Disable HELO
config.mailer_name = Name
config.mailer_subject_prefix = Subject Prefix
config.mailer_host = Host
config.mailer_user = User
config.send_test_mail = Send Test Email
config.test_mail_failed = Fail to send test email to '%s': %v
config.test_mail_sent = Test email has been sent to '%s'.
config.oauth_config = OAuth Configuration
config.oauth_enabled = Enabled
config.cache_config = Cache Configuration
config.cache_adapter = Cache Adapter
config.cache_interval = Cache Interval
config.cache_conn = Cache Connection
config.session_config = Session Configuration
config.session_provider = Session Provider
config.provider_config = Provider Config
@@ -1041,11 +1246,27 @@ config.gc_interval_time = GC Interval Time
config.session_life_time = Session Life Time
config.https_only = HTTPS Only
config.cookie_life_time = Cookie Life Time
config.picture_config = Picture Configuration
config.picture_service = Picture Service
config.disable_gravatar = Disable Gravatar
config.enable_federated_avatar = Enable Federated Avatars
config.git_config = Git Configuration
config.git_disable_diff_highlight = Disable Diff Syntax Highlight
config.git_max_diff_lines = Max Diff Lines (for a single file)
config.git_max_diff_line_characters = Max Diff Characters (for a single line)
config.git_max_diff_files = Max Diff Files (to be shown)
config.git_gc_args = GC Arguments
config.git_migrate_timeout = Migration Timeout
config.git_mirror_timeout = Mirror Update Timeout
config.git_clone_timeout = Clone Operation Timeout
config.git_pull_timeout = Pull Operation Timeout
config.git_gc_timeout = GC Operation Timeout
config.log_config = Log Configuration
config.log_mode = Log Mode
config.log_mode = Mode
config.log_options = Options
monitor.cron = Cron Tasks
monitor.name = Name
@@ -1076,17 +1297,24 @@ notices.delete_success = System notices have been deleted successfully.
create_repo = created repository <a href="%s">%s</a>
rename_repo = renamed repository from <code>%[1]s</code> to <a href="%[2]s">%[3]s</a>
commit_repo = pushed to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
compare_commits = View comparison for these %d commits
transfer_repo = transfered repository <code>%s</code> to <a href="%s">%s</a>
create_issue = `opened issue <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue = `closed issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue = `reopened issue <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue = `commented on issue <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request = `created pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request = `closed pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request = `reopened pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue = `commented on issue <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request = `merged pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo = transfered repository <code>%s</code> to <a href="%s">%s</a>
create_branch = created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch = deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag = pushed tag <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a>
compare_commits = View comparison for these %d commits
delete_tag = deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo = forked a repository to <a href="%s">%s</a>
mirror_sync_push = synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create = synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago = ago

View File

@@ -25,7 +25,7 @@ captcha=Captcha
repository=Repositorio
organization=Organización
mirror=Mirror
mirror=Réplica
new_repo=Nuevo repositorio
new_migrate=Nueva migración
new_mirror=Nueva réplica
@@ -48,7 +48,7 @@ cancel=Cancelar
install=Instalación
title=Pasos de la instalación por primera vez
docker_helper=Si está ejecutando Gogs usando Docker, ¡por favor lea <a target="_blank" href="%s"> estas pautas</a> antes de cambiar nada en esta página!
requite_db_desc=Gogs requiere una base de datos MySQL, PostgreSQL, SQLite3 o TiDB.
requite_db_desc=Gogs requiere un SGBD como MySQL, PostgreSQL, SQLite3 o TiDB.
db_title=Configuración de base de datos
db_type=Tipo de base de datos
host=Host
@@ -58,9 +58,8 @@ db_name=Nombre de la base de datos
db_helper=Por favor utilice el motor INNODB con la configuración de caracteres utf8_general_ci para MySQL.
ssl_mode=Modo SSL
path=Ruta
sqlite_helper=Ruta al archivo de base de datos SQLite3 o TiDB. <br>Por favor, usa una ruta absoluta cuando inicies como servicio.
err_empty_db_path=La ruta a la base de datos SQLite3 o TiDB no puede estar vacía.
err_invalid_tidb_name=El nombre de la base de datos TiDB no puede contener los caracteres "." ni "-".
sqlite_helper=La ruta del archivo de base de datos de SQLite3. <br> Por favor usar una ruta absoluta al iniciar Gogs como servicio.
err_empty_db_path=La ruta de la base de datos SQLite3 no puede estar vacía.
no_admin_and_disable_registration=No puede deshabilitar el registro sin crear una cuenta de administrador.
err_empty_admin_password=La contraseña de administrador no puede estar vacía.
@@ -75,12 +74,16 @@ domain=Dominio
domain_helper=Esto afecta a las URLs para clonar por SSH.
ssh_port=Puerto SSH
ssh_port_helper=Número de puerto de su servidor SSH, déjelo en blanco para desactivar SSH.
use_builtin_ssh_server=Usar Builtin SSH Server
use_builtin_ssh_server_popup=Iniciar servidor SSH integrado para operaciones con Git para distinguirlo del demonio SSH del sistema.
http_port=Puerto HTTP
http_port_helper=Puerto en el que escuchará la aplicación.
app_url=URL de la aplicación
app_url_helper=Esto afecta a las URLs para clonar por HTTP/HTTPS y a algunos correos electrónicos.
log_root_path=Ruta del registro
log_root_path_helper=Directorio donde almacenar los registros.
enable_console_mode=Activar Modo Consola
enable_console_mode_popup=Además del modo archivo, también imprime los registros en consola.
optional_title=Configuración opcional
email_title=Configuración del servicio de correo
@@ -96,6 +99,8 @@ offline_mode=Activar el modo Sin Conexión
offline_mode_popup=Desactivar el CDN incluso en el modo de producción, todos los recursos se servirán localmente.
disable_gravatar=Desactivar el servicio Gravatar
disable_gravatar_popup=Desactivar Gravatar y cualquier otra fuente personalizada. Todos los avatares deben ser cargados por los usuarios o en su defecto se mostrará el avatar predeterminado.
federated_avatar_lookup=Habilitar búsqueda de Avatares Federados
federated_avatar_lookup_popup=Habilitar búsqueda de avatares federador para usar el servicio federado de código abierto basado en libravatar.
disable_registration=Desactivar Auto-Registro
disable_registration_popup=Desactivar auto-registro del usuario, solo el administrador podrá crear cuentas nuevas.
enable_captcha=Activar la Captcha
@@ -114,6 +119,8 @@ sqlite3_not_available=Tu versión no soporta SQLite3, por favor descarga el bina
invalid_db_setting=La configuración de la base de datos no es correcta: %v
invalid_repo_path=La ruta de la raíz del repositorio es inválida: %v
run_user_not_match=El usuario que está ejecutando la aplicación no es el usuario actual: %s -> %s
smtp_host_missing_port=No se ha definido el puerto para el host SMTP.
invalid_smtp_from=El campo SMTP no es válido: %v
save_config_failed=Error al guardar la configuración: %v
invalid_admin_setting=La configuración de la cuenta de administración es inválida: %v
install_success=Bienvenido! Estamos encantados de que hayas escogido Gogs, diviértete y cuídate.
@@ -135,6 +142,7 @@ issues.in_your_repos=En tus repositorios
[explore]
repos=Repositorios
users=Usuarios
organizations=Organizaciones
search=Buscar
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=¿Ya tienes una cuenta? ¡Inicia sesión!
social_register_hepler_msg=¿Ya tienes una cuenta? ¡Enlázala!
disable_register_prompt=Lo sentimos, el registro está deshabilitado. Por favor, contacta con el administrador del sitio.
disable_register_mail=Lo sentimos. Los correos de Confirmación de Registro están deshabilitados.
auth_source=Authentication Source
local=Local
remember_me=Recuérdame
forgot_password=He olvidado mi contraseña
forget_password=¿Has olvidado tu contraseña?
@@ -154,7 +164,6 @@ prohibit_login_desc=Su cuenta tiene prohibido ingresar al sistema, fovor contact
resent_limit_prompt=Lo sentimos, estás solicitando el reenvío del mail de activación con demasiada frecuencia. Por favor, espera 3 minutos.
has_unconfirmed_mail=Hola %s, tu correo electrónico (<b>%s</b>) no está confirmado. Si no has recibido un correo de confirmación o necesitas que lo enviemos de nuevo, por favor, haz click en el siguiente botón.
resend_mail=Haz click aquí para reenviar tu correo electrónico de activación
email_not_associate=Esta dirección de correo electrónico no esta asociada a ninguna cuenta.
send_reset_mail=Haga clic aquí para (re)enviar el correo para el restablecimiento de la contraseña
reset_password=Restablecer su contraseña
invalid_code=Lo sentimos, su código de confirmación ha expirado o no es valido.
@@ -162,6 +171,14 @@ reset_password_helper=Haga Clic aquí para restablecer su contraseña
password_too_short=La longitud de la contraseña no puede ser menor a 6.
non_local_account=Cuentas que no son locales no pueden cambiar las contraseñas a través de Gogs.
login_two_factor=Autenticación en dos pasos
login_two_factor_passcode=Pin de autenticación
login_two_factor_enter_recovery_code=Introduce un código de recuperación de autenticación en dos pasos
login_two_factor_recovery=Recuperación de autenticación en dos pasos
login_two_factor_recovery_code=Código de recuperación
login_two_factor_enter_passcode=Introduce un Pin de autenticación a dos pasos
login_two_factor_invalid_recovery_code=El código de recuperación ya se ha utilizado o no es válido.
[mail]
activate_account=Por favor, active su cuenta
activate_email=Verifique su correo electrónico
@@ -187,9 +204,17 @@ TeamName=Nombre del equipo
AuthName=Nombre de autorización
AdminEmail=Correo electrónico del administrador
NewBranchName=Nuevo nombre de rama
CommitSummary=Resumen del commit
CommitMessage=Mensaje de commit
CommitChoice=Hacer commit de la elección
TreeName=Ruta del archivo
Content=Contenido
require_error=` no puede estar vacío.`
alpha_dash_error=` los caracteres deben ser Alfanumericos o dash(-_).`
alpha_dash_dot_error=` debe ser un caracter alfanumérivo válido, un guión alto o bajo (-_) o un signo de puntuación.`
alpha_dash_dot_slash_error=` deben ser caracteres alfanuméricos, guiones(-_), puntos o barras.`
size_error=` debe ser de tamaño %s.`
min_size_error=` debe contener al menos %s caracteres.`
max_size_error=` debe contener como máximo %s caracteres.`
@@ -206,6 +231,7 @@ org_name_been_taken=Ya existe una organización con este nombre.
team_name_been_taken=Ya existe un equipo con este nombre.
email_been_used=Esta dirección de correo electrónico ya está en uso.
username_password_incorrect=Nombre de usuario o contraseña incorrectos.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Por favor, asegúrate de que has introducido correctamente el nombre del repositorio.
enterred_invalid_owner_name=Por favor, asegúrate de que has introducido correctamente el nombre del propietario.
enterred_invalid_password=Por favor, asegúrate de que has introducido correctamente tu contraseña.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=El patrón de nombre de usuario '%s' no está perm
[settings]
profile=Perfil
password=Contraseña
avatar=Avatar
ssh_keys=Claves SSH
social=Redes Sociales
applications=Aplicaciones
security=Seguridad
repos=Repositorios
orgs=Organizaciones
applications=Aplicaciones
delete=Eliminar cuenta
uid=UUID
public_profile=Perfil público
profile_desc=Tu correo electrónico es público y será usado para todas las notificaciones relacionadas con cualquier cuenta y cualquier operación hecha a través de la web.
@@ -259,6 +286,8 @@ change_username_prompt=Este cambio afectará a los enlaces que hacen referencia
continue=Continuar
cancel=Cancelar
lookup_avatar_by_mail=Buscar avatar por correo
federated_avatar_lookup=Búsqueda de Avatar Federado
enable_custom_avatar=Activar avatar personalizado
choose_new_avatar=Selecciona nuevo avatar
update_avatar=Actualizar configuración del avatar
@@ -308,10 +337,31 @@ no_activity=No hay actividad reciente
key_state_desc=Esta clave ha sido usada en los últimos 7 días
token_state_desc=Token usado en los últimos 7 días
manage_social=Gestionar Redes Sociales asociadas
social_desc=Esta es una lista de las Redes Sociales asociadas. Elimina cualquier vínculo que no reconozcas.
unbind=Desvincular
unbind_success=La Red Social ha sido desvinculada.
two_factor=Autenticación en dos pasos
two_factor_status=Estado:
two_factor_on=Activado
two_factor_off=Desactivado
two_factor_enable=Activar
two_factor_disable=Desactivar
two_factor_view_recovery_codes=Guarda <a href="%s%s"> tus códigos de recuperación</a> en un lugar seguro. Podrás usarlos como código de acceso si pierdes el acceso a tu aplicación de autenticación.
two_factor_http=Para las operaciones sobre HTTP/HTTPS, no puedes usar un usuario y contraseña. Por favor, cree y utilice <a href="%[1]s%[2]s"> un token de acceso personal</a> como su credencial de acceso, por ejemplo, <code>%[3]s</code>.
two_factor_enable_title=Habilitar autenticación en dos pasos
two_factor_scan_qr=Por favor, use su aplicación de autenticación para escanear la imagen:
two_factor_or_enter_secret=O introduzca el secreto:
two_factor_then_enter_passcode=Introduce el Pin:
two_factor_verify=Verificar
two_factor_invalid_passcode=¡El Pin que has introducido no es válido, por favor, inténtalo de nuevo!
two_factor_reused_passcode=¡El pin de autenticación que has introducido ya ha sido usado, por favor intenta con otro!
two_factor_enable_error=Ha fallado la activación de la autenticación en dos pasos: %v
two_factor_enable_success=¡La autenticación en dos pasos se ha activado en tu cuenta correctamente!
two_factor_recovery_codes_title=Códigos de recuperación para la autenticación en dos pasos
two_factor_recovery_codes_desc=Los códigos de recuperación se usan cuando pierdes temporalmente el acceso a tu aplicación de autenticación. Cada código de recuperación solo puede utilizarse en una ocasión, <b>por favor, mantén estos códigos en lugar seguro</b>.
two_factor_regenerate_recovery_codes=Regenerar códigos de recuperación
two_factor_regenerate_recovery_codes_error=Ha fallado la regeneración de códigos de recuperación: %v
two_factor_regenerate_recovery_codes_success=¡Nuevos códigos de recuperación han sido generados con éxito!
two_factor_disable_title=Deshabilitar autenticación en dos pasos
two_factor_disable_desc=El nivel de seguridad de tu cuenta se verá reducido después de desactivar la autenticación en dos pasos. ¿Deseas continuar?
two_factor_disable_success=¡La autenticación en dos pasos ha sido deshabilitada satisfactoriamente!
manage_access_token=Gestionar los Tokens de Acceso personales
generate_new_token=Generar nuevo Token
@@ -325,6 +375,15 @@ access_token_deletion=Borrado de Token de Acceso Personal
access_token_deletion_desc=Si elimina este token de acceso personal la aplicación asociada perderá el permiso de acceso. ¿Desea continuar?
delete_token_success=¡El token de acceso personal ha sido eliminado con éxito! No se olvide de actualizar también las aplicaciones asociadas.
orgs.none=No eres un miembro de ninguna organización.
orgs.leave_title=Salir de una organización
orgs.leave_desc=Perderá el acceso a todos los repositorios y equipos después dejar la organización. ¿Desea continuar?
repos.leave=Salir
repos.leave_title=Dejar repositorio
repos.leave_desc=Perderás acceso al repositorio cuando salgas. ¿Quieres continuar?
repos.leave_success=¡Has dejado el repositorio '%s' con éxito!
delete_account=Elimina tu cuenta
delete_prompt=La operación eliminará tu cuenta de forma permanente y ¡<strong>NO</strong> se puede deshacer!
confirm_delete_account=Confirmar Eliminación
@@ -345,7 +404,7 @@ fork_from=Crear un Fork desde
fork_visiblity_helper=No es posible cambiar la visibilidad de un Fork
repo_desc=Descripción
repo_lang=Idioma
repo_lang_helper=Seleccione archivo .gitignore
repo_gitignore_helper=Seleccionar plantillas de .gitignore
license=Licencia
license_helper=Selecciona un fichero de licencia
readme=Readme
@@ -358,9 +417,12 @@ mirror_prune_desc=Remover referencias remotas que no existan remotamente
mirror_interval=Intervalo de la réplica (en horas)
mirror_address=Dirección de la réplica
mirror_address_desc=Por favor, incluya las credenciales de usuario necesarias en la dirección.
mirror_last_synced=Última sincronización
watchers=Seguidores
stargazers=Fans
forks=Forks
repo_description_helper=Descripción del repositorio. Longitud máxima de 512 caracteres.
repo_description_length=Caracteres disponibles
form.reach_limit_of_creation=El propietario ha alcanzado el límite máximo de %d repositorios creados.
form.name_reserved=El nombre del repositorio '%s' está reservado.
@@ -371,14 +433,14 @@ migrate_type=Tipo de migración
migrate_type_helper=Este repositorio será una <span class="text blue">réplica</span>
migrate_repo=Migrar Repositorio
migrate.clone_address=Clonar dirección
migrate.clone_address_desc=Puede ser una URL HTTP/HTTPS/GIT o una ruta local del servidor.
migrate.clone_address_desc=Esto puede ser una dirección URL HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=También se le permite migrar un repositorio por la ruta del servidor local.
migrate.permission_denied=No te está permitido importar repositorios locales.
migrate.invalid_local_path=Rutal local inválida, no existe o no es un directorio.
migrate.failed=Migración fallida: %v
mirror_from=espejo de
forked_from=forked de
fork_from_self=¡No puedes crear un fork de un repositorio que ya es tuyo!
copy_link=Copiar
copy_link_success=¡Copiado!
copy_link_error=Presione ⌘ + C o Ctrl-C para copiar
@@ -394,9 +456,9 @@ quick_guide=Guía Rápida
clone_this_repo=Clonar este repositorio
create_new_repo_command=Crear un nuevo repositorio desde línea de comandos
push_exist_repo=Hacer Push de un repositorio existente desde línea de comandos
repo_is_empty=Este repositorio está vacío, por favor, ¡vuelva más tarde!
bare_message=Este repositorio aun no tiene contenido alguno.
code=Código
files=Archivos
branch=Rama
tree=Árbol
filter_branch_and_tag=Filtrar por rama o etiqueta
@@ -407,15 +469,65 @@ pulls=Pull Requests
labels=Etiquetas
milestones=Milestones
commits=Commits
git_branches=Ramas
releases=Releases
file_raw=Raw
file_history=Histórico
file_view_raw=Ver Raw
file_permalink=Permalink
file_too_large=Este archivo es demasiado grande para ser mostrado
video_not_supported_in_browser=Su navegador no soporta el tag video de HTML5.
branches.overview=Resumen
branches.active_branches=Ramas activas
branches.stale_branches=Ramas Viejas
branches.all=Todas las Ramas
branches.updated_by=%[1]s actualizado por %[2]s
branches.change_default_branch=Cambiar la Rama por Defecto
editor.new_file=Nuevo archivo
editor.upload_file=Subir archivo
editor.edit_file=Editar archivo
editor.preview_changes=Vista previa de los cambios
editor.cannot_edit_non_text_files=Sólo puede editar archivos de texto
editor.edit_this_file=Editar este archivo
editor.must_be_on_a_branch=Debes estar en una rama para hacer o proponer cambios en este archivo
editor.fork_before_edit=Debes hacer un fork de este repositorio antes de editar el archivo
editor.delete_this_file=Eliminar este archivo
editor.must_have_write_access=Debes tener permisos de escritura para hacer o proponer cambios a este archivo
editor.file_delete_success=¡El archivo '%s' ha sido eliminado con éxito!
editor.name_your_file=Nombre de archivo...
editor.filename_help=Para añadir un directorio, simplemente escribelo y presiona /. Para eliminar un directorio, ve al principio del campo y presiona retroceso.
editor.or=o
editor.cancel_lower=cancelar
editor.commit_changes=Hacer commit de los cambios
editor.add_tmpl=Añadir '%s<filename>'
editor.add=Añadir '%s'
editor.update=Actualizar '%s'
editor.delete=Eliminar '%s'
editor.commit_message_desc=Añadir una descripción extendida opcional...
editor.commit_directly_to_this_branch=Hacer commit directamente en la rama <strong class="branch-name">%s</strong>.
editor.create_new_branch=Crear una <strong>nueva rama</strong> para este commit y hacer un pull request.
editor.new_branch_name_desc=Nombre de la rama nueva...
editor.cancel=Cancelar
editor.filename_cannot_be_empty=El nombre del archivo no puede estar vacío.
editor.branch_already_exists=La rama '%s' ya existe en este repositorio.
editor.directory_is_a_file=La entrada '%s' en el directorio padre es un archivo no un directorio en este repositorio.
editor.file_is_a_symlink=El archivo '%s' es un enlace simbólico que no puede ser modificado desde el editor de la web.
editor.filename_is_a_directory=El nombre del fichero '%s' es un directorio existente en este repositorio.
editor.file_editing_no_longer_exists=El archivo '%s' que estás editando ya no existe en este repositorio.
editor.file_changed_while_editing=El contenido del archivo ha sido modificado desde que empezó a editarlo. <a target="_blank" href="%s">Clic aquí</a> para ver qué ha sido modificado o <strong>presiona confirmar de nuevo</strong> para sobrescribir estos cambios.
editor.file_already_exists=Ya existe un archivo con nombre '%s' en este repositorio.
editor.no_changes_to_show=No existen cambios para mostrar.
editor.fail_to_update_file=Error al actualizar/crear el archivo '%s', error: %v
editor.fail_to_delete_file=Error al borrar el fichero '%s', error: %v
editor.add_subdir=Añadir subdirectorio...
editor.unable_to_upload_files=Error al subir archivos a '%s', error: %v
editor.upload_files_to_dir=Subir archivos a '%s'
commits.commit_history=Historial de Commits
commits.commits=Commits
commits.search=Buscar Commits
commits.search=Buscar commits
commits.find=Buscar
commits.author=Autor
commits.message=Mensaje
@@ -439,6 +551,11 @@ issues.create=Crear incidencia
issues.new_label=Nueva Etiqueta
issues.new_label_placeholder=Nombre etiqueta...
issues.create_label=Crear etiqueta
issues.label_templates.title=Carga un conjunto predefinido de etiquetas
issues.label_templates.info=Tdavía no hay ninguna etiqueta. Puede hacer clic en el botón "Nueva etiqueta" para crear una o utilizar un conjunto predefinido abajo.
issues.label_templates.helper=Seleccionar un conjunto de etiquetas
issues.label_templates.use=Usar este conjunto de etiquetas
issues.label_templates.fail_to_load_file=Error al cargar el archivo de plantilla de etiqueta '%s': %v
issues.open_tab=%d abiertas
issues.close_tab=%d cerradas
issues.filter_label=Etiqueta
@@ -466,7 +583,7 @@ issues.next=Página Siguiente
issues.open_title=Abierta
issues.closed_title=Cerrada
issues.num_comments=%d comentarios
issues.commented_at='comentado <a href="#%s"> %s'</a>
issues.commented_at=`comentado <a href="#%s"> %s</a>`
issues.delete_comment_confirm=¿Seguro que deseas eliminar este comentario?
issues.no_content=Aún no existe contenido.
issues.close_issue=Cerrar
@@ -480,8 +597,7 @@ issues.commit_ref_at=`mencionada esta incidencia en un commit <a id="%[1]s" href
issues.poster=Autor
issues.collaborator=Colaborador
issues.owner=Propietario
issues.sign_up_for_free=Registro gratuito
issues.sign_in_require_desc=para unirse a esta conversación. ¿Ya dispone de una cuenta? <a href="%s">Inicie sesión para comentar</a>
issues.sign_in_require_desc=<a href="%s"> Inicie sesión</a> para unirse a esta conversación.
issues.edit=Editar
issues.cancel=Cancelar
issues.save=Guardar
@@ -496,6 +612,8 @@ issues.label_deletion=Borrado de Etiqueta
issues.label_deletion_desc=Al borrar la etiqueta su información será eliminada de todas las incidencias relacionadas. Desea continuar?
issues.label_deletion_success=Etiqueta borrada con éxito!
issues.num_participants=%d participantes
issues.attachment.open_tab='Haga clic para ver "%s" en una pestaña nueva'
issues.attachment.download=`Haga clic para descargar "%s"`
pulls.new=Nuevo Pull Request
pulls.compare_changes=Comparar cambios
@@ -505,6 +623,7 @@ pulls.compare_compare=comparar con
pulls.filter_branch=Filtrar rama
pulls.no_results=Sin resultados.
pulls.nothing_to_compare=Nada que comparar. Las dos ramas coinciden.
pulls.nothing_merge_base=No hay nada que comparar porque las dos ramas tienen una historia completamente distinta.
pulls.has_pull_request=`Ya existe un pull request entre estas dos ramas: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Crear Pull Request
pulls.title_desc=desea fusionar %[1]d commits de <code>%[2]s</code> en <code>%[3]s</code>
@@ -513,15 +632,20 @@ pulls.tab_conversation=Conversación
pulls.tab_commits=Commits
pulls.tab_files=Archivos modificados
pulls.reopen_to_merge=Por favor reabra este Pull Request para proceder con la operación de fusionado.
pulls.merged=Fuisionado
pulls.has_merged=¡Este pull request se ha completado con éxito!
pulls.merged=Fusionado
pulls.has_merged=¡Este Pull Request se ha completado con éxito!
pulls.data_broken=Los datos de este pull request ya no están disponibles porque se ha eliminado la información del fork.
pulls.is_checking=Se está procediendo a la búsqueda de conflictos, por favor actualice la página en unos momentos.
pulls.can_auto_merge_desc=Este Pull Request puede ser fusionado automáticamente.
pulls.cannot_auto_merge_desc=Este Pull Request no puede ser fusionado automáticamente porque hay conflictos.
pulls.cannot_auto_merge_helper=Por favor, fusiona manualmente para resolver los conflictos.
pulls.create_merge_commit=Crear un commit del fusionado
pulls.rebase_before_merging=Hacer rebase antes de fusionar
pulls.commit_description=Descripción del commit
pulls.merge_pull_request=Fusionar Pull Request
pulls.open_unmerged_pull_exists=`Usted no puede realizar la operación de reapertura porque en estos momentos existe una solicitud de pull request (#%d) para el mismo repositorio con la misma información que se encuentra a la espera de aprobación`
pulls.delete_branch=Eliminar la rama
pulls.delete_branch_has_new_commits=La rama no se puede eliminar porque tiene nuevos commits después de la fusión.
milestones.new=Nuevo Milestone
milestones.open_tab=%d abiertas
@@ -572,26 +696,61 @@ settings.collaboration.admin=Administrador
settings.collaboration.write=Escritura
settings.collaboration.read=Lectura
settings.collaboration.undefined=Indefinido
settings.branches=Ramas
settings.branches_bare=No puedes gestionar ramas en un repositorio vacío. Por favor sube algún contenido primero.
settings.default_branch=Rama predeterminada
settings.default_branch_desc=Se considera la rama «base» como la rama por defecto para commits de código, las solicitudes pull y edición en línea.
settings.update=Actualizar
settings.update_default_branch_unsupported=El cambio de rama por defecto no esta soportado por la versión de Git en el servidor.
settings.update_default_branch_success=¡La Rama por defecto de este repositorio ha sido actualizado con éxito!
settings.protected_branches=Ramas protegidas
settings.protected_branches_desc=Proteger ramas force pushing, de eliminación accidental y lista blanca de committers de código.
settings.choose_a_branch=Elegir una rama...
settings.branch_protection=Protección de la rama
settings.branch_protection_desc=Por favor, elija una opción de protección para la rama <b>%s</b>.
settings.protect_this_branch=Proteger esta rama
settings.protect_this_branch_desc=Desactivar force pushes y evite la eliminación.
settings.protect_require_pull_request=Requiere una solicitud pull, en lugar de un push directo
settings.protect_require_pull_request_desc=Active esta opción para deshabilitar un push directo a esta rama. Los commits tienen que ser empujados a otra rama no protegida y fusionados a esta rama a través de la solicitud pull.
settings.protect_whitelist_committers=Lista blanca de quienes pueden empujar a esta rama
settings.protect_whitelist_committers_desc=Añadir personas o equipos a la lista blanca de push directo a esta rama. Los usuarios en esta lista se saltan la comprobación de pull request.
settings.protect_whitelist_users=Usuarios que pueden hacer push a esta rama
settings.protect_whitelist_search_users=Buscar usuarios
settings.protect_whitelist_teams=Equipos cuyos miembros pueden hacer push a esta rama
settings.protect_whitelist_search_teams=Buscar equipos
settings.update_protect_branch_success=¡Las opciones de protección para esta rama se han actualizado con éxito!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Configuración Básica
settings.mirror_settings=Configuración de réplica
settings.sync_mirror=Sincronizar ahora
settings.mirror_sync_in_progress=Sincronización de réplica en curso, por favor actualice la página en unos minutos.
settings.site=Sitio oficial
settings.update_settings=Actualizar configuración
settings.change_reponame_prompt=Este cambio afectará a los enlaces al repositorio.
settings.advanced_settings=Ajustes avanzados
settings.wiki_desc=Habilitar la Wiki para que los colaboradores documenten
settings.wiki_desc=Activar sistema de wiki
settings.use_internal_wiki=Usar wiki integrada
settings.allow_public_wiki_desc=Permitir acceso público a la wiki cuando el repositorio es privado
settings.use_external_wiki=Usar Wiki externa
settings.external_wiki_url=URL externa de la Wiki
settings.external_wiki_url_desc=Los visitantes serán redireccionados a la URL cuando hagan click en la barra.
settings.issues_desc=Habilitar tracker ligero de incidencias
settings.issues_desc=Habilitar rastreo de incidencias
settings.use_internal_issue_tracker=Usar rastreo de incidencias ligero incluido
settings.allow_public_issues_desc=Permitir acceso público a las incidencias cuando el repositorio es privado
settings.use_external_issue_tracker=Usar tracker externo de incidencias
settings.external_tracker_url=URL de seguimiento de problemas externos
settings.external_tracker_url_desc=Los visitantes serán redirigidos a la URL cuando hagan click en la barra.
settings.tracker_url_format=Formato URL del tracker de incidencias externo
settings.tracker_issue_style=Estilo de etiquetado del tracker externo de incidencias:
settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Puedes usar las plantillas <code>{user} {repo} {index}</code> para el nombre de usuario, nombre del repositorio e índice de la incidencia.
settings.pulls_desc=Habilitar Pull Requests para aceptar contribuciones públicas
settings.pulls_desc=Permitir pull requests para aceptar contribuciones entre repositorios y ramas
settings.pulls.ignore_whitespace=Ignorar los cambios en el espacio en blanco
settings.pulls.allow_rebase_merge=Permite usar rebase para fusionar los commits
settings.danger_zone=Zona de Peligro
settings.cannot_fork_to_same_owner=No puedes hacer fork del repositorio a su propietario original.
settings.new_owner_has_same_repo=El nuevo propietario tiene un repositorio con el mismo nombre.
settings.convert=Convertir en un repositorio normal
settings.convert_desc=Puedes convertir este repositorio en un repositorio normal. Este cambio no se puede deshacer.
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=Los datos de la wiki del repositorio han sido bor
settings.delete=Eliminar este repositorio
settings.delete_desc=Una vez has eliminado un repositorio, no hay vuelta atrás. Por favor, asegúrate de que es lo que quieres.
settings.delete_notices_1=- Esta operación <strong>NO PUEDE</strong> revertirse.
settings.delete_notices_2=- Esta operación eliminará de manera permanente todo el contenido de este repositorio, incluyendo los datos de git, las incidencias, los comentarios y los permisos de acceso de los colaboradores.
settings.delete_notices_2=- Esta operación eliminará de manera permanente todo el contenido de este repositorio, incluyendo los datos de Git, las incidencias, los comentarios y los permisos de acceso de los colaboradores.
settings.delete_notices_fork_1=- Todos los forks se convertirán en independientes tras el borrado.
settings.deletion_success=¡El respositorio ha sido eliminado satisfactoriamente!
settings.update_settings_success=Las opciones del repositorio se han actualizado correctamente.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Este usuario no podrá colaborar en este rep
settings.remove_collaborator_success=El colaborador ha sido eliminado.
settings.search_user_placeholder=Buscar usuario...
settings.org_not_allowed_to_be_collaborator=Las organizaciones no tiene permitido ser añadidas como colaboradores.
settings.user_is_org_member=El usuario es miembro de la organización, no puede ser añadido como colaborador.
settings.add_webhook=Añadir Webhook
settings.hooks_desc=Los Webhooks permiten a servicios externos recibir notificaciones cuando sucedan ciertos eventos en Gogs. Cuando sucedan los eventos especificados, enviaremos una petición POST a cada una de las URLs indicadas. Para obtener más información, consulta nuestra <a target="_blank" href="%s">Guía de Webhooks</a>.
settings.webhook_deletion=Eliminar Webhook
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=¡Webhook eliminado con éxito!
settings.webhook.test_delivery=Test de entrega
settings.webhook.test_delivery_desc=Enviar un falso evento Push de entrega para probar tus ajustes de webhook
settings.webhook.test_delivery_success=Probar que los webhook han sido añadidos a la cola de entrega. Esto puede tomar algunos segundos antes de aparecer en el historial de entregas.
settings.webhook.redelivery=Reenviar
settings.webhook.redelivery_success=La tarea del Hook '%s' ha sido reañadida en la cola de entrega. Puede tardar unos segundos en actualizarse el historial de estado de la cola.
settings.webhook.request=Petición
settings.webhook.response=Respuesta
settings.webhook.headers=Encabezado
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Enviaremos una petición <code>POST</code> a la siguie
settings.payload_url=URL de Payload
settings.content_type=Tipo de contenido
settings.secret=Secreto
settings.secret_desc=El secreto será enviado como un payload SHA256 HMAC hex digest vía cabecera <code>X-Gogs-Signature</code>.
settings.slack_username=Nombre de usuario
settings.slack_icon_url=URL de icono
settings.slack_color=Color
@@ -658,8 +819,20 @@ settings.event_send_everything=Necesito <strong>todo</strong>.
settings.event_choose=Déjeme elegir lo que necesito.
settings.event_create=Crear
settings.event_create_desc=Rama o etiqueta creada
settings.event_delete=Borrar
settings.event_delete_desc=Rama o etiqueta borrada
settings.event_fork=Fork
settings.event_fork_desc=Repositorio forked
settings.event_push=Push
settings.event_push_desc=Git push a un repositorio
settings.event_issues=Incidencias
settings.event_issues_desc=Incidencia abierta, cerrada, reabierta, editada, asignada, desasignada, etiqueta actualizada, etiqueta limpiada, hito marcado, o desmarcado,.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request abierto, cerrado, reabierto, editado, asignado, desasignado, etiqueta actualizada, etiqueta limpiada, hito marcado, hito desmarcado, o sincronizado.
settings.event_issue_comment=Comentario de incidencia
settings.event_issue_comment_desc=Comentario de incidencias creado, editado o borrado.
settings.event_release=Lanzamiento
settings.event_release_desc=Lanzamiento publicado en un repositorio.
settings.active=Activo
settings.active_helper=Enviaremos detalles del evento cuando este hook se dispare.
settings.add_hook_success=Se ha añadido un nuevo webhook.
@@ -669,10 +842,13 @@ settings.delete_webhook=Borrar Webhook
settings.recent_deliveries=Envíos Recientes
settings.hook_type=Tipo de Hook
settings.add_slack_hook_desc=Añade integración con <a href="%s">Slack</a> a tu repositorio.
settings.add_discord_hook_desc=Añade integración con <a href="%s">Slack</a> a tu repositorio.
settings.add_dingtalk_hook_desc=Añade integración con <a href="%s">Dingtalk</a> a tu repositorio.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canal
settings.deploy_keys=Claves de Despliegue
settings.deploy_keys_helper=<b>Gotcha!</b> Si usted está buscando agregar claves públicas personales, por favor, agréguelos en la <a href="%s%s"> configuración de la cuenta</a>.
settings.add_deploy_key=Añadir Clave de Despliegue
settings.deploy_key_desc=La clave de desarrollo tiene sólo acceso de lectura. No es igual que las claves SSH de las cuentas personales.
settings.no_deploy_keys=No has añadido ninguna clave de despliegue.
@@ -684,6 +860,8 @@ settings.add_key_success=¡La nueva clave de desplieque '%s' ha sido creada con
settings.deploy_key_deletion=Eliminar Clave de Despliegue
settings.deploy_key_deletion_desc=Al eliminar esta clave de despliegue se perderán el permiso de acceso a este repositorio con dicha clave. ¿Deseas continuar?
settings.deploy_key_deletion_success=¡Clave de despliegue eliminada con éxito!
settings.description_desc=Descripción del repositorio. Longitud máxima de 512 caracteres.
settings.description_length=Caracteres disponibles
diff.browse_source=Explorar el Código
diff.parent=padre
@@ -702,7 +880,6 @@ release.releases=Releases
release.new_release=Nueva Release
release.draft=Borrador
release.prerelease=Pre-Release
release.stable=Estable
release.edit=editar
release.ahead=<strong>%d</strong> commits en %s desde esta release
release.source_code=Código Fuente
@@ -751,6 +928,7 @@ team_permission_desc=¿Qué nivel de permisos debería tener este equipo?
form.name_reserved=El nombre de la organización '%s' está reservado.
form.name_pattern_not_allowed=El patrón de nombre de la organización '%s' no está permitido.
form.team_name_reserved=El nombre de equipo '%s' está reservado.
settings=Configuración
settings.options=Opciones
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Ejecutar la recolección de basura en los repositorios
dashboard.git_gc_repos_success=Todos los repositorios han ejecutado correctamente el recolector de basuras.
dashboard.resync_all_sshkeys=Reescribir el fichero '.ssh/authorized_keys'(atención: se perderán las claves que no pertenezcan a Gogs)
dashboard.resync_all_sshkeys_success=Todas las claves públicas se han reescrito correctamente.
dashboard.resync_all_update_hooks=Reescribir todos los hooks de actualización de los repositorios (necesario cuando se modifica la ruta de configuración personalizada)
dashboard.resync_all_update_hooks_success=Todos los hooks de actualización de los repositorios se han reescrito correctamente.
dashboard.resync_all_hooks=Resincroniza los "hooks" de pre-recepción, actualización y post-recepción en todos los repositorios
dashboard.resync_all_hooks_success=Se han vuelto a sincronizar todos los "hooks" de pre-recepción, actualización y post-recepción de los repositorios con éxito.
dashboard.reinit_missing_repos=Reinicializar todos los registros del repositorio que tienen archivos Git eliminados
dashboard.reinit_missing_repos_success=Todos los registros del repositorio con archivos Git eliminados han sido reinicializados con éxito.
@@ -917,12 +1095,14 @@ repos.private=Privado
repos.watches=Vigilantes
repos.stars=Estrellas
repos.issues=Incidencias
repos.size=Tamaño
auths.auth_manage_panel=Panel de administración de autenticación
auths.auth_sources=Fuentes de autentificación
auths.new=Añadir nuevo origen
auths.name=Nombre
auths.type=Tipo
auths.enabled=Activo
auths.default=Por defecto
auths.updated=Actualizado
auths.auth_type=Tipo de autenticación
auths.auth_name=Nombre de autenticación
@@ -931,6 +1111,7 @@ auths.domain=Dominio
auths.host=Host
auths.port=Puerto
auths.bind_dn=Bind DN
auths.bind_dn_helper=Puedes usar '%s' como marcador de posición para el nombre de usuario, ej. DOM\%s
auths.bind_password=Contraseña Bind
auths.bind_password_helper=Advertencia: La contraseña se almacena como texto plano. No utilice una cuenta con privilegios elevados.
auths.user_base=Base de búsqueda de usuarios
@@ -940,6 +1121,11 @@ auths.attribute_username_placeholder=Dejar vacío para usar el campo de inicio d
auths.attribute_name=Atributo nombre
auths.attribute_surname=Atributo apellido
auths.attribute_mail=Atributo correo electrónico
auths.verify_group_membership=Verificar pertenencia a grupo
auths.group_search_base_dn=Base DN para la búsqueda de grupos
auths.group_filter=Filtro de grupo
auths.group_attribute_contain_user_list=Atributo de grupo que contiene la lista de usuarios
auths.user_attribute_listed_in_group=Atributo de usuario listado en grupo
auths.attributes_in_bind=Buscar atributos en el contexto del Bind DN
auths.filter=Filtro de usuario
auths.admin_filter=Filtro de aministrador
@@ -953,9 +1139,9 @@ auths.enable_tls=Habilitar cifrado TLS
auths.skip_tls_verify=Omitir la verificación TLS
auths.pam_service_name=Nombre del Servicio PAM
auths.enable_auto_register=Hablilitar Auto-Registro
auths.tips=Consejos
auths.edit=Editar la Configuración de Autenticación
auths.activated=Esta autenticación ha sido activada
auths.default_auth=Esta autenticación es la fuente de inicio de sesión predeterminada
auths.new_success=¡La autenticación '%s' ha sido añadida con éxito!
auths.update_success=La configuración de autenticación ha sido actualizada con éxito.
auths.update=Actualizar la configuración de autenticación
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Borrado de autenticación
auths.delete_auth_desc=Esta autenticación será eliminada. ¿Deseas continuar?
auths.still_in_used=Este método de autentificación aún es utilizado por algunos usuarios, por favor elimine o convierta estos usuarios a otro tipo de autentificación.
auths.deletion_success=¡La autenticación ha sido eliminada con éxito!
auths.login_source_exist=El origen de autenticación '%s' ya existe.
config.not_set=(sin definir)
config.server_config=Configuración del servidor
config.app_name=Nombre de la Aplicación
config.app_ver=Versión de la Aplicación
@@ -974,10 +1162,9 @@ config.offline_mode=Modo Sin Conexión
config.disable_router_log=Deshabilitar Log del Router
config.run_user=Ejecutada como Usuario
config.run_mode=Modo de ejecución
config.repo_root_path=Ruta del Repositorio
config.git_version=Versión de Git
config.static_file_root_path=Ruta de los Ficheros Estáticos
config.log_file_root_path=Ruta de los Ficheros de Log
config.script_type=Tipo de Script
config.reverse_auth_user=Autenticación Inversa de Usuario
config.ssh_config=Configuración SSH
@@ -987,11 +1174,25 @@ config.ssh_domain=Dominio
config.ssh_port=Puerto
config.ssh_listen_port=Puerto de escucha
config.ssh_root_path=Ruta raíz
config.ssh_rewrite_authorized_keys_at_start=Reescribir authorized_keys en el arranque
config.ssh_key_test_path=Ruta de la clave de prueba
config.ssh_keygen_path=Ruta del generador de claves ('ssh-keygen')
config.ssh_minimum_key_size_check=Tamaño mínimo de la clave de verificación
config.ssh_minimum_key_sizes=Tamaños de clave mínimos
config.repo_config=Configuración del repositorio
config.repo_root_path=Ruta del Repositorio
config.script_type=Tipo de Script
config.repo_force_private=Forzar Privado
config.max_creation_limit=Limite máximo de creación
config.preferred_licenses=Licencias Preferidas
config.disable_http_git=Desactivar HTTP Git
config.enable_local_path_migration=Activar la migración de la ruta de acceso Local
config.commits_fetch_concurrency=Concurrencia de la búsqueda de commits
config.http_config=Configuración HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Configuración de la Base de Datos
config.db_type=Tipo
config.db_host=Host
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=Modo SSL
config.db_ssl_mode_helper=(sólo para "postgres")
config.db_path=Ruta
config.db_path_helper=(para "sqlite3" y "tidb")
config.service_config=Configuración del servicio
config.register_email_confirm=Solicitar Confirmación por Correo Electrónico
config.disable_register=Deshabilitar el Registro
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Deshabilitar la comprobación de Tamaño Mínimo d
config.enable_captcha=Activar Captcha
config.active_code_lives=Habilitar Vida del Código
config.reset_password_code_lives=Restablecer Contraseña de Vida del Código
config.webhook_config=Configuración de Webhooks
config.queue_length=Tamaño de Cola de Envío
config.deliver_timeout=Timeout de Entrega
config.skip_tls_verify=Omitir la Verificación TLS
config.mailer_config=Configuración del servidor de correo
config.mailer_enabled=Activado
config.mailer_disable_helo=Desactivar HELO
config.mailer_name=Nombre
config.mailer_subject_prefix=Prefijo del asunto
config.mailer_host=Host
config.mailer_user=Usuario
config.send_test_mail=Enviar email de prueba
config.test_mail_failed=Fallo al enviar el email de prueba a '%s': %v
config.test_mail_sent=El email de prueba ha sido enviado a '%s'.
config.oauth_config=Configuración OAuth
config.oauth_enabled=Activado
config.cache_config=Configuración de la Caché
config.cache_adapter=Adaptador de la Caché
config.cache_interval=Intervalo de la Caché
config.cache_conn=Conexión de la Caché
config.session_config=Configuración de la Sesión
config.session_provider=Proveedor de la Sesión
config.provider_config=Configuración del Proveedor
@@ -1039,11 +1246,27 @@ config.gc_interval_time=Intervalo de tiempo del GC
config.session_life_time=Tiempo de Vida de la Sesión
config.https_only=Sólo HTTPS
config.cookie_life_time=Tiempo de Vida de la Cookie
config.picture_config=Configuración de Imagen
config.picture_service=Servicio de Imágen
config.disable_gravatar=Desactivar Gravatar
config.enable_federated_avatar=Habilitar Avatares Federados
config.git_config=Configuración de Git
config.git_disable_diff_highlight=Desactivar resaltado de sintaxis del Diff
config.git_max_diff_lines=Líneas de Diff máximas (por un solo archivo)
config.git_max_diff_line_characters=Carácteres de Diff máximos (para una sola línea)
config.git_max_diff_files=Máximo de archivos de Diff (que se mostrarán)
config.git_gc_args=Argumentos de GC
config.git_migrate_timeout=Tiempo de espera de migración
config.git_mirror_timeout=Tiempo de espera de actualización de réplicas
config.git_clone_timeout=Tiempo de espera de operación de clones
config.git_pull_timeout=Tiempo de espera de operación de pull
config.git_gc_timeout=Tiempo de espera de operación de GC
config.log_config=Configuración del Log
config.log_mode=Modo del Log
config.log_mode=Modo
config.log_options=Opciones
monitor.cron=Tareas de Cron
monitor.name=Nombre
@@ -1074,17 +1297,24 @@ notices.delete_success=Las notificaciones del sistema han sido eliminadas satisf
create_repo=creó el repositorio <a href="%s">%s</a>
rename_repo=repositorio renombrado de <code>%[1]s</code> a <a href="%[2]s">%[3]s</a>
commit_repo=hizo push a <a href="%[1]s/src/%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a>
compare_commits=Ver comparación de estos %d commits
transfer_repo=transfirió el repositorio <code>%s</code> a <a href="%s">%s</a>
create_issue=`incidencia abierta <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`cerró la incidencia <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`reabrió la incidencia <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`comentó en la incidencia <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`creado pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`cerró el pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`reabrió el pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`comentó en la incidencia <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`fusionado pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=transfirió el repositorio <code>%s</code> a <a href="%s">%s</a>
merge_pull_request=`fusionó el pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=nueva rama <a href="%[1]s/src/%[2]s">%[3]s</a> creada en <a href="%[1]s">%[4]s</a>
delete_branch=borrada rama <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=hizo push del tag <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a>
compare_commits=Ver comparación de estos %d commits
delete_tag=borrada etiqueta <code>%[2]s</code> en <a href="%[1]s">%[3]s</a>
fork_repo=ha hecho un Fork en <a href="%s">%s</a>
mirror_sync_push=sincronizados commits a <a href="%[1]s/src/%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a> desde la réplica
mirror_sync_create=sincronizada nueva referencia <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a> desde la réplica
mirror_sync_delete=sincronizada y eliminada referencia <code>%[2]s</code> en <a href="%[1]s">%[3]s</a> desde la réplica
[tool]
ago=hace
@@ -1103,7 +1333,7 @@ hours=%[2]s %[1]d horas
days=%[2]s %[1]d días
weeks=%[2]s %[1]d semanas
months=%[2]s %[1]d meses
years=%s %d años
years=%[2]s %[1]d años
raw_seconds=segundos
raw_minutes=minutos

1347
conf/locale/locale_fa-IR.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -23,13 +23,13 @@ password=Salasana
re_type=Kirjoita uudelleen
captcha=Captcha
repository=Repo
repository=Repository
organization=Organisaatio
mirror=Peili
new_repo=Uusi repo
new_repo=Uusi repository
new_migrate=Uusi migraatio
new_mirror=Uusi peilaus
new_fork=Uusi haara reposta
new_fork=Uusi fork-repository
new_org=Uusi organisaatio
manage_org=Ylläpidä organisaatioita
admin_panel=Ylläpito paneeli
@@ -48,7 +48,7 @@ cancel=Peruuta
install=Asennus
title=Asennusvaiheet ottaessa ensi kertaa käyttöön
docker_helper=Jos käytät Gogsia Dockerin sisällä, ole hyvä ja lue <a target="_blank" href="%s">ohjeet</a> huolellisesti ennen kuin muutat mitään tältä sivulta!
requite_db_desc=Gogs tarvitsee MySQL, PostgreSQL, SQLite3 tai TiDB.
requite_db_desc=Gogs tarvitsee jonkin seuraavista: MySQL, PostgreSQL, SQLite3, MSSQL tai TiDB.
db_title=Tietokanta asetukset
db_type=Tietokanta tyyppi
host=Isäntä
@@ -58,29 +58,32 @@ db_name=Tietokannan nimi
db_helper=Ole hyvä ja käytä INNODB moottoria ja utf8_general_ci merkistöä MySQLssä.
ssl_mode=SSL tila
path=Polku
sqlite_helper=SQLite3 tai TiDB tietokanta polku. <br>Käytä absoluuttista polkua kun käynnistät palvelun.
err_empty_db_path=SQLite3 tai TiDB tietokanta polku ei voi olla tyhjä.
err_invalid_tidb_name=TiDB tietokannan nimessä ei voi olla merkkejä "." ja "-".
sqlite_helper=Tiedostopolku SQLite3 tietokantaan. <br>Käytä absoluuttista polkua ajaessasi palveluna.
err_empty_db_path=SQLite3 tietokantapolku ei voi olla tyhjä.
no_admin_and_disable_registration=Et voi poistaa käytöstä rekisteröintiä luomatta ylläpito tiliä.
err_empty_admin_password=Ylläpito salasana ei voi olla tyhjä.
general_title=Sovellus yleiset asetukset
app_name=Sovellus nimi
app_name=Sovelluksen nimi
app_name_helper=Laita organisaatiosi nimi tähän isolla ja kovaäänisesti!
repo_path=Repon juuren polku
repo_path_helper=Kaikki Git etä repot tullaan tallentamaan tähän hakemistoon.
run_user=Suorita käyttäjänä
run_user_helper=Käyttäjällä täytyy olla pääsy repo juuri polkuun ja suorittaa Gogs.
run_user_helper=Käyttäjällä täytyy olla oikeus repositoryn juuripolkuun. Käyttäjällä täytyy myös olla oikeus suorittaa Gogs.
domain=Verkkotunnus
domain_helper=Tämä vaikuttaa SSH klooni URLeihin.
ssh_port=SSH portti
ssh_port_helper=Portti numero jota SSH palvelimesi käyttää, jätä tyhjäksi poistaaksesi käytöstä SSH toiminnon.
use_builtin_ssh_server=Käytä sisäänrakennettua SSH palvelinta
use_builtin_ssh_server_popup=Käynnistä sisäänrakennettu SSH-palvelin Git-operaatioille, järjestelmän SSH-palvelusta erottautumiseksi.
http_port=HTTP portti
http_port_helper=Portti numero jota sovellus tulee kuuntelemaan.
app_url=Sovellus URL
app_url_helper=Tämä vaikuttaa HTTP/HTTPS klooni URLeihin ja joihinkin sähköposteihin.
log_root_path=Lokin polku
log_root_path_helper=Lokien tallennushakemisto.
enable_console_mode=Ota käyttöön konsoli tila
enable_console_mode_popup=Tiedosto tilan lisäksi tulosta logit konsoliin.
optional_title=Valinnaiset asetukset
email_title=Sähköposti palvelu asetukset
@@ -96,6 +99,8 @@ offline_mode=Ota käyttöön Offline tila
offline_mode_popup=Poista käytöstä CDN myös tuotanto tilassa, kaikki resurssi tiedostot palvellaan paikallisesti.
disable_gravatar=Poista käytöstä Gravatar palvelu
disable_gravatar_popup=Poista käytöstä Gravatar ja mukautetut lähteet, kaikki profiilikuvat on käyttäjien palvelimelle lähettämiä tai oletus.
federated_avatar_lookup=Käytä ulkopuolista profiilikuvien hakua
federated_avatar_lookup_popup=Ota ulkopuolinen profiilikuvien haku käyttöön käyttääksesi avoimen lähdekoodin libravatar-palvelua.
disable_registration=Poista käytöstä itse-rekisteröinti
disable_registration_popup=Poista käyttäjän itse rekisteröinti, vain ylläpito voi luoda tilejä.
enable_captcha=Ota käyttöön Captcha
@@ -114,6 +119,8 @@ sqlite3_not_available=Julkaisu versiosi ei tue SQLite3, ole hyvä ja lataa viral
invalid_db_setting=Tietokanta asetus ei ole oikea: %v
invalid_repo_path=Repo juuri polku on virheellinen: %v
run_user_not_match=Suoritus käyttäjä ei ole nykyinen käyttäjä: %s -> %s
smtp_host_missing_port=SMTP-isännältä puuttuu portin osoite.
invalid_smtp_from=SMTP From kenttä ei ole kelvollinen: %v
save_config_failed=Asetuksien tallennus epäonnistui: %v
invalid_admin_setting=Ylläpito tili asetus virheellinen: %v
install_success=Tervetuloa! Olemme iloisia että valitsit Gogs, pidä hauskaa ja pidä huolta itsestäsi.
@@ -124,7 +131,7 @@ uname_holder=Käyttäjätunnus tai sähköposti
password_holder=Salasana
switch_dashboard_context=Vaihda kojelaudan kontekstia
my_repos=Reponi
show_more_repos=Show more repositories...
show_more_repos=Näytä lisää repoja...
collaborative_repos=Yhteistyö repot
my_orgs=Organisaationi
my_mirrors=Peilini
@@ -134,8 +141,9 @@ issues.in_your_repos=Repoissasi
[explore]
repos=Repot
users=Users
search=Search
users=Käyttäjät
organizations=Organisaatiot
search=Hae
[auth]
create_new_account=Luo uusi tili
@@ -143,24 +151,33 @@ register_hepler_msg=On jo tili? Kirjaudu sisään nyt!
social_register_hepler_msg=On jo tili? Liitä nyt!
disable_register_prompt=Sori, rekisteröinti on poistettu käytöstä. Ole hyvä ja ota yhteyttä sivuston ylläpitoon.
disable_register_mail=Sori, rekisteröinti sähköpostivarmistukset on poistettu käytöstä.
auth_source=Authentication Source
local=Local
remember_me=Muista minut
forgot_password=Unohtuiko salasana
forget_password=Unohtuiko salasana?
sign_up_now=Tarvitsetko tilin? Rekisteröidy nyt.
confirmation_mail_sent_prompt=Uusi varmistus sähköposti on lähetetty osoitteeseen <b>%s</b>, ole hyvä ja tarkista saapuneet seuraavan %d tunnin sisällä saadaksesi rekisteröintiprosessin valmiiksi.
active_your_account=Aktivoi tilisi
prohibit_login=Login Prohibited
prohibit_login_desc=Your account is prohibited to login, please contact site admin.
prohibit_login=Kirjautuminen kielletty
prohibit_login_desc=Käyttäjätilisi kirjautuminen on estetty. Ota yhteys sivuston ylläpitäjään.
resent_limit_prompt=Sori, olet jo tilannut aktivointi sähköpostin lähiaikoina. Ole hyvä ja odota 3 minuuttia ja yritä sitten uudelleen.
has_unconfirmed_mail=Hei %s, sinulla on varmistamaton sähköposti osoite (<b>%s</b>). Jos et ole saanut varmistus sähköpostia tai tarvitset uudelleenlähetyksen, ole hyvä ja klikkaa allaolevaa painiketta.
resend_mail=Klikkaa tästä uudelleenlähettääksesi aktivointi sähköpostisi
email_not_associate=Tätä sähköposti osoitetta ei ole liitetty mihinkään tiliin.
send_reset_mail=Klikkaa tästä (uudelleen)lähettääksesi salasanan nollaus sähköpostin
reset_password=Nollaa salasanasi
invalid_code=Sori, varmistuskoodisi on vanhentunut tai väärä.
reset_password_helper=Klikkaa tästä nollataksesi salasanasi
password_too_short=Salasanan pituus ei voi olla vähemmän kuin 6 merkkiä.
non_local_account=Non-local accounts cannot change passwords through Gogs.
non_local_account=Vain paikallisten käyttäjätilien salasanan vaihto onnistuu Gogsin kautta.
login_two_factor=Kaksivaiheinen todennus
login_two_factor_passcode=Todennuksen salasana
login_two_factor_enter_recovery_code=Kirjoita kaksivaiheisen todennuksen palautuskoodi
login_two_factor_recovery=Kaksivaiheisen todennuksen palautus
login_two_factor_recovery_code=Palautuskoodi
login_two_factor_enter_passcode=Kirjoita kaksivaiheisen todennuksen salasana
login_two_factor_invalid_recovery_code=Palautuskoodi on käytetty tai ei ole kelvollinen.
[mail]
activate_account=Ole hyvä ja aktivoi tilisi
@@ -187,9 +204,17 @@ TeamName=Tiimin nimi
AuthName=Luvan nimi
AdminEmail=Ylläpito sähköposti
NewBranchName=Uuden haaran nimi
CommitSummary=Commitin yhteenveto
CommitMessage=Commitin viesti
CommitChoice=Commitin valinta
TreeName=Tiedostopolku
Content=Sisältö
require_error=` ei voi olla tyhjä.`
alpha_dash_error=` täytyy olla kirjaimia tai numeroita tai väliviiva(-_) merkkejä.`
alpha_dash_dot_error=` täytyy olla kirjaimia tai numeroita tai väliviiva(-_) tai piste merkkejä.`
alpha_dash_dot_slash_error=` täytyy olla kirjaimia tai numeroita tai väliviiva(-_) tai piste merkkejä.`
size_error=` täytyy olla kokoa %s.`
min_size_error=` täytyy sisältää vähintään %s merkkiä.`
max_size_error=` täytyy sisältää enintään %s merkkiä.`
@@ -206,6 +231,7 @@ org_name_been_taken=Organisaation nimi on jo käytössä.
team_name_been_taken=Tiimin nimi on jo käytössä.
email_been_used=Sähköpostiosoite on jo käytössä.
username_password_incorrect=Käyttäjätunnus tai salasana ei ole oikein.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Ole hyvä ja varmista että kirjoittamasi repon nimi on oikein.
enterred_invalid_owner_name=Ole hyvä ja varmista että kirjoittamasi omistajan nimi on oikein.
enterred_invalid_password=Ole hyvä ja varmista että kirjoittamasi salasana on oikein.
@@ -223,7 +249,7 @@ org_still_own_repo=Tällä organisaatiolla on yhä omistajuus repoon, sinun täy
target_branch_not_exist=Kohde branchia ei ole olemassa.
[user]
change_avatar=Change your avatar
change_avatar=Vaihda profiilikuvasi
join_on=Liitytty
repositories=Repot
activity=Julkinen toiminta
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Käyttäjätunnus mallia '%s' ei ole sallittu.
[settings]
profile=Profiili
password=Salasana
avatar=Profiilikuva
ssh_keys=SSH avaimet
social=Sosiaaliset tilit
applications=Sovellukset
security=Turvallisuus
repos=Repot
orgs=Organisaatiot
applications=Sovellukset
delete=Poista tili
uid=Käyttäjä ID
public_profile=Julkinen profiili
profile_desc=Sähköposti osoitteesi on julkinen ja käytetään tiliin liittyviin ilmoituksiin, ja nettipohjaisiin toimintoihin joita on tehty sivujen kautta.
@@ -259,6 +286,8 @@ change_username_prompt=Tämä muutos vaikuttaa tapaan kuinka linkit liittyvät t
continue=Jatka
cancel=Peruuta
lookup_avatar_by_mail=Hae profiilikuva sähköpostiosoitteen avulla
federated_avatar_lookup=Ulkopuolinen profiilikuvan haku
enable_custom_avatar=Ota käyttöön mukautettu profiilikuva
choose_new_avatar=Valitse uusi profiilikuva
update_avatar=Päivitä profiilikuva asetus
@@ -274,7 +303,7 @@ password_incorrect=Nykyinen salasana ei ole oikea.
change_password_success=Salasanasi on onnistuneesti vaihdettu. Voit nyt kirjautua sisään käyttäen tätä uutta salasanaa.
password_change_disabled=Ei-paikallinen tyyppisten käyttäjien ei sallita vaihtavan salasanaa.
emails=Sähköposti osoitteet
emails=Sähköposti osoite
manage_emails=Hallitse sähköposti osoitteita
email_desc=Ensisijaista sähköpostiosoitettasi käytetään ilmoituksiin ja muihin toimintoihin.
primary=Ensisijainen
@@ -308,10 +337,31 @@ no_activity=Ei viimeaikaista toimintaa
key_state_desc=Tätä avainta on käytetty 7 päivän sisällä
token_state_desc=Tätä pääsymerkkiä on käytetty 7 päivän sisällä
manage_social=Hallitse liitettyjä sosiaalisia tilejä
social_desc=Tämä on luettelo liitetyistä sosiaalisista tileistä. Poista kaikki liitokset joita et tunnista.
unbind=Poista liitos
unbind_success=Sosiaalisen tilin liitos on poistettu.
two_factor=Kaksivaiheinen todennus
two_factor_status=Tila:
two_factor_on=Käytössä
two_factor_off=Pois käytöstä
two_factor_enable=Ota käyttöön
two_factor_disable=Poista käytöstä
two_factor_view_recovery_codes=Katso ja tallenna <a href="%s%s">palautuskoodejasi</a> turvallisessa paikassa. Voit käyttää niitä salasanoina, jos menetän pääsyn todennussovellukseen.
two_factor_http=HTTP/HTTPS toimintoihin et voi enää käyttää pelkkää käyttäjänimeä ja salasanaa. Luo ja käytä <a href="%[1]s%[2]s">henkilökohtaisia pääsymerkkejä</a> tunnuksinasi, esimerkiksi <code>%[3]s</code>.
two_factor_enable_title=Ota käyttöön kaksivaiheinen todennus
two_factor_scan_qr=Käytä todennus sovellustasi lukeaksesi kuvan:
two_factor_or_enter_secret=Tai kirjoita salaisuus:
two_factor_then_enter_passcode=Sitten kirjoita salasana:
two_factor_verify=Vahvista
two_factor_invalid_passcode=Kirjoittamasi salasana ei kelpaa, yritä uudelleen!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Ota käyttöön kaksivaiheinen todennus epäonnistui: %v
two_factor_enable_success=Kaksivaiheinen todennus on otettu käyttöön tilissäsi menestyksekkäästi!
two_factor_recovery_codes_title=Kaksivaiheinen todennus palautuskoodit
two_factor_recovery_codes_desc=Palautuskoodeja käytetään kun väliaikaisesti menetät pääsyb todennus sovellukseesi. Kukin palautuskoodi voidaan käyttää vain kerran, <b>pidä näitä koodeja turvallisessa paikassa</b>.
two_factor_regenerate_recovery_codes=Uudista palautuskoodit
two_factor_regenerate_recovery_codes_error=Uudista palautuskoodit epäonnistui: %v
two_factor_regenerate_recovery_codes_success=Uusien palautuskoodien luonti onnistui!
two_factor_disable_title=Poista kaksivaiheinen todennus käytöstä
two_factor_disable_desc=Käyttäjätilisi turvallisuustaso vähenee kun poistat käytöstä kaksivaiheisen todennuksen. Haluatko jatkaa?
two_factor_disable_success=Kaksivaiheinen todennus on poistettu käytöstä onnistuneesti!
manage_access_token=Hallitse henkilökohtaisia pääsymerkkejä
generate_new_token=Luo uusi pääsymerkki
@@ -325,6 +375,15 @@ access_token_deletion=Henkilökohtaisen pääsymerkin poisto
access_token_deletion_desc=Tämän henkilökohtaisen pääsymerkin poistaminen poistaa kaikki siihen liittyvät pääsyt sovellukseen. Haluatko jatkaa?
delete_token_success=Henkilökohtainen pääsymerkki on poistettu onnistuneesti! Älä unohda päivittää sovellustasi myös.
orgs.none=Et ole yhdenkään organisaation jäsen.
orgs.leave_title=Poistu organisaatiosta
orgs.leave_desc=Menetät oikeudet kaikkiin niihin repoihin ja tiimeihin joihin organisaatio on sinulle oikeudet antanut. Haluatko varmasti jatkaa?
repos.leave=Poistu
repos.leave_title=Poistu reposta
repos.leave_desc=Menetät pääsyn repoon kun poistut. Haluatko jatkaa?
repos.leave_success=Olet poistunut reposta '%s' onnistuneesti!
delete_account=Poista tilisi
delete_prompt=Toiminto poistaa tilisi pysyvästi ja tätä <strong>EI VOI</strong> peruuttaa myöhemmin!
confirm_delete_account=Varmista poisto
@@ -345,7 +404,7 @@ fork_from=Forkkaa lähteestä
fork_visiblity_helper=Et voi muuttaa forkatun repon näkyvyyttä.
repo_desc=Kuvaus
repo_lang=Kieli
repo_lang_helper=Valitse .gitignore tiedostot
repo_gitignore_helper=Valitse .gitignore malli
license=Lisenssi
license_helper=Valitse lisenssitiedosto
readme=Lueminut-tiedosto
@@ -353,14 +412,17 @@ readme_helper=Valitse Lueminut-malli
auto_init=Alusta tämä repo valituilla tiedostoilla ja mallilla
create_repo=Luo repo
default_branch=Oletus branch
mirror_prune=Prune
mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
mirror_prune=Karsi
mirror_prune_desc=Poista kaikki paikalliset seurantahaarat joiden vastaavia etähaaroja ei ole enää olemassa
mirror_interval=Peili aikaväli (tuntia)
mirror_address=Peili osoite
mirror_address_desc=Ole hyvä ja liitä osoitteeseen tarvittavat käyttäjätunnukset.
mirror_last_synced=Synkronoitu viimeksi
watchers=Tarkkailijat
stargazers=Tähtiharrastajat
forks=Haarat
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=Omistaja on saavuttanut maksimi luontirajan %d repoa.
form.name_reserved=Repon nimi '%s' on varattu.
@@ -371,14 +433,14 @@ migrate_type=Siirtotyyppi
migrate_type_helper=Tämä repo tulee olemaan <span class="text blue">peili</span>
migrate_repo=Siirrä repo
migrate.clone_address=Kloonaa osoite
migrate.clone_address_desc=Tämä voi olla HTTP/HTTPS/GIT URL tai paikallisen palvelimen polku.
migrate.clone_address_desc=Tämä voi olla HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=Paikallisen palvelimen kansiopolun käyttö repon migraatiossa on myös salittua.
migrate.permission_denied=Sinun ei sallita tuovan paikallisia repoja.
migrate.invalid_local_path=Virheellinen paikallinen polku, ei ole olemassa tai ei ole hakemisto.
migrate.failed=Siirto epäonnistui: %v
mirror_from=peilaus alkaen
forked_from=forkattu lähteestä
fork_from_self=Et voi forkata repoa jonka jo omistat!
copy_link=Kopioi
copy_link_success=Kopioitu!
copy_link_error=Paina ⌘-C tai Ctrl-C kopioidaksesi
@@ -394,9 +456,9 @@ quick_guide=Pikaopas
clone_this_repo=Kloonaa tämä repo
create_new_repo_command=Luo uusi repo komentoriviltä
push_exist_repo=Työnnä olemassaoleva repo komentoriviltä
repo_is_empty=mä repo on tyhjä, ole hyvä ja tule takaisin myöhemmin!
bare_message=ssä repossa ei ole mitään sisältöä vielä.
code=Koodi
files=Tiedostot
branch=Branch
tree=Puu
filter_branch_and_tag=Suodata haara tai tagi
@@ -407,13 +469,63 @@ pulls=Pull-pyynnöt
labels=Tunnisteet
milestones=Merkkipaalut
commits=Commitit
git_branches=Haarat
releases=Julkaisut
file_raw=Raaka
file_history=Historia
file_view_raw=Näytä raaka
file_permalink=Pysyvä linkki
file_too_large=This file is too large to be shown
file_too_large=Tämä tiedosto on liian suuri näytettäväksi
video_not_supported_in_browser=Selaimesi ei tue HTML5 video-tagia.
branches.overview=Yleiskatsaus
branches.active_branches=Aktiiviset haarat
branches.stale_branches=Vanhentuneet haarat
branches.all=Kaikki haarat
branches.updated_by=Päivitetty %[1]s %[2]s
branches.change_default_branch=Muuta oletushaaraa
editor.new_file=Uusi tiedosto
editor.upload_file=Liitä tiedosto
editor.edit_file=Muokkaa tiedostoa
editor.preview_changes=Muutosten esikatselu
editor.cannot_edit_non_text_files=Voit editoida vain tekstitiedostoja
editor.edit_this_file=Muokkaa tätä tiedostoa
editor.must_be_on_a_branch=Haara täytyy olla valittuna jotta voit tehdä tai ehdottaa muutoksia tähän tiedostoon
editor.fork_before_edit=Sinun täytyy forkata tämä repo ennenkuin voit muokata tiedostoa
editor.delete_this_file=Poista tämä tiedosto
editor.must_have_write_access=Sinulla on kirjoitusoikeus tai ehdottaa muutoksia tiedostoon
editor.file_delete_success=Tiedosto "%s" on poistettu onnistuneesti!
editor.name_your_file=Nimeä tiedostosi...
editor.filename_help=Lisää hakemisto, kirjoita se ja paina /. Poista hakemisto, siirry kentän alkuun ja paina ASKELPALAUTINTA.
editor.or=tai
editor.cancel_lower=peruuta
editor.commit_changes=Vahvista muutokset
editor.add_tmpl=Lisää '%s/<filename>'
editor.add=Lisää "%s"
editor.update=Päivitä '%s'
editor.delete=Poista "%s"
editor.commit_message_desc=Lisää pidennetty selite (valinnainen)...
editor.commit_directly_to_this_branch=Committaa suoraan haaraan <strong class="branch-name">%s</strong>.
editor.create_new_branch=Luo <strong>uusi haara</strong> tälle commitille tai aloita pull-pyyntö.
editor.new_branch_name_desc=Uuden haaran nimi...
editor.cancel=Peruuta
editor.filename_cannot_be_empty=Tiedostonimi ei voi olla tyhjä.
editor.branch_already_exists=Haara '%s' on jo olemassa tässä repossa.
editor.directory_is_a_file=Annettu nimi '%s' on tiedosto, ei kansio.
editor.file_is_a_symlink=Tiedosto '%s' on symlinkki jota ei voi muokata web-selaimesta.
editor.filename_is_a_directory=Kansio nimeltä '%s' on jo olemassa tässä repossa.
editor.file_editing_no_longer_exists=Tiedostoa '%s' jota olet muokkaamassa ei ole enää olemassa tässä repossa.
editor.file_changed_while_editing=Tiedoston sisältöä on muutettu aloittamisesi jälkeen. <a target="_blank" href="%s">Klikkaa tästä</a> nähdäksesi mitä on muutettu tai <strong>paina commit uudelleen</strong> ylikirjoittaaksesi muutokset.
editor.file_already_exists=Tiedosto '%s' on jo olemassa tässä repossa.
editor.no_changes_to_show=Ei muutoksia näytettäväksi.
editor.fail_to_update_file=Tiedoston '%s' päivitys/luonti epäonnistui virheeseen: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Lisää alikansio...
editor.unable_to_upload_files=Tiedostojen lataus epäonnistui kansioon '%s' virheellä: %v
editor.upload_files_to_dir=Lataa tiedostoja kansioon '%s'
commits.commit_history=Commitin historia
commits.commits=Commitit
commits.search=Etsi commiteista
commits.find=Etsi
@@ -439,6 +551,11 @@ issues.create=Ilmoita ongelma
issues.new_label=Uusi tunniste
issues.new_label_placeholder=Tunnisteen nimi...
issues.create_label=Luo tunniste
issues.label_templates.title=Lataa ennaltamääritelty tarrajoukko
issues.label_templates.info=Tarroja ei ole. Voit luoda uuden klikkaamalla "Uusi tarra" tai käyttää ennaltamääriteltyä tarrajoukkoa alta.
issues.label_templates.helper=Valitse tarrajoukko
issues.label_templates.use=Käytä tätä tarrajoukkoa
issues.label_templates.fail_to_load_file=Tarramallin lataus epäonnistui tiedostosta '%s': %v
issues.open_tab=%d avoinna
issues.close_tab=%d suljettu
issues.filter_label=Tunniste
@@ -466,8 +583,8 @@ issues.next=Seuraava
issues.open_title=Avoinna
issues.closed_title=Suljettu
issues.num_comments=%d kommenttia
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.delete_comment_confirm=Are you sure you want to delete this comment?
issues.commented_at=`kommentoitu <a href="#%s">%s</a>`
issues.delete_comment_confirm=Haluatko varmasti poistaa tämän kommentin?
issues.no_content=Sisältöä ei vielä ole.
issues.close_issue=Sulje
issues.close_comment_issue=Kommentoi ja sulje
@@ -480,8 +597,7 @@ issues.commit_ref_at=`viittasi tähän ongelmaan commitissa <a id="%[1]s" href="
issues.poster=Tekijä
issues.collaborator=Yhteistyökumppani
issues.owner=Omistaja
issues.sign_up_for_free=Rekisteröidy ilmaiseksi
issues.sign_in_require_desc=liittyäksesi tähän keskusteluu. Onko sinulla jo tili? <a href="%s">Kirjaudu sisään kommentoidaksesi</a>
issues.sign_in_require_desc=<a href="%s">Kirjaudu sisään</a> osallistuaksesi tähän keskusteluun.
issues.edit=Muokkaa
issues.cancel=Peruuta
issues.save=Tallenna
@@ -496,6 +612,8 @@ issues.label_deletion=Tunnisteen poistaminen
issues.label_deletion_desc=Tämän tunnisteen poistaminen poistaa sen tiedot kaikista siihen liittyvistä ongelmista. Haluatko jatkaa?
issues.label_deletion_success=Tunniste on poistettu onnistuneesti!
issues.num_participants=%d osallistujaa
issues.attachment.open_tab=`Klikkaa nähdäksesi "%s" uudessa välilehdessä`
issues.attachment.download=`Klikkaa ladataksesi "%s"`
pulls.new=Uusi pull pyyntö
pulls.compare_changes=Vertaa muutoksia
@@ -505,6 +623,7 @@ pulls.compare_compare=vertaa
pulls.filter_branch=Suodata branch
pulls.no_results=Tuloksia ei löytynyt.
pulls.nothing_to_compare=Ei ole mitään verrattavaa koska base ja head branchit ovat tasoissa.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`On olemassa jo pull pyyntö näiden kohteiden välillä: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Luo Pull-pyyntö
pulls.title_desc=haluaa yhdistää %[1]d committia lähteestä <code>%[2]s</code> kohteeseen <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=Konfliktin tarkistus on yhä meneillään, ole hyvä ja päivi
pulls.can_auto_merge_desc=Tämä pull-pyyntö voidaan yhdistää automaattisesti.
pulls.cannot_auto_merge_desc=Tätä pull-pyyntöä ei voi yhdistää automaattisesti koska on konflikteja.
pulls.cannot_auto_merge_helper=Ole hyvä ja yhdistä manuaalisesti konfliktien ratkaisemiseksi.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Yhdistä Pull-pyyntö
pulls.open_unmerged_pull_exists=`Et voi suorittaa uudelleenavaus toimintoa koska on jo olemassa pull-pyyntö (#%d) samasta reposta samoilla yhdistämistiedoilla ja odottaa yhdistämistä.`
pulls.delete_branch=Poista haara
pulls.delete_branch_has_new_commits=Haaraa ei voida poistaa koska siinä on uusia committeja mergen jälkeen.
milestones.new=Uusi merkkipaalu
milestones.open_tab=%d avoinna
@@ -568,30 +692,65 @@ wiki.last_updated=Viimeksi päivitetty: %s
settings=Asetukset
settings.options=Valinnaiset
settings.collaboration=Yhteistyö
settings.collaboration.admin=Admin
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.undefined=Undefined
settings.collaboration.admin=Ylläpitäjä
settings.collaboration.write=Kirjoita
settings.collaboration.read=Lue
settings.collaboration.undefined=Määrittelemätön
settings.branches=Haarat
settings.branches_bare=Et voi hallita haaroja tyhjässä repossa. Lisää jotain sisältöä ensin.
settings.default_branch=Oletushaara
settings.default_branch_desc=Oletushaaraa käytetään "pohjahaarana" commiteille, pull-pyynnöille ja sivustolla toteutetuille muokkauksille.
settings.update=Päivitä
settings.update_default_branch_unsupported=Palvelimella oleva Git versio ei tue oletushaaran vaihtamista.
settings.update_default_branch_success=Repositoryn oletushaara päivitetty!
settings.protected_branches=Suojatut haarat
settings.protected_branches_desc=Suojaa haaroja pakotetulta push-operaatiolta, vahinkopoistamisilta ja sallitun listan committereilta.
settings.choose_a_branch=Valitse haara...
settings.branch_protection=Haaran suojaus
settings.branch_protection_desc=Valitse suojausasetus haaralle <b>%s</b>.
settings.protect_this_branch=Suojaa tämä haara
settings.protect_this_branch_desc=Kiellä pakoteut push-operaatiot ja estä poistaminen.
settings.protect_require_pull_request=Vaadi pull-pyyntö suoran push-operaation sijaan
settings.protect_require_pull_request_desc=Estä suorat push-operaatiot tähän haaraan. Commitit täytyy pushata ei-suojattuun haaraan ja yhdistää tähän haaraan pull-pyynnön kautta.
settings.protect_whitelist_committers=Lista sallituista, jotka voivat pushata tähän haaraan
settings.protect_whitelist_committers_desc=Lisää käyttäjiä tai tiimejä sallittuihin jotka saavat pushata tähän haaraan. Sallitut käyttäjät voivat ohittaa vaatimuksen pull requestien tekemisestä.
settings.protect_whitelist_users=Käyttäjät jotka voivat pushata tähän haaraan
settings.protect_whitelist_search_users=Etsi käyttäjiä
settings.protect_whitelist_teams=Tiimit joiden jäsenet voivat pushata tähän haaraan
settings.protect_whitelist_search_teams=Etsi tiimejä
settings.update_protect_branch_success=Tämän haaran suojausasetukset on päivitetty!
settings.hooks=Webkoukut
settings.githooks=Git koukut
settings.basic_settings=Perusasetukset
settings.mirror_settings=Peilauksen asetukset
settings.sync_mirror=Synkronisoi nyt
settings.mirror_sync_in_progress=Peilaus käynnissä. Päivitä sivu minuutin kuluttua uudelleen.
settings.site=Virallinen sivusto
settings.update_settings=Päivitä asetukset
settings.change_reponame_prompt=Tämä muutos vaikuttaa siihen miten linkit liittyvät repoon.
settings.advanced_settings=Lisäasetukset
settings.wiki_desc=Ota käyttöön wiki salliaksesi ihmisten kirjoittaa asiakirjoja
settings.wiki_desc=Ota wiki käyttöön
settings.use_internal_wiki=Käytä sisäänrakennettua wikiä
settings.allow_public_wiki_desc=Salli julkinen pääsy wikiin kun repo on yksityinen
settings.use_external_wiki=Käytä ulkoista wikiä
settings.external_wiki_url=Ulkoinen Wiki URL
settings.external_wiki_url_desc=Vierailijat uudelleenohjataan URL-osoitteeseen kun he klikkaavat välilehteä.
settings.issues_desc=Ota käyttöön sisäänrakennettu kevyt vikaseuranta
settings.issues_desc=Ota virheenseuranta käyttöön
settings.use_internal_issue_tracker=Käytä sisäänrakennettua kevyttä virheenseurantaa
settings.allow_public_issues_desc=Salli julkinen pääsy ongelmiin kun repo on yksityinen
settings.use_external_issue_tracker=Käytä ulkoista vikaseurantaa
settings.external_tracker_url=Ulkoisen virheenseurannan URL
settings.external_tracker_url_desc=Vierailijat ohjataan URL-osoitteeseen kun he klikkaavat välilehteä.
settings.tracker_url_format=Ulkoisen vikaseurannan URL muoto
settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_issue_style=Ulkoisen virheenseurannan nimeämistyyli:
settings.tracker_issue_style.numeric=Numeerinen
settings.tracker_issue_style.alphanumeric=Aakkosnumeerinen
settings.tracker_url_format_desc=Voit käyttää paikkamerkkiä <code>{user} {repo} {index}</code> käyttäjänimelle, reponimelle ja vikanumerolle.
settings.pulls_desc=Ota käyttöön pull-pyynnöt salliaksesi julkiset koodilahjoitukset
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Vaaravyöhyke
settings.cannot_fork_to_same_owner=Et voi forkata repoa alkuperäiselle omistajalleen.
settings.new_owner_has_same_repo=Uudella omistajalla on jo samanniminen repo. Ole hyvä ja valitse toinen nimi.
settings.convert=Muunna tavalliseksi repoksi
settings.convert_desc=Voit muuntaa tämän peilin tavalliseksi repoksi. Tätä ei voi peruuttaa.
@@ -610,10 +769,10 @@ settings.wiki_deletion_success=Repo wiki tiedot on poistettu onnistuneesti.
settings.delete=Poista tämä repo
settings.delete_desc=Huomio, kun kerran poistat repon, niin ei ole paluuta. Varmista että haluat todella tehdä tämän.
settings.delete_notices_1=- Tätä toimintoa <strong>EI VOI</strong> peruuttaa myöhemmin.
settings.delete_notices_2=- Tämä toiminto poistaa pysyvästi kaikki tästä reposta, mukaanlukien Git tiedot, ongelmat, kommentit ja yhteistyökumppanien pääsyoikeudet.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Kaikki haarat muuttuvat itsenäisiksi poiston jälkeen.
settings.deletion_success=Repo on poistettu onnistuneesti!
settings.update_settings_success=Repom asetukset on päivitetty onnistuneesti.
settings.update_settings_success=Repon asetukset on päivitetty onnistuneesti.
settings.transfer_owner=Uusi omistaja
settings.make_transfer=Tee siirto
settings.transfer_succeed=Arkiston omistusoikeus on siirretty onnistuneesti.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Tällä käyttäjällä ei tule enää olema
settings.remove_collaborator_success=Yhteistyökumppani on poistettu.
settings.search_user_placeholder=Etsi käyttäjä...
settings.org_not_allowed_to_be_collaborator=Yhteistyökumppaniksi ei voi lisätä organisaatiota.
settings.user_is_org_member=Käyttäjä on organisaation jäsen, jota ei voi lisätä yhteistyökumppaniksi.
settings.add_webhook=Lisää webkoukku
settings.hooks_desc=Webkoukut muistuttavat paljon perus HTTP POST tapahtuma laukaisimia. Aina kun jotain tapahtuu Gogsissa, käsittelemme ilmoituksen määrittäämääsi kohteeseen. Lisätietoja <a target="_blank" href="%s">webkoukku oppaassa</a>.
settings.webhook_deletion=Poista webkoukku
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Webkoukku on poistettu onnistuneesti!
settings.webhook.test_delivery=Testitoimitus
settings.webhook.test_delivery_desc=Lähetä väärennetty push toimitusjakelu testataksesi webkoukku asetuksia
settings.webhook.test_delivery_success=Testi webkoukku on lisätty toimitusjonoon. Muutama sekunti voi mennä ennenkuin se näkyy toimitushistoriassa.
settings.webhook.redelivery=Uudelleentoimitus
settings.webhook.redelivery_success=Koukku tehtävä "%s" on lisätty uudelleen toimitusjonoon. Toimitustilan päivittäminen toimitushistoriaan voi kestää muutaman sekunnin.
settings.webhook.request=Pyyntö
settings.webhook.response=Vastaus
settings.webhook.headers=Otsikot
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Gogs lähettää <code>POST</code> requestin määritt
settings.payload_url=Payload URL
settings.content_type=Sisältötyyppi
settings.secret=Salaus
settings.secret_desc=Salaisuus lähetetään SHA256 HMAC hex digest payloadina <code>X-Gogs-Signature</code> headerilla.
settings.slack_username=Käyttäjätunnus
settings.slack_icon_url=Kuvakkeen URL
settings.slack_color=Väri
@@ -658,8 +819,20 @@ settings.event_send_everything=Tarvitsen <strong>kaiken</strong>.
settings.event_choose=Haluan valita, mitä tarvitsen.
settings.event_create=Luo
settings.event_create_desc=Branch, tai tagi luotu
settings.event_delete=Poista
settings.event_delete_desc=Branch, tai tagi luotu
settings.event_fork=Fork
settings.event_fork_desc=Repo forkattu
settings.event_push=Push
settings.event_push_desc=Git push repoon
settings.event_issues=Ongelmat
settings.event_issues_desc=Ongelma avattu, suljettu, uudelleenavattu, muokattu, annettu, anto vedottu, tarra päivitetty, tarra poistettu, merkkipaalutettu, tai poistettu merkkipaalu.
settings.event_pull_request=Pull-pyyntö
settings.event_pull_request_desc=Pull-pyyntö avattu, suljettu, uudelleenavattu, muokattu, annettu, anto vedottu, tarra päivitetty, tarra poistettu, merkkipaalutettu, poistettu merkkipaalu, tai synkronoitu.
settings.event_issue_comment=Ongelman kommentti
settings.event_issue_comment_desc=Ongelman kommentti luotu, muokattu, tai poistettu.
settings.event_release=Julkaisu
settings.event_release_desc=Julkaisu julkaistu repoon.
settings.active=Aktiivinen
settings.active_helper=Yksityiskohdat koskien tapahtumaa joka laukaisi koukun toimitetaan myös.
settings.add_hook_success=Uusi webkoukku on lisätty.
@@ -669,10 +842,13 @@ settings.delete_webhook=Poista webkoukku
settings.recent_deliveries=Viimeisimmät toimitukset
settings.hook_type=Koukkutyyppi
settings.add_slack_hook_desc=Lisää <a href="%s">Slack</a> integraatio repoosi.
settings.add_discord_hook_desc=Lisää <a href="%s">Discord</a> integraatio repositoryysi.
settings.add_dingtalk_hook_desc=Lisää <a href="%s">Dingtalk</a> integraatio repositoryysi.
settings.slack_token=Pääsymerkki
settings.slack_domain=Verkkotunnus
settings.slack_channel=Kanava
settings.deploy_keys=Deploy avaimet
settings.deploy_keys_helper=<b>Huomautus!</b> Voit lisätä julkiset avaimesi <a href="%s%s">tilisi asetuksissa</a>.
settings.add_deploy_key=Lisää deploy avain
settings.deploy_key_desc=Deploy avaimilla on vain luku-oikeudet. Ne eivät ole sama asia kuin henkilökohtaiset SSH avaimet.
settings.no_deploy_keys=Et ole lisännyt yhtään deploy avainta.
@@ -684,6 +860,8 @@ settings.add_key_success=Uusi deploy avain '%s' on lisätty onnistuneesti!
settings.deploy_key_deletion=Poista deploy avain
settings.deploy_key_deletion_desc=Deploy avaimen poistaminen poistaa myös kaikki liitetyt käyttötiedot tästä reposta. Haluatko jatkaa?
settings.deploy_key_deletion_success=Deploy avain on poistettu onnistuneesti!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Selaa lähdekoodia
diff.parent=vanhempi
@@ -695,14 +873,13 @@ diff.show_unified_view=Yhdistetty näkymä
diff.stats_desc=<strong>%d muutettua tiedostoa</strong> jossa <strong>%d lisäystä</strong> ja <strong>%d poistoa</strong>
diff.bin=BIN
diff.view_file=Näytä tiedosto
diff.file_suppressed=File diff suppressed because it is too large
diff.too_many_files=Some files were not shown because too many files changed in this diff
diff.file_suppressed=Tiedoston diff-näkymää rajattu, sillä se on liian suuri
diff.too_many_files=Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä
release.releases=Julkaisut
release.new_release=Uusi julkaisu
release.draft=Työversio
release.prerelease=Esiversio
release.stable=Vakaa
release.edit=muokkaa
release.ahead=<strong>%d</strong> committia kohteeseen %s version jälkeen
release.source_code=Lähdekoodi
@@ -727,7 +904,7 @@ release.deletion=Version poisto
release.deletion_desc=Tämän version poistaminen poistaa vastaavan Git tagin. Haluatko jatkaa?
release.deletion_success=Versio on poistettu onnistuneesti!
release.tag_name_already_exist=Versio tällä taginimellä on jo olemassa.
release.tag_name_invalid=Tag name is not valid.
release.tag_name_invalid=Tagin nimi ei kelpaa
release.downloads=Lataukset
[org]
@@ -751,6 +928,7 @@ team_permission_desc=Mikä käyttöoikeustaso tuliti tällä tiimillä olla?
form.name_reserved=Organisaation nimi '%s' on varattu.
form.name_pattern_not_allowed=Organisaation nimi mallia '%s' ei ole sallittu.
form.team_name_reserved=Tiimin nimi '%s' on varattu.
settings=Asetukset
settings.options=Valinnaiset
@@ -805,7 +983,7 @@ teams.write_permission_desc=Tämä tiimi myöntää <strong>kirjoitusoikeuden</s
teams.admin_permission_desc=Tämä tiimi myöntää <strong>ylläpito-oikeuden</strong>: jäsenet voivat lukea, pushata, ja lisätä yhteistyökumppaneita tiimin repoihin.
teams.repositories=Tiimin repot
teams.search_repo_placeholder=Etsi repo...
teams.add_team_repository=Lisää tiimirepo
teams.add_team_repository=Lisää tiimi-repository
teams.remove_repo=Poista
teams.add_nonexistent_repo=Repo jota yrität lisätä ei ole vielä olemassa, ole hyvä ja luo se ensin.
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Suorita roskienkeruu repoille
dashboard.git_gc_repos_success=Kaikki repot ovat tehneet roskienkeruun onnistuneesti.
dashboard.resync_all_sshkeys=Uudelleenkirjoita '.ssh/authorized_keys' tiedosto (varoitus: ei-Gogs avaimet menetetään)
dashboard.resync_all_sshkeys_success=Kaikki julkiset avaimet on uudelleenkirjoitettu onnistuneesti.
dashboard.resync_all_update_hooks=Uudelleenkirjoita kaikki päivityskoukut repoista (tarvitaan mukautetun asetuspolun muuttuessa)
dashboard.resync_all_update_hooks_success=Kaikki repojen päivityskoukut on uudelleenkirjoitettu onnistuneesti.
dashboard.resync_all_hooks=Uudelleensynkronoi kaikkien repositoryjen "pre-receive, update ja post-receive" hookit.
dashboard.resync_all_hooks_success=Kaikkien repositoryjen "pre-receive, update ja post-receive" hookit synkronoitu.
dashboard.reinit_missing_repos=Resetoi kaikki repo tietueet jotka menettivät Git tiedostoja
dashboard.reinit_missing_repos_success=Kaikki repo tietueet jotka menettivät Git tiedostoja on resetoitu onnistuneesti.
@@ -895,7 +1073,7 @@ users.edit_account=Muokkaa tiliä
users.max_repo_creation=Maksimi repojen määrä jonka voi luoda
users.max_repo_creation_desc=(Aseta -1 käyttääksesi globaalia oletusrajaa)
users.is_activated=Tämä tili on aktivoitu
users.prohibit_login=This account is prohibited to login
users.prohibit_login=Tämän käyttäjätilin sisäänkirjautuminen on estetty
users.is_admin=Tällä tilillä on ylläpito-oikeudet
users.allow_git_hook=Tällä tilillä on oikeudet luoda Git koukkuja
users.allow_import_local=Tällä tilillä on oikeudet tuoda paikallisia repoja
@@ -917,20 +1095,23 @@ repos.private=Yksityinen
repos.watches=Tarkkailijat
repos.stars=Äänet
repos.issues=Ongelmat
repos.size=Koko
auths.auth_manage_panel=Todennus hallintapaneeli
auths.auth_sources=Authentication Sources
auths.new=Lisää uusi lähde
auths.name=Nimi
auths.type=Tyyppi
auths.enabled=Käytössä
auths.default=Default
auths.updated=Päivitetty
auths.auth_type=Todennustyyppi
auths.auth_name=Todennusnimi
auths.security_protocol=Security Protocol
auths.security_protocol=Suojausprotokolla
auths.domain=Verkkotunnus
auths.host=Isäntä
auths.port=Portti
auths.bind_dn=Liitä DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Liitä salasana
auths.bind_password_helper=Varoitus: Tämä salasana tallennetaan tavallisena tekstinä. Älä käytä korkeasti etuoikeutetulla tilillä.
auths.user_base=Käyttäjä hakuperuste
@@ -940,6 +1121,11 @@ auths.attribute_username_placeholder=Jätä tyhjäksi käyttääksesi kirjautumi
auths.attribute_name=Etunimen määrite
auths.attribute_surname=Sukunimen määrite
auths.attribute_mail=Sähköposti määrite
auths.verify_group_membership=Varmista ryhmäjäsenyys
auths.group_search_base_dn=Ryhmähaun perusosoite DN
auths.group_filter=Ryhmäsuodatus
auths.group_attribute_contain_user_list=Ryhmän määrite joka sisältää listan käyttäjistä
auths.user_attribute_listed_in_group=Käyttäjän määrite listattuna ryhmässä
auths.attributes_in_bind=Nouda määritteet liitä DN sisällöstä
auths.filter=Käyttäjäsuodatin
auths.admin_filter=Ylläpitosuodatin
@@ -953,9 +1139,9 @@ auths.enable_tls=Ota käyttöön TLS-salaus
auths.skip_tls_verify=Ohita TLS tarkistaminen
auths.pam_service_name=PAM palvelun nimi
auths.enable_auto_register=Ota käyttöön automaattinen rekisteröinti
auths.tips=Vinkit
auths.edit=Muokkaa todennusasetusta
auths.activated=Tämä todennus on aktivoitu
auths.default_auth=This authentication is default login source
auths.new_success=Uusi todennus '%s' on luotu onnistuneesti.
auths.update_success=Todennusasetus on päivitetty onnistuneesti.
auths.update=Päivitä todennusasetus
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Todennuksen poistaminen
auths.delete_auth_desc=Tämä todennus poistetaan, haluatko jatkaa?
auths.still_in_used=Tämä todennus on yhä joidenkin käyttäjien käytössä, ole hyvä ja poista tai muunna nämä käyttäjät toiselle kirjaututumistyypille ensin.
auths.deletion_success=Todennus on poistettu onnistuneesti!
auths.login_source_exist=Kirjautumislähde '%s' on jo olemassa
config.not_set=(ei ole asetettu)
config.server_config=Palvelin asetukset
config.app_name=Sovellus nimi
config.app_ver=Sovellus versio
@@ -974,10 +1162,9 @@ config.offline_mode=Offline-tila
config.disable_router_log=Poista käytöstä reitittimen loki
config.run_user=Suorita käyttäjänä
config.run_mode=Suoritustila
config.repo_root_path=Repon juuren polku
config.git_version=Git versio
config.static_file_root_path=Staattisen tiedoston juuren polku
config.log_file_root_path=Lokitiedoston juuren polku
config.script_type=Komentosarjan tyyppi
config.reverse_auth_user=Käänteinen todennus käyttäjä
config.ssh_config=SSH asetukset
@@ -987,11 +1174,25 @@ config.ssh_domain=Verkkotunnus
config.ssh_port=Portti
config.ssh_listen_port=Kuuntele porttia
config.ssh_root_path=Juuren polku
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Polku jossa avaimet testataan
config.ssh_keygen_path=Keygen ('ssh-keygen') polku
config.ssh_minimum_key_size_check=Avaimen vähimmäiskoko tarkistus
config.ssh_minimum_key_sizes=Avaimen vähimmäiskoot
config.repo_config=Repositoryn asetukset
config.repo_root_path=Repon juuren polku
config.script_type=Komentosarjan tyyppi
config.repo_force_private=Pakota yksityiseksi
config.max_creation_limit=Enimmäis-luontiraja
config.preferred_licenses=Ensisijaiset lisenssit
config.disable_http_git=Poista käytöstä HTTP Git
config.enable_local_path_migration=Ota käyttöön paikallisen polun migraatio
config.commits_fetch_concurrency=Committien noudon samanaikaisuus
config.http_config=HTTP-asetukset
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Tietokannan asetukset
config.db_type=Tyyppi
config.db_host=Isäntä
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL tila
config.db_ssl_mode_helper=(vain "postgres")
config.db_path=Polku
config.db_path_helper=("sqlite3" ja "tidb")
config.service_config=Palvelu asetukset
config.register_email_confirm=Vaadi sähköpostivahvistus
config.disable_register=Poista käytöstä rekisteröinti
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Poista käytöstä avaimen vähimmäiskoko tarkist
config.enable_captcha=Ota käyttöön Captcha
config.active_code_lives=Aktiivinen koodi elämät ennen vanhenemista
config.reset_password_code_lives=Nollaa salasana koodi elämät
config.webhook_config=Webkoukku asetukset
config.queue_length=Jonon pituus
config.deliver_timeout=Toimitus aikakatkaisu
config.skip_tls_verify=Ohita TLS tarkistaminen
config.mailer_config=Sähköpostipalvelin asetukset
config.mailer_enabled=Käytössä
config.mailer_disable_helo=Poista käytöstä HELO
config.mailer_name=Nimi
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Isäntä
config.mailer_user=Käyttäjä
config.send_test_mail=Lähetä testi sähköposti
config.test_mail_failed=Testi sähköpostin lähettäminen vastaanottajalle '%s': %v epäonnistui
config.test_mail_sent=Testi sähköposti on lähetetty vastaanottajalle '%s'.
config.oauth_config=OAuth asetukset
config.oauth_enabled=Käytössä
config.cache_config=Välimuistin asetukset
config.cache_adapter=Välimuistin sovitin
config.cache_interval=Välimuistin aikaväli
config.cache_conn=Välimuistin yhteys merkkijono
config.session_config=Istunnon asetukset
config.session_provider=Istunnon toimittaja
config.provider_config=Toimittajan asetukset
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC aikaväli aika
config.session_life_time=Istunnon elinikä
config.https_only=Vain HTTPS
config.cookie_life_time=Evästeen elinikä
config.picture_config=Kuva asetukset
config.picture_service=Kuva palvelu
config.disable_gravatar=Poista käytöstä Gravatar
config.enable_federated_avatar=Käytä ulkopuolisia profiilikuvia
config.git_config=Git asetukset
config.git_disable_diff_highlight=Poista koodinväritys käytöstä diff-näkymässä
config.git_max_diff_lines=Diff-rivien enimmäismäärä (yhdelle tiedostolle)
config.git_max_diff_line_characters=Enimmäismäärä merkkejä (yhdellä diff-rivillä)
config.git_max_diff_files=Enimmäismäärä tiedostoja (diff-näkymässä)
config.git_gc_args=Roskienkeruun parametrit
config.git_migrate_timeout=Migraatio aikakatkaistiin
config.git_mirror_timeout=Peilauspäivitys aikakatkaistiin
config.git_clone_timeout=Kloonaus aikakatkaistiin
config.git_pull_timeout=Pull-operaatio aikakatkaistiin
config.git_gc_timeout=Roskienkeruu aikakatkaistiin
config.log_config=Loki asetukset
config.log_mode=Loki tila
config.log_mode=Tila
config.log_options=Valinnaiset
monitor.cron=Cron tehtävät
monitor.name=Nimi
@@ -1074,17 +1297,24 @@ notices.delete_success=Järjestelmän ilmoitukset on poistettu onnistuneesti.
create_repo=luotu repo <a href="%s">%s</a>
rename_repo=uudelleennimetty repo <code>%[1]s</code> nimelle <a href="%[2]s">%[3]s</a>
commit_repo=pushattu kohteeseen <a href="%[1]s/src/%[2]s">%[3]s</a> paikassa <a href="%[1]s">%[4]s</a>
compare_commits=Näytä vertailu näille %d commiteille
transfer_repo=siirretty repo <code>%s</code> kohteeseen <a href="%s">%s</a>
create_issue=`avasi ongelman <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`sulki ongelman <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`avasi uudelleen ongelman <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`kommentoi ongelmaa <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`luotu pull-pyyntö <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`sulki pull-pyynnön <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`avasi uudelleen pull-pyynnön <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`kommentoi ongelmaa <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`yhdistetty pull-pyyntö <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=siirretty repo <code>%s</code> kohteeseen <a href="%s">%s</a>
create_branch=luotu uusi haara <a href="%[1]s/src/%[2]s">%[3]s</a> kohteeseen <a href="%[1]s">%[4]s</a>
delete_branch=poistettu haara <code>%[2]s</code> kohteesta <a href="%[1]s">%[3]s</a>
push_tag=pushattu tagi <a href="%s/src/%s">%[2]s</a> kohteeseen <a href="%[1]s">%[3]s</a>
compare_commits=Näytä vertailu näille %d commiteille
delete_tag=poistettu tagi <code>%[2]s</code> kohteesta <a href="%[1]s">%[3]s</a>
fork_repo=forkattu repo kohteeseen <a href="%s"> %s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=sitten

View File

@@ -48,7 +48,7 @@ cancel=Annuler
install=Installation
title=Instructions pour la première exécution
docker_helper=Si vous exécutez Gogs grâce à Docker, merci de lire la <a target="_blank" href="%s">procédure</a> attentivement avant de modifier quoi que ce soit sur cette page !
requite_db_desc=Gogs requiert MySQL, PostgreSQL, SQLite3 ou TiDB.
requite_db_desc=Gogs requiert MySQL, PostgreSQL, SQLite3, MSSQL ou TiDB.
db_title=Paramètres de la base de données
db_type=Type de base de données
host=Hôte
@@ -58,9 +58,8 @@ db_name=Nom de base de données
db_helper=Veuillez utiliser le moteur INNODB avec le jeu de caractères utf8_general_ci pour MySQL.
ssl_mode=Mode SSL
path=Emplacement
sqlite_helper=Le chemin du fichier de base de données SQLite3 ou TiDB. <br>Utilisez un chemin absolu lorsque vous démarrez en tant que service.
err_empty_db_path=Le chemin de la base de données SQLite3 ou TiDB ne peut être vide.
err_invalid_tidb_name=Le nom de la base de données TiDB ne peut contenir les caractères "." ou "-".
sqlite_helper=Le chemin du fichier de base de données SQLite3. <br>Utilisez un chemin absolu lorsque vous démarrez en tant que service.
err_empty_db_path=Le chemin de la base de données SQLite3 ne peut être vide.
no_admin_and_disable_registration=Vous ne pouvez pas désactiver l'enregistrement sans créer un compte administrateur.
err_empty_admin_password=Le mot de passe du compte administrateur ne peut être vide.
@@ -75,12 +74,16 @@ domain=Domaine
domain_helper=Cela affecte les doublons d'URL SSH.
ssh_port=Port SSH
ssh_port_helper=Numéro de port utilisé par votre serveur SSH, le laisser vide pour désactiver la fonctionnalité.
use_builtin_ssh_server=Utiliser le serveur SSH incorporé
use_builtin_ssh_server_popup=Démarrer le serveur SSH incorporé pour les opérations Git afin de le distinguer du démon SSH système.
http_port=Port HTTP
http_port_helper=Numéro de port que l'application écoutera.
app_url=URL de l'application
app_url_helper=Cela affecte les doublons d'URL HTTP/HTTPS et le contenu d'e-mail.
log_root_path=Chemin des fichiers log
log_root_path_helper=Répertoire d'écriture des fichiers de log.
enable_console_mode=Activer le mode Console
enable_console_mode_popup=En plus du mode fichier, également imprimer des journaux à la console.
optional_title=Paramètres facultatifs
email_title=Paramètres du service de messagerie
@@ -96,6 +99,8 @@ offline_mode=Activer le mode hors connexion
offline_mode_popup=Désactiver le CDN, même en production. Toutes les ressources seront distribuées en local.
disable_gravatar=Désactiver le service Gravatar
disable_gravatar_popup=Désactiver Gravatar et les sources personnalisées, tous les avatars sont téléchargés par les utilisateurs ou par défaut.
federated_avatar_lookup=Activer les recherches d'avatars unifiés
federated_avatar_lookup_popup=Activer la recherche unifiée d'avatars en utilisant le service open source unifié basé sur libravatar.
disable_registration=Désactiver le formulaire d'inscription
disable_registration_popup=Désactiver le formulaire d'inscription, seuls les administrateurs peuvent créer des comptes.
enable_captcha=Activez le Captcha
@@ -113,16 +118,18 @@ test_git_failed=Le test de la commande "git" a échoué : %v
sqlite3_not_available=Votre version publiée ne prend pas en charge SQLite3. Veuillez télécharger la version binaire officielle à cette adresse %s.
invalid_db_setting=Paramètres de base de données incorrects : %v
invalid_repo_path=Chemin vers la racine du dépôt invalide : %v
run_user_not_match=L'utilisateur entré n'est pas l'utilisateur actuel : %s -> %s
run_user_not_match=L'utilisateur d'exécution saisi n'est pas l'utilisateur d'exécution actuel : %s -> %s
smtp_host_missing_port=Le numéro de port est manquant dans l'adresse de l'Hôte SMTP.
invalid_smtp_from=Le champ SMTP Provenant de n'est pas valide: %v
save_config_failed=La sauvegarde de la configuration a échoué : %v
invalid_admin_setting=Paramètres du compte administrateur invalides : %v
install_success=Bienvenue ! Nous sommes heureux que vous ayez choisi Gogs, amusez-vous et prenez soin de vous.
invalid_log_root_path=Le chemin principal des fichiers logs est invalide: %v
invalid_log_root_path=L'emplacement racine des fichiers logs est invalide : %v
[home]
uname_holder=Nom d'utilisateur ou e-mail
password_holder=Mot de passe
switch_dashboard_context=Basculer le Contexte du Tableau de Bord
switch_dashboard_context=Basculer le contexte du tableau de bord
my_repos=Mes dépôts
show_more_repos=Afficher plus de dépôts...
collaborative_repos=Dépôts collaboratifs
@@ -135,6 +142,7 @@ issues.in_your_repos=Dans vos dépôts
[explore]
repos=Dépôts
users=Utilisateurs
organizations=Organisations
search=Rechercher
[auth]
@@ -142,7 +150,9 @@ create_new_account=Créer un nouveau compte
register_hepler_msg=Déjà enregistré ? Connectez-vous !
social_register_hepler_msg=Déjà enregistré ? Associez-le !
disable_register_prompt=Désolé, les enregistrements ont été désactivés. Veuillez contacter l'administrateur du site.
disable_register_mail=Désolé, la Confirmation par Mail des Enregistrements a été désactivée.
disable_register_mail=Désolé, la confirmation par courriel des enregistrements a été désactivée.
auth_source=Sources d'authentification
local=Locale
remember_me=Se souvenir de moi
forgot_password=Mot de passe oublié
forget_password=Mot de passe oublié ?
@@ -150,23 +160,30 @@ sign_up_now=Pas de compte ? Inscrivez-vous maintenant.
confirmation_mail_sent_prompt=Un nouveau mail de confirmation à été envoyé à <b>%s</b>. Veuillez vérifier votre boîte de réception dans un délai de %d heures pour compléter votre enregistrement.
active_your_account=Activer votre compte
prohibit_login=Connexion interdite
prohibit_login_desc=Votre compte est interdit de se connecter, contactez ladministrateur du site.
prohibit_login_desc=La connexion avec ce compte est interdite ; contactez l'administrateur du site.
resent_limit_prompt=Désolé, vos tentatives d'activation sont trop fréquentes. Veuillez réessayer dans 3 minutes.
has_unconfirmed_mail=Bonjour %s, votre adresse e-mail (<b>%s</b>) n'a pas été confirmée. Si vous n'avez reçu aucun mail de confirmation ou souhaitez renouveler l'envoi, cliquez sur le bouton ci-dessous.
resend_mail=Cliquez ici pour renvoyer un mail de confirmation
email_not_associate=Cette adresse e-mail n'est associée à aucun compte.
send_reset_mail=Cliquez ici pour (r)envoyer le mail de réinitialisation du mot de passe
reset_password=Réinitialiser le mot de passe
invalid_code=Désolé, votre code de confirmation est invalide ou a expiré.
reset_password_helper=Cliquez ici pour réinitialiser votre mot de passe
password_too_short=Le mot de passe doit contenir 6 caractères minimum.
non_local_account=Les comptes non-locaux ne peuvent pas changer leur mot de passe via Gogs.
non_local_account=Les comptes non locaux ne peuvent pas changer leur mot de passe via Gogs.
login_two_factor=Authentification en deux étapes
login_two_factor_passcode=Mot de passe d'authentification
login_two_factor_enter_recovery_code=Entrez un code de récupération en deux étapes
login_two_factor_recovery=Récupération en deux étapes
login_two_factor_recovery_code=Code de récupération
login_two_factor_enter_passcode=Entrez un code d'authentification en deux étapes
login_two_factor_invalid_recovery_code=Code de récupération a été utilisé ou n'est pas valide.
[mail]
activate_account=Veuillez activer votre compte
activate_email=Veuillez vérifier votre adresse e-mail
reset_password=Réinitialiser votre mot de passe
register_success=Succès de l'enregistrement, Bienvenue
register_success=Inscription réussie, bienvenue
register_notify=Bienvenue à bord
[modal]
@@ -177,19 +194,27 @@ modify=Modifier
[form]
UserName=Nom d'utilisateur
RepoName=Nom du dépôt
Email=Adresse E-mail
Email=Adresse e-mail
Password=Mot de passe
Retype=Confirmez le mot de passe
SSHTitle=Nom de la clé SSH
HttpsUrl=URL HTTPS
PayloadUrl=URL des Données Utiles
TeamName=Nom d'équipe
PayloadUrl=URL des données utiles
TeamName=Nom de l'équipe
AuthName=Nom d'autorisation
AdminEmail=E-mail de l'administrateur
require_error=` Ne peut être vide `
alpha_dash_error=` doivent être des caractères alpha, numeriques ou console (-_) valides `
alpha_dash_dot_error=` doivent être des caractères alpha, numeriques, console (-_) valides ou des points `
NewBranchName=Nouveau nom de la branche
CommitSummary=Résumé du commit
CommitMessage=Message de commit
CommitChoice=Choix de commit
TreeName=Chemin du fichier
Content=Contenu
require_error=` ne peut pas être vide.`
alpha_dash_error=` doivent être des caractères alpha, numériques ou tirets (-_) valides.`
alpha_dash_dot_error=` doivent être des caractères alpha, numériques, tirets (-_) valides ou des points.`
alpha_dash_dot_slash_error=doit contenir uniquement des caractères alphanumériques, des tirets (-), des points (.) ou des slash (/)
size_error=` doit être à la taille de %s.`
min_size_error=` %s caractères minimum `
max_size_error=` %s caractères maximum `
@@ -206,6 +231,7 @@ org_name_been_taken=Nom d'organisation déjà pris.
team_name_been_taken=Nom d'équipe déjà pris.
email_been_used=Adresse e-mail déjà utilisée.
username_password_incorrect=Nom d'utilisateur ou mot de passe incorrect.
auth_source_mismatch=La source dauthentification sélectionnée nest pas associée à lutilisateur.
enterred_invalid_repo_name=Veuillez vérifier que le nom saisi du dépôt soit correct.
enterred_invalid_owner_name=Veuillez vérifier que le nom du propriétaire saisi soit correct.
enterred_invalid_password=Veuillez vérifier que le mot de passe saisi soit correct.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'utilisateur.
[settings]
profile=Profil
password=Mot de Passe
avatar=Avatar
ssh_keys=Clés SSH
social=Réseaux Sociaux
applications=Applications
security=Sécurité
repos=Dépôts
orgs=Organisations
applications=Applications
delete=Supprimer le compte
uid=ID d'Utilisateur
public_profile=Profil public
profile_desc=Votre adresse e-mail est publique et sera utilisée pour les notifications relatives au compte, ainsi que pour toute opération Web effectuée via le site.
@@ -259,6 +286,8 @@ change_username_prompt=Cette modification affectera la manière dont les liens s
continue=Continuer
cancel=Annuler
lookup_avatar_by_mail=Recherche d'avatar par email
federated_avatar_lookup=Recherche d'avatars unifiés
enable_custom_avatar=Activer l'avatar personnalisé
choose_new_avatar=Sélectionner un nouvel avatar
update_avatar=Mettre à jour l'avatar
@@ -308,10 +337,31 @@ no_activity=Aucune activité récente
key_state_desc=Cette clé a été utilisée durant les 7 derniers jours
token_state_desc=Ce jeton a été utilisé durant les 7 derniers jours
manage_social=Gérer les réseaux sociaux associés
social_desc=Ceci est la liste des comptes de réseaux sociaux associés. Supprimez ceux que vous ne reconnaissez pas.
unbind=Dissocier
unbind_success=Compte de réseau social dissocié.
two_factor=Authentification en deux étapes
two_factor_status=État :
two_factor_on=Activé
two_factor_off=Désactivé
two_factor_enable=Activer
two_factor_disable=Désactiver
two_factor_view_recovery_codes=Voir et sauvegarder <a href="%s%s">vos codes de récupération</a> dans un endroit sécurisé. Vois pouvez les utiliser comme mot de passe si vous perdez l'accès à l'application d'authentification.
two_factor_http=Vous ne pouvez plus utiliser un nom d'utilisateur et mot de passe en clair pour les opérations en HTTP/HTTPS. Merci de créer et d'utiliser un <a href="%[1]s%[2]s">jeton d'accès personnel</a> comme moyen d'identification, par exemple <code>%[3]s</code>.
two_factor_enable_title=Activer l'authentification en deux étapes
two_factor_scan_qr=Veuillez utiliser votre application d'authentification pour numériser l'image :
two_factor_or_enter_secret=Ou entrez la phrase secrète :
two_factor_then_enter_passcode=Puis entrez le mot de passe :
two_factor_verify=Vérifier
two_factor_invalid_passcode=Le mot de passe que vous avez entré n'est pas valide, veuillez réessayer.
two_factor_reused_passcode=Le mot de passe que vous avez entré a déjà été utilisé, veuillez en essayez un autre !
two_factor_enable_error=L'activation de l'authentification en deux étapes a échoué : %v
two_factor_enable_success=L'authentification en deux étapes a été bien été activée pour votre compte.
two_factor_recovery_codes_title=Codes de secours pour l'authentification en deux étapes
two_factor_recovery_codes_desc=Les codes de récupération sont utilisés quand vous perdez temporairement l'accès à votre application d'authentification. Chaque code de récupération ne peut être utilisé qu'une fois, <b>merci de les garder dans un endroit sécurisé</b>.
two_factor_regenerate_recovery_codes=Regénérer les codes de récupération
two_factor_regenerate_recovery_codes_error=La regénération des codes de récupération a échouée : %v
two_factor_regenerate_recovery_codes_success=Les nouveaux codes de récupération ont été générés avec succès !
two_factor_disable_title=Désactiver l'authentification à deux facteurs
two_factor_disable_desc=Le niveau de sécurité de votre compte va baisser après avoir désactiver l'authentification à deux facteurs. Voulez-vous continuer ?
two_factor_disable_success=L'authentification à deux facteurs a été désactivée avec succès !
manage_access_token=Gérer les jetons d'accès personnels
generate_new_token=Générer le nouveau jeton
@@ -325,6 +375,15 @@ access_token_deletion=Suppression du jeton d'accès
access_token_deletion_desc=Supprimer ce jeton d'accès supprimera tous les accès de l'application. Voulez-vous continuer ?
delete_token_success=Le jeton d'accèsa été supprimé avec succès ! N'oubliez pas de mettre à jour vos applications.
orgs.none=Vous n'êtes membre d'aucune organisation.
orgs.leave_title=Quitter une organisation
orgs.leave_desc=Vous perdrez accès à tous les dépôts et équipes après que vous ayez quitté l'organisation. Voulez-vous continuer ?
repos.leave=Quitter
repos.leave_title=Quitter le dépôt
repos.leave_desc=Vous perdrez l'accès à ce dépôt après l'avoir quitté. Voulez-vous continuer ?
repos.leave_success=Vous avez quitté le dépôt '%s' avec succès !
delete_account=Supprimer votre compte
delete_prompt=Votre compte sera définitivement supprimé et cette opération est <strong>irréversible</strong> !
confirm_delete_account=Confirmer la suppression
@@ -338,14 +397,14 @@ repo_name_helper=Idéalement, le nom d'un dépot devrait être court, mémorable
visibility=Visibilité
visiblity_helper=Ce dépôt est <span class="ui red text"> privé</span>
visiblity_helper_forced=L'administrateur du site a forcé tous les nouveaux dépôts à être <span class="ui red text">privés</span>
visiblity_fork_helper=(Les changement de cette valeur affecteront tous les forks)
visiblity_fork_helper=(Les changements de cette valeur affecteront tous les forks)
clone_helper=Besoin d'aide pour dupliquer ? Visitez <a target="_blank" href="%s">l'aide</a> !
fork_repo=Créer un fork du dépôt
fork_from=Fork de
fork_visiblity_helper=La visibilité d'un fork ne peut pas être modifiée.
repo_desc=Description
repo_lang=Langue
repo_lang_helper=Sélectionnez les fichiers .gitignore
repo_gitignore_helper=Choisissez un modèle de fichier .gitignore
license=Licence
license_helper=Sélectionner un fichier de licence
readme=Fichier Readme
@@ -358,9 +417,12 @@ mirror_prune_desc=Supprimez toute référence de suivi à distance qui n'existe
mirror_interval=Intervalle du miroir (heure)
mirror_address=Adresse du miroir
mirror_address_desc=Veuillez inclure les informations d'identification nécessaires dans l'adresse.
mirror_last_synced=Dernière synchronisation
watchers=Observateurs
stargazers=Stargazers
forks=Forks
repo_description_helper=Description du dépôt. 512 caractères maximum.
repo_description_length=Caractères disponibles
form.reach_limit_of_creation=Le propriétaire a atteint le nombre maximal de %d dépôts créés.
form.name_reserved=Le nom de dépôt '%s' est réservé.
@@ -371,16 +433,16 @@ migrate_type=Type de migration
migrate_type_helper=Ce dépôt sera un <span class="text blue"> miroir</span>
migrate_repo=Migrer le dépôt
migrate.clone_address=Adresse du clone
migrate.clone_address_desc=Cela peut être une URL HTTP/HTTPS/GIT ou un chemin d'accès local.
migrate.clone_address_desc=Cela peut être une URL HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Vous êtes aussi autorisé à migrer un dépôt via un chemin local du serveur.
migrate.permission_denied=Vous n'êtes pas autorisé à importer des dépôts locaux.
migrate.invalid_local_path=Chemin local non valide, non existant ou n'étant pas un dossier.
migrate.failed=Echec de migration: %v
mirror_from=miroir de
forked_from=forké depuis
fork_from_self=Vous ne pouvez pas forker un dépôt que vous possédez déja !
copy_link=Copier
copy_link_success=Copié!
copy_link_success=Copié !
copy_link_error=Appuyez sur ⌘-C ou Ctrl-C pour copier
copied=Copié
unwatch=Ne plus suivre
@@ -394,9 +456,9 @@ quick_guide=Introduction rapide
clone_this_repo=Cloner ce dépôt
create_new_repo_command=Créer un nouveau dépôt en ligne de commande
push_exist_repo=Soumettre un dépôt existant par ligne de commande
repo_is_empty=Ce dépôt est vide, veuillez revenir plus tard !
bare_message=Ce dépôt n'a pas de contenu pour l'instant.
code=Code
files=Fichiers
branch=Branche
tree=Aborescence
filter_branch_and_tag=Filtrer une branche ou un tag
@@ -404,16 +466,66 @@ branches=Branches
tags=Tags
issues=Tickets
pulls=Pull Requests
labels=Etiquettes
labels=Étiquettes
milestones=Jalons
commits=Commits
git_branches=Branches
releases=Publications
file_raw=Raw
file_history=Historique
file_view_raw=Voir le Raw
file_permalink=Lien permanent
file_too_large=Ce fichier est trop gros pour être afficher
video_not_supported_in_browser=Votre navigateur ne supporte pas la balise video HTML5.
branches.overview=Résumé
branches.active_branches=Branches Actives
branches.stale_branches=Branches stagnantes
branches.all=Toutes les Branches
branches.updated_by=Mise à jour %[1]s par %[2]s
branches.change_default_branch=Changer la Branche par Défaut
editor.new_file=Nouveau fichier
editor.upload_file=Téléverser un fichier
editor.edit_file=Modifier fichier
editor.preview_changes=Aperçu des modifications
editor.cannot_edit_non_text_files=Impossible de modifier les fichiers non-texte
editor.edit_this_file=Modifier ce fichier
editor.must_be_on_a_branch=Vous devez être sur une branche pour appliquer ou proposer des modifications à ce fichier
editor.fork_before_edit=Vous devez fourcher ce dépôt avant de modifier le fichier
editor.delete_this_file=Supprimer ce fichier
editor.must_have_write_access=Vous devez avoir un accès en écriture pour appliquer ou proposer des modifications à ce fichier
editor.file_delete_success=Fichier '%s' a été supprimé avec succès!
editor.name_your_file=Nommez votre fichier...
editor.filename_help=Pour ajouter un répertoire, il suffit de le taper puis d'appuyer sur /. Pour supprimer un répertoire, aller au début du champ et appuyerz sur retour arrière.
editor.or=ou
editor.cancel_lower=annuler
editor.commit_changes=Commit les modifications
editor.add_tmpl=Ajouter '%s/<filename>'
editor.add=Ajouter '%s'
editor.update=Mettre à jour '%s'
editor.delete=Supprimer '%s'
editor.commit_message_desc=Ajouter une optionnelle description détaillée...
editor.commit_directly_to_this_branch=Soumettre directement à la branche <strong class="branch-name">%s</strong>.
editor.create_new_branch=Créer une <strong>nouvelle branche</strong> pour cette validation et envoyer une nouvelle pull request.
editor.new_branch_name_desc=Nouveau nom de la branche...
editor.cancel=Annuler
editor.filename_cannot_be_empty=Nom de fichier ne peut pas être vide.
editor.branch_already_exists=La branche '%s' existe déjà dans ce dépôt.
editor.directory_is_a_file=L'entrée '%s' dans le chemin d'accès parent est un fichier, pas un répertoire dans ce dépôt.
editor.file_is_a_symlink=Le fichier « %s » est un lien symbolique qui ne peut être modifié depuis l'éditeur web.
editor.filename_is_a_directory=Le nom de fichier '%s' existe déjà dans ce dépot.
editor.file_editing_no_longer_exists=Le fichier '%s' que vous modifiez n'existe plus dans le dépôt.
editor.file_changed_while_editing=Le contenu du fichier à changé depuis que vous avez commencé à l'éditer. <a target="_blank" href="%s">Cliquez ici</a> pour voir ce qui à été modifié ou <strong>appuyez sur commit encore une fois</strong> pour remplacer ces changements.
editor.file_already_exists=La branche '%s' existe déjà dans ce dépôt.
editor.no_changes_to_show=Il ny a aucun changement à afficher.
editor.fail_to_update_file=Échec lors de la mise à jour/création du fichier '%s' avec l'erreur : %v
editor.fail_to_delete_file=Impossible de supprimer le fichier «%s» avec lerreur : %v
editor.add_subdir=Ajouter un sous-répertoire...
editor.unable_to_upload_files=Échec lors de l'envoie du fichier '%s' avec l'erreur : %v
editor.upload_files_to_dir=Transférer les fichiers vers '%s'
commits.commit_history=Historique des commits
commits.commits=Commits
commits.search=Rechercher des commits
commits.find=Trouver
@@ -424,21 +536,26 @@ commits.older=Précédemment
commits.newer=Récemment
issues.new=Nouveau ticket
issues.new.labels=Etiquettes
issues.new.labels=Étiquettes
issues.new.no_label=Pas d'étiquette
issues.new.clear_labels=Effacer les étiquettes
issues.new.milestone=Étape
issues.new.no_milestone=Pas d'étape
issues.new.clear_milestone=Effacer l'étape
issues.new.open_milestone=Ouvrir l'étape
issues.new.milestone=Jalon
issues.new.no_milestone=Aucun jalon
issues.new.clear_milestone=Effacer le jalon
issues.new.open_milestone=Ouvrir un jalon
issues.new.closed_milestone=Jalons fermés
issues.new.assignee=Affecté à
issues.new.clear_assignee=Supprimer les assignataires
issues.new.no_assignee=Pas d'assignataire
issues.create=Créer un rapport de problème
issues.create=Créer un ticket
issues.new_label=Nouvelle étiquette
issues.new_label_placeholder=Nom de l'étiquette...
issues.create_label=Créer une étiquette
issues.label_templates.title=Charger un ensemble prédéfini d'étiquettes
issues.label_templates.info=Il n'y a pas encore d'étiquettes. Vous pouvez cliquer sur le bouton "Nouveau Label" ci-dessus pour créer une ou utiliser un ensemble prédéfini ci-dessous.
issues.label_templates.helper=Sélectionnez un ensemble d'étiquettes
issues.label_templates.use=Utilisez ce jeu d'étiquettes
issues.label_templates.fail_to_load_file=Impossible de charger le fichier de modèle étiquette '%s' : %v
issues.open_tab=%d Ouvert
issues.close_tab=%d Fermé
issues.filter_label=Étiquette
@@ -474,14 +591,13 @@ issues.close_comment_issue=Commenter et fermer
issues.reopen_issue=Réouvrir
issues.reopen_comment_issue=Commenter et réouvrir
issues.create_comment=Créer un commentaire
issues.closed_at=`fermé à <a id="%[1]s"href="#%[1]s"> %[2]s"</a>`
issues.closed_at=`fermé à <a id="%[1]s"href="#%[1]s"> %[2]s</a>`
issues.reopened_at=`réouvert à <a id="%[1]s" href="#%[1]s"> %[2]s</a>`
issues.commit_ref_at=`a référencé ce problème à partir d'un commit <a id="%[1]s" href="#%[1]s"> %[2]s</a>`
issues.poster=Publier
issues.collaborator=Collaborateur
issues.owner=Propriétaire
issues.sign_up_for_free=Inscrivez-vous gratuitement
issues.sign_in_require_desc=pour rejoindre cette conversation. Vous avez déjà un compte ? <a href="%s">Connectez-vous commenter</a>
issues.sign_in_require_desc=<a href="%s">Connectez-vous</a> pour rejoindre cette conversation.
issues.edit=Modifier
issues.cancel=Annuler
issues.save=Enregistrer
@@ -496,6 +612,8 @@ issues.label_deletion=Suppression du Label
issues.label_deletion_desc=Cette opération supprimera également toutes les informations relatives aux tickets. Voulez-vous continuer ?
issues.label_deletion_success=Label supprimé avec succès !
issues.num_participants=%d Participants
issues.attachment.open_tab=`Cliquez ici pour voir '%s' dans un nouvel onglet`
issues.attachment.download=`Cliquez pour télécharger "%s"`
pulls.new=Nouvelle Pull Request
pulls.compare_changes=Comparer les changements
@@ -505,14 +623,15 @@ pulls.compare_compare=Comparer
pulls.filter_branch=Filtre de branche
pulls.no_results=Aucun résultat trouvé.
pulls.nothing_to_compare=Il n'y a rien de comparable parce que les deux branches sont égales.
pulls.has_pull_request=`Il y a déjà une demande de tirer entre ces deux cibles : <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Creer une Pull Request
pulls.nothing_merge_base=Il n'y a rien à comparer parce que les deux branches ont un historique complètement différent.
pulls.has_pull_request=`Il y a déjà une pull request entre ces deux cibles : <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Créer une Pull Request
pulls.title_desc=veut fusionner %[1]d commits à partir de <code>%[2]s</code> vers <code>%[3]s</code>
pulls.merged_title_desc=à fusionné %[1]d commits à partir de <code>%[2]s</code> vers <code>%[3]s</code> %[4]s
pulls.merged_title_desc=a fusionné %[1]d commits à partir de <code>%[2]s</code> vers <code>%[3]s</code> %[4]s
pulls.tab_conversation=Conversation
pulls.tab_commits=Commits
pulls.tab_files=Fichiers modifiés
pulls.reopen_to_merge=Veuillez rouvrir cette demande de Pull Request pour effectuer l'opération de fusion.
pulls.reopen_to_merge=Veuillez rouvrir cette Pull Request pour effectuer l'opération de fusion.
pulls.merged=Fusionné
pulls.has_merged=Cette Pull Request a été fusionnée avec succès !
pulls.data_broken=Les données de cette pull request ont été compromises en raison de la suppression d'informations sur le fork.
@@ -520,8 +639,13 @@ pulls.is_checking=La recherche de conflits est toujours en cours, veuillez rafra
pulls.can_auto_merge_desc=Cette pull request peut être fusionnée automatiquement.
pulls.cannot_auto_merge_desc=Cette pull request ne peut être fusionnée automatiquement à cause de conflits.
pulls.cannot_auto_merge_helper=Fusionner manuellement afin de résoudre les conflits.
pulls.create_merge_commit=Créer un commit de fusion
pulls.rebase_before_merging=Rebaser avant la fusion
pulls.commit_description=Description du commit
pulls.merge_pull_request=Fusionner la Pull Request
pulls.open_unmerged_pull_exists=`Vous ne pouvez effectuer une réouverture car il y a déjà une pull-request ouverte (#%d) depuis le même dépôt avec les mêmes informations de fusion et est en attente de fusion.`
pulls.delete_branch=Supprimer la branche
pulls.delete_branch_has_new_commits=La branche ne peut pas être supprimée car de nouveaux commits ont été effectuées après la fusion.
milestones.new=Nouveau Jalon
milestones.open_tab=%d Ouvert
@@ -572,26 +696,61 @@ settings.collaboration.admin=Administrateur
settings.collaboration.write=Écrire
settings.collaboration.read=Lire
settings.collaboration.undefined=Indéfini
settings.branches=Branches
settings.branches_bare=Vous ne pouvez pas gérer les branches d'un dépôt vide. Merci de publier du contenu dans un premier temps.
settings.default_branch=Branche par défaut
settings.default_branch_desc=La branche par défaut est considérée comme la branche « originale » pour les commits de code, les requêtes de fusion et l'édition en ligne.
settings.update=Actualiser
settings.update_default_branch_unsupported=Le changement de branche par défaut n'est pas supporté par la version de Git sur ce serveur.
settings.update_default_branch_success=La branche par défaut de ce dépôt a bien été mise à jour.
settings.protected_branches=Branches protégées
settings.protected_branches_desc=Protéger les branches du push forcé, de la suppression accidentelle et des publicateurs de code en liste blanche.
settings.choose_a_branch=Choisir une branche…
settings.branch_protection=Protection de branche
settings.branch_protection_desc=Sélectionnez les options de protection pour la branche <b>%s</b>.
settings.protect_this_branch=Protéger cette branche
settings.protect_this_branch_desc=Interdire les push forcés et empêcher la suppression.
settings.protect_require_pull_request=Exiger une pull request plutôt qu'un push immédiat
settings.protect_require_pull_request_desc=Activez cette option pour empêcher la publication immédiate vers cette branche. Les commits devront être publiés vers une autre branche (non protégée) et fusionnée dans cette branche avec une requête de fusion.
settings.protect_whitelist_committers=Liste blanche de personnes pouvant publier sur cette branche
settings.protect_whitelist_committers_desc=Ajouter des personnes ou des équipes à la liste blanche des fusions directes de cette branche. Les utilisateurs dans cette liste blanche passeront outre la nécessité de valider leurs requêtes de fusion.
settings.protect_whitelist_users=Utilisateurs qui peuvent pousser sur cette branche
settings.protect_whitelist_search_users=Rechercher des utilisateurs
settings.protect_whitelist_teams=Les équipes pour lesquelles les membres peuvent pousser sur cette branche
settings.protect_whitelist_search_teams=Rechercher des équipes
settings.update_protect_branch_success=Les options de protection de cette branches ont été mises à jour avec succès.
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Paramètres de base
settings.mirror_settings=Réglages Miroir
settings.sync_mirror=Synchroniser maintenant
settings.mirror_sync_in_progress=Synchronisation du miroir en cours, merci de rafraîchir la page dans une minute environ.
settings.site=Site officiel
settings.update_settings=Valider
settings.change_reponame_prompt=Ce changement affectera comment les liens sont reliés avec le dépôt.
settings.advanced_settings=Paramètres avancés
settings.wiki_desc=Activer le wiki pour permettre l'écriture de documents
settings.wiki_desc=Activer le wiki
settings.use_internal_wiki=Utiliser le wiki interne
settings.allow_public_wiki_desc=Autoriser l'accès public au wiki quand le dépôt est privé
settings.use_external_wiki=Utiliser un wiki externe
settings.external_wiki_url=URL Wiki externe
settings.external_wiki_url_desc=Les visiteurs seront redirigés vers cette URL lorsqu'ils cliqueront sur l'onglet.
settings.issues_desc=Activer le bug-tracker léger intégré
settings.issues_desc=Activer le système de tickets
settings.use_internal_issue_tracker=Utiliser le système simplifié de tickets interne
settings.allow_public_issues_desc=Permettre l'accès du public aux tickets lorsque le dépôt est privé
settings.use_external_issue_tracker=Utiliser un bug-tracker externe
settings.external_tracker_url=Adresse de l'issue tracker externe
settings.external_tracker_url_desc=Les visiteurs seront redirigés vers cette URL lorsqu'ils cliqueront sur l'onglet.
settings.tracker_url_format=Format d'URL du bug tracker
settings.tracker_issue_style=Style de nommage des bugs du tracker externe :
settings.tracker_issue_style.numeric=Numérique
settings.tracker_issue_style.alphanumeric=Alphanumérique
settings.tracker_url_format_desc=Vous pouvez utiliser l'espace réservé <code>{user} {repo} {index}</code> pour le nom d'utilisateur, le nom du dépôt et le numéro de bug.
settings.pulls_desc=Activer les pull requests pour accepter les contributions publiques
settings.pulls_desc=Activer les pull requests pour accepter les contributions depuis des dépôts et des branches
settings.pulls.ignore_whitespace=Ignorer les changements quand ce sont des espaces
settings.pulls.allow_rebase_merge=Autoriser l'utilisation de rebase pour fusionner les validations
settings.danger_zone=Zone de danger
settings.cannot_fork_to_same_owner=Vous ne pouvez par créer un fork d'un dépot à son propriétaire actuel.
settings.new_owner_has_same_repo=Le nouveau propriétaire a déjà un dépôt nommé ainsi.
settings.convert=Convertir en dépôt ordinaire
settings.convert_desc=Vous pouvez convertir ce miroir en dépôt ordinaire. Cela ne peut pas être inversée.
@@ -611,7 +770,7 @@ settings.delete=Supprimer ce dépôt
settings.delete_desc=Attention, cette action est action irréversible. Soyez sûr de vous.
settings.delete_notices_1=- Cette opération <strong>ne peut pas </strong> être annulée.
settings.delete_notices_2=- Cette opération supprimera définitivement le dépôt, y compris les données Git, les tickets, les commentaires et les accès des collaborateurs.
settings.delete_notices_fork_1=-Tous les forks deviendront indépendants après leffacement.
settings.delete_notices_fork_1=-Tous les forks deviendront indépendants après l'effacement.
settings.deletion_success=Le dépôt a été supprimé avec succès!
settings.update_settings_success=Options mises à jour avec succès.
settings.transfer_owner=Nouveau propriétaire
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Cet utilisateur n'aura plus accès pour coll
settings.remove_collaborator_success=Collaborateur supprimé.
settings.search_user_placeholder=Rechercher un utilisateur...
settings.org_not_allowed_to_be_collaborator=Une organisation n'est pas autorisée à être ajoutée en tant que collaborateur.
settings.user_is_org_member=Cet utilisateur ne peut pas être ajouté en tant que collaborateur car il fait partie d'une organisation.
settings.add_webhook=Ajouter un Webhook
settings.hooks_desc=Les Webhooks sont des déclencheurs de POST HTTP . Lorsque qu'un événement se produit dans Gogs, une notification sera envoyée vers l'hôte cible préalablement spécifié. Apprenez-en davantage dans le <a target="_blank" href="%s">Guide des Webhooks</a>.
settings.webhook_deletion=Supprimer le Webhook
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Le webhook a été supprimé avec succès !
settings.webhook.test_delivery=Tester la version
settings.webhook.test_delivery_desc=Envoyer un faux push pour tester la configuration des webhooks
settings.webhook.test_delivery_success=Le webhook de test a été ajouté à la file d'attente de livraison. L'affichage dans l'historique de livraison peut prendre quelques secondes.
settings.webhook.redelivery=Redistribution
settings.webhook.redelivery_success=La tâche crochet '%s' a été réajoutée à la liste de livraison. La mise à jour de l'état de livraison dans l'historique peut prendre quelques secondes.
settings.webhook.request=Requête
settings.webhook.response=Réponse
settings.webhook.headers=Entêtes 
@@ -649,17 +809,30 @@ settings.add_webhook_desc=Une requête <code>POST</code> sera transmise vers l'U
settings.payload_url=URL des Données Utiles
settings.content_type=Type de contenu
settings.secret=Confidentiel
settings.secret_desc=Le secret sera envoyé comme digest de payload SHA256 HMAC hex avec l'entête <code>X-Gogs-Signature</code>.
settings.slack_username=Nom d'utilisateur
settings.slack_icon_url=URL de l'icône
settings.slack_color=Couleur
settings.event_desc=Quel évènement ce Webhook doit-il déclencher ?
settings.event_desc=Quand ce webhook doit-il être déclenché ?
settings.event_push_only=Uniquement les <code>push</code> (soumissions).
settings.event_send_everything=J'ai besoin de <strong>tout</strong>.
settings.event_choose=Permettez-moi de choisir ce dont j'ai besoin.
settings.event_create=Créer
settings.event_create_desc=Branche, ou Tag créé
settings.event_delete=Supprimer
settings.event_delete_desc=Branche ou tag supprimé
settings.event_fork=Fork
settings.event_fork_desc=Dépôt dédoublé
settings.event_push=Push
settings.event_push_desc=Git push vers un dépôt
settings.event_issues=Tickets
settings.event_issues_desc=Ticket ouvert, fermé, réouvert, modifié, assigné, non-assigné, étiquette mise à jour, étiquette nettoyée, jalonnée, ou déjalonnée.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull requests ouverte, fermée, réouverte, modifiée, assignée, non-assignée, étiquette mise à jour, étiquette nettoyée, jalonnée, déjalonnée, ou synchronisée.
settings.event_issue_comment=Commentaire du ticket
settings.event_issue_comment_desc=Commentaire du ticket créé, modifié, ou supprimé.
settings.event_release=Version publiée
settings.event_release_desc=Version publiée dans un dépôt.
settings.active=Actif
settings.active_helper=Les détails seront délivrés lorsque ce Hook sera déclenché.
settings.add_hook_success=Nouveau Webhook ajouté.
@@ -669,10 +842,13 @@ settings.delete_webhook=Supprimer le Webhook
settings.recent_deliveries=Livraisons récentes
settings.hook_type=Type de Hook
settings.add_slack_hook_desc=Intégrer <a href="%s"> Slack</a> à votre dépôt.
settings.add_discord_hook_desc=Ajouter l'intégration de <a href="%s">Discord</a> à votre dépôt.
settings.add_dingtalk_hook_desc=Ajouter l'intégration de <a href="%s">Dingtalk</a> à votre dépôt.
settings.slack_token=Jeton
settings.slack_domain=Domaine
settings.slack_channel=Canal
settings.deploy_keys=Clés de déploiement
settings.deploy_keys_helper=<b>Gotcha commun !</b> Si vous cherchez à ajouter des clés publiques personnelles, ajoutez-les dans vos <a href="%s%s">paramètres de compte</a>.
settings.add_deploy_key=Ajouter une Clé de Déploiement
settings.deploy_key_desc=Déployer une clé uniquement en lecture seule. Il ne s'agit pas des clés ssh de compte personnel.
settings.no_deploy_keys=Vous n'avez ajouté aucune clé de déploiement.
@@ -684,8 +860,10 @@ settings.add_key_success=La nouvelle clé de déploiement '%s' a été ajoutée
settings.deploy_key_deletion=Supprimer la Clé de Déploiement
settings.deploy_key_deletion_desc=Supprimer cette clé de déploiement effacera tous les accès relatifs pour ce référentiel. Voulez-vous continuer ?
settings.deploy_key_deletion_success=La clé de déploiement a été supprimée avec succès !
settings.description_desc=Description du dépôt. 512 caractères maximum.
settings.description_length=Caractères disponibles
diff.browse_source=Parcourir la Source
diff.browse_source=Parcourir la source
diff.parent=Parent
diff.commit=commit
diff.data_not_available=Données Diff indisponibles.
@@ -702,7 +880,6 @@ release.releases=Versions
release.new_release=Nouvelle version
release.draft=Brouillon
release.prerelease=Pré-publication
release.stable=Stable
release.edit=Éditer
release.ahead=<strong>%d</strong> commits jusqu'à %s depuis cette publication
release.source_code=Code source
@@ -751,6 +928,7 @@ team_permission_desc=Quel niveau d'accès cette équipe devrait-elle posséder ?
form.name_reserved=Le nom d'organisation '%s' est réservé.
form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'organisation.
form.team_name_reserved=Le nom d'équipe « %s » est réservé.
settings=Paramètres
settings.options=Options
@@ -767,7 +945,7 @@ settings.delete_prompt=Cela supprimera cette organisation définitivement. Cette
settings.confirm_delete_account=Confirmez la suppression
settings.delete_org_title=Suppression d'organisation
settings.delete_org_desc=Cette organisation sera définitivement supprimée. Continuer ?
settings.hooks_desc=Ajoute des vebhooks qui seront activés pour <strong>tous les dépôts</strong> de cette organisation.
settings.hooks_desc=Ajoute des webhooks qui seront activés pour <strong>tous les dépôts</strong> de cette organisation.
members.membership_visibility=Visibilité des membres:
members.public=Public
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Collecter les déchets des dépôts
dashboard.git_gc_repos_success=Tous les dépôts ont effectué la collecte avec succès.
dashboard.resync_all_sshkeys=Ré-écrire le fichier '.ssh/authorized_keys' (attention : les clés hors-Gogs vont être perdues)
dashboard.resync_all_sshkeys_success=Toutes les clés publiques ont été ré-écrites avec succès.
dashboard.resync_all_update_hooks=Ré-écrire tous les hooks de mises à jour des dépôts (requis quand le chemin de la configuration personnalisé est modifié)
dashboard.resync_all_update_hooks_success=Tous les hooks de mises à jour des dépôts ont été ré-écris avec succès.
dashboard.resync_all_hooks=Re-synchroniser les crochets pre-receive, update et post-receive de tous les dépôts.
dashboard.resync_all_hooks_success=Tous les crochets pre-receive, update et post-receive ont bien été resynchronisés.
dashboard.reinit_missing_repos=Réinitialiser tous les dépôts qui ont perdu des fichiers Git
dashboard.reinit_missing_repos_success=Tous les enregistrements de dépôts qui ont perdu des fichiers Git ont été réinitialisés avec succès.
@@ -917,12 +1095,14 @@ repos.private=Privé
repos.watches=Suivi par
repos.stars=Votes
repos.issues=Tickets
repos.size=Taille
auths.auth_manage_panel=Panel d'administration des authentifications
auths.auth_sources=Sources d'authentification
auths.new=Ajouter une nouvelle source d'authentification
auths.name=Nom
auths.type=Type
auths.enabled=Activé
auths.default=Par défaut
auths.updated=Mis à jour
auths.auth_type=Type d'authentification
auths.auth_name=Nom de l'authentification
@@ -931,6 +1111,7 @@ auths.domain=Domaine
auths.host=Hôte
auths.port=Port
auths.bind_dn=Bind DN
auths.bind_dn_helper=Vous pouvez utiliser « %s » qui sera remplacé par le nom d'utilisateur, par exemple « DOM\%s »
auths.bind_password=Bind mot de passe
auths.bind_password_helper=Avertissement : Ce mot de passe est stocké en clair. N'utilisez pas le mot de passe d'un compte doté de privilèges élevés.
auths.user_base=Utilisateur Search Base
@@ -940,6 +1121,11 @@ auths.attribute_username_placeholder=Laisser vide pour utiliser la valeur du for
auths.attribute_name=Attribut du prénom
auths.attribute_surname=Attribut du nom de famille
auths.attribute_mail=Attribut de l'e-mail
auths.verify_group_membership=Vérifier l'appartenance à un groupe
auths.group_search_base_dn=Recherche de groupe basée sur le nom de domaine
auths.group_filter=Filtre par groupe
auths.group_attribute_contain_user_list=Attribut de groupe contenant la liste des utilisateurs
auths.user_attribute_listed_in_group=Attribut de l'utilisateur listé dans le groupe
auths.attributes_in_bind=Aller chercher les attributs dans le contexte de liaison DN
auths.filter=Filtre utilisateur
auths.admin_filter=Filtre administrateur
@@ -953,9 +1139,9 @@ auths.enable_tls=Activer le Chiffrement TLS
auths.skip_tls_verify=Ne pas vérifier TLS
auths.pam_service_name=Nom du Service PAM
auths.enable_auto_register=Connexion Automatique
auths.tips=Conseils
auths.edit=Modifier les paramètres d'authentification
auths.activated=Authentification activée
auths.default_auth=Cette authentification est la source de connexion par défaut
auths.new_success=Nouvelle authentification «%s » a été ajoutée avec succès.
auths.update_success=Les paramètre d'authentification a été mis à jour avec succès.
auths.update=Mettre à jour les paramètres d'authentifications
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Suppression de l'authentification
auths.delete_auth_desc=Cette authentification va être supprimée. voulez-vous continuer ?
auths.still_in_used=Cette authentification est encore utilisée par d'autres utilisateurs, supprimez-les ou convertir ces utilisateurs vers un autre type de session, avant.
auths.deletion_success=L'authentification a été supprimée avec succès !
auths.login_source_exist=La source de connexion « %s » existe déjà.
config.not_set=(non défini)
config.server_config=Configuration du Serveur
config.app_name=Nom de l'application
config.app_ver=Version de l'application
@@ -974,10 +1162,9 @@ config.offline_mode=Mode hors-ligne
config.disable_router_log=Désactiver la Journalisation du Routeur
config.run_user=Utilisateur système
config.run_mode=Mode d'Éxécution
config.repo_root_path=Emplacement des Dépôts
config.git_version=Version de Git
config.static_file_root_path=Chemin statique des fichiers racines
config.log_file_root_path=Emplacement Racine du Fichier Journal
config.script_type=Type de Script
config.reverse_auth_user=Annuler l'Authentification de l'Utilisateur
config.ssh_config=Configuration SSH
@@ -987,11 +1174,25 @@ config.ssh_domain=Domaine
config.ssh_port=Port
config.ssh_listen_port=Port d'écoute
config.ssh_root_path=Emplacement racine
config.ssh_rewrite_authorized_keys_at_start=Réécrire authorized_keys au démarrage
config.ssh_key_test_path=Chemin de test des clés
config.ssh_keygen_path=Chemin vers le générateur de clefs ("ssh-keygen")
config.ssh_minimum_key_size_check=Vérification de la longueur de clé minimale
config.ssh_minimum_key_sizes=Tailles de clé minimales
config.repo_config=Configuration du dépôt
config.repo_root_path=Emplacement des Dépôts
config.script_type=Type de Script
config.repo_force_private=Privé forcé
config.max_creation_limit=Limite de création maximale
config.preferred_licenses=Licences préférées
config.disable_http_git=Désactiver Git HTTP
config.enable_local_path_migration=Activer la migration de chemin locale
config.commits_fetch_concurrency=Concurrence des récupérations de commits
config.http_config=Configuration HTTP
config.http_access_control_allow_origin=Autoriser le partage daccès avec lorigine
config.db_config=Configuration de la Base de Données
config.db_type=Type
config.db_host=Hôte
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=Mode SSL
config.db_ssl_mode_helper=("postgres" uniquement)
config.db_path=Emplacement
config.db_path_helper=(pour « sqlite3 » et « TIDB »)
config.service_config=Configuration du Service
config.register_email_confirm=Nécessite une confirmation par e-mail
config.disable_register=Désactiver les inscriptions
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Désactiver la vérification de la taille de clé
config.enable_captcha=Activez le Captcha
config.active_code_lives=Limites de Code Actif
config.reset_password_code_lives=Réinitialiser le Mot De Passe des Limites de Code
config.webhook_config=Configuration Webhook
config.queue_length=Longueur de la file d'attente
config.deliver_timeout=Expiration d'Envoi
config.skip_tls_verify=Ne pas vérifier TLS
config.mailer_config=Configuration du service de mail
config.mailer_enabled=Activé
config.mailer_disable_helo=Désactiver HELO
config.mailer_name=Nom
config.mailer_subject_prefix=Préfixe du sujet
config.mailer_host=Hôte
config.mailer_user=Utilisateur
config.send_test_mail=Envoyer courriel de Test
config.test_mail_failed=Impossible d'envoyer un e-mail de test à '%s': %v
config.test_mail_sent=Un e-mail de test à été envoyé à '%s'.
config.oauth_config=Configuration OAuth
config.oauth_enabled=Activé
config.cache_config=Configuration du Cache
config.cache_adapter=Adaptateur du Cache
config.cache_interval=Intervales du Cache
config.cache_conn=Liaison du Cache
config.session_config=Configuration de session
config.session_provider=Fournisseur de session
config.provider_config=Configuration du fournisseur
@@ -1039,11 +1246,27 @@ config.gc_interval_time=Intervals GC
config.session_life_time=Durée des sessions
config.https_only=HTTPS uniquement
config.cookie_life_time=Expiration du cookie
config.picture_config=Configuration d'Image
config.picture_service=Service d'Imagerie
config.disable_gravatar=Désactiver Gravatar
config.enable_federated_avatar=Activer les avatars unifiés
config.git_config=Configuration de Git
config.git_disable_diff_highlight=Désactiver la surbrillance syntaxique de Diff
config.git_max_diff_lines=Lignes de Diff Max (pour un seul fichier)
config.git_max_diff_line_characters=Nombre max de caractères de Diff (pour une seule ligne)
config.git_max_diff_files=Nombre max de fichiers de Diff (à afficher)
config.git_gc_args=Arguments de GC
config.git_migrate_timeout=Délai imparti pour une migration
config.git_mirror_timeout=Délai imparti pour mettre à jour le miroir
config.git_clone_timeout=Délai imparti pour l'opération "Clone"
config.git_pull_timeout=Délai imparti pour l'opération "Pull"
config.git_gc_timeout=Délai imparti pour l'opération "GC"
config.log_config=Configuration du Journal
config.log_mode=Mode du journal
config.log_mode=Mode
config.log_options=Options
monitor.cron=Tâches Cron
monitor.name=Nom
@@ -1062,7 +1285,7 @@ notices.actions=Actions
notices.select_all=Tout Sélectionner
notices.deselect_all=Tous déselectionner
notices.inverse_selection=Inverser la sélection
notices.delete_selected=Supprimé les éléments sélectionnés
notices.delete_selected=Supprimer les éléments sélectionnés
notices.delete_all=Supprimer toutes les notifications
notices.type=Type
notices.type_1=Dépôt
@@ -1072,38 +1295,45 @@ notices.delete_success=Notifications système supprimées avec succès.
[action]
create_repo=a créé le dépôt <a href="%s">%s</a>
rename_repo=rebaptisé le dépôt de <code>%[1]s</code> à <a href="%[2]s">%[3]s</a>
commit_repo=a soumis à <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
rename_repo=a rebaptisé le dépôt de <code>%[1]s</code> vers <a href="%[2]s">%[3]s</a>
commit_repo=a commité dans <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
compare_commits=Comparer ces %d commits
transfer_repo=a transféré le dépôt <code>%s</code> à <a href="%s">%s</a>
create_issue=`a ouvert un problème <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`tickets clos <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`tickets ré-ouverts <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`pull request créée le <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`pull request fermé <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`pull request ré-ouverte <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`a commenté le problème <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`pull request créée le <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`pull request fermée <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`pull request ré-ouverte <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`pull request fusionné le <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=a transféré le dépôt <code>%s</code> à <a href="%s">%s</a>
create_branch=nouvelle branche créée <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
delete_branch=branche supprimée <code>%[2]s</code> sur <a href="%[1]s">%[3]s</a>
push_tag=a soumis le tag <a href="%s/src/%s">%[2]s</a> sur <a href="%[1]s">%[3]s</a>
compare_commits=Comparer ces %d commits
delete_tag=étiquette supprimée <code>%[2]s</code> sur <a href="%[1]s">%[3]s</a>
fork_repo=a créé sa branche du dépôt vers <a href="%s">%s</a>
mirror_sync_push=a commité dans <a href="%[1]s/src/%[2]s">%[3]s</a> sur <a href="%[1]s">%[4]s</a>
mirror_sync_create=a synchronisé la nouvelle référence <a href="%s/src/%s">%[2]s</a> vers <a href="%[1]s">%[3]s</a> depuis le miroir
mirror_sync_delete=Référence synchronisés et supprimé <code>%[2]s</code> sur <a href="%[1]s">%[3]s</a>
[tool]
ago=auparavant
from_now=à partir de maintenant
ago=il y a
from_now=dans
now=maintenant
1s=1 seconde %s
1m=1 minute %s
1h=1 heure %s
1d=1 jour %s
1w=1 semaine %s
1mon=1 mois %s
1y=1 an %s
seconds=%d secondes %s
minutes=%d minutes %s
hours=%d heures %s
days=%d jours %s
weeks=%d semaines %s
months=%d mois %s
years=%d ans %s
1s=%s 1 seconde
1m=%s 1 minute
1h=%s 1 heure
1d=%s 1 jour
1w=%s 1 semaine
1mon=%s 1 mois
1y=%s 1 an
seconds=%[2]s %[1]d secondes
minutes=%[2]s %[1]d minutes
hours=%[2]s %[1]d heures
days=%[2]s %[1]d jours
weeks=%[2]s %[1]d semaines
months=%[2]s %[1]d mois
years=%[2]s %[1]d ans
raw_seconds=secondes
raw_minutes=minutes

1345
conf/locale/locale_gl-ES.ini Normal file

File diff suppressed because it is too large Load Diff

1345
conf/locale/locale_hu-HU.ini Normal file

File diff suppressed because it is too large Load Diff

1345
conf/locale/locale_id-ID.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -48,7 +48,7 @@ cancel=Annulla
install=Installazione
title=Passi d'installazione per il primo avvio
docker_helper=Se stai utilizzando Gogs su Docker, per favore leggi le <a target="_blank" href="%s">Linee guida</a> con attenzione prima di cambiare qualcosa su questa pagina!
requite_db_desc=Gogs necessita MySQL, PostgreSQL, SQLite3 o TiDB.
requite_db_desc=Gogs richiede MySQL, PostgreSQL, SQLite3, MSSQL o TiDB.
db_title=Impostazioni Database
db_type=Tipo di database
host=Host
@@ -58,9 +58,8 @@ db_name=Nome del database
db_helper=Utilizza il motore INNODB con codifica utf8_general_ci per MySQL.
ssl_mode=Modalità SSL
path=Percorso
sqlite_helper=Il path assoluto per il database SQLite3 o TiDB. <br>Per favore usa il path assoluto quando lo avvii come servizio.
err_empty_db_path=Il percorso file del database SQLite3 o TiDB non può essere vuoto.
err_invalid_tidb_name=Il nome del database TiDB non ammette caratteri "." e "-".
sqlite_helper=Il percorso del file di database di SQLite3. <br>Si prega di utilizzare il percorso assoluto quando si avvia come servizio.
err_empty_db_path=Il percorso del database SQLite3 non può essere vuoto.
no_admin_and_disable_registration=Non puoi disabilitare la registrazione senza aver creato un amministratore.
err_empty_admin_password=La password dell'amministratore non puo' essere vuota.
@@ -75,12 +74,16 @@ domain=Dominio
domain_helper=Questo influisce sugli URL per il clonaggio via SSH.
ssh_port=Porta SSH
ssh_port_helper=Numero di porta utilizzato dal server SSH, lasciare vuoto per disabilitare l'integrazione SSH.
use_builtin_ssh_server=Usa il server SSH integrato
use_builtin_ssh_server_popup=Avvia il server SSH integrato per le operazioni Git per distinguerle dal demone SSH di sistema.
http_port=Porta HTTP
http_port_helper=Porta di ascolto dell'applicazione.
app_url=URL Applicazione
app_url_helper=Questo influisce sugli URL per il clonaggio via HTTP/HTTPS e da qualche parte nella posta elettronica.
log_root_path=Percorso dei log
log_root_path_helper=Directory in cui scrivere i file di log.
enable_console_mode=Abilita modalità Terminale
enable_console_mode_popup=In aggiunta alla modalità file, invia i log anche al terminale.
optional_title=Impostazioni Facoltative
email_title=Impostazioni E-mail
@@ -96,6 +99,8 @@ offline_mode=Abilita Modalità Offline
offline_mode_popup=Disabilita il CDN anche in modalità produttiva, tutte le risorse saranno servite localmente.
disable_gravatar=Disattiva il servizio Gravatar
disable_gravatar_popup=Disabilita Gravatar e sorgenti customizzate, tutti gli avatar vengono caricati dagli utenti o come predefinito.
federated_avatar_lookup=Abilita Federated Avatars
federated_avatar_lookup_popup=Abilita ricerca dell'avatar nel servizio libravatar Federated Avatars.
disable_registration=Disabilita Registrazione Manuale
disable_registration_popup=Disabilita la registrazione manuale degli utenti, solo gli amministratori possono creare account.
enable_captcha=Abilita Captcha
@@ -114,17 +119,19 @@ sqlite3_not_available=Questa versione non supporta SQLite3, si prega di scaricar
invalid_db_setting=La configurazione del database non è corretta: %v
invalid_repo_path=Percorso root del repository invalido: %v
run_user_not_match=Run user non è l'utente corrente: %s -> %s
smtp_host_missing_port=All'Host SMTP manca la porta nell'indirizzo.
invalid_smtp_from=Campo SMTP From non valido: %v
save_config_failed=Fallito il salvataggio della configurazione: %v
invalid_admin_setting=Impostazioni account Admin non valide: %v
install_success=Benvenuto! Siamo felici che tu abbia scelto Gogs, buon divertimento.
invalid_log_root_path=Log root path is invalid: %v
invalid_log_root_path=Percorso deilog non valido: %v
[home]
uname_holder=Nome Utente o E-mail
password_holder=Password
switch_dashboard_context=Cambia Dashboard Context
my_repos=I miei Repository
show_more_repos=Show more repositories...
show_more_repos=Visualizza altre repositories...
collaborative_repos=Repository Condivisi
my_orgs=Le mie Organizzazioni
my_mirrors=I miei Mirror
@@ -135,6 +142,7 @@ issues.in_your_repos=Nei tuoi repository
[explore]
repos=Repository
users=Utenti
organizations=Organizzazioni
search=Cerca
[auth]
@@ -143,24 +151,33 @@ register_hepler_msg=Hai già un account? Accedi ora!
social_register_hepler_msg=Hai già un account? Associalo ora!
disable_register_prompt=Siamo spiacenti, registrazione è stata disabilitata. Si prega di contattare l'amministratore del sito.
disable_register_mail=Siamo spiacenti, la conferma di registrazione via Mail è stata disattivata.
auth_source=Fonte di autenticazione
local=Locale
remember_me=Ricordami
forgot_password=Password dimenticata
forget_password=Password dimenticata?
sign_up_now=Bisogno di un account? Iscriviti ora.
confirmation_mail_sent_prompt=Una nuova email di conferma è stata inviata a <b>%s</b>, verifica la tua casella di posta entro le prossime %d ore per completare la registrazione.
active_your_account=Attiva il tuo Account
prohibit_login=Login Prohibited
prohibit_login_desc=Your account is prohibited to login, please contact site admin.
prohibit_login=Accesso Vietato
prohibit_login_desc=Il tuo account è impossibilitato al login, contatta l'amministratore del sito.
resent_limit_prompt=Siamo spiacenti, si stanno inviando e-mail di attivazione troppo spesso. Si prega di attendere 3 minuti.
has_unconfirmed_mail=Ciao %s, hai un indirizzo di posta elettronica non confermato (<b>%s</b>). Se non hai ricevuto una e-mail di conferma o vuoi riceverla nuovamente, fare clic sul pulsante qui sotto.
resend_mail=Clicca qui per inviare nuovamente l'e-mail di attivazione
email_not_associate=Questo indirizzo e-mail non è associato ad alcun account.
send_reset_mail=Clicca qui per (ri)inviare la tua e-mail di reimpostazione password
reset_password=Reimposta la tua Password
invalid_code=Siamo spiacenti, il codice di conferma è scaduto o non valido.
reset_password_helper=Clicca qui per reimpostare la password
password_too_short=La lunghezza della password non può essere meno 6 caratteri.
non_local_account=Non-local accounts cannot change passwords through Gogs.
non_local_account=Gli account non locali non possono modificare le password tramite Gogs.
login_two_factor=Autenticazione in Due Passaggi
login_two_factor_passcode=Codice di autenticazione
login_two_factor_enter_recovery_code=Inserisci il codice di recupero dell'Autenticazione a due Fattori
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recupera il codice
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
[mail]
activate_account=Per favore attiva il tuo account
@@ -187,9 +204,17 @@ TeamName=Nome Team
AuthName=Nome autorizzazione
AdminEmail=Email dell'Admin
NewBranchName=Nuovo nome del branch
CommitSummary=Riepilogo dei commit
CommitMessage=Messaggio di commit
CommitChoice=Scelta di commit
TreeName=Percorso del file
Content=Contenuto
require_error=` non può essere vuoto.`
alpha_dash_error=` ammessi solo caratteri alfanumerici o trattini(-_).`
alpha_dash_dot_error=` ammessi solo caratteri alfanumerici o trattini(-_) o punti.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error='deve essere %s.'
min_size_error=` deve contenere almeno %s caratteri.`
max_size_error=` deve contenere massimo %s caratteri.`
@@ -206,6 +231,7 @@ org_name_been_taken=Il nome dell'Organizzazione è già utlizzato.
team_name_been_taken=Il nome del Team è già utilizzato.
email_been_used=L'indirizzo E-mail è già utilizzato.
username_password_incorrect=Nome utente o password incorretti.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Si prega di assicurarsi che il nome del repository inserito sia corretto.
enterred_invalid_owner_name=Si prega di assicurarsi che il nome del proprietario inserito sia corretto.
enterred_invalid_password=Verificare che la password inserita sia corretta.
@@ -223,7 +249,7 @@ org_still_own_repo=Questa organizzazione ha ancora la proprietà del repository,
target_branch_not_exist=Il ramo (branch) di destinazione non esiste.
[user]
change_avatar=Change your avatar
change_avatar=Cambia il tuo avatar
join_on=Si è unito il
repositories=Repository
activity=Attività pubblica
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=La struttura del nome utente '%s' non è consentit
[settings]
profile=Profilo
password=Password
avatar=Avatar
ssh_keys=Chiavi SSH
social=Account Sociali
applications=Applicazioni
security=Sicurezza
repos=Repository
orgs=Organizzazioni
applications=Applicazioni
delete=Elimina account
uid=Uid
public_profile=Profilo pubblico
profile_desc=Il tuo indirizzo e-mail è pubblico e sarà usato per ogni notifica inerente al tuo account, e per qualsiasi operazione web effettuata attraverso il sito.
@@ -259,6 +286,8 @@ change_username_prompt=Questa modifica influenzerà il modo in cui i link si rif
continue=Continua
cancel=Annulla
lookup_avatar_by_mail=Ricerca Avatar per mail
federated_avatar_lookup=Ricerca Federated Avatars
enable_custom_avatar=Abilita avatar personalizzato
choose_new_avatar=Scegli un nuovo avatar
update_avatar=Aggiorna le impostazioni avatar
@@ -308,10 +337,31 @@ no_activity=Nessuna attività recente
key_state_desc=Hai utilizzato questa chiave negli ultimi 7 giorni
token_state_desc=Questo token e' satato utilizzato negli ultimi 7 giorni
manage_social=Gestisci gli Account Sociali Associati
social_desc=Questa è un elenco degli account sociali associati. Rimuovere qualsiasi account che non si riconosce.
unbind=Disassocia
unbind_success=Account sociale disassociato.
two_factor=Autenticazione in Due Passaggi
two_factor_status=Stato:
two_factor_on=Attiva
two_factor_off=Non attivo
two_factor_enable=Abilita
two_factor_disable=Disattivata
two_factor_view_recovery_codes=Visualizza e memorizza i tuoi <a href="%s%s">codici di recupero</a> in un posto sicuro. Puoi utilizzarli come codice di sicurezza se perdi gli accessi all'applicazione di autenticazione.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Abilita l'autenticazione in due passaggi
two_factor_scan_qr=Per favore, utilizza la tua applicazione di autenticazione per scansionare l'immagine:
two_factor_or_enter_secret=O inserisci la chiave segreta:
two_factor_then_enter_passcode=Poi inserisci la chiave di sicurezza:
two_factor_verify=Verifica
two_factor_invalid_passcode=La chiave di sicurezza che hai inserito non è valida, riprova!
two_factor_reused_passcode=La chiave di sicurezza che hai inserito è già stata utilizzata, provane un'altra!
two_factor_enable_error=Impossibile abilitare l'autenticazione a due fattori: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Rigenera codici di recupero
two_factor_regenerate_recovery_codes_error=Impossibile rigenerare codici di recupero: %v
two_factor_regenerate_recovery_codes_success=I nuovi codici di recupero sono stati generati correttamente!
two_factor_disable_title=Disabilita autenticazione a due fattori
two_factor_disable_desc=Il livello di sicurezza del tuo account diminuirà disabilitando l'autenticazione a due fattori. Vuoi continuare?
two_factor_disable_success=L'autenticazione a due fattori è stata disabilitata!
manage_access_token=Gestisci i Token di Accesso Personale
generate_new_token=Genera Nuovo Token
@@ -325,6 +375,15 @@ access_token_deletion=Eliminazione Token di accesso personale
access_token_deletion_desc=Eliminare questo token di accesso personale rimuoverà tutti i relativi accessi di applicazione. Si desidera continuare?
delete_token_success=Il token di accesso personale è stato eliminato! Non dimenticare di aggiornare anche l'applicazione.
orgs.none=Non sei membro di alcuna organizzazione.
orgs.leave_title=Abbandona una organizzazione
orgs.leave_desc=Abbandonando l'organizzazione perderai l'accesso a tutti i repository e i gruppi. Confermi?
repos.leave=Abbandona
repos.leave_title=Lascia il repository
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
delete_account=Elimina Account
delete_prompt=L'operazione eliminerà permanentemente l'account e <strong>NON POTRÀ</strong> essere annullata!
confirm_delete_account=Conferma Eliminazione
@@ -345,7 +404,7 @@ fork_from=Forka da
fork_visiblity_helper=Non puoi cambiare la visibilità di un repository forkato.
repo_desc=Descrizione
repo_lang=Lingua
repo_lang_helper=Seleziona file .gitignore
repo_gitignore_helper=Seleziona i templates di .gitignore
license=Licenza
license_helper=Selezionare un file di licenza
readme=Readme
@@ -353,14 +412,17 @@ readme_helper=Seleziona un template per il readme
auto_init=Inizializzare questo repository con i file e il modello selezionati
create_repo=Crea Repository
default_branch=Ramo (Branch) predefinito
mirror_prune=Prune
mirror_prune=Rimuovi
mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
mirror_interval=Intervallo Mirror (in ore)
mirror_address=Indirizzo del mirror
mirror_address_desc=Si prega di includere nell'indirizzo le credenziali utente necessarie.
mirror_last_synced=Ultimo aggiornamento
watchers=Osservatori
stargazers=Fan
forks=Fork
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Caratteri disponibili
form.reach_limit_of_creation=Il proprietario ha raggiunto il limite massimo di %d repository creati.
form.name_reserved=Il nome repository %s è riservato.
@@ -371,14 +433,14 @@ migrate_type=Tipo di migrazione
migrate_type_helper=Questo repository sarà un <span class="text blue">mirror</span>
migrate_repo=Migra Repository
migrate.clone_address=Duplica Indirizzo
migrate.clone_address_desc=Può essere un URL HTTP/HTTPS/GIT o il percorso del server locale.
migrate.clone_address_desc=Può essere un url HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Puoi anche migrare un repository usando un path locale sul server.
migrate.permission_denied=Non è consentito importare repository locali.
migrate.invalid_local_path=Percorso locale non valido, non esiste o non è una cartella.
migrate.failed=Migrazione non riuscita: %v
mirror_from=mirror da
forked_from=forkato da
fork_from_self=Non puoi forkare il tuo stesso repository!
copy_link=Copia
copy_link_success=Copiato!
copy_link_error=Premere ⌘-C o Ctrl-C per copiare
@@ -394,9 +456,9 @@ quick_guide=Guida rapida
clone_this_repo=Clona questo repository
create_new_repo_command=Crea nuovo repository da riga di comando
push_exist_repo=Push un repo esistente dalla riga di comando
repo_is_empty=Questo repository è vuoto, si prega di tornare più tardi!
bare_message=This repository does not have any content yet.
code=Codice
files=File
branch=Ramo (Branch)
tree=Albero (Tree)
filter_branch_and_tag=Filtra per branch o tag
@@ -407,13 +469,63 @@ pulls=Pull Requests
labels=Etichette
milestones=Traguardi
commits=Commit
git_branches=Rami (Branch)
releases=Rilasci
file_raw=Originale
file_history=Cronologia
file_view_raw=Vedi originale
file_permalink=Permalink
file_too_large=This file is too large to be shown
file_too_large=Questo file è troppo grande per essere mostrato
video_not_supported_in_browser=Il tuo browser non supporta i tag "video" di HTML5.
branches.overview=Panoramica
branches.active_branches=Rami (Branch) attivi
branches.stale_branches=Stale Branches
branches.all=Tutti i rami (branch)
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Cambia branch di default
editor.new_file=Nuovo file
editor.upload_file=Carica File
editor.edit_file=Modifica file
editor.preview_changes=Anteprima modifiche
editor.cannot_edit_non_text_files=Non è possibile modificare i file non di testo
editor.edit_this_file=Modifica questo file
editor.must_be_on_a_branch=Devi essere su quel branch per eseguire o proporre modifiche su quel determinato branch
editor.fork_before_edit=Forka il repository per modificare il file
editor.delete_this_file=Elimina questo file
editor.must_have_write_access=È necessario un accesso in scrittura per eseguire o proporre modifiche a questo file
editor.file_delete_success=Il file '%s' è stato eliminato!
editor.name_your_file=Dai un nome al file...
editor.filename_help=Per aggiungere una cartella, scrivine il nome seguito da /. Per eliminare una cartella, spostati all'inizio del campo di testo e premi "backspace".
editor.or=oppure
editor.cancel_lower=annulla
editor.commit_changes=Commit
editor.add_tmpl=Aggiungi '%s/<filename>'
editor.add=Aggiungi '%s'
editor.update=Aggiorna '%s'
editor.delete=Elimina '%s'
editor.commit_message_desc=Aggiungi una descrizione (opzionale)...
editor.commit_directly_to_this_branch=Commit direttamente nel branch <strong class="branch-name">%s</strong>.
editor.create_new_branch=Crea un <strong>nuovo branch</strong> per questo commit e inizia una pull request.
editor.new_branch_name_desc=Nome del nuovo branch...
editor.cancel=Annulla
editor.filename_cannot_be_empty=Il nome del file non può essere vuoto.
editor.branch_already_exists=Il branch '%s' esiste già in questo repository.
editor.directory_is_a_file='%s' nel percorso corrente è un file e non una cartella.
editor.file_is_a_symlink=Il file '%s' è un link simbolico che non può essere modificato con l'editor web.
editor.filename_is_a_directory=Il nome '%s' corrisponde a una cartella già presente in questo repository.
editor.file_editing_no_longer_exists=Il file '%s' non esiste più nel repository.
editor.file_changed_while_editing=Il file è stato cambiato in un'altra posizione. <a target="_blank" href="%s">Clicca qui</a> per vedere le modifiche o <strong>committa</strong> per sovrascrivere con la versione corrente.
editor.file_already_exists=Un file di nome '%s' esiste già in questo repository.
editor.no_changes_to_show=Nessuna modifica da mostrare.
editor.fail_to_update_file=La creazione o la modifica del file '%s' è fallita: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Aggiungi sottocartella...
editor.unable_to_upload_files=È fallito il caricamento dei file su '%s': %v
editor.upload_files_to_dir=Carica file su '%s'
commits.commit_history=Cronologia Commit
commits.commits=Commits
commits.search=Ricerca una versione
commits.find=Cerca
@@ -439,6 +551,11 @@ issues.create=Crea Problema
issues.new_label=Nuova etichetta
issues.new_label_placeholder=Nome dell'etichetta...
issues.create_label=Crea Etichetta
issues.label_templates.title=Carica un set predefinito di etichette
issues.label_templates.info=Non sono presenti etichette. Puoi cliccare sul pulsante "Nuova etichetta" per crearne una, oppure usare un set predefinito mostrato qui sotto.
issues.label_templates.helper=Scegli un set di etichette
issues.label_templates.use=Usa questo set di etichette
issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
issues.open_tab=%d Aperti
issues.close_tab=%d Chiusi
issues.filter_label=Etichetta
@@ -466,8 +583,8 @@ issues.next=Pagina successiva
issues.open_title=Aperto
issues.closed_title=Chiuso
issues.num_comments=%d commenti
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.delete_comment_confirm=Are you sure you want to delete this comment?
issues.commented_at=`ha commentato <a href="#%s">%s</a>`
issues.delete_comment_confirm=Sei sicuro/a di voler eliminare questo commento?
issues.no_content=Non ci sono ancora contenuti.
issues.close_issue=Chiudi
issues.close_comment_issue=Commenta e chiudi
@@ -480,8 +597,7 @@ issues.commit_ref_at=`referenced this issue from a commit <a id="%[1]s" href="#%
issues.poster=Autore
issues.collaborator=Collaboratori
issues.owner=Proprietario
issues.sign_up_for_free=Registrati gratuitamente
issues.sign_in_require_desc=per partecipare a questa conversazione. Possiedi già un account?<a href="%s">Fai il login per commentare</a>
issues.sign_in_require_desc=<a href="%s">Sign in</a> to join this conversation.
issues.edit=Modifica
issues.cancel=Annulla
issues.save=Salva
@@ -496,6 +612,8 @@ issues.label_deletion=Elimina Etichetta
issues.label_deletion_desc=Eliminare l'etichetta rimuovera le sue informazioni in tutti i problemi correlati. Vuoi continuare?
issues.label_deletion_success=Etichetta eliminata con successo!
issues.num_participants=%d Partecipanti
issues.attachment.open_tab='Clicca per vedere "%s" in una nuova scheda'
issues.attachment.download=«Clicca qui per scaricare "%s"»
pulls.new=Nuova Pull Request
pulls.compare_changes=Confronta le modifiche
@@ -505,6 +623,7 @@ pulls.compare_compare=confronta
pulls.filter_branch=Filtra branch
pulls.no_results=Nessun risultato trovato.
pulls.nothing_to_compare=Non c'è niente da confrontare perchè i branch base e head uguali.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`E' già presente una pull request tra questi due trargets: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Crea Pull Request
pulls.title_desc=vorrebbe unire %[1]d commit da <code>%[2]s</code> a <code>%[3]s</code>
@@ -514,14 +633,19 @@ pulls.tab_commits=Commit
pulls.tab_files=File modificati
pulls.reopen_to_merge=Riapri questa pull request per effettuare il merge.
pulls.merged=Unito
pulls.has_merged=Questa pull reqeust è stata mergiata con successo!
pulls.has_merged=Questo contributo è stato incluso con successo!
pulls.data_broken=I dati di questa pull request si sono rotti causa dell'eliminazione delle informazioni di fork.
pulls.is_checking=Il controllo dei conflitti è ancora in corso, per favore aggiorna pagina tra qualche istante.
pulls.can_auto_merge_desc=La pull request non può essere mergiata automaticamente.
pulls.can_auto_merge_desc=La pull request può essere mergiata automaticamente.
pulls.cannot_auto_merge_desc=Questa pull request non può essere mergiata automaticamente perchè ci sono dei conflitti.
pulls.cannot_auto_merge_helper=Effettua il merge manualmente per risolvere i conflitti.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Effettua un Rebase prima del Merge
pulls.commit_description=Descrizione del Commit
pulls.merge_pull_request=Unisci Pull Request
pulls.open_unmerged_pull_exists=`You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
pulls.delete_branch=Elimina Ramo
pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Nuova Milestone
milestones.open_tab=%d Aperti
@@ -568,30 +692,65 @@ wiki.last_updated=Ultimo aggiornamento: %s
settings=Impostazioni
settings.options=Opzioni
settings.collaboration=Collaborazione
settings.collaboration.admin=Admin
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.undefined=Undefined
settings.collaboration.admin=Amministratore
settings.collaboration.write=Scrivi
settings.collaboration.read=Leggi
settings.collaboration.undefined=Indefinito
settings.branches=Divisioni
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Ramo di default
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Aggiorna
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Branch protetti
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Scegli un ramo...
settings.branch_protection=Protezione Ramo
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Proteggere questo ramo
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Users who can push to this branch
settings.protect_whitelist_search_users=Cerca utenti
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Cerca Teams
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Impostazioni di Base
settings.mirror_settings=Impostazioni mirror
settings.sync_mirror=Sincronizza ora
settings.mirror_sync_in_progress=Sincronizzazione del mirror in corso, aggiorna la pagina tra un minuto.
settings.site=Sito Ufficiale
settings.update_settings=Aggiorna Impostazioni
settings.change_reponame_prompt=Questa modifica influirà i link al repository.
settings.advanced_settings=Opzioni avanzate
settings.wiki_desc=Abilitare il wiki per consentire alle persone di scrivere documenti
settings.wiki_desc=Abilita wiki
settings.use_internal_wiki=Usa wiki incorporato
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Usa Wiki esterno
settings.external_wiki_url=URL Wiki esterno
settings.external_wiki_url_desc=I visitatori verranno reindirizzati all'URL quando cliccano sulla scheda.
settings.issues_desc=Abilita l'issue tracker builtin leggero
settings.issues_desc=Abilita tracking problemi
settings.use_internal_issue_tracker=Utilizza il segnalatore di problemi integrato (molto leggero)
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Utilizza gestore di problemi esterno
settings.external_tracker_url=URL di un segnalatore di problemi esterno
settings.external_tracker_url_desc=I visitatori verranno reindirizzati all'URL quando faranno click sulla scheda.
settings.tracker_url_format=Formato URL Gestore Problemi Esterno
settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_issue_style.numeric=Numerico
settings.tracker_issue_style.alphanumeric=Alfanumerico
settings.tracker_url_format_desc=You can use placeholder <code>{user} {repo} {index}</code> for user name, repository name and issue index.
settings.pulls_desc=Abilita le pull requests per accettare contributi pubblici
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignora cambiamenti di spazi bianchi
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Zona Pericolosa
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Il nuovo proprietario ha già un repository con lo stesso nome. Per favore scegli un altro nome.
settings.convert=Converti in Repository Regolare
settings.convert_desc=Puoi convertire questo mirror in un repository regolare. Questa operazione non può essere annullata.
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=I dati della wiki del repository sono stati elimi
settings.delete=Elimina questo repository
settings.delete_desc=Una volta che hai cancellato il repository, non puoi tornare indietro. Si prega di fare attenzione.
settings.delete_notices_1=-Questa operazione <strong>NON PUÒ</strong> essere annullata.
settings.delete_notices_2=-Questa operazione eliminerà definitivamente il tutto il contenuto del repository, inclusi i dati di Git, incidenti, commenti e accessi dei collaboratori.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Il repository è stato eliminato con successo!
settings.update_settings_success=Le opzioni repository sono state aggiornate con successo.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Questo utente non potrà più collaborare a
settings.remove_collaborator_success=Il collaboratore è stato rimosso.
settings.search_user_placeholder=Cerca utente...
settings.org_not_allowed_to_be_collaborator=Un'organizzazione non può essere aggiunta come collaboratore.
settings.user_is_org_member=L'utente è un membro dell'organizzazione che non può essere aggiunto come collaboratore.
settings.add_webhook=Aggiungi Webhook
settings.hooks_desc=I Webhooks sono molto simili a un basilare evento trigger HTTP POST. Ogni volta che qualcosa si verifica in Gogs, tratteremo la notifica all'host di destinazione specificato. Ulteriori informazioni in questa <a target="_blank" href="%s">Guida ai Webhooks</a>.
settings.webhook_deletion=Elimina Webhook
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Il Webhook è stato eliminato con successo!
settings.webhook.test_delivery=Test di consegna
settings.webhook.test_delivery_desc=Send a fake push event delivery to test your webhook settings
settings.webhook.test_delivery_success=Test webhook has been added to delivery queue. It may take few seconds before it shows up in the delivery history.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Richiesta
settings.webhook.response=Risposta
settings.webhook.headers=Headers
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Gogs manderà una richiesta <code>POST</code> all'URL
settings.payload_url=Payload URL
settings.content_type=Content Type
settings.secret=Secret
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username=Nome utente
settings.slack_icon_url=URL icona
settings.slack_color=Colore
@@ -658,8 +819,20 @@ settings.event_send_everything=Ho bisogno di <strong>tutto</strong>.
settings.event_choose=Lasciami scegliere ciò di cui ho bisogno.
settings.event_create=Crea
settings.event_create_desc=Branch, o tag creato
settings.event_delete=Elimina
settings.event_delete_desc=Branch o tag eliminato
settings.event_fork=Forka
settings.event_fork_desc=Repository Forkata
settings.event_push=Push
settings.event_push_desc=Git push in un repository
settings.event_issues=Problemi
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request=Pull request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Versione
settings.event_release_desc=Release published in a repository.
settings.active=Attivo
settings.active_helper=Anche i dettagli riguardanti l'evento che ha innescato l'hook saranno inviati.
settings.add_hook_success=Il nuovo webhook è stato aggiunto.
@@ -669,10 +842,13 @@ settings.delete_webhook=Eliminare Webhook
settings.recent_deliveries=Recenti Deliveries
settings.hook_type=Tipo di Hook
settings.add_slack_hook_desc=Aggiungi <a href="%s"> Slack</a> integrazione al tuo repository.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canale
settings.deploy_keys=Dispiega Chiavi
settings.deploy_keys_helper=<b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key=Aggiungi Deploy Key
settings.deploy_key_desc=Le deploy keys hanno accesso in sola lettura. Non equivalgono alle chiavi SSH personali.
settings.no_deploy_keys=Non hai aggiunto alcuna deploy key.
@@ -684,6 +860,8 @@ settings.add_key_success=La nuova deploy key '%s' è stata aggiunta con successo
settings.deploy_key_deletion=Elimina Deploy Key
settings.deploy_key_deletion_desc=Cancellando questa deploy key verrà rismosso ogni accesso relativo a questa repository. Vuoi continuare?
settings.deploy_key_deletion_success=Deploy key eliminata con successo!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Sfoglia il codice sorgente
diff.parent=parent
@@ -702,7 +880,6 @@ release.releases=Rilasci
release.new_release=Nuovo Rilascio
release.draft=Bozza
release.prerelease=Pre-Rilascio
release.stable=Stabile
release.edit=modifica
release.ahead=<strong>%d</strong> commits da %s da questo rilascio
release.source_code=Codice Sorgente
@@ -722,12 +899,12 @@ release.cancel=Annulla
release.publish=Pubblica Rilascio
release.save_draft=Salva Bozza
release.edit_release=Modifica Rilascio
release.delete_release=Cancela questa Release
release.delete_release=Cancella questa Release
release.deletion=Eliminazione Release
release.deletion_desc=Eliminando questa release cancellarai anche i tag Git corrispondenti. Vuoi continuare?
release.deletion_success=La release è stata eliminata con successo!
release.tag_name_already_exist=Un rilascio con questo tag esiste già.
release.tag_name_invalid=Tag name is not valid.
release.tag_name_invalid=Il nome del Tag non è valido.
release.downloads=Download
[org]
@@ -751,6 +928,7 @@ team_permission_desc=Quale livello di autorizzazione dovrebbe avere questa squad
form.name_reserved=Il nome organizzazione '%s' è riservato.
form.name_pattern_not_allowed=La struttura del nome dell'organizzazione '%s' non è consentita.
form.team_name_reserved=Non puoi utilizzare '%s' come nome del Team.
settings=Impostazioni
settings.options=Opzioni
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Fare la procedura di garbage collection sui repository
dashboard.git_gc_repos_success=Tutti i repository hanno fatto la procedura di garbage collection con successo.
dashboard.resync_all_sshkeys=Riscrivi il file '.ssh/authorized_keys' (attenzione: le chiavi non appartenenti a Gogs saranno perse)
dashboard.resync_all_sshkeys_success=Tutte le chiavi pubbliche riscritte con successo.
dashboard.resync_all_update_hooks=Riscrivere tutti gli update hook dei repository (necessario quando il percorso di configurazione personalizzata viene modificato)
dashboard.resync_all_update_hooks_success=Tutti gli update hook dei repository riscritti con successo.
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialized successfully.
@@ -886,16 +1064,16 @@ users.created=Creato
users.send_register_notify=Send Registration Notification To User
users.new_success=Il nuovo account '%s' è stato creato correttamente.
users.edit=Modifica
users.auth_source=Authentication Source
users.auth_source=Fonte di autenticazione
users.local=Locale
users.auth_login_name=Authentication Login Name
users.password_helper=Leave it empty to remain unchanged.
users.auth_login_name=Nome utente per l'autenticazione
users.password_helper=Lascia vuoto per non modificare.
users.update_profile_success=Profilo dell'account aggiornato con successo.
users.edit_account=Modifica Account
users.max_repo_creation=Limite massimo per la creazione di Repository
users.max_repo_creation_desc=(Inserire -1 per usare il limite globale di default)
users.is_activated=Questo account è attivato
users.prohibit_login=This account is prohibited to login
users.prohibit_login=Questo account non è abilitato al login
users.is_admin=Questo account ha permessi di amministratore
users.allow_git_hook=Questo account ha il permesso di creare hooks di Git
users.allow_import_local=Questo account dispone delle autorizzazioni per importare repository locali
@@ -917,29 +1095,37 @@ repos.private=Privati
repos.watches=Segue
repos.stars=Voti
repos.issues=Problemi
repos.size=Dimensione
auths.auth_manage_panel=Authentication Manage Panel
auths.auth_sources=Authentication Sources
auths.new=Aggiungi Nuova Origine
auths.name=Nome
auths.type=Tipo
auths.enabled=Attivo
auths.default=Default
auths.updated=Aggiornato
auths.auth_type=Tipo di autenticazione
auths.auth_name=Nome di autenticazione
auths.security_protocol=Security Protocol
auths.security_protocol=Protocollo di sicurezza
auths.domain=Dominio
auths.host=Host
auths.port=Porta
auths.bind_dn=Binda DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Binda Password
auths.bind_password_helper=Attenzione: Questa password è salvata in chiaro. Non usare su un acount con alti privilegi.
auths.user_base=User Search Base
auths.user_dn=DN dell'utente
auths.attribute_username=Attributo username
auths.attribute_username_placeholder=Leave empty to use sign-in form field value for user name.
auths.attribute_name=Attributo Nome
auths.attribute_username_placeholder=Se vuoto, verrà usato il nome di login dell'accesso.
auths.attribute_name=First Name Attribute
auths.attribute_surname=Attributo Cognome
auths.attribute_mail=Attributo Email
auths.verify_group_membership=Verifica gruppo di appartenenza
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Fetch attributes in Bind DN context
auths.filter=Fitro utente
auths.admin_filter=Filtro Amministratore
@@ -948,23 +1134,25 @@ auths.smtp_auth=Tipo di autenticazione SMTP
auths.smtphost=Host SMTP
auths.smtpport=Porta SMTP
auths.allowed_domains=Domini consentiti
auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','.
auths.allowed_domains_helper=Lasciare vuoto per non imporre restrizioni di dominio. Domini separati da virgole ','.
auths.enable_tls=Abilitare Crittografia TLS
auths.skip_tls_verify=Salta verifica TLS
auths.pam_service_name=Nome del Servizio PAM
auths.enable_auto_register=Abilitare Registrazione Automatica
auths.tips=Consigli
auths.edit=Modifica impostazioni di autenticazione
auths.activated=Questa Autenticazione è stata attivata
auths.new_success=New authentication '%s' has been added successfully.
auths.update_success=Authentication setting has been updated successfully.
auths.default_auth=This authentication is default login source
auths.new_success=Nuovo meccanismo di autenticazione '%s' aggiunto.
auths.update_success=Parametro di autenticazione aggiornato.
auths.update=Aggiornare le impostazioni di autenticazione
auths.delete=Elimina questa autenticazione
auths.delete_auth_title=Authentication Deletion
auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue?
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=Authentication has been deleted successfully!
auths.delete_auth_title=Eliminazione del meccanismo di autenticazione
auths.delete_auth_desc=Eliminazione del meccanismo di autenticazione. Continuare?
auths.still_in_used=Questo meccanismo di autenticazione è ancora attivo per alcuni utenti. Eliminare gli utenti o cambiare il loro meccanismo di autenticazione prima di ritentare.
auths.deletion_success=Il meccanismo di autenticazione è stato eliminato!
auths.login_source_exist=La fonte di autenticazione '%s' esiste già.
config.not_set=(non impostata)
config.server_config=Configurazione Server
config.app_name=Nome Applicazione
config.app_ver=Versione Applicazione
@@ -974,10 +1162,9 @@ config.offline_mode=Modalità Offline
config.disable_router_log=Disattivare Log del Router
config.run_user=Utente Esecutore
config.run_mode=Modalità Esecuzione
config.repo_root_path=Percorso Root del Repository
config.git_version=Versione Git
config.static_file_root_path=Percorso Root del File Statico
config.log_file_root_path=Percorso Root del File di Log
config.script_type=Tipo di Script
config.reverse_auth_user=Autenticazione Utente Inversa
config.ssh_config=Configurazione SSH
@@ -987,11 +1174,25 @@ config.ssh_domain=Dominio
config.ssh_port=Porta
config.ssh_listen_port=Porta in ascolto
config.ssh_root_path=Percorso Root
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Percorso chiave di test
config.ssh_keygen_path=Percorso Keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Verifica delle dimensioni minime della chiave
config.ssh_minimum_key_sizes=Dimensioni minime della chiave
config.repo_config=Configurazione Repository
config.repo_root_path=Percorso Root del Repository
config.script_type=Tipo di Script
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disabilita Git in HTTP
config.enable_local_path_migration=Abilita migrazioni con path locale
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=Configurazione HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Configurazione Database
config.db_type=Tipo
config.db_host=Host
@@ -1001,35 +1202,41 @@ config.db_ssl_mode=Modalità SSL
config.db_ssl_mode_helper=(solo per "postgres")
config.db_path=Percorso
config.db_path_helper=(per "sqlite3" e "tidb")
config.service_config=Configurazione Servizio
config.register_email_confirm=Richiedono Conferma dell'Email
config.disable_register=Disabilita Registrazione
config.show_registration_button=Mostra Pulsane Registrazione
config.show_registration_button=Mostra Pulsante Registrazione
config.require_sign_in_view=Richiesto Accesso per Vedere
config.mail_notify=Email di Notifica
config.disable_key_size_check=Disabilita controllo sulle dimensioni minime della chiave
config.enable_captcha=Abilita Captcha
config.active_code_lives=Attiva Vita del Codice
config.reset_password_code_lives=Reimpostare Password della Vita del Codice
config.webhook_config=Configurazione Webhook
config.queue_length=Lunghezza della coda
config.deliver_timeout=Tempo Limite di Consegna
config.skip_tls_verify=Salta verifiche TLS
config.mailer_config=Configurazione Mailer
config.mailer_enabled=Attivo
config.mailer_disable_helo=Disattiva HELO
config.mailer_name=Nome
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Host
config.mailer_user=Utente
config.send_test_mail=Invia email di test
config.test_mail_failed=Impossibile inviare mail a '%s': %v
config.test_mail_sent=Una mail di prova è stata inviata a '%s'.
config.oauth_config=Configurazione OAuth
config.oauth_enabled=Attivo
config.cache_config=Configurazione Cache
config.cache_adapter=Adattatore Cache
config.cache_interval=Intervallo Cache
config.cache_conn=Connessione Cache
config.session_config=Configurazione Sessione
config.session_provider=Fornitore Sessione
config.provider_config=Impostazioni Provider
@@ -1039,11 +1246,27 @@ config.gc_interval_time=Intervallo di tempo della GC
config.session_life_time=Durata Sessione
config.https_only=Solo HTTPS
config.cookie_life_time=Durata Cookie
config.picture_config=Configurazione Foto
config.picture_service=Servizio foto
config.disable_gravatar=Disabilita Gravatar
config.enable_federated_avatar=Attiva Federated Avatars
config.git_config=Configurazione Git
config.git_disable_diff_highlight=Disattiva evidenziazione delle differenze
config.git_max_diff_lines=Numero massimo di righe di diff (per singolo file)
config.git_max_diff_line_characters=Numero massimo di caratteri di diff (per singola riga)
config.git_max_diff_files=Numero massimo di file diff mostrati
config.git_gc_args=Parametri GC
config.git_migrate_timeout=Timeout per la migrazione
config.git_mirror_timeout=Timeoute per l'aggiornamento del mirror
config.git_clone_timeout=Timeout per il clone
config.git_pull_timeout=Timeout per il pull
config.git_gc_timeout=Timeout per le operazioni di GC
config.log_config=Configurazione Log
config.log_mode=Modalità Log
config.log_mode=Modalità
config.log_options=Opzioni
monitor.cron=Incarici di cron
monitor.name=Nome
@@ -1074,17 +1297,24 @@ notices.delete_success=Gli avvisi di sistema sono stati successivamente eliminat
create_repo=ha creato il repository <a href="%s">%s</a>
rename_repo=repository rinominato da <code>%[1]s</code> a <a href="%[2]s">[3]s</a>
commit_repo=ha pushato nel <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
compare_commits=Visualizza comparazione tra questi %d commit
transfer_repo=ha trasferito il repository <code>%s</code> a <a href="%s">%s</a>
create_issue=`ha aperto il problema <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`closed issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`reopened issue <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`ha commentato il problema <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`creata pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`closed pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`reopened pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`ha commentato il problema <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`merged pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=ha trasferito il repository <code>%s</code> a <a href="%s">%s</a>
create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=ha pushato il tag <a href="%s/src/%s">%[2]s</a> a <a href="%[1]s">%[3]s</a>
compare_commits=Visualizza comparazione tra questi %d commit
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=fa

File diff suppressed because it is too large Load Diff

1346
conf/locale/locale_ko-KR.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@ explore=Izpētīt
help=Palīdzība
sign_in=Pierakstīties
sign_out=Izrakstīties
sign_up=Pieteikties
sign_up=Reģistrēties
register=Reģistrēties
website=Mājas lapa
version=Versija
@@ -48,7 +48,7 @@ cancel=Atcelt
install=Instalācija
title=Instalācijas soļi pirmo reizi palaižot
docker_helper=Ja Gogs tiek lietots zem Docker, izlasiet uzmanīgi <a target="_blank" href="%s">vadlīnijas</a>, pirms ko maināt šajā lapā!
requite_db_desc=Gogs nepieciešams MySQL, PostgreSQL, SQLite3 vai TiDB.
requite_db_desc=Gogs ir nepieciešams MySQL, PostgreSQL, SQLite3, MSSQL vai TiDB.
db_title=Datu bāzes iestatījumi
db_type=Datu bāzes veids
host=Resursdators
@@ -58,9 +58,8 @@ db_name=Datu bāzes nosaukums
db_helper=Nepieciešams izmantot MySQL INNODB dzini ar rakstzīmju kopu utf8_general_ci.
ssl_mode=SSL režīms
path=Ceļš
sqlite_helper=SQLite3 vai TiDB datu bāzēs faila ceļš.<br>Izmantojiet absolūto ceļu, startējot kā servisu.
err_empty_db_path=Nepieciešams norādīt SQLite3 vai TiDB datu bāzes atrašanās vietu.
err_invalid_tidb_name=TiDB datu bāzes nosaukums nevar saturēt simbolus "." un "-".
sqlite_helper=Faila ceļs uz SQLite3 datu bāzi. <br>Norādiet absolūtu ceļu, kad laižat kā servisu.
err_empty_db_path=SQLite3 datu bāzes ceļš nevar būt tukšs.
no_admin_and_disable_registration=Reģistrāciju nevar atslēgt, kamēr nav izveidots administratora konts.
err_empty_admin_password=Administratora kontam ir obligāti jānorāda parole.
@@ -75,12 +74,16 @@ domain=Domēns
domain_helper=Tas ietekmē SSH klonēšanas URL.
ssh_port=SSH ports
ssh_port_helper=Porta numurs, kuru izmanto Jūsu SSH serveris, atstājiet tukšu, ja nevēlaties izmantot SSH.
use_builtin_ssh_server=Izmantot iebūvēto SSH serveri
use_builtin_ssh_server_popup=Startēt iebūvēto SSH serveri Git darbībām, lai atšķirtu no sistēmas SSH servisa.
http_port=HTTP ports
http_port_helper=Porta numurs pēc kura lietojumprogrammai būs iespējams pieslēgties.
app_url=Lietotnes URL
app_url_helper=Tas ietekmē HTTP/HTTPS klonēšanas URL un e-pasta saturā izsūtītās saites.
log_root_path=Žurnalizēšanas direktorija
log_root_path_helper=Direktorija, kurā tiks glabāti žurnāla faili.
enable_console_mode=Iespējot konsoles režīmu
enable_console_mode_popup=Papildus faila režīmam, papildus rakstīt žurnāla ierakstus konsolē.
optional_title=Neobligātie iestatījumi
email_title=E-pasta pakalpojuma iestatījumi
@@ -96,6 +99,8 @@ offline_mode=Iespējot bezsaistes režīmu
offline_mode_popup=Atspējot CDN arī produkcijas režīmā, visi resursu faili tiks piegādāti no servera.
disable_gravatar=Atspējot Gravatar pakalpojumu
disable_gravatar_popup=Atspējot Gravatar un citus avotus, visus avatarus augšupielādēts lietotāji vai izmantos noklusēto attēlu.
federated_avatar_lookup=Iespējot apvienoto profila bilžu meklētāju
federated_avatar_lookup_popup=Iespējot apvienoto profila bilžu meklētāju, lai izmantotu atvērtā koda apvienoto servisu balstītu uz libravatar.
disable_registration=Atspējot lietotāju reģistrāciju
disable_registration_popup=Atspējot lietotāju reģistrāciju, tikai administrators varēs izveidot jaunus lietotāju kontus.
enable_captcha=Iespējot drošības kodu
@@ -114,6 +119,8 @@ sqlite3_not_available=Jūsu versija neatbalsta SQLite3, lūdzu lejupielādējiet
invalid_db_setting=Datu bāzes iestatījums nav pareizs: %v
invalid_repo_path=Repozitorija atrašanās vieta ir nekorekta: %v
run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
invalid_smtp_from=SMTP sūtītāja lauks ir nekorekts: %v
save_config_failed=Neizdevās saglabāt konfigurāciju: %v
invalid_admin_setting=Nekorekts admin konta iestatījums: %v
install_success=Laipni lūdzam! Mēs priecājamies, ka Jūs izvēlaties Gogs, patīkamu lietošanu!
@@ -135,6 +142,7 @@ issues.in_your_repos=Jūsu repozitorijos
[explore]
repos=Repozitoriji
users=Lietotāji
organizations=Organizācijas
search=Meklēt
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=Jau ir konts? Pieraksties tagad!
social_register_hepler_msg=Jau ir konts? Sasaisti tagad!
disable_register_prompt=Atvainojiet, reģistrācija ir atspējota. Lūdzu, sazinieties ar vietnes administratoru.
disable_register_mail=Atvainojiet, reģistrācijas e-pasta apstiprināšana ir atspējota.
auth_source=Authentication Source
local=Local
remember_me=Atcerēties mani
forgot_password=Aizmirsu paroli
forget_password=Aizmirsi paroli?
@@ -154,7 +164,6 @@ prohibit_login_desc=Ar Jūsu kontu nav atļauts pieteikties, sazinoties ar lapas
resent_limit_prompt=Atvainojiet, Jūs sūtījāt aktivizācijas e-pastu pārāk bieži. Lūdzu, gaidiet 3 minūtes.
has_unconfirmed_mail=Sveiki %s, Jums ir neapstiprināta e-pasta adrese (<b>%s</b>). Ja neesat saņēmis apstiprināšanas e-pastu vai Jums ir nepieciešams nosūtīt jaunu, lūdzu, nospiediet pogu, kas atrodas zemāk.
resend_mail=Nospiediet šeit, lai vēlreiz nosūtītu aktivizācijas e-pastu
email_not_associate=Šī e-pasta adrese nav saistīta ar Jūsu kontu.
send_reset_mail=Spiediet šeit, lai nosūtītu paroles maiņas vēstuli uz Jūsu e-pastu
reset_password=Atjaunot savu paroli
invalid_code=Atvainojiet, Jūsu apstiprināšanas kodam ir beidzies derīguma termiņš vai arī tas ir nepareizs.
@@ -162,6 +171,14 @@ reset_password_helper=Nospiediet šeit, lai atjaunotu paroli
password_too_short=Paroles garums nedrīkst būt mazāks par 6.
non_local_account=Tikai lokālie konti var nomainīt savu paroli Gogs.
login_two_factor=Divu faktoru autentifikācija
login_two_factor_passcode=Autentifikācijas kods
login_two_factor_enter_recovery_code=Ievadiet divu faktoru atjaunošanas kodu
login_two_factor_recovery=Divu faktoru atjaunošana
login_two_factor_recovery_code=Atjaunošanas kods
login_two_factor_enter_passcode=Ievadiet divu faktoru kodu
login_two_factor_invalid_recovery_code=Atjaunošanas kods jau ir izmantots vai nav pareizs.
[mail]
activate_account=Lūdzu, aktivizējiet savu kontu
activate_email=Apstipriniet savu e-pasta adresi
@@ -187,9 +204,17 @@ TeamName=Komandas nosaukums
AuthName=Autorizācijas nosaukums
AdminEmail=Admin e-pasta adrese
NewBranchName=Jauna atzara nosaukums
CommitSummary=Revīzijas kopsavilkums
CommitMessage=Revīzijas ziņojums
CommitChoice=Revīzijas izvēle
TreeName=Faila ceļš
Content=Saturs
require_error=` nedrīkst būt tukšs.`
alpha_dash_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus vai domuzīmes (-_).`
alpha_dash_dot_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus, domuzīmes (-_) vai punktu.`
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error=` jābūt %s simbolus garam.`
min_size_error=` jabūt vismaz %s simbolu garumā.`
max_size_error=` jabūt ne mazāk kā %s simbolu garumā.`
@@ -206,6 +231,7 @@ org_name_been_taken=Organizācijas nosaukums ir jau aizņemts.
team_name_been_taken=Komandas nosaukums ir jau aizņemts.
email_been_used=E-pasta adrese jau tiek izmantota.
username_password_incorrect=Lietotājvārds vai parole nav pareiza.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Lūdzu, pārliecinieties, vai ievadītā repozitorija nosaukums ir pareizs.
enterred_invalid_owner_name=Lūdzu, pārliecinieties, vai ievadītā īpašnieka vārds ir pareizs.
enterred_invalid_password=Lūdzu pārliecinieties, vai Jūsu ievadītā parole ir pareiza.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Lietotāja vārds '%s' nav atļauts.
[settings]
profile=Profils
password=Parole
avatar=Profila attēls
ssh_keys=SSH atslēgas
social=Sociālie konti
applications=Lietotnes
security=Drošība
repos=Repozitoriji
orgs=Organizācijas
applications=Lietotnes
delete=Dzēst kontu
uid=Lietotāja ID
public_profile=Publiskais profils
profile_desc=Jūsu e-pasta adrese ir publiska un tiks izmantota, lai nosūtītju Jums paziņojumus, kas saistīti ar Jūsu kontu vai darbībām veiktām caur šo mājas lapu.
@@ -259,6 +286,8 @@ change_username_prompt=Šī izmaiņa ietekmēs saites, kas norāda uz Jūsu kont
continue=Turpināt
cancel=Atcelt
lookup_avatar_by_mail=Meklēt profila bildes pēc e-pasta
federated_avatar_lookup=Apvienotais profila bilžu meklētājs
enable_custom_avatar=Iespējot maināmu profila attēlu
choose_new_avatar=Izvēlēties jaunu profila attēlu
update_avatar=Saglabāt profila bildi
@@ -308,10 +337,31 @@ no_activity=Nav nesenas aktivitātes
key_state_desc=Šī atslēga tika izmantota pēdējo 7 dienu laikā
token_state_desc=Šis talons tika izmantots pēdējo 7 dienu laikā
manage_social=Pārvaldīt piesaistītos sociālos kontus
social_desc=Šeit tiek attēloti visi sociālie konti, kas ir piesaistīti Jūsu kontam. Dzēsiet visus, kurus Jūs neatpazīstat.
unbind=Atsaistīt
unbind_success=Sociālais konts tika atsaistīts.
two_factor=Divu faktoru autentifikācija
two_factor_status=Statuss:
two_factor_on=Ieslēgts
two_factor_off=Izslēgts
two_factor_enable=Iespējot
two_factor_disable=Atspējot
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=HTTP/HTTPS darbībām vairs nav iespējams izmantot tikai lietotāja vārdu un paroli. Izveidojiet un izmantojiet <a href="%[1]s%[2]s">Personīgo piekļuves talonu</a> kā pilnvaru, piemēram, <code>%[3]s</code>.
two_factor_enable_title=Iespējot divu faktoru autentifikāciju
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Vai ievadiet noslēpumu:
two_factor_then_enter_passcode=Pēc tam ievadiet kodu:
two_factor_verify=Pārbaudīt
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Atspējot divu faktoru autentifikāciju
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Pārvaldīt personīgos piekļuves talonus
generate_new_token=Ģenerēt jaunu talonu
@@ -325,6 +375,15 @@ access_token_deletion=Personīgā piekļuves talona dzēšana
access_token_deletion_desc=Dzēšot personīgo piekļuves talonu, tiks liegta piekļuve aplikācijām, kas to izmanto. Vai vēlaties turpināt?
delete_token_success=Personīgās piekļuves talons veiksmīgi izdzēsts! Neaizmirstiet nomainīt uz citu aplikācijās, kas to izmantoja.
orgs.none=You are not a member of any organizations.
orgs.leave_title=Pamest organizāciju
orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
repos.leave=Pamest
repos.leave_title=Pamest repozitoriju
repos.leave_desc=Tiks zaudēta piekļuve repozitorijam, kad būsiet to pametis. Vai patiešām vēlaties turpināt?
repos.leave_success=Repozitorijs '%s' veiksmīgi pamests!
delete_account=Dzēst savu kontu
delete_prompt=Šī darbība pilnībā izdzēsīs Jūsu kontu, kā arī tā ir <strong>NEATGRIEZENISKA</strong>!
confirm_delete_account=Apstiprināt dzēšanu
@@ -345,22 +404,25 @@ fork_from=Atdalīt no
fork_visiblity_helper=Atdalītam repozitorijam nav iespējams nomainīt tā redzamību
repo_desc=Apraksts
repo_lang=Valoda
repo_lang_helper=Izvēlieties .gitignore failus
repo_gitignore_helper=Izvēlieties .gitignore sagatavi
license=Licence
license_helper=Izvēlieties licences failu
readme=LasiMani
readme_helper=Izvēlieties faila LasiMani sagatavi
auto_init=Inicializēt šo repozitoriju ar izvēlētajiem failiem un sagatavi
create_repo=Izveidot repozitoriju
default_branch=Noklusējuma atzars
default_branch=Noklusētais atzars
mirror_prune=Izmest
mirror_prune_desc=Izdzēst visas ārējās atsauces, kas ārējā repozitorijā vairs neeksistē
mirror_interval=Spoguļošanas intervāls (stundās)
mirror_address=Spoguļa adrese
mirror_address_desc=Lūdzu iekļaujiet adresē nepieciešamo lietotājvārdu/paroli.
mirror_last_synced=Pēdējo reizi sinhronizēts
watchers=Novērotāji
stargazers=Zvaigžņdevēji
forks=Atdalītie repozitoriji
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=Īpašnieks sasniedza maksimālu pieļaujamo (%d) izveidoto repozitoriju skaitu.
form.name_reserved=Repozitorija nosaukums '%s' ir rezervēts.
@@ -371,14 +433,14 @@ migrate_type=Migrācijas veids
migrate_type_helper=Šis repozitorijs būs <span class="text blue">spogulis</span>
migrate_repo=Migrēt repozitoriju
migrate.clone_address=Klonēšanas adrese
migrate.clone_address_desc=Tas var būt HTTP/HTTPS/GIT URL vai ceļš uz lokālā servera.
migrate.clone_address_desc=Tas var būt HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=Jums nav tiesību importēt lokālu repozitoriju.
migrate.invalid_local_path=Nekorents lokālais ceļš, tas neeksistē vai nav direktorijs.
migrate.failed=Migrācija neizdevās: %v
mirror_from=spogulis no
forked_from=atdalīts no
fork_from_self=Nav iespējams atdalīt repozitoriju, kuram esat īpašnieks!
copy_link=Kopēt
copy_link_success=Nokopēts!
copy_link_error=Nospiediet ⌘-C vai Ctrl-C, lai nokopētu
@@ -394,9 +456,9 @@ quick_guide=Īsa pamācība
clone_this_repo=Klonēt šo repozitoriju
create_new_repo_command=Izveidot jaunu repozitoriju komandrindā
push_exist_repo=Nosūtīt izmaiņas no komandrindas eksistējošam repozitorijam
repo_is_empty=Šis repozitorijs ir tukšs, apskatiet atkal vēlāk!
bare_message=This repository does not have any content yet.
code=Kods
files=Faili
branch=Atzars
tree=Koks
filter_branch_and_tag=Filtrēt atzarus vai tagus
@@ -407,13 +469,63 @@ pulls=Izmaiņu pieprasījumi
labels=Etiķetes
milestones=Atskaites punkti
commits=Revīzijas
git_branches=Atzari
releases=Laidieni
file_raw=Neapstrādāts
file_history=Vēsture
file_view_raw=Rādīt neapstrādātu
file_permalink=Patstāvīgā saite
file_too_large=Šis fails ir par lielu, lai to parādītu
video_not_supported_in_browser=Your browser doesn't support HTML5 video tag.
branches.overview=Pārskats
branches.active_branches=Aktīvie atzari
branches.stale_branches=Pamests atzars
branches.all=Visi atzari
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Mainīt noklusēto atzaru
editor.new_file=Jauns fails
editor.upload_file=Augšupielādēt failu
editor.edit_file=Labot failu
editor.preview_changes=Priekšskatīt izmaiņas
editor.cannot_edit_non_text_files=Nevar rediģēt failus, kas nav teksta faili
editor.edit_this_file=Rediģēt šo failu
editor.must_be_on_a_branch=Ir jābūt izvēlētam atzaram, lai varētu veikt vai piedāvāt izmaiņas šim failam
editor.fork_before_edit=Lai varētu labot failu ir nepieciešams atdalīt repozitoriju
editor.delete_this_file=Dzēst šo failu
editor.must_have_write_access=Jums ir jābūt rakstīšanas tiesībām, lai varētu veikt vai piedāvāt izmaiņas šim failam
editor.file_delete_success=Fails '%s' ir veiksmīgi izdzēsts!
editor.name_your_file=Ievadiet faila nosaukumu...
editor.filename_help=Lai pievienotu direktoriju, ierakstiet tās nosaukumu un nospiediet /. Lai noņemtu direktoriju, ielieciet kursoru pirms faila nosaukuma un nospiediet atpakaļatkāpes taustiņu.
editor.or=vai
editor.cancel_lower=atcelt
editor.commit_changes=Pabeigt revīziju
editor.add_tmpl=Pievienot '%s/<filename>'
editor.add=Pievienot '%s'
editor.update=Atjaunināt '%s'
editor.delete=Dzēst '%s'
editor.commit_message_desc=Pievienot neobligātu paplašinātu aprakstu...
editor.commit_directly_to_this_branch=Apstiprināt revīzijas izmaiņas atzarā <strong class="branch-name">%s</strong>.
editor.create_new_branch=Izveidot <strong>jaunu atzaru</strong> un izmaiņu pieprasījumu šai revīzijai.
editor.new_branch_name_desc=Jaunā atzara nosaukums...
editor.cancel=Atcelt
editor.filename_cannot_be_empty=Nav ievadīts faila nosaukums.
editor.branch_already_exists=Atzars '%s' šajā repozitorijā jau eksistē.
editor.directory_is_a_file=Ieraksts '%s' vecāka ceļā ir fails nevis direktorija šajā repozitorijā.
editor.file_is_a_symlink=Fails '%s" ir norāde, kuru nav iespējams labot no tīmekļa redaktora.
editor.filename_is_a_directory=Faila nosaukums '%s' sakrīt ar direktorijas nosaukumu šajā repozitorijā.
editor.file_editing_no_longer_exists=Fails '%s', ko labojat, vairs neeksistē repozitorijā.
editor.file_changed_while_editing=Faila saturs ir mainījies kopš brīža, kad sākāt to labot. <a target="_blank" href="%s">Nospiediet šeit</a>, lai redzētu kas ir mainījies vai <strong>nospiediet atkārtoti pabeigt revīziju</strong>, lai pārrakstītu izmaiņas.
editor.file_already_exists=Fails ar nosaukumu '%s' repozitorijā jau eksistē.
editor.no_changes_to_show=Nav izmaiņu, ko rādīt.
editor.fail_to_update_file=Neizdevās izmainīt/izveidot failu '%s', kļūda: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Pievienot apakšdirektoriju...
editor.unable_to_upload_files=Neizdevās augšupielādēt failus uz direktoriju '%s', kļūda: %v
editor.upload_files_to_dir=Augšupielādēt failus uz direktoriju '%s'
commits.commit_history=Revīziju vēsture
commits.commits=Revīzijas
commits.search=Meklēt revīzijas
commits.find=Meklēt
@@ -439,6 +551,11 @@ issues.create=Pieteikt problēmu
issues.new_label=Jauna etiķete
issues.new_label_placeholder=Etiķetes nosaukums...
issues.create_label=Izveidot etiķeti
issues.label_templates.title=Ielādēt sākotnēji noteikto etiķešu kopu
issues.label_templates.info=Nav definēta neviena etiķete. Nospiediet pogu "Izveidot etiķeti", lai to izveidotu vai izmantojiet zemāk piedāvātās etiķetes.
issues.label_templates.helper=Izvēlieties etiķešu kopu
issues.label_templates.use=Izmantot šo etiķešu kopu
issues.label_templates.fail_to_load_file=Neizdevās ielādēt etiķetes sagataves failu '%s': %v
issues.open_tab=%d atvērti
issues.close_tab=%d aizvērti
issues.filter_label=Etiķete
@@ -480,8 +597,7 @@ issues.commit_ref_at=`pieminēja šo problēmu revīzijā <a id="%[1]s" href="#%
issues.poster=Autors
issues.collaborator=Līdzstrādnieks
issues.owner=Īpašnieks
issues.sign_up_for_free=Pievienojieties
issues.sign_in_require_desc=, lai piedalītos diskusijā. Jau ir konts? <a href="%s">Pierakstieties, lai komentētu</a>
issues.sign_in_require_desc=<a href="%s">Pierakstieties</a>, lai pievienotos šai sarunai.
issues.edit=Labot
issues.cancel=Atcelt
issues.save=Saglabāt
@@ -496,6 +612,8 @@ issues.label_deletion=Etiķetes dzēšana
issues.label_deletion_desc=Dzēšot šo etiķeti, tā tiks noņemta no visām saistītajām problēmām. Vai vēlaties turpināt?
issues.label_deletion_success=Etiķete tika veiksmīgi izdzēsta!
issues.num_participants=%d dalībnieki
issues.attachment.open_tab=`Noklikšķiniet, lai apskatītos "%s" jaunā logā`
issues.attachment.download=`Noklikšķiniet, lai lejupielādētu "%s"`
pulls.new=Jauns izmaiņu pieprasījums
pulls.compare_changes=Salīdzināt izmaiņas
@@ -505,6 +623,7 @@ pulls.compare_compare=salīdzināmais
pulls.filter_branch=Filtrēt atzarus
pulls.no_results=Nekas netika atrasts.
pulls.nothing_to_compare=Nav ko salīdzināt, jo bāzes un salīdzināmie atzari ir vienādi.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`Jau eksistē izmaiņu pieprasījums starp šiem diviem atzariem: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Izveidot izmaiņu pieprasījumu
pulls.title_desc=vēlas sapludināt %[1]d revīzijas no <code>%[2]s</code> uz <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=Notiek konfliktu pārbaude, mirkli uzgaidiet un atjaunojiet la
pulls.can_auto_merge_desc=Šo izmaiņu pieprasījumu var automātiski saplūdināt.
pulls.cannot_auto_merge_desc=Šis izmaiņu pieprasījums nevar tikt automātiski saplūdināts konfliktu dēļ.
pulls.cannot_auto_merge_helper=Lūdzu sapludiniet manuāli, lai atrisinātu konfliktus.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Izmaiņu pieprasījuma sapludināšana
pulls.open_unmerged_pull_exists=`Jūs nevarat veikt atkārtotas atvēršanas darbību, jo jau eksistē izmaiņu pieprasījums (#%d) no šī repozitorija ar tādu pašu sapludināšanas informāciju un gaida sapludināšanu.`
pulls.delete_branch=Dzēst atzaru
pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Jauns atskaites punkts
milestones.open_tab=%d atvērti
@@ -572,26 +696,61 @@ settings.collaboration.admin=Administrators
settings.collaboration.write=Rakstīšanas
settings.collaboration.read=Skatīšanās
settings.collaboration.undefined=Nedefinētas
settings.branches=Atzari
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Noklusētais atzars
settings.default_branch_desc=Noklusētais atzars tiek uzskatīts par pamata atzaru koda revīzijām, izmaiņu pieprasījumiem un tiešsaistes rediģēšanai.
settings.update=Atjaunot
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Aizsargātie atzari
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Izvēlēties atzarus...
settings.branch_protection=Atzaru aizsargāšana
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Aizsargāt šo atzaru
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Lietotāji, kas var nosūtīt izmaiņas uz šo atzaru
settings.protect_whitelist_search_users=Meklēt lietotajus
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Meklēt komandas
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Tīmekļa āķi
settings.githooks=Git āķi
settings.basic_settings=Pamatiestatījumi
settings.mirror_settings=Spoguļa iestatījumi
settings.sync_mirror=Sinhronizēt tagad
settings.mirror_sync_in_progress=Notiek spoguļa sinhronizācija, uzgaidiet aptuveni minūti un atjaunojiet lapu.
settings.site=Oficiālā mājas lapa
settings.update_settings=Mainīt iestatījumus
settings.change_reponame_prompt=Šī izmaiņa ietekmēs saites, kas ir saistītas ar šo repozitoriju.
settings.advanced_settings=Papildu iestatījumi
settings.wiki_desc=Iespējot vikivietni, lai atļautu cilvēkiem rakstīt dokumentus
settings.wiki_desc=Iespējot vikivietnes
settings.use_internal_wiki=Izmantot iebūvēto vikivietni
settings.allow_public_wiki_desc=Atļaut publisko piekļuvi vikivietnei, ja repozitorijs ir privāts
settings.use_external_wiki=Izmantot ārējo vikivietni
settings.external_wiki_url=Ārējās Vikivietnes adrese
settings.external_wiki_url_desc=Apmeklētāji tiks novirzīti uz adresi, kad viņi uzklikšķinās uz cilnes.
settings.issues_desc=Iespējot iebūvētu vieglu problēmu sekotāju
settings.issues_desc=Iespējot problēmu sekotāju
settings.use_internal_issue_tracker=Izmantot iebūvētu vieglu problēmu sekotāju
settings.allow_public_issues_desc=Atļaut publisko piekļuvi problēmām, ja repozitorijs ir privāts
settings.use_external_issue_tracker=Izmantot ārējo problēmu sekotāju
settings.external_tracker_url=Ārējā problēmu sekotāja URL
settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format=Ārējā problēmu sekotāja adreses formāts
settings.tracker_issue_style=Ārējā problēmu reģistra nosaukumu stils:
settings.tracker_issue_style.numeric=Cipari
settings.tracker_issue_style.alphanumeric=Burti un cipari
settings.tracker_url_format_desc=Jūs varat izmantot <code>{user}{repo}{index}</code> lietotājvārdam, repozitorija nosaukumam un problēmas identifikātoram.
settings.pulls_desc=Iespējot izmaiņu pieprasījumus lai saņemtu publiskus ieguldījumus
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Bīstamā zona
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Jaunajam īpašniekam jau ir repozitorijs ar šādu nosaukumu.
settings.convert=Konvertēt uz parastu repozitoriju
settings.convert_desc=Šo spoguli ir iespējams konvertēt par parastu repozitoriju. Šī ir neatgriezeniska darbība.
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=Repozitorija Vikivietnes dati tika veiksmīgi izd
settings.delete=Dzēst šo repozitoriju
settings.delete_desc=Dzēšot repozitoriju, tā datus vairs nebūs iespējams atgūt. Pirms dzēšanas pārliecinieites vai patiešām vēlaties to darīt.
settings.delete_notices_1=- Šī darbība ir <strong>NEATGRIEZENISKA</strong>.
settings.delete_notices_2=- Šī darbība neatgriezeniski izdzēsīs visus šī repozitorija datus, tai skaitā Git datus, problēmu ziņojumus, komentārus un definētās piekļuves tiesības.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Visi atdalītie repozitoriji kļūs neatkarīgi pēc dzēšanas.
settings.deletion_success=Repozitorijs tika veiksmīgi dzēsts!
settings.update_settings_success=Repozitorija opcijas ir veiksmīgi saglabātas.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Šim lietotājam pēc dzēšanas vairs nebū
settings.remove_collaborator_success=Līdzstrādnieks tika noņemts.
settings.search_user_placeholder=Meklēt lietotāju...
settings.org_not_allowed_to_be_collaborator=Organizāciju nav atļauts pievienot kā līdzstrādnieku.
settings.user_is_org_member=Lietotājs ir organizācijas biedrs, kas nevar tikt pievienots kā līdzstrādnieks.
settings.add_webhook=Pievienot tīmekļa āķi
settings.hooks_desc=Tīmekļa āķi ļauj paziņot ārējiem servisiem par noteiktiem notikomiem, kas notiek Git servisā. Kad iestāsies kāds notikums, katram ārējā servisa URL tiks nosūtīts POST pieprasījums. Lai uzzinātu sīkāk skatieties <a target="_blank" href="%s">Tīmekļa āķu rokasgrāmatā</a>.
settings.webhook_deletion=Dzēst tīmekļa āķi
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Tīmekļa āķis tika veiksmīgi izdzēsts!
settings.webhook.test_delivery=Testa piegāde
settings.webhook.test_delivery_desc=Veikt viltus push-notikuma piegādi lai notestētu Jūsu tīmekļa āķa iestatījumus
settings.webhook.test_delivery_success=Testa web-āķis ir pievienots piegādes rindai. Var paiet dažas sekundes, kamēr tas parādīsies piegāžu vēsturē.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Pieprasījums
settings.webhook.response=Atbilde
settings.webhook.headers=Galvenes
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Uz norādīto URL tiks nosūtīts <code>POST</code> pi
settings.payload_url=Vērtuma URL
settings.content_type=Satura tips
settings.secret=Noslēpums
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username=Lietotājvārds
settings.slack_icon_url=Ikonas URL
settings.slack_color=Krāsa
@@ -658,8 +819,20 @@ settings.event_send_everything=Vēlos saņemt <strong>visu</strong>.
settings.event_choose=Atzīmēt, ko vēlos saņemt.
settings.event_create=Izveidot
settings.event_create_desc=Atzara vai taga izveidošana
settings.event_delete=Dzēst
settings.event_delete_desc=Atzars vai tags izdzēsts
settings.event_fork=Atdalīts
settings.event_fork_desc=Repozitorijs atdalīts
settings.event_push=Izmaiņu nosūtīšana
settings.event_push_desc=Git izmaiņu nosūtīšana uz repozitoriju
settings.event_issues=Problēmas
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request=Izmaiņu pieprasījums
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Problēmas komentārs
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Laidiens
settings.event_release_desc=Laidiens publicēts repozitorijā.
settings.active=Aktīvs
settings.active_helper=Tiks nosūtīti notikuma dati, kad nostrādās šis āķis.
settings.add_hook_success=Jauns tīmekļa āķis tika veiksmīgi pievienots.
@@ -669,10 +842,13 @@ settings.delete_webhook=Dzēst tīmekļa āķi
settings.recent_deliveries=Pēdējās piegādes
settings.hook_type=Āķa veids
settings.add_slack_hook_desc=PIevienot <a href="%s">Slack</a> integrāciju Jūsu repozitorijā.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Talons
settings.slack_domain=Domēns
settings.slack_channel=Kanāls
settings.deploy_keys=Izvietot atslēgas
settings.deploy_keys_helper=<b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key=Pievienot izvietošanas atslēgu
settings.deploy_key_desc=Izvietošanas atslēgai ir tikai lasīšanas piekļuve. Tā nav tā pati kā Jūsu personīgā konta SSH atslēga.
settings.no_deploy_keys=Nav pievienota neviena izvietošanas atslēga.
@@ -684,6 +860,8 @@ settings.add_key_success=Izvietošanas atslēga '%s' tik veiksmīgi pievienota!
settings.deploy_key_deletion=Dzēst izvietošanas atslēgu
settings.deploy_key_deletion_desc=Dzēšot šo izvietošanas atslēgu tiks noņemta arī ar to saistītā piekļuve šim repozitorijam. Vai vēlaties turpināt?
settings.deploy_key_deletion_success=Izvietošanas atslēga tika veiksmīgi izdzēsta!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Pārlūkot izejas kodu
diff.parent=vecāks
@@ -702,7 +880,6 @@ release.releases=Laidieni
release.new_release=Jauns laidiens
release.draft=Melnraksts
release.prerelease=Pirmsizlaides versija
release.stable=Stabila
release.edit=labot
release.ahead=<strong>%d</strong> revīzijas atzarā %s kopš šī laidiena
release.source_code=Izejas kods
@@ -751,6 +928,7 @@ team_permission_desc=Kādām tiesībām šai komandai būtu jābūt?
form.name_reserved=Organizācijas nosaukums '%s' ir rezervēts.
form.name_pattern_not_allowed=Organizācijas nosaukums '%s' nav atļauts.
form.team_name_reserved=Komandas vārds '%s' ir rezervēts.
settings=Iestatījumi
settings.options=Opcijas
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Veikt repozitoriju datu sakārtošānu (git gc)
dashboard.git_gc_repos_success=Datu sakārtošana visiem repozitorijiem veiksmīgi pabeigta.
dashboard.resync_all_sshkeys=Pārrakstīt '.ssh/authorized_keys' failu (brīdinājums: ne-Git atslēgas tiks pazaudētas)
dashboard.resync_all_sshkeys_success=Visas publiskās atslēgas tika veiksmīgi pārrakstītas.
dashboard.resync_all_update_hooks=Pārrakstīt visu repozitoriju izmaiņu āķus (nepieciešams, ja tiek mainīta konfigurācijas faila atrašanās vieta)
dashboard.resync_all_update_hooks_success=Visu repozitoriju izmaiņu āķi tika veiksmīgi pārrakstīti.
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Atkārtoti inicializēt visus repozitorija ierakstus, kam trūkst Git failu
dashboard.reinit_missing_repos_success=Visi repozitorija ieraksti, kam trūkst Git faili, tika atkārtoti inicializēti.
@@ -917,12 +1095,14 @@ repos.private=Privāts
repos.watches=Vērošana
repos.stars=Atzīmētās zvaigznītes
repos.issues=Problēmas
repos.size=Izmērs
auths.auth_manage_panel=Autentifikācijas pārvaldības panelis
auths.auth_sources=Authentication Sources
auths.new=Pievienot jaunu avotu
auths.name=Nosaukums
auths.type=Veids
auths.enabled=Iespējota
auths.default=Default
auths.updated=Atjaunināta
auths.auth_type=Autentifikācijas tips
auths.auth_name=Autentifikācijas nosaukums
@@ -931,15 +1111,21 @@ auths.domain=Domēns
auths.host=Resursdators
auths.port=Ports
auths.bind_dn=Saistīšanas DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Saistīšanas parole
auths.bind_password_helper=Brīdinājums: Šī parole tiks saglabāta nešifrētā veidā. Neizmantojiet kontu ar augstām privilēģijām.
auths.user_base=Lietotāja pamatnosacījumi
auths.user_dn=Lietotāja DN
auths.attribute_username=Lietotājvārda atribūts
auths.attribute_username_placeholder=Atstājiet tukšu, lai izmantotu lietotājvārdu ar kuru autorizējaties.
auths.attribute_name=Vārda atribūts
auths.attribute_name=First Name Attribute
auths.attribute_surname=Uzvārda atribūts
auths.attribute_mail=E-pasta atribūts
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Nolasīt atribūtus no saistīšanas DN konteksta
auths.filter=Lietotāju filts
auths.admin_filter=Administratoru filtrs
@@ -953,9 +1139,9 @@ auths.enable_tls=Iespējot TLS šifrēšanu
auths.skip_tls_verify=Izlaist TLS verifikāciju
auths.pam_service_name=PAM servisa nosaukums
auths.enable_auto_register=Iespējot automātisko reģistrāciju
auths.tips=Padomi
auths.edit=Labot autentifikācijas iestatījumus
auths.activated=Autentifikācija ir aktivizēta
auths.default_auth=This authentication is default login source
auths.new_success=Jauna autentifikācija '%s' tika veiksmīgi pievienota.
auths.update_success=Autentifikācijas iestatījumi tika veiksmīgi saglabāti.
auths.update=Mainīt autentifikācijas iestatījumus
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Autentifikācijas dzēšana
auths.delete_auth_desc=Šī autentifikācija tiks dzēsta, vai vēlaties turpināt?
auths.still_in_used=Daži lietotāji joprojām izmanto šo autentifikācijas veidu. Nepieciešams veikt šo lietotāju konvertāciju vai dzēšanu.
auths.deletion_success=Autentifikācija tika veiksmīgi izdzēsta!
auths.login_source_exist=Pieteikšanās avots '%s' jau eksistē.
config.not_set=(not set)
config.server_config=Servera konfigurācija
config.app_name=Lietotnes nosaukums
config.app_ver=Lietotnes versija
@@ -974,10 +1162,9 @@ config.offline_mode=Bezsaistes režīms
config.disable_router_log=Atspējot maršrutētāja žurnalizēšanu
config.run_user=Izpildes lietotājs
config.run_mode=Izpildes režīms
config.repo_root_path=Repozitoriju glabāšanas vieta
config.git_version=Git versija
config.static_file_root_path=Statisko failu atrašanās vieta
config.log_file_root_path=Žurnalizēšanas failu glabāšanas vieta
config.script_type=Skripta veids
config.reverse_auth_user=Reversā lietotāja autentifikācija
config.ssh_config=SSH konfigurācija
@@ -987,11 +1174,25 @@ config.ssh_domain=Domēns
config.ssh_port=Ports
config.ssh_listen_port=Klausīšanās ports
config.ssh_root_path=Saknes ceļš
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Atslēgu pārbaudes ceļš
config.ssh_keygen_path=Keygen ('ssh-keygen') ceļš
config.ssh_minimum_key_size_check=Minimālā atslēgas lieluma pārbaude
config.ssh_minimum_key_sizes=Minimālais atslēgas lielums
config.repo_config=Repozitorija konfigurācija
config.repo_root_path=Repozitoriju glabāšanas vieta
config.script_type=Skripta veids
config.repo_force_private=Piespiedu privāti repozitoriji
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Atspējot HTTP Git
config.enable_local_path_migration=Atļaut migrāciju no lokāla ceļa
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Datu bāzes konfigurācija
config.db_type=Veids
config.db_host=Resursdators
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL režīms
config.db_ssl_mode_helper=(tikai PostgreSQL datu bāzei)
config.db_path=Ceļš
config.db_path_helper=(priekš "sqlite3" and "tidb")
config.service_config=Pakalpojuma konfigurācija
config.register_email_confirm=Pieprasīt e-pasta apstiprināšanu
config.disable_register=Atspējot jaunu lietotāju reģistrāciju
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Atspējot atslēgas minimālā garuma pārbaudi
config.enable_captcha=Iespējot drošības kodu
config.active_code_lives=Aktīvā koda ilgums
config.reset_password_code_lives=Paroles atiestatīšanas koda ilgums
config.webhook_config=Tīkla āķu konfigurācija
config.queue_length=Rindas garums
config.deliver_timeout=Piegādes noildze
config.skip_tls_verify=Izlaist TLS pārbaudi
config.mailer_config=Sūtītāja konfigurācija
config.mailer_enabled=Iespējots
config.mailer_disable_helo=Atspējot HELO
config.mailer_name=Nosaukums
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Resursdators
config.mailer_user=Lietotājs
config.send_test_mail=Nosūtīt pārbaudes e-pastu
config.test_mail_failed=Neizdevās nosūtīt pārbaudes e-pasta vēstuli uz '%s': %v
config.test_mail_sent=Pārbaudes e-pasta vēstule tika nosūtīta uz '%s'.
config.oauth_config=OAuth konfigurācija
config.oauth_enabled=Iespējota
config.cache_config=Kešatmiņas konfigurācija
config.cache_adapter=Kešatmiņas adapteris
config.cache_interval=Kešatmiņas intervāls
config.cache_conn=Kešatmiņas pieslēguma parametri
config.session_config=Sesijas konfigurācja
config.session_provider=Sesijas nodrošinātājs
config.provider_config=Pakalpojumu sniedzēja konfigurācija
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC laika intervāls
config.session_life_time=Sesijas ilgums
config.https_only=Tikai HTTPS
config.cookie_life_time=Sīkdatņu glabāšanas ilgums
config.picture_config=Attēlu konfigurācija
config.picture_service=Lokāli attēli
config.disable_gravatar=Atspējot Gravatar
config.enable_federated_avatar=Iespējot apvienotās profila bildes
config.git_config=Git konfigurācija
config.git_disable_diff_highlight=Atspējot salīdzināšanas sintakses iekrāsošanu
config.git_max_diff_lines=Maksimālais salīdzināmo rindu skaits vienam failam
config.git_max_diff_line_characters=Maksimālais salīdzināmo simbolu skaits vienai rindai
config.git_max_diff_files=Maksimālais salīdzināmo failu skaits, ko attēlot
config.git_gc_args=GC argumenti
config.git_migrate_timeout=Migrācijas noilgums
config.git_mirror_timeout=Spoguļa atjaunošanas noilgums
config.git_clone_timeout=Klonēšanas darbības noilgums
config.git_pull_timeout=Izmaiņu saņemšanas darbības noilgums
config.git_gc_timeout=GC darbības noilgums
config.log_config=Žurnalizēšanas konfigurācija
config.log_mode=Žurnalizēšanas veids
config.log_mode=Režīms
config.log_options=Opcijas
monitor.cron=Cron uzdevumi
monitor.name=Nosaukums
@@ -1074,17 +1297,24 @@ notices.delete_success=Sistēmas paziņojumi tika veiksmīgi izdzēstas.
create_repo=izveidoja repozitoriju <a href="%s">%s</a>
rename_repo=pārsauca repozitoriju no <code>%[1]s</code> uz <a href="%[2]s">%[3]s</a>
commit_repo=veica izmaiņu nosūtīšanu atzaram <a href="%[1]s/src/%[2]s">%[3]s</a> repozitorijā <a href="%[1]s">%[4]s</a>
compare_commits=Salīdzināt šīs %d revīzijas
transfer_repo=mainīja repozitorija <code>%s</code> īpašnieku uz <a href="%s">%s</a>
create_issue=`reģistrēja problēmu <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`slēdza problēmu <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`atkārtoti atvēra problēmu <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`pievienoja komentāru problēmai <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`izveidoja izmaiņu pieprasījumu <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`aizvēra izmaiņu pieprasījumu <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`atkārtoti atvēra izmaiņu pieprasījumu <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`pievienoja komentāru problēmai <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`sapludināja izmaiņu pieprasījumu <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=mainīja repozitorija <code>%s</code> īpašnieku uz <a href="%s">%s</a>
create_branch=izveidoja jaunu atzaru <a href="%[1]s/src/%[2]s">%[3]s</a> repozitorijā <a href="%[1]s">%[4]s</a>
delete_branch=izdzēsa atzaru <code>%[2]s</code> repozitorijā <a href="%[1]s">%[3]s</a>
push_tag=pievienoja tagu <a href="%s/src/%s">%[2]s</a> repozitorijam <a href="%[1]s">%[3]s</a>
compare_commits=Salīdzināt šīs %d revīzijas
delete_tag=izdzēsa tagu <code>%[2]s</code> repozitorijā <a href="%[1]s">%[3]s</a>
fork_repo=atdalīja repozitoriju uz <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=atpakaļ

View File

@@ -13,7 +13,7 @@ version=Versie
page=Pagina
template=Sjabloon
language=Taal
create_new=Creëren...
create_new=Toevoegen...
user_profile_and_more=Gebruikersprofiel en meer
signed_in_as=Aangemeld als
@@ -40,7 +40,7 @@ your_settings=Uw instellingen
activities=Activiteiten
pull_requests=Pull requests
issues=Kwesties
issues=Issues
cancel=Annuleren
@@ -48,19 +48,18 @@ cancel=Annuleren
install=Installatie
title=Installatiestappen voor de eerste keer opstarten
docker_helper=Als u gebruik maakt Gogs binnen Docker, lees dan de <a target="_blank" href="%s">richtlijnen</a> voordat u iets veranderen op deze pagina!
requite_db_desc=Gogs vereist MySQL, PostgreSQL, SQite3 of TiDB.
requite_db_desc=Gogs vereist MySQL, PostgreSQL, SQLite3, MSSQL of TiDB.
db_title=Database-instellingen
db_type=Database-type
host=Host
user=Gebruikersnaam
password=Wachtwoord
db_name=Database naam
db_name=Databasenaam
db_helper=Gebruik InnoDB engine met utf8_general_ci karakterset voor MySQL.
ssl_mode=SSL-modus
path=Pad
sqlite_helper=Het pad van de SQLite3- of TiDB-database.<br>Als u Gogs start als een service, geef dan een absoluut pad op.
err_empty_db_path=SQLite3 of TiDB databankpad mag niet leeg.
err_invalid_tidb_name=TiDB databank naam niet tekens kunnen "." en "-".
sqlite_helper=Het pad van de SQLite3-database.<br>Als u Gogs start als een service, geef dan een absoluut pad op.
err_empty_db_path=SQLite3 database pad mag niet leeg zijn.
no_admin_and_disable_registration=Je kunt niet de registratie uit te schakelen zonder een beheerders account.
err_empty_admin_password=Beheerder wachtwoord kan niet leeg zijn.
@@ -75,12 +74,16 @@ domain=Domein
domain_helper=Dit heeft invloed op de SSH kloon URLs
ssh_port=SSH-poort
ssh_port_helper=Nummer van de poort die uw SSH-server gebruikt, laat dit leeg om de SSH functie uit te schakelen.
use_builtin_ssh_server=Gebruik de ingebouwde SSH server
use_builtin_ssh_server_popup=Start de ingebouwde SSH server zodat de Git operaties herkenbaar zijn tegenover het systeem SSH Deamon.
http_port=HTTP-poort
http_port_helper=Poortnummer waar het programma naar luistert.
app_url=Applicatie URL
app_url_helper=Dit heeft invloed op de HTTP/HTTPS kloon urls en de urls die in de email worden gebruikt
log_root_path=Log-pad
log_root_path_helper=Directory waar logbestanden opgeslagen worden.
enable_console_mode=Schakel Console modus in
enable_console_mode_popup=Naast de bestand modus print het ook de logs naar de console.
optional_title=Optionele instellingen
email_title=E-mail service instellingen
@@ -96,6 +99,8 @@ offline_mode=Off line modus inschakelen
offline_mode_popup=Schakel CDN uit in productiemodus, alle bestanden worden lokaal aangeboden.
disable_gravatar=Gravatar Service uitschakelen
disable_gravatar_popup=Schakel Gravatar en andere bronnen uit, alle avatars worden door gebruikers geüpload of zijn standaard.
federated_avatar_lookup=Federated Avatars zoekopdracht inschakelen
federated_avatar_lookup_popup=Schakel federated avatars zoekopdracht in om de op libravatar gebaseerde leveranciers te gebruiken.
disable_registration=Schakel zelfregistratie uit
disable_registration_popup=Schakel zelfregistratie uit, alleen admins kunnen accounts maken.
enable_captcha=Inschakelen Captcha
@@ -114,6 +119,8 @@ sqlite3_not_available=Uw versie biedt geen ondersteuning voor SQLite3, download
invalid_db_setting=Uw database instellingen zijn niet correct: %v
invalid_repo_path=Repositorie basis map is niet correct: %v
run_user_not_match=De uitvoerende gebruiker is niet de huidig gebruiker: %s -> %s
smtp_host_missing_port=SMTP-Host mist een poort in het adres.
invalid_smtp_from=SMTP-van-veld is niet geldig: %v
save_config_failed=Kan de configuratie niet opslaan: %v
invalid_admin_setting=Uw admin-instellingen zijn niet geldig: %v
install_success=Welkom! Wij zijn veheugd dat u voor Gogs heeft gekozen, veel plezier en tot ziens
@@ -124,7 +131,7 @@ uname_holder=Gebruikersnaam of e-mail
password_holder=Wachtwoord
switch_dashboard_context=Wissel voorpaginacontext
my_repos=Mijn repositories
show_more_repos=Show more repositories...
show_more_repos=Toon meer repositories...
collaborative_repos=Gedeelde repositories
my_orgs=Mijn organisaties
my_mirrors=Mijn mirrors
@@ -135,6 +142,7 @@ issues.in_your_repos=In uw repositories
[explore]
repos=Repositories
users=Gebruikers
organizations=Organisaties
search=Zoeken
[auth]
@@ -143,24 +151,33 @@ register_hepler_msg=Heeft u al een account? Meld u nu aan!
social_register_hepler_msg=Heeft u al een account? Koppel nu!
disable_register_prompt=Sorry, registratie is uitgeschakeld. Neem contact op met de beheerder van deze site.
disable_register_mail=Sorry, bevestiging van registratie per e-mail is uitgeschakeld.
auth_source=Authentication Source
local=Lokaal
remember_me=Onthoud mij
forgot_password=Wachtwoord vergeten
forget_password=Wachtwoord vergeten?
sign_up_now=Een account nodig? Meld u nu aan.
confirmation_mail_sent_prompt=Een bevestigingsemail is gestuurd naar <b>%s</b>, Bevestig u aanvraag binnen %d uren om uw registratie te voltooien.
active_your_account=Activeer uw account
prohibit_login=Login Prohibited
prohibit_login_desc=Your account is prohibited to login, please contact site admin.
prohibit_login=Inloggen niet toegestaan
prohibit_login_desc=U mag met dit account niet inloggen, neem contact op met de websitebeheerder.
resent_limit_prompt=Sorry, u heeft te snel na elkaar een aanvraag gedaan voor een activatie mail. Wacht drie minuten voor uw volgende aanvraag.
has_unconfirmed_mail=Beste %s, u heeft een onbevestigd e-mailadres (<b>%s</b>). Als u nog geen bevestiging heeft ontvangen, of u een nieuwe aanvraag wilt doen, klik dan op de onderstaande knop.
resend_mail=Klik hier om uw activatie mail nog een keer te verzenden
email_not_associate=Dit e-mailadres is niet gekoppeld aan een account.
send_reset_mail=Klik hier om uw wachtwoord reset mail (nogmaals) te versturen
reset_password=Reset uw wachtwoord
invalid_code=Sorry, uw bevestigingscode is verlopen of niet meer geldig.
reset_password_helper=Klik hier om uw wachtwoord opnieuw in te stellen.
password_too_short=De lengte van uw wachtwoord moet minimaal zes karakters zijn.
non_local_account=Non-local accounts cannot change passwords through Gogs.
non_local_account=Niet lokale accounts mogen hun wachtwoord niet veranderen via Gogs.
login_two_factor=Twee-traps authenticatie
login_two_factor_passcode=Authenticatie wachtwoord
login_two_factor_enter_recovery_code=Voer de two-factor herstelcode in
login_two_factor_recovery=Two-factor herstel
login_two_factor_recovery_code=Herstel code
login_two_factor_enter_passcode=Voer een two-factor wachtwoord in
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
[mail]
activate_account=Activeer uw account
@@ -187,9 +204,17 @@ TeamName=Team naam
AuthName=Autorisatienaam
AdminEmail=E-mail beheerder
NewBranchName=Nieuwe branch naam
CommitSummary=Commit samenvatting
CommitMessage=Commit bericht
CommitChoice=Keuze toepassen
TreeName=Bestandspad
Content=Inhoud
require_error=kan niet leeg zijn.
alpha_dash_error=moet een valide alfanumeriek of dash(-_) karakter zijn.
alpha_dash_dot_error=moet een valide alfanumeriek, dash(-_) of (.) punt karakter zijn.
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error=moet groter zijn dan %s
min_size_error=moet minimaal %s karakters bevatten.
max_size_error=mag maximaal %s karakters bevatten.
@@ -206,6 +231,7 @@ org_name_been_taken=Organisatie naam is al in gebruik.
team_name_been_taken=Team naam is al in gebruik.
email_been_used=e-mailadres is al in gebruik.
username_password_incorrect=Gebruikersnaam of wachtwoord is niet correct.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=U heeft een onjuiste repositorie naam ingevoerd.
enterred_invalid_owner_name=U heeft een onjuiste eigenaar ingevoerd.
enterred_invalid_password=U heeft een onjuiste wachtwoord ingevoerd.
@@ -223,7 +249,7 @@ org_still_own_repo=De organisatie heeft nog eigendomen op repositories. U moet d
target_branch_not_exist=Doel branch bestaat niet
[user]
change_avatar=Change your avatar
change_avatar=Wijzig je profielfoto
join_on=Aangemeld op
repositories=repositories
activity=Openbare activiteit
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Het gebruikersnaam patroon '%s' is niet toegestaan
[settings]
profile=Profiel
password=Wachtwoord
avatar=Profielfoto
ssh_keys=SSH-sleutels
social=Sociale netwerk-accounts
applications=Toepassingen
security=Beveiliging
repos=Repositories
orgs=Organisaties
applications=Toepassingen
delete=Verwijder account
uid=uid
public_profile=Openbaar profiel
profile_desc=Uw e-mailadres is openbaar en zal gebruikt worden voor alle account gerelateerde berichtgevingen en bewerkingingen die via de website worden gedaan.
@@ -259,6 +286,8 @@ change_username_prompt=Deze verandering zal de weg links hebben betrekking op uw
continue=Doorgaan
cancel=Annuleren
lookup_avatar_by_mail=Zoek profielfoto per email
federated_avatar_lookup=Federated Avatar Lookup
enable_custom_avatar=Aangepaste avatar inschakelen
choose_new_avatar=Kies een nieuwe avatar
update_avatar=Avatar instelling bijwerken
@@ -308,10 +337,31 @@ no_activity=Geen recente activiteiten
key_state_desc=Deze sleutel werd gebruikt in de laatste 7 dagen
token_state_desc=Deze token is de laatste 7 dagen gebruikt
manage_social=Beheer gekoppelde sociale accounts
social_desc=Dit is een lijst van de bijbehorende sociale accounts koppelingen, Verwijder eventueel koppelingen die u niet herkent.
unbind=Loskoppelen
unbind_success=Sociaal account is ontkoppeld.
two_factor=Two-factor Authentication
two_factor_status=Status:
two_factor_on=Aan
two_factor_off=Uit
two_factor_enable=Inschakelen
two_factor_disable=Uitschakelen
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=Or enter the secret:
two_factor_then_enter_passcode=Then enter passcode:
two_factor_verify=Verifiëren
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Persoonlijke toegangstokens beheren
generate_new_token=Nieuwe Token genereren
@@ -325,6 +375,15 @@ access_token_deletion=Persoonlijke toegang token verwijderen
access_token_deletion_desc=Verwijderen van deze persoonlijke toegang token zal alle verwante toegang verwijderen. Wilt u doorgaan?
delete_token_success=Persoonlijke toegangstoken is met succes verwijderd! Vergeet niet uw toepassingen ook bij te werken.
orgs.none=U bent geen lid van een organisatie.
orgs.leave_title=Een organisatie verlaten
orgs.leave_desc=U verliest toegang tot alle repositories en teams nadat u de organisatie verlaten hebt. Wilt u doorgaan?
repos.leave=Verlaat
repos.leave_title=Verlaat repository
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
delete_account=Verwijder uw account
delete_prompt=Deze handeling zal uw account definitief verwijderen, u kunt dit <strong> NIET </strong> terug draaien!
confirm_delete_account=Bevestig verwijdering
@@ -345,7 +404,7 @@ fork_from=Afsplitsing van
fork_visiblity_helper=U kunt de zichtbaarheid van een geforkte repository niet aanpassen.
repo_desc=Omschrijving
repo_lang=Taal
repo_lang_helper=Selecteer .gitignore bestanden
repo_gitignore_helper=Selecteer .gitignore sjablonen
license=Licentie
license_helper=Selecteer een licentie bestand
readme=Leesmij-bestand
@@ -353,14 +412,17 @@ readme_helper=Selecteer een sjabloon voor het Leesmij-bestand
auto_init=Initialiseer deze repositorie met de geselecteerde bestanden en sjabloon
create_repo=Nieuwe repository
default_branch=Standaard branch
mirror_prune=Prune
mirror_prune=Opschonen
mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
mirror_interval=Mirror interval(uur)
mirror_address=Kopie-adres
mirror_address_desc=Gelieve noodzakelijke gebruikersgegevens in de adresbalk.
mirror_last_synced=Laatste synchronisatie
watchers=Volgers
stargazers=Stargazers
forks=Forks
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=De eigenaar heeft maximale creatie limiet van %d repositories bereikt.
form.name_reserved=Repositorienaam '%s' is gereserveerd.
@@ -371,14 +433,14 @@ migrate_type=Migratie type
migrate_type_helper=Deze repositorie zal een <span class="text blue">mirror</span> zijn
migrate_repo=Migreer repositorie
migrate.clone_address=Clone adres
migrate.clone_address_desc=Dit kan een HTTP/HTTPS/GIT URL zijn of een lokaal pad.
migrate.clone_address_desc=Dit kan een HTTP/HTTPS/GIT URL zijn.
migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=U bent niet toegestaan om deze lokale repositories te importeren.
migrate.invalid_local_path=Ongeldig lokaal pad, het pad bestaat niet of het is geen map.
migrate.failed=Migratie is mislukt: %v
mirror_from=spiegel van
forked_from=geforked van
fork_from_self=U kunt geen repository forken die u al beheert!
copy_link=Kopieer
copy_link_success=Gekopieerd!
copy_link_error=Druk op ⌘-C of Ctrl-C om te kopiëren
@@ -394,26 +456,76 @@ quick_guide=Snelstart gids
clone_this_repo=Kloon deze repositorie
create_new_repo_command=Maak een nieuwe repositorie aan vanaf de console
push_exist_repo=Push een bestaande repositorie vanaf de console
repo_is_empty=Deze repositories is leeg is, probeer het later opnieuw!
bare_message=Deze repository bevat nog geen inhoud.
code=Code
files=Bestanden
branch=Aftakking
tree=Boom
filter_branch_and_tag=Filter branch of tag
branches=Aftakkingen
tags=Labels
issues=Kwesties
issues=Issues
pulls=Pull-aanvragen
labels=Labels
milestones=Mijlpalen
commits=Commits
git_branches=Branches
releases=Publicaties
file_raw=Ruwe
file_history=Geschiedenis
file_view_raw=Weergave ruwe
file_permalink=Permalink
file_too_large=This file is too large to be shown
file_too_large=Dit bestand is te groot om te worden getoond
video_not_supported_in_browser=Uw browser ondersteunt geen HTML5 video label.
branches.overview=Overzicht
branches.active_branches=Active Branches
branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
editor.new_file=Nieuw bestand
editor.upload_file=Bestand uploaden
editor.edit_file=Bewerk bestand
editor.preview_changes=Wijzigingen nagaan
editor.cannot_edit_non_text_files=Kan niet-tekstbestanden niet bewerken
editor.edit_this_file=Bestand aanpassen
editor.must_be_on_a_branch=Je moet in een branch zijn om aanpassingen te maken of voor te stellen
editor.fork_before_edit=Je moet deze repository eerst vorken om dit bestand aan te kunnen passen
editor.delete_this_file=Verwijder dit bestand
editor.must_have_write_access=U moet schrijftoegang hebben om aanpassingen te maken of voor te stellen in dit bestand
editor.file_delete_success=Bestand '%s' is succesvol verwijderd!
editor.name_your_file=Bestandsnaam...
editor.filename_help=Om een map toe te voegen, begin met typen en druk op /. Om een map te verwijderen, ga naar het begin van het veld en druk op backspace.
editor.or=of
editor.cancel_lower=annuleren
editor.commit_changes=Wijzigingen toepassen
editor.add_tmpl='%s/<filename>' toevoegen
editor.add='%s' toevoegen
editor.update='%s' updaten
editor.delete='%s' verwijderen
editor.commit_message_desc=Voeg een optionele beschrijving toe...
editor.commit_directly_to_this_branch=Commit directly to the <strong class="branch-name">%s</strong> branch.
editor.create_new_branch=Create a <strong>new branch</strong> for this commit and start a pull request.
editor.new_branch_name_desc=Naam nieuwe aftakking...
editor.cancel=Annuleren
editor.filename_cannot_be_empty=Bestandsnaam mag niet leeg zijn.
editor.branch_already_exists=Aftakking '%s' bestaat al in deze repository.
editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
editor.file_editing_no_longer_exists=Het bestand '%s' die u aan het bewerken bent bestaat niet meer in deze repository.
editor.file_changed_while_editing=File content has been changed since you started editing. <a target="_blank" href="%s">Click here</a> to see what have been changed or <strong>press commit again</strong> to overwrite those changes.
editor.file_already_exists=A file with name '%s' already exists in this repository.
editor.no_changes_to_show=Er zijn geen wijzigingen om weer te geven.
editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Submap toevoegen...
editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir=Bestanden uploaden naar '%s'
commits.commit_history=Commit History
commits.commits=Commits
commits.search=Zoeken
commits.find=zoek
@@ -439,6 +551,11 @@ issues.create=Maak probleem
issues.new_label=Nieuw Label
issues.new_label_placeholder=Tekst label...
issues.create_label=Maak label
issues.label_templates.title=Load a predefined set of labels
issues.label_templates.info=Er zijn nog geen labels. U kunt op de 'Nieuw label'-knop drukken om een nieuwe toe te voegen of een voorgedefinieerde set hieronder gebruiken.
issues.label_templates.helper=Selecteer een labelset
issues.label_templates.use=Deze labelset gebruiken
issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
issues.open_tab=%d Open
issues.close_tab=%d gesloten
issues.filter_label=Label
@@ -448,7 +565,7 @@ issues.filter_milestone_no_select=Geen geselecteerde mijlpaal
issues.filter_assignee=Aangewezene
issues.filter_assginee_no_select=Geen geselecteerde verantwoordelijke
issues.filter_type=Type
issues.filter_type.all_issues=Alle kwesties
issues.filter_type.all_issues=Alle issues
issues.filter_type.assigned_to_you=Aan jou toegewezen
issues.filter_type.created_by_you=Aangemaakt door jou
issues.filter_type.mentioning_you=Vermelden jou
@@ -466,8 +583,8 @@ issues.next=Volgende
issues.open_title=Open
issues.closed_title=Gesloten
issues.num_comments=%d opmerkingen
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.delete_comment_confirm=Are you sure you want to delete this comment?
issues.commented_at=`reageerde <a href="#%s">%s</a>`
issues.delete_comment_confirm=Weet u zeker dat u deze reactie wilt verwijderen?
issues.no_content=Er is nog geen inhoud.
issues.close_issue=Sluit
issues.close_comment_issue=Sluit en geef commentaar
@@ -480,8 +597,7 @@ issues.commit_ref_at=`verwees naar dit probleem vanuit een commit <a id="%[1]s"
issues.poster=Poster
issues.collaborator=Medewerker
issues.owner=Eigenaar
issues.sign_up_for_free=Gratis aanmelden
issues.sign_in_require_desc=om deel te nemen in deze conversatie. Heeft u al een account? <a href="%s">Meld u aan om te reageren</a>
issues.sign_in_require_desc=<a href="%s">Sign in</a> to join this conversation.
issues.edit=Bewerken
issues.cancel=Annuleren
issues.save=Opslaan
@@ -496,6 +612,8 @@ issues.label_deletion=Verwijder label
issues.label_deletion_desc=Het verwijderen van dit label zal alle informatie in de gerelateerde problemen verwijderen. Wilt u doorgaan?
issues.label_deletion_success=Label werd met succes verwijderd!
issues.num_participants=%d deelnemers
issues.attachment.open_tab=`Klik om "%s" in een nieuw tabblad te bekijken`
issues.attachment.download=`Klik om te downloaden "%s"`
pulls.new=Nieuwe Pull aanvraag
pulls.compare_changes=Vergelijk veranderingen
@@ -505,6 +623,7 @@ pulls.compare_compare=vergelijk
pulls.filter_branch=Filter branch
pulls.no_results=Geen resultaten gevonden.
pulls.nothing_to_compare=Er is niets te vergelijken omdat base en head branches dezelfde zijn.
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=' Er is al een pull-aanvraag tussen deze twee targets: <a href="%[1]s/pulls/%[3]d"> %[2]s #% [3]d</a>'
pulls.create=Pull verzoek aanmaken
pulls.title_desc=wil %[1]d commits van <code>%[2]s</code> samenvoegen met <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=Controle van conflicten is nog bezig, ververs deze pagina in e
pulls.can_auto_merge_desc=Dit pull-request kan automatisch samengevoegd worden.
pulls.cannot_auto_merge_desc=Dit pull-request kan niet worden gemerged omdat er conflicten zijn.
pulls.cannot_auto_merge_helper=Gelieve beide versies manueel samen te voegen om de conflicten op te lossen.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=Samenvoegen van pull verzoek
pulls.open_unmerged_pull_exists=U kan de bewerking 'heropenen' niet uitvoeren omdat er al een pull-aanvraag (#%d) is van dezelfde repository met dezelfde informatie. Voeg deze eerst samen.
pulls.delete_branch=Aftakking verwijderen
pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Nieuwe mijlpaal
milestones.open_tab=%d geopend
@@ -568,30 +692,65 @@ wiki.last_updated=Laatst bijgewerkt: %s
settings=Instellingen
settings.options=Opties
settings.collaboration=Samenwerking
settings.collaboration.admin=Admin
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.undefined=Undefined
settings.collaboration.admin=Beheer
settings.collaboration.write=Schrijven
settings.collaboration.read=Lezen
settings.collaboration.undefined=Niet gedefinieerd
settings.branches=Branches
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Default Branch
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Bijwerken
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Protected Branches
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Choose a branch...
settings.branch_protection=Branch Protection
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Protect this branch
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Users who can push to this branch
settings.protect_whitelist_search_users=Doorzoek gebruikers
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Search teams
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Webhooks
settings.githooks=Git-hooks
settings.basic_settings=Basis instellingen
settings.mirror_settings=Mirror Settings
settings.sync_mirror=Nu synchroniseren
settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
settings.site=Officiële site
settings.update_settings=Instellingen bewerken
settings.change_reponame_prompt=Deze verandering zal gevolgen hebben voor hoe links zich verhouden tot de repository.
settings.advanced_settings=Geavanceerde opties
settings.wiki_desc=Wiki inschakelen, om mensen documenten te laten schrijven
settings.wiki_desc=Wiki-systeem inschakelen
settings.use_internal_wiki=Ingebouwde wiki gebruiken
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Externe wiki gebruiken
settings.external_wiki_url=Externe wiki-URL
settings.external_wiki_url_desc=Bezoekers worden doorgestuurd naar de URL als ze op het tabblad klikken.
settings.issues_desc=Ingebouwde compacte issuetracker inschakelen
settings.issues_desc=Issuetracker inschakelen
settings.use_internal_issue_tracker=Gebruik ingebouwde eenvoudige issuetracker
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Externe issuetracker gebruiken
settings.external_tracker_url=URL externe issuetracker
settings.external_tracker_url_desc=Bezoekers worden doorgestuurd naar de URL als ze op het tabblad klikken.
settings.tracker_url_format=URL-formaat externe issuetracker
settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_issue_style=Naamgevingstijl externe issuetracker:
settings.tracker_issue_style.numeric=Nummeriek
settings.tracker_issue_style.alphanumeric=Alfanummeriek
settings.tracker_url_format_desc=U kan de aanduidingen <code>{user} {repo} {index}</code> gebruiken voor de gebruikersnaam, de naam van de repository en de lijst van open tickets.
settings.pulls_desc=Schakel 'pull request' in om publieke bijdragen te mogelijk te maken
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Gevaren zone
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=De nieuwe eigenaar heeft al een repositorie met deze naam
settings.convert=Converteren naar gewone repository
settings.convert_desc=U kunt deze mirror converteren naar een gewone repository. Dit kan niet ongedaan worden gemaakt.
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=De repository met wiki data is succesvol gewist.
settings.delete=Verwijder deze repositorie
settings.delete_desc=Als u eenmaal een repositorie verwijderd is er geen weg terug. Gelieve zeker te zijn van uw acties.
settings.delete_notices_1=- Deze bewerking kan <strong>NIET</strong> ongedaan gemaakt worden.
settings.delete_notices_2=- Deze bewerking verwijdert permanent alle informatie van deze repository met inbegrip van Git gegevens, tickets, opmerkingen en de toegang van medewerkers.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Repository is succesvol verwijderd!
settings.update_settings_success=Repositorie instellingen zijn succesvol bijgewerkt.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Deze gebruiker zal niet langer toegang hebbe
settings.remove_collaborator_success=medewerker is verwijderd.
settings.search_user_placeholder=Zoek gebruiker...
settings.org_not_allowed_to_be_collaborator=De organisatie kan niet toegevoegd worden als medewerker.
settings.user_is_org_member=Gebruiker is lid van de organisatie die als een medewerker kan niet worden toegevoegd.
settings.add_webhook=Webhook toevoegen
settings.hooks_desc=Webhooks dat de externe diensten om kennisgevingen te ontvangen wanneer bepaalde gebeurtenissen op Gogs plaatsvinden. Wanneer de opgegeven gebeurtenissen plaatsvinden, sturen we een POST-aanvraag naar elk van de URL's die u opgeeft. Meer informatie vindt u in onze <a target="_blank" href="%s"> Webhooks gids</a>.
settings.webhook_deletion=Webhook verwijderen
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Webhook is succesvol verwijderd!
settings.webhook.test_delivery=Test-bezorging
settings.webhook.test_delivery_desc=Stuur een nep push bericht om de webhook te testen
settings.webhook.test_delivery_success=De test webhook is toegevoegd aan de wachtrij. Het kan enkele seconden duren voor deze in de geschiedenis wordt weergegeven.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Verzoek
settings.webhook.response=Antwoord
settings.webhook.headers=Headers
@@ -649,6 +809,7 @@ settings.add_webhook_desc=We sturen een <code>POST</code>-aanvraag naar de onder
settings.payload_url=Nettolading URL
settings.content_type=Content type
settings.secret=Geheim
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username=Gebruikersnaam
settings.slack_icon_url=Icoon URL
settings.slack_color=Kleur
@@ -658,8 +819,20 @@ settings.event_send_everything=Ik moet <strong>alles</strong> hebben.
settings.event_choose=Laat me kiezen wat ik nodig heb.
settings.event_create=Creëer
settings.event_create_desc=Branch, of tag aangemaakt
settings.event_delete=Verwijderen
settings.event_delete_desc=Branch or tag deleted
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_push=Push
settings.event_push_desc=Git push naar een repository
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request=Pull request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Actief
settings.active_helper=We zullen details van de gebeurtenissen af leveren wanneer deze webhook wordt geactiveerd.
settings.add_hook_success=Nieuwe webhook toegevoegd.
@@ -669,10 +842,13 @@ settings.delete_webhook=Webhook verwijderen
settings.recent_deliveries=Recente bezorgingen
settings.hook_type=Type hook
settings.add_slack_hook_desc=<a href="%s"> toegestane vertraging</a> integratie toevoegen aan uw repository.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Slack token
settings.slack_domain=Slack domein
settings.slack_channel=Slack kanaal
settings.deploy_keys=Installeer sleutels
settings.deploy_keys_helper=<b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key=Toevoegen deploy sleutel
settings.deploy_key_desc=Sleutels voor uitrol hebben enkel leesrechten. Ze zijn niet dezelfde als de SSH sleutels van persoonlijke accounts.
settings.no_deploy_keys=U hebt nog geen deploy sleutels toegevoegd.
@@ -684,6 +860,8 @@ settings.add_key_success=Nieuwe deploy sleutel '%s' werd succesvol toegevoegd!
settings.deploy_key_deletion=Verwijder deploy sleutel
settings.deploy_key_deletion_desc=Het verwijderen van deze deploy sleutel zal alle gerelateerde toegang verwijderen voor deze repositorie. Wilt u doorgaan?
settings.deploy_key_deletion_success=Deploy sleutel werd met succes verwijderd!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Bladeren bron
diff.parent=bovenliggende
@@ -702,7 +880,6 @@ release.releases=Releases
release.new_release=Nieuwe release
release.draft=Concept
release.prerelease=Voorlopige versie
release.stable=Stabiel
release.edit=bewerken
release.ahead=<strong>%d</strong> aanpassingen aan %s sinds deze versie
release.source_code=Broncode
@@ -727,7 +904,7 @@ release.deletion=Release verwijderen
release.deletion_desc=Als deze release verwijdert, worden de bijbehorende Git tag ook gewist. Wilt u doorgaan?
release.deletion_success=Release is verwijderd!
release.tag_name_already_exist=Versie met deze naam bestaat al.
release.tag_name_invalid=Tag name is not valid.
release.tag_name_invalid=Labelnaam is niet geldig.
release.downloads=Downloads
[org]
@@ -751,6 +928,7 @@ team_permission_desc=Welke privileges zou dit team moeten hebben?
form.name_reserved=Organisatienaam '%s' is gereserveerd.
form.name_pattern_not_allowed=Organisatie naampatroon '%s' is niet toegestaan.
form.team_name_reserved=Team name '%s' is reserved.
settings=Instellingen
settings.options=Opties
@@ -783,7 +961,7 @@ members.invite_desc=Voeg nieuw lid toe aan %s:
members.invite_now=Nu uitnodigen
teams.join=Lid worden
teams.leave=Vertlaat
teams.leave=Verlaat
teams.read_access=Leestoegang
teams.read_access_helper=Dit team is in staat om zijn repositories te bekijken en te klonen.
teams.write_access=Schrijf toegang
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Garbage collectie uitvoeren
dashboard.git_gc_repos_success=Garbage collectie met succes uitgevoerd.
dashboard.resync_all_sshkeys=Herschrijf '.ssh/authorized_keys' (Let op: alle sleutels die niet van Gogs zijn zullen verloren gaan!)
dashboard.resync_all_sshkeys_success=Alle publieke sleutels zijn herschreven.
dashboard.resync_all_update_hooks=Herschrijf alle repositorie-hooks (nodig als de configuratie bestandslocatie is gewijzigd)
dashboard.resync_all_update_hooks_success=Alle repositorie-hooks zijn herschreven.
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Alle repositories zonder Git files opnieuw initialiseren
dashboard.reinit_missing_repos_success=Alle repositories zonder Git files zijn succesvol opnieuw geinitializeerd.
@@ -895,7 +1073,7 @@ users.edit_account=Bewerk account
users.max_repo_creation=Maximum-limiet voor aanmaken van repositories
users.max_repo_creation_desc=(Zet op -1 om de globale limiet te gebruiken)
users.is_activated=Dit account is geactiveerd
users.prohibit_login=This account is prohibited to login
users.prohibit_login=Dit account is verboden om in te loggen
users.is_admin=Dit account heeft beheerdersrechten
users.allow_git_hook=Deze account beschikt over machtigingen voor het maken van Git haken
users.allow_import_local=Dit account mag lokale repositories importeren
@@ -916,30 +1094,38 @@ repos.name=Naam
repos.private=Prive
repos.watches=Volgers
repos.stars=Sterren
repos.issues=Kwesties
repos.issues=Issues
repos.size=Size
auths.auth_manage_panel=Authenticatie-beheer paneel
auths.auth_sources=Authentication Sources
auths.new=Nieuwe bron toevoegen
auths.name=Naam
auths.type=Type
auths.enabled=Ingeschakeld
auths.default=Default
auths.updated=Bijgewerkt
auths.auth_type=Authenticatietype
auths.auth_name=Authenticatienaam
auths.security_protocol=Security Protocol
auths.security_protocol=Beveiligingsprotocol
auths.domain=Domein
auths.host=Host
auths.port=Poort
auths.bind_dn=Binden DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Bind wachtwoord
auths.bind_password_helper=Opgelet: Dit wachtwoord wordt opgeslagen als leesbare tekst. Gebruik geen account met verhoogde rechten.
auths.user_base=User Search Base
auths.user_dn=User DN
auths.attribute_username=Gebruikersnaam attribuut
auths.attribute_username_placeholder=Laat leeg om het login veld van het formulier te gebruiken als gebruikersnaam.
auths.attribute_name=Voornaam attribuut
auths.attribute_name=First Name Attribute
auths.attribute_surname=Achternaam attribuut
auths.attribute_mail=E-mail attribuut
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Verkrijg attributes van de Bind DN context
auths.filter=Gebruikersfilter
auths.admin_filter=Beheerdersfilter
@@ -953,9 +1139,9 @@ auths.enable_tls=Activeer TLS-encryptie
auths.skip_tls_verify=TLS-verificatie overslaan
auths.pam_service_name=PAM servicenaam
auths.enable_auto_register=Activeer automatische registratie
auths.tips=Tips
auths.edit=Verificatie-instelling bewerken
auths.activated=Deze autorisatiemethode is geactiveerd
auths.default_auth=This authentication is default login source
auths.new_success=Nieuwe authenticatie '%s' werd toegevoegd.
auths.update_success=Authenticatie instellingen zijn succesvol gewijzigd.
auths.update=Authenticatie-instellingen bijwerken
@@ -963,8 +1149,10 @@ auths.delete=Deze authenticatiewijze verwijderen
auths.delete_auth_title=Authenticatie verwijderd
auths.delete_auth_desc=Deze authenticatie zal verwijderd worden, wil je verdergaan?
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=Authentication has been deleted successfully!
auths.deletion_success=Authenticatie is met succes verwijderd!
auths.login_source_exist=Login source '%s' already exists.
config.not_set=(not set)
config.server_config=Serverconfiguratie
config.app_name=Applicatienaam
config.app_ver=Applicatieversie
@@ -974,10 +1162,9 @@ config.offline_mode=Offline-modus
config.disable_router_log=Router-log uitschakelen
config.run_user=Uitvoerende gebruiker
config.run_mode=Uitvoer modus
config.repo_root_path=Repositorie basis pad
config.git_version=Gitversie
config.static_file_root_path=Statische bestanden basis pad
config.log_file_root_path=Log bestand basis pad
config.script_type=Script type
config.reverse_auth_user=Omgekeerde verificatie gebruiker
config.ssh_config=SSH-configuratie
@@ -987,11 +1174,25 @@ config.ssh_domain=Domein
config.ssh_port=Poort
config.ssh_listen_port=Luister op poort
config.ssh_root_path=Root-pad
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Pad voor key-tests
config.ssh_keygen_path=Pad van keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Controleer minimale key-lengte
config.ssh_minimum_key_sizes=Minimale key-lengtes
config.repo_config=Repository Configuration
config.repo_root_path=Repositorie basis pad
config.script_type=Script type
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Databaseconfiguratie
config.db_type=Type
config.db_host=Host
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL modus
config.db_ssl_mode_helper=(alleen voor "postgres")
config.db_path=Pad
config.db_path_helper=(voor "sqlite3" en "tidb")
config.service_config=Serviceconfiguratie
config.register_email_confirm=E-mailbevestiging registreren
config.disable_register=Registratie uitgeschakeld
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Controle op key-lengte uitschakelen
config.enable_captcha=CAPTCHA inschakelen
config.active_code_lives=Actieve Code leven
config.reset_password_code_lives=Reset wachtwoord Code leven
config.webhook_config=Webhook configuratie
config.queue_length=Lengte van wachtrij
config.deliver_timeout=Bezorging verlooptijd
config.skip_tls_verify=TLS certificaat controle overslaan
config.mailer_config=Mailerconfiguatie
config.mailer_enabled=Ingeschakeld
config.mailer_disable_helo=Schakel HELO uit
config.mailer_name=Naam
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Host
config.mailer_user=Gebruiker
config.send_test_mail=Testbericht verzenden
config.test_mail_failed=Verzending van een testmail naar '%s' is mislukt: %v
config.test_mail_sent=Test-email is verstuurd naar '%s'.
config.oauth_config=OAuth-configuratie
config.oauth_enabled=Ingeschakeld
config.cache_config=Cache-configuratie
config.cache_adapter=Cache-adapter
config.cache_interval=Cache-interval
config.cache_conn=Cache-connectie
config.session_config=Sessieconfiguratie
config.session_provider=Sessieprovider
config.provider_config=Provider config
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC interval time
config.session_life_time=Sessie duur
config.https_only=Alleen HTTPS
config.cookie_life_time=Cookie duur leeftijd
config.picture_config=Foto configuratie
config.picture_service=Foto service
config.disable_gravatar=Gravatar uitschakelen
config.enable_federated_avatar=Federated Avatars toestaan
config.git_config=Gitconfiguratie
config.git_disable_diff_highlight=Disable Diff Syntax Highlight
config.git_max_diff_lines=Max Diff Lines (for a single file)
config.git_max_diff_line_characters=Max Diff Characters (for a single line)
config.git_max_diff_files=Max Diff Files (to be shown)
config.git_gc_args=GC Arguments
config.git_migrate_timeout=Migration Timeout
config.git_mirror_timeout=Mirror Update Timeout
config.git_clone_timeout=Clone Operation Timeout
config.git_pull_timeout=Pull Operation Timeout
config.git_gc_timeout=GC Operation Timeout
config.log_config=Logconfiguratie
config.log_mode=Log-modus
config.log_mode=Mode
config.log_options=Options
monitor.cron=Cron-taken
monitor.name=Naam
@@ -1072,19 +1295,26 @@ notices.delete_success=System notices have been deleted successfully.
[action]
create_repo=repositorie aangemaakt in <a href="%s">%s</a>
rename_repo=renamed repository from <code>%[1]s</code> to <a href="%[2]s">%[3]s</a>
rename_repo=hernoemde repository van <code>%[1]s</code> naar <a href="%[2]s">%[3]s</a>
commit_repo=push update naar <a href="%[1]s/src/%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
create_issue=`opende issue in <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`closed issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`reopened issue <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`created pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`closed pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`reopened pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`reactie op issue <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`merged pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=repositorie verplaatst naar <code>%s</code> naar <a href="%s">%s</a>
push_tag=geduwd label <a href="%s/src/%s"> %[2]s</a> naar <a href="%[1]s"> %[3]s</a>
compare_commits=Toon vergelijking voor deze %d commits
transfer_repo=repositorie verplaatst naar <code>%s</code> naar <a href="%s">%s</a>
create_issue=`opende issue in <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`gesloten issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`heropende issue <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`reactie op issue <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`maakte pull request <a href="%s/issues/%s">%s#%[2]s</a>`
close_pull_request=`sloot pull request <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_pull_request=`heropende pull request <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`voegde pull request samen <a href="%s/issues/%s">%s#%[2]s</a>`
create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=geduwd label <a href="%s/src/%s"> %[2]s</a> naar <a href="%[1]s"> %[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=geleden

View File

@@ -48,7 +48,7 @@ cancel=Anuluj
install=Instalacja
title=Kroki instalacyjne dla pierwszego uruchomienia
docker_helper=Jeśli używasz Gogs wewnątrz Dockera, proszę przeczytaj <a target="_blank" href="%s">wytyczne</a>, zanim zmienisz coś na tej stronie!
requite_db_desc=Gogs wymaga MySQL, PostgreSQL, SQLite3 lub TiDB.
requite_db_desc=Gogs wymaga bazy MySQL, PostgreSQL, SQLite3 lub TiDB.
db_title=Ustawienia bazy danych
db_type=Typ bazy danych
host=Host
@@ -58,9 +58,8 @@ db_name=Nazwa bazy danych
db_helper=Proszę użyć silnika INNODB z kodowaniem utf8_general_ci dla MySQL.
ssl_mode=Tryb SSL
path=Ścieżka
sqlite_helper=Ścieżka do pliku bazy danych SQLite3 lub TiDB. <br>Proszę użyć ścieżki bezwzględnej podczas uruchamiania usługi.
err_empty_db_path=Ścieżka do bazy danych SQLite3 lub TiDB nie może być pusta.
err_invalid_tidb_name=Nazwa bazy danych TiDB nie może zawierać znaków "." i "-".
sqlite_helper=Ścieżka do pliku bazy danych SQLite3.<br>Proszę użyć ścieżki bezwzględnej podczas uruchamiania usługi.
err_empty_db_path=Ścieżka do pliku bazy danych SQLite3 nie może być pusta.
no_admin_and_disable_registration=Rejestracji nie można wyłączyć bez tworzenia konta admina.
err_empty_admin_password=Hasło admina nie może być puste.
@@ -75,18 +74,22 @@ domain=Domena
domain_helper=To wpłynie na URLe do klonowania poprzez SSH.
ssh_port=Port SSH
ssh_port_helper=Numer portu, z którego korzysta z serwer SSH; pozostaw puste, aby wyłączyć funkcję SSH.
use_builtin_ssh_server=Użyj wbudowanego serwera SSH
use_builtin_ssh_server_popup=Uruchom wbudowany serwer SSH dla odróżnienia operacji GIT od systemowego demona SSH.
http_port=Port HTTP
http_port_helper=Numer portu na którym aplikacja jest dostępna.
app_url=Adres URL aplikacji
app_url_helper=To wpłynie na adresy klonowania HTTP/HTTPS i w wiadomościach e-mail.
log_root_path=Ścieżka dla logów
log_root_path_helper=Katalog do zapisu logów.
enable_console_mode=Włącz tryb konsolowy
enable_console_mode_popup=Oprócz zapisywania do pliku wyświetlaj logi także w konsoli.
optional_title=Ustawienia opcjonalne
email_title=Ustawienia serwera e-mail
smtp_host=Serwer SMTP
smtp_from=Od
smtp_from_helper=Adres w polu "Od", zgodnie z RFC 5322. Może być to po prostu adres email, bądź adres w formacie "Nazwa" <email@example.com>.
smtp_from_helper=Adres w polu Od, zgodnie z RFC 5322. Może być to po prostu adres email, bądź adres w formacie Nazwa <email@example.com>.
mailer_user=E-mail nadawcy
mailer_password=Hasło nadawcy
register_confirm=Włącz potwierdzenia rejestracji
@@ -96,6 +99,8 @@ offline_mode=Włącz tryb offline
offline_mode_popup=Wyłącz CDN, nawet w trybie produkcyjnym, wszystkie pliki zasobów będą podawane lokalnie.
disable_gravatar=Wyłącz usługę Gravatar
disable_gravatar_popup=Wyłącz Gravatar i niestandardowe źrodła, awatary muszą być przesyłane przez użytkowników.
federated_avatar_lookup=Włączyć wyszukiwanie avatarów w powiązanych systemach
federated_avatar_lookup_popup=Włączyć wyszukiwanie avatarów w powiązanych systemach opartych na usłudze libravatar.
disable_registration=Wyłącz samodzielną rejestrację
disable_registration_popup=Wyłącz samodzielną rejestrację użytkownika, tylko administrator będzie mógł tworzyć konta.
enable_captcha=Włącz Captcha
@@ -109,11 +114,13 @@ admin_password=Hasło
confirm_password=Potwierdź hasło
admin_email=E-mail administratora
install_gogs=Zainstaluj Gogs
test_git_failed=Nie udało się przetestować polecenia "git": %v
test_git_failed=Nie udało się przetestować polecenia git: %v
sqlite3_not_available=Twoje wydanie nie obsługuje SQLite3, proszę pobrać oficjalne wydanie z %s, a NIE wersję z gobuild.
invalid_db_setting=Ustawienia bazy danych nie są poprawne: %v
invalid_repo_path=Ścieżka repozytoriów nie jest poprawna: %v
run_user_not_match=Użytkownik aplikacji nie jest aktualnym użytkownikiem: %s -> %s
smtp_host_missing_port=W SMTP Host brakuje portu w adresie.
invalid_smtp_from=Pole SMTP OD nie jest prawidłowe: %v
save_config_failed=Nie udało się zapisać konfiguracji: %v
invalid_admin_setting=Nieprawidłowe ustawienia konta admina: %v
install_success=Cześć! Cieszymy się, że wybierałeś Gogs, baw się dobrze.
@@ -135,6 +142,7 @@ issues.in_your_repos=W Twoich repozytoriach
[explore]
repos=Repozytoria
users=Użytkownicy
organizations=Organizacje
search=Wyszukiwanie
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=Masz już konto? Zaloguj się teraz!
social_register_hepler_msg=Masz już konto? Powiąż je teraz!
disable_register_prompt=Przepraszamy rejestracja została wyłączona. Prosimy o kontakt z administratorem serwisu.
disable_register_mail=Przepraszamy, potwierdzenia rejestracji zostały wyłączone przez administratora.
auth_source=Źródło uwierzytelniania
local=Lokalne
remember_me=Zapamiętaj mnie
forgot_password=Zapomniałem hasła
forget_password=Zapomniałeś hasła?
@@ -154,7 +164,6 @@ prohibit_login_desc=Nie możesz się zalogować na to konto, skontaktuj się z
resent_limit_prompt=Niestety, zbyt często wysyłasz e-mail aktywacyjny. Proszę odczekać 3 minuty.
has_unconfirmed_mail=Witaj, %s, masz niepotwierdzony adres e-mail (<b>%s</b>). Jeśli nie otrzymałeś wiadomości e-mail z potwierdzeniem lub potrzebujesz wysłać nową, kliknij na poniższy przycisk.
resend_mail=Kliknij tutaj, aby wysłać e-mail aktywacyjny
email_not_associate=Ten adres e-mail nie jest skojarzony z żadnym kontem.
send_reset_mail=Kliknij tutaj, aby (ponownie) wysłać e-mail z instrukcjami resetowania hasła
reset_password=Resetowanie hasła
invalid_code=Niestety, Twój kod potwierdzający wygasł lub jest nieprawidłowy.
@@ -162,6 +171,14 @@ reset_password_helper=Kliknij tutaj, aby zresetować hasło
password_too_short=Długość hasła nie może być mniejsza niż 6 znaków.
non_local_account=Nie lokalne konta nie mogą zmieniać haseł przez Gogs.
login_two_factor=Weryfikacja dwuetapowa
login_two_factor_passcode=Kod uwierzytelniania
login_two_factor_enter_recovery_code=Wprowadź kod odzyskiwania weryfikacji dwuetapowej
login_two_factor_recovery=Dwuetapowe odzyskiwanie kodu
login_two_factor_recovery_code=Kod odzyskiwania
login_two_factor_enter_passcode=Wprowadź hasło dwuetapowe
login_two_factor_invalid_recovery_code=Kod odzyskiwania został już wykorzystany lub nie jest prawidłowy.
[mail]
activate_account=Prosimy aktywować swoje konto
activate_email=Potwierdź swój adres e-mail
@@ -187,9 +204,17 @@ TeamName=Nazwa zespołu
AuthName=Nazwa autoryzacji
AdminEmail=E-mail administratora
NewBranchName=Nazwa nowej gałęzi
CommitSummary=Podsumowanie commitu
CommitMessage=Wiadomość commitu
CommitChoice=Wybór commitu
TreeName=Ścieżka pliku
Content=Treść
require_error=` nie może być puste.`
alpha_dash_error=` musi się składać z prawidłowych znaków alfanumerycznych, myślników oraz podkreśleń.`
alpha_dash_dot_error=` musi się składać z prawidłowych znaków alfanumerycznych, myślników, podkreśleń oraz kropek.`
alpha_dash_dot_slash_error=` musi być alfa/numeryczny lub zawierać daszek, myślnik, kropkę lub ukośnik.`
size_error=` musi być wielkości %s.`
min_size_error=` musi zawierać co najwyżej %s znaków.`
max_size_error=` musi zawierać co najwyżej %s znaków.`
@@ -206,6 +231,7 @@ org_name_been_taken=Nazwa organizacji jest już zajęta.
team_name_been_taken=Nazwa zespołu jest już zajęta.
email_been_used=Adres e-mail jest już zarejestrowany.
username_password_incorrect=Nazwa użytkownika lub hasło nie jest prawidłowe.
auth_source_mismatch=Wybrane źródło uwierzytelniania nie jest związane z użytkownikiem.
enterred_invalid_repo_name=Upewnij się, że wprowadzona nazwa repozytorium jest poprawna.
enterred_invalid_owner_name=Upewnij się, że nazwa właściciela repozytorium jest poprawna.
enterred_invalid_password=Proszę upewnij się, że wprowadzono hasło jest poprawne.
@@ -233,18 +259,19 @@ following=Obserwowani
follow=Obserwuj
unfollow=Przestań obserwować
form.name_reserved=Nazwa użytkownika "%s" jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy użytkownika "%s" jest niedozwolony.
form.name_reserved=Nazwa użytkownika %s jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy użytkownika %s jest niedozwolony.
[settings]
profile=Profil
password=Hasło
avatar=Awatar
ssh_keys=Klucze SSH
social=Konta społecznościowe
applications=Aplikacje
security=Bezpieczeństwo
repos=Repozytoria
orgs=Organizacje
applications=Aplikacje
delete=Usuń konto
uid=UID
public_profile=Profil publiczny
profile_desc=Twój adres e-mail jest publiczny i będzie używany dla wszystkich powiadomień związanych z kontem i dla każdej operacji wykonanej przez tę stronę.
@@ -259,6 +286,8 @@ change_username_prompt=Ta zmiana wpłynie na sposób w jaki łącza odnoszą si
continue=Kontynuuj
cancel=Anuluj
lookup_avatar_by_mail=Wyszukaj Avatar po mailu
federated_avatar_lookup=Wyszukiwanie Avatarów w powiązanych systemach
enable_custom_avatar=Włącz niestandardowe awatary
choose_new_avatar=Wybierz nowy avatar
update_avatar=Zaktualizuj ustawienia awatara
@@ -308,10 +337,31 @@ no_activity=Brak aktywności
key_state_desc=Ten klucz został użyty w ciągu ostatnich 7 dni
token_state_desc=Ten token został użyty w ciągu ostatnich 7 dni
manage_social=Zarządzaj powiązanymi kontami społecznościowymi
social_desc=To jest lista powiązanych kont społecznościowych. Usuń powiązania, których nie rozpoznajesz.
unbind=Usuń powiązanie
unbind_success=Konto społecznościowe zostało odpięte.
two_factor=Weryfikacja dwuetapowa
two_factor_status=Status:
two_factor_on=Włączony
two_factor_off=Wyłączony
two_factor_enable=Włącz
two_factor_disable=Wyłącz
two_factor_view_recovery_codes=Wyświetl i zapisz Twoje <a href="%s%s">kody odzyskiwania</a> w bezpiecznym miejscu. Można użyć ich jako kod dostępu, jeśli stracisz dostęp do aplikacji uwierzytelniania.
two_factor_http=Dla operacji HTTP/HTTPS już nie jest obsługiwana zwykła nazwa użytkownika i hasło. Prosimy o tworzenie i używanie <a href="%[1]s%[2]s"> osobistych tokenów dostępu</a> jako swoich poświadczeń, np.: <code>%[3]s</code>.
two_factor_enable_title=Włącz weryfikację dwuetapową
two_factor_scan_qr=Proszę używać uwierzytelniania aplikacji do skanowania obrazów:
two_factor_or_enter_secret=Lub wprowadź sekret:
two_factor_then_enter_passcode=Następnie wprowadź kod dostępu:
two_factor_verify=Weryfikuj
two_factor_invalid_passcode=Wprowadzony kod nie jest prawidłowy, spróbuj ponownie!
two_factor_reused_passcode=Ten kod jest już używany, spróbuj ponownie!
two_factor_enable_error=Włączenie dwuetapowego uwierzytelniania nie powiodło się: %v
two_factor_enable_success=Uwierzytelnianie dwuetapowe Twojego konta zostało włączone pomyślnie!
two_factor_recovery_codes_title=Kody odzyskiwania uwierzytelniania dwuetapowego
two_factor_recovery_codes_desc=Kody odzyskiwania są używane, gdy tymczasowo utracić dostęp do aplikacji uwierzytelniania. Każdy kod odzyskiwania może być tylko używany raz, <b>Proszę zachować te kody w bezpiecznym miejscu</b>.
two_factor_regenerate_recovery_codes=Ponownie wygeneruj kody odzyskiwania
two_factor_regenerate_recovery_codes_error=Ponowne wygenerowanie kodu odzyskiwania nie powiodło się: %v
two_factor_regenerate_recovery_codes_success=Nowy kod odzyskiwania został wygenerowany pomyślnie!
two_factor_disable_title=Wyłącz weryfikację dwuetapową
two_factor_disable_desc=Poziom zabezpieczeń konta zmniejszy się po wyłączeniu uwierzytelnianie dwuetapowego. Czy chcesz kontynuować?
two_factor_disable_success=Uwierzytelnianie dwuetapowe wyłączono pomyślnie!
manage_access_token=Zarządzaj osobistymi tokenami dostępu
generate_new_token=Wygeneruj nowy token
@@ -325,6 +375,15 @@ access_token_deletion=Usuwanie osobistego tokena dostępu
access_token_deletion_desc=Usunięcie tego tokena osobistego dostęp spowoduje usunięcie wszystkich powiązanych dostępów do aplikacji. Czy chcesz kontynuować?
delete_token_success=Osobisty token dostępu został usunięty pomyślnie! Nie zapomnij również zaktualizować swoich aplikacji.
orgs.none=Nie jesteś członkiem żadnej organizacji.
orgs.leave_title=Opuść organizację
orgs.leave_desc=Po opuszczeniu organizacji utracisz dostęp do wszystkich repozytoriów i zespołów. Czy chcesz kontynuować?
repos.leave=Opuść
repos.leave_title=Opuść repozytorium
repos.leave_desc=Po opuszczeniu, stracisz dostęp do repozytorium. Czy chcesz kontynuować?
repos.leave_success=Pomyślnie opuściłeś repozytorium '%s'!
delete_account=Usuń swoje konto
delete_prompt=Ta operacja trwale usunie Twoje konto i <strong>NIE MOŻE</strong> zostać cofnięta!
confirm_delete_account=Potwierdź usunięcie
@@ -345,7 +404,7 @@ fork_from=Forkuj z
fork_visiblity_helper=Fork nie może zmieniać swojej widoczności
repo_desc=Opis
repo_lang=Język
repo_lang_helper=Wybierz pliki .gitignore
repo_gitignore_helper=Wybierz szablony pliku .gitignore
license=Licencja
license_helper=Wybierz plik licencji
readme=Readme
@@ -358,27 +417,30 @@ mirror_prune_desc=Usuń wszystkie śledzone odwołania które nie istnieją w zd
mirror_interval=Częstotliwość kopiowania (godziny)
mirror_address=Adres kopii lustrzanej
mirror_address_desc=Proszę podać wymagane poświadczenia użytkownika w adresie.
mirror_last_synced=Ostatnia synchronizacja
watchers=Obserwujący
stargazers=Polubienia
forks=Forki
repo_description_helper=Opis repozytorium. Maksymalnie 512 znaków.
repo_description_length=Dostępne znaki
form.reach_limit_of_creation=Właściciel osiągnął limit maksymalnej ilości repozytoriów %d.
form.name_reserved=Nazwa repozytorium "%s" jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy repozytorium "%s" jest niedozwolony.
form.name_reserved=Nazwa repozytorium %s jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy repozytorium %s jest niedozwolony.
need_auth=Wymaga autoryzacji
migrate_type=Typ migracji
migrate_type_helper=To repozytorium będzie <span class="text blue">kopią lustrzaną</span>
migrate_repo=Przenieś repozytorium
migrate.clone_address=Sklonuj adres
migrate.clone_address_desc=To może być adres HTTP/HTTPS/GIT lub ścieżka lokalna serwera.
migrate.clone_address_desc=URL może być adresem HTTP/HTTPS/GIT.
migrate.clone_address_desc_import_local=Masz także możliwość migracji repozytorium przez ścieżka serwera lokalnego.
migrate.permission_denied=Nie możesz importować lokalnych repozytoriów.
migrate.invalid_local_path=Ścieżka jest niepoprawna. Nie istnieje lub nie jest katalogiem.
migrate.failed=Migracja nie powiodła się: %v
mirror_from=kopia lustrzana
forked_from=sklonowany z
fork_from_self=Nie możesz forkować swojego własnego repozytorium!
copy_link=Kopiuj
copy_link_success=Skopiowane!
copy_link_error=Naciśnij klawisze ⌘-C i Ctrl-C, aby skopiować
@@ -394,9 +456,9 @@ quick_guide=Skrócona instrukcja
clone_this_repo=Klonuj repozytorium
create_new_repo_command=Utwórz nowe repozytorium z wiersza poleceń
push_exist_repo=Prześlij istniejące repozytorium z wiersza poleceń
repo_is_empty=To repozytorium jest puste, proszę wrócić później!
bare_message=To repozytorium nie ma jeszcze żadnej zawartości.
code=Kod
files=Pliki
branch=Gałąź
tree=Drzewo
filter_branch_and_tag=Filtruj gałąź lub tag
@@ -407,13 +469,63 @@ pulls=Oczekujące zmiany
labels=Etykiety
milestones=Kamienie milowe
commits=Commity
git_branches=Gałęzie
releases=Wydania
file_raw=Czysty
file_history=Historia
file_view_raw=Zobacz czysty
file_permalink=Bezpośredni odnośnik
file_too_large=Ten plik jest zbyt duży, aby go wyświetlić
video_not_supported_in_browser=Twoja przeglądarka nie obsługuje znacznika HTML5 video.
branches.overview=Przegląd
branches.active_branches=Aktywne gałęzie
branches.stale_branches=Stare gałęzie
branches.all=Wszystkie gałęzie
branches.updated_by=Zaktualizowano %[1]s przez %[2]s
branches.change_default_branch=Zmiana domyślnej gałęzi
editor.new_file=Nowy plik
editor.upload_file=Załaduj plik
editor.edit_file=Edytuj plik
editor.preview_changes=Podgląd zmian
editor.cannot_edit_non_text_files=Nie można edytować plików nietekstowych
editor.edit_this_file=Edytuj ten plik
editor.must_be_on_a_branch=Musisz być na gałęzi aby zgłosić lub zaproponować zmiany do tego pliku
editor.fork_before_edit=Musisz sforkować to repozytorium przed edycją tego pliku
editor.delete_this_file=Usuń ten plik
editor.must_have_write_access=Musisz mieć uprawnienia do zapisu aby zgłosić lub zaproponować zmiany do tego pliku
editor.file_delete_success=Plik '%s' został usunięty pomyślnie!
editor.name_your_file=Nazwij plik...
editor.filename_help=Aby dodać katalog, wpisz nazwę i naciśnij przycisk /. Aby usunąć katalog, przejdź do początku pola i naciśnij klawisz backspace.
editor.or=lub
editor.cancel_lower=anuluj
editor.commit_changes=Zatwierdź zmiany
editor.add_tmpl=Dodaj '%s/<filename>'
editor.add=Dodaj '%s'
editor.update=Zaktualizuj '%s'
editor.delete=Usuń '%s'
editor.commit_message_desc=Dodaj dodatkowy rozszerzony opis...
editor.commit_directly_to_this_branch=Commituj bezpośrednio do gałęzi <strong class="branch-name">%s</strong>.
editor.create_new_branch=Stwórz <strong>nową gałąź</strong> dla tego commita i rozpocznij pull request.
editor.new_branch_name_desc=Nazwa nowej gałęzi...
editor.cancel=Anuluj
editor.filename_cannot_be_empty=Nazwa pliku nie może być pusta.
editor.branch_already_exists=Gałąź '%s' już istnieje w tym repozytorium.
editor.directory_is_a_file=Wpis '%s' w ścieżce nadrzędnej jest plikiem a nie katalogiem w tym repozytorium.
editor.file_is_a_symlink=Plik '%s' jest dowiązaniem symbolicznym, które nie mogą być modyfikowane z poziomu przeglądarki internetowej.
editor.filename_is_a_directory=Nazwa '%s' jest istniejącym katalogiem w tym repozytorium.
editor.file_editing_no_longer_exists=Plik '%s' który edytujesz nie istnieje już w tym repozytorium.
editor.file_changed_while_editing=Zawartość pliku została zmieniona od rozpoczęcia edycji. <a target="_blank" href="%s">Kliknij tutaj</a> aby zobaczyć, co zostało zmienione lub <strong>naciśnij commit ponownie</strong> aby nadpisać te zmiany.
editor.file_already_exists=Nazwa pliku '%s' już istnieje w tym repozytorium.
editor.no_changes_to_show=Brak zmian do pokazania.
editor.fail_to_update_file=Tworzenie/aktualizacja pliku '%s' nie powiodła się z błędem: %v
editor.fail_to_delete_file=Nie można usunąć pliku '%s' z powodu błędu: %v
editor.add_subdir=Dodaj podkatalog...
editor.unable_to_upload_files=Wysyłanie plików do '%s' nie powiodło się z błędem: %v
editor.upload_files_to_dir=Prześlij pliki do '%s'
commits.commit_history=Historia zmian
commits.commits=Commity
commits.search=Przeszukaj commity
commits.find=Szukaj
@@ -439,6 +551,11 @@ issues.create=Utwórz problem
issues.new_label=Nowa etykieta
issues.new_label_placeholder=Etykieta...
issues.create_label=Utwórz etykietę
issues.label_templates.title=Załaduj wstępnie przygotowany zestaw etykiet
issues.label_templates.info=Nie ma jeszcze żadnych etykiet. Kliknij na przycisk „Nowa etykieta” powyżej, aby utworzyć lub użyć poniższego zestawu wstępnie zdefiniowanego.
issues.label_templates.helper=Wybierz zestaw etykiet
issues.label_templates.use=Użyj ten zestaw etykiet
issues.label_templates.fail_to_load_file=Ładowanie pliku szablonu etykiety '%s' nie powiodło się: %v
issues.open_tab=Otwarte %d
issues.close_tab=Zamknięte %d
issues.filter_label=Etykieta
@@ -480,8 +597,7 @@ issues.commit_ref_at=`wspomina ten problem w commicie <a id="%[1]s" href="#%[1]s
issues.poster=Autor
issues.collaborator=Współpracownik
issues.owner=Właściciel
issues.sign_up_for_free=Zarejestruj się za darmo
issues.sign_in_require_desc=do przyłączenia się do tej rozmowy. Masz już konto? <a href="%s">Zaloguj się by komentować</a>
issues.sign_in_require_desc=<a href="%s"> Zaloguj się</a>, aby dołączyć do tej rozmowy.
issues.edit=Edytuj
issues.cancel=Anuluj
issues.save=Zapisz
@@ -496,6 +612,8 @@ issues.label_deletion=Usunięcie etykiety
issues.label_deletion_desc=Usunięcie tej etykiety spowoduje usuniecie jej ze wszystkich powiązanych problemów. Czy na pewno chcesz kontynuować?
issues.label_deletion_success=Etykieta została usunięta pomyślnie!
issues.num_participants=%d uczestników
issues.attachment.open_tab=`Kliknij, aby zobaczyć „%s” w nowej karcie`
issues.attachment.download=`Kliknij, aby pobrać „%s”`
pulls.new=Nowy pull request
pulls.compare_changes=Porównaj zmiany
@@ -505,6 +623,7 @@ pulls.compare_compare=porównaj
pulls.filter_branch=Filtruj branch
pulls.no_results=Nie znaleziono wyników.
pulls.nothing_to_compare=Nie ma nic do porównania, ponieważ gałęzie bazy i head są identyczne.
pulls.nothing_merge_base=Nie ma nic do porównania, ponieważ dwie gałęzie mają zupełnie inną historię.
pulls.has_pull_request=`Istnieje już pull request dla tych dwóch celów: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Utwórz Pull Request
pulls.title_desc=chce scalić %[1]d commity/ów z <code>%[2]s</code> do <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=Sprawdzanie konfliktów jeszcze trwa, proszę odświeżyć str
pulls.can_auto_merge_desc=Pull request może być automatycznie scalony.
pulls.cannot_auto_merge_desc=Pull request nie może być automatycznie scalony z powodu konfliktów.
pulls.cannot_auto_merge_helper=Proszę scalić ręcznie, aby rozwiązać konflikty.
pulls.create_merge_commit=Utwórz scalający commit
pulls.rebase_before_merging=Rebase przed scaleniem
pulls.commit_description=Commit Description
pulls.merge_pull_request=Scal Pull Request
pulls.open_unmerged_pull_exists=`Nie można otworzyć ponownie ponieważ już istnieje gotowy do scalenia pull request (#%d) z tego samego repozytorium z tymi samymi informacjami.`
pulls.delete_branch=Usuń gałąź
pulls.delete_branch_has_new_commits=Gałęzi nie można usunąć ponieważ są nowe zmiany po scaleniu.
milestones.new=Nowy kamień milowy
milestones.open_tab=Otwarte %d
@@ -537,7 +661,7 @@ milestones.desc=Opis
milestones.due_date=Termin realizacji (opcjonalnie)
milestones.clear=Wyczyść
milestones.invalid_due_date_format=Format daty realizacji jest nieprawidłowy, musi być "rrrr-mm-dd".
milestones.create_success=Kamień milowy "%s" został utworzony pomyślnie!
milestones.create_success=Kamień milowy %s został utworzony pomyślnie!
milestones.edit=Edytuj kamień milowy
milestones.edit_subheader=Użyj lepszego opisu, tak aby nie wprowadzać w błąd użytkowników.
milestones.cancel=Anuluj
@@ -560,7 +684,7 @@ wiki.last_commit_info=%s edytuje tę stronę %s
wiki.edit_page_button=Edytuj
wiki.new_page_button=Nowa strona
wiki.delete_page_button=Usuń stronę
wiki.delete_page_notice_1=Strona zostanie usunięta <code>"%s"</code>. Bądź ostrożny.
wiki.delete_page_notice_1=Strona zostanie usunięta <code>%s</code>. Bądź ostrożny.
wiki.page_already_exists=Strona Wiki o tej samej nazwie już istnieje.
wiki.pages=Strony
wiki.last_updated=Ostatnia aktualizacja %s
@@ -572,26 +696,61 @@ settings.collaboration.admin=Administrator
settings.collaboration.write=Zapis
settings.collaboration.read=Odczyt
settings.collaboration.undefined=Niezdefiniowany
settings.branches=Gałęzie
settings.branches_bare=Nie można zarządzać pustym repozytorium bare. Proszę wypchnąć najpierw dowolną zawartość.
settings.default_branch=Domyślna gałąź
settings.default_branch_desc=Domyślna gałąź jest uważana za podstawową gałąź dla wypychania zmian, pull requestów i edycji online.
settings.update=Aktualizuj
settings.update_default_branch_unsupported=Zmiana domyślnej gałęzi nie jest obsługiwana przez wersję Git na serwerze.
settings.update_default_branch_success=Domyślny gałąź repozytorium została pomyślnie zaktualizowana!
settings.protected_branches=Chronione gałęzie
settings.protected_branches_desc=Chroń gałąź z wymuszonego pchania, przypadkowych usunięć i białych listy z prawami zmian w kodzie.
settings.choose_a_branch=Wybierz gałąź...
settings.branch_protection=Ochrona gałęzi
settings.branch_protection_desc=Proszę wybrać opcje zabezpieczeń dla gałęzi <b>%s</b>.
settings.protect_this_branch=Chroń tą gałąź
settings.protect_this_branch_desc=Wyłącz wymuszanie wypchnięć zmian i zabroń usuwania.
settings.protect_require_pull_request=Wymagane utworzenie Pull Requesta zamiast bezpośredniego wypchnięcia
settings.protect_require_pull_request_desc=Włącz tę opcję aby wyłączyć bezpośrednie pchanie do tej gałęzi. Zmiany muszą być wypychane do innej niechronionej gałęzi i scalone z tą gałęzią, za pośrednictwem Pull Requesta.
settings.protect_whitelist_committers=Biała lista, kto może wypychać do tej gałęzi
settings.protect_whitelist_committers_desc=Dodaj osoby lub zespoły do białej listy wypychających, do tej gałęzi. Użytkownicy z białej listy nie będą czekać na zatwierdzenie pull requesta.
settings.protect_whitelist_users=Użytkownicy, którzy mogą popchnąć do tej gałęzi
settings.protect_whitelist_search_users=Szukaj użytkowników
settings.protect_whitelist_teams=Zespoły, których członkowie mogą popchnąć do tej gałęzi
settings.protect_whitelist_search_teams=Szukaj drużyn
settings.update_protect_branch_success=Opcje zabezpieczeń dla tej gałęzi zostały pomyślnie zaktualizowane!
settings.hooks=Webhooki
settings.githooks=Hooki Git
settings.basic_settings=Ustawienia podstawowe
settings.mirror_settings=Kopia lustrzana ustawień
settings.sync_mirror=Synchronizuj teraz
settings.mirror_sync_in_progress=Synchronizacja kopii lustrzanej jest w toku, odśwież stronę w ciągu minuty.
settings.site=Oficjalna Strona
settings.update_settings=Aktualizuj ustawienia
settings.change_reponame_prompt=Zmiana nazwy repozytorium wpłynie na linki do niego.
settings.advanced_settings=Ustawienia zaawansowane
settings.wiki_desc=Włączenie Wiki pozwoli innym pisać dokumenty
settings.wiki_desc=Włącz system wiki
settings.use_internal_wiki=Użyj wbudowanego wiki
settings.allow_public_wiki_desc=Umożliw publiczny dostęp do wiki, gdy repozytorium jest prywatne
settings.use_external_wiki=Użyj zewnętrznego Wiki
settings.external_wiki_url=Adres URL zewnętrznego Wiki
settings.external_wiki_url_desc=Odwiedzający zostaną przekierowani do adresu URL po kliknięciu zakładki.
settings.issues_desc=Włącz wbudowany lekki system zgłaszania problemów
settings.issues_desc=Włącz system zgłaszania problemów
settings.use_internal_issue_tracker=Użyj wbudowany lekki system zgłaszania problemów
settings.allow_public_issues_desc=Umożliw publiczny dostęp do zagadnień, gdy repozytorium jest prywatne
settings.use_external_issue_tracker=Użyj zewnętrznego systemu zgłaszania problemów
settings.external_tracker_url=URL zewnętrznego trackera zagadnień
settings.external_tracker_url_desc=Odwiedzający zostaną przekierowani do adresu URL po kliknięciu zakładki.
settings.tracker_url_format=Format dla adresu URL zewnętrznego systemu
settings.tracker_issue_style=Styl nazw zewnętrznego systemu zgłaszania problemów:
settings.tracker_issue_style.numeric=Numeryczny
settings.tracker_issue_style.alphanumeric=Alfanumeryczne
settings.tracker_url_format_desc=Symbole zastępcze <code>{user} {repo} {index}</code> mogą być użyte dla nazwy użytkownika, nazwy repozytorium i numeru problemu.
settings.pulls_desc=Włącz obsługę pull request, aby akceptować publiczny wkład
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignoruj zmiany w białych znakach
settings.pulls.allow_rebase_merge=Zezwalaj na użycie rebase do scalenia commitów
settings.danger_zone=Strefa niebezpieczeństwa
settings.cannot_fork_to_same_owner=Nie można sforkować repozytorium do pierwotnego właściciela.
settings.new_owner_has_same_repo=Nowy właściciel już posiada repozytorium o tej samej nazwie.
settings.convert=Konwersja na repozytorium regularne
settings.convert_desc=Możesz przekonwertować ten mirror na repozytorium regularne. Ta czynność nie może być odwrócona.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Ten użytkownik nie będzie miał dostępu w
settings.remove_collaborator_success=Współpracownik został usunięty.
settings.search_user_placeholder=Szukaj użytkownika...
settings.org_not_allowed_to_be_collaborator=Organizacji nie można dodać jako współpracownika.
settings.user_is_org_member=Użytkownik jest członkiem organizacji, który nie może być dodany jako współpracownik.
settings.add_webhook=Dodaj webhooka
settings.hooks_desc=Webooki działają tak jak proste wywołania HTTP POST. Jeśli cokolwiek zdarzy się w Gogs, wyślemy powiadomienie do wybranego hosta. Więcej informacji można znaleźć w <a target="_blank" href="%s">przewodniku webhooków</a>.
settings.webhook_deletion=Usuń webhooka
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Webhook został pomyślnie usunięty!
settings.webhook.test_delivery=Testuj dostawę
settings.webhook.test_delivery_desc=Wyślij fałszywe zdarzenie push aby przetestować ustawienie webhooka
settings.webhook.test_delivery_success=Testowy webhook został dodany do kolejki dostawy. To może zająć kilka sekund, zanim to pojawia się w historii dostawy.
settings.webhook.redelivery=Redystrybucja
settings.webhook.redelivery_success=Zadanie '%s' zostało ponownie dodane do kolejki. Może upłynąć kilka sekund, aby zaktualizować jego status w historii.
settings.webhook.request=Żądanie
settings.webhook.response=Odpowiedź
settings.webhook.headers=Nagłówki
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Wyślemy żądanie <code>POST</code> pod poniższy adr
settings.payload_url=URL do wywołania
settings.content_type=Typ zawartości
settings.secret=Sekret
settings.secret_desc=Sekret zostanie wysłany jako SHA256 HMAC hex digest of payload z nagłówkiem <code>X-Gogs-Signature</code>.
settings.slack_username=Użytkownik
settings.slack_icon_url=Adres URL ikony
settings.slack_color=Kolor
@@ -658,8 +819,20 @@ settings.event_send_everything=Potrzebuję <strong>wszystkiego</strong>.
settings.event_choose=Pozwól mi wybrać, czego potrzebuję.
settings.event_create=Utwórz
settings.event_create_desc=Utworzono gałąź lub tag
settings.event_delete=Usuń
settings.event_delete_desc=Gałąź lub tag usunięty
settings.event_fork=Forkuj
settings.event_fork_desc=Repozytorium zforkowane
settings.event_push=Wypchnięcie
settings.event_push_desc=Wypchnięcie (push) do repozytorium Git
settings.event_issues=Zagadnienia
settings.event_issues_desc=Zagadnienie otwarte, zamknięte, ponownie otwarte, wyedytowane, przypisane, nieprzypisane, etykieta uaktualniona, etykieta wyczyszczona, kamień milowy, kamień milowy usunięty.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request otwarty, zamknięty, ponownie otwarty, edytowany, przypisany, nieprzypisany, etykieta zaktualizowana, etykieta wyczyszczona, kamień milowy, kamień milowy wyczyszczony; lub zsynchronizowany.
settings.event_issue_comment=Komentarz zagadnienia
settings.event_issue_comment_desc=Komentarz zagadnienia utworzony, wyedytowany lub usunięty.
settings.event_release=Wydanie
settings.event_release_desc=Wydanie opublikowane w repozytorium.
settings.active=Aktywny
settings.active_helper=Dostarczymy szczegóły zdarzenia, gdy ten webhook zostanie wywołany.
settings.add_hook_success=Nowy webhook został dodany.
@@ -669,10 +842,13 @@ settings.delete_webhook=Usuń webhook
settings.recent_deliveries=Ostatnie wywołania
settings.hook_type=Typ hooka
settings.add_slack_hook_desc=Dodaj integrację ze <a href="%s">Slackiem</a> do Twojego repozytorium.
settings.add_discord_hook_desc=Dodaj integrację <a href="%s">Discord</a> do Twojego repozytorium.
settings.add_dingtalk_hook_desc=Dodaj integrację <a href="%s">Dingtalk</a> do Twojego repozytorium.
settings.slack_token=Token
settings.slack_domain=Domena
settings.slack_channel=Kanał
settings.deploy_keys=Klucze wdrożeniowe
settings.deploy_keys_helper=<b>TIP!</b> Jeśli szukasz dodawanie osobistych kluczy publicznych, dodaj je proszę w <a href="%s%s">ustawieniach konta</a>.
settings.add_deploy_key=Dodaj klucz wdrożenia
settings.deploy_key_desc=Klucze wdrożenia pozwalają na dostęp tylko do odczytu. To nie to samo co klucze SSH dla konta osobistego.
settings.no_deploy_keys=Nie dodałeś żadnego klucza wdrożenia.
@@ -684,6 +860,8 @@ settings.add_key_success=Nowy klucz wdrożenia '%s' został pomyślnie dodany!
settings.deploy_key_deletion=Utwórz klucz wdrożenia
settings.deploy_key_deletion_desc=Usunięcie tego klucza wdrożenia spowoduje usunięcie powiązanego dostępu do tego repozytorium. Czy chcesz kontynuować?
settings.deploy_key_deletion_success=Klucz wdrożenia został pomyślnie usunięty!
settings.description_desc=Opis repozytorium. Maksymalnie 512 znaków.
settings.description_length=Dostępne znaki
diff.browse_source=Przeglądaj źródła
diff.parent=rodzic
@@ -702,7 +880,6 @@ release.releases=Wydania
release.new_release=Nowe wydanie
release.draft=Szkic
release.prerelease=Wersja wstępna
release.stable=Stabilny
release.edit=edytuj
release.ahead=<strong>%d</strong> commitów w %s od tego wydania
release.source_code=Kod źródłowy
@@ -749,8 +926,9 @@ team_name_helper=Będziesz używał tej nazwy do wywoływania tego zespołu w dy
team_desc_helper=Czym zajmuje się ten zespół?
team_permission_desc=Jaki poziom uprawnień powinien mieć ten zespół?
form.name_reserved=Nazwa organizacji "%s" jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy organizacji "%s" jest niedozwolony.
form.name_reserved=Nazwa organizacji %s jest zarezerwowana.
form.name_pattern_not_allowed=Wzorzec nazwy organizacji %s jest niedozwolony.
form.team_name_reserved=Nazwa zespołu '%s' jest zarezerwowana.
settings=Ustawienia
settings.options=Opcje
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Usuń śmieci z repozytoriów
dashboard.git_gc_repos_success=Wszystkie repozytoria zakończyły odśmiecanie pomyślnie.
dashboard.resync_all_sshkeys=Przeładuj klucze publiczne w pliku '.ssh/authorized_keys' (uwaga: klucze poza Gogs zostaną usunięte)
dashboard.resync_all_sshkeys_success=Przeładowanie kluczy publicznych zakończyło się sukcesem.
dashboard.resync_all_update_hooks=Przepisz pliki update hook repozytoriów (wymagane przy zmianie ścieżki do pliku konfiguracji)
dashboard.resync_all_update_hooks_success=Wszystkie pliki update hook repozytoriów zostały pomyślnie przepisane.
dashboard.resync_all_hooks=Ponowa synchronizacja wpływa na wypychanie, aktualizowanie i odbieranie zmian we wszystkich repozytoriach
dashboard.resync_all_hooks_success=Ponowa synchronizacja została wykonana pomyślnie we wszystkich repozytoriach.
dashboard.reinit_missing_repos=Ponownie inicjalizuj wszystkie repozytoria, które straciły pliki Git
dashboard.reinit_missing_repos_success=Wszystkie repozytoria, które straciły pliki Git, zostały ponownie zainicjować pomyślnie.
@@ -917,12 +1095,14 @@ repos.private=Prywatne
repos.watches=Obserwujących
repos.stars=Polubienia
repos.issues=Problemy
repos.size=Rozmiar
auths.auth_manage_panel=Panel zarządzania uwierzytelnianiem
auths.auth_sources=Źródła uwierzytelniania
auths.new=Dodaj nowe źródło
auths.name=Nazwa
auths.type=Typ
auths.enabled=Włączono
auths.default=Domyślne
auths.updated=Zaktualizowano
auths.auth_type=Typ uwierzytelniania
auths.auth_name=Nazwa uwierzytelniania
@@ -931,6 +1111,7 @@ auths.domain=Domena
auths.host=Host
auths.port=Port
auths.bind_dn=Bind DN
auths.bind_dn_helper=Możesz użyć '%s' jako symbol zastępczy dla nazwy użytkownika, np. DOM\%s
auths.bind_password=Hasło Bind
auths.bind_password_helper=Ostrzeżenie: To hasło jest przechowywane w postaci zwykłego tekstu. Nie należy używać wysoko uprzywilejowanego konta.
auths.user_base=Baza wyszukiwania
@@ -940,6 +1121,11 @@ auths.attribute_username_placeholder=Zostaw puste aby użyć wartości podanej p
auths.attribute_name=Atrybut imienia
auths.attribute_surname=Atrybut nazwiska
auths.attribute_mail=Atrybut e-mail
auths.verify_group_membership=Sprawdź członkostwo w grupie
auths.group_search_base_dn=Grupa wyszukiwania Base DN
auths.group_filter=Filtr grupy
auths.group_attribute_contain_user_list=Atrybut grupy zawierający listę użytkowników
auths.user_attribute_listed_in_group=Atrybut użytkownika wymieniony w grupie
auths.attributes_in_bind=Pobierz atrybuty w kontekście Bind DN
auths.filter=Filtr użytkownika
auths.admin_filter=Filtr administratora
@@ -953,9 +1139,9 @@ auths.enable_tls=Włącz szyfrowanie TLS
auths.skip_tls_verify=Pomiń weryfikację protokołu TLS
auths.pam_service_name=Nazwa usługi PAM
auths.enable_auto_register=Włącz automatyczną rejestrację
auths.tips=Wskazówki
auths.edit=Edytuj ustawienia uwierzytelniania
auths.activated=To uwierzytelnienie zostało aktywowane
auths.default_auth=To uwierzytelnianie jest domyślnym źródłem logowania
auths.new_success=Pomyślnie dodano nowe uwierzytelnianie '%s'.
auths.update_success=Ustawienia uwierzytelnienia zostały zaktualizowane pomyślnie.
auths.update=Aktualizuj ustawienia uwierzytelniania
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Usunięcie uwierzytelnienia
auths.delete_auth_desc=To uwierzytelnienie zostanie usunięte, czy chcesz kontynuować?
auths.still_in_used=Ten rodzaj autentykacji jest wciąż wykorzystywany przez niektórych użytkowników. Usuń lub przekonwertuj użytkowników, aby wykorzystywali inny typ logowania.
auths.deletion_success=Uwierzytelnienie zostało usunięte pomyślnie!
auths.login_source_exist=Login '%s' już istnieje.
config.not_set=(nie ustawiono)
config.server_config=Konfiguracja serwera
config.app_name=Nazwa aplikacji
config.app_ver=Wersja aplikacji
@@ -974,10 +1162,9 @@ config.offline_mode=Tryb offline
config.disable_router_log=Wyłącz dziennik routera
config.run_user=Użytkownik uruchomieniowy
config.run_mode=Tryb uruchamienia
config.repo_root_path=Ścieżka repozytoriów
config.git_version=Wersja Git
config.static_file_root_path=Ścieżka plików statycznych
config.log_file_root_path=Ścieżka plików dziennika
config.script_type=Typ skryptu
config.reverse_auth_user=Użytkownik dostarczony przez odwrotne proxy
config.ssh_config=Konfiguracja SSH
@@ -987,20 +1174,35 @@ config.ssh_domain=Domena
config.ssh_port=Port
config.ssh_listen_port=Port nasłuchu
config.ssh_root_path=Ścieżka katalogu głównego
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Ścieżka klucza testowego
config.ssh_keygen_path=Ścieżka generatora ('ssh-keygen')
config.ssh_minimum_key_size_check=Sprawdzanie minimalnej długości klucza
config.ssh_minimum_key_sizes=Minimalne rozmiary kluczy
config.repo_config=Konfiguracja repozytorium
config.repo_root_path=Ścieżka repozytoriów
config.script_type=Typ skryptu
config.repo_force_private=Forsuj tryb prywatny
config.max_creation_limit=Maksymalny limit utworzeń
config.preferred_licenses=Preferowane licencje
config.disable_http_git=Wyłącz HTTP Git
config.enable_local_path_migration=Włącz lokalną ścieżkę migracji
config.commits_fetch_concurrency=Pobieraj zmiany w trybie równoległym
config.http_config=Konfiguracja HTTP
config.http_access_control_allow_origin=Kontrola Dostępu Uwzględnia Źródło
config.db_config=Konfiguracja bazy danych
config.db_type=Typ
config.db_host=Host
config.db_name=Nazwa
config.db_user=Użytkownik
config.db_ssl_mode=Tryb SSL
config.db_ssl_mode_helper=(tylko dla "postgres")
config.db_ssl_mode_helper=(tylko dla postgres)
config.db_path=Ścieżka
config.db_path_helper=(dla "sqlite3" i "tidb")
config.db_path_helper=(dla sqlite3 i tidb)
config.service_config=Konfiguracja usługi
config.register_email_confirm=Wymagaj potwierdzenia e-mail
config.disable_register=Wyłącz rejestrację
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Wyłącz sprawdzanie minimalnego rozmiaru klucza
config.enable_captcha=Włącz Captcha
config.active_code_lives=Ważność kodów aktywacyjnych
config.reset_password_code_lives=Czas życia kodu resetowania hasła
config.webhook_config=Konfiguracja webhooka
config.queue_length=Długość kolejki
config.deliver_timeout=Limit czasu zdarzenia
config.skip_tls_verify=Pomiń weryfikację protokołu TLS
config.mailer_config=Konfiguracja poczty
config.mailer_enabled=Aktywne
config.mailer_disable_helo=Wyłącz HELO
config.mailer_name=Nazwa
config.mailer_subject_prefix=Prefiks tematu
config.mailer_host=Host
config.mailer_user=Użytkownik
config.send_test_mail=Wyślij email testowy
config.test_mail_failed=Nieudane wysłanie wiadomości email do '%s': %v
config.test_mail_sent=Testowa wiadomość email została wysłana do '%s'.
config.oauth_config=Konfiguracja OAuth
config.oauth_enabled=Aktywne
config.cache_config=Konfiguracja cache
config.cache_adapter=Adapter cache
config.cache_interval=Interwał pamięci podręcznej
config.cache_conn=Połączenie z pamięcią podręczną
config.session_config=Konfiguracja sesji
config.session_provider=Dostawca sesji
config.provider_config=Konfiguracja dostawcy
@@ -1039,11 +1246,27 @@ config.gc_interval_time=Interwał odśmiecania
config.session_life_time=Czas życia sesji
config.https_only=Tylko HTTPS
config.cookie_life_time=Czas życia ciasteczka
config.picture_config=Ustawienia obrazów
config.picture_service=Serwis obrazów
config.disable_gravatar=Wyłącz Gravatara
config.enable_federated_avatar=Włącz zewnętrzne avatary
config.git_config=Konfiguracja Git
config.git_disable_diff_highlight=Wyłączyć wyróżnianie składni diff
config.git_max_diff_lines=Maksymalna ilość linii diff (dla pojedynczego pliku)
config.git_max_diff_line_characters=Maksymalna ilość znaków diff (dla pojedynczego pliku)
config.git_max_diff_files=Maksymalna ilość plików diff (które zostaną wyświetlone)
config.git_gc_args=Argumenty GC
config.git_migrate_timeout=Limit czasu migracji
config.git_mirror_timeout=Limit czasu aktualizacji kopii lustrzanej
config.git_clone_timeout=Limit czasu operacji klonowania
config.git_pull_timeout=Limit czasu dla operacji pull
config.git_gc_timeout=Limit czasu odśmiecania pamięci
config.log_config=Konfiguracja dziennika
config.log_mode=Tryb dziennika
config.log_mode=Tryb
config.log_options=Ustawienia
monitor.cron=Zadania cron
monitor.name=Nazwa
@@ -1074,17 +1297,24 @@ notices.delete_success=Powiadomienia systemowe zostały pomyślnie usunięte.
create_repo=tworzy repozytorium <a href="%s">%s</a>
rename_repo=zmienia nazwę repozytorium <code>%[1]s</code> na <a href="%[2]s">%[3]s</a>
commit_repo=wypycha do <a href="%[1]s/src/%[2]s">%[3]s</a> w <a href="%[1]s">%[4]s</a>
compare_commits=Zobacz porównanie tych %d commitów
transfer_repo=przenosi repozytorium <code>%s</code> do <a href="%s">%s</a>
create_issue=`zgłasza problem <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`zamknięcie problemu <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`ponowne otwarcie problemu <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`komentuje problem <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`tworzy pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`zamknięcie pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`ponowne otwarcie pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`komentuje problem <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`scala pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=przenosi repozytorium <code>%s</code> do <a href="%s">%s</a>
create_branch=stworzył nową gałąź <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=usunął gałąź <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=taguje <a href="%s/src/%s">%[2]s</a> w <a href="%[1]s">%[3]s</a>
compare_commits=Zobacz porównanie tych %d commitów
delete_tag=usunięty tag <code>%[2]s</code> % <a href="%[1]s">[3]s</a>
fork_repo=rozwidlone repozytorium do <a href="%s"> %s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=temu

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ home=Главная
dashboard=Панель управления
explore=Обзор
help=Помощь
sign_in=Войти
sign_in=Вход
sign_out=Выход
sign_up=Регистрация
register=Регистрация
@@ -27,7 +27,7 @@ repository=Репозиторий
organization=Организация
mirror=Зеркало
new_repo=Новый репозиторий
new_migrate=Новая Миграция
new_migrate=Новая миграция
new_mirror=Новое зеркало
new_fork=Новое ответвление репозитория
new_org=Новая организация
@@ -48,7 +48,7 @@ cancel=Отмена
install=Установка
title=Установочные шаги для первого запуска
docker_helper=Если вы запускаете Gogs внутри Docker, пожалуйста прочтите <a target="_blank" href="%s">эти советы</a> внимательно перед тем как что-либо изменить на этой странице!
requite_db_desc=Gogs требует MySQL, PostgreSQL, SQLite3 или TiDB.
requite_db_desc=Gogs требует наличия MySQL, PostgreSQL, SQLite3, MSSQL или TiDB.
db_title=Настройки базы данных
db_type=Тип базы данных
host=Хост
@@ -58,9 +58,8 @@ db_name=Имя базы данных
db_helper=Для MySQL используйте тип таблиц InnoDB с кодировкой utf8_general_ci.
ssl_mode=Режим SSL
path=Путь
sqlite_helper=Путь к файлу базы данных SQLite3 или TiDB. <br>Укажите абсолютный путь при запуске в качестве службы.
err_empty_db_path=Путь к базе данных SQLite3 или TiDB не может быть пустым.
err_invalid_tidb_name=Имя базы данных TiDB не может содержать символы "." и "-".
sqlite_helper=Путь к файлу базы данный SQLite3. <br>Пожалуйста, используйте абсолютный путь если Gogs запускается как сервис.
err_empty_db_path=Путь к файлу базы данных SQLite3 не может быть пустым.
no_admin_and_disable_registration=Вы не можете отключить регистрацию до создания учетной записи администратора.
err_empty_admin_password=Пароль администратора не может быть пустым.
@@ -75,12 +74,16 @@ domain=Домен
domain_helper=Влияет на URL-адреса для клонирования по SSH.
ssh_port=SSH порт
ssh_port_helper=Номер порта, который использует SSH сервер. Оставьте пустым, чтобы отключить SSH.
use_builtin_ssh_server=Использовать встроенный SSH сервер
use_builtin_ssh_server_popup=Запустить встроенный SSH сервер для различения операций Git и системного демона SSH.
http_port=Порт HTTP
http_port_helper=Номер порта, который приложение будет слушать.
app_url=URL приложения
app_url_helper=Этот параметр влияет на URL для клонирования по HTTP/HTTPS и на адреса в электронной почте.
log_root_path=Путь к журналу
log_root_path_helper=Каталог для записи файлов журнала.
enable_console_mode=Включите режим консоли
enable_console_mode_popup=В дополнение к файловому режиму, выводить лог в консоль.
optional_title=Расширенные настройки
email_title=Настройки службы электронной почты
@@ -95,7 +98,9 @@ server_service_title=Сервер и другие настройки служб
offline_mode=Включение офлайн режима
offline_mode_popup=Отключить CDN даже в производственном режиме, все файлы ресурсов будут раздаваться локально.
disable_gravatar=Отключить службу Gravatar
disable_gravatar_popup=Отключить Gravatar и пользовательские источники, все аватары по-умолчанию загружаются пользователями.
disable_gravatar_popup=Отключить Gravatar и пользовательские источники. Используются аватары, загружаемые пользователями, или аватары по умолчанию.
federated_avatar_lookup=Включить поиск внешних Аватаров
federated_avatar_lookup_popup=Включите Поиск федеративного аватара для использования федеративной службы с открытым исходным кодом на основе libravatar.
disable_registration=Отключить самостоятельную регистрацию
disable_registration_popup=Запретить пользователям самостоятельную регистрацию, только администратор может создавать аккаунты.
enable_captcha=Включить капчу
@@ -114,6 +119,8 @@ sqlite3_not_available=Ваша версия не поддерживает SQLite
invalid_db_setting=Настройки базы данных не правильные: %v
invalid_repo_path=Недопустимый путь к корню репозитория: %v
run_user_not_match=Текущий пользователь не является пользователем для запуска: %s -> %s
smtp_host_missing_port=Не указан порт в адресе хоста SMTP.
invalid_smtp_from=Поле SMTP From неправильное: %v
save_config_failed=Не удалось сохранить конфигурацию: %v
invalid_admin_setting=Указан недопустимый параметр учетной записи администратора: %v
install_success=Добро пожаловать! Мы рады, что вы выбрали Gogs. Веселитесь и берегите себя.
@@ -124,7 +131,7 @@ uname_holder=Имя пользователь или E-mail
password_holder=Пароль
switch_dashboard_context=Переключить контекст панели управления
my_repos=Мои репозитории
show_more_repos=Show more repositories...
show_more_repos=Показать больше репозиториев...
collaborative_repos=Совместные репозитории
my_orgs=Мои организации
my_mirrors=Мои зеркала
@@ -135,6 +142,7 @@ issues.in_your_repos=В ваших репозиториях
[explore]
repos=Репозитории
users=Пользователи
organizations=Организации
search=Поиск
[auth]
@@ -143,18 +151,19 @@ register_hepler_msg=Уже есть аккаунт? Авторизуйтесь!
social_register_hepler_msg=Уже есть учетная запись? Свяжите ее с соцсетью!
disable_register_prompt=Извините, возможность регистрации отключена. Пожалуйста, свяжитесь с администратором сайта.
disable_register_mail=К сожалению подтверждение регистрации по почте отключено.
auth_source=Тип аутентификации
local=Локальный
remember_me=Запомнить меня
forgot_password=Забыли пароль
forget_password=Забыли пароль?
sign_up_now=Нужен аккаунт? Зарегистрируйтесь.
confirmation_mail_sent_prompt=Новое письмо для подтверждения было направлено на <b>%s</b>, пожалуйста, проверьте ваш почтовый ящик в течение %d часов для завершения регистрации.
active_your_account=Активируйте свой аккаунт
prohibit_login=Login Prohibited
prohibit_login_desc=Your account is prohibited to login, please contact site admin.
resent_limit_prompt=Извините, вы уже запросили активацию по электронной почте недавно. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
prohibit_login=Вход запрещен
prohibit_login_desc=Вход для вашей учетной записи был запрещен, пожалуйста, свяжитесь с администратором сайта.
resent_limit_prompt=Вы уже запрашивали активацию по электронной почте. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (<b>%s</b>). Если вам не приходило письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже.
resend_mail=Нажмите здесь, чтобы переотправить активационное письмо
email_not_associate=Этот адрес электронной почты не связан ни с одной учетной записью.
send_reset_mail=Нажмите сюда, чтобы отправить письмо для сброса пароля
reset_password=Сброс пароля
invalid_code=Извините, ваш код подтверждения истек или не является допустимым.
@@ -162,6 +171,14 @@ reset_password_helper=Нажмите здесь, чтобы сбросить с
password_too_short=Длина пароля не менее 6 символов.
non_local_account=Нелокальные аккаунты не могут изменить пароль через Gogs.
login_two_factor=Двухфакторная аутентификация
login_two_factor_passcode=Код проверки подлинности
login_two_factor_enter_recovery_code=Введите код двухфакторной аутентификации
login_two_factor_recovery=Двухфакторная аутентификация
login_two_factor_recovery_code=Код восстановления
login_two_factor_enter_passcode=Введите код двухфакторной аутентификации
login_two_factor_invalid_recovery_code=Код восстановления был использован или не действителен.
[mail]
activate_account=Пожалуйста активируйте свой аккаунт
activate_email=Подтвердите адрес своей электронной почты
@@ -187,9 +204,17 @@ TeamName=Название команды
AuthName=Имя авторизации
AdminEmail=Электронная почта администратора
NewBranchName=Новая ветка
CommitSummary=Резюме коммита
CommitMessage=Зафиксировать сообщение
CommitChoice=Выбор коммита
TreeName=Путь к файлу
Content=Содержимое
require_error=` не может быть пустым.`
alpha_dash_error=«должен быть допустимым символьным, числовым или dash(-_) значением.»
alpha_dash_dot_error=«должен быть допустимым символьным, числовым или dash(-_) символами, включая точку.»
alpha_dash_dot_slash_error=«должен быть допустимым символьным, числовым или dash(-_) символами, включая точку или слэш.»
size_error=` должен быть размер %s.`
min_size_error=«должен содержать по крайней мере %s символов.»
max_size_error=` должен содержать максимум %s символов.`
@@ -206,6 +231,7 @@ org_name_been_taken=Название организации занято.
team_name_been_taken=Название команды занято.
email_been_used=Адрес электронной почты уже используется.
username_password_incorrect=Имя пользователя или пароль не правильный.
auth_source_mismatch=Выбранный источник проверки подлинности не связан с пользователем.
enterred_invalid_repo_name=Пожалуйста, убедитесь, что введено правильное имя репозитория.
enterred_invalid_owner_name=Убедитесь, что введенное имя владельца верное.
enterred_invalid_password=Убедитесь, что введенный пароль верен.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Имя пользователя «%s» не доп
[settings]
profile=Профиль
password=Пароль
avatar=Аватар
ssh_keys=SSH ключи
social=Учетные записи в соцсетях
applications=Приложения
security=Безопасность
repos=Репозитории
orgs=Организации
applications=Приложения
delete=Удалить аккаунт
uid=UID
public_profile=Открытый профиль
profile_desc=Адрес вашей электронной почты является публичным и будет использован для любых уведомлений, связанных с аккаунтом, а также для любых действий, совершенных через сайт.
@@ -259,6 +286,8 @@ change_username_prompt=Это изменение может повлечь за
continue=Далее
cancel=Отмена
lookup_avatar_by_mail=Найти Аватар по адресу эл. почты
federated_avatar_lookup=Найти внешний Аватар
enable_custom_avatar=Включить собственный аватар
choose_new_avatar=Выбрать новый аватар
update_avatar=Обновить настройку аватара
@@ -308,10 +337,31 @@ no_activity=Еще не применялся
key_state_desc=Этот ключ использовался за последние 7 дней
token_state_desc=Этот токен использовался за последние 7 дней
manage_social=Управление привязанными учетными записями в соцсетях
social_desc=Это список привязанных учетных записей в соцсетях. Удаляйте любые неизвестные вам привязки.
unbind=Отвязать
unbind_success=Социальная учетная запись отвязана.
two_factor=Двухфакторная аутентификация
two_factor_status=Статус:
two_factor_on=Включено
two_factor_off=Выключен
two_factor_enable=Включить
two_factor_disable=Выключить
two_factor_view_recovery_codes=Просмотрите и сохранените <a href="%s%s">коды вашего восстановления</a> в надежном месте. Вы можете использовать их в качестве пароля, если потеряете доступ к приложению.
two_factor_http=Для операций HTTP/HTTPS вы больше не сможете использовать просто имя пользователя и пароль. Пожалуйста, создайте и используйте для подписи ваших запросов <a href="%[1]s%[2]s">Персональный ключ доступа</a>, например, <code>%[3]s</code>.
two_factor_enable_title=Включить двухфакторную аутентификацию
two_factor_scan_qr=Пожалуйста, используйте приложения проверки подлинности для сканирования изображения:
two_factor_or_enter_secret=Или введите кодовое слово:
two_factor_then_enter_passcode=Затем введите пароль:
two_factor_verify=Проверить
two_factor_invalid_passcode=Введенные пароли не совпадают; пожалуйста, повторите попытку!
two_factor_reused_passcode=Введенный вами пароль уже используется, пожалуйста, попробуйте другой!
two_factor_enable_error=Ошибка активация двухфакторной аутентификации: %v
two_factor_enable_success=Двухфакторная аутентификация активирована для вашей учетной записи!
two_factor_recovery_codes_title=Коды восстановления для двухфакторная аутентификации
two_factor_recovery_codes_desc=Коды восстановления должны использоваться, когда у вас нет возможности использовать приложение аутентификации. Каждый код восстановления может быть использован один раз, <b>пожалуйста, держите эти коды в надежном месте</b>.
two_factor_regenerate_recovery_codes=Сгенерировать новые коды восстановления
two_factor_regenerate_recovery_codes_error=Ошибка создания новых кодов восстановления: %v
two_factor_regenerate_recovery_codes_success=Новые коды восстановления созданы!
two_factor_disable_title=Отключить двухфакторную аутентификацию
two_factor_disable_desc=Уровень безопасности вашего аккаунта понизится после отключения двухфакторной аутентификации. Вы хотите продолжить?
two_factor_disable_success=Двухфакторная аутентификация выключена!
manage_access_token=Управление Токенами Персонального Доступа
generate_new_token=Создать новый token
@@ -325,6 +375,15 @@ access_token_deletion=Удаление личного токена доступ
access_token_deletion_desc=Удаление этого персонального токена доступа приведет к удалению всех связанных прав доступа к приложению. Вы хотите продолжить?
delete_token_success=Персональный токен доступа успешно удален! Не забудьте изменить настройки вашего приложения.
orgs.none=Вы не состоите ни в одной организации.
orgs.leave_title=Покинуть организацию
orgs.leave_desc=Вы потеряете доступ ко всем репозиториям и командам, как только покинете организацию. Вы хотите продолжить?
repos.leave=Выйти
repos.leave_title=Покинуть репозиторий
repos.leave_desc=Вы потеряете доступ к репозиторию, после того, как вы его покинете. Вы хотите продолжить?
repos.leave_success=Вы покинули репозиторий «%s» успешно!
delete_account=Удалить свой аккаунт
delete_prompt=Этим действием вы удалите свою учетную запись навсегда и <strong>НЕ СМОЖЕТЕ</strong> ее вернуть!
confirm_delete_account=Подтвердите удаление
@@ -345,7 +404,7 @@ fork_from=Ответвление от
fork_visiblity_helper=Ответвленному репозиторию нельзя поменять уровень видимости
repo_desc=Описание
repo_lang=Язык
repo_lang_helper=Выберите файлы .gitignore
repo_gitignore_helper=Выберите шаблоны .gitignore
license=Лицензия
license_helper=Выберите файл лицензии
readme=Readme
@@ -354,13 +413,16 @@ auto_init=Инициализировать этот репозиторий вы
create_repo=Создать репозиторий
default_branch=Ветка по умолчанию
mirror_prune=Очистить
mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
mirror_prune_desc=Удалите ссылки на удаленно отслеживаемые объекты, которых больше нет на удаленном сервере
mirror_interval=Интервал зеркалирования (час)
mirror_address=Адрес зеркала
mirror_address_desc=Укажите необходимые учетные данные в адрес.
mirror_last_synced=Последняя синхронизация
watchers=Наблюдатели
stargazers=Звездочеты
forks=Ответвления
repo_description_helper=Описание репозитория. Максимальная длина 512 символов.
repo_description_length=Доступные символы
form.reach_limit_of_creation=У владельца достигнут максимальный предел в %d создаваемых репозиториев.
form.name_reserved=Имя репозитория '%s' зарезервировано.
@@ -371,14 +433,14 @@ migrate_type=Тип миграции
migrate_type_helper=Этот репозиторий будет <span class="text blue">зеркалом</span>
migrate_repo=Перенос репозитория
migrate.clone_address=Скопировать адрес
migrate.clone_address_desc=Это может быть HTTP/HTTPS/GIT адрес или локальный путь на сервере.
migrate.clone_address_desc=Это может быть HTTP/HTTPS/GIT URL-адрес.
migrate.clone_address_desc_import_local=Вы также можете мигрировать репозиторий по локальному пути на сервере.
migrate.permission_denied=У вас нет прав на импорт локальных репозиториев.
migrate.invalid_local_path=Недопустимый локальный путь. Возможно он не существует или является не папкой.
migrate.failed=Миграция не удалась: %v
mirror_from=зеркало из
forked_from=ответвлено от
fork_from_self=Вы не можете ответвить репозиторий, так как Вы уже его владелец!
copy_link=Скопировать
copy_link_success=Скопировано!
copy_link_error=Нажмите ⌘-C или Ctrl-C для копирования
@@ -394,9 +456,9 @@ quick_guide=Краткое руководство
clone_this_repo=Клонировать репозиторий
create_new_repo_command=Создать новый репозиторий из командной строки
push_exist_repo=Отправить существующий репозиторий из командной строки
repo_is_empty=Этот репозиторий пуст, пожалуйста, возвращайтесь позже!
bare_message=В репозитории еще нет файлов.
code=Код
files=Файлы
branch=Ветка
tree=Дерево
filter_branch_and_tag=Фильтр по ветке или тегу
@@ -407,13 +469,63 @@ pulls=Запросы на слияние
labels=Метки
milestones=Этапы
commits=Коммиты
git_branches=Ветки
releases=Релизы
file_raw=Исходник
file_history=История
file_view_raw=Посмотреть исходник
file_permalink=Постоянная ссылка
file_too_large=This file is too large to be shown
file_too_large=Этот файл слишком большой, поэтому он не может быть отображен
video_not_supported_in_browser=Ваш браузер не поддерживает HTML5 видео тэг.
branches.overview=Обзор
branches.active_branches=Активные ветки
branches.stale_branches=Устаревшие ветки
branches.all=Все ветки
branches.updated_by=Обновлено %[1]s пользователем %[2]s
branches.change_default_branch=Change Default Branch
editor.new_file=Новый файл
editor.upload_file=Загрузить файл
editor.edit_file=Редактировать файл
editor.preview_changes=Просмотр изменений
editor.cannot_edit_non_text_files=Возможно редактировать только текстовые файлы
editor.edit_this_file=Отредактируйте этот файл
editor.must_be_on_a_branch=Чтобы сделать или предложить изменения вы должны выбрать ветку
editor.fork_before_edit=Создайте ветку репозитория перед редактированием файла
editor.delete_this_file=Удалить файл
editor.must_have_write_access=Вам необходимо иметь доступ на запись, чтобы вносить или предлагать правки этого файла
editor.file_delete_success=Файл «%s» был успешно удален!
editor.name_your_file=Назовите свой файл...
editor.filename_help=Чтобы добавить каталог, просто наберите название и нажмите /. Чтобы удалить каталог, перейдите к началу поля и нажмите клавишу backspace.
editor.or=или
editor.cancel_lower=отмена
editor.commit_changes=Фиксация изменений
editor.add_tmpl=Добавить '%s/<filename>'
editor.add=Добавить '%s'
editor.update=Обновить '%s'
editor.delete=Удалить '%s'
editor.commit_message_desc=Добавьте необязательное расширенное описание...
editor.commit_directly_to_this_branch=Сделайте коммит прямо в ветку <strong class="branch-name">%s</strong>.
editor.create_new_branch=Создайте <strong>новую ветвь</strong> для этого коммита, и сделайте пул запрос.
editor.new_branch_name_desc=Новое название ветки...
editor.cancel=Отмена
editor.filename_cannot_be_empty=Имя файла не может быть пустым.
editor.branch_already_exists=Ветка «%s» уже существует в этом репозитории.
editor.directory_is_a_file=Запись «%s» в пути на верх является файлом, а не каталогом этого репозитория.
editor.file_is_a_symlink=Файл '%s' является символической ссылкой, которая не может быть изменена через веб-редактор.
editor.filename_is_a_directory=Файл «%s» является каталогом в этом репозитории.
editor.file_editing_no_longer_exists=Редактируемый вами файл «%s» больше не существует в репозитории.
editor.file_changed_while_editing=Содержимое файла изменилось со времени начала редактирования. <a target="_blank" href="%s"> нажмите здесь,</a> чтобы увидеть, что было изменено, или <strong>нажмите кнопку commit снова</strong>, чтобы перезаписать эти изменения.
editor.file_already_exists=Файл с именем «%s» уже существует в этом репозитории.
editor.no_changes_to_show=Нет изменений.
editor.fail_to_update_file=Не удалось обновить/создать файл «%s» из-за ошибки: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Добавьте подкаталог...
editor.unable_to_upload_files=Не удалось загрузить файлы в «%s» из-за ошибки: %v
editor.upload_files_to_dir=Загрузить файлы '%s'
commits.commit_history=История коммитов
commits.commits=Коммиты
commits.search=Поиск коммитов
commits.find=Найти
@@ -439,6 +551,11 @@ issues.create=Добавить задачу
issues.new_label=Новая метка
issues.new_label_placeholder=Имя метки...
issues.create_label=Добавить метку
issues.label_templates.title=Загрузить набор предопределённых меток
issues.label_templates.info=Меток пока нет. Вы можете нажать на кнопку «Создать метку», чтобы создать новую или использовать одну из готового набора ниже.
issues.label_templates.helper=Выберите метку
issues.label_templates.use=Использовать ярлык
issues.label_templates.fail_to_load_file=Не удалось загрузить файл шаблона метки «%s»: %v
issues.open_tab=%d открыто(ы)
issues.close_tab=%d закрыто(ы)
issues.filter_label=Метка
@@ -466,8 +583,8 @@ issues.next=Следующая страница
issues.open_title=Открыто
issues.closed_title=Закрыто
issues.num_comments=комментариев: %d
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.delete_comment_confirm=Are you sure you want to delete this comment?
issues.commented_at=`прокомментировал <a href="#%s"> %s</a>`
issues.delete_comment_confirm=Вы уверены, что хотите удалить этот комментарий?
issues.no_content=Пока нет содержимого.
issues.close_issue=Закрыть
issues.close_comment_issue=Прокомментировать и закрыть
@@ -480,8 +597,7 @@ issues.commit_ref_at=`упомянул эту задачу в коммите <a
issues.poster=Автор
issues.collaborator=Соавтор
issues.owner=Владелец
issues.sign_up_for_free=Зарегистрируйтесь бесплатно
issues.sign_in_require_desc=чтобы присоединиться к обсуждению. Уже есть аккаунт? <a href="%s">Войдите чтобы прокомментировать</a>
issues.sign_in_require_desc=<a href="%s">Войдите</a>, чтобы присоединиться к обсуждению.
issues.edit=Изменить
issues.cancel=Отмена
issues.save=Сохранить
@@ -496,6 +612,8 @@ issues.label_deletion=Удаление метки
issues.label_deletion_desc=Удаление ярлыка затронет все связанные задачи. Продолжить?
issues.label_deletion_success=Метка была удалена успешно!
issues.num_participants=%d участников
issues.attachment.open_tab=`Нажмите, чтобы увидеть "%s" в новой вкладке`
issues.attachment.download=`Нажмите, чтобы скачать "%s"`
pulls.new=Новый запрос на слияние
pulls.compare_changes=Сравнить изменения
@@ -505,6 +623,7 @@ pulls.compare_compare=сравнить
pulls.filter_branch=Фильтр по ветке
pulls.no_results=Результатов не найдено.
pulls.nothing_to_compare=Нечего сравнивать, родительская и текущая ветка одинаковые.
pulls.nothing_merge_base=Нечего сравнивать, так так история обеих веток полностью отличается.
pulls.has_pull_request=`Уже существует запрос на слияние между двумя целями: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Создать запрос на слияние
pulls.title_desc=хочет смерджить %[1]d коммит(ов) из <code>%[2]s</code> в <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=Продолжается проверка конфликтов
pulls.can_auto_merge_desc=Этот запрос на слияние может быть объединён автоматически.
pulls.cannot_auto_merge_desc=Этот запрос на слияние не может быть объединён автоматически.
pulls.cannot_auto_merge_helper=Пожалуйста, совершите слияние вручную для урегулирования конфликтов.
pulls.create_merge_commit=Создать коммит на слияние
pulls.rebase_before_merging=Выполнить rebase перед слиянием
pulls.commit_description=Описание коммита
pulls.merge_pull_request=Слить пулл-реквест
pulls.open_unmerged_pull_exists=`Вы не можете снова открыть, поскольку уже существует запрос на слияние (#%d) из того же репозитория с той же информацией о слиянии и ожидающий слияния. `
pulls.delete_branch=Удалить ветку
pulls.delete_branch_has_new_commits=Нельзя удалить ветку, так как она имеет новые коммиты после слияния.
milestones.new=Новая контрольная точка
milestones.open_tab=%d открыты
@@ -572,26 +696,61 @@ settings.collaboration.admin=Администратор
settings.collaboration.write=Запись
settings.collaboration.read=Просмотр
settings.collaboration.undefined=Не определено
settings.branches=Ветки
settings.branches_bare=Вы не можете управлять ветками для пустого репозитория. Пожалуйста, сначала создайте что-нибудь.
settings.default_branch=Ветка по умолчанию
settings.default_branch_desc=Ветка по-умолчанию считается основной для коммитов, запросов на слияние и онлайн-редактирования.
settings.update=Обновить
settings.update_default_branch_unsupported=Изменение ветки по умолчанию не поддерживается в версии Git на сервере.
settings.update_default_branch_success=Ветка по умолчанию для этого репозитория была успешно изменена!
settings.protected_branches=Защищенные ветки
settings.protected_branches_desc=Защитить ветки от принудительного push, случайного удаления и разрешить изменения только коммитерам из белого списка.
settings.choose_a_branch=Выберите ветку...
settings.branch_protection=Защита веток
settings.branch_protection_desc=Пожалуйста, выберите параметры защиты для ветки <b>%s</b>.
settings.protect_this_branch=Защитить эту ветку
settings.protect_this_branch_desc=Выключить принудительный push и защитить от удаления.
settings.protect_require_pull_request=Требовать запрос на слияние вместо прямого push
settings.protect_require_pull_request_desc=Включите этот параметр для запрета прямого push в это ветку. Коммит должен быть запушен в незащищенную ветку и слит в эту ветку через запрос на слияние.
settings.protect_whitelist_committers=Белый список тех, кто может делать push в эту ветку
settings.protect_whitelist_committers_desc=Добавьте людей или команды в белый список для прямого доступа к этой ветке. Пользователи из белого списка будут обходить проверку pull request.
settings.protect_whitelist_users=Пользователи которые могут делать push в эту ветку
settings.protect_whitelist_search_users=Поиск пользователей
settings.protect_whitelist_teams=Команды, члены которых могут делать push в эту ветку
settings.protect_whitelist_search_teams=Поиск команд
settings.update_protect_branch_success=Параметры защиты этой ветки были успешно обновлены!
settings.hooks=Автоматическое обновление
settings.githooks=Git хуки
settings.basic_settings=Основные параметры
settings.mirror_settings=Настройки Зеркала
settings.sync_mirror=Синхронизировать
settings.mirror_sync_in_progress=Выполняется синхронизация Зеркала, пожалуйста, обновите эту страницу через минуту.
settings.site=Официальный сайт
settings.update_settings=Обновить настройки
settings.change_reponame_prompt=Это изменение повлияет на отношения ссылок к этому репозиторию.
settings.advanced_settings=Расширенные настройки
settings.wiki_desc=Включить Вики, чтобы позволить людям писать документы
settings.wiki_desc=Включить систему Wiki
settings.use_internal_wiki=Использовать встроенную wiki
settings.allow_public_wiki_desc=Разрешить публичный доступ к wiki-разделу, если репозиторий приватный
settings.use_external_wiki=Использовать внешнюю Wiki
settings.external_wiki_url=URL-адрес внешней Вики
settings.external_wiki_url_desc=Посетители будут перенаправлены на URL-адрес, когда они кликнут по вкладке.
settings.issues_desc=Включить встроенную, легковесную систему отслеживания ошибок
settings.issues_desc=Включить систему отслеживания ошибок
settings.use_internal_issue_tracker=Использовать встроенную легковесную систему отслеживания ошибок
settings.allow_public_issues_desc=Разрешить публичный доступ к вопросам, если репозиторий приватный
settings.use_external_issue_tracker=Использовать внешнюю систему отслеживания ошибок
settings.external_tracker_url=URL внешней системы отслеживания ошибок
settings.external_tracker_url_desc=Посетители будут перенаправлены на URL когда они нажмут на вкладку.
settings.tracker_url_format=Внешний формат ссылки системы отслеживания ошибок.
settings.tracker_issue_style=Стиль Именования Внешней Системы Учета Задач:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_issue_style.numeric=Цифровой
settings.tracker_issue_style.alphanumeric=Буквенноцифровой
settings.tracker_url_format_desc=Вы можете использовать шаблон <code>{user} {repo} {index}</code> для имени пользователя, репозитория и номера задачи.
settings.pulls_desc=Включить публичные запросы на слияние
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Игнорировать изменения в пробельных символах
settings.pulls.allow_rebase_merge=Разрешить rebase-слияние
settings.danger_zone=Опасная зона
settings.cannot_fork_to_same_owner=Вы не можете ответвить репозиторий его же владельцу.
settings.new_owner_has_same_repo=У нового владельца уже есть хранилище с таким названием.
settings.convert=Преобразовать в обычный репозиторий
settings.convert_desc=Это зеркало можно преобразовать в обычный репозиторий. Это не может быть отменено.
@@ -610,10 +769,10 @@ settings.wiki_deletion_success=Данные Вики успешно стерты
settings.delete=Удалить этот репозиторий
settings.delete_desc=Будьте внимательны! Как только вы удалите репозиторий — пути назад не будет.
settings.delete_notices_1=- Эта операция <strong>НЕ МОЖЕТ</strong> быть отменена.
settings.delete_notices_2=- Эта операция навсегда удалит всё из этого репозитория, включая данные Git, связанные с ним задачи, комментарии и права доступа для сотрудников.
settings.delete_notices_2=- Эта операция удалит все в этом репозитории, включая данные Git, задачи, комментарии и доступы для соавторов.
settings.delete_notices_fork_1=- Все отвлетвления станут независимыми после удаления.
settings.deletion_success=Репозиторий был успешно удалён!
settings.update_settings_success=Настройка репозитория обновлена успешно.
settings.update_settings_success=Настройки репозитория обновлены успешно.
settings.transfer_owner=Новый владелец
settings.make_transfer=Выполнить передачу
settings.transfer_succeed=Владение репозиторием было успешно передано.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Этот пользователь больш
settings.remove_collaborator_success=Соавтор был удален.
settings.search_user_placeholder=Поиск пользователя...
settings.org_not_allowed_to_be_collaborator=Организации не могут быть добавлены как соавторы.
settings.user_is_org_member=Пользователь является членом организации, члены которой не могут быть добавлены в качестве соавтора.
settings.add_webhook=Добавить Webhook
settings.hooks_desc=Webhooks позволяют внешним службам получать уведомления при возникновении определенных событий на Gogs. При возникновении указанных событий мы отправим запрос POST на каждый заданный вами URL. Узнать больше можно в нашем <a target="_blank" href="%s">Руководстве по Webhooks</a>.
settings.webhook_deletion=Удалить веб-хук
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Веб-хук успешно удален!
settings.webhook.test_delivery=Проверить доставку
settings.webhook.test_delivery_desc=Отправить push для тестирования настройки веб-хуков
settings.webhook.test_delivery_success=Тест веб-хука была добавлен в очередь доставки. Это может занять несколько секунд, прежде чем он отобразится в истории доставки.
settings.webhook.redelivery=Повторная доставка
settings.webhook.redelivery_success=Хук задачи «%s» было отправлен в очередь доставки. Обновление статуса в истории может занять некоторое время.
settings.webhook.request=Запрос
settings.webhook.response=Ответ
settings.webhook.headers=Заголовки
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Мы отправим запрос <code>POST</code>
settings.payload_url=URL обработчика
settings.content_type=Тип содержимого
settings.secret=Secret
settings.secret_desc=Секрет будет отправлен как SHA256 HMAC контента в шестнадцатеричном виде в заголовке <code>X-Gogs-Signature</code>.
settings.slack_username=Имя пользователя
settings.slack_icon_url=URL иконки
settings.slack_color=Цвет
@@ -658,8 +819,20 @@ settings.event_send_everything=Мне нужно <strong>все</strong>.
settings.event_choose=Позвольте мне выбрать то, что нужно.
settings.event_create=Создать
settings.event_create_desc=Ветка или тэг созданы
settings.event_delete=Удалить
settings.event_delete_desc=Ветка или метка удалена
settings.event_fork=Ответвить
settings.event_fork_desc=Репозиторий склонирован
settings.event_push=Push
settings.event_push_desc=Push в репозиторий
settings.event_issues=Вопросы
settings.event_issues_desc=Задача изменена
settings.event_pull_request=Запросы на слияние
settings.event_pull_request_desc=Запрос слияния открыт, закрыт, переоткрыт, изменён, назначен, снят, метка обновлена, метка убрана, добавлен промежуточный этап, убран промежуточный этап или синхронизирован.
settings.event_issue_comment=Комментарии в задаче
settings.event_issue_comment_desc=Комментарий создан, изменен или удален.
settings.event_release=Релиз
settings.event_release_desc=Релиз опубликован в репозитории.
settings.active=Активен
settings.active_helper=Подробности о событии, вызвавшем срабатывание хука, также будут предоставлены.
settings.add_hook_success=Был добавлен новый webhook.
@@ -669,10 +842,13 @@ settings.delete_webhook=Удалить автоматическое обновл
settings.recent_deliveries=Недавние рассылки
settings.hook_type=Тип перехватчика
settings.add_slack_hook_desc=Добавить интеграцию с <a href="%s">Slack</a> в ваш репозиторий.
settings.add_discord_hook_desc=Добавить интеграцию с <a href="%s">Discord</a> в ваш репозиторий.
settings.add_dingtalk_hook_desc=Добавить интеграцию с <a href="%s">Dingtalk</a> в ваш репозиторий.
settings.slack_token=Token
settings.slack_domain=Домен
settings.slack_channel=Канал
settings.deploy_keys=Ключи развертывания
settings.deploy_keys_helper=<b>Подсказка:</b> если вы хотите добавить личные публичные ключи, сделайте это в <a href="%s%s">настройках вашего аккаунта</a>.
settings.add_deploy_key=Добавить ключ развертывания
settings.deploy_key_desc=Ключи развёртывания доступны только для чтения. Это не то же самое что и SSH-ключи аккаунта.
settings.no_deploy_keys=Вы не добавляли ключи развертывания.
@@ -684,6 +860,8 @@ settings.add_key_success=Новый ключ развертывания '%s' у
settings.deploy_key_deletion=Удалить ключ развертывания
settings.deploy_key_deletion_desc=Удаление ключа развертывания приведет к удалению всех связанных прав доступа к репозиторию. Вы хотите продолжить?
settings.deploy_key_deletion_success=Ключ развертывания успешно удален!
settings.description_desc=Описание репозитория. Максимальная длина 512 символов.
settings.description_length=Доступные символы
diff.browse_source=Просмотр исходного кода
diff.parent=Родитель
@@ -695,14 +873,13 @@ diff.show_unified_view=Единый вид
diff.stats_desc=<strong> %d измененных файлов</strong> с <strong>%d добавлено</strong> и <strong>%d удалено</strong>
diff.bin=BIN
diff.view_file=Просмотреть файл
diff.file_suppressed=File diff suppressed because it is too large
diff.too_many_files=Некоторые файлы не были показать из-за большого количества измененных файлов
diff.file_suppressed=Разница между файлами не показана из-за своего большого размера
diff.too_many_files=Некоторые файлы не были показаны из-за большого количества измененных файлов
release.releases=Релизы
release.new_release=Новый релиз
release.draft=Черновик
release.prerelease=Пре-релиз
release.stable=Стабильный
release.edit=Редактировать
release.ahead=<strong>%d</strong> коммитов %s начиная с этого релиза
release.source_code=Исходный код
@@ -727,7 +904,7 @@ release.deletion=Удаление релиза
release.deletion_desc=Удаление этого релиза удалит соответствующую Git метку. Вы хотите продолжить?
release.deletion_success=Релиз был успешно удален!
release.tag_name_already_exist=Релиз с этим именем метки уже существует.
release.tag_name_invalid=Tag name is not valid.
release.tag_name_invalid=Имя тега является не допустимым.
release.downloads=Загрузки
[org]
@@ -741,7 +918,7 @@ invite_someone=Пригласить кого-нибудь
teams=Команды
lower_members=Участники
lower_repositories=Репозитории
create_new_team=Создать Новую Команду
create_new_team=Создать новую команду
org_desc=Описание
team_name=Название команды
team_desc=Описание
@@ -751,6 +928,7 @@ team_permission_desc=Какой уровень разрешений должен
form.name_reserved=Наименование организации '%s' зарезервированно.
form.name_pattern_not_allowed=Шаблон организации '%s' не допускается.
form.team_name_reserved=Имя команды '%s' зарезервировано.
settings=Настройки
settings.options=Опции
@@ -812,7 +990,7 @@ teams.add_nonexistent_repo=Вы добавляете в отсутствующи
[admin]
dashboard=Панель управления
users=Пользователи
organizations=Организации
organizations=Группы
repositories=Репозитории
authentication=Авторизация
config=Настройки
@@ -841,13 +1019,13 @@ dashboard.git_gc_repos=Выполнить сборку мусора на реп
dashboard.git_gc_repos_success=Сборка мусора на всех репозиториях успешно выполнена.
dashboard.resync_all_sshkeys=Переписать файл «.ssh/authorized_keys» (осторожно: не Gogs ключи будут утеряны)
dashboard.resync_all_sshkeys_success=Были успешно переписаны все открытые ключи.
dashboard.resync_all_update_hooks=Перезаписать все апдейт-хуки этого репозитория (необходимо, когда изменен путь до папки конфигураций)
dashboard.resync_all_update_hooks_success=Апдейт-хуки всех репозиториев успешно перезаписаны.
dashboard.resync_all_hooks=Повторная синхронизация хуков pre-receive, update и post-receive во всех репозиториях
dashboard.resync_all_hooks_success=Все хуки pre-receive, update и post-receive во всех репозиториях были успешно повторно синхронизированы.
dashboard.reinit_missing_repos=Реинициализировать все репозитории с утерянными Git файлами
dashboard.reinit_missing_repos_success=Все репозитории с утерянными Git файлами успешно реинициализированы.
dashboard.server_uptime=Время непрерывной работы сервера
dashboard.current_goroutine=Текущий Goroutines
dashboard.current_goroutine=Текущих Goroutines
dashboard.current_memory_usage=Текущее использование памяти
dashboard.total_memory_allocated=Всего памяти выделено
dashboard.memory_obtained=Памяти использовано
@@ -895,7 +1073,7 @@ users.edit_account=Изменение учетной записи
users.max_repo_creation=Ограничение максимального количества создаваемых репозиториев
users.max_repo_creation_desc=(Установить -1 для использования стандартного глобального значения предела)
users.is_activated=Эта учетная запись активирована
users.prohibit_login=This account is prohibited to login
users.prohibit_login=Вход с данной учетной записи запрещен
users.is_admin=У этой учетной записи есть права администратора
users.allow_git_hook=Пользователь имеет право создать Git перехватчик
users.allow_import_local=Пользователь имеет право импортировать локальные репозитории
@@ -917,12 +1095,14 @@ repos.private=Приватный
repos.watches=Следят
repos.stars=В избранном
repos.issues=Задачи
repos.size=Размер
auths.auth_manage_panel=Панель управления аутнентификациями
auths.auth_sources=Типы аутентификации
auths.new=Добавить новый источник
auths.name=Имя
auths.type=Тип
auths.enabled=Включено
auths.default=По умолчанию
auths.updated=Обновлено
auths.auth_type=Тип аутентификации
auths.auth_name=Имя аутентификации
@@ -931,15 +1111,21 @@ auths.domain=Домен
auths.host=Хост
auths.port=Порт
auths.bind_dn=Привязать DN
auths.bind_dn_helper=Вы можете использовать '%s' для подстановки имени пользователя, например: DOM\%s
auths.bind_password=Привязать пароль
auths.bind_password_helper=Внимание: Этот пароль сохранен в небезопасном виде. Не используйте высоко-привилегированную учетную запись.
auths.user_base=База для поиска пользователя
auths.user_dn=DN пользователя
auths.attribute_username=Атрибут username
auths.attribute_username_placeholder=Оставьте пустым, чтобы использовать имя пользователя для регистрации.
auths.attribute_name=Имя аттрибута
auths.attribute_name=Имя атрибута
auths.attribute_surname=Фамилия аттрибута
auths.attribute_mail=Электронная почта аттрибута
auths.verify_group_membership=Верифицировать членство в группе
auths.group_search_base_dn=Base DN для поиска группы
auths.group_filter=Групповой фильтр
auths.group_attribute_contain_user_list=Атрибут группы, содержащий список пользователей
auths.user_attribute_listed_in_group=Пользовательский атрибут, перечисленный в группе
auths.attributes_in_bind=Извлечение атрибутов в виде Bind DN
auths.filter=Фильтр пользователя
auths.admin_filter=Фильтр администратора
@@ -953,9 +1139,9 @@ auths.enable_tls=Включение шифрования TLS
auths.skip_tls_verify=Пропустить проверку TLS
auths.pam_service_name=Имя службы PAM
auths.enable_auto_register=Включить автоматическую регистрацию
auths.tips=Советы
auths.edit=Изменить параметры канала аутентификации
auths.activated=Эта аутентификация активирована
auths.default_auth=This authentication is default login source
auths.new_success=Новый канал аутентификации '%s' успешно создан.
auths.update_success=Настройки канала аутентификации успешно сохранены.
auths.update=Обновить параметры аутентификации
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Удаление канала аутентификаци
auths.delete_auth_desc=Этот канал аутентификации будет удален. Вы уверены что хотите продолжить?
auths.still_in_used=Эта проверка подлинности до сих пор используется некоторыми пользователями, удалите или преобразуйте этих пользователей в другой тип входа в систему.
auths.deletion_success=Канал аутентификации успешно удален!
auths.login_source_exist=Источник входа '%s' уже существует.
config.not_set=(не задано)
config.server_config=Конфигурация сервера
config.app_name=Имя приложения
config.app_ver=Версия приложения
@@ -974,10 +1162,9 @@ config.offline_mode=Автономный режим
config.disable_router_log=Отключение журнала маршрутизатора
config.run_user=Запуск пользователем
config.run_mode=Режим выполнения
config.repo_root_path=Путь до корня репозитория
config.git_version=Версия Git
config.static_file_root_path=Статичный путь до файла
config.log_file_root_path=Путь до папки с логами
config.script_type=Тип сценария
config.reverse_auth_user=Заголовок с именем пользователя для авторизации на reverse proxy
config.ssh_config=Конфигурация SSH
@@ -987,11 +1174,25 @@ config.ssh_domain=Домен
config.ssh_port=Порт
config.ssh_listen_port=Прослушиваемый порт
config.ssh_root_path=Корневой путь
config.ssh_rewrite_authorized_keys_at_start=Перезаписать authorized_keys при запуске
config.ssh_key_test_path=Путь к тестовому ключу
config.ssh_keygen_path=Путь к генератору ключей ('ssh-keygen')
config.ssh_minimum_key_size_check=Минимальный размер ключа проверки
config.ssh_minimum_key_sizes=Минимальные размеры ключа
config.repo_config=Настройка репозитория
config.repo_root_path=Путь до корня репозитория
config.script_type=Тип сценария
config.repo_force_private=Сделать личным принудительно
config.max_creation_limit=Лимит созданий
config.preferred_licenses=Предпочитаемые лицензии
config.disable_http_git=Выключить HTTP Git
config.enable_local_path_migration=Включить миграцию с локального пути
config.commits_fetch_concurrency=Параллельность получения коммитов
config.http_config=Конфигурация HTTP
config.http_access_control_allow_origin=Содержимое заголовка Access Control Allow Origin
config.db_config=Конфигурация базы данных
config.db_type=Тип
config.db_host=Хост
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=Режим SSL
config.db_ssl_mode_helper=(только для «postgres»)
config.db_path=Путь
config.db_path_helper=(для "SQLite3" и "TiDB")
config.service_config=Сервисная конфигурация
config.register_email_confirm=Требуется подтверждение по электронной почте
config.disable_register=Отключить регистрацию
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Отключить проверку на мини
config.enable_captcha=Включить капчу
config.active_code_lives=Время жизни кода для активации
config.reset_password_code_lives=Время жизни кода сброса пароля
config.webhook_config=Настройка автоматического обновления репозиции
config.webhook_config=Конфигурация Webhook
config.queue_length=Длина очереди
config.deliver_timeout=Задержка доставки
config.skip_tls_verify=Пропустить TLS проверка
config.skip_tls_verify=Пропустить проверку TLS
config.mailer_config=Настройки почты
config.mailer_enabled=Включено
config.mailer_disable_helo=Отключить HELO
config.mailer_name=Имя
config.mailer_subject_prefix=Префикс темы письма
config.mailer_host=Сервер
config.mailer_user=Пользователь
config.send_test_mail=Отправить тестовое письмо
config.test_mail_failed=Не удалось отправить тестовое письмо «%s»: %v
config.test_mail_sent=Тестовое письмо было отправлено «%s».
config.oauth_config=Конфигурация OAuth
config.oauth_enabled=Включено
config.cache_config=Настройки кеша
config.cache_adapter=Адаптер кэша
config.cache_interval=Интервал кэширования
config.cache_conn=Подключение кэша
config.session_config=Конфигурация сессии
config.session_provider=Провайдер сессии
config.provider_config=Конфигурация провайдера
@@ -1039,11 +1246,27 @@ config.gc_interval_time=Интервал работы сборщика мусо
config.session_life_time=Время жизни сессии
config.https_only=Только HTTPS
config.cookie_life_time=Время жизни файла cookie
config.picture_config=Настройка изображения
config.picture_service=Сервис изображений
config.disable_gravatar=Отключить Gravatar
config.enable_federated_avatar=Включить внешние Аватары
config.git_config=Конфигурация GIT
config.git_disable_diff_highlight=Отключить подсветку синтаксиса Diff
config.git_max_diff_lines=Максимальное количество строк Diff (на файл)
config.git_max_diff_line_characters=Максимальное количество символов Diff (в строке)
config.git_max_diff_files=Максимальное количество Diff-файлов (при показе)
config.git_gc_args=Аргументы GC
config.git_migrate_timeout=Тайм-аут миграции
config.git_mirror_timeout=Время ожидания обновления зеркала
config.git_clone_timeout=Время ожидания операции клонирования
config.git_pull_timeout=Время ожидания операции извлечения
config.git_gc_timeout=Время Ожидания Операции Сборки Мусора
config.log_config=Конфигурация журнала
config.log_mode=Режим журналирования
config.log_mode=Режим
config.log_options=Опции
monitor.cron=Задачи cron
monitor.name=Имя
@@ -1074,36 +1297,43 @@ notices.delete_success=Системное уведомление успешно
create_repo=создал(а) репозиторий <a href="%s"> %s</a>
rename_repo=переименовал(а) репозиторий из <code>%[1]s</code> на <a href="%[2]s">%[3]s</a>
commit_repo=запушил(а) <a href="%[1]s/src/%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
compare_commits=Просмотр сравнение для этих %d коммитов
transfer_repo=перенес репозиторий <code>%s</code> в <a href="%s">%s</a>
create_issue=`открыл(а) задачу <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`закрыл(а) задачу <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`возобновил(а) задачу <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`прокомментировал(а) вопрос <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`создал запрос на слияние <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`закрыл запрос на слияние <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`открыл снова запрос на слияние <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`прокомментировал(а) вопрос <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`слил пул реквест <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=перенес репозиторий <code>%s</code> в <a href="%s">%s</a>
create_branch=создал новую ветку <a href="%[1]s/src/%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
delete_branch=удалил ветку <code>%[2]s</code> в <a href="%[1]s">%[3]s</a>
push_tag=запушил(а) метку <a href="%s/src/%s">%[2]s</a> в <a href="%[1]s">%[3]s</a>
compare_commits=Просмотр сравнение для этих %d коммитов
delete_tag=удален тег <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=склонировать репозиторий в <a href="%s">%s</a>
mirror_sync_push=синхронизированные коммиты с <a href="%[1]s/src/%[2]s">%[3]s</a> на <a href="%[1]s">%[4]s</a> из зеркала
mirror_sync_create=синхронизированные новые ссылки <a href="%s/src/%s">%[2]s</a> к <a href="%[1]s">%[3]s</a> из зеркала
mirror_sync_delete=синхронизированные и удаленные ссылки <code>%[2]s</code> на <a href="%[1]s">%[3]s</a> из зеркала
[tool]
ago=назад
from_now=с этого момента
now=сейчас
1s=1 секунду %s
1m=1 минута %s
1m=1 минуту %s
1h=1 час %s
1d=1 день %s
1w=1 неделя %s
1mon=1 месяц %s
1y=1 год %s
seconds=секунд %[2]s: %[1]d
minutes=минут %[2]s: %[1]d
minutes=%d минут %s
hours=%d часов %s
days=дней %[2]s: %[1]d
days=%d дней %s
weeks=недель %[2]s: %[1]d
months=месяцев %[2]s: %[1]d
years=лет %[2]s: %[1]d
months=%d месяцев %s
years=%d лет %s
raw_seconds=секунд
raw_minutes=минут

1345
conf/locale/locale_sk-SK.ini Normal file

File diff suppressed because it is too large Load Diff

1345
conf/locale/locale_sr-SP.ini Normal file

File diff suppressed because it is too large Load Diff

1345
conf/locale/locale_sv-SE.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -48,7 +48,7 @@ cancel=İptal
install=Kurulum
title=İlk Kez Çalıştırma İçin Kurulum Adımları
docker_helper=Gogs'u Docker içinde kullanıyorsanız bu sayfada herhangi bir değişiklik yapmadan önce lütfen <a target="_blank" href="%s">kılavuzu</a> dikkatlice okuyunuz!
requite_db_desc=Gogs MySQL, PostgreSQL, SQLite3 veya TiDB gerektirir.
requite_db_desc=Gogs MySQL, PostgreSQL, SQLite3, MSSQL veya TiDB'ye ihtiyaç duyar.
db_title=Veritabanı Ayarları
db_type=Veritabanı Türü
host=Sunucu
@@ -58,9 +58,8 @@ db_name=Veritabanı Adı
db_helper=Lütfen MySQL için INNODB motorunu utf8_general_ci karakter setiyle kullanın.
ssl_mode=SSL Biçimi
path=Yol
sqlite_helper=SQLite3 veya TiDB veritabanının dosya yolu. <br>Lütfen servis olarak başlatırken mutlak yolu kullanın.
err_empty_db_path=SQLite3 veya TiDB veritabanı yolu boş olamaz.
err_invalid_tidb_name=TiDB veritabanı adında "." ve "-" karakterlerine izin verilmez.
sqlite_helper=SQLite3 veritabanının dosya yolu.<br> Lütfen cihaz başladığında kesin yolu kullan.
err_empty_db_path=SQLite3 veritabanının yolu boş olamaz.
no_admin_and_disable_registration=Bir yönetici hesabı oluşturmadan kullanıcı kaydını devre dışı bırakamazsınız.
err_empty_admin_password=Yönetici parolası boş olamaz.
@@ -75,12 +74,16 @@ domain=Alan Adı
domain_helper=Bu, SSH klon bağlantılarını etkiler.
ssh_port=SSH Portu
ssh_port_helper=SSH sunucunuzun portu kullanılıyor, boş bırakın ya da SSH özelliğini devre dışı bırakın.
use_builtin_ssh_server=Yerleşik SSH sunucusu kullanın
use_builtin_ssh_server_popup=Git işlemlerinde SSH sunucusundan sistem SSH arka plan programından ayrılmaya başlayın.
http_port=HTTP Portu
http_port_helper=Uygulamanın dinleyeceği port.
app_url=Uygulama Bağlantısı
app_url_helper=Bu, HTTP/HTTPS klon bağlantılarını ve e-postadaki bazı kısımları etkiler.
log_root_path=Günlük Dosyaları Yolu
log_root_path_helper=Günlük dosyalarının yazılacağı dizin.
enable_console_mode=Konsol Modunu Etkinleştir
enable_console_mode_popup=Dosya moduna ek olarak , ayrıca konsolun günlüklerini yazdır.
optional_title=İsteğe Bağlı Ayarlar
email_title=E-Posta Servisi Ayarları
@@ -96,6 +99,8 @@ offline_mode=Çevrim Dışı Modu Etkinleştir
offline_mode_popup=CDN'i, üretim modunda bile devre dışı bırak, tüm kaynak dosyaları yerel olarak sunulacaktır.
disable_gravatar=Gravatar Servisini Devre Dışı Bırak
disable_gravatar_popup=Gravatar ve özel kaynakları devre dışı bırak. Tüm avatarlar kullanıcılar tarafından yüklenir veya varsayılan kalır.
federated_avatar_lookup=Birleşmiş Kişi Simgesi Aramasını Etkinleştir
federated_avatar_lookup_popup=Libravatar'a dayalı birleşmiş açık kaynaklı hizmeti kullanmak için birleşmiş avatarlar aramasını etkinleştirin.
disable_registration=Kendi Kendine Kaydolmayı Devre Dışı Bırak
disable_registration_popup=Kullanıcının kendi kendine kaydolmasını devre dışı bırak, yalnızca yönetici yeni hesaplar oluşturabilir.
enable_captcha=Captcha'yı Etkinleştir
@@ -114,6 +119,8 @@ sqlite3_not_available=Yayın sürümünüz SQLite3'ü desteklemiyor, lütfen %s'
invalid_db_setting=Veritabanı ayarları geçersiz: %v
invalid_repo_path=Depo kök dizini geçersiz: %v
run_user_not_match=Çalıştırma kullanıcısı geçerli kullanıcı değil: %s -> %s
smtp_host_missing_port=SMTP ana makine adresindeki bağlantı noktası eksik.
invalid_smtp_from=SMTP form alanı geçerli değil: %v
save_config_failed=Yapılandırma kaydedilemedi: %v
invalid_admin_setting=Yönetici hesap ayarları geçersiz: %v
install_success=Merhaba! Gogs'u tercih ettiğiniz için çok mutluyuz, keyfini çıkarın!
@@ -135,6 +142,7 @@ issues.in_your_repos=Depolarınızda
[explore]
repos=Depolar
users=Kullanıcılar
organizations=Organizasyonlar
search=Ara
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=Bir hesabınız var mı? Şimdi giriş yapın!
social_register_hepler_msg=Zaten bir hesabınız var mı? Şimdi bağlanın!
disable_register_prompt=Üzgünüz, kaydolma devre dışı bırakıldı. Lütfen site yöneticisiyle irtibata geçin.
disable_register_mail=Üzgünüz, kayıt doğrulama e-postası devre dışı bırakıldı.
auth_source=Authentication Source
local=Local
remember_me=Beni Hatırla
forgot_password=Parolamı Unuttum
forget_password=Parolanızı mı unuttunuz?
@@ -154,7 +164,6 @@ prohibit_login_desc=Hesabınızla oturum açmanız yasaklanmış, lütfen site y
resent_limit_prompt=Üzgünüz, zaten bir doğrulama e-postası talep ettiniz. Lütfen 3 dakika bekleyip tekrar deneyin.
has_unconfirmed_mail=Merhaba %s, doğrulanmamış bir e-posta adresin var (<b>%s</b>). Bir doğrulama e-postası almadıysanız ya da yenisine ihtiyacınız varsa lütfen aşağıdaki düğmeye tıklayın.
resend_mail=Doğrulama e-postasını tekrar almak için buraya tıklayın
email_not_associate=Bu e-posta adresi hiçbir hesaba bağlı değil.
send_reset_mail=Parola sıfırlama e-postasını (yeniden) göndermek için buraya tıklayın
reset_password=Parolanızı Sıfırlayın
invalid_code=Üzgünüz, doğrulama kodunuz geçersiz veya süresi dolmuş.
@@ -162,6 +171,14 @@ reset_password_helper=Parolanızı sıfırlamak için buraya tıklayın
password_too_short=Parola uzunluğu 6 karakterden az olamaz.
non_local_account=Yerel olmayan hesapların şifrelerini Gogs aracılığıyla değiştiremezsiniz.
login_two_factor=İki aşamalı doğrulama
login_two_factor_passcode=Kimlik doğrulama Şifre kodu
login_two_factor_enter_recovery_code=İki faktörlü kurtarma kodu girin
login_two_factor_recovery=İki faktörlü Kurtarma
login_two_factor_recovery_code=Kurtarma kodu
login_two_factor_enter_passcode=İki faktörlü şifre kodu girin
login_two_factor_invalid_recovery_code=Kurtarma kodu kullanılmış veya geçerli değil.
[mail]
activate_account=Lütfen hesabınızı aktifleştirin
activate_email=E-posta adresinizi doğrulayın
@@ -187,9 +204,17 @@ TeamName=Takım ismi
AuthName=Yetkilendirme adı
AdminEmail=Yönetici e-postası
NewBranchName=Yeni bölüm adı
CommitSummary=İşleme özeti
CommitMessage=İşleme mesajı
CommitChoice=İşleme tercihi
TreeName=Dosya yolu
Content=İçerik
require_error=` boş olamaz.`
alpha_dash_error=` sadece karakter, rakam veya çizgi(-_) içermelidir.`
alpha_dash_dot_error=` sadece karakter, rakam, çizgi(-_) veya nokta içermelidir.`
alpha_dash_dot_slash_error=` geçerli alfa veya sayısal veya uzunçizgi(-_) veya nokta karakterler veya eğiz çizgi olmalıdır.`
size_error=` uzunluk en fazla %s olmalıdır.`
min_size_error=` en az %s karakter içermelidir.`
max_size_error=` en fazla %s karakter içermelidir.`
@@ -206,6 +231,7 @@ org_name_been_taken=Bu organizasyon adı zaten alınmış.
team_name_been_taken=Bu takım adı zaten alınmış.
email_been_used=Bu e-posta adresi zaten kullanımda.
username_password_incorrect=Kullanıcı adı veya parola hatalı.
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Lütfen girdiğiniz depo isminin doğru olduğundan emin olun.
enterred_invalid_owner_name=Lütfen girdiğiniz depo sahibi isminin doğru olduğundan emin olun.
enterred_invalid_password=Lütfen girdiğiniz parolanın doğru olduğundan emin olun.
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=Kullanıcı adında '%s' modeline izin verilmez.
[settings]
profile=Profil
password=Parola
avatar=Avatar
ssh_keys=SSH Anahtarları
social=Sosyal Medya Hesapları
applications=Uygulamalar
security=Güvenlik
repos=Depolar
orgs=Organizasyonlar
applications=Uygulamalar
delete=Hesabı Sil
uid=Tekil ID
public_profile=Herkese Açık Profil
profile_desc=E-posta adresiniz herkese açıktır ve hesabınızla ilgili bilgilendirmelerde ve web tabanlı operasyonlarda kullanılacaktır.
@@ -259,6 +286,8 @@ change_username_prompt=Bu değişiklik, hesabınızla ilişkili olan bağlantıl
continue=Devam Et
cancel=İptal
lookup_avatar_by_mail=E-postaya göre Avatar Arama
federated_avatar_lookup=Birleşmiş Avatar Araması
enable_custom_avatar=Özel Avatarı Etkinleştir
choose_new_avatar=Yeni Avatar Seç
update_avatar=Avatar Ayarlarını Güncelle
@@ -308,10 +337,31 @@ no_activity=Yeni aktivite yok
key_state_desc=Bu anahtar son 7 gün içinde kullanıldı
token_state_desc=Bu erişim anahtarı son 7 gün içinde kullanıldı
manage_social=Bağlanmış Sosyal Hesapları Yönet
social_desc=Bu, bağlanmış sosyal hesapların bir listesidir. Tanımadığınız bağlantıyı kaldırın.
unbind=Bağlantıyı Kopar
unbind_success=Sosyal hesabın bağlantısı koparıldı.
two_factor=İki faktörlü Kimlik doğrulama
two_factor_status=Durum:
two_factor_on=ık
two_factor_off=Kapalı
two_factor_enable=Etkin
two_factor_disable=Devre dışı
two_factor_view_recovery_codes=Görüntüle ve güvenli bir yere </a> kurtarma kodlarınızı <a href="%s%s"><a href="%s%s"><a href="%s%s"> kaydedin. Eğer kimlik doğrulama uygulamanız için erişimi kaybetmişseniz bunları şifre kodu olarak kullanabilirsiniz.
two_factor_http=HTTP/HTTPS işlemleri için , artık düz kullanıcı adı ve şifre kullanamazsınız. Lütfen oluşturun ve <a href="%[1]s%[2]s"> Kişisel Erişim Jetonu </a> kimlik belgesi olarak kullanın , örneğin <code>%[3]s</code>.
two_factor_enable_title=İki faktörlü Kimlik doğrulamasını Etkinleştir
two_factor_scan_qr=Lütfen resmi taramak için kimlik doğrulama uygulamanızı kullanın:
two_factor_or_enter_secret=Veya parola girin:
two_factor_then_enter_passcode=Daha sonra şifre kodunu girin:
two_factor_verify=Doğrula
two_factor_invalid_passcode=Girdiğiniz şifre kodu geçersiz,lütfen tekrar deneyin!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=İki faktörlü kimlik doğrulama etkinleştirmesi başarısız :%v
two_factor_enable_success=Hesabınız için iki faktörlü kimlik doğrulama başarıyla devre dışı bırakıldı!
two_factor_recovery_codes_title=İki faktörlü Kimlik doğrulama Kurtarma Kodları
two_factor_recovery_codes_desc=Kurtarma kodları , geçici olarak kimlik doğrulama uygulamanızın erişimini kaybettiğinizde kullanıldı. Herbir kurtarma kodu sadece birkez kullanılablir,<b>lütfen bu kodları güvenli bir yere sakla</b>.
two_factor_regenerate_recovery_codes=Kurtarma Kodlarını Yeniden oluştur
two_factor_regenerate_recovery_codes_error=Kurtarma kodları yeniden oluşturma başarısız: %v
two_factor_regenerate_recovery_codes_success=Yeni kurtarma kodları başarıyla oluşturuldu!
two_factor_disable_title=İki faktörlü Kimlik doğrulama Devre dışı
two_factor_disable_desc=Hesap güvenliği seviyeniz, devre dışı bırakılmış iki faktörlü kimlik doğrulamadan sonra azalacaktır. Devam etmek istiyor musunuz?
two_factor_disable_success=İki faktörlü kimli doğrulama başarıyla devre dışı bırakıldı!
manage_access_token=Kişisel Erişim Anahtarlarını Yönet
generate_new_token=Yeni Erişim Anahtarı Üret
@@ -325,6 +375,15 @@ access_token_deletion=Kişisel Erişim Anahtarını Silme
access_token_deletion_desc=Bu kişisel erişim anahtarını silerseniz uygulamanıza ilişkin tüm erişimler de kaldırılacaktır. Devam etmek istiyor musunuz?
delete_token_success=Kişisel erişim anahtarı başarıyla kaldırıldı! Uygulamanızı güncellemeyi de unutmayın!
orgs.none=Hiçbir organizasyonların üyesi değilsiniz.
orgs.leave_title=Organizasyondan ayrıl
orgs.leave_desc=Organizasyondan ayrıldıktan sonra tüm depolar ve ekiplere erişimi kaybedeceksiniz.Devam etmek istiyor musunuz?
repos.leave=Ayrıl
repos.leave_title=Depodan ayrıl
repos.leave_desc=Çıktıktan sonra depo erişimini kaybedeceksiniz.Devam etmek istiyor musunuz?
repos.leave_success='%s' deposundan başarıyla ayrıldınız!
delete_account=Hesabınızı Silin
delete_prompt=Bu işlem hesabınızı kalıcı olarak silecektir ve <strong>GERİ ALINAMAZ</strong>!
confirm_delete_account=Silmeyi Onayla
@@ -345,7 +404,7 @@ fork_from=Buradan Çatalla
fork_visiblity_helper=Çatallanmış bir deponun görünürlüğünü değiştiremezsiniz.
repo_desc=ıklama
repo_lang=Dil
repo_lang_helper=.gitignore dosyalarını seçin
repo_gitignore_helper=.gitignore şablonlarını seç
license=Lisans
license_helper=Bir lisans dosyası seçin
readme=Benioku
@@ -358,9 +417,12 @@ mirror_prune_desc=Uzakta olmayan bütün uzaktan-izleme referanslarını sil
mirror_interval=Yansı Aralığı (saat)
mirror_address=Yansı Adresi
mirror_address_desc=Lütfen gerekli kimlik bilgilerini adreste bulundurun.
mirror_last_synced=Son Eşzamanlama
watchers=İzleyenler
stargazers=Yıldızlayanlar
forks=Çatallamalar
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=Sahip, maksimum %d depo oluşturma limitine ulaşmıştır.
form.name_reserved=Depo ismi '%s' başkasına ayrılmış.
@@ -371,14 +433,14 @@ migrate_type=Göç Türü
migrate_type_helper=Bu depo bir <span class="text blue">yansı</span> olacaktır
migrate_repo=Depoyu Göç Ettir
migrate.clone_address=Klon Adresi
migrate.clone_address_desc=Bu bağlantı HTTP/HTTPS/GIT veya yerel bir sunucu yolu olabilir.
migrate.clone_address_desc=Bu HTTP/HTTPS/GIT URL'si olabilir.
migrate.clone_address_desc_import_local=Bir depoyu yerel sunucu yolu ile taşımanıza izin verilir.
migrate.permission_denied=Yerel depoları içeri aktarma izniniz yok.
migrate.invalid_local_path=Geçersiz yerel dizin! Böyle bir yol yok ya da bir dizin değil.
migrate.failed=Göç başarısız: %v
mirror_from=şunun yansıması
forked_from=şundan çatallanmış
fork_from_self=Sahibi olduğunuz bir depoyu çatallayamazsınız!
copy_link=Kopyala
copy_link_success=Kopyalandı!
copy_link_error=Kopyalamak için ⌘-C veya Ctrl-C tuşlarına basın
@@ -394,9 +456,9 @@ quick_guide=Hızlı Başlangıç Kılavuzu
clone_this_repo=Bu depoyu klonla
create_new_repo_command=Komut satırında yeni bir depo oluştur
push_exist_repo=Var olan bir depoyu komut satırında gönder
repo_is_empty=Bu depo boş. Lütfen daha sonra tekrar gelin!
bare_message=Bu depo henüz hiçbir içeriğe sahip değil.
code=Kod
files=Dosyalar
branch=Dal
tree=Ağaç
filter_branch_and_tag=Dal veya biçim imini filtrele
@@ -407,13 +469,63 @@ pulls=Değişiklik İstekleri
labels=Etiketler
milestones=Kilometre Taşları
commits=İşlemeler
git_branches=Bölümler
releases=Sürümler
file_raw=Ham
file_history=Geçmiş
file_view_raw=Ham Görünüm
file_permalink=Kalıcı Bağlantı
file_too_large=Bu dosya sergilenmek için çok büyük
video_not_supported_in_browser=Tarayıcınız HTML5 video etkiketini desteklemiyor.
branches.overview=Genel görünüm
branches.active_branches=Aktif Bölümler
branches.stale_branches=Eskimiş Bölümler
branches.all=Bütün Bölümler
branches.updated_by=%[2]s tarafından %[1]s güncellendi
branches.change_default_branch=Varsayılan Bölümü Değiştir
editor.new_file=Yeni dosya
editor.upload_file=Dosyayı yükle
editor.edit_file=Dosya düzenle
editor.preview_changes=Değişiklikleri Önizle
editor.cannot_edit_non_text_files=Metin dışı dosyalar düzenlenemez
editor.edit_this_file=Bu dosyayı düzenle
editor.must_be_on_a_branch=Bu dosyada değişiklik yapmak için bir bölümde olmalısınız.
editor.fork_before_edit=Dosyayı düzenlemeden önce bu depoyu iki kola ayırmalısınız
editor.delete_this_file=Bu dosyayı sil
editor.must_have_write_access=Bu dosyada değişiklik yapmak için yazma erişiminizin olması gerekir.
editor.file_delete_success=%s dosyası başarıyla silindi!
editor.name_your_file=Dosyanızın adı...
editor.filename_help=Dizin eklemek için, dizini yazın ve / tuşuna basın. Bir dizini kaldırmak için alanın başına gidin ve geri tuşuna basın.
editor.or=veya
editor.cancel_lower=iptal
editor.commit_changes=Değişiklikleri İşle
editor.add_tmpl='%s/<filename>' ekle
editor.add='%s' ekle
editor.update='%s' güncelle
editor.delete='%s' sil
editor.commit_message_desc=İsteğe bağlı genişletilmiş açıklama ekleyin ...
editor.commit_directly_to_this_branch=Doğrudan <strong class="Branch-name">%s</strong> şubesine geçin.
editor.create_new_branch=Bu taahhüt ve çekme isteği başlatmak için.<strong>yeni şube</strong> oluşturma.
editor.new_branch_name_desc=Yen şube adı...
editor.cancel=İptal
editor.filename_cannot_be_empty=Dosya adı boş olmamalı.
editor.branch_already_exists='% s ' Şubesi bu depoda zaten var.
editor.directory_is_a_file=Üst yoldaki '% s' girişi, bu depoda bir dizini olmayan dosyadır.
editor.file_is_a_symlink='%s' dosyası, web editöründen değiştirilemeyen bir sembolik bağ.
editor.filename_is_a_directory=Dosya adı '%s' bu depoda mevcut bir dizindir.
editor.file_editing_no_longer_exists=Düzenlediğiniz dosya '%s' artık depoda yok.
editor.file_changed_while_editing=Düzenlemeye başladıktan sonra dosya içeriği değiştirildi. Ne değiştiğini görmek için<a target="_blank" href="%s">Buraya tıklayın</a>Bu değişikliklerin üzerine yazmak için.<strong>yeniden yürütmeye basın</strong>.
editor.file_already_exists='% s ' adlı bir dosya mevcutta zaten var.
editor.no_changes_to_show=Gösterilecek bir değişiklik mevcut değil.
editor.fail_to_update_file='%s' dosyası güncellenemedi / oluşturulamadı : %v hatasıyla
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Alt dizin Ekle...
editor.unable_to_upload_files='%s' dosyası yüklenemedi : %v hatasıyla
editor.upload_files_to_dir=Dosyaları '%s' ye yükle
commits.commit_history=Geçmişin Kaydedilmesi
commits.commits=İşlemeler
commits.search=İşleme Arama
commits.find=Bul
@@ -439,6 +551,11 @@ issues.create=Sorun Oluştur
issues.new_label=Yeni Etiket
issues.new_label_placeholder=Etiket adı...
issues.create_label=Etiket Oluştur
issues.label_templates.title=Önceden tanımlanmış bir etiket kümesi yükleyin
issues.label_templates.info=Henüz etiket yok. Yeni etiket oluşturmak için aşağıdaki "Yeni Etiket" düğmesine tıklayabilir veya aşağıda önceden tanımlanmış bir kümeyi kullanabilirsiniz.
issues.label_templates.helper=Bir etiket seti seçin
issues.label_templates.use=Use this label set
issues.label_templates.fail_to_load_file=Etiket şablon dosyası '%s' yüklenemedi: %v hatasıyla
issues.open_tab=%d açık
issues.close_tab=%d kapanmış
issues.filter_label=Etiket
@@ -466,7 +583,7 @@ issues.next=Sonraki
issues.open_title=ık
issues.closed_title=Kapalı
issues.num_comments=%d yorum
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.commented_at=`<a href="#%s">%s</a> olarak yorumlandı`
issues.delete_comment_confirm=Bu yorumu silmek istediğinizden emin misiniz?
issues.no_content=Henüz bir içerik yok.
issues.close_issue=Kapat
@@ -480,8 +597,7 @@ issues.commit_ref_at=`<a id="%[1]s" href="#%[1]s">%[2]s</a> işlemesinde bu soru
issues.poster=Poster
issues.collaborator=Katkıcı
issues.owner=Sahibi
issues.sign_up_for_free=Ücretsiz Kaydolun
issues.sign_in_require_desc=bu konuşmaya katılmak için. Zaten bir hesabınız var mı? <a href="%s">Yorum yapmak için giriş yapın</a>
issues.sign_in_require_desc=<a href="%s">Giriş yap</a> bu konuşmaya katılmak için.
issues.edit=Düzenle
issues.cancel=İptal
issues.save=Kaydet
@@ -496,6 +612,8 @@ issues.label_deletion=Etiket Silme
issues.label_deletion_desc=Bu etiketi silerseniz, bu etikete iliştirilmiş sorunlardaki tüm bilgiler de silinecektir. Devam etmek istiyor musunuz?
issues.label_deletion_success=Etiket başarıyla silindi!
issues.num_participants=%d Katılımcı
issues.attachment.open_tab=` "%s '' yi yeni bir sekmede görmek için tıklayın `
issues.attachment.download=`"%s" yi İndirmek için tıklayın `
pulls.new=Yeni Değişiklik İsteği
pulls.compare_changes=Değişiklikleri Karşılaştır
@@ -505,6 +623,7 @@ pulls.compare_compare=karşılaştır
pulls.filter_branch=Dal filtrele
pulls.no_results=Sonuç bulunamadı.
pulls.nothing_to_compare=Karşılaştırılacak hiçbir şey yok, çünkü temel ve ana dal aynı.
pulls.nothing_merge_base=Karşılaştırılacak bir şey yok çünkü iki şubenin tarihi tamamen farklı.
pulls.has_pull_request=`Bu iki hedef için zaten bir değişiklik isteği var: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Değişiklik İsteği Oluştur
pulls.title_desc=<code>%[3]s</code> içindeki <code>%[2]s</code> işlemelerini %[1]d ile birleştirmek istiyor
@@ -520,8 +639,13 @@ pulls.is_checking=Çakışma kontrolü sürüyor. Lütfen birkaç dakika içinde
pulls.can_auto_merge_desc=Bu değişiklik isteği otomatik olarak birleştirilebilir.
pulls.cannot_auto_merge_desc=Çakışmalardan dolayı bu değişiklik isteği otomatik olarak birleştirilemez.
pulls.cannot_auto_merge_helper=Çakışmaları çözmek için lütfen elle birleştirin.
pulls.create_merge_commit=Birleştirme işlemi oluşturma
pulls.rebase_before_merging=Birleştirmeden önce yenidenreferans al
pulls.commit_description=Commit Description
pulls.merge_pull_request=Değişiklik İsteğini Birleştir
pulls.open_unmerged_pull_exists=`Yeniden açma işlemini gerçekleştiremezsiniz. Çünkü zaten aynı depodan, aynı birleştirme bilgisiyle açık olan bir değişiklik isteği var (#%d) ve birleştirme bekliyor.`
pulls.delete_branch=Şubeyi Sil
pulls.delete_branch_has_new_commits=Birleşmeden sonra yeni taahhütlere sahip olduğu için şube silinemez.
milestones.new=Yeni Kilometre Taşı
milestones.open_tab=%d Açık
@@ -569,29 +693,64 @@ settings=Ayarlar
settings.options=Tercihler
settings.collaboration=İş birliği
settings.collaboration.admin=Yönetici
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.write=Yaz
settings.collaboration.read=Oku
settings.collaboration.undefined=Belirsiz
settings.branches=Şubeler
settings.branches_bare=Korunmasız depo için şubeleri yönetemezsiniz. Önce bir miktar içeriği itin.
settings.default_branch=Varsayılan Şube
settings.default_branch_desc=Varsayılan şube , kod taahütleri, çekme talepleri ve çevrimiçi düzenleme için "temel" şube olarak kabul edilir.
settings.update=Güncelle
settings.update_default_branch_unsupported=Varsayılan şubeyi değiştir , sunucu üzerindeki Git sürüm tarafından desteklenmiyor.
settings.update_default_branch_success=Bu deponun varsayılan şubesi başarıyla güncellendi!
settings.protected_branches=Korunan Şubeler
settings.protected_branches_desc=Şubeleri zorla bastırma, yanlışlıkla silme ve beyaz liste kod belirleyicilerine karşı koruyun.
settings.choose_a_branch=Şube seç...
settings.branch_protection=Şube Koruma
settings.branch_protection_desc=Şube için koruma seçeneklerini seçiniz <b>%s</b>.
settings.protect_this_branch=Bu şubeyi koru
settings.protect_this_branch_desc=Kuvveti devre dışı bırak ve silinmesini önler.
settings.protect_require_pull_request=Doğrudan itmek yerine istek istemek gereklidir
settings.protect_require_pull_request_desc=Bu şubeye doğrudan itmeyi devre dışı bırakmak için bu seçeneği etkinleştirin. Komiteler korunmayan bir başka şubeye ittirilmeli ve çekme talebi vasıtasıyla bu şubeye birleştirilmelidir.
settings.protect_whitelist_committers=Beyaz liste , bu şubeye kim itebilir
settings.protect_whitelist_committers_desc=Bu şubeye doğrudan itilen beyaz listeye kişi veya ek ekleyin. Beyaz listeden atlanılacak olan kullanıcılar çekme isteği kontrolüne ihtiyaç duyar.
settings.protect_whitelist_users=Bu şubeye itebilecek kullanıcılar
settings.protect_whitelist_search_users=Kullanıcıları ara
settings.protect_whitelist_teams=Onların üyelerinin bu şubeye itebilecek takımları
settings.protect_whitelist_search_teams=Takımları ara
settings.update_protect_branch_success=Bu şube için koruma seçenekleri başarıyla güncellendi!
settings.hooks=Web İstekleri
settings.githooks=Git İstekleri
settings.basic_settings=Temel Ayarlar
settings.mirror_settings=Ayna Ayarları
settings.sync_mirror=Şimdi Senkronize Et
settings.mirror_sync_in_progress=Ayna senkronizasyonu devam ediyor, lütfen sayfayı yaklaşık bir dakika içinde yenileyin.
settings.site=Resmi Web Sitesi
settings.update_settings=Ayarları Güncelle
settings.change_reponame_prompt=Bu değişiklik, bağlantıların depoyla olan ilişkisini etkileyecektir.
settings.advanced_settings=Gelişmiş Ayarlar
settings.wiki_desc=İnsanların belge yazması için Wiki'yi etkinleştir
settings.wiki_desc=Viki sıstemini etkinleştir
settings.use_internal_wiki=Yerleşik wiki'yi kullanın
settings.allow_public_wiki_desc=Depo özel olduğunda wiki'ye herkesin erişmesine izin ver
settings.use_external_wiki=Harici Wiki kullan
settings.external_wiki_url=Harici Wiki bağlantısı
settings.external_wiki_url_desc=Ziyaretçiler, sekmeye tıkladıklarında bağlantıya yönlendirilecektir.
settings.issues_desc=Hazır gelen hafif sorun takipçisini etkinleştir
settings.issues_desc=Sorun izleyiciyi etkinleştir
settings.use_internal_issue_tracker=Yerleşik hafif sorun izleyici kullanma
settings.allow_public_issues_desc=Depo özel olduğunda toplulukların herkese açık olarak erişmesine izin ver
settings.use_external_issue_tracker=Harici sorun takipçisi kullan
settings.external_tracker_url=Harici Konu İzleyici URL'si
settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format=Harici Sorun Takipçisi Bağlantı Formatı
settings.tracker_issue_style=Harici Hata İzleyicisi Adlandırma Stili:
settings.tracker_issue_style.numeric=Sayısal
settings.tracker_issue_style.alphanumeric=Alfanumerik
settings.tracker_url_format_desc=Kullanıcı adı, depo ismi ve hata indeksi için <code>{kullanıcı} {depo} {indeks}</code> tutucusunu kullanabilirsiniz.
settings.pulls_desc=Herkese açık katkıları kabul etmek için değişiklik isteklerini etkinleştirin
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Tehlike Alanı
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Yeni sahibin aynı isimde başka bir deposu var. Lütfen farklı bir isim seçin.
settings.convert=Düzenli Depoya Dönüştür
settings.convert_desc=Bu yansıyı düzenli bir depoya dönüştürebilirsiniz. Bu işlem geri alınamaz.
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=Deponun Wiki verisi başarıyla silindi.
settings.delete=Bu Depoyu Sil
settings.delete_desc=Bir depoyu bir kez sildiğiniz taktirde geri getiremezsiniz. Lütfen emin olun.
settings.delete_notices_1=- Bu işlem geri <strong>ALINAMAZ</strong>.
settings.delete_notices_2=- Bu işlem, bu depodaki her şeyi (Git verisini, sorunları, yorumları ve katkıcı erişimlerini) kalıcı olarak silecektir.
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=Silme işleminden sonra bütün çatallar bağımsız hale gelir.
settings.deletion_success=Depo başarıyla silindi!
settings.update_settings_success=Depo seçenekleri başarıyla güncellendi.
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=Kullanıcı, silme işleminden sonra bu depo
settings.remove_collaborator_success=Katkıcı silindi.
settings.search_user_placeholder=Kullanıcı ara...
settings.org_not_allowed_to_be_collaborator=Organizasyon, bir katkıcı olarak eklenemez.
settings.user_is_org_member=Kullanıcı organizasyon üyesi olduğu için katkıcı olarak eklenemez.
settings.add_webhook=Web İsteği Ekle
settings.hooks_desc=Web istekleri, HTTP POST olay tetikleyicileri gibidirler. Gogs'ta ne zaman bir şey olsa, hedef belirttiğiniz sunuculara bildirim yapabilecek duruma geliriz. Daha fazla bilgiyi <a target="_blank" href="%s">Web İstekleri Kılavuzu</a>'nda bulabilirsiniz.
settings.webhook_deletion=Web İsteğini Sil
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Web isteği başarıyla silindi!
settings.webhook.test_delivery=Test Dağıtımı
settings.webhook.test_delivery_desc=Web isteği ayarlarınızı test etmek için sahte bir anlık olay gönderin
settings.webhook.test_delivery_success=Test web isteği, dağıtım kuyruğuna eklendi. Bunun dağıtım geçmişinde görünmesi birkaç saniye sürebilir.
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=İstekler
settings.webhook.response=Cevaplar
settings.webhook.headers=Başlıklar
@@ -649,6 +809,7 @@ settings.add_webhook_desc=Gogs, meydana gelen olay ile birlikte belirttiğiniz b
settings.payload_url=Yük Bağlantısı
settings.content_type=İçerik Türü
settings.secret=Gizli
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username=Kullanıcı Adı
settings.slack_icon_url=Simge Bağlantısı
settings.slack_color=Renk
@@ -658,8 +819,20 @@ settings.event_send_everything=<strong>Her şeye</strong> ihtiyacım var.
settings.event_choose=Neye ihtiyacım olduğunu seçtir.
settings.event_create=Oluştur
settings.event_create_desc=Dal veya biçim imi oluşturuldu
settings.event_delete=Delete
settings.event_delete_desc=Branch or tag deleted
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_push=Push
settings.event_push_desc=Bir depoya git push
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=Aktif
settings.active_helper=Bu isteği tetikleyen olaya ilişkin detaylar da gönderilecektir.
settings.add_hook_success=Yeni web isteği eklendi.
@@ -669,10 +842,13 @@ settings.delete_webhook=Web İsteğini Sil
settings.recent_deliveries=Son Dağıtımlar
settings.hook_type=İstek Türü
settings.add_slack_hook_desc=Deponuza <a href="%s">Slack</a> entegrasyonunu ekleyin.
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=Erişim Anahtarı
settings.slack_domain=Alan Adı
settings.slack_channel=Kanal
settings.deploy_keys=Dağıtım Anahtarları
settings.deploy_keys_helper=<b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key=Dağıtım Anahtarı Ekle
settings.deploy_key_desc=Dağıtım anahtarlarının yalnızca okuma izni vardır. Kişisel hesapların SSH anahtarlarıyla aynı değillerdir.
settings.no_deploy_keys=Herhangi bir dağıtım anahtarı eklemediniz.
@@ -684,6 +860,8 @@ settings.add_key_success=Yeni dağıtım anahtarı '%s' başarıyla eklendi!
settings.deploy_key_deletion=Dağıtım Anahtarını Sil
settings.deploy_key_deletion_desc=Bu dağıtım anahtarını silerseniz bu depoya ilişkin tüm erişimler de kaldırılacaktır. Devam etmek istiyor musunuz?
settings.deploy_key_deletion_success=Dağıtım anahtarı başarıyla silindi!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=Kaynağa Gözat
diff.parent=ebeveyn
@@ -695,14 +873,13 @@ diff.show_unified_view=Birleşik Görünüm
diff.stats_desc=<strong> %d değiştirilmiş dosya</strong> ile <strong>%d ekleme</strong> ve <strong>%d silme</strong>
diff.bin=BIN
diff.view_file=Dosyayı Görüntüle
diff.file_suppressed=File diff suppressed because it is too large
diff.file_suppressed=Dosya farkı çok büyük olduğundan ihmal edildi
diff.too_many_files=Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor
release.releases=Sürümler
release.new_release=Yeni Sürüm
release.draft=Taslak
release.prerelease=Ön Sürüm
release.stable=Kararlı
release.edit=düzenle
release.ahead=%s son sürümden beri <strong>%d</strong> işleme
release.source_code=Kaynak Kodu
@@ -751,6 +928,7 @@ team_permission_desc=Bu takım, ne gibi bir izin seviyesine sahiptir?
form.name_reserved=Organizasyon adı '%s' başka birisine ayrılmış.
form.name_pattern_not_allowed=Organizasyon adı modeli '%s' geçersiz.
form.team_name_reserved=Team name '%s' is reserved.
settings=Ayarlar
settings.options=Seçenekler
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=Depolarda çöp toplama işlemini gerçekleştir
dashboard.git_gc_repos_success=Tüm depolarda çöp toplama işlemi başarıyla gerçekleştirildi.
dashboard.resync_all_sshkeys='.ssh/authorized_keys' dosyasını yeniden yaz (dikkat: Gogs'un olmayan anahtarlar silinecektir)
dashboard.resync_all_sshkeys_success=Tüm genel anahtarlar başarıyla yeniden yazıldı.
dashboard.resync_all_update_hooks=Tüm depoların güncel web isteklerini yeniden yaz (özel yapılandırma yolu değiştiğinde gerekir)
dashboard.resync_all_update_hooks_success=Tüm depoların güncel web istekleri başarıyla yeniden yazıldı.
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Git dosyalarını kaybetmiş tüm depoları yeniden oluştur
dashboard.reinit_missing_repos_success=Git dosyalarını kaybetmiş tüm depolar başarıyla yeniden oluşturuldu.
@@ -917,12 +1095,14 @@ repos.private=Özel
repos.watches=İzlemeler
repos.stars=Yıldızlar
repos.issues=Sorunlar
repos.size=Size
auths.auth_manage_panel=Yetkilendirme Yönetim Paneli
auths.auth_sources=Authentication Sources
auths.new=Yeni Kaynak Ekle
auths.name=İsim
auths.type=Tür
auths.enabled=Aktifleştirilmiş
auths.default=Default
auths.updated=Güncellendi
auths.auth_type=Yetki Türü
auths.auth_name=Yetki İsmi
@@ -931,15 +1111,21 @@ auths.domain=Alan Adı
auths.host=Sunucu
auths.port=Port
auths.bind_dn=Bağlama DN'i
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Bağlama Parolası
auths.bind_password_helper=Uyarı: Bu parola, ham halde bir metin dosyası içerisinde saklanacaktır. Yüksek izinli bir hesap kullanmayın.
auths.user_base=Kullanıcı Arama Tabanı
auths.user_dn=Kullanıcı DN'i
auths.attribute_username=Kullanıcı özelliği
auths.attribute_username_placeholder=Kullanıcı adı için giriş yapma form alanı kullanmak için boş bırakın.
auths.attribute_name=Ad özelliği
auths.attribute_name=First Name Attribute
auths.attribute_surname=Soyad özelliği
auths.attribute_mail=E-posta özelliği
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Bağlı DN tabanındaki özellikleri çek
auths.filter=Kullanıcı Filtresi
auths.admin_filter=Yönetici Filtresi
@@ -953,9 +1139,9 @@ auths.enable_tls=TLS Şifrelemeyi Aktifleştir
auths.skip_tls_verify=TLS Doğrulamasını Atla
auths.pam_service_name=PAM Servis Adı
auths.enable_auto_register=Otomatik Kaydolmayı Aktifleştir
auths.tips=İpuçları
auths.edit=Yetkilendirme Ayarlarını Düzenle
auths.activated=Bu yetkilendirme aktif
auths.default_auth=This authentication is default login source
auths.new_success=Yeni yetkilendirme '%s' başarıyla eklendi.
auths.update_success=Yetkilendirme ayarları başarıyla güncellendi.
auths.update=Yetkilendirme Ayarlarını Güncelle
@@ -964,7 +1150,9 @@ auths.delete_auth_title=Yetkilendirme Silme
auths.delete_auth_desc=Bu yetkilendirme silinecek. Devam etmek istiyor musunuz?
auths.still_in_used=Bu yetkilendirme hala bazı kullanıcılar tarafından kullanılıyor. Lütfen öncelikle bunları silin ya da başka oturum açma türlerine çevirin.
auths.deletion_success=Yetkilendirme başarıyla silindi!
auths.login_source_exist=Login source '%s' already exists.
config.not_set=(not set)
config.server_config=Sunucu Yapılandırması
config.app_name=Uygulama Adı
config.app_ver=Uygulama Sürümü
@@ -974,10 +1162,9 @@ config.offline_mode=Çevrim Dışı Modu
config.disable_router_log=Yönlendirici Log'larını Devre Dışı Bırak
config.run_user=Çalıştırma Kullanıcısı
config.run_mode=Çalıştırma Modu
config.repo_root_path=Depo Kök Yolu
config.git_version=Git Version
config.static_file_root_path=Sabit Dosya Kök Yolu
config.log_file_root_path=Log Dosyası Kök Yolu
config.script_type=Betik Türü
config.reverse_auth_user=Tersine Yetkilendirme Kullanıcısı
config.ssh_config=SSH Yapılandırması
@@ -987,11 +1174,25 @@ config.ssh_domain=Alan Adı
config.ssh_port=Port
config.ssh_listen_port=Port'u Dinle
config.ssh_root_path=Kök Yol
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Anahtar Test Yolu
config.ssh_keygen_path=Keygen ('ssh-keygen') Yolu
config.ssh_minimum_key_size_check=Minimum Anahtar Uzunluğu Kontrolü
config.ssh_minimum_key_sizes=Minimum Anahtar Uzunlukları
config.repo_config=Repository Configuration
config.repo_root_path=Depo Kök Yolu
config.script_type=Betik Türü
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Veritabanı Yapılandırması
config.db_type=Türü
config.db_host=Sunucu
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL Biçimi
config.db_ssl_mode_helper=(sadece "postgres" için)
config.db_path=Yol
config.db_path_helper=("sqlite3" ve "tidb" için)
config.service_config=Servis Yapılandırması
config.register_email_confirm=E-posta Onayı Gerekli
config.disable_register=Kaydolma Hizmet Dışı
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=Minimum Anahtar Uzunluğu Kontrolünü Devre Dış
config.enable_captcha=Captcha'yı Aktifleştir
config.active_code_lives=Kod Yaşamlarını Aktifleştir
config.reset_password_code_lives=Kod Yaşamları Parolasını Yenile
config.webhook_config=Web İstekleri Yapılandırması
config.queue_length=Kuyruk Uzunluğu
config.deliver_timeout=Dağıtım Zaman Aşımı
config.skip_tls_verify=TLS Doğrulamasını Atla
config.mailer_config=Mailer Yapılandırması
config.mailer_enabled=Aktif
config.mailer_disable_helo=HELO'yu Devre Dışı Bırak
config.mailer_name=İsim
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Sunucu
config.mailer_user=Kullanıcı
config.send_test_mail=Test E-Postası Gönder
config.test_mail_failed='%s' adresine test e-postası gönderimi başarısız: %v
config.test_mail_sent='%s' adresine test e-postası gönderildi.
config.oauth_config=OAuth Yapılandırması
config.oauth_enabled=Aktif
config.cache_config=Önbellek Yapılandırması
config.cache_adapter=Önbellek Uyarlayıcısı
config.cache_interval=Önbellek Aralığı
config.cache_conn=Önbellek Bağlantısı
config.session_config=Oturum Yapılandırması
config.session_provider=Oturum Sağlayıcı
config.provider_config=Sağlayıcı Yapılandırması
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC Aralık Zamanı
config.session_life_time=Oturum Yaşam Zamanı
config.https_only=Yalnız HTTPS
config.cookie_life_time=Çerez Yaşam Zamanı
config.picture_config=Resim Yapılandırması
config.picture_service=Resim Servisi
config.disable_gravatar=Gravatar Hizmet Dışı
config.enable_federated_avatar=Enable Federated Avatars
config.git_config=Git Configuration
config.git_disable_diff_highlight=Diff İşlemi Sözdizimini Devre Dışı Bırak
config.git_max_diff_lines=Maksimum Ayırma Hatları (tek bir dosya için)
config.git_max_diff_line_characters=Maksimum Ayırma Karakterleri(tek bir hat için)
config.git_max_diff_files=Maksimum Ayırma Dosyaları(gösterilmek için)
config.git_gc_args=GC Tartışmaları
config.git_migrate_timeout=Geçiş Zaman Aşımı
config.git_mirror_timeout=Yansımayı Güncelle Zaman Aşımı
config.git_clone_timeout=Klon Çalışma Zaman Aşımı
config.git_pull_timeout=Çekme İşlemi Zaman Aşımı
config.git_gc_timeout=GC İşlem Zaman Aşımı
config.log_config=Log Yapılandırması
config.log_mode=Log Modu
config.log_mode=Mod
config.log_options=Seçenekler
monitor.cron=Cron Görevleri
monitor.name=İsim
@@ -1074,17 +1297,24 @@ notices.delete_success=Sistem bildirimleri başarıyla silindi.
create_repo=depo <a href="%s">%s</a> oluşturuldu
rename_repo=<code>%[1]s</code> olan depo adını <a href="%[2]s">%[3]s</a> buna çevirdi
commit_repo=<a href="%[1]s">%[4]s</a> zamanında <a href="%[1]s/src/%[2]s">%[3]s</a> buraya push yaptı
compare_commits=Bu %d işlemeler için karşılaştırmaları görüntüle
transfer_repo=depo <code>%s</code> <a href="%s">%s</a>'a aktarıldı
create_issue=`<a href="%s/issues/%s">%s#%[2]s</a> sorununu açtı`
close_issue=`<a href="%s/issues/%s">%s#%[2]s</a> sorununu kapattı`
reopen_issue=`<a href="%s/issues/%s">%s#%[2]s</a> sorununu tekrar açtı`
comment_issue=`<a href="%s/issues/%s">%s#%[2]s</a> sorununa yorum yazdı`
create_pull_request=`<a href="%s/pulls/%s">%s#%[2]s</a> değişiklik isteğini oluşturdu`
close_pull_request=`<a href="%s/pulls/%s">%s#%[2]s</a> değişiklik isteğini kapattı`
reopen_pull_request=`<a href="%s/pulls/%s">%s#%[2]s</a> değişiklik isteğini tekrar açtı`
comment_issue=`<a href="%s/issues/%s">%s#%[2]s</a> sorununa yorum yazdı`
merge_pull_request=`<a href="%s/pulls/%s">%s#%[2]s</a> değişim isteğini birleştirdi`
transfer_repo=depo <code>%s</code> <a href="%s">%s</a>'a aktarıldı
create_branch=<a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> yeni şubesi oluşturuldu
delete_branch=<code>%[2]s</code> 'ın <a href="%[1]s">%[3]s</a> şubesi silindi
push_tag=etiket <a href="%s/src/%s">%[2]s</a> <a href="%[1]s">%[3]s</a>'a itelendi
compare_commits=Bu %d işlemeler için karşılaştırmaları görüntüle
delete_tag=<code>%[2]s</code> 'ın <a href="%[1]s">%[3]s</a> etiketi silindi
fork_repo=<a href="%s">%s</a> için bir depo çatalladı
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=önce

1345
conf/locale/locale_uk-UA.ini Normal file

File diff suppressed because it is too large Load Diff

1345
conf/locale/locale_vi-VN.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
app_desc=基于 Go 语言的自助 Git 服务
app_desc=一款极易搭建的自助 Git 服务
home=首页
dashboard=控制面板
explore=探索
explore=发现
help=帮助
sign_in=登录
sign_out=退出
@@ -48,7 +48,7 @@ cancel=取消
install=安装页面
title=首次运行安装程序
docker_helper=如果您正在使用 Docker 容器运行 Gogs请务必先仔细阅读 <a target="_blank" href="%s">官方文档</a> 后再对本页面进行填写。
requite_db_desc=Gogs 要求安装 MySQL、PostgreSQL、SQLite3 或 TiDB。
requite_db_desc=Gogs 要求安装 MySQL、PostgreSQL、SQLite3、MSSQL 或 TiDB。
db_title=数据库设置
db_type=数据库类型
host=数据库主机
@@ -58,9 +58,8 @@ db_name=数据库名称
db_helper=如果您使用 MySQL请使用 INNODB 引擎以及 utf8_general_ci 字符集。
ssl_mode=SSL 模式
path=数据库文件路径
sqlite_helper=SQLite3 或 TiDB 数据库文件路径。<br>作为服务启动时,请使用绝对路径。
err_empty_db_path=SQLite3 或 TiDB 的数据库路径不能为空。
err_invalid_tidb_name=TiDB 数据库名称不允许包含字符 "." 或 "-" 。
sqlite_helper=SQLite3 数据库文件路径。<br>作为服务启动时,请使用绝对路径。
err_empty_db_path=SQLite 数据库文件路径不能为空。
no_admin_and_disable_registration=您不能够在未创建管理员用户的情况下禁止注册。
err_empty_admin_password=管理员密码不能为空。
@@ -75,12 +74,16 @@ domain=域名
domain_helper=该设置影响 SSH 克隆地址。
ssh_port=SSH 端口号
ssh_port_helper=SSH 服务器的监听端口号,留空表示禁用 SSH 功能。
use_builtin_ssh_server=使用内置 SSH 服务器
use_builtin_ssh_server_popup=启动内置 SSH 服务器专门用于 Git 操作可以和系统 SSH 守护程序进行隔离。
http_port=HTTP 端口号
http_port_helper=应用监听的端口号
app_url=应用 URL
app_url_helper=该设置影响 HTTP/HTTPS 克隆地址和一些邮箱中的链接。
log_root_path=日志路径
log_root_path_helper=存放日志文件的目录
enable_console_mode=启用控制台模式
enable_console_mode_popup=除了使用文件模式外,还将日志输出到控制台
optional_title=可选设置
email_title=邮件服务设置
@@ -96,6 +99,8 @@ offline_mode=启用离线模式
offline_mode_popup=在部署模式下也禁用从 CDN 获取文件,所以的资源都将从本地服务器获取。
disable_gravatar=禁用 Gravatar 服务
disable_gravatar_popup=禁用 Gravatar 和自定义源,仅使用由用户上传的或默认的头像。
federated_avatar_lookup=启用 Federated Avatars 查找
federated_avatar_lookup_popup=启用 Federated Avatars 查找以使用开源的 Libravatar 服务。
disable_registration=禁止用户自主注册
disable_registration_popup=禁止用户自行注册功能,只有管理员可以添加帐号。
enable_captcha=启用验证码服务
@@ -114,6 +119,8 @@ sqlite3_not_available=您所使用的发行版不支持 SQLite3请从 %s 下
invalid_db_setting=数据库设置不正确:%v
invalid_repo_path=仓库根目录设置不正确:%v
run_user_not_match=运行系统用户非当前用户:%s -> %s
smtp_host_missing_port=SMTP 地址缺少端口号。
invalid_smtp_from=SMTP From 字段不合法:%v
save_config_failed=应用配置保存失败:%v
invalid_admin_setting=管理员帐户设置不正确:%v
install_success=您好!我们很高兴您选择使用 Gogs祝您使用愉快代码从此无 BUG
@@ -135,6 +142,7 @@ issues.in_your_repos=属于该用户仓库的
[explore]
repos=仓库
users=用户
organizations=组织
search=搜索
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=已经注册?立即登录!
social_register_hepler_msg=已经注册?立即绑定!
disable_register_prompt=对不起,注册功能已被关闭。请联系网站管理员。
disable_register_mail=对不起,注册邮箱确认功能已被关闭。
auth_source=认证源
local=本地
remember_me=记住登录
forgot_password=忘记密码
forget_password=忘记密码?
@@ -154,7 +164,6 @@ prohibit_login_desc=您的帐户被禁止登录,请联系网站管理员。
resent_limit_prompt=对不起,您请求发送激活邮件过于频繁,请等待 3 分钟后再试!
has_unconfirmed_mail=%s 您好,系统检测到您有一封发送至 <b>%s</b> 但未被确认的邮件。如果您未收到激活邮件,或需要重新发送,请单击下方的按钮。
resend_mail=单击此处重新发送确认邮件
email_not_associate=您输入的邮箱地址未被关联到任何帐号!
send_reset_mail=单击此处(重新)发送您的密码重置邮件
reset_password=重置密码
invalid_code=对不起,您的确认代码已过期或已失效。
@@ -162,6 +171,14 @@ reset_password_helper=单击此处重置密码
password_too_short=密码长度不能少于 6 位!
non_local_account=非本地类型的帐户无法通过 Gogs 修改密码。
login_two_factor=两步验证登录
login_two_factor_passcode=动态令牌
login_two_factor_enter_recovery_code=输入两步验证恢复密钥
login_two_factor_recovery=两步验证恢复登录
login_two_factor_recovery_code=恢复密钥
login_two_factor_enter_passcode=输入两步验证动态令牌
login_two_factor_invalid_recovery_code=恢复密钥已经被使用或是无效的
[mail]
activate_account=请激活您的帐户
activate_email=请验证您的邮箱地址
@@ -187,9 +204,17 @@ TeamName=团队名称
AuthName=认证名称
AdminEmail=管理员邮箱
NewBranchName=新的分支名称
CommitSummary=提交小结
CommitMessage=提交消息
CommitChoice=提交选择
TreeName=文件路径
Content=内容
require_error=不能为空。
alpha_dash_error=必须为英文字母、阿拉伯数字或横线(-_
alpha_dash_dot_error=必须为英文字母、阿拉伯数字、横线(-_或点。
alpha_dash_dot_slash_error=必须为英文字母、阿拉伯数字、横线(-_、点或斜线。
size_error=长度必须为 %s。
min_size_error=长度最小为 %s 个字符。
max_size_error=长度最大为 %s 个字符。
@@ -206,6 +231,7 @@ org_name_been_taken=组织名称已经被占用。
team_name_been_taken=团队名称已经被占用。
email_been_used=邮箱地址已经被使用。
username_password_incorrect=用户名或密码不正确。
auth_source_mismatch=该用户未与所选择的认证源进行关联
enterred_invalid_repo_name=请检查您输入的仓库名称是正确。
enterred_invalid_owner_name=请检查您输入的新所有者用户名是否正确。
enterred_invalid_password=请检查您输入的密码是否正确。
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=用户名不允许 '%s' 的格式。
[settings]
profile=个人信息
password=修改密码
ssh_keys=管理 SSH 密钥
social=社交帐号绑定
applications=管理授权应用
orgs=管理组织
avatar=头像设置
ssh_keys=SSH 密钥
security=帐户安全
repos=仓库列表
orgs=组织列表
applications=授权应用
delete=删除帐户
uid=用户 ID
public_profile=公开信息
profile_desc=您的邮箱地址将会被公开,并被用于接收帐户的所有提醒和通知。
@@ -259,6 +286,8 @@ change_username_prompt=该操作将会影响到所有与您帐户有关的链接
continue=继续操作
cancel=取消操作
lookup_avatar_by_mail=通过邮箱地址获取头像
federated_avatar_lookup=Federated Avatar 查找
enable_custom_avatar=启动自定义头像
choose_new_avatar=选择新的头像
update_avatar=更新头像设置
@@ -298,7 +327,7 @@ ssh_key_name_used=使用相同名称的公开密钥已经存在!
key_name=密钥名称
key_content=密钥内容
add_key_success=新的 SSH 密钥 '%s' 添加成功!
delete_key=删除
delete_key=删除密钥
ssh_key_deletion=删除 SSH 公钥操作
ssh_key_deletion_desc=删除该 SSH 公钥将删除所有与您帐户相关的访问权限。是否继续?
ssh_key_deletion_success=SSH 公钥删除成功!
@@ -308,10 +337,31 @@ no_activity=没有最近活动
key_state_desc=该密钥在 7 天内被使用过
token_state_desc=该令牌在 7 天内被使用过
manage_social=管理关联社交帐户
social_desc=以下是与您帐户所关联的社交帐号,如果您发现有陌生的关联,请立即解除绑定!
unbind=解除绑定
unbind_success=社交帐号解除绑定成功!
two_factor=两步验证
two_factor_status=当前状态:
two_factor_on=开启
two_factor_off=关闭
two_factor_enable=启用两步验证
two_factor_disable=关闭两步验证
two_factor_view_recovery_codes=查看并备份 <a href="%s%s">恢复密钥</a> 到一个安全的地方,当您无法使用认证应用时可以使用恢复密钥作为临时令牌。
two_factor_http=对于 HTTP/HTTPS 操作,您不再能够使用用户名和密码作为凭据。请创建和使用 <a href="%[1]s%[2]s"> 个人操作令牌</a> 作为您的凭据,如 <code>%[3]s</code>。
two_factor_enable_title=启用两步验证
two_factor_scan_qr=请使用您的认证应用扫描以下二维码︰
two_factor_or_enter_secret=或者直接输入密钥:
two_factor_then_enter_passcode=然后输入动态令牌:
two_factor_verify=验证令牌
two_factor_invalid_passcode=您输入的动态令牌无效,请重试!
two_factor_reused_passcode=您输入的令牌已经被使用,请等待数秒后尝试新的令牌!
two_factor_enable_error=启用两步验证失败:%v
two_factor_enable_success=两步验证登录启用成功!
two_factor_recovery_codes_title=两步验证恢复密钥
two_factor_recovery_codes_desc=当您无法使用认证应用时,可以使用恢复密钥作为临时令牌。每个恢复密钥只能被使用一次,<b>请务必将它们保存在一个安全的地方</b>。
two_factor_regenerate_recovery_codes=重新生成恢复密钥
two_factor_regenerate_recovery_codes_error=重新生成恢复密钥失败:%v
two_factor_regenerate_recovery_codes_success=新的恢复密钥生成成功!
two_factor_disable_title=关闭两步验证
two_factor_disable_desc=关闭两步验证后,您的帐户安全等级将变低。是否继续?
two_factor_disable_success=两步验证登录关闭成功!
manage_access_token=管理个人操作令牌
generate_new_token=生成新的令牌
@@ -325,6 +375,15 @@ access_token_deletion=删除个人操作令牌操作
access_token_deletion_desc=删除该个人操作令牌将删除所有相关的应用程序的访问权限。是否继续?
delete_token_success=个人操作令牌删除成功!请更新与该令牌有关的所有应用。
orgs.none=您现在还不是任何组织的成员。
orgs.leave_title=离开组织
orgs.leave_desc=离开组织后,组织相关的所有仓库和团队权限将被收回。是否继续?
repos.leave=离开仓库
repos.leave_title=退出仓库协作
repos.leave_desc=离开仓库后,相关权限将被收回。是否继续?
repos.leave_success=您已经成功退出 '%s' 的仓库协作!
delete_account=删除当前帐户
delete_prompt=删除操作会永久清除您的帐户信息,并且 <strong>不可恢复</strong>
confirm_delete_account=确认删除帐户
@@ -345,7 +404,7 @@ fork_from=派生自
fork_visiblity_helper=派生仓库无法修改可见性
repo_desc=仓库描述
repo_lang=仓库语言
repo_lang_helper=选择 .gitignore 文件
repo_gitignore_helper=选择 .gitignore 模板
license=授权许可
license_helper=请选择授权许可文件
readme=自述文档
@@ -358,9 +417,12 @@ mirror_prune_desc=当远程追踪的引用被删除时本地也同步删除
mirror_interval=镜像同步周期(小时)
mirror_address=镜像地址
mirror_address_desc=请在镜像地址中写入必要的用户凭据信息。
mirror_last_synced=上次同步时间:
watchers=关注者
stargazers=称赞者
forks=派生仓库
repo_description_helper=请输入仓库描述,最多为 512 个字符
repo_description_length=剩余字符数
form.reach_limit_of_creation=该用户已经达到允许创建 %d 个仓库的最大上限。
form.name_reserved=仓库名称 '%s' 是被保留的。
@@ -371,14 +433,14 @@ migrate_type=迁移类型
migrate_type_helper=该仓库将是一个 <span class="text blue">镜像</span>
migrate_repo=迁移仓库
migrate.clone_address=克隆地址
migrate.clone_address_desc=该地址可以是 HTTP/HTTPS/GIT URL 或本地服务器路径
migrate.clone_address_desc=该地址可以是 HTTP/HTTPS/GIT 类型的 URL
migrate.clone_address_desc_import_local=您被允许使用服务器本地路径作为仓库的远程地址进行迁移。
migrate.permission_denied=您没有获得导入本地仓库的权限。
migrate.invalid_local_path=无效的本地路径,不存在或不是一个目录!
migrate.failed=迁移失败:%v
mirror_from=镜像自地址
forked_from=派生自
fork_from_self=无法派生已经拥有的仓库!
copy_link=复制链接
copy_link_success=复制成功!
copy_link_error=请按下 ⌘-C 或 Ctrl-C 复制
@@ -394,9 +456,9 @@ quick_guide=快速帮助
clone_this_repo=克隆当前仓库
create_new_repo_command=从命令行创建一个新的仓库
push_exist_repo=从命令行推送已经创建的仓库
repo_is_empty=该仓库不包含任何内容,请稍后再进行访问!
bare_message=这个家伙很懒,什么都没有推送。
code=代码
files=文件
branch=分支
tree=目录树
filter_branch_and_tag=过滤分支或标签
@@ -407,13 +469,63 @@ pulls=合并请求
labels=标签管理
milestones=里程碑
commits=提交历史
git_branches=代码分支
releases=版本发布
file_raw=原始文件
file_history=文件历史
file_view_raw=查看原始文件
file_permalink=永久链接
file_too_large=文件过大导致无法显示
video_not_supported_in_browser=您的浏览器不支持使用 HTML5 播放视频。
branches.overview=概况
branches.active_branches=活跃分支
branches.stale_branches=陈旧分支
branches.all=所有分支
branches.updated_by=由 %[2]s 更新于 %[1]s
branches.change_default_branch=更改默认分支
editor.new_file=新的文件
editor.upload_file=上传文件
editor.edit_file=编辑文件
editor.preview_changes=预览变更
editor.cannot_edit_non_text_files=无法编辑非文本文件
editor.edit_this_file=编辑此文件
editor.must_be_on_a_branch=您必须在某个分支上才能对此文件进行修改操作
editor.fork_before_edit=您必须派生此仓库才能对此文件进行修改操作
editor.delete_this_file=删除此文件
editor.must_have_write_access=您必须具有可写权限才能对此文件进行修改操作
editor.file_delete_success=文件 '%s' 删除成功!
editor.name_your_file=命名文件...
editor.filename_help=输入名称后按下 / 键即可添加目录,或将光标移至输入框最左侧按下退格键移除目录。
editor.or=
editor.cancel_lower=取消
editor.commit_changes=提交变更
editor.add_tmpl=添加 '%s/<文件名>'
editor.add=添加 '%s'
editor.update=更新 '%s'
editor.delete=删除 '%s'
editor.commit_message_desc=添加一个可选的扩展描述...
editor.commit_directly_to_this_branch=直接提交至 <strong class="branch-name">%s</strong> 分支。
editor.create_new_branch=为此提交创建一个 <strong>新的分支</strong> 并发起合并请求。
editor.new_branch_name_desc=新的分支名称...
editor.cancel=取消
editor.filename_cannot_be_empty=文件名不能为空。
editor.branch_already_exists=此仓库已存在名为 '%s' 的分支。
editor.directory_is_a_file=路径 '%s' 的父路径中包含此仓库已存在的文件名。
editor.file_is_a_symlink=文件 '%s' 为一个符号链接,无法通过 Web 编辑器编辑内容。
editor.filename_is_a_directory=文件名 '%s' 是此仓库中已存在的目录名。
editor.file_editing_no_longer_exists=您编辑的文件 '%s' 已经不存在于此仓库中。
editor.file_changed_while_editing=文件内容在您进行编辑时已经发生变动。<a target="_blank" href="%s">单击此处</a> 查看变动的具体内容,或者 <strong>再次提交</strong> 覆盖已发生的变动。
editor.file_already_exists=此仓库已经存在名为 '%s' 的文件。
editor.no_changes_to_show=没有可以显示的变更。
editor.fail_to_update_file=更新/创建文件 '%s' 时发生错误:%v
editor.fail_to_delete_file=删除文件 '%s' 时发生错误: %v
editor.add_subdir=添加子目录...
editor.unable_to_upload_files=上传文件至 '%s' 时发生错误:%v
editor.upload_files_to_dir=上传文件至 '%s'
commits.commit_history=提交历史
commits.commits=次代码提交
commits.search=搜索提交历史
commits.find=查找
@@ -439,6 +551,11 @@ issues.create=创建工单
issues.new_label=创建标签
issues.new_label_placeholder=标签名称...
issues.create_label=创建标签
issues.label_templates.title=加载预定义的标签模板
issues.label_templates.info=此仓库还未创建任何标签,您可以通过上方的 "创建标签" 创建一个新的标签或加载一组预定义的标签。
issues.label_templates.helper=选择标签模板
issues.label_templates.use=加载标签模板
issues.label_templates.fail_to_load_file=加载标签模板文件 '%s' 时发生错误:%v
issues.open_tab=%d 个开启中
issues.close_tab=%d 个已关闭
issues.filter_label=标签筛选
@@ -459,7 +576,7 @@ issues.filter_sort.recentupdate=最近更新
issues.filter_sort.leastupdate=最少更新
issues.filter_sort.mostcomment=最多评论
issues.filter_sort.leastcomment=最少评论
issues.opened_by=由 <a href="%[2]s">%[3]s</a> %[1]s创建
issues.opened_by=由 <a href="%[2]s">%[3]s</a> %[1]s创建
issues.opened_by_fake=由 %[2]s 于 %[1]s创建
issues.previous=上一页
issues.next=下一页
@@ -480,8 +597,7 @@ issues.commit_ref_at=`在代码提交 <a id="%[1]s" href="#%[1]s">%[2]s</a> 中
issues.poster=发布者
issues.collaborator=协作者
issues.owner=所有者
issues.sign_up_for_free=免费注册
issues.sign_in_require_desc=并加入到对话中来。如果您已经注册,可以直接 <a href="%s">登录并评论</a>
issues.sign_in_require_desc=<a href="%s">登录</a> 并参与到对话中。
issues.edit=编辑
issues.cancel=取消
issues.save=保存
@@ -496,6 +612,8 @@ issues.label_deletion=删除标签操作
issues.label_deletion_desc=删除该标签将会移除所有工单中相关的信息。是否继续?
issues.label_deletion_success=标签删除成功!
issues.num_participants=%d 名参与者
issues.attachment.open_tab=`在新的标签页中查看 '%s'`
issues.attachment.download=`点击下载 '%s'`
pulls.new=创建合并请求
pulls.compare_changes=对比文件变化
@@ -505,6 +623,7 @@ pulls.compare_compare=对比分支
pulls.filter_branch=过滤分支
pulls.no_results=未找到结果
pulls.nothing_to_compare=基准和对比分支代码已经同步,无需进行对比。
pulls.nothing_merge_base=由于两个分支各自拥有完全不同的提交历史,因此无法进行比较。
pulls.has_pull_request=`已经存在目标分支的合并请求:<a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=创建合并请求
pulls.title_desc=请求将 %[1]d 次代码提交从 <code>%[2]s</code> 合并至 <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=该合并请求正在进行冲突检查,请稍后再刷新
pulls.can_auto_merge_desc=该合并请求可以进行自动合并操作。
pulls.cannot_auto_merge_desc=该合并请求存在冲突,无法进行自动合并操作。
pulls.cannot_auto_merge_helper=请手动拉取代码变更以解决冲突。
pulls.create_merge_commit=创建一个新的合并提交
pulls.rebase_before_merging=合并前先进行衍合
pulls.commit_description=提交说明
pulls.merge_pull_request=合并请求
pulls.open_unmerged_pull_exists=`由于已经存在来自相同仓库和合并信息的未合并请求(#%d您无法执行重新开启操作。`
pulls.delete_branch=删除分支
pulls.delete_branch_has_new_commits=该分支在完成合并后又推送了新的提交,无法进行删除操作。
milestones.new=新的里程碑
milestones.open_tab=%d 开启中
@@ -570,28 +694,63 @@ settings.options=基本设置
settings.collaboration=管理协作者
settings.collaboration.admin=管理权限
settings.collaboration.write=可写权限
settings.collaboration.read=读权限
settings.collaboration.read=读权限
settings.collaboration.undefined=未定义
settings.branches=管理分支
settings.branches_bare=您无法对空仓库进行分支管理,请先推送一些内容到仓库。
settings.default_branch=默认分支
settings.default_branch_desc=默认分支是被用于代码提交、合并请求和在线编辑的基准分支。
settings.update=更新
settings.update_default_branch_unsupported=服务器上的 Git 版本不支持修改默认分支。
settings.update_default_branch_success=仓库默认分支更新成功!
settings.protected_branches=保护分支
settings.protected_branches_desc=保护分支不被强制推送、意外删除和限制代码提交白名单。
settings.choose_a_branch=选择一个分支...
settings.branch_protection=分支保护
settings.branch_protection_desc=请选择应用于 <b>%s</b> 分支的保护选项。
settings.protect_this_branch=启用分支保护
settings.protect_this_branch_desc=禁止强制推送和删除分支。
settings.protect_require_pull_request=要求通过合并请求提交代码
settings.protect_require_pull_request_desc=启用该选项后代码将不能直接被推送到此分支,所有的代码提交都必须通过另一个非保护分支发起合并请求进行合并。
settings.protect_whitelist_committers=限制可以推送代码的成员
settings.protect_whitelist_committers_desc=添加用户或团队到可直接推送代码的白名单,列入白名单中的用户将跳过合并请求检查。
settings.protect_whitelist_users=允许推送到此分支的用户
settings.protect_whitelist_search_users=搜索用户
settings.protect_whitelist_teams=允许其成员推送到此分支的团队
settings.protect_whitelist_search_teams=搜索团队
settings.update_protect_branch_success=此分支的保护选项更新成功!
settings.hooks=管理 Web 钩子
settings.githooks=管理 Git 钩子
settings.basic_settings=基本设置
settings.mirror_settings=镜像设置
settings.sync_mirror=立即同步
settings.mirror_sync_in_progress=镜像同步请求已经生效,请稍后刷新页面。
settings.site=官方网站
settings.update_settings=更新仓库设置
settings.update_settings=更新设置
settings.change_reponame_prompt=该操作将会影响到所有与该仓库有关的链接
settings.advanced_settings=高级设置
settings.wiki_desc=启用 Wiki 以允许用户协作文档
settings.wiki_desc=启用 Wiki 系统
settings.use_internal_wiki=使用内置 Wiki 系统
settings.allow_public_wiki_desc=当仓库为私有时,允许 Wiki 的公开访问
settings.use_external_wiki=使用外部 Wiki
settings.external_wiki_url=外部 Wiki 链接
settings.external_wiki_url_desc=当访问者单击分页标签时,将会被重定向到该链接。
settings.issues_desc=启用内置的轻量级工单管理系统
settings.issues_desc=启用工单管理系统
settings.use_internal_issue_tracker=使用内置的轻量级工单管理系统
settings.allow_public_issues_desc=当仓库为私有时,允许工单的公开访问
settings.use_external_issue_tracker=使用外部的工单管理系统
settings.external_tracker_url=外部工单管理系统 URL
settings.external_tracker_url_desc=当访问者单击分页标签时,将会被重定向到该链接。
settings.tracker_url_format=外部工单管理系统的 URL 格式
settings.tracker_issue_style=外部工单管理系统命名风格:
settings.tracker_issue_style.numeric=纯数字形式
settings.tracker_issue_style.alphanumeric=英文字母数字组合形式
settings.tracker_url_format_desc=您可以使用 <code>{user} {repo} {index}</code> 分别作为用户名、仓库名和工单索引的占位符。
settings.pulls_desc=启用合并请求以接受社区贡献
settings.pulls_desc=启用合并请求以接受来自其它仓库或分支的贡献
settings.pulls.ignore_whitespace=忽略空白符号的更改
settings.pulls.allow_rebase_merge=允许在合并提交时使用衍合
settings.danger_zone=危险操作区
settings.cannot_fork_to_same_owner=您不能派生仓库到其当前的所有者。
settings.new_owner_has_same_repo=新的仓库拥有者已经存在同名仓库!
settings.convert=转换为普通仓库
settings.convert_desc=您可以将该镜像仓库转换为普通仓库,且此操作不可逆。
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=仓库 Wiki 数据清除成功!
settings.delete=删除本仓库
settings.delete_desc=删除仓库操作不可逆转,请三思而后行。
settings.delete_notices_1=- 此操作 <strong>不可以</strong> 被回滚。
settings.delete_notices_2=- 此操作将永久删除该仓库,包括 Git 数据、 工单、 评论和协作者的操作权限。
settings.delete_notices_2=- 此操作将永久删除该仓库,包括 Git 数据、工单、评论和协作者的操作权限。
settings.delete_notices_fork_1=- 删除完成后所有的派生仓库都将转换为独立的仓库。
settings.deletion_success=仓库删除成功!
settings.update_settings_success=仓库设置更新成功!
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=此用户被删除后将不再拥有相关
settings.remove_collaborator_success=被操作的协作者已经被收回权限!
settings.search_user_placeholder=搜索用户...
settings.org_not_allowed_to_be_collaborator=组织不允许被添加为仓库协作者!
settings.user_is_org_member=被操作的用户是组织成员,因此无法添加为协作者!
settings.add_webhook=添加 Web 钩子
settings.hooks_desc=Web 钩子允许您设定在 Gogs 上发生指定事件时对指定 URL 发送 POST 通知。查看 <a target="_blank" href="%s">Webhooks 文档</a> 获取更多信息。
settings.webhook_deletion=删除 Web 钩子
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Web 钩子删除成功!
settings.webhook.test_delivery=测试推送
settings.webhook.test_delivery_desc=生成并推送一个模拟的 Push 事件
settings.webhook.test_delivery_success=测试推送已经加入到队列,请耐心等待数秒再刷新推送记录。
settings.webhook.redelivery=重新推送
settings.webhook.redelivery_success=任务 '%s' 已经被重新加入到推送队列,请耐心等待数秒再刷新推送记录。
settings.webhook.request=请求内容
settings.webhook.response=响应内容
settings.webhook.headers=头信息
@@ -649,17 +809,30 @@ settings.add_webhook_desc=我们会通过 <code>POST</code> 请求将订阅事
settings.payload_url=推送地址
settings.content_type=数据格式
settings.secret=密钥文本
settings.secret_desc=密钥文本将被用于计算推送内容的 SHA256 HMAC 哈希值,并设置为 <code>X-Gogs-Signature</code> 请求头的值。
settings.slack_username=服务名称
settings.slack_icon_url=图标 URL
settings.slack_color=颜色代码
settings.event_desc=请设置您希望触发 Web 钩子的事件:
settings.event_push_only=只推送 <code>push</code> 事件。
settings.event_send_everything=请把 <strong>一切</strong> 都给我
settings.event_choose=我的命运自己主宰
settings.event_send_everything=推送 <strong>所有</strong> 事件
settings.event_choose=选择指定的事件
settings.event_create=创建
settings.event_create_desc=创建分支或标签
settings.event_delete=删除
settings.event_delete_desc=删除分支或标签
settings.event_fork=派生
settings.event_fork_desc=仓库被派生
settings.event_push=推送
settings.event_push_desc=Git 仓库推送
settings.event_issues=工单
settings.event_issues_desc=工单被开启、关闭、重新开启、编辑、指派、取消指派、更新标签、清除标签、设置里程碑或取消设置里程碑
settings.event_pull_request=合并请求
settings.event_pull_request_desc=合并请求被开启、关闭、重新开启、编辑、指派、取消指派、更新标签、清除标签、设置里程碑、取消设置里程碑或代码同步
settings.event_issue_comment=工单评论
settings.event_issue_comment_desc=工单评论被创建、编辑和删除
settings.event_release=版本发布
settings.event_release_desc=仓库发布新的版本
settings.active=是否激活
settings.active_helper=当指定事件发生时我们将会触发此 Web 钩子。
settings.add_hook_success=Web 钩子添加成功!
@@ -669,10 +842,13 @@ settings.delete_webhook=删除 Web 钩子
settings.recent_deliveries=最近推送记录
settings.hook_type=钩子类型
settings.add_slack_hook_desc=为您的仓库增加 <a href="%s">Slack</a> 集成。
settings.add_discord_hook_desc=为您的仓库增加 <a href="%s">Discord</a> 集成。
settings.add_dingtalk_hook_desc=为您的仓库增加 <a href="%s">钉钉</a> 集成。
settings.slack_token=令牌
settings.slack_domain=域名
settings.slack_channel=频道
settings.deploy_keys=管理部署密钥
settings.deploy_keys_helper=<b>常识错误!</b>如果您想要添加的是个人公钥,请将它们添加到您的 <a href="%s%s"> 用户设置</a>。
settings.add_deploy_key=添加部署密钥
settings.deploy_key_desc=部署密钥仅具有只读权限,它在功能上和个人用户的公开密钥有本质区别。
settings.no_deploy_keys=您还没有添加任何部署密钥。
@@ -684,6 +860,8 @@ settings.add_key_success=新的部署密钥 '%s' 添加成功!
settings.deploy_key_deletion=删除部署密钥
settings.deploy_key_deletion_desc=删除该部署密钥会移除本仓库所以相关的操作权限。是否继续?
settings.deploy_key_deletion_success=删除部署密钥成功!
settings.description_desc=请输入仓库描述,最多为 512 个字符
settings.description_length=剩余字符数
diff.browse_source=浏览代码
diff.parent=父节点
@@ -702,7 +880,6 @@ release.releases=版本发布
release.new_release=发布新版
release.draft=草稿
release.prerelease=预发行
release.stable=稳定
release.edit=编辑
release.ahead=在该版本发布之后已有 <strong>%d</strong> 次代码提交到 %s 分支
release.source_code=源代码
@@ -751,6 +928,7 @@ team_permission_desc=请选择该团队所具有的权限等级:
form.name_reserved=组织名称 '%s' 是被保留的。
form.name_pattern_not_allowed=组织名称不允许 '%s' 的格式。
form.team_name_reserved=团队名称 '%s' 是被保留的。
settings=组织设置
settings.options=基本设置
@@ -814,7 +992,7 @@ dashboard=控制面板
users=用户管理
organizations=组织管理
repositories=仓库管理
authentication=授权认证管理
authentication=认证管理
config=应用配置管理
notices=系统提示管理
monitor=应用监控面板
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=对仓库进行垃圾回收
dashboard.git_gc_repos_success=所有仓库垃圾回收成功!
dashboard.resync_all_sshkeys=重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gogs 的密钥也会被删除)
dashboard.resync_all_sshkeys_success=所有公钥重新生成成功!
dashboard.resync_all_update_hooks=重新生成所有仓库的 Update 钩子(用于自定义配置文件被修改)
dashboard.resync_all_update_hooks_success=所有仓库的 Update 钩子重新生成成功!
dashboard.resync_all_hooks=重新同步所有仓库的 pre-receive、update 和 post-receive 钩子
dashboard.resync_all_hooks_success=所有仓库的 pre-receive、update 和 post-receive 钩子重新同步成功!
dashboard.reinit_missing_repos=重新初始化所有丢失 Git 文件的仓库
dashboard.reinit_missing_repos_success=所有丢失 Git 文件的仓库重新初始化成功!
@@ -917,12 +1095,14 @@ repos.private=私有库
repos.watches=关注数
repos.stars=点赞数
repos.issues=工单数
repos.size=用量
auths.auth_manage_panel=认证管理面板
auths.auth_sources=认证
auths.new=添加新的源
auths.name=认证名称
auths.type=认证类型
auths.enabled=已启用
auths.default=默认
auths.updated=最后更新时间
auths.auth_type=认证类型
auths.auth_name=认证名称
@@ -931,6 +1111,7 @@ auths.domain=域名
auths.host=主机地址
auths.port=主机端口
auths.bind_dn=绑定 DN
auths.bind_dn_helper=可以使用 '%s' 作为用户名的占位符例如DOM\%s
auths.bind_password=绑定密码
auths.bind_password_helper=警告:该密码将会以明文的形式保存在数据库中。请不要使用拥有高权限的帐户!
auths.user_base=用户搜索基准
@@ -940,6 +1121,11 @@ auths.attribute_username_placeholder=留空表示使用用户登录时所使用
auths.attribute_name=名字属性
auths.attribute_surname=姓氏属性
auths.attribute_mail=邮箱属性
auths.verify_group_membership=验证组成员身份
auths.group_search_base_dn=组搜索基准 DN
auths.group_filter=组名称过滤
auths.group_attribute_contain_user_list=包含用户的组属性
auths.user_attribute_listed_in_group=组内用户属性
auths.attributes_in_bind=从 Bind DN 中拉取属性信息
auths.filter=用户过滤规则
auths.admin_filter=管理员过滤规则
@@ -953,9 +1139,9 @@ auths.enable_tls=启用 TLS 加密
auths.skip_tls_verify=忽略 TLS 验证
auths.pam_service_name=PAM 服务名称
auths.enable_auto_register=允许授权用户自动注册
auths.tips=帮助提示
auths.edit=编辑认证设置
auths.activated=该授权认证已经启用
auths.default_auth=该授权认证将作为默认登录源
auths.new_success=新的授权源 "%s" 添加成功!
auths.update_success=认证设置更新成功!
auths.update=更新认证设置
@@ -964,7 +1150,9 @@ auths.delete_auth_title=删除认证操作
auths.delete_auth_desc=该认证将被删除。是否继续?
auths.still_in_used=此认证仍旧与一些用户有关联,请先删除或者将这些用户转换为其它登录类型。
auths.deletion_success=授权源删除成功!
auths.login_source_exist=登录源 '%s' 已存在。
config.not_set=(未设置)
config.server_config=服务器配置
config.app_name=应用名称
config.app_ver=应用版本
@@ -974,10 +1162,9 @@ config.offline_mode=离线模式
config.disable_router_log=关闭路由日志
config.run_user=运行用户
config.run_mode=运行模式
config.repo_root_path=仓库根目录
config.git_version=Git 版本
config.static_file_root_path=静态文件根目录
config.log_file_root_path=日志文件根目录
config.script_type=脚本类型
config.reverse_auth_user=反向代理认证
config.ssh_config=SSH 配置
@@ -987,11 +1174,25 @@ config.ssh_domain=域名
config.ssh_port=端口
config.ssh_listen_port=监听端口
config.ssh_root_path=根目录
config.ssh_rewrite_authorized_keys_at_start=在启动时重写 authorized_keys 文件
config.ssh_key_test_path=密钥测试路径
config.ssh_keygen_path=密钥生成器('ssh-keygen')路径
config.ssh_minimum_key_size_check=密钥最小长度检查
config.ssh_minimum_key_sizes=密钥最小长度限制
config.repo_config=仓库配置
config.repo_root_path=仓库根目录
config.script_type=脚本类型
config.repo_force_private=强制设为私有
config.max_creation_limit=可创建数量限制
config.preferred_licenses=推荐许可证
config.disable_http_git=禁用 HTTP Git 操作
config.enable_local_path_migration=启用本地路径迁移
config.commits_fetch_concurrency=代码提交拉取并发量
config.http_config=HTTP 配置
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=数据库配置
config.db_type=数据库类型
config.db_host=主机地址
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL 模式
config.db_ssl_mode_helper=(仅限 "postgres" 使用)
config.db_path=数据库路径
config.db_path_helper=(用于 "sqlite3" 和 "tidb"
config.service_config=服务配置
config.register_email_confirm=注册邮件确认
config.disable_register=关闭注册功能
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=禁用密钥最小长度检查
config.enable_captcha=启用验证码服务
config.active_code_lives=激活用户链接有效期
config.reset_password_code_lives=重置密码链接有效期
config.webhook_config=Web 钩子配置
config.queue_length=队列长度
config.deliver_timeout=推送超时
config.skip_tls_verify=忽略 TLS 验证
config.mailer_config=邮件配置
config.mailer_enabled=启用服务
config.mailer_disable_helo=禁用 HELO 操作
config.mailer_name=发送者名称
config.mailer_subject_prefix=主题前缀
config.mailer_host=邮件主机地址
config.mailer_user=发送者帐号
config.send_test_mail=发送测试邮件
config.test_mail_failed=发送测试邮件至 '%s' 时失败:%v
config.test_mail_sent=测试邮件已经发送至 '%s'。
config.oauth_config=社交帐号配置
config.oauth_enabled=启用服务
config.cache_config=Cache 配置
config.cache_adapter=Cache 适配器
config.cache_interval=Cache 周期
config.cache_conn=Cache 连接字符串
config.session_config=Session 配置
config.session_provider=Session 提供者
config.provider_config=提供者配置
@@ -1039,11 +1246,27 @@ config.gc_interval_time=GC 周期
config.session_life_time=Session 生命周期
config.https_only=仅限 HTTPS
config.cookie_life_time=Cookie 生命周期
config.picture_config=图片配置
config.picture_service=图片服务
config.disable_gravatar=禁用 Gravatar 头像
config.enable_federated_avatar=启用 Federated Avatars
config.git_config=Git 配置
config.git_disable_diff_highlight=禁用差异对比语法高亮
config.git_max_diff_lines=差异对比显示的最大行数(单个文件)
config.git_max_diff_line_characters=差异对比显示的最大字符数(单行)
config.git_max_diff_files=差异对比显示的最大文件数
config.git_gc_args=GC 参数
config.git_migrate_timeout=迁移操作超时
config.git_mirror_timeout=镜像更新操作超时
config.git_clone_timeout=克隆操作超时
config.git_pull_timeout=拉取操作超时
config.git_gc_timeout=GC 操作超时
config.log_config=日志配置
config.log_mode=日志模式
config.log_mode=模式
config.log_options=选项
monitor.cron=Cron 任务
monitor.name=任务名称
@@ -1074,22 +1297,29 @@ notices.delete_success=系统提示删除成功!
create_repo=创建了仓库 <a href="%s">%s</a>
rename_repo=重命名仓库 <code>%[1]s</code> 为 <a href="%[2]s">%[3]s</a>
commit_repo=推送了 <a href="%[1]s/src/%[2]s">%[3]s</a> 分支的代码到 <a href="%[1]s">%[4]s</a>
compare_commits=对比 %d 次代码提交
transfer_repo=将仓库 <code>%s</code> 转移至 <a href="%s">%s</a>
create_issue=`创建了工单 <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`关闭了工单 <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`重新开启了工单 <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`评论了工单 <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`创建了合并请求 <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`关闭了合并请求 <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`重新开启了合并请求 <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`评论了工单 <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`合并了合并请求 <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=将仓库 <code>%s</code> 转移至 <a href="%s">%s</a>
create_branch=创建了新的分支 <a href="%[1]s/src/%[2]s">%[3]s</a> 到 <a href="%[1]s">%[4]s</a>
delete_branch=删除了 <a href="%[1]s">%[3]s</a> 的分支 <code>%[2]s</code>
push_tag=推送了标签 <a href="%s/src/%s">%[2]s</a> 到 <a href="%[1]s">%[3]s</a>
compare_commits=对比 %d 次代码提交
delete_tag=删除了 <a href="%[1]s">%[3]s</a> 的标签 <code>%[2]s</code>
fork_repo=派生了仓库 <a href="%s">%s</a>
mirror_sync_push=从镜像同步了 <a href="%[1]s/src/%[2]s">%[3]s</a> 分支的代码到 <a href="%[1]s">%[4]s</a>
mirror_sync_create=从镜像同步了新的引用 <a href="%s/src/%s">%[2]s</a> 到 <a href="%[1]s">%[3]s</a>
mirror_sync_delete=从镜像同步并从 <a href="%[1]s">%[3]s</a> 删除了引用 <code>%[2]s</code>
[tool]
ago=之前
from_now=之后
now=现在
now=刚刚
1s=1 秒%s
1m=1 分钟%s
1h=1 小时%s

View File

@@ -48,7 +48,7 @@ cancel=取消
install=安裝頁面
title=首次安裝步驟
docker_helper=如果您正在使用 Docker 容器運行 Gogs請務必先仔細閱讀 <a target="_blank" href="%s">官方文檔</a> 後再對本頁面進行填寫。
requite_db_desc=Gogs 要求安裝 MySQLPostgreSQLSQLite3 TiDB
requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3, MSSQL or TiDB.
db_title=數據庫設置
db_type=資料庫類型
host=主機
@@ -58,9 +58,8 @@ db_name=資料庫名稱
db_helper=如果您使用 MySQL請使用 INNODB 引擎以及 utf8_general_ci 字符集。
ssl_mode=SSL 模式
path=數據庫文件路徑
sqlite_helper=SQLite3 或 TiDB 資料庫檔案路徑。<br>作為以服務執行時,請使用絕對路徑。
err_empty_db_path=SQLite3 或 TiDB 的數據庫路徑不能為空。
err_invalid_tidb_name=TiDB 數據庫名稱不允許包含字符 "." 或 "-" 。
sqlite_helper=The file path of SQLite3 database. <br>Please use absolute path when you start as service.
err_empty_db_path=SQLite3 database path cannot be empty.
no_admin_and_disable_registration=您不能夠在未創建管理員用戶的情況下禁止註冊。
err_empty_admin_password=管理員密碼不能為空。
@@ -75,12 +74,16 @@ domain=域名
domain_helper=該設置影響 SSH 複製地址。
ssh_port=SSH 埠
ssh_port_helper=您的 SSH 服務正在使用此埠號若要禁用SSH 功能請保持欄位空白。
use_builtin_ssh_server=Use Builtin SSH Server
use_builtin_ssh_server_popup=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
http_port=HTTP 端口號
http_port_helper=應用監聽的端口號
app_url=應用程式網址
app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
log_root_path=日誌路徑
log_root_path_helper=寫入日誌檔目錄
enable_console_mode=Enable Console Mode
enable_console_mode_popup=In addition to file mode, also print logs to console.
optional_title=可選設置
email_title=電子郵件服務設定
@@ -96,6 +99,8 @@ offline_mode=啓用離線模式
offline_mode_popup=在部署模式下也禁用從 CDN 獲取文件,所有的資源將從本地伺服器獲取。
disable_gravatar=禁用 Gravatar 服務
disable_gravatar_popup=禁用 Gravatar 和自定義源,僅使用由用戶上傳或默認的頭像。
federated_avatar_lookup=Enable Federated Avatars Lookup
federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
disable_registration=禁止用戶自主註冊
disable_registration_popup=禁止用戶自主註冊功能,只有管理員可以添加帳號。
enable_captcha=啟用驗證碼服務
@@ -114,6 +119,8 @@ sqlite3_not_available=您所使用的發行版本不支持 SQLite3請從 %s
invalid_db_setting=數據庫設置不正確:%v
invalid_repo_path=倉庫根目錄設置不正確:%v
run_user_not_match=執行系統用戶非當前用戶:%s -> %s
smtp_host_missing_port=SMTP Host is missing port in address.
invalid_smtp_from=SMTP From field is not valid: %v
save_config_failed=應用配置保存失敗:%v
invalid_admin_setting=管理員帳戶設置不正確:%v
install_success=您好!我們很高興您選擇使用 Gogs祝您使用愉快代碼從此無 BUG
@@ -135,6 +142,7 @@ issues.in_your_repos=屬於該用戶倉庫的
[explore]
repos=探索倉庫
users=用戶
organizations=Organizations
search=搜索
[auth]
@@ -143,6 +151,8 @@ register_hepler_msg=已經註冊?立即登錄!
social_register_hepler_msg=已經註冊?立即綁定!
disable_register_prompt=對不起,註冊功能已被關閉。請聯系網站管理員。
disable_register_mail=對不起,註冊郵箱確認功能已被關閉。
auth_source=Authentication Source
local=Local
remember_me=記住登錄
forgot_password=忘記密碼
forget_password=忘記密碼?
@@ -154,7 +164,6 @@ prohibit_login_desc=Your account is prohibited to login, please contact site adm
resent_limit_prompt=對不起,您請求發送激活郵件過於頻繁,請等待 3 分鐘後再試!
has_unconfirmed_mail=%s 您好,您有一封發送至( <b>%s</b>) 但未被確認的郵件。如果您未收到激活郵件,或需要重新發送,請單擊下方的按鈕。
resend_mail=單擊此處重新發送確認郵件
email_not_associate=您輸入的郵箱地址未被關聯到任何帳號!
send_reset_mail=單擊此處(重新)發送您的密碼重置郵件
reset_password=重置密碼
invalid_code=對不起,您的確認代碼已過期或已失效。
@@ -162,6 +171,14 @@ reset_password_helper=單擊此處重置密碼
password_too_short=密碼長度不能少於 6 位!
non_local_account=Non-local accounts cannot change passwords through Gogs.
login_two_factor=Two-factor Authentication
login_two_factor_passcode=Authentication Passcode
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
login_two_factor_recovery_code=Recovery Code
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
[mail]
activate_account=請激活您的帳戶
activate_email=請驗證您的郵箱地址
@@ -187,9 +204,17 @@ TeamName=團隊名稱
AuthName=認證名稱
AdminEmail=管理員郵箱
NewBranchName=New branch name
CommitSummary=Commit summary
CommitMessage=Commit message
CommitChoice=Commit choice
TreeName=File path
Content=內容
require_error=不能為空。
alpha_dash_error=必須為英文字母、阿拉伯數字或橫線(-_
alpha_dash_dot_error=必須為英文字母、阿拉伯數字、橫線(-_或點。
alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
size_error=長度必須為 %s。
min_size_error=長度最小為 %s 個字符。
max_size_error=長度最大為 %s 個字符。
@@ -206,6 +231,7 @@ org_name_been_taken=組織名稱已經被佔用。
team_name_been_taken=團隊名稱已經被佔用。
email_been_used=郵箱地址已經被使用。
username_password_incorrect=用戶名或密碼不正確。
auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=請檢查您輸入的倉庫名稱是正確。
enterred_invalid_owner_name=請檢查您輸入的新所有者用戶名是否正確。
enterred_invalid_password=請檢查您輸入的密碼是否正確。
@@ -239,12 +265,13 @@ form.name_pattern_not_allowed=用戶名不允許 '%s' 的格式。
[settings]
profile=個人信息
password=修改密碼
avatar=頭像
ssh_keys=管理 SSH 密鑰
social=社交帳號綁定
applications=管理授權應用
security=安全
repos=倉庫
orgs=管理組織
applications=管理授權應用
delete=刪除帳戶
uid=用戶 ID
public_profile=公開信息
profile_desc=您的郵箱地址將會被公開,並被用於接收帳戶的所有提醒和通知。
@@ -259,6 +286,8 @@ change_username_prompt=該操作將會影響到所有與您帳戶有關的鏈接
continue=繼續操作
cancel=取消操作
lookup_avatar_by_mail=Lookup Avatar by mail
federated_avatar_lookup=Federated Avatar Lookup
enable_custom_avatar=啟動自定義頭像
choose_new_avatar=選擇新的頭像
update_avatar=更新頭像設置
@@ -308,10 +337,31 @@ no_activity=沒有最近活動
key_state_desc=該密鑰在 7 天內被使用過
token_state_desc=此token在過去七天內曾經被使用過
manage_social=管理關聯社交帳戶
social_desc=以下是與您帳戶所關聯的社交帳號,如果您發現有陌生的關聯,請立即解除綁定!
unbind=解除綁定
unbind_success=社交帳號解除綁定成功!
two_factor=Two-factor Authentication
two_factor_status=狀態:
two_factor_on=開啟
two_factor_off=關閉
two_factor_enable=啟用
two_factor_disable=禁用
two_factor_view_recovery_codes=View and save <a href="%s%s">your recovery codes</a> in a safe place. You can use them as passcode if you lose access to your authentication application.
two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use <a href="%[1]s%[2]s">Personal Access Token</a> as your credential, e.g. <code>%[3]s</code>.
two_factor_enable_title=Enable Two-factor Authentication
two_factor_scan_qr=Please use your authentication application to scan the image:
two_factor_or_enter_secret=或者輸入密碼:
two_factor_then_enter_passcode=然後輸入驗證碼:
two_factor_verify=驗證
two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
two_factor_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, <b>please keep these codes in a safe place</b>.
two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
two_factor_disable_title=Disable Two-factor Authentication
two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=管理個人操作令牌
generate_new_token=生成新的令牌
@@ -325,6 +375,15 @@ access_token_deletion=刪除個人的連接token
access_token_deletion_desc=刪除此連接token將會刪除與相關應用程式的連結。您想要繼續嗎?
delete_token_success=您的連接token已成功刪除。請記得更新您的應用程式。
orgs.none=You are not a member of any organizations.
orgs.leave_title=Leave organization
orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
repos.leave=Leave
repos.leave_title=Leave repository
repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
repos.leave_success=You have left repository '%s' successfully!
delete_account=刪除當前帳戶
delete_prompt=刪除操作會永久清除您的帳戶信息,並且 <strong>不可恢復</strong>
confirm_delete_account=確認刪除帳戶
@@ -345,7 +404,7 @@ fork_from=派生自
fork_visiblity_helper=派生倉庫無法修改可見性。
repo_desc=倉庫描述
repo_lang=倉庫語言
repo_lang_helper=請選擇 .gitignore 文件
repo_gitignore_helper=Select .gitignore templates
license=授權許可
license_helper=請選擇授權許可文件
readme=Readme
@@ -358,9 +417,12 @@ mirror_prune_desc=Remove any remote-tracking references that no longer exist on
mirror_interval=鏡像同步周期(小時)
mirror_address=鏡像地址
mirror_address_desc=請在位址中包括必要的使用者憑據。
mirror_last_synced=Last Synced
watchers=關注者
stargazers=稱讚者
forks=派生倉庫
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=擁有者已達到儲存庫最大的新增上限 %d。
form.name_reserved=倉庫名稱 '%s' 是被保留的。
@@ -371,14 +433,14 @@ migrate_type=遷移類型
migrate_type_helper=該倉庫將是一個 <span class="text blue">鏡像</span>
migrate_repo=遷移倉庫
migrate.clone_address=複製地址
migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT URL 或本地服務器路徑。
migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL.
migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=您並沒有導入本地倉庫的權限。
migrate.invalid_local_path=無效的本地路徑,該路徑不存在或不是一個目錄!
migrate.failed=遷移失敗:%v
mirror_from=镜像来自
forked_from=派生自
fork_from_self=無法派生已經擁有的倉庫!
copy_link=複製連結
copy_link_success=複製成功!
copy_link_error=請按下 ⌘-C 或 Ctrl-C 複製
@@ -394,9 +456,9 @@ quick_guide=快速幫助
clone_this_repo=複製當前倉庫
create_new_repo_command=從命令行創建一個新的倉庫
push_exist_repo=從命令行推送已經創建的倉庫
repo_is_empty=這倉庫不包含任何內容,請稍後再訪問!
bare_message=This repository does not have any content yet.
code=代碼
files=Files
branch=分支
tree=目錄樹
filter_branch_and_tag=過濾分支或標籤
@@ -407,13 +469,63 @@ pulls=合併請求
labels=標籤
milestones=里程碑
commits=提交歷史
git_branches=Branches
releases=版本發佈
file_raw=原始文件
file_history=文件歷史
file_view_raw=查看原始文件
file_permalink=永久連結
file_too_large=This file is too large to be shown
video_not_supported_in_browser=Your browser doesn't support HTML5 video tag.
branches.overview=Overview
branches.active_branches=Active Branches
branches.stale_branches=Stale Branches
branches.all=All Branches
branches.updated_by=Updated %[1]s by %[2]s
branches.change_default_branch=Change Default Branch
editor.new_file=New file
editor.upload_file=Upload file
editor.edit_file=Edit file
editor.preview_changes=Preview Changes
editor.cannot_edit_non_text_files=Cannot edit non-text files
editor.edit_this_file=Edit this file
editor.must_be_on_a_branch=You must be on a branch to make or propose changes to this file
editor.fork_before_edit=You must fork this repository before editing the file
editor.delete_this_file=Delete this file
editor.must_have_write_access=You must have write access to make or propose changes to this file
editor.file_delete_success=File '%s' has been deleted successfully!
editor.name_your_file=Name your file...
editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
editor.or=or
editor.cancel_lower=cancel
editor.commit_changes=Commit Changes
editor.add_tmpl=Add '%s/<filename>'
editor.add=Add '%s'
editor.update=Update '%s'
editor.delete=Delete '%s'
editor.commit_message_desc=Add an optional extended description...
editor.commit_directly_to_this_branch=Commit directly to the <strong class="branch-name">%s</strong> branch.
editor.create_new_branch=Create a <strong>new branch</strong> for this commit and start a pull request.
editor.new_branch_name_desc=New branch name...
editor.cancel=Cancel
editor.filename_cannot_be_empty=Filename cannot be empty.
editor.branch_already_exists=Branch '%s' already exists in this repository.
editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
editor.file_changed_while_editing=File content has been changed since you started editing. <a target="_blank" href="%s">Click here</a> to see what have been changed or <strong>press commit again</strong> to overwrite those changes.
editor.file_already_exists=A file with name '%s' already exists in this repository.
editor.no_changes_to_show=There are no changes to show.
editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Add subdirectory...
editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir=Upload files to '%s'
commits.commit_history=Commit History
commits.commits=次代碼提交
commits.search=搜索提交歷史
commits.find=查找
@@ -439,6 +551,11 @@ issues.create=創建問題
issues.new_label=創建標籤
issues.new_label_placeholder=標籤名稱...
issues.create_label=創建標籤
issues.label_templates.title=Load a predefined set of labels
issues.label_templates.info=There aren't any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
issues.label_templates.helper=Select a label set
issues.label_templates.use=Use this label set
issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
issues.open_tab=%d 個開啓中
issues.close_tab=%d 個已關閉
issues.filter_label=標籤篩選
@@ -480,8 +597,7 @@ issues.commit_ref_at=`在代碼提交 <a id="%[1]s" href="#%[1]s">%[2]s</a> 中
issues.poster=發佈者
issues.collaborator=協同者
issues.owner=所有者
issues.sign_up_for_free=免費註冊
issues.sign_in_require_desc=及加入到對話當中。如果您已經註冊,可以直接 <a href="%s">登錄及評論</a>
issues.sign_in_require_desc=<a href="%s">Sign in</a> to join this conversation.
issues.edit=編輯
issues.cancel=取消
issues.save=保存
@@ -496,6 +612,8 @@ issues.label_deletion=刪除標籤
issues.label_deletion_desc=刪除該標籤將會移除所有問題中相關的訊息。是否繼續?
issues.label_deletion_success=標籤刪除成功!
issues.num_participants=%d 參與者
issues.attachment.open_tab=`Click to see "%s" in a new tab`
issues.attachment.download=`Click to download "%s"`
pulls.new=創建合併請求
pulls.compare_changes=對比文件變化
@@ -505,6 +623,7 @@ pulls.compare_compare=對比文件變化
pulls.filter_branch=過濾分支
pulls.no_results=未找到結果
pulls.nothing_to_compare=基準和對比分支代碼已經同步,無需進行對比。
pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`已經存在目標分支的合併請求:<a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=創建合併請求
pulls.title_desc=請求將 %[1]d 次代碼提交從 <code>%[2]s</code> 合併至 <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=該合併請求正在進行衝突檢查,請稍後再刷新
pulls.can_auto_merge_desc=這個拉請求可以自動合併。
pulls.cannot_auto_merge_desc=由於存在衝突,不能自動合併這推送請求。
pulls.cannot_auto_merge_helper=請手動合併來解決衝突。
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.commit_description=Commit Description
pulls.merge_pull_request=合併請求
pulls.open_unmerged_pull_exists=`由於已經存在來自相同倉庫和合併信息的未合併請求(#%d您無法執行重新開啟操作。`
pulls.delete_branch=Delete Branch
pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=新的里程碑
milestones.open_tab=%d 開啟中
@@ -572,26 +696,61 @@ settings.collaboration.admin=Admin
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.undefined=Undefined
settings.branches=Branches
settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
settings.default_branch=Default Branch
settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
settings.update=Update
settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
settings.update_default_branch_success=Default branch of this repository has been updated successfully!
settings.protected_branches=Protected Branches
settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
settings.choose_a_branch=Choose a branch...
settings.branch_protection=Branch Protection
settings.branch_protection_desc=Please choose protect options for branch <b>%s</b>.
settings.protect_this_branch=Protect this branch
settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
settings.protect_require_pull_request=Require pull request instead direct pushing
settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
settings.protect_whitelist_committers=Whitelist who can push to this branch
settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
settings.protect_whitelist_users=Users who can push to this branch
settings.protect_whitelist_search_users=Search users
settings.protect_whitelist_teams=Teams for which members of them can push to this branch
settings.protect_whitelist_search_teams=Search teams
settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=管理 Web 鉤子
settings.githooks=管理 Git 鉤子
settings.basic_settings=基本設置
settings.mirror_settings=Mirror Settings
settings.sync_mirror=Sync Now
settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
settings.site=官方網站
settings.update_settings=更新倉庫設置
settings.change_reponame_prompt=該操作將會影響到所有與該倉庫有關的鏈接
settings.advanced_settings=高級設置
settings.wiki_desc=啟用 Wiki 以允許用戶協作文檔
settings.wiki_desc=Enable wiki system
settings.use_internal_wiki=Use builtin wiki
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=使用外部 wiki
settings.external_wiki_url=外部 Wiki 連結
settings.external_wiki_url_desc=當分頁上按一下,訪客將會重新導到 URL。
settings.issues_desc=啟用內置的輕量級問題管理系統
settings.issues_desc=Enable issue tracker
settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=使用外部的問題管理系統
settings.external_tracker_url=External Issue Tracker URL
settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format=外部問題管理系統的 URL 格式
settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_url_format_desc=您可以使用 <code>{user} {repo} {index}</code> 分別作為用戶名、倉庫名和問題索引的占位符。
settings.pulls_desc=啟用合併請求以接受社區貢獻
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=危險操作區
settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=新的倉庫擁有者已經存在同名倉庫!
settings.convert=轉換為正規倉庫
settings.convert_desc=您可以將此鏡像轉成正規倉庫。此動做不可逆。
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=Repository wiki data have been erased successfull
settings.delete=刪除本倉庫
settings.delete_desc=刪除倉庫操作不可逆轉,請三思而後行。
settings.delete_notices_1=- 此操作 <strong>不可以</strong> 被回滾。
settings.delete_notices_2=- 此操作將永久刪除該倉庫,包括 Git 數據、 問題、 評論和協作者的操作權限。
settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=倉庫刪除成功!
settings.update_settings_success=倉庫設置更新成功!
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=This user will no longer have collaboration
settings.remove_collaborator_success=被操作的協作者已經被收回權限!
settings.search_user_placeholder=搜索用戶...
settings.org_not_allowed_to_be_collaborator=Organization is not allowed to be added as a collaborator.
settings.user_is_org_member=被操作的用戶是組織成員,因此無法添加為協作者!
settings.add_webhook=添加 Web 鉤子
settings.hooks_desc=Web 鉤子允許您設定在 Gogs 上發生指定事件時對指定 URL 發送 POST 通知。查看 <a target="_blank" href="%s">Webhooks 文檔</a> 獲取更多信息。
settings.webhook_deletion=刪除 Web 鉤子
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Web 鉤子刪除成功!
settings.webhook.test_delivery=測試推送
settings.webhook.test_delivery_desc=生成並推送一個模擬的 Push 事件
settings.webhook.test_delivery_success=測試推送已經加入到隊列,請耐心等待數秒再刷新推送記錄。
settings.webhook.redelivery=Redelivery
settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=請求內容
settings.webhook.response=響應內容
settings.webhook.headers=標題
@@ -649,6 +809,7 @@ settings.add_webhook_desc=我們會通過 <code>POST</code> 請求將訂閱事
settings.payload_url=推送地址
settings.content_type=數據格式
settings.secret=密鑰文本
settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via <code>X-Gogs-Signature</code> header.
settings.slack_username=服務名稱
settings.slack_icon_url=圖標 URL
settings.slack_color=顏色代碼
@@ -658,8 +819,20 @@ settings.event_send_everything=推送 <strong>所有</strong> 事件
settings.event_choose=讓我選擇我的需要
settings.event_create=創建
settings.event_create_desc=創建分支或標籤
settings.event_delete=Delete
settings.event_delete_desc=Branch or tag deleted
settings.event_fork=Fork
settings.event_fork_desc=Repository forked
settings.event_push=推送
settings.event_push_desc=Git 倉庫推送
settings.event_issues=Issues
settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
settings.event_issue_comment=Issue Comment
settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
settings.event_release=Release
settings.event_release_desc=Release published in a repository.
settings.active=是否激活
settings.active_helper=當指定事件發生時我們將會觸發此 Web 鉤子。
settings.add_hook_success=Web 鉤子添加成功!
@@ -669,10 +842,13 @@ settings.delete_webhook=刪除 Web 鉤子
settings.recent_deliveries=最近推送記錄
settings.hook_type=鉤子類型
settings.add_slack_hook_desc=為您的倉庫增加 <a href="%s">Slack</a> 集成。
settings.add_discord_hook_desc=Add <a href="%s">Discord</a> integration to your repository.
settings.add_dingtalk_hook_desc=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.slack_token=令牌
settings.slack_domain=域名
settings.slack_channel=頻道
settings.deploy_keys=管理部署密鑰
settings.deploy_keys_helper=<b>Common Gotcha!</b> If you're looking for adding personal public keys, please add them in your <a href="%s%s">account settings</a>.
settings.add_deploy_key=添加部署密鑰
settings.deploy_key_desc=部署密鑰僅具有隻讀權限,它在功能上和個人用戶的公開密鑰有本質區別。
settings.no_deploy_keys=您還沒有添加任何部署密鑰。
@@ -684,6 +860,8 @@ settings.add_key_success=新的部署密鑰 '%s' 添加成功!
settings.deploy_key_deletion=刪除部署密鑰
settings.deploy_key_deletion_desc=刪除該部署密鑰會移除本倉庫所有相關的操作權限。是否繼續?
settings.deploy_key_deletion_success=刪除部署密鑰成功!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=瀏覽代碼
diff.parent=父節點
@@ -702,7 +880,6 @@ release.releases=版本發佈
release.new_release=發佈新版本
release.draft=草稿
release.prerelease=預發佈版本
release.stable=穩定
release.edit=編輯
release.ahead=在該版本發佈之後已有 <strong>%d</strong> 次代碼提交到 %s 分支
release.source_code=源代碼
@@ -751,6 +928,7 @@ team_permission_desc=請選擇該團隊所具有的權限等級:
form.name_reserved=組織名稱 '%s' 是被保留的。
form.name_pattern_not_allowed=組織名稱不允許 '%s' 的格式。
form.team_name_reserved=Team name '%s' is reserved.
settings=組織設置
settings.options=基本設置
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=對倉庫進行垃圾回收
dashboard.git_gc_repos_success=所有倉庫的垃圾回收已成功完成!
dashboard.resync_all_sshkeys=重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gogs 的密鑰也會被刪除)
dashboard.resync_all_sshkeys_success=所有公鑰重新生成成功!
dashboard.resync_all_update_hooks=重新生成所有倉庫的 Update 鈎子(用於被修改的自定義配置文件)
dashboard.resync_all_update_hooks_success=已成功重新生成所有倉庫的 Update 鈎子!
dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialized successfully.
@@ -917,12 +1095,14 @@ repos.private=私有庫
repos.watches=關註數
repos.stars=讚好數
repos.issues=問題數
repos.size=Size
auths.auth_manage_panel=認證管理面板
auths.auth_sources=Authentication Sources
auths.new=添加新認證源
auths.name=認證名稱
auths.type=認證類型
auths.enabled=已啟用
auths.default=Default
auths.updated=最後更新時間
auths.auth_type=認證類型
auths.auth_name=認證名稱
@@ -931,15 +1111,21 @@ auths.domain=域名
auths.host=主機地址
auths.port=主機端口
auths.bind_dn=綁定DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=綁定密碼
auths.bind_password_helper=警告:該密碼將會以明文的形式保存在數據庫中。請不要使用擁有高權限的帳戶!
auths.user_base=用戶搜索基準
auths.user_dn=User DN
auths.attribute_username=用戶名屬性
auths.attribute_username_placeholder=留空表示使用用戶登錄時所使用的用戶名
auths.attribute_name=名子屬性
auths.attribute_name=First Name Attribute
auths.attribute_surname=姓氏屬性
auths.attribute_mail=電子郵箱屬性
auths.verify_group_membership=Verify group membership
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Fetch attributes in Bind DN context
auths.filter=使用者篩選器
auths.admin_filter=管理者篩選器
@@ -953,9 +1139,9 @@ auths.enable_tls=啟用 TLS 加密
auths.skip_tls_verify=忽略 TLS 驗證
auths.pam_service_name=PAM 服務名稱
auths.enable_auto_register=允許授權用戶自動註冊
auths.tips=幫助提示
auths.edit=編輯認證設置
auths.activated=該授權認證已經啟用
auths.default_auth=This authentication is default login source
auths.new_success=新的認證源 "%s" 添加成功!
auths.update_success=認證設置更新成功!
auths.update=更新認證設置
@@ -964,7 +1150,9 @@ auths.delete_auth_title=刪除認證操作
auths.delete_auth_desc=該認證將被刪除。是否繼續?
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=認證源刪除成功!
auths.login_source_exist=Login source '%s' already exists.
config.not_set=(not set)
config.server_config=服務器配置
config.app_name=應用名稱
config.app_ver=應用版本
@@ -974,10 +1162,9 @@ config.offline_mode=離線模式
config.disable_router_log=關閉路由日志
config.run_user=執行用戶
config.run_mode=執行模式
config.repo_root_path=倉庫根目錄
config.git_version=Git Version
config.static_file_root_path=靜態文件根目錄
config.log_file_root_path=日志文件根目錄
config.script_type=腳本類型
config.reverse_auth_user=反向代理認證
config.ssh_config=SSH 配置
@@ -987,11 +1174,25 @@ config.ssh_domain=Domain
config.ssh_port=
config.ssh_listen_port=監聽埠
config.ssh_root_path=根路徑
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=金鑰測試路徑
config.ssh_keygen_path=金鑰產生 (' ssh-keygen ') 路徑
config.ssh_minimum_key_size_check=金鑰最小大小檢查
config.ssh_minimum_key_sizes=金鑰最小大小
config.repo_config=Repository Configuration
config.repo_root_path=倉庫根目錄
config.script_type=腳本類型
config.repo_force_private=Force Private
config.max_creation_limit=Max Creation Limit
config.preferred_licenses=Preferred Licenses
config.disable_http_git=Disable HTTP Git
config.enable_local_path_migration=Enable Local Path Migration
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=數據庫配置
config.db_type=數據庫類型
config.db_host=主機地址
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL 模式
config.db_ssl_mode_helper=(僅限 "postgres" 使用)
config.db_path=數據庫路徑
config.db_path_helper=(用於 "sqlite3" 和 "tidb"
config.service_config=服務配置
config.register_email_confirm=註冊電子郵件確認
config.disable_register=關閉註冊功能
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=禁用密鑰最小長度檢查
config.enable_captcha=啟用驗證碼服務
config.active_code_lives=激活用戶連結有效期
config.reset_password_code_lives=重置密碼連結有效期
config.webhook_config=Web 鉤子配置
config.queue_length=隊列長度
config.deliver_timeout=推送超時
config.skip_tls_verify=忽略 TLS 驗證
config.mailer_config=郵件配置
config.mailer_enabled=啟用服務
config.mailer_disable_helo=禁用 HELO 操作
config.mailer_name=發送者名稱
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=郵件主機地址
config.mailer_user=發送者帳號
config.send_test_mail=發送測試郵件
config.test_mail_failed=無法向 '%s' 發送測試郵件: %v
config.test_mail_sent=測試電子郵件已發送到 '%s'。
config.oauth_config=社交帳號配置
config.oauth_enabled=啟用服務
config.cache_config=Cache 配置
config.cache_adapter=Cache 適配器
config.cache_interval=Cache 周期
config.cache_conn=Cache 連接字符串
config.session_config=Session 配置
config.session_provider=Session 提供者
config.provider_config=提供者配置
@@ -1039,11 +1246,27 @@ config.gc_interval_time=垃圾收集周期
config.session_life_time=Session 生命周期
config.https_only=僅限 HTTPS
config.cookie_life_time=Cookie 生命周期
config.picture_config=圖片配置
config.picture_service=圖片服務
config.disable_gravatar=禁用 Gravatar 頭像
config.enable_federated_avatar=Enable Federated Avatars
config.git_config=Git Configuration
config.git_disable_diff_highlight=Disable Diff Syntax Highlight
config.git_max_diff_lines=Max Diff Lines (for a single file)
config.git_max_diff_line_characters=Max Diff Characters (for a single line)
config.git_max_diff_files=Max Diff Files (to be shown)
config.git_gc_args=GC Arguments
config.git_migrate_timeout=Migration Timeout
config.git_mirror_timeout=Mirror Update Timeout
config.git_clone_timeout=Clone Operation Timeout
config.git_pull_timeout=Pull Operation Timeout
config.git_gc_timeout=GC Operation Timeout
config.log_config=日誌配置
config.log_mode=日誌模式
config.log_mode=Mode
config.log_options=Options
monitor.cron=Cron 任務
monitor.name=任務名稱
@@ -1074,17 +1297,24 @@ notices.delete_success=系統提示刪除成功!
create_repo=創建了儲存庫 <a href="%s">%s</a>
rename_repo=重新命名倉庫 <code>%[1]s</code> 為 <a href="%[2]s">%[3]s</a>
commit_repo=推送了 <a href="%[1]s/src/%[2]s">%[3]s</a> 分支的代碼到 <a href="%[1]s">%[4]s</a>
compare_commits=查看 %d 次提交的內容比對
transfer_repo=將儲存庫 <code>%s</code> 轉移至 <a href="%s">%s</a>
create_issue=`創建了問題 <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`closed issue <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`reopened issue <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`評論了問題 <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`創建了合併請求 <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`closed pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`reopened pull request <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`評論了問題 <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`合併了合併請求 <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=將儲存庫 <code>%s</code> 轉移至 <a href="%s">%s</a>
create_branch=created new branch <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=deleted branch <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
push_tag=推送了標籤 <a href="%s/src/%s">%[2]s</a> 到 <a href="%[1]s">%[3]s</a>
compare_commits=查看 %d 次提交的內容比對
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
fork_repo=forked a repository to <a href="%s">%s</a>
mirror_sync_push=synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create=synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror
mirror_sync_delete=synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
[tool]
ago=之前

View File

@@ -1,7 +1,7 @@
app_desc=基於 Go 語言的自助 Git 服務
app_desc=一款極易搭建的自助 Git 服務
home=首頁
dashboard=控制面
dashboard=控制面
explore=探索
help=說明
sign_in=登入
@@ -35,7 +35,7 @@ manage_org=管理組織
admin_panel=管理面板
account_settings=帳號設定
settings=設定
your_profile=個人資
your_profile=個人資
your_settings=用戶設定
activities=活動
@@ -48,8 +48,8 @@ cancel=取消
install=安裝頁面
title=首次安裝步驟
docker_helper=如果您正在使用 Docker 容器運行 Gogs請務必先仔細閱讀 <a target="_blank" href="%s">官方文檔</a> 後再對本頁面進行填寫。
requite_db_desc=Gogs 要安裝 MySQL、PostgreSQL、SQLite3 或 TiDB。
db_title=數據庫設
requite_db_desc=Gogs 要安裝 MySQL、PostgreSQL、SQLite3、MSSQL 或 TiDB 其中一項
db_title=資料庫設
db_type=資料庫類型
host=主機
user=帳號
@@ -57,10 +57,9 @@ password=密碼
db_name=資料庫名稱
db_helper=如果您使用 MySQL請使用 INNODB 引擎以及 utf8_general_ci 字符集。
ssl_mode=SSL 模式
path=數據庫文件路徑
sqlite_helper=SQLite3 或 TiDB 資料庫檔案路徑。<br>作為以服務執行時,請使用絕對路徑。
err_empty_db_path=SQLite3 或 TiDB 的數據庫路徑不為空。
err_invalid_tidb_name=TiDB 數據庫名稱不允許包含字符 "." 或 "-" 。
path=路徑
sqlite_helper=SQLite3 資料庫檔案路徑。<br>請務必在啟動服務時使用絕對路徑。
err_empty_db_path=SQLite3 資料庫路徑不可以為空。
no_admin_and_disable_registration=您不能夠在未創建管理員用戶的情況下禁止註冊。
err_empty_admin_password=管理員密碼不能為空。
@@ -75,12 +74,16 @@ domain=域名
domain_helper=該設置影響 SSH 複製地址。
ssh_port=SSH 埠
ssh_port_helper=您的 SSH 服務正在使用此埠號若要禁用SSH 功能請保持欄位空白。
use_builtin_ssh_server=使用內建的 SSH 伺服器
use_builtin_ssh_server_popup=啟用內建的 SSH 伺服器作為 Git 操作,使其與系統的 SSH 守護行程隔離 。
http_port=HTTP 端口號
http_port_helper=應用監聽的端口號
app_url=應用程式網址
app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
log_root_path=日誌路徑
log_root_path_helper=寫入日誌檔目錄
enable_console_mode=開啟主控台模式
enable_console_mode_popup=除了使用檔案模式之外, 還要將日誌列印到控制台。
optional_title=可選設置
email_title=電子郵件服務設定
@@ -96,8 +99,10 @@ offline_mode=啓用離線模式
offline_mode_popup=在部署模式下也禁用從 CDN 獲取文件,所有的資源將從本地伺服器獲取。
disable_gravatar=禁用 Gravatar 服務
disable_gravatar_popup=禁用 Gravatar 和自定義源,僅使用由用戶上傳或默認的頭像。
federated_avatar_lookup=開啟聯合頭像查詢
federated_avatar_lookup_popup=開啟聯合頭像查詢並使用基於開放源碼的 libravatar 服務
disable_registration=禁止用戶自主註冊
disable_registration_popup=禁止用戶自主註冊功能,只有管理員可以添加帳號。
disable_registration_popup=禁止用戶註冊功能,只有管理員可以添加帳號。
enable_captcha=啟用驗證碼服務
enable_captcha_popup=要求在用戶註冊時輸入驗證碼
require_sign_in_view=啓用登錄訪問限制
@@ -111,10 +116,12 @@ admin_email=管理員郵箱
install_gogs=立即安裝
test_git_failed=無法識別 'git' 命令:%v
sqlite3_not_available=您所使用的發行版本不支持 SQLite3請從 %s 下載官方構建版,而不是 gobuild 版本。
invalid_db_setting=數據庫設不正確%v
invalid_db_setting=資料庫設不正確: %v
invalid_repo_path=倉庫根目錄設置不正確:%v
run_user_not_match=執行系統用戶非當前用戶:%s -> %s
save_config_failed=應用配置保存失敗:%v
smtp_host_missing_port=SMTP 主機缺少位址中的埠。
invalid_smtp_from=SMTP 寄件者欄位無效﹔%v
save_config_failed=設定儲存失敗:%v
invalid_admin_setting=管理員帳戶設置不正確:%v
install_success=您好!我們很高興您選擇使用 Gogs祝您使用愉快代碼從此無 BUG
invalid_log_root_path=日誌根目錄無效: %v
@@ -124,7 +131,7 @@ uname_holder=用戶名或郵箱
password_holder=密碼
switch_dashboard_context=切換控制面版用戶
my_repos=我的倉庫
show_more_repos=Show more repositories...
show_more_repos=顯示更多倉庫...
collaborative_repos=參與協作的倉庫
my_orgs=我的組織
my_mirrors=我的鏡像
@@ -135,6 +142,7 @@ issues.in_your_repos=屬於該用戶倉庫的
[explore]
repos=探索倉庫
users=用戶
organizations=組織
search=搜索
[auth]
@@ -143,18 +151,19 @@ register_hepler_msg=已經註冊?立即登錄!
social_register_hepler_msg=已經註冊?立即綁定!
disable_register_prompt=對不起,註冊功能已被關閉。請聯系網站管理員。
disable_register_mail=對不起,註冊郵箱確認功能已被關閉。
auth_source=認證來源
local=本地
remember_me=記住登錄
forgot_password=忘記密碼
forget_password=忘記密碼?
sign_up_now=還沒帳戶?馬上註冊。
confirmation_mail_sent_prompt=一封新的確認郵件已經被發送至 <b>%s</b>,請檢查您的收件箱並在 %d 小時內完成確認註冊操作。
active_your_account=激活您的帳戶
prohibit_login=Login Prohibited
prohibit_login_desc=Your account is prohibited to login, please contact site admin.
prohibit_login=禁止登錄
prohibit_login_desc=您的帳戶被停用,請聯繫網站管理員。
resent_limit_prompt=對不起,您請求發送激活郵件過於頻繁,請等待 3 分鐘後再試!
has_unconfirmed_mail=%s 您好,您有一封發送至( <b>%s</b>) 但未被確認的郵件。如果您未收到激活郵件,或需要重新發送,請單擊下方的按鈕。
resend_mail=單擊此處重新發送確認郵件
email_not_associate=您輸入的郵箱地址未被關聯到任何帳號!
send_reset_mail=單擊此處(重新)發送您的密碼重置郵件
reset_password=重置密碼
invalid_code=對不起,您的確認代碼已過期或已失效。
@@ -162,6 +171,14 @@ reset_password_helper=單擊此處重置密碼
password_too_short=密碼長度不能少於 6 位!
non_local_account=非本地帳戶無法通過 Gogs 修改密碼。
login_two_factor=兩步驗證
login_two_factor_passcode=驗證碼
login_two_factor_enter_recovery_code=鍵入兩部驗證碼
login_two_factor_recovery=兩步恢復
login_two_factor_recovery_code=恢復代碼
login_two_factor_enter_passcode=鍵入兩步驗證碼
login_two_factor_invalid_recovery_code=恢復代碼已使用或無效。
[mail]
activate_account=請激活您的帳戶
activate_email=請驗證您的郵箱地址
@@ -180,16 +197,24 @@ RepoName=儲存庫名稱
Email=郵箱地址
Password=密碼
Retype=確認密碼
SSHTitle=SSH 鑰名稱
SSHTitle=SSH 鑰名稱
HttpsUrl=HTTPS URL 地址
PayloadUrl=推送地址
TeamName=團隊名稱
AuthName=認證名稱
AdminEmail=管理員郵箱
NewBranchName=新的分支名稱
CommitSummary=提交摘要
CommitMessage=提交訊息
CommitChoice=提交選擇
TreeName=檔案路徑
Content=內容
require_error=不能為空。
alpha_dash_error=必須為英文字母、阿拉伯數字或橫線(-_
alpha_dash_dot_error=必須為英文字母、阿拉伯數字、橫線(-_或點。
alpha_dash_dot_slash_error=` 必須是合法的英文字母、數字、分隔符號(-_)、半形句點或斜線。`
size_error=長度必須為 %s。
min_size_error=長度最小為 %s 個字符。
max_size_error=長度最大為 %s 個字符。
@@ -206,6 +231,7 @@ org_name_been_taken=組織名稱已經被佔用。
team_name_been_taken=團隊名稱已經被佔用。
email_been_used=郵箱地址已經被使用。
username_password_incorrect=用戶名或密碼不正確。
auth_source_mismatch=此用戶未與所用的認證來源相關聯
enterred_invalid_repo_name=請檢查您輸入的倉庫名稱是正確。
enterred_invalid_owner_name=請檢查您輸入的新所有者用戶名是否正確。
enterred_invalid_password=請檢查您輸入的密碼是否正確。
@@ -237,14 +263,15 @@ form.name_reserved=用戶名 '%s' 是被保留的。
form.name_pattern_not_allowed=用戶名不允許 '%s' 的格式。
[settings]
profile=個人信息
profile=個人資訊
password=修改密碼
avatar=頭像
ssh_keys=管理 SSH 密鑰
social=社交帳號綁定
applications=管理授權應用
security=安全
repos=倉庫
orgs=管理組織
applications=管理授權應用
delete=刪除帳戶
uid=用戶 ID
public_profile=公開信息
profile_desc=您的郵箱地址將會被公開,並被用於接收帳戶的所有提醒和通知。
@@ -253,12 +280,14 @@ full_name=自定義名稱
website=個人網站
location=所在地區
update_profile=更新信息
update_profile_success=您的個人信息更新成功!
update_profile_success=您的個人資訊更新成功!
change_username=用戶名將被修改
change_username_prompt=該操作將會影響到所有與您帳戶有關的鏈接
continue=繼續操作
cancel=取消操作
lookup_avatar_by_mail=通過信箱查找頭像
federated_avatar_lookup=Federated Avatar 查詢
enable_custom_avatar=啟動自定義頭像
choose_new_avatar=選擇新的頭像
update_avatar=更新頭像設置
@@ -292,7 +321,7 @@ manage_ssh_keys=管理 SSH 密鑰
add_key=增加密鑰
ssh_desc=以下是與您帳戶所關聯的 SSH 密鑰,如果您發現有陌生的密鑰,請立即刪除它!
ssh_helper=<strong>需要幫助嗎?</strong> 請查看有關 <a href="%s"> 如何生成 SSH 密鑰</a> 的指南或 <a href="%s"> SSH 的常見問題</a> 的疑難排解。
add_new_key=增加 SSH
add_new_key=增加 SSH
ssh_key_been_used=公共密鑰已經被使用
ssh_key_name_used=使用相同名稱的公共密鑰已經存在!
key_name=密鑰名稱
@@ -308,10 +337,31 @@ no_activity=沒有最近活動
key_state_desc=該密鑰在 7 天內被使用過
token_state_desc=此token在過去七天內曾經被使用過
manage_social=管理關聯社交帳戶
social_desc=以下是與您帳戶所關聯的社交帳號,如果您發現有陌生的關聯,請立即解除綁定!
unbind=解除綁定
unbind_success=社交帳號解除綁定成功!
two_factor=兩步驗證
two_factor_status=狀態:
two_factor_on=開啟
two_factor_off=關閉
two_factor_enable=啟用
two_factor_disable=禁用
two_factor_view_recovery_codes=在安全的地方查看並保存 <a href="%s%s"> 您的恢復代碼 </a>。如果您失去對身份驗證應用程式的存取權限, 則可以將它們用作密碼。
two_factor_http=對於HTTP/HTTPS操作您不能使用用戶名稱和密碼作為憑據。請創建和使用<a href=“%[1]s%[2]s”>個人操作令牌</a>作為您的憑據,如<code>%[3]s</code>。
two_factor_enable_title=啟用兩步驗證
two_factor_scan_qr=請使用您的身份驗證應用程式掃描圖像:
two_factor_or_enter_secret=或輸入密碼: %s
two_factor_then_enter_passcode=然後輸入驗證碼:
two_factor_verify=驗證
two_factor_invalid_passcode=您輸入的密碼無效,請再試一次。
two_factor_reused_passcode=您输入的验证码已经被使用过了,请换一个重试!
two_factor_enable_error=啟用兩步驗證失敗: %v
two_factor_enable_success=您帳戶的兩步驗證已成功啟用!
two_factor_recovery_codes_title=兩步驗證恢復代碼
two_factor_recovery_codes_desc=當您無法存取您的認證應用程式時,可以使用救援代碼。每個救援代碼只能使用一次,因此 <b>請在安全的地方妥善保存您的救援代碼</b>。
two_factor_regenerate_recovery_codes=重新生成恢復代碼
two_factor_regenerate_recovery_codes_error=重新生成恢復代碼失敗: %v
two_factor_regenerate_recovery_codes_success=已成功生成新的恢復代碼!
two_factor_disable_title=停用兩步驗證
two_factor_disable_desc=停用兩步驗證後,您的帳戶安全級別將降低。是否繼續?
two_factor_disable_success=您帳戶的兩步驗證已成功停用!
manage_access_token=管理個人操作令牌
generate_new_token=生成新的令牌
@@ -325,6 +375,15 @@ access_token_deletion=刪除個人的連接token
access_token_deletion_desc=刪除此連接token將會刪除與相關應用程式的連結。您想要繼續嗎?
delete_token_success=您的連接token已成功刪除。請記得更新您的應用程式。
orgs.none=您現在還不是任何組織的成員。
orgs.leave_title=離開組織
orgs.leave_desc=離開組織後,所有與組織相關的倉庫和團隊權限將被取消。是否繼續?
repos.leave=離開
repos.leave_title=離開存儲庫
repos.leave_desc=在你離開後,您將無法進入到存儲庫。你想要繼續嗎?
repos.leave_success=您已經成功退出「%s」版本庫
delete_account=刪除當前帳戶
delete_prompt=刪除操作會永久清除您的帳戶信息,並且 <strong>不可恢復</strong>
confirm_delete_account=確認刪除帳戶
@@ -345,7 +404,7 @@ fork_from=派生自
fork_visiblity_helper=派生倉庫無法修改可見性。
repo_desc=倉庫描述
repo_lang=倉庫語言
repo_lang_helper=選擇 .gitignore 文件
repo_gitignore_helper=選擇 .gitignore 主題
license=授權許可
license_helper=請選擇授權許可文件
readme=Readme
@@ -358,9 +417,12 @@ mirror_prune_desc=當遠程追蹤的引用被刪除時本地也會同步刪除
mirror_interval=鏡像同步周期(小時)
mirror_address=鏡像地址
mirror_address_desc=請在位址中包括必要的使用者憑據。
mirror_last_synced=上次同步
watchers=關注者
stargazers=稱讚者
forks=派生倉庫
repo_description_helper=Description of repository. Maximum 512 characters length.
repo_description_length=Available characters
form.reach_limit_of_creation=擁有者已達到儲存庫最大的新增上限 %d。
form.name_reserved=倉庫名稱 '%s' 是被保留的。
@@ -371,14 +433,14 @@ migrate_type=遷移類型
migrate_type_helper=該倉庫將是一個 <span class="text blue">鏡像</span>
migrate_repo=遷移倉庫
migrate.clone_address=複製地址
migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT URL 或本地服務器路徑
migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT 類型的 URL
migrate.clone_address_desc_import_local=您還可以用本地服務器路徑來遷移倉庫。
migrate.permission_denied=您並沒有導入本地倉庫的權限。
migrate.invalid_local_path=無效的本地路徑,該路徑不存在或不是一個目錄!
migrate.failed=遷移失敗:%v
mirror_from=镜像来自
forked_from=派生自
fork_from_self=無法派生已經擁有的倉庫!
copy_link=複製連結
copy_link_success=複製成功!
copy_link_error=請按下 ⌘-C 或 Ctrl-C 複製
@@ -394,9 +456,9 @@ quick_guide=快速幫助
clone_this_repo=複製當前倉庫
create_new_repo_command=從命令行創建一個新的倉庫
push_exist_repo=從命令行推送已經創建的倉庫
repo_is_empty=這倉庫不包含任何內容,請稍後再訪問!
bare_message=此版本庫空空如也。
code=代碼
files=檔案
branch=分支
tree=目錄樹
filter_branch_and_tag=過濾分支或標籤
@@ -407,13 +469,63 @@ pulls=合併請求
labels=標籤
milestones=里程碑
commits=提交歷史
git_branches=分支列表
releases=版本發佈
file_raw=原始文件
file_history=文件歷史
file_view_raw=查看原始文件
file_permalink=永久連結
file_too_large=This file is too large to be shown
file_too_large=檔案太大,無法顯示
video_not_supported_in_browser=您的瀏覽器不支援 HTML5 影片播放標籤。
branches.overview=概覽
branches.active_branches=活躍分支
branches.stale_branches=陳舊分支
branches.all=所有分支
branches.updated_by=%[2]s 更新了 %[1]s
branches.change_default_branch=變更預設分支
editor.new_file=開新檔案
editor.upload_file=上傳檔案
editor.edit_file=編輯文件
editor.preview_changes=預覽更改
editor.cannot_edit_non_text_files=不能編輯非文字檔
editor.edit_this_file=編輯此文件
editor.must_be_on_a_branch=你必須在一個分支或提出對此檔的更改
editor.fork_before_edit=你必須在編輯檔案之前備份此檔案
editor.delete_this_file=刪除此文件
editor.must_have_write_access=您必須具有寫存取權限,或提出對此檔案的更改
editor.file_delete_success=已成功刪除 '%s'
editor.name_your_file=命名您的檔...
editor.filename_help=輸入名稱後按下 / 鍵即可新增資料夾或將滑鼠移至輸入格最左側按下Backspace移除資料夾。
editor.or=
editor.cancel_lower=取消
editor.commit_changes=提交更改嗎?
editor.add_tmpl=添加%s/<filename>'
editor.add=新增 '%s'
editor.update=更新 '%s'
editor.delete=刪除 '%s'
editor.commit_message_desc=添加一個可選的擴展描述...
editor.commit_directly_to_this_branch=直接提交到 <strong class="branch-name">%s</strong> 分支。
editor.create_new_branch=創建 <strong>新的分支</strong> 為此提交和開始合併請求。
editor.new_branch_name_desc=新的分支名稱...
editor.cancel=取消
editor.filename_cannot_be_empty=檔案名不能為空。
editor.branch_already_exists='%s' 已存在於此存儲庫。
editor.directory_is_a_file='%s' 在此倉庫中的路徑是檔案而不是目錄。
editor.file_is_a_symlink=檔案 '%s' 是一個符號連結,不能從 web 編輯器修改。
editor.filename_is_a_directory=檔案名 '%s' 是此資料庫中的現有目錄。
editor.file_editing_no_longer_exists=檔 '%s' 您正在編輯不再存在於資料庫。
editor.file_changed_while_editing=從您開始編輯已更改檔的內容。<a target="_blank"href="%s"> 按一下此處</a> 以查看什麼發生了更改或 <strong>按提交再</strong> 覆蓋這些更改。
editor.file_already_exists=帶有名稱 '%s' 的檔已經存在在這個資料庫中。
editor.no_changes_to_show=沒有可以顯示的變更。
editor.fail_to_update_file=上傳/創建檔案 '%s' 失敗, 錯誤訊息: %v
editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=新增子目錄...
editor.unable_to_upload_files=上傳檔案失敗到 '%s', 錯誤訊息: %v
editor.upload_files_to_dir=上傳檔案到 '%s'
commits.commit_history=提交歷史
commits.commits=次代碼提交
commits.search=搜索提交歷史
commits.find=查找
@@ -439,6 +551,11 @@ issues.create=創建問題
issues.new_label=創建標籤
issues.new_label_placeholder=標籤名稱...
issues.create_label=創建標籤
issues.label_templates.title=載入一組預定義的標籤
issues.label_templates.info=沒有任何標籤。你可以點選上面創建一個或按下面"新建標籤"按鈕來使用一組預定義。
issues.label_templates.helper=選擇一個標籤集
issues.label_templates.use=使用此標籤集
issues.label_templates.fail_to_load_file=載入標籤範本檔案 '%s' 失敗: %v
issues.open_tab=%d 個開啓中
issues.close_tab=%d 個已關閉
issues.filter_label=標籤篩選
@@ -466,8 +583,8 @@ issues.next=下一頁
issues.open_title=開啟中
issues.closed_title=已關閉
issues.num_comments=%d 條評論
issues.commented_at=`commented <a href="#%s">%s</a>`
issues.delete_comment_confirm=Are you sure you want to delete this comment?
issues.commented_at=` 評論 <a href="#%s"> %s'</a>`
issues.delete_comment_confirm=您確定要刪除該條評論嗎?
issues.no_content=尚未有任何內容
issues.close_issue=關閉
issues.close_comment_issue=關閉及評論
@@ -480,8 +597,7 @@ issues.commit_ref_at=`在代碼提交 <a id="%[1]s" href="#%[1]s">%[2]s</a> 中
issues.poster=發佈者
issues.collaborator=協同者
issues.owner=所有者
issues.sign_up_for_free=免費註冊
issues.sign_in_require_desc=及加入到對話當中。如果您已經註冊,可以直接 <a href="%s">登錄及評論</a>
issues.sign_in_require_desc=<a href="%s"> 登入</a> 才能加入這對話。
issues.edit=編輯
issues.cancel=取消
issues.save=保存
@@ -496,6 +612,8 @@ issues.label_deletion=刪除標籤
issues.label_deletion_desc=刪除該標籤將會移除所有問題中相關的訊息。是否繼續?
issues.label_deletion_success=標籤刪除成功!
issues.num_participants=%d 參與者
issues.attachment.open_tab=`在新的標籤頁中查看 '%s'`
issues.attachment.download=`點擊下載 '%s'`
pulls.new=創建合併請求
pulls.compare_changes=對比文件變化
@@ -505,6 +623,7 @@ pulls.compare_compare=對比文件變化
pulls.filter_branch=過濾分支
pulls.no_results=未找到結果
pulls.nothing_to_compare=基準和對比分支代碼已經同步,無需進行對比。
pulls.nothing_merge_base=因為兩個分支有完全不同的提交紀錄,因此無法比較。
pulls.has_pull_request=`已經存在目標分支的合併請求:<a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=創建合併請求
pulls.title_desc=請求將 %[1]d 次代碼提交從 <code>%[2]s</code> 合併至 <code>%[3]s</code>
@@ -520,8 +639,13 @@ pulls.is_checking=該合併請求正在進行衝突檢查,請稍後再刷新
pulls.can_auto_merge_desc=這個拉請求可以自動合併。
pulls.cannot_auto_merge_desc=由於存在衝突,不能自動合併這推送請求。
pulls.cannot_auto_merge_helper=請手動合併來解決衝突。
pulls.create_merge_commit=創建一個合併提交
pulls.rebase_before_merging=合併前先 Rebase
pulls.commit_description=Commit Description
pulls.merge_pull_request=合併請求
pulls.open_unmerged_pull_exists=`由於已經存在來自相同倉庫和合併信息的未合併請求(#%d您無法執行重新開啟操作。`
pulls.delete_branch=刪除分支
pulls.delete_branch_has_new_commits=該分支在合併完成後又推送了新的提交,無法執行刪除。
milestones.new=新的里程碑
milestones.open_tab=%d 開啟中
@@ -572,26 +696,61 @@ settings.collaboration.admin=管理權限
settings.collaboration.write=可寫權限
settings.collaboration.read=可讀權限
settings.collaboration.undefined=未定義
settings.branches=分支列表
settings.branches_bare=您無法管理空版本庫。請先推送一些內容至版本庫。
settings.default_branch=預設分支
settings.default_branch_desc=預設分支是程式碼 commit、pull requests 及線上編輯的基準分支。
settings.update=更新
settings.update_default_branch_unsupported=伺服器的 Git 版本不支援變更預設分支。
settings.update_default_branch_success=這個 repository 的預設分支更新成功!
settings.protected_branches=保護分支
settings.protected_branches_desc=保護分支不被強制 Push、意外刪除以及限制 Commit 者白名單
settings.choose_a_branch=選擇一個分支
settings.branch_protection=分支保護
settings.branch_protection_desc=請選擇分支 <b>%s</b> 的保護選項。
settings.protect_this_branch=保護這個分支
settings.protect_this_branch_desc=停用強制Push及分支刪除。
settings.protect_require_pull_request=請使用 pull request 來更新(合併)程式碼。
settings.protect_require_pull_request_desc=啟用這個選項之後,程式碼將無法直接 Push 到這個分支,所有 Commit 必須先 Push 到另一個非保護的分支,再透過 Pull Request 來要求合併。
settings.protect_whitelist_committers=限制誰可以 Push 到這個分支
settings.protect_whitelist_committers_desc=新增成員或團隊到允許直接 push 到這個分支的白名單。白名單中的使用者將會略過 pull request 的檢查。
settings.protect_whitelist_users=限制那些使用者可以 push 到這個分支
settings.protect_whitelist_search_users=搜尋用戶
settings.protect_whitelist_teams=團隊的成員可以 push 到這個分支
settings.protect_whitelist_search_teams=搜尋團隊
settings.update_protect_branch_success=此分支設置保護已更新成功!
settings.hooks=管理 Web 鉤子
settings.githooks=管理 Git 鉤子
settings.basic_settings=基本設置
settings.mirror_settings=鏡像設定
settings.sync_mirror=立即同步
settings.mirror_sync_in_progress=鏡像同步正在進行中,請大約一分鐘後刷新頁面。
settings.site=官方網站
settings.update_settings=更新倉庫設置
settings.change_reponame_prompt=該操作將會影響到所有與該倉庫有關的鏈接
settings.advanced_settings=高級設置
settings.wiki_desc=用 Wiki 以允許用戶協作文檔
settings.wiki_desc=用 Wiki 系統
settings.use_internal_wiki=使用內建 wiki
settings.allow_public_wiki_desc=當版本庫為私有狀態時,允許 Wiki 的公開存取。
settings.use_external_wiki=使用外部 wiki
settings.external_wiki_url=外部 Wiki 連結
settings.external_wiki_url_desc=當分頁上按一下,訪客將會重新導到 URL。
settings.issues_desc=啟用內置的輕量級問題管理系統
settings.issues_desc=啟用問題追蹤
settings.use_internal_issue_tracker=使用內建輕量級問題追蹤
settings.allow_public_issues_desc=當版本庫為私有狀態時,允許議題的公開存取。
settings.use_external_issue_tracker=使用外部的問題管理系統
settings.external_tracker_url=外部Issue Tracker網址
settings.external_tracker_url_desc=當訪客在分頁上按一下,他們將會重新導向到 URL。
settings.tracker_url_format=外部問題管理系統的 URL 格式
settings.tracker_issue_style=外部公單管理系統命名風格:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_issue_style.numeric=數字
settings.tracker_issue_style.alphanumeric=字母及數字
settings.tracker_url_format_desc=您可以使用 <code>{user} {repo} {index}</code> 分別作為用戶名、倉庫名和問題索引的占位符。
settings.pulls_desc=啟用合併請求以接受社區貢獻
settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
settings.pulls.ignore_whitespace=忽略空白符號的更改
settings.pulls.allow_rebase_merge=允許使用 rebase 合併提交
settings.danger_zone=危險操作區
settings.cannot_fork_to_same_owner=你不可以 fork 一個 repository 到它的擁有者。
settings.new_owner_has_same_repo=新的倉庫擁有者已經存在同名倉庫!
settings.convert=轉換為正規倉庫
settings.convert_desc=您可以將此鏡像轉成正規倉庫。此動做不可逆。
@@ -610,7 +769,7 @@ settings.wiki_deletion_success=儲存庫 wiki 資料已成功清除。
settings.delete=刪除本倉庫
settings.delete_desc=刪除倉庫操作不可逆轉,請三思而後行。
settings.delete_notices_1=- 此操作 <strong>不可以</strong> 被回滾。
settings.delete_notices_2=- 此作將永久刪除該倉庫,包 Git 數據、 問題、 評論和協作者的操作權限。
settings.delete_notices_2=- 此作將永久移除版本庫,包含了 Git 資料、議題、留言與協作者的存取權限。
settings.delete_notices_fork_1=- 刪除後所有的派生倉庫將會成為獨立倉庫
settings.deletion_success=倉庫刪除成功!
settings.update_settings_success=倉庫設置更新成功!
@@ -626,7 +785,6 @@ settings.collaborator_deletion_desc=刪除後此使用者將不再有協同者
settings.remove_collaborator_success=被操作的協作者已經被收回權限!
settings.search_user_placeholder=搜索用戶...
settings.org_not_allowed_to_be_collaborator=組織不允許被加為協同者。
settings.user_is_org_member=被操作的用戶是組織成員,因此無法添加為協作者!
settings.add_webhook=添加 Web 鉤子
settings.hooks_desc=Web 鉤子允許您設定在 Gogs 上發生指定事件時對指定 URL 發送 POST 通知。查看 <a target="_blank" href="%s">Webhooks 文檔</a> 獲取更多信息。
settings.webhook_deletion=刪除 Web 鉤子
@@ -635,6 +793,8 @@ settings.webhook_deletion_success=Web 鉤子刪除成功!
settings.webhook.test_delivery=測試推送
settings.webhook.test_delivery_desc=生成並推送一個模擬的 Push 事件
settings.webhook.test_delivery_success=測試推送已經加入到隊列,請耐心等待數秒再刷新推送記錄。
settings.webhook.redelivery=重新傳送
settings.webhook.redelivery_success=任務「%s」已經重新加入至隊列。可能需要幾秒鐘來更新歷史的隊列狀態
settings.webhook.request=請求內容
settings.webhook.response=響應內容
settings.webhook.headers=標題
@@ -649,6 +809,7 @@ settings.add_webhook_desc=我們會通過 <code>POST</code> 請求將訂閱事
settings.payload_url=推送地址
settings.content_type=數據格式
settings.secret=密鑰文本
settings.secret_desc=密鑰將會以 SHA256 HMAC 的十六進位數字放進<code>X-Gogs-Signature</code> 標頭中送出。
settings.slack_username=服務名稱
settings.slack_icon_url=圖標 URL
settings.slack_color=顏色代碼
@@ -658,8 +819,20 @@ settings.event_send_everything=推送 <strong>所有</strong> 事件
settings.event_choose=讓我選擇我的需要
settings.event_create=創建
settings.event_create_desc=創建分支或標籤
settings.event_delete=刪除
settings.event_delete_desc=分支或標籤已經被刪除
settings.event_fork=Fork
settings.event_fork_desc=Repository 已經 fork
settings.event_push=推送
settings.event_push_desc=Git 倉庫推送
settings.event_issues=Issues
settings.event_issues_desc=已經開啟、關閉、重啟、修改、指派、取消指派、更新標籤、清除標籤、新增里程碑或刪除里程碑的 issue。
settings.event_pull_request=合併請求
settings.event_pull_request_desc=已經開啟、關閉、重啟、編輯、指派、解除指派、更新標籤、清除標籤、新增里程碑、刪除里程碑或同步的 pull request。
settings.event_issue_comment=Issue 評論
settings.event_issue_comment_desc=已經建立、編輯或刪除的 Issue 評論。
settings.event_release=Release
settings.event_release_desc=Release 將發佈在一個 repository 中。
settings.active=是否激活
settings.active_helper=當指定事件發生時我們將會觸發此 Web 鉤子。
settings.add_hook_success=Web 鉤子添加成功!
@@ -669,10 +842,13 @@ settings.delete_webhook=刪除 Web 鉤子
settings.recent_deliveries=最近推送記錄
settings.hook_type=鉤子類型
settings.add_slack_hook_desc=為您的倉庫增加 <a href="%s">Slack</a> 集成。
settings.add_discord_hook_desc=Hook <a href="%s">Discord</a> 到你的 repository。
settings.add_dingtalk_hook_desc=在您的版本庫增加 <a href="%s">Dingtalk</a> 整合
settings.slack_token=令牌
settings.slack_domain=域名
settings.slack_channel=頻道
settings.deploy_keys=管理部署密鑰
settings.deploy_keys_helper=<b>噢不!</b> 如果要新增個人的公開金鑰,請到 <a href="%s%s">用戶設定</a> 新增。
settings.add_deploy_key=添加部署密鑰
settings.deploy_key_desc=部署密鑰僅具有隻讀權限,它在功能上和個人用戶的公開密鑰有本質區別。
settings.no_deploy_keys=您還沒有添加任何部署密鑰。
@@ -684,6 +860,8 @@ settings.add_key_success=新的部署密鑰 '%s' 添加成功!
settings.deploy_key_deletion=刪除部署密鑰
settings.deploy_key_deletion_desc=刪除該部署密鑰會移除本倉庫所有相關的操作權限。是否繼續?
settings.deploy_key_deletion_success=刪除部署密鑰成功!
settings.description_desc=Description of repository. Maximum 512 characters length.
settings.description_length=Available characters
diff.browse_source=瀏覽代碼
diff.parent=父節點
@@ -695,14 +873,13 @@ diff.show_unified_view=統一視圖
diff.stats_desc=共有 <strong> %d 個文件被更改</strong>,包括 <strong>%d 次插入</strong> 和 <strong>%d 次删除</strong>
diff.bin=二進制
diff.view_file=查看文件
diff.file_suppressed=File diff suppressed because it is too large
diff.file_suppressed=文件差異過大導致無法顯示
diff.too_many_files=部分文件因文件數量過多而無法顯示
release.releases=版本發佈
release.new_release=發佈新版本
release.draft=草稿
release.prerelease=預發佈版本
release.stable=穩定
release.edit=編輯
release.ahead=在該版本發佈之後已有 <strong>%d</strong> 次代碼提交到 %s 分支
release.source_code=源代碼
@@ -727,7 +904,7 @@ release.deletion=刪除版本發布操作
release.deletion_desc=刪除該版本發布將會移除相應的 Git 標籤。是否繼續?
release.deletion_success=版本發布刪除成功!
release.tag_name_already_exist=已經存在使用相同標籤的發佈版本。
release.tag_name_invalid=Tag name is not valid.
release.tag_name_invalid=標記名稱不是有效的。
release.downloads=下載附件
[org]
@@ -751,6 +928,7 @@ team_permission_desc=請選擇該團隊所具有的權限等級:
form.name_reserved=組織名稱 '%s' 是被保留的。
form.name_pattern_not_allowed=組織名稱不允許 '%s' 的格式。
form.team_name_reserved=團隊名稱 '%s' 已被保留。
settings=組織設置
settings.options=基本設置
@@ -825,7 +1003,7 @@ total=總計:%d
dashboard.statistic=應用統計數據
dashboard.operations=管理員操作
dashboard.system_status=系統監視狀態
dashboard.statistic_info=Gogs 數據庫統計:<b>%d</b> 位用戶,<b>%d</b> 個組織,<b>%d</b> 個公鑰,<b>%d</b> 個倉庫,<b>%d</b> 個倉庫關註,<b>%d</b> 個贊,<b>%d</b> 次行為,<b>%d</b> 條權限記錄,<b>%d</b> 個問題,<b>%d</b> 次評論,<b>%d</b> 個社交帳號,<b>%d</b> 個用戶關註,<b>%d</b> 個鏡像,<b>%d</b> 個版本發佈,<b>%d</b> 個登錄源,<b>%d</b> 個 Web 鉤子,<b>%d</b> 個里程碑,<b>%d</b> 個標籤,<b>%d</b> 個鉤子任務,<b>%d</b> 個團隊,<b>%d</b> 個更新任務,<b>%d</b> 個附件。
dashboard.statistic_info=Gogs 資料庫統計:<b>%d</b> 位用戶,<b>%d</b> 個組織,<b>%d</b> 個公鑰,<b>%d</b> 個倉庫,<b>%d</b> 個倉庫關註,<b>%d</b> 個贊,<b>%d</b> 次行為,<b>%d</b> 條權限記錄,<b>%d</b> 個問題,<b>%d</b> 次評論,<b>%d</b> 個社交帳號,<b>%d</b> 個用戶關註,<b>%d</b> 個鏡像,<b>%d</b> 個版本發佈,<b>%d</b> 個登錄源,<b>%d</b> 個 Web 鉤子,<b>%d</b> 個里程碑,<b>%d</b> 個標籤,<b>%d</b> 個鉤子任務,<b>%d</b> 個團隊,<b>%d</b> 個更新任務,<b>%d</b> 個附件。
dashboard.operation_name=操作名稱
dashboard.operation_switch=開關
dashboard.operation_run=執行
@@ -841,8 +1019,8 @@ dashboard.git_gc_repos=對倉庫進行垃圾回收
dashboard.git_gc_repos_success=所有倉庫的垃圾回收已成功完成!
dashboard.resync_all_sshkeys=重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gogs 的密鑰也會被刪除)
dashboard.resync_all_sshkeys_success=所有公鑰重新生成成功!
dashboard.resync_all_update_hooks=重新生成所有倉庫的 Update 鈎子(用於被修改的自定義配置文件)
dashboard.resync_all_update_hooks_success=已成功重新生成所有倉庫的 Update 鈎子!
dashboard.resync_all_hooks=重新同步所有 repository 的 pre-receive、update、post-receive hooks。
dashboard.resync_all_hooks_success=所有 repository 的 pre-receive、update、post-receive hooks 皆已重新同步成功。
dashboard.reinit_missing_repos=重新初始化所有遺失 Git 檔案的儲存庫記錄
dashboard.reinit_missing_repos_success=所有遺失 Git 檔案的儲存庫已成功重新初始化。
@@ -895,7 +1073,7 @@ users.edit_account=編輯用戶信息
users.max_repo_creation=最大儲存庫新增限制
users.max_repo_creation_desc=(設定 -1 使用全域預設限制)
users.is_activated=該用戶已被激活
users.prohibit_login=This account is prohibited to login
users.prohibit_login=此帳戶禁止登錄
users.is_admin=該用戶具有管理員權限
users.allow_git_hook=該帳戶具有創建 Git 鉤子的權限
users.allow_import_local=該用戶具有導入本地倉庫的權限
@@ -917,12 +1095,14 @@ repos.private=私有庫
repos.watches=關註數
repos.stars=讚好數
repos.issues=問題數
repos.size=大小
auths.auth_manage_panel=認證管理面板
auths.auth_sources=認證來源
auths.new=添加新認證源
auths.name=認證名稱
auths.type=認證類型
auths.enabled=已啟用
auths.default=Default
auths.updated=最後更新時間
auths.auth_type=認證類型
auths.auth_name=認證名稱
@@ -931,15 +1111,21 @@ auths.domain=域名
auths.host=主機地址
auths.port=主機端口
auths.bind_dn=綁定DN
auths.bind_dn_helper=可以使用'%s'作為用戶名稱的預留位置例如DOM\%s
auths.bind_password=綁定密碼
auths.bind_password_helper=警告:該密碼將會以明文的形式保存在數據庫中。請不要使用擁有高權限的帳戶!
auths.user_base=用戶搜索基準
auths.user_dn=User DN
auths.attribute_username=用戶名屬性
auths.attribute_username_placeholder=留空表示使用用戶登錄時所使用的用戶名
auths.attribute_name=名子屬性
auths.attribute_name=歸納名字
auths.attribute_surname=姓氏屬性
auths.attribute_mail=電子郵箱屬性
auths.verify_group_membership=驗證組成員身份
auths.group_search_base_dn=組蒐索基準 DN
auths.group_filter=組篩選器
auths.group_attribute_contain_user_list=包含使用者列表的群組屬性
auths.user_attribute_listed_in_group=組中列出的使用者屬性
auths.attributes_in_bind=從 Bind DN 中獲取屬性信息
auths.filter=使用者篩選器
auths.admin_filter=管理者篩選器
@@ -953,9 +1139,9 @@ auths.enable_tls=啟用 TLS 加密
auths.skip_tls_verify=忽略 TLS 驗證
auths.pam_service_name=PAM 服務名稱
auths.enable_auto_register=允許授權用戶自動註冊
auths.tips=幫助提示
auths.edit=編輯認證設置
auths.activated=該授權認證已經啟用
auths.default_auth=This authentication is default login source
auths.new_success=新的認證源 "%s" 添加成功!
auths.update_success=認證設置更新成功!
auths.update=更新認證設置
@@ -964,7 +1150,9 @@ auths.delete_auth_title=刪除認證操作
auths.delete_auth_desc=該認證將被刪除。是否繼續?
auths.still_in_used=一些使用者仍然使用此驗證方式,請先刪除或轉換這些使用者到其它登入類型。
auths.deletion_success=認證源刪除成功!
auths.login_source_exist=登錄源 '%s' 已存在。
config.not_set=(未設定)
config.server_config=服務器配置
config.app_name=應用名稱
config.app_ver=應用版本
@@ -974,10 +1162,9 @@ config.offline_mode=離線模式
config.disable_router_log=關閉路由日志
config.run_user=執行用戶
config.run_mode=執行模式
config.repo_root_path=倉庫根目錄
config.git_version=Git 版本
config.static_file_root_path=靜態文件根目錄
config.log_file_root_path=日志文件根目錄
config.script_type=腳本類型
config.reverse_auth_user=反向代理認證
config.ssh_config=SSH 配置
@@ -987,12 +1174,26 @@ config.ssh_domain=域名
config.ssh_port=
config.ssh_listen_port=監聽埠
config.ssh_root_path=根路徑
config.ssh_rewrite_authorized_keys_at_start=在啟動時重寫 authorized_keys 檔案
config.ssh_key_test_path=金鑰測試路徑
config.ssh_keygen_path=金鑰產生 (' ssh-keygen ') 路徑
config.ssh_minimum_key_size_check=金鑰最小大小檢查
config.ssh_minimum_key_sizes=金鑰最小大小
config.db_config=數據庫配置
config.repo_config=Repository 設定
config.repo_root_path=倉庫根目錄
config.script_type=腳本類型
config.repo_force_private=強制設為私有
config.max_creation_limit=最大建立限制
config.preferred_licenses=推薦授權
config.disable_http_git=停用 HTTP Git
config.enable_local_path_migration=啟用本地路徑遷移
config.commits_fetch_concurrency=同時Fetch Commit數量
config.http_config=HTTP設定
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=資料庫設定
config.db_type=數據庫類型
config.db_host=主機地址
config.db_name=數據庫名稱
@@ -1001,6 +1202,7 @@ config.db_ssl_mode=SSL 模式
config.db_ssl_mode_helper=(僅限 "postgres" 使用)
config.db_path=數據庫路徑
config.db_path_helper=(用於 "sqlite3" 和 "tidb"
config.service_config=服務配置
config.register_email_confirm=註冊電子郵件確認
config.disable_register=關閉註冊功能
@@ -1011,25 +1213,30 @@ config.disable_key_size_check=禁用密鑰最小長度檢查
config.enable_captcha=啟用驗證碼服務
config.active_code_lives=激活用戶連結有效期
config.reset_password_code_lives=重置密碼連結有效期
config.webhook_config=Web 鉤子配置
config.queue_length=隊列長度
config.deliver_timeout=推送超時
config.skip_tls_verify=忽略 TLS 驗證
config.mailer_config=郵件配置
config.mailer_enabled=啟用服務
config.mailer_disable_helo=禁用 HELO 操作
config.mailer_name=發送者名稱
config.mailer_subject_prefix=主旨前置詞
config.mailer_host=郵件主機地址
config.mailer_user=發送者帳號
config.send_test_mail=發送測試郵件
config.test_mail_failed=無法向 '%s' 發送測試郵件: %v
config.test_mail_sent=測試電子郵件已發送到 '%s'。
config.oauth_config=社交帳號配置
config.oauth_enabled=啟用服務
config.cache_config=Cache 配置
config.cache_adapter=Cache 適配器
config.cache_interval=Cache 周期
config.cache_conn=Cache 連接字符串
config.session_config=Session 配置
config.session_provider=Session 提供者
config.provider_config=提供者配置
@@ -1039,11 +1246,27 @@ config.gc_interval_time=垃圾收集周期
config.session_life_time=Session 生命周期
config.https_only=僅限 HTTPS
config.cookie_life_time=Cookie 生命周期
config.picture_config=圖片配置
config.picture_service=圖片服務
config.disable_gravatar=禁用 Gravatar 頭像
config.enable_federated_avatar=開啟聯合頭像
config.git_config=Git 配置
config.git_disable_diff_highlight=禁用比較語法高亮
config.git_max_diff_lines=Max Diff 線 (對於單個檔)
config.git_max_diff_line_characters=最大比較的字元 (單行)
config.git_max_diff_files=Max Diff 檔 (顯示)
config.git_gc_args=GC 參數
config.git_migrate_timeout=移動超時
config.git_mirror_timeout=鏡像更新超時
config.git_clone_timeout=複製操作超時
config.git_pull_timeout=操作超時
config.git_gc_timeout=GC 操作超時
config.log_config=日誌配置
config.log_mode=日誌模式
config.log_mode=模式
config.log_options=選項
monitor.cron=Cron 任務
monitor.name=任務名稱
@@ -1074,17 +1297,24 @@ notices.delete_success=系統提示刪除成功!
create_repo=創建了儲存庫 <a href="%s">%s</a>
rename_repo=重新命名倉庫 <code>%[1]s</code> 為 <a href="%[2]s">%[3]s</a>
commit_repo=推送了 <a href="%[1]s/src/%[2]s">%[3]s</a> 分支的代碼到 <a href="%[1]s">%[4]s</a>
compare_commits=查看 %d 次提交的內容比對
transfer_repo=將儲存庫 <code>%s</code> 轉移至 <a href="%s">%s</a>
create_issue=`創建了問題 <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`已關閉問題 <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`已重新開啟問題 <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`評論了問題 <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`創建了合併請求 <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`已關閉合併請求 <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`已重新開啟合併請求 <a href="%s/pulls/%s">%s#%[2]s</a>`
comment_issue=`評論了問題 <a href="%s/issues/%s">%s#%[2]s</a>`
merge_pull_request=`合併了合併請求 <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=將儲存庫 <code>%s</code> 轉移至 <a href="%s">%s</a>
create_branch=在 <a href="%[1]s">%[4]s</a> 建立新的分支 <a href="%[1]s/src/%[2]s">%[3]s</a>
delete_branch=已經刪除在 <a href="%[1]s">%[3]s</a> 上的分支 <code>%[2]s</code>
push_tag=推送了標籤 <a href="%s/src/%s">%[2]s</a> 到 <a href="%[1]s">%[3]s</a>
compare_commits=查看 %d 次提交的內容比對
delete_tag=已經刪除在 <a href="%[1]s">%[3]s</a> 上的標籤 <code>%[2]s</code>
fork_repo=已經 fork 一個 repository 到 <a href="%s">%s</a>
mirror_sync_push=已經從鏡像同步了提交 <a href="%[1]s/src/%[2]s">%[3]s</a> 於 <a href="%[1]s">%[4]s</a>
mirror_sync_create=已經從鏡像同步了參考 <a href="%s/src/%s">%[2]s</a> 到 <a href="%[1]s">%[3]s</a>
mirror_sync_delete=已經從鏡像同步並移除了參考 <code>%[2]s</code> 於 <a href="%[1]s">%[3]s</a>
[tool]
ago=之前

View File

@@ -1,12 +1,12 @@
# Docker for Gogs
Visit [Docker Hub](https://hub.docker.com/r/gogs/) see all available images and tags.
Visit [Docker Cloud](https://cloud.docker.com/swarm/gogs/repository/docker/gogs/gogs) / [Docker Store](https://store.docker.com/community/images/gogs/gogs) see all available images and tags.
## Usage
To keep your data out of Docker container, we do a volume (`/var/gogs` -> `/data`) here, and you can change it based on your situation.
```
```sh
# Pull image from Docker Hub.
$ docker pull gogs/gogs
@@ -36,11 +36,15 @@ Directory `/var/gogs` keeps Git repositories and Gogs data:
|-- data
|-- log
### Volume with data container
#### Custom Directory
The "custom" directory may not be obvious in Docker environment. The `/var/gogs/gogs` (in the host) and `/data/gogs` (in the container) is already the "custom" directory and you do not need to create another layer but directly edit corresponding files under this directory.
### Volume With Data Container
If you're more comfortable with mounting data to a data container, the commands you execute at the first time will look like as follows:
```
```sh
# Create data container
docker run --name=gogs-data --entrypoint /bin/true gogs/gogs
@@ -48,9 +52,9 @@ docker run --name=gogs-data --entrypoint /bin/true gogs/gogs
docker run --name=gogs --volumes-from gogs-data -p 10022:22 -p 10080:3000 gogs/gogs
```
#### Using Docker 1.9 Volume command
#### Using Docker 1.9 Volume Command
```
```sh
# Create docker volume.
$ docker volume create --name gogs-data
@@ -65,15 +69,15 @@ $ docker run --name=gogs -p 10022:22 -p 10080:3000 -v gogs-data:/data gogs/gogs
Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
- **Repository Root Path**: keep it as default value `/home/git/gogs-repositories` because `start.sh` already made a symbolic link for you.
- **Run User**: keep it as default value `git` because `start.sh` already setup a user with name `git`.
- **Run User**: keep it as default value `git` because `build.sh` already setup a user with name `git`.
- **Domain**: fill in with Docker container IP (e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine.
- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, but you expose it by `10022:22`, then use `10022` for this value. **Builtin SSH server is not recommended inside Docker Container**
- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, and you expose it by `10080:3000`, but you still use `3000` for this value.
- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, **but** you expose it by `10022:22`, then use `10022` for this value. **Builtin SSH server is not recommended inside Docker Container**
- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, **and** you expose it by `10080:3000`, but you still use `3000` for this value.
- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values (e.g. `http://192.168.99.100:10080/`).
Full documentation of application settings can be found [here](http://gogs.io/docs/advanced/configuration_cheat_sheet.html).
Full documentation of application settings can be found [here](https://gogs.io/docs/advanced/configuration_cheat_sheet.html).
### Container options
### Container Options
This container have some options available via environment variables, these options are opt-in features that can help the administration of this container:
@@ -104,8 +108,12 @@ Steps to upgrade Gogs with Docker:
- `docker pull gogs/gogs`
- `docker stop gogs`
- `docker rm gogs`
- Finally, create container as the first time and don't forget to do same volume and port mapping.
- Finally, create a container for the first time and don't forget to do the same for the volume and port mapping.
## Known Issues
- The docker container can not currently be build on Raspberry 1 (armv6l) as our base image `alpine` does not have a `go` package available for this platform.
- The docker container cannot currently be built on Raspberry 1 (armv6l) as our base image `alpine` does not have a `go` package available for this platform.
## Useful Links
- [Share port 22 between Gogs inside Docker & the local system](http://www.ateijelo.com/blog/2016/07/09/share-port-22-between-docker-gogs-ssh-and-local-system)

3
docker/aarch64/build.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
go build -ldflags "-w -s" resin-xbuild.go

Binary file not shown.

BIN
docker/aarch64/resin-xbuild Executable file

Binary file not shown.

View File

@@ -0,0 +1,66 @@
package main
import (
"log"
"os"
"os/exec"
"syscall"
)
func crossBuildStart() {
err := os.Remove("/bin/sh")
if err != nil {
log.Fatal(err)
}
err = os.Link("/usr/bin/resin-xbuild", "/bin/sh")
if err != nil {
log.Fatal(err)
}
}
func crossBuildEnd() {
err := os.Remove("/bin/sh")
if err != nil {
log.Fatal(err)
}
err = os.Link("/bin/sh.real", "/bin/sh")
if err != nil {
log.Fatal(err)
}
}
func runShell() error {
cmd := exec.Command("/usr/bin/qemu-aarch64-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func main() {
switch os.Args[0] {
case "cross-build-start":
crossBuildStart()
case "cross-build-end":
crossBuildEnd()
case "/bin/sh":
code := 0
crossBuildEnd()
if err := runShell(); err != nil {
code = 1
if exiterr, ok := err.(*exec.ExitError); ok {
if status, ok := exiterr.Sys().(syscall.WaitStatus); ok {
code = status.ExitStatus()
}
}
}
crossBuildStart()
// Hack to bypass apk issues with triggering
code = 0
os.Exit(code)
}
}

3
docker/armhf/build.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
go build -ldflags "-w -s" resin-xbuild.go

BIN
docker/armhf/qemu-arm-static Executable file

Binary file not shown.

BIN
docker/armhf/resin-xbuild Executable file

Binary file not shown.

View File

@@ -0,0 +1,66 @@
package main
import (
"log"
"os"
"os/exec"
"syscall"
)
func crossBuildStart() {
err := os.Remove("/bin/sh")
if err != nil {
log.Fatal(err)
}
err = os.Link("/usr/bin/resin-xbuild", "/bin/sh")
if err != nil {
log.Fatal(err)
}
}
func crossBuildEnd() {
err := os.Remove("/bin/sh")
if err != nil {
log.Fatal(err)
}
err = os.Link("/bin/sh.real", "/bin/sh")
if err != nil {
log.Fatal(err)
}
}
func runShell() error {
cmd := exec.Command("/usr/bin/qemu-arm-static", append([]string{"-0", "/bin/sh", "/bin/sh"}, os.Args[1:]...)...)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func main() {
switch os.Args[0] {
case "cross-build-start":
crossBuildStart()
case "cross-build-end":
crossBuildEnd()
case "/bin/sh":
code := 0
crossBuildEnd()
if err := runShell(); err != nil {
code = 1
if exiterr, ok := err.(*exec.ExitError); ok {
if status, ok := exiterr.Sys().(syscall.WaitStatus); ok {
code = status.ExitStatus()
}
}
}
crossBuildStart()
// Hack to bypass apk issues with triggering
code = 0
os.Exit(code)
}
}

32
docker/build-go.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/sh
# Build GO version as specified in Dockerfile
set -x
set -e
# Components versions
export GOLANG_VERSION="1.8"
export GOLANG_SRC_URL="https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"
export GOLANG_SRC_SHA256="406865f587b44be7092f206d73fc1de252600b79b3cacc587b74b5ef5c623596"
# Install build tools
apk add --no-cache --no-progress --virtual build-deps-go gcc musl-dev openssl go
export GOROOT_BOOTSTRAP="$(go env GOROOT)"
# Download Go
wget -q "$GOLANG_SRC_URL" -O golang.tar.gz
echo "$GOLANG_SRC_SHA256 golang.tar.gz" | sha256sum -c -
tar -C /usr/local -xzf golang.tar.gz
rm golang.tar.gz
# Build
cd /usr/local/go/src
# see https://golang.org/issue/14851
patch -p2 -i /app/gogs/build/docker/no-pic.patch
./make.bash
# Clean
rm /app/gogs/build/docker/*.patch
apk del build-deps-go

View File

@@ -4,33 +4,28 @@ set -e
# Set temp environment vars
export GOPATH=/tmp/go
export PATH=${PATH}:${GOPATH}/bin
export GO15VENDOREXPERIMENT=1
export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin
# Install build deps
apk --no-cache --no-progress add --virtual build-deps build-base linux-pam-dev go
# Install glide
git clone -b 0.10.2 https://github.com/Masterminds/glide ${GOPATH}/src/github.com/Masterminds/glide
cd ${GOPATH}/src/github.com/Masterminds/glide
make build
go install
apk --no-cache --no-progress add --virtual build-deps build-base linux-pam-dev
# Build Gogs
mkdir -p ${GOPATH}/src/github.com/gogits/
ln -s /app/gogs/ ${GOPATH}/src/github.com/gogits/gogs
cd ${GOPATH}/src/github.com/gogits/gogs
glide install
mkdir -p ${GOPATH}/src/github.com/gogs/
ln -s /app/gogs/build ${GOPATH}/src/github.com/gogs/gogs
cd ${GOPATH}/src/github.com/gogs/gogs
# Needed since git 2.9.3 or 2.9.4
git config --global http.https://gopkg.in.followRedirects true
make build TAGS="sqlite cert pam"
# Cleanup GOPATH & vendoring dir
rm -r $GOPATH /app/gogs/vendor
# Cleanup GOPATH
rm -r $GOPATH
# Remove build deps
apk --no-progress del build-deps
# Create git user for Gogs
adduser -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && passwd -u git
echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile
# Move to final place
mv /app/gogs/build/gogs /app/gogs/
# Cleanup go
rm -rf /tmp/go
rm -rf /usr/local/go

18
docker/finalize.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/sh
# Finalize the build
set -x
set -e
# Create git user for Gogs
addgroup -S git
adduser -G git -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && usermod -p '*' git && passwd -u git
echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile
# Final cleaning
rm -rf /app/gogs/build
rm /app/gogs/docker/build.sh
rm /app/gogs/docker/build-go.sh
rm /app/gogs/docker/finalize.sh
rm /app/gogs/docker/nsswitch.conf
rm /app/gogs/docker/README.md

16
docker/no-pic.patch Normal file
View File

@@ -0,0 +1,16 @@
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index 14f4fa9..5599307 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -1272,6 +1272,11 @@ func hostlink() {
argv = append(argv, peimporteddlls()...)
}
+ // The Go linker does not currently support building PIE
+ // executables when using the external linker. See:
+ // https://github.com/golang/go/issues/6940
+ argv = append(argv, "-fno-PIC")
+
if l.Debugvlog != 0 {
l.Logf("%5.2f host link:", obj.Cputime())
for _, v := range argv {

View File

@@ -13,11 +13,14 @@ fi
cd /app/gogs
# Link volumed data with app data
ln -sf /data/gogs/log ./log
ln -sf /data/gogs/data ./data
ln -sfn /data/gogs/log ./log
ln -sfn /data/gogs/data ./data
# Backward Compatibility with Gogs Container v0.6.15
ln -sf /data/git /home/git
ln -sfn /data/git /home/git
chown -R git:git /data /app/gogs ~git/
# Only chown for the first time, '/data/gogs/conf/app.ini' must exist inside Docker after installation
if ! test -d /data/gogs/conf/app.ini; then
chown -R git:git /data /app/gogs ~git/
fi
chmod 0755 /data /data/gogs ~git/

View File

@@ -38,6 +38,14 @@ create_volume_subfolder() {
done
}
setids() {
PUID=${PUID:-1000}
PGID=${PGID:-1000}
groupmod -o -g "$PGID" git
usermod -o -u "$PUID" git
}
setids
cleanup
create_volume_subfolder

148
glide.lock generated
View File

@@ -1,148 +0,0 @@
hash: 1d5fcf2a90f7621ecbc0b1abed548e11d13bda3fea49b4326c829a523268e5cf
updated: 2016-06-12T17:35:14.27036884+08:00
imports:
- name: github.com/bradfitz/gomemcache
version: fb1f79c6b65acda83063cbc69f6bba1522558bfc
subpackages:
- memcache
- name: github.com/codegangsta/cli
version: 1efa31f08b9333f1bd4882d61f9d668a70cd902e
- name: github.com/go-macaron/binding
version: 9440f336b443056c90d7d448a0a55ad8c7599880
- name: github.com/go-macaron/cache
version: 56173531277692bc2925924d51fda1cd0a6b8178
subpackages:
- memcache
- redis
- name: github.com/go-macaron/captcha
version: 8aa5919789ab301e865595eb4b1114d6b9847deb
- name: github.com/go-macaron/csrf
version: 6a9a7df172cc1fcd81e4585f44b09200b6087cc0
- name: github.com/go-macaron/gzip
version: cad1c6580a07c56f5f6bc52d66002a05985c5854
- name: github.com/go-macaron/i18n
version: ef57533c3b0fc2d8581deda14937e52f11a203ab
- name: github.com/go-macaron/inject
version: c5ab7bf3a307593cd44cb272d1a5beea473dd072
- name: github.com/go-macaron/session
version: 66031fcb37a0fff002a1f028eb0b3a815c78306b
subpackages:
- redis
- name: github.com/go-macaron/toolbox
version: 82b511550b0aefc36b3a28062ad3a52e812bee38
- name: github.com/go-sql-driver/mysql
version: 0b58b37b664c21f3010e836f1b931e1d0b0b0685
- name: github.com/go-xorm/core
version: bc1b7f81f0e369289078424064634a5ee7d21051
- name: github.com/go-xorm/xorm
version: b8b1711cde4d9c68da95cd0ff8de0de0cb491df3
- name: github.com/gogits/chardet
version: 2404f777256163ea3eadb273dada5dcb037993c0
- name: github.com/gogits/cron
version: 96040e4fab17baa0391ce571694e4ccb5fce5dac
- name: github.com/gogits/git-module
version: 53bcb7352ff838610c537c9b589ca79bca92c661
- name: github.com/gogits/go-gogs-client
version: d725743594dfcd8eea25024f8456c9c103dadb1a
- name: github.com/issue9/identicon
version: d36b54562f4cf70c83653e13dc95c220c79ef521
- name: github.com/jaytaylor/html2text
version: 52d9b785554a1918cb09909b89a1509a98b853fd
- name: github.com/kardianos/minwinsvc
version: cad6b2b879b0970e4245a20ebf1a81a756e2bb70
- name: github.com/klauspost/compress
version: 14eb9c4951195779ecfbec34431a976de7335b0a
subpackages:
- gzip
- flate
- name: github.com/klauspost/cpuid
version: 09cded8978dc9e80714c4d85b0322337b0a1e5e0
- name: github.com/klauspost/crc32
version: 19b0b332c9e4516a6370a0456e6182c3b5036720
- name: github.com/lib/pq
version: 4dd446efc17690bc53e154025146f73203b18309
subpackages:
- oid
- name: github.com/mattn/go-sqlite3
version: e118d4451349065b8e7ce0f0af32e033995363f8
- name: github.com/mcuadros/go-version
version: d52711f8d6bea8dc01efafdb68ad95a4e2606630
- name: github.com/microcosm-cc/bluemonday
version: 9dc199233bf72cc1aad9b61f73daf2f0075b9ee4
- name: github.com/msteinert/pam
version: 02ccfbfaf0cc627aa3aec8ef7ed5cfeec5b43f63
- name: github.com/nfnt/resize
version: 891127d8d1b52734debe1b3c3d7e747502b6c366
- name: github.com/russross/blackfriday
version: 93622da34e54fb6529bfb7c57e710f37a8d9cbd8
- name: github.com/satori/go.uuid
version: 0aa62d5ddceb50dbcb909d790b5345affd3669b6
- name: github.com/sergi/go-diff
version: ec7fdbb58eb3e300c8595ad5ac74a5aa50019cc7
subpackages:
- diffmatchpatch
- name: github.com/shurcooL/sanitized_anchor_name
version: 10ef21a441db47d8b13ebcc5fd2310f636973c77
- name: github.com/Unknwon/cae
version: 7f5e046bc8a6c3cde743c233b96ee4fd84ee6ecd
subpackages:
- zip
- name: github.com/Unknwon/com
version: 28b053d5a2923b87ce8c5a08f3af779894a72758
- name: github.com/Unknwon/i18n
version: 39d6f2727e0698b1021ceb6a77c1801aa92e7d5d
- name: github.com/Unknwon/paginater
version: 7748a72e01415173a27d79866b984328e7b0c12b
- name: golang.org/x/crypto
version: bc89c496413265e715159bdc8478ee9a92fdc265
subpackages:
- ssh
- curve25519
- ed25519
- ed25519/internal/edwards25519
- name: golang.org/x/net
version: 57bfaa875b96fb91b4766077f34470528d4b03e9
subpackages:
- html
- html/charset
- html/atom
- name: golang.org/x/sys
version: a646d33e2ee3172a661fc09bca23bb4889a41bc8
subpackages:
- windows/svc
- windows
- name: golang.org/x/text
version: 2910a502d2bf9e43193af9d68ca516529614eed3
subpackages:
- transform
- language
- encoding
- encoding/charmap
- encoding/htmlindex
- internal/tag
- encoding/internal/identifier
- encoding/internal
- encoding/japanese
- encoding/korean
- encoding/simplifiedchinese
- encoding/traditionalchinese
- encoding/unicode
- internal/utf8internal
- runes
- name: gopkg.in/alexcesaro/quotedprintable.v3
version: 2caba252f4dc53eaf6b553000885530023f54623
- name: gopkg.in/asn1-ber.v1
version: 4e86f4367175e39f69d9358a5f17b4dda270378d
- name: gopkg.in/bufio.v1
version: 567b2bfa514e796916c4747494d6ff5132a1dfce
- name: gopkg.in/gomail.v2
version: 81ebce5c23dfd25c6c67194b37d3dd3f338c98b1
- name: gopkg.in/ini.v1
version: cf53f9204df4fbdd7ec4164b57fa6184ba168292
- name: gopkg.in/ldap.v2
version: 537128fee7cca108d8ce74e4309fdfcdd9c7f496
- name: gopkg.in/macaron.v1
version: 2133042f8d1022b8253e4e23f7940467941409ce
- name: gopkg.in/redis.v2
version: e6179049628164864e6e84e973cfb56335748dea
devImports: []

View File

@@ -1,57 +0,0 @@
package: github.com/gogits/gogs
import:
- package: github.com/Unknwon/cae
subpackages:
- zip
- package: github.com/Unknwon/com
- package: github.com/Unknwon/i18n
- package: github.com/Unknwon/paginater
- package: github.com/codegangsta/cli
- package: github.com/go-macaron/binding
- package: github.com/go-macaron/cache
subpackages:
- memcache
- redis
- package: github.com/go-macaron/captcha
- package: github.com/go-macaron/csrf
- package: github.com/go-macaron/gzip
- package: github.com/go-macaron/i18n
- package: github.com/go-macaron/session
subpackages:
- redis
- package: github.com/go-macaron/toolbox
- package: github.com/go-sql-driver/mysql
- package: github.com/go-xorm/core
- package: github.com/go-xorm/xorm
- package: github.com/gogits/chardet
- package: github.com/gogits/cron
- package: github.com/gogits/git-module
- package: github.com/gogits/go-gogs-client
- package: github.com/issue9/identicon
- package: github.com/kardianos/minwinsvc
- package: github.com/lib/pq
- package: github.com/mattn/go-sqlite3
- package: github.com/mcuadros/go-version
- package: github.com/microcosm-cc/bluemonday
- package: github.com/msteinert/pam
- package: github.com/nfnt/resize
- package: github.com/russross/blackfriday
- package: github.com/satori/go.uuid
- package: github.com/sergi/go-diff
subpackages:
- diffmatchpatch
- package: golang.org/x/crypto
subpackages:
- ssh
- package: golang.org/x/net
subpackages:
- html
- html/charset
- package: golang.org/x/text
subpackages:
- transform
- language
- package: gopkg.in/gomail.v2
- package: gopkg.in/ini.v1
- package: gopkg.in/ldap.v2
- package: gopkg.in/macaron.v1

30
gogs.go
View File

@@ -1,41 +1,41 @@
// +build go1.4
// +build go1.7
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
// Gogs (Go Git Service) is a painless self-hosted Git Service.
// Gogs is a painless self-hosted Git Service.
package main
import (
"os"
"runtime"
"github.com/codegangsta/cli"
"github.com/urfave/cli"
"github.com/gogits/gogs/cmd"
"github.com/gogits/gogs/modules/setting"
"github.com/gogs/gogs/cmd"
"github.com/gogs/gogs/pkg/setting"
)
const APP_VER = "0.9.60.0803"
const APP_VER = "0.11.79.1211"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
setting.AppVer = APP_VER
}
func main() {
app := cli.NewApp()
app.Name = "Gogs"
app.Usage = "Go Git Service"
app.Usage = "A painless self-hosted Git service"
app.Version = APP_VER
app.Commands = []cli.Command{
cmd.CmdWeb,
cmd.CmdServ,
cmd.CmdUpdate,
cmd.CmdDump,
cmd.CmdCert,
cmd.Web,
cmd.Serv,
cmd.Hook,
cmd.Cert,
cmd.Admin,
cmd.Import,
cmd.Backup,
cmd.Restore,
}
app.Flags = append(app.Flags, []cli.Flag{}...)
app.Run(os.Args)
}

View File

@@ -7,7 +7,9 @@ package models
import (
"fmt"
"github.com/gogits/gogs/modules/log"
log "gopkg.in/clog.v1"
"github.com/gogs/gogs/models/errors"
)
type AccessMode int
@@ -51,47 +53,51 @@ func ParseAccessMode(permission string) AccessMode {
// that is not in this table is the real owner of a repository. In case of an organization
// repository, the members of the owners team are in this table.
type Access struct {
ID int64 `xorm:"pk autoincr"`
ID int64
UserID int64 `xorm:"UNIQUE(s)"`
RepoID int64 `xorm:"UNIQUE(s)"`
Mode AccessMode
}
func accessLevel(e Engine, u *User, repo *Repository) (AccessMode, error) {
func accessLevel(e Engine, userID int64, repo *Repository) (AccessMode, error) {
mode := ACCESS_MODE_NONE
// Everyone has read access to public repository
if !repo.IsPrivate {
mode = ACCESS_MODE_READ
}
if u == nil {
if userID <= 0 {
return mode, nil
}
if u.ID == repo.OwnerID {
if userID == repo.OwnerID {
return ACCESS_MODE_OWNER, nil
}
a := &Access{UserID: u.ID, RepoID: repo.ID}
if has, err := e.Get(a); !has || err != nil {
access := &Access{
UserID: userID,
RepoID: repo.ID,
}
if has, err := e.Get(access); !has || err != nil {
return mode, err
}
return a.Mode, nil
return access.Mode, nil
}
// AccessLevel returns the Access a user has to a repository. Will return NoneAccess if the
// user does not have access. User can be nil!
func AccessLevel(u *User, repo *Repository) (AccessMode, error) {
return accessLevel(x, u, repo)
// user does not have access.
func AccessLevel(userID int64, repo *Repository) (AccessMode, error) {
return accessLevel(x, userID, repo)
}
func hasAccess(e Engine, u *User, repo *Repository, testMode AccessMode) (bool, error) {
mode, err := accessLevel(e, u, repo)
return testMode <= mode, err
func hasAccess(e Engine, userID int64, repo *Repository, testMode AccessMode) (bool, error) {
mode, err := accessLevel(e, userID, repo)
return mode >= testMode, err
}
// HasAccess returns true if someone has the request access level. User can be nil!
func HasAccess(u *User, repo *Repository, testMode AccessMode) (bool, error) {
return hasAccess(x, u, repo, testMode)
func HasAccess(userID int64, repo *Repository, testMode AccessMode) (bool, error) {
return hasAccess(x, userID, repo, testMode)
}
// GetRepositoryAccesses finds all repositories with their access mode where a user has access but does not own.
@@ -105,15 +111,13 @@ func (u *User) GetRepositoryAccesses() (map[*Repository]AccessMode, error) {
for _, access := range accesses {
repo, err := GetRepositoryByID(access.RepoID)
if err != nil {
if IsErrRepoNotExist(err) {
log.Error(4, "GetRepositoryByID: %v", err)
if errors.IsRepoNotExist(err) {
log.Error(2, "GetRepositoryByID: %v", err)
continue
}
return nil, err
}
if err = repo.GetOwner(); err != nil {
return nil, err
} else if repo.OwnerID == u.ID {
if repo.OwnerID == u.ID {
continue
}
repos[repo] = access.Mode
@@ -146,16 +150,8 @@ func maxAccessMode(modes ...AccessMode) AccessMode {
// FIXME: do corss-comparison so reduce deletions and additions to the minimum?
func (repo *Repository) refreshAccesses(e Engine, accessMap map[int64]AccessMode) (err error) {
minMode := ACCESS_MODE_READ
if !repo.IsPrivate {
minMode = ACCESS_MODE_WRITE
}
newAccesses := make([]Access, 0, len(accessMap))
for userID, mode := range accessMap {
if mode < minMode {
continue
}
newAccesses = append(newAccesses, Access{
UserID: userID,
RepoID: repo.ID,
@@ -233,7 +229,7 @@ func (repo *Repository) recalculateAccesses(e Engine) error {
return repo.recalculateTeamAccesses(e, 0)
}
accessMap := make(map[int64]AccessMode, 20)
accessMap := make(map[int64]AccessMode, 10)
if err := repo.refreshCollaboratorAccesses(e, accessMap); err != nil {
return fmt.Errorf("refreshCollaboratorAccesses: %v", err)
}
@@ -241,6 +237,6 @@ func (repo *Repository) recalculateAccesses(e Engine) error {
}
// RecalculateAccesses recalculates all accesses for repository.
func (r *Repository) RecalculateAccesses() error {
return r.recalculateAccesses(x)
func (repo *Repository) RecalculateAccesses() error {
return repo.recalculateAccesses(x)
}

View File

@@ -5,8 +5,6 @@
package models
import (
"encoding/json"
"errors"
"fmt"
"path"
"regexp"
@@ -16,17 +14,20 @@ import (
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
"github.com/json-iterator/go"
log "gopkg.in/clog.v1"
"github.com/gogits/git-module"
api "github.com/gogits/go-gogs-client"
"github.com/gogs/git-module"
api "github.com/gogs/go-gogs-client"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting"
"github.com/gogs/gogs/models/errors"
"github.com/gogs/gogs/pkg/setting"
"github.com/gogs/gogs/pkg/tool"
)
type ActionType int
// Note: To maintain backward compatibility only append to the end of list
const (
ACTION_CREATE_REPO ActionType = iota + 1 // 1
ACTION_RENAME_REPO // 2
@@ -43,10 +44,13 @@ const (
ACTION_REOPEN_ISSUE // 13
ACTION_CLOSE_PULL_REQUEST // 14
ACTION_REOPEN_PULL_REQUEST // 15
)
var (
ErrNotImplemented = errors.New("Not implemented yet")
ACTION_CREATE_BRANCH // 16
ACTION_DELETE_BRANCH // 17
ACTION_DELETE_TAG // 18
ACTION_FORK_REPO // 19
ACTION_MIRROR_SYNC_PUSH // 20
ACTION_MIRROR_SYNC_CREATE // 21
ACTION_MIRROR_SYNC_DELETE // 22
)
var (
@@ -68,23 +72,22 @@ func init() {
IssueReferenceKeywordsPat = regexp.MustCompile(`(?i)(?:)(^| )\S+`)
}
// Action represents user operation type and other information to repository.,
// Action represents user operation type and other information to repository,
// it implemented interface base.Actioner so that can be used in template render.
type Action struct {
ID int64 `xorm:"pk autoincr"`
UserID int64 // Receiver user id.
ID int64
UserID int64 // Receiver user ID
OpType ActionType
ActUserID int64 // Action user id.
ActUserName string // Action user name.
ActEmail string
ActAvatar string `xorm:"-"`
RepoID int64
ActUserID int64 // Doer user ID
ActUserName string // Doer user name
ActAvatar string `xorm:"-" json:"-"`
RepoID int64 `xorm:"INDEX"`
RepoUserName string
RepoName string
RefName string
IsPrivate bool `xorm:"NOT NULL DEFAULT false"`
Content string `xorm:"TEXT"`
Created time.Time `xorm:"-"`
Created time.Time `xorm:"-" json:"-"`
CreatedUnix int64
}
@@ -108,11 +111,7 @@ func (a *Action) GetActUserName() string {
}
func (a *Action) ShortActUserName() string {
return base.EllipsisString(a.ActUserName, 20)
}
func (a *Action) GetActEmail() string {
return a.ActEmail
return tool.EllipsisString(a.ActUserName, 20)
}
func (a *Action) GetRepoUserName() string {
@@ -120,7 +119,7 @@ func (a *Action) GetRepoUserName() string {
}
func (a *Action) ShortRepoUserName() string {
return base.EllipsisString(a.RepoUserName, 20)
return tool.EllipsisString(a.RepoUserName, 20)
}
func (a *Action) GetRepoName() string {
@@ -128,7 +127,7 @@ func (a *Action) GetRepoName() string {
}
func (a *Action) ShortRepoName() string {
return base.EllipsisString(a.RepoName, 33)
return tool.EllipsisString(a.RepoName, 33)
}
func (a *Action) GetRepoPath() string {
@@ -140,8 +139,8 @@ func (a *Action) ShortRepoPath() string {
}
func (a *Action) GetRepoLink() string {
if len(setting.AppSubUrl) > 0 {
return path.Join(setting.AppSubUrl, a.GetRepoPath())
if len(setting.AppSubURL) > 0 {
return path.Join(setting.AppSubURL, a.GetRepoPath())
}
return "/" + a.GetRepoPath()
}
@@ -169,7 +168,7 @@ func (a *Action) GetIssueTitle() string {
log.Error(4, "GetIssueByIndex: %v", err)
return "500 when get issue"
}
return issue.Name
return issue.Title
}
func (a *Action) GetIssueContent() string {
@@ -182,34 +181,32 @@ func (a *Action) GetIssueContent() string {
return issue.Content
}
func newRepoAction(e Engine, u *User, repo *Repository) (err error) {
if err = notifyWatchers(e, &Action{
ActUserID: u.ID,
ActUserName: u.Name,
ActEmail: u.Email,
OpType: ACTION_CREATE_REPO,
func newRepoAction(e Engine, doer, owner *User, repo *Repository) (err error) {
opType := ACTION_CREATE_REPO
if repo.IsFork {
opType = ACTION_FORK_REPO
}
return notifyWatchers(e, &Action{
ActUserID: doer.ID,
ActUserName: doer.Name,
OpType: opType,
RepoID: repo.ID,
RepoUserName: repo.Owner.Name,
RepoName: repo.Name,
IsPrivate: repo.IsPrivate,
}); err != nil {
return fmt.Errorf("notify watchers '%d/%d': %v", u.ID, repo.ID, err)
}
log.Trace("action.newRepoAction: %s/%s", u.Name, repo.Name)
return err
})
}
// NewRepoAction adds new action for creating repository.
func NewRepoAction(u *User, repo *Repository) (err error) {
return newRepoAction(x, u, repo)
func NewRepoAction(doer, owner *User, repo *Repository) (err error) {
return newRepoAction(x, doer, owner, repo)
}
func renameRepoAction(e Engine, actUser *User, oldRepoName string, repo *Repository) (err error) {
if err = notifyWatchers(e, &Action{
ActUserID: actUser.ID,
ActUserName: actUser.Name,
ActEmail: actUser.Email,
OpType: ACTION_RENAME_REPO,
RepoID: repo.ID,
RepoUserName: repo.Owner.Name,
@@ -234,16 +231,19 @@ func issueIndexTrimRight(c rune) bool {
}
type PushCommit struct {
Sha1 string
Message string
AuthorEmail string
AuthorName string
Sha1 string
Message string
AuthorEmail string
AuthorName string
CommitterEmail string
CommitterName string
Timestamp time.Time
}
type PushCommits struct {
Len int
Commits []*PushCommit
CompareUrl string
CompareURL string
avatars map[string]string
}
@@ -254,26 +254,51 @@ func NewPushCommits() *PushCommits {
}
}
func (pc *PushCommits) ToApiPayloadCommits(repoLink string) []*api.PayloadCommit {
func (pc *PushCommits) ToApiPayloadCommits(repoPath, repoURL string) ([]*api.PayloadCommit, error) {
commits := make([]*api.PayloadCommit, len(pc.Commits))
for i, cmt := range pc.Commits {
author_username := ""
author, err := GetUserByEmail(cmt.AuthorEmail)
for i, commit := range pc.Commits {
authorUsername := ""
author, err := GetUserByEmail(commit.AuthorEmail)
if err == nil {
author_username = author.Name
authorUsername = author.Name
} else if !errors.IsUserNotExist(err) {
return nil, fmt.Errorf("GetUserByEmail: %v", err)
}
committerUsername := ""
committer, err := GetUserByEmail(commit.CommitterEmail)
if err == nil {
committerUsername = committer.Name
} else if !errors.IsUserNotExist(err) {
return nil, fmt.Errorf("GetUserByEmail: %v", err)
}
fileStatus, err := git.GetCommitFileStatus(repoPath, commit.Sha1)
if err != nil {
return nil, fmt.Errorf("FileStatus [commit_sha1: %s]: %v", commit.Sha1, err)
}
commits[i] = &api.PayloadCommit{
ID: cmt.Sha1,
Message: cmt.Message,
URL: fmt.Sprintf("%s/commit/%s", repoLink, cmt.Sha1),
Author: &api.PayloadAuthor{
Name: cmt.AuthorName,
Email: cmt.AuthorEmail,
UserName: author_username,
ID: commit.Sha1,
Message: commit.Message,
URL: fmt.Sprintf("%s/commit/%s", repoURL, commit.Sha1),
Author: &api.PayloadUser{
Name: commit.AuthorName,
Email: commit.AuthorEmail,
UserName: authorUsername,
},
Committer: &api.PayloadUser{
Name: commit.CommitterName,
Email: commit.CommitterEmail,
UserName: committerUsername,
},
Added: fileStatus.Added,
Removed: fileStatus.Removed,
Modified: fileStatus.Modified,
Timestamp: commit.Timestamp,
}
}
return commits
return commits, nil
}
// AvatarLink tries to match user in database with e-mail
@@ -283,20 +308,20 @@ func (push *PushCommits) AvatarLink(email string) string {
if !ok {
u, err := GetUserByEmail(email)
if err != nil {
push.avatars[email] = base.AvatarLink(email)
if !IsErrUserNotExist(err) {
push.avatars[email] = tool.AvatarLink(email)
if !errors.IsUserNotExist(err) {
log.Error(4, "GetUserByEmail: %v", err)
}
} else {
push.avatars[email] = u.AvatarLink()
push.avatars[email] = u.RelAvatarLink()
}
}
return push.avatars[email]
}
// updateIssuesCommit checks if issues are manipulated by commit message.
func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string, commits []*PushCommit) error {
// UpdateIssuesCommit checks if issues are manipulated by commit message.
func UpdateIssuesCommit(doer *User, repo *Repository, commits []*PushCommit) error {
// Commits are appended in the reverse order.
for i := len(commits) - 1; i >= 0; i-- {
c := commits[i]
@@ -312,7 +337,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
// Add repo name if missing
if ref[0] == '#' {
ref = fmt.Sprintf("%s/%s%s", repoUserName, repoName, ref)
ref = fmt.Sprintf("%s%s", repo.FullName(), ref)
} else if !strings.Contains(ref, "/") {
// FIXME: We don't support User#ID syntax yet
// return ErrNotImplemented
@@ -321,7 +346,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
issue, err := GetIssueByRef(ref)
if err != nil {
if IsErrIssueNotExist(err) {
if errors.IsIssueNotExist(err) {
continue
}
return err
@@ -332,9 +357,13 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
}
refMarked[issue.ID] = true
url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1)
message := fmt.Sprintf(`<a href="%s">%s</a>`, url, c.Message)
if err = CreateRefComment(u, repo, issue, message, c.Sha1); err != nil {
msgLines := strings.Split(c.Message, "\n")
shortMsg := msgLines[0]
if len(msgLines) > 2 {
shortMsg += "..."
}
message := fmt.Sprintf(`<a href="%s/commit/%s">%s</a>`, repo.Link(), c.Sha1, shortMsg)
if err = CreateRefComment(doer, repo, issue, message, c.Sha1); err != nil {
return err
}
}
@@ -351,16 +380,15 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
// Add repo name if missing
if ref[0] == '#' {
ref = fmt.Sprintf("%s/%s%s", repoUserName, repoName, ref)
ref = fmt.Sprintf("%s%s", repo.FullName(), ref)
} else if !strings.Contains(ref, "/") {
// We don't support User#ID syntax yet
// return ErrNotImplemented
// FIXME: We don't support User#ID syntax yet
continue
}
issue, err := GetIssueByRef(ref)
if err != nil {
if IsErrIssueNotExist(err) {
if errors.IsIssueNotExist(err) {
continue
}
return err
@@ -375,7 +403,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
continue
}
if err = issue.ChangeStatus(u, repo, true); err != nil {
if err = issue.ChangeStatus(doer, repo, true); err != nil {
return err
}
}
@@ -391,7 +419,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
// Add repo name if missing
if ref[0] == '#' {
ref = fmt.Sprintf("%s/%s%s", repoUserName, repoName, ref)
ref = fmt.Sprintf("%s%s", repo.FullName(), ref)
} else if !strings.Contains(ref, "/") {
// We don't support User#ID syntax yet
// return ErrNotImplemented
@@ -400,7 +428,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
issue, err := GetIssueByRef(ref)
if err != nil {
if IsErrIssueNotExist(err) {
if errors.IsIssueNotExist(err) {
continue
}
return err
@@ -415,7 +443,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
continue
}
if err = issue.ChangeStatus(u, repo, false); err != nil {
if err = issue.ChangeStatus(doer, repo, false); err != nil {
return err
}
}
@@ -423,26 +451,26 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
return nil
}
// CommitRepoAction adds new action for committing repository.
func CommitRepoAction(
userID, repoUserID int64,
userName, actEmail string,
repoID int64,
repoUserName, repoName string,
refFullName string,
commit *PushCommits,
oldCommitID string, newCommitID string) error {
type CommitRepoActionOptions struct {
PusherName string
RepoOwnerID int64
RepoName string
RefFullName string
OldCommitID string
NewCommitID string
Commits *PushCommits
}
u, err := GetUserByID(userID)
// CommitRepoAction adds new commit actio to the repository, and prepare corresponding webhooks.
func CommitRepoAction(opts CommitRepoActionOptions) error {
pusher, err := GetUserByName(opts.PusherName)
if err != nil {
return fmt.Errorf("GetUserByID: %v", err)
return fmt.Errorf("GetUserByName [%s]: %v", opts.PusherName, err)
}
repo, err := GetRepositoryByName(repoUserID, repoName)
repo, err := GetRepositoryByName(opts.RepoOwnerID, opts.RepoName)
if err != nil {
return fmt.Errorf("GetRepositoryByName: %v", err)
} else if err = repo.GetOwner(); err != nil {
return fmt.Errorf("GetOwner: %v", err)
return fmt.Errorf("GetRepositoryByName [owner_id: %d, name: %s]: %v", opts.RepoOwnerID, opts.RepoName, err)
}
// Change repository bare status and update last updated time.
@@ -451,144 +479,185 @@ func CommitRepoAction(
return fmt.Errorf("UpdateRepository: %v", err)
}
isNewBranch := false
isNewRef := opts.OldCommitID == git.EMPTY_SHA
isDelRef := opts.NewCommitID == git.EMPTY_SHA
opType := ACTION_COMMIT_REPO
// Check it's tag push or branch.
if strings.HasPrefix(refFullName, "refs/tags/") {
// Check if it's tag push or branch.
if strings.HasPrefix(opts.RefFullName, git.TAG_PREFIX) {
opType = ACTION_PUSH_TAG
commit = &PushCommits{}
} else {
// if not the first commit, set the compareUrl
if !strings.HasPrefix(oldCommitID, "0000000") {
commit.CompareUrl = repo.ComposeCompareURL(oldCommitID, newCommitID)
} else {
isNewBranch = true
// if not the first commit, set the compare URL.
if !isNewRef && !isDelRef {
opts.Commits.CompareURL = repo.ComposeCompareURL(opts.OldCommitID, opts.NewCommitID)
}
if err = updateIssuesCommit(u, repo, repoUserName, repoName, commit.Commits); err != nil {
log.Error(4, "updateIssuesCommit: %v", err)
if err = UpdateIssuesCommit(pusher, repo, opts.Commits.Commits); err != nil {
log.Error(2, "UpdateIssuesCommit: %v", err)
}
}
if len(commit.Commits) > setting.UI.FeedMaxCommitNum {
commit.Commits = commit.Commits[:setting.UI.FeedMaxCommitNum]
if len(opts.Commits.Commits) > setting.UI.FeedMaxCommitNum {
opts.Commits.Commits = opts.Commits.Commits[:setting.UI.FeedMaxCommitNum]
}
bs, err := json.Marshal(commit)
data, err := jsoniter.Marshal(opts.Commits)
if err != nil {
return fmt.Errorf("Marshal: %v", err)
}
refName := git.RefEndName(refFullName)
if err = NotifyWatchers(&Action{
ActUserID: u.ID,
ActUserName: userName,
ActEmail: actEmail,
OpType: opType,
Content: string(bs),
refName := git.RefEndName(opts.RefFullName)
action := &Action{
ActUserID: pusher.ID,
ActUserName: pusher.Name,
Content: string(data),
RepoID: repo.ID,
RepoUserName: repoUserName,
RepoUserName: repo.MustOwner().Name,
RepoName: repo.Name,
RefName: refName,
IsPrivate: repo.IsPrivate,
}); err != nil {
return fmt.Errorf("NotifyWatchers: %v", err)
}
payloadRepo := repo.ComposePayload()
pusher_email, pusher_name := "", ""
pusher, err := GetUserByName(userName)
if err == nil {
pusher_email = pusher.Email
pusher_name = pusher.DisplayName()
}
payloadSender := &api.PayloadUser{
UserName: pusher.Name,
ID: pusher.ID,
AvatarUrl: pusher.AvatarLink(),
}
apiRepo := repo.APIFormat(nil)
apiPusher := pusher.APIFormat()
switch opType {
case ACTION_COMMIT_REPO: // Push
p := &api.PushPayload{
Ref: refFullName,
Before: oldCommitID,
After: newCommitID,
CompareUrl: setting.AppUrl + commit.CompareUrl,
Commits: commit.ToApiPayloadCommits(repo.FullLink()),
Repo: payloadRepo,
Pusher: &api.PayloadAuthor{
Name: pusher_name,
Email: pusher_email,
UserName: userName,
},
Sender: payloadSender,
}
if err = PrepareWebhooks(repo, HOOK_EVENT_PUSH, p); err != nil {
return fmt.Errorf("PrepareWebhooks: %v", err)
if isDelRef {
if err = PrepareWebhooks(repo, HOOK_EVENT_DELETE, &api.DeletePayload{
Ref: refName,
RefType: "branch",
PusherType: api.PUSHER_TYPE_USER,
Repo: apiRepo,
Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks.(delete branch): %v", err)
}
action.OpType = ACTION_DELETE_BRANCH
if err = NotifyWatchers(action); err != nil {
return fmt.Errorf("NotifyWatchers.(delete branch): %v", err)
}
// Delete branch doesn't have anything to push or compare
return nil
}
if isNewBranch {
return PrepareWebhooks(repo, HOOK_EVENT_CREATE, &api.CreatePayload{
Ref: refName,
RefType: "branch",
Repo: payloadRepo,
Sender: payloadSender,
})
compareURL := setting.AppURL + opts.Commits.CompareURL
if isNewRef {
compareURL = ""
if err = PrepareWebhooks(repo, HOOK_EVENT_CREATE, &api.CreatePayload{
Ref: refName,
RefType: "branch",
DefaultBranch: repo.DefaultBranch,
Repo: apiRepo,
Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks.(new branch): %v", err)
}
action.OpType = ACTION_CREATE_BRANCH
if err = NotifyWatchers(action); err != nil {
return fmt.Errorf("NotifyWatchers.(new branch): %v", err)
}
}
case ACTION_PUSH_TAG: // Create
return PrepareWebhooks(repo, HOOK_EVENT_CREATE, &api.CreatePayload{
Ref: refName,
RefType: "tag",
Repo: payloadRepo,
Sender: payloadSender,
})
commits, err := opts.Commits.ToApiPayloadCommits(repo.RepoPath(), repo.HTMLURL())
if err != nil {
return fmt.Errorf("ToApiPayloadCommits: %v", err)
}
if err = PrepareWebhooks(repo, HOOK_EVENT_PUSH, &api.PushPayload{
Ref: opts.RefFullName,
Before: opts.OldCommitID,
After: opts.NewCommitID,
CompareURL: compareURL,
Commits: commits,
Repo: apiRepo,
Pusher: apiPusher,
Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks.(new commit): %v", err)
}
action.OpType = ACTION_COMMIT_REPO
if err = NotifyWatchers(action); err != nil {
return fmt.Errorf("NotifyWatchers.(new commit): %v", err)
}
case ACTION_PUSH_TAG: // Tag
if isDelRef {
if err = PrepareWebhooks(repo, HOOK_EVENT_DELETE, &api.DeletePayload{
Ref: refName,
RefType: "tag",
PusherType: api.PUSHER_TYPE_USER,
Repo: apiRepo,
Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks.(delete tag): %v", err)
}
action.OpType = ACTION_DELETE_TAG
if err = NotifyWatchers(action); err != nil {
return fmt.Errorf("NotifyWatchers.(delete tag): %v", err)
}
return nil
}
if err = PrepareWebhooks(repo, HOOK_EVENT_CREATE, &api.CreatePayload{
Ref: refName,
RefType: "tag",
DefaultBranch: repo.DefaultBranch,
Repo: apiRepo,
Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks.(new tag): %v", err)
}
action.OpType = ACTION_PUSH_TAG
if err = NotifyWatchers(action); err != nil {
return fmt.Errorf("NotifyWatchers.(new tag): %v", err)
}
}
return nil
}
func transferRepoAction(e Engine, actUser, oldOwner, newOwner *User, repo *Repository) (err error) {
func transferRepoAction(e Engine, doer, oldOwner *User, repo *Repository) (err error) {
if err = notifyWatchers(e, &Action{
ActUserID: actUser.ID,
ActUserName: actUser.Name,
ActEmail: actUser.Email,
ActUserID: doer.ID,
ActUserName: doer.Name,
OpType: ACTION_TRANSFER_REPO,
RepoID: repo.ID,
RepoUserName: newOwner.Name,
RepoUserName: repo.Owner.Name,
RepoName: repo.Name,
IsPrivate: repo.IsPrivate,
Content: path.Join(oldOwner.Name, repo.Name),
}); err != nil {
return fmt.Errorf("notify watchers '%d/%d': %v", actUser.ID, repo.ID, err)
return fmt.Errorf("notifyWatchers: %v", err)
}
// Remove watch for organization.
if repo.Owner.IsOrganization() {
if err = watchRepo(e, repo.Owner.ID, repo.ID, false); err != nil {
return fmt.Errorf("watch repository: %v", err)
if oldOwner.IsOrganization() {
if err = watchRepo(e, oldOwner.ID, repo.ID, false); err != nil {
return fmt.Errorf("watchRepo [false]: %v", err)
}
}
log.Trace("action.transferRepoAction: %s/%s", actUser.Name, repo.Name)
return nil
}
// TransferRepoAction adds new action for transferring repository.
func TransferRepoAction(actUser, oldOwner, newOwner *User, repo *Repository) error {
return transferRepoAction(x, actUser, oldOwner, newOwner, repo)
// TransferRepoAction adds new action for transferring repository,
// the Owner field of repository is assumed to be new owner.
func TransferRepoAction(doer, oldOwner *User, repo *Repository) error {
return transferRepoAction(x, doer, oldOwner, repo)
}
func mergePullRequestAction(e Engine, actUser *User, repo *Repository, pull *Issue) error {
func mergePullRequestAction(e Engine, doer *User, repo *Repository, issue *Issue) error {
return notifyWatchers(e, &Action{
ActUserID: actUser.ID,
ActUserName: actUser.Name,
ActEmail: actUser.Email,
ActUserID: doer.ID,
ActUserName: doer.Name,
OpType: ACTION_MERGE_PULL_REQUEST,
Content: fmt.Sprintf("%d|%s", pull.Index, pull.Name),
Content: fmt.Sprintf("%d|%s", issue.Index, issue.Title),
RepoID: repo.ID,
RepoUserName: repo.Owner.Name,
RepoName: repo.Name,
@@ -601,12 +670,80 @@ func MergePullRequestAction(actUser *User, repo *Repository, pull *Issue) error
return mergePullRequestAction(x, actUser, repo, pull)
}
func mirrorSyncAction(opType ActionType, repo *Repository, refName string, data []byte) error {
return NotifyWatchers(&Action{
ActUserID: repo.OwnerID,
ActUserName: repo.MustOwner().Name,
OpType: opType,
Content: string(data),
RepoID: repo.ID,
RepoUserName: repo.MustOwner().Name,
RepoName: repo.Name,
RefName: refName,
IsPrivate: repo.IsPrivate,
})
}
type MirrorSyncPushActionOptions struct {
RefName string
OldCommitID string
NewCommitID string
Commits *PushCommits
}
// MirrorSyncPushAction adds new action for mirror synchronization of pushed commits.
func MirrorSyncPushAction(repo *Repository, opts MirrorSyncPushActionOptions) error {
if len(opts.Commits.Commits) > setting.UI.FeedMaxCommitNum {
opts.Commits.Commits = opts.Commits.Commits[:setting.UI.FeedMaxCommitNum]
}
apiCommits, err := opts.Commits.ToApiPayloadCommits(repo.RepoPath(), repo.HTMLURL())
if err != nil {
return fmt.Errorf("ToApiPayloadCommits: %v", err)
}
opts.Commits.CompareURL = repo.ComposeCompareURL(opts.OldCommitID, opts.NewCommitID)
apiPusher := repo.MustOwner().APIFormat()
if err := PrepareWebhooks(repo, HOOK_EVENT_PUSH, &api.PushPayload{
Ref: opts.RefName,
Before: opts.OldCommitID,
After: opts.NewCommitID,
CompareURL: setting.AppURL + opts.Commits.CompareURL,
Commits: apiCommits,
Repo: repo.APIFormat(nil),
Pusher: apiPusher,
Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks: %v", err)
}
data, err := jsoniter.Marshal(opts.Commits)
if err != nil {
return err
}
return mirrorSyncAction(ACTION_MIRROR_SYNC_PUSH, repo, opts.RefName, data)
}
// MirrorSyncCreateAction adds new action for mirror synchronization of new reference.
func MirrorSyncCreateAction(repo *Repository, refName string) error {
return mirrorSyncAction(ACTION_MIRROR_SYNC_CREATE, repo, refName, nil)
}
// MirrorSyncCreateAction adds new action for mirror synchronization of delete reference.
func MirrorSyncDeleteAction(repo *Repository, refName string) error {
return mirrorSyncAction(ACTION_MIRROR_SYNC_DELETE, repo, refName, nil)
}
// GetFeeds returns action list of given user in given context.
// actorID is the user who's requesting, ctxUserID is the user/org that is requested.
// actorID can be -1 when isProfile is true or to skip the permission check.
func GetFeeds(ctxUser *User, actorID, offset int64, isProfile bool) ([]*Action, error) {
actions := make([]*Action, 0, 20)
sess := x.Limit(20, int(offset)).Desc("id").Where("user_id = ?", ctxUser.ID)
func GetFeeds(ctxUser *User, actorID, afterID int64, isProfile bool) ([]*Action, error) {
actions := make([]*Action, 0, setting.UI.User.NewsFeedPagingNum)
sess := x.Limit(setting.UI.User.NewsFeedPagingNum).Where("user_id = ?", ctxUser.ID).Desc("id")
if afterID > 0 {
sess.And("id < ?", afterID)
}
if isProfile {
sess.And("is_private = ?", false).And("act_user_id = ?", ctxUser.ID)
} else if actorID != -1 && ctxUser.IsOrganization() {

View File

@@ -7,16 +7,14 @@ package models
import (
"fmt"
"os"
"os/exec"
"strings"
"time"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
log "gopkg.in/clog.v1"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting"
"github.com/gogs/gogs/pkg/tool"
)
type NoticeType int
@@ -27,10 +25,10 @@ const (
// Notice represents a system notice for admin.
type Notice struct {
ID int64 `xorm:"pk autoincr"`
ID int64
Type NoticeType
Description string `xorm:"TEXT"`
Created time.Time `xorm:"-"`
Created time.Time `xorm:"-" json:"-"`
CreatedUnix int64
}
@@ -52,9 +50,9 @@ func (n *Notice) TrStr() string {
// CreateNotice creates new system notice.
func CreateNotice(tp NoticeType, desc string) error {
// prevent panic if database connection is not available at this point
// Prevent panic if database connection is not available at this point
if x == nil {
return fmt.Errorf("Could not save notice due database connection not being available: %d %s", tp, desc)
return fmt.Errorf("could not save notice due database connection not being available: %d %s", tp, desc)
}
n := &Notice{
@@ -73,23 +71,11 @@ func CreateRepositoryNotice(desc string) error {
// RemoveAllWithNotice removes all directories in given path and
// creates a system notice when error occurs.
func RemoveAllWithNotice(title, path string) {
var err error
// workaround for Go not being able to remove read-only files/folders: https://github.com/golang/go/issues/9606
// this bug should be fixed on Go 1.7, so the workaround should be removed when Gogs don't support Go 1.6 anymore:
// https://github.com/golang/go/commit/2ffb3e5d905b5622204d199128dec06cefd57790
if setting.IsWindows {
// converting "/" to "\" in path on Windows
path = strings.Replace(path, "/", "\\", -1)
err = exec.Command("cmd", "/C", "rmdir", "/S", "/Q", path).Run()
} else {
err = os.RemoveAll(path)
}
if err != nil {
if err := os.RemoveAll(path); err != nil {
desc := fmt.Sprintf("%s [%s]: %v", title, path, err)
log.Warn(desc)
if err = CreateRepositoryNotice(desc); err != nil {
log.Error(4, "CreateRepositoryNotice: %v", err)
log.Error(2, "CreateRepositoryNotice: %v", err)
}
}
}
@@ -127,6 +113,6 @@ func DeleteNoticesByIDs(ids []int64) error {
if len(ids) == 0 {
return nil
}
_, err := x.Where("id IN (" + strings.Join(base.Int64sToStrings(ids), ",") + ")").Delete(new(Notice))
_, err := x.Where("id IN (" + strings.Join(tool.Int64sToStrings(ids), ",") + ")").Delete(new(Notice))
return err
}

183
models/attachment.go Normal file
View File

@@ -0,0 +1,183 @@
// Copyright 2017 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package models
import (
"fmt"
"io"
"mime/multipart"
"os"
"path"
"time"
"github.com/go-xorm/xorm"
gouuid "github.com/satori/go.uuid"
"github.com/gogs/gogs/pkg/setting"
)
// Attachment represent a attachment of issue/comment/release.
type Attachment struct {
ID int64
UUID string `xorm:"uuid UNIQUE"`
IssueID int64 `xorm:"INDEX"`
CommentID int64
ReleaseID int64 `xorm:"INDEX"`
Name string
Created time.Time `xorm:"-" json:"-"`
CreatedUnix int64
}
func (a *Attachment) BeforeInsert() {
a.CreatedUnix = time.Now().Unix()
}
func (a *Attachment) AfterSet(colName string, _ xorm.Cell) {
switch colName {
case "created_unix":
a.Created = time.Unix(a.CreatedUnix, 0).Local()
}
}
// AttachmentLocalPath returns where attachment is stored in local file system based on given UUID.
func AttachmentLocalPath(uuid string) string {
return path.Join(setting.AttachmentPath, uuid[0:1], uuid[1:2], uuid)
}
// LocalPath returns where attachment is stored in local file system.
func (attach *Attachment) LocalPath() string {
return AttachmentLocalPath(attach.UUID)
}
// NewAttachment creates a new attachment object.
func NewAttachment(name string, buf []byte, file multipart.File) (_ *Attachment, err error) {
attach := &Attachment{
UUID: gouuid.NewV4().String(),
Name: name,
}
localPath := attach.LocalPath()
if err = os.MkdirAll(path.Dir(localPath), os.ModePerm); err != nil {
return nil, fmt.Errorf("MkdirAll: %v", err)
}
fw, err := os.Create(localPath)
if err != nil {
return nil, fmt.Errorf("Create: %v", err)
}
defer fw.Close()
if _, err = fw.Write(buf); err != nil {
return nil, fmt.Errorf("Write: %v", err)
} else if _, err = io.Copy(fw, file); err != nil {
return nil, fmt.Errorf("Copy: %v", err)
}
if _, err := x.Insert(attach); err != nil {
return nil, err
}
return attach, nil
}
func getAttachmentByUUID(e Engine, uuid string) (*Attachment, error) {
attach := &Attachment{UUID: uuid}
has, err := x.Get(attach)
if err != nil {
return nil, err
} else if !has {
return nil, ErrAttachmentNotExist{0, uuid}
}
return attach, nil
}
func getAttachmentsByUUIDs(e Engine, uuids []string) ([]*Attachment, error) {
if len(uuids) == 0 {
return []*Attachment{}, nil
}
// Silently drop invalid uuids.
attachments := make([]*Attachment, 0, len(uuids))
return attachments, e.In("uuid", uuids).Find(&attachments)
}
// GetAttachmentByUUID returns attachment by given UUID.
func GetAttachmentByUUID(uuid string) (*Attachment, error) {
return getAttachmentByUUID(x, uuid)
}
func getAttachmentsByIssueID(e Engine, issueID int64) ([]*Attachment, error) {
attachments := make([]*Attachment, 0, 5)
return attachments, e.Where("issue_id = ? AND comment_id = 0", issueID).Find(&attachments)
}
// GetAttachmentsByIssueID returns all attachments of an issue.
func GetAttachmentsByIssueID(issueID int64) ([]*Attachment, error) {
return getAttachmentsByIssueID(x, issueID)
}
func getAttachmentsByCommentID(e Engine, commentID int64) ([]*Attachment, error) {
attachments := make([]*Attachment, 0, 5)
return attachments, e.Where("comment_id=?", commentID).Find(&attachments)
}
// GetAttachmentsByCommentID returns all attachments of a comment.
func GetAttachmentsByCommentID(commentID int64) ([]*Attachment, error) {
return getAttachmentsByCommentID(x, commentID)
}
func getAttachmentsByReleaseID(e Engine, releaseID int64) ([]*Attachment, error) {
attachments := make([]*Attachment, 0, 10)
return attachments, e.Where("release_id = ?", releaseID).Find(&attachments)
}
// GetAttachmentsByReleaseID returns all attachments of a release.
func GetAttachmentsByReleaseID(releaseID int64) ([]*Attachment, error) {
return getAttachmentsByReleaseID(x, releaseID)
}
// DeleteAttachment deletes the given attachment and optionally the associated file.
func DeleteAttachment(a *Attachment, remove bool) error {
_, err := DeleteAttachments([]*Attachment{a}, remove)
return err
}
// DeleteAttachments deletes the given attachments and optionally the associated files.
func DeleteAttachments(attachments []*Attachment, remove bool) (int, error) {
for i, a := range attachments {
if remove {
if err := os.Remove(a.LocalPath()); err != nil {
return i, err
}
}
if _, err := x.Delete(a); err != nil {
return i, err
}
}
return len(attachments), nil
}
// DeleteAttachmentsByIssue deletes all attachments associated with the given issue.
func DeleteAttachmentsByIssue(issueId int64, remove bool) (int, error) {
attachments, err := GetAttachmentsByIssueID(issueId)
if err != nil {
return 0, err
}
return DeleteAttachments(attachments, remove)
}
// DeleteAttachmentsByComment deletes all attachments associated with the given comment.
func DeleteAttachmentsByComment(commentId int64, remove bool) (int, error) {
attachments, err := GetAttachmentsByCommentID(commentId)
if err != nil {
return 0, err
}
return DeleteAttachments(attachments, remove)
}

Some files were not shown because too many files have changed in this diff Show More