Compare commits

..

56 Commits

Author SHA1 Message Date
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
153 changed files with 7070 additions and 2471 deletions

View File

@@ -1,64 +0,0 @@
[target]
path = github.com/gogits/gogs
[deps]
github.com/bradfitz/gomemcache = commit:2fafb84
github.com/urfave/cli = commit:347a988
github.com/go-macaron/binding = commit:4892016
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:d8a0b86
github.com/go-macaron/session = commit:66031fc
github.com/go-macaron/toolbox = commit:82b5115
github.com/go-sql-driver/mysql = commit:2e00b5c
github.com/go-xorm/builder = commit:9c35786
github.com/go-xorm/core = commit:7daacb2
github.com/go-xorm/xorm = commit:19f6dfc
github.com/gogits/chardet = commit:2404f77
github.com/gogits/cron = commit:2fc07a4
github.com/gogits/git-module = commit:1b9552b
github.com/gogits/go-gogs-client = commit:264a3d5
github.com/gogits/go-libravatar = commit:cd1abbd
github.com/issue9/identicon = commit:d36b545
github.com/jaytaylor/html2text = commit:d16d412
github.com/kardianos/minwinsvc = commit:cad6b2b
github.com/klauspost/compress = commit:461e8fd
github.com/klauspost/cpuid = commit:09cded8
github.com/klauspost/crc32 = commit:cb6bfca
github.com/lib/pq = commit:67c3f2a
github.com/mattn/go-colorable = commit:d228849
github.com/mattn/go-isatty = commit:30a891c
github.com/mattn/go-sqlite3 = commit:ce9149a
github.com/mcuadros/go-version = commit:257f7b9
github.com/microcosm-cc/bluemonday = commit:e797637
github.com/msteinert/pam = commit:02ccfbf
github.com/nfnt/resize = commit:891127d
github.com/russross/blackfriday = commit:5f33e7b
github.com/satori/go.uuid = commit:b061729
github.com/sergi/go-diff = commit:24e2351
github.com/shurcooL/sanitized_anchor_name = commit:1dba4b3
github.com/Unknwon/cae = commit:c6aac99
github.com/Unknwon/com = commit:28b053d
github.com/Unknwon/i18n = commit:e0eb0ce
github.com/Unknwon/paginater = commit:701c23f
github.com/fatih/color = commit:42c364b
golang.org/x/crypto = commit:dc137be
golang.org/x/net = commit:f249948
golang.org/x/sys = commit:d75a526
golang.org/x/text = commit:ece019d
gopkg.in/alexcesaro/quotedprintable.v3 = commit:2caba25
gopkg.in/asn1-ber.v1 = commit:4e86f43
gopkg.in/bufio.v1 = commit:567b2bf
gopkg.in/clog.v1 = commit:bf4bf4a
gopkg.in/editorconfig/editorconfig-core-go.v1 = commit:a872f05
gopkg.in/gomail.v2 = commit:81ebce5
gopkg.in/ini.v1 = commit:e3c2d47
gopkg.in/ldap.v2 = commit:8168ee0
gopkg.in/macaron.v1 = commit:8be5635
gopkg.in/redis.v2 = commit:e617904
[res]
include = public|scripts|templates

View File

@@ -7,6 +7,8 @@ targets:
- git
debian-8:
<<: *debian
debian-9:
<<: *debian
ubuntu-12.04:
<<: *debian
ubuntu-14.04:

View File

@@ -4,6 +4,7 @@ go:
- 1.7.x
- 1.8.x
- 1.9.x
- 1.10.x
- master
before_install:

44
Dockerfile.aarch64hub Normal file
View File

@@ -0,0 +1,44 @@
FROM arm64v8/alpine:3.6
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.9/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 socat tzdata go
COPY . /app/gogs/build
WORKDIR /app/gogs/build
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,4 +1,4 @@
Gogs [![Build Status](https://travis-ci.org/gogits/gogs.svg?branch=master)](https://travis-ci.org/gogits/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)
Gogs [![Build Status](https://travis-ci.org/gogits/gogs.svg?branch=master)](https://travis-ci.org/gogits/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)
@@ -52,7 +52,7 @@ The goal of this project is to make the easiest, fastest, and most painless way
- Mail service
- Administration panel
- Supports MySQL, PostgreSQL, SQLite3, MSSQL and [TiDB](https://github.com/pingcap/tidb) (via MySQL protocol)
- Multi-language support ([26 languages](https://crowdin.com/project/gogs))
- Multi-language support ([28 languages](https://crowdin.com/project/gogs))
## Hardware Requirements
@@ -124,9 +124,9 @@ There are 5 ways to install Gogs:
## Acknowledgments
- Thanks [Egon Elbre](https://twitter.com/egonelbre) 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 [Crowdin](https://crowdin.com/project/gogs) for sponsoring open source translation plan.
- Thanks [DigitalOcean](https://www.digitalocean.com) for sponsoring VPS service.
- Thanks [KeyCDN](https://www.keycdn.com/) for sponsoring CDN service.
## Contributors

View File

@@ -33,7 +33,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- 支持邮件服务
- 支持后台管理面板
- 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 [TiDB](https://github.com/pingcap/tidb)(通过 MySQL 协议)数据库
- 支持多语言本地化([26 种语言]([more](https://crowdin.com/project/gogs))
- 支持多语言本地化([28 种语言]([more](https://crowdin.com/project/gogs))
## 硬件要求
@@ -95,7 +95,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- 感谢 [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 服务赞助。
- 感谢 [KeyCDN](https://www.keycdn.com/) 提供 CDN 服务赞助。
## 贡献成员

View File

@@ -27,7 +27,7 @@ to make automatic initialization process more smoothly`,
subcmdDeleteRepositoryArchives,
subcmdDeleteMissingRepositories,
subcmdGitGcRepos,
subcmdRewriteAllPublicKeys,
subcmdRewriteAuthorizedKeys,
subcmdSyncRepositoryHooks,
subcmdReinitMissingRepositories,
},
@@ -94,11 +94,11 @@ to make automatic initialization process more smoothly`,
},
}
subcmdRewriteAllPublicKeys = cli.Command{
Name: "rewrite-public-keys",
subcmdRewriteAuthorizedKeys = cli.Command{
Name: "rewrite-authorized-keys",
Usage: "Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)",
Action: adminDashboardOperation(
models.RewriteAllPublicKeys,
models.RewriteAuthorizedKeys,
"All public keys have been rewritten successfully",
),
Flags: []cli.Flag{

View File

@@ -22,6 +22,7 @@ import (
"github.com/gogits/git-module"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/models/errors"
"github.com/gogits/gogs/pkg/httplib"
"github.com/gogits/gogs/pkg/mailer"
"github.com/gogits/gogs/pkg/setting"
@@ -94,7 +95,7 @@ func runHookPreReceive(c *cli.Context) error {
repoID := com.StrTo(os.Getenv(http.ENV_REPO_ID)).MustInt64()
protectBranch, err := models.GetProtectBranchOfRepoByName(repoID, branchName)
if err != nil {
if models.IsErrBranchNotExist(err) {
if errors.IsErrBranchNotExist(err) {
continue
}
fail("Internal error", "GetProtectBranchOfRepoByName [repo_id: %d, branch: %s]: %v", repoID, branchName, err)

View File

@@ -172,6 +172,8 @@ func runWeb(c *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.
@@ -635,8 +637,10 @@ func runWeb(c *cli.Context) error {
// 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 *****
@@ -723,7 +727,7 @@ func runWeb(c *cli.Context) error {
}
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

@@ -35,6 +35,8 @@ SSH_LISTEN_HOST = 0.0.0.0
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,
@@ -224,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
@@ -292,7 +294,7 @@ 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 = true
ENABLE_FEDERATED_AVATAR = false
; Attachment settings for issues
[attachment]
@@ -453,8 +455,8 @@ NEWS_FEED_PAGING_NUM = 20
COMMITS_PAGING_NUM = 30
[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,sr-SP,sv-SE,ko-KR,gl-ES,uk-UA,en-GB,hu-HU,sk-SK
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,slovenský
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
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
; Used for datetimepicker
[i18n.datelang]
@@ -481,6 +483,11 @@ 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
; Extension mapping to highlight class
; e.g. .toml=ini

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

@@ -31,6 +31,7 @@ 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>

View File

@@ -169,11 +169,11 @@ reset_password_helper=Щракнете тук, за да нулирате пар
password_too_short=Размерът на паролата не може да бъде по-малък от 6 знака.
non_local_account=Нелокални потребители не могат да сменят паролата си през Gogs.
login_two_factor=Two-factor Authentication
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=Recovery Code
login_two_factor_recovery_code=Код за възстановяване
login_two_factor_enter_passcode=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Този код за възстановяване вече е бил използван или не е валиден.
@@ -761,7 +761,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=Настройките на хранилището са запазени успешно.
@@ -1163,6 +1163,7 @@ 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=Проверка за минимален размер на ключове
@@ -1178,7 +1179,7 @@ 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 Configuration
config.http_config=Конфигуриране на HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Настройки на базата данни
@@ -1210,7 +1211,7 @@ 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=Изпрати тестово писмо

View File

@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Data Wiki tohoto repositáře byla smazána.
settings.delete=Smazat tento repositář
settings.delete_desc=Jakmile smažete repositář, není možné se vrátit. Buďte si, prosím, jist.
settings.delete_notices_1=- Tuto operaci <strong>nelze</strong> zvrátit.
settings.delete_notices_2=Tato operace permanentně smaže vše v tomto repositáři, včetně dat Gitu, úkolů, komentářů a přístupu spolupracovníků.
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=- Po smazání se všechny forky se stanou nezávislé.
settings.deletion_success=Repositář byl smazán!
settings.update_settings_success=Možnosti repositáře byly změněny.
@@ -1163,6 +1163,7 @@ config.ssh_domain=Doména
config.ssh_port=Port
config.ssh_listen_port=Port pro naslouchání
config.ssh_root_path=Kořenová cesta
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Cesta testu klíčů
config.ssh_keygen_path=Cesta ke generátoru klíčů ('ssh-keygen')
config.ssh_minimum_key_size_check=Kontrola minimální velikosti klíčů
@@ -1210,7 +1211,7 @@ config.skip_tls_verify=Přeskočit ověření TLS
config.mailer_config=Nastavení odesílání e-mailů
config.mailer_enabled=Povolený
config.mailer_disable_helo=Vypnout HELO
config.mailer_name=Název
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Server
config.mailer_user=Uživatel
config.send_test_mail=Odeslat zkušební E-mail

View File

@@ -616,7 +616,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=There is nothing to compare because two branches have completely different history.
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
@@ -632,8 +632,8 @@ 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=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.create_merge_commit=Erstelle einen Merge-Commit
pulls.rebase_before_merging=Rebase vor dem Zusammenführen
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
@@ -739,8 +739,8 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
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.
@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Repository Wiki Daten erfolgreich gelöscht.
settings.delete=Dieses Repository löschen
settings.delete_desc=Wenn dieses Repository gelöscht wurde, gibt es keinen Weg zurück. Bitte seien Sie vorsichtig.
settings.delete_notices_1=- Diese Operation kann <strong>NICHT</strong> rückgängig gemacht werden.
settings.delete_notices_2=- Die Operation wird alles, was mit diesem Git-Repository verbunden ist, dauerhaft löschen, inklusive der Daten, Issues, Kommentare und Zugriffsrechte von Mitarbeitern.
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=- Nach dem Löschen werden alle Forks unabhängig.
settings.deletion_success=Repository wurde erfolgreich gelöscht!
settings.update_settings_success=Repository-Optionen aktualisiert.
@@ -835,7 +835,7 @@ 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=Add <a href="%s">Dingtalk</a> integration to your repository.
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
@@ -1100,7 +1100,7 @@ auths.domain=Domain
auths.host=Host
auths.port=Port
auths.bind_dn=DN binden
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
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
@@ -1141,7 +1141,7 @@ auths.still_in_used=Diese Authentifizierung wird noch von einigen Benutzern verw
auths.deletion_success=Authentifizierung wurde erfolgreich gelöscht!
auths.login_source_exist=Login-Quelle '%s' ist bereits vorhanden.
config.not_set=(not set)
config.not_set=(nicht festgelegt)
config.server_config=Serverkonfiguration
config.app_name=Name der Anwendung
config.app_ver=Anwendungsversion
@@ -1163,6 +1163,7 @@ 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=Rewrite authorized_keys At Start
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
@@ -1178,7 +1179,7 @@ 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 Configuration
config.http_config=HTTP-Konfiguration
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Datenbankkonfiguration
@@ -1210,7 +1211,7 @@ 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=Subject Prefix
config.mailer_host=Host
config.mailer_user=Benutzer
config.send_test_mail=Test-E-Mail senden

View File

@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Repository wiki data have been erased successfull
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.
@@ -1163,6 +1163,7 @@ 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
@@ -1210,7 +1211,7 @@ 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

View File

@@ -1163,6 +1163,7 @@ 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
@@ -1210,7 +1211,7 @@ 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

View File

@@ -761,7 +761,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=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
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.
@@ -1163,6 +1163,7 @@ 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=Rewrite authorized_keys At Start
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
@@ -1210,7 +1211,7 @@ 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=Subject Prefix
config.mailer_host=Host
config.mailer_user=Usuario
config.send_test_mail=Enviar email de prueba

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

File diff suppressed because it is too large Load Diff

View File

@@ -761,7 +761,7 @@ 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_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.
@@ -835,7 +835,7 @@ 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=Add <a href="%s">Dingtalk</a> integration to your repository.
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
@@ -1141,7 +1141,7 @@ auths.still_in_used=Tämä todennus on yhä joidenkin käyttäjien käytössä,
auths.deletion_success=Todennus on poistettu onnistuneesti!
auths.login_source_exist=Kirjautumislähde '%s' on jo olemassa
config.not_set=(not set)
config.not_set=(ei ole asetettu)
config.server_config=Palvelin asetukset
config.app_name=Sovellus nimi
config.app_ver=Sovellus versio
@@ -1163,6 +1163,7 @@ 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
@@ -1178,7 +1179,7 @@ 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 Configuration
config.http_config=HTTP-asetukset
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Tietokannan asetukset
@@ -1210,7 +1211,7 @@ 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

View File

@@ -617,14 +617,14 @@ 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.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 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.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.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.
@@ -632,8 +632,8 @@ 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=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.create_merge_commit=Créer un commit de fusion
pulls.rebase_before_merging=Rebaser avant la fusion
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
@@ -702,7 +702,7 @@ 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 requête de fusion plutôt qu'un push immédiat
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.
@@ -739,8 +739,8 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
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.
@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Le dépôt de données wiki ont été effacés av
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_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
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.
@@ -822,7 +822,7 @@ settings.event_issues_desc=Ticket ouvert, fermé, réouvert, modifié, assigné,
settings.event_issue_comment=Commentaire du ticket
settings.event_issue_comment_desc=Commentaire du ticket créé, modifié, ou supprimé.
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Requête de fusion 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_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_release=Version publiée
settings.event_release_desc=Version publiée dans un dépôt.
settings.active=Actif
@@ -835,7 +835,7 @@ 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=Add <a href="%s">Dingtalk</a> integration to your repository.
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
@@ -1100,21 +1100,21 @@ auths.domain=Domaine
auths.host=Hôte
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_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
auths.user_dn=Utilisateur DN
auths.attribute_username=Attribut nom d'utilisateur
auths.attribute_username_placeholder=Laisser vide pour utiliser la valeur du formulaire d'authentification comme nom d'utilisateur.
auths.attribute_name=First Name Attribute
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=Group Search Base DN
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=User Attribute Listed in Group
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
@@ -1141,7 +1141,7 @@ auths.still_in_used=Cette authentification est encore utilisée par d'autres uti
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=(not set)
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
@@ -1163,6 +1163,7 @@ 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=Rewrite authorized_keys At Start
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
@@ -1178,8 +1179,8 @@ 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=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
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
@@ -1210,7 +1211,7 @@ 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=Subject Prefix
config.mailer_host=Hôte
config.mailer_user=Utilisateur
config.send_test_mail=Envoyer courriel de Test

View File

@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Os datos da wiki do repositorio foron borrados co
settings.delete=Eliminar este repositorio
settings.delete_desc=Unha vez que eliminaches un repositorio, non hai volta atrás. Por favor, asegúrate de que é o que queres.
settings.delete_notices_1=- Esta operación <strong>NON SE PODE</strong> reverter.
settings.delete_notices_2=- Esta operación eliminará de maneira permanente todo o contido deste repositorio, incluíndo os datos de git, as incidencias, os comentarios e os permisos de acceso dos colaboradores.
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=- Todos os forks converteranse en independentes tras o borrado.
settings.deletion_success=O repositorio foi eliminado satisfactoriamente!
settings.update_settings_success=As opcións do repositorio actualizáronse correctamente.
@@ -1163,6 +1163,7 @@ config.ssh_domain=Dominio
config.ssh_port=Porto
config.ssh_listen_port=Porto de escoita
config.ssh_root_path=Ruta raíz
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Ruta da clave de proba
config.ssh_keygen_path=Ruta do xerador de claves ('ssh-keygen')
config.ssh_minimum_key_size_check=Tamaño mínimo da clave de verificación
@@ -1210,7 +1211,7 @@ config.skip_tls_verify=Omitir a verificación TLS
config.mailer_config=Configuración do servidor de correo
config.mailer_enabled=Activado
config.mailer_disable_helo=Desactivar HELO
config.mailer_name=Nome
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Host
config.mailer_user=Usuario
config.send_test_mail=Enviar correo electrónico de proba

View File

@@ -632,8 +632,8 @@ pulls.is_checking=Az ütközés ellenőrzés még folyamatban van, frissítsd az
pulls.can_auto_merge_desc=Ez a beolvasztási kérés automatikusán egyesíthető.
pulls.cannot_auto_merge_desc=Ez a beolvasztási kérés ütközések miatt nem egyesíthető automatikusan.
pulls.cannot_auto_merge_helper=Kérlek, egyesítsd kézileg a konfliktusok megoldásához.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.create_merge_commit=Eggyesítő commit létrehozása
pulls.rebase_before_merging=Rebase eggyesítés előtt
pulls.merge_pull_request=Beolvasztási kérés egyesítése
pulls.open_unmerged_pull_exists=`Nem tudja újranyitni, mert már van egy nyitott egyesítési kérés (#%d) ugyanebben a tárolóban, ugyanezekket az egyesítési információkkal, és végrehajtásra vár.`
pulls.delete_branch=Ág törlése
@@ -739,8 +739,8 @@ settings.tracker_issue_style.numeric=Numerikus
settings.tracker_issue_style.alphanumeric=Alfanumerikus
settings.tracker_url_format_desc=Az alábbiak helyettesítik a felhasználónevet, repository nevet és hibajegy számot: <code>{user} {repo} {index}</code>.
settings.pulls_desc=Beolvasztási kérések engedélyezése a nyilvános hozzájárulások végett
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.pulls.ignore_whitespace=Whitespacek figyelmen kívül hagyása
settings.pulls.allow_rebase_merge=Rebase engedélyezése eggyesítő commitokhoz
settings.danger_zone=Veszélyes terület
settings.cannot_fork_to_same_owner=Nem másolható a tároló az eredeti tulajdonosához.
settings.new_owner_has_same_repo=Az új tulaj már rendelkezik ilyen nevű repository-val. Kérlek, válassz másik nevet.
@@ -761,7 +761,7 @@ settings.wiki_deletion_success=A repository-hoz tartozó wiki adatok törlése s
settings.delete=Repository Törlése
settings.delete_desc=Miután kitörölted a repository-t nincs visszaút. Jól gondold meg.
settings.delete_notices_1=- Ez a művelet <strong>NEM</strong> vonható vissza.
settings.delete_notices_2=- Ez a művelet véglegesen töröl minden repository-val kapcsolatos dolgot, beleértve a Git adatokat, hibajegyeket, megjegyzéseket és a közreműködők hozzáférési jogát.
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=- Minden fork önállóvá válik a törlés után.
settings.deletion_success=A tároló sikeresen törölve!
settings.update_settings_success=A tároló beállításai sikeresen frissítve.
@@ -1100,7 +1100,7 @@ auths.domain=Tartomány
auths.host=Állomás
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_dn_helper=Használhatja a '%s'-t felhasználónév helyett, pl.: DOM\%s
auths.bind_password=Bind jelszó
auths.bind_password_helper=Figyelmeztetés: Ez a jelszó egyszerű szöveges formátumban kerül metésre. Ne használjon egy magas szintű jogosultsággal rendelkező fiókot.
auths.user_base=Felhasználókeresés alapja
@@ -1141,7 +1141,7 @@ auths.still_in_used=A hitelesítési mód még használatban van, mielőtt tör
auths.deletion_success=Hitelesítési forrás sikeresen törölve!
auths.login_source_exist=Bejelentkezési forrás "%s" már létezik.
config.not_set=(not set)
config.not_set=(nincs beállítva)
config.server_config=Kiszolgáló konfiguráció
config.app_name=Alkalmazás neve
config.app_ver=Alkalmazás verziója
@@ -1163,6 +1163,7 @@ config.ssh_domain=Tartomány
config.ssh_port=Port
config.ssh_listen_port=Figyelő port
config.ssh_root_path=Gyökér elérési útvonal
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Kulcs ellenőrzés útvonala
config.ssh_keygen_path=Kulcsgeneráló ('ssh-keygen') elérési útja
config.ssh_minimum_key_size_check=Minimális kulcsméret ellenőrzés
@@ -1178,8 +1179,8 @@ config.disable_http_git=A HTTP protokoll letiltása GIT-hez
config.enable_local_path_migration=Engedélyezi a migrációt helyi elérési út alapján
config.commits_fetch_concurrency=Konkurens lekérés
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.http_config=HTTP beállítások
config.http_access_control_allow_origin=Hozzáférés vezérlés forrás szerint
config.db_config=Adatbázis konfiguráció
config.db_type=Típus
@@ -1210,7 +1211,7 @@ config.skip_tls_verify=TLS ellenőrzése mellőzése
config.mailer_config=Levelező beállítások
config.mailer_enabled=Engedélyezett
config.mailer_disable_helo=HELO letiltása
config.mailer_name=Név
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Állomás
config.mailer_user=Felhasználó
config.send_test_mail=Teszt E-mail küldése

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

File diff suppressed because it is too large Load Diff

View File

@@ -761,7 +761,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.
@@ -1163,6 +1163,7 @@ 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
@@ -1210,7 +1211,7 @@ 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

View File

@@ -231,15 +231,15 @@ email_been_used=電子メール アドレスは既に使用されています。
username_password_incorrect=ユーザー名またはパスワードが正しくありません。
enterred_invalid_repo_name=入力したリポジトリの名前が正しいかどうかを確認してください。
enterred_invalid_owner_name=入力された所有者名が正しいかどうかを確認してください。
enterred_invalid_password=入力したパスワードが正しいか確認してください。
enterred_invalid_password=入力したパスワードが正しいか確認してください。
user_not_exist=指定されたユーザーは存在しません。
last_org_owner=削除するユーザーはチーム最後のメンバーです。別の所有者設定が必要です。
last_org_owner=所有者のチームから最後のユーザーを削除することはできません。組織には常に最低でも1人の所有者が必要です。
invalid_ssh_key=SSHを確認できません:%s
invalid_ssh_key=申し訳ございませんが、SSH キーを検証することができません: %s
unable_verify_ssh_key=GogsはあなたのSSH keyを確認できません。しかし、我々は有効とみなしますので、自分自身で確認してください。
auth_failed=認証に失敗しました: %v
still_own_repo=アカウント所有のリポジトリがあり、リポジトリの削除または所有者の移譲が必要です。
still_own_repo=あなたのアカウントはまだ少なくとも1つのリポジトリの所有権を所持しています。まずそれらの削除または移譲を行う必要があります。
still_has_org=あなたのアカウントは1つ以上の組織に所属しているため、先に組織を脱退するか削除する必要があります。
org_still_own_repo=この組織はまだリポジトリの所有しています、リポジトリを削除または転送する必要があります。
@@ -297,7 +297,7 @@ old_password=現在のパスワード
new_password=新しいパスワード
retype_new_password=新しいパスワードを再入力します。
password_incorrect=現在のパスワードが正しくありません。
change_password_success=パスワードが正常に変更されました。今すぐ新しいパスワード経由でサインインすることができます。
change_password_success=パスワードが正常に変更されました。今すぐ新しいパスワードを使用してサインインすることができます。
password_change_disabled=ローカルユーザ以外はパスワードを変更できません。
emails=メールアドレス
@@ -307,11 +307,11 @@ primary=プライマリー
primary_email=プライマリに設定
delete_email=削除
email_deletion=電子メールの削除
email_deletion_desc=この電子メール アドレスを削除すると、あなたのアカウントの関連情報も削除されます。続行しますか
email_deletion_desc=このメールアドレスを削除すると、あなたのアカウントの関連情報も削除されます。続行しますか?
email_deletion_success=電子メールが正常に削除されました。
add_new_email=新しいメールアドレスを追加
add_email=メールアドレスの追加
add_email_confirmation_sent='%s' に新しい確認メールを送信しました、次の %d 時間以内に受信トレイを確認し、確認プロセスを完了してください。
add_email_confirmation_sent='%s' に新しい確認メールを送信しました%d 時間以内に受信トレイを確認し、確認プロセスを完了してください。
add_email_success=新しいメールアドレスが追加されました。
manage_ssh_keys=SSH キーを管理
@@ -372,7 +372,7 @@ access_token_deletion_desc=パーソナルアクセストークンを削除す
delete_token_success=パーソナルアクセストークンは正常に削除されました!同時にあなたのアプリケーションを更新することを忘れないでください。
orgs.none=あなたはどの組織のメンバーでもありません。
orgs.leave_title=組織を作成
orgs.leave_title=組織からの脱退
orgs.leave_desc=組織から脱退すると、全てのリポジトリとチームへのアクセスができなくなります。続行しますか?
repos.leave=脱退
@@ -415,7 +415,7 @@ mirror_address=ミラー アドレス
mirror_address_desc=アドレスに必要なユーザーの資格情報を入力してください。
mirror_last_synced=最終同期
watchers=ウォッチャー
stargazers=Stargazers
stargazers=スターゲイザー
forks=フォーク
form.reach_limit_of_creation=リポジトリの最大作成数 %d にすでに達しています。
@@ -485,7 +485,7 @@ editor.edit_file=ファイルを編集
editor.preview_changes=変更箇所のプレビュー
editor.cannot_edit_non_text_files=テキストファイルでないため編集できません
editor.edit_this_file=このファイルを編集
editor.must_be_on_a_branch=You must be on a branch to make or propose changes to this file
editor.must_be_on_a_branch=このファイルを作成または変更の提案をするには、ブランチ上である必要があります。
editor.fork_before_edit=ファイルを編集する前にこのリポジトリをフォークする必要があります。
editor.delete_this_file=このファイルを削除
editor.must_have_write_access=このファイルへの変更を作成・提案するには、書き込み権限が必要です
@@ -506,7 +506,7 @@ editor.new_branch_name_desc=新しいブランチ名...
editor.cancel=キャンセル
editor.filename_cannot_be_empty=ファイル名を空にすることはできません。
editor.branch_already_exists=ブランチ '%s' は、このリポジトリに既に存在します。
editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
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' は、すでにリポジトリに存在しません。
@@ -576,7 +576,7 @@ issues.next=次ページ
issues.open_title=オープン
issues.closed_title=クローズ
issues.num_comments=%d コメント
issues.commented_at=`<a href="#%s">%s</a> にコメント`
issues.commented_at=`<a href="#%s">%s</a> にコメントしました`
issues.delete_comment_confirm=このコメントを削除してよろしいですか?
issues.no_content=まだコンテンツがありません
issues.close_issue=閉じる
@@ -616,28 +616,28 @@ 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.nothing_merge_base=2 本の枝が完全に異なる歴史を持っているので、比較するものがありません。
pulls.has_pull_request=`既にプルリクエストがこれらのターゲット間に存在します: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=プルリクエストを作成します。
pulls.title_desc=wants to merge %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code>
pulls.title_desc= <code>%[2]s</code> から <code>%[3]s</code> への %[1]d コミットのマージを希望しています
pulls.merged_title_desc=%[4]s に %[1]d 件のコミットが <code>%[2]s</code> から <code>%[3]s</code> にマージされました
pulls.tab_conversation=会話
pulls.tab_commits=コミット
pulls.tab_files=ファイルが変更された
pulls.tab_files=変更されたファイル
pulls.reopen_to_merge=マージ操作を実行するには、このプルリクエストを再び開いてください。
pulls.merged=マージされた
pulls.has_merged=このプルプルリクエストは正常にマージされました!
pulls.data_broken=Data of this pull request has been broken due to deletion of fork information.
pulls.data_broken=フォーク情報の削除によってこのプルリクエストのデータは壊れています。
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.create_merge_commit=マージコミットを作成する
pulls.rebase_before_merging=マージする前に再配置します。
pulls.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.open_unmerged_pull_exists=`同じリポジトリに同じマージ情報持つ未解決のプルリクエスト (#%d) が存在するため再び開くことができません。`
pulls.delete_branch=ブランチの削除
pulls.delete_branch_has_new_commits=マージ後に新しいコミットがれているため、ブランチを削除することが出来ません。
pulls.delete_branch_has_new_commits=マージ後に新しいコミットが行われているため、ブランチを削除することはできません。
milestones.new=新しいマイルストーン
milestones.open_tab=%d オープン
@@ -739,8 +739,8 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.pulls.ignore_whitespace=空白の変更を無視する
settings.pulls.allow_rebase_merge=コミットをマージするためのリベースの使用を許可する
settings.danger_zone=危険地帯
settings.cannot_fork_to_same_owner=元の持ち主に向けてフォークすることは出来ません。
settings.new_owner_has_same_repo=新しいオーナーは、既に同じ名前のリポジトリを持っています。
@@ -752,17 +752,17 @@ settings.convert_succeed=リポジトリは正常に通常リポジトリへ変
settings.transfer=オーナー移転
settings.transfer_desc=リポジトリをあなたが管理者権限を持っている別のユーザーまた組織に移譲します。
settings.transfer_notices_1=-新しい所有者が個人ユーザーの場合、あなたがアクセスできなくなります。
settings.transfer_notices_2=- You will conserve access if new owner is an organization and if you're one of the owners.
settings.transfer_notices_2=- 新しい所有者が組織で、あなたがその組織の所有者である場合はアクセス権が残ります。
settings.transfer_form_title=操作を確認するために、以下の情報を入力してください。
settings.wiki_delete=Wikiのデータ消去
settings.wiki_delete_desc=Wikiのデータを消去すると元に戻すことは出来ません。よく確認してください。
settings.wiki_delete_notices_1=- This will delete and disable the wiki for %s
settings.wiki_delete_notices_1=- %s の Wiki を削除して無効にします。
settings.wiki_deletion_success=Wikiのデータ消去が完了しました。
settings.delete=このリポジトリを削除
settings.delete_desc=リポジトリを削除すると元に戻せません。確実に確認してください。
settings.delete_notices_1=-この操作は<strong>元に戻せません</strong> 。
settings.delete_notices_2=- この操作は、Git データ、課題、コメント、共同編集者のアクセス権などを含む、このリポジトリに関するすべてを完全に削除します。
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=- 削除後、すべてのフォークは独立したリポジトリになります。
settings.deletion_success=リポジトリが正常に削除されました。
settings.update_settings_success=リポジトリ オプションが更新されました。
settings.transfer_owner=新しいオーナー
@@ -801,7 +801,7 @@ settings.add_webhook_desc=私たちは、指定されたURLに購読されたイ
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.secret_desc=秘密キーは、 <code>X-Gogs-Signature</code> ヘッダーを介してペイロードの HMAC SHA256 六角ダイジェストとして送信されます。
settings.slack_username=ユーザ名
settings.slack_icon_url=アイコン URL
settings.slack_color=カラー
@@ -835,7 +835,7 @@ 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=Add <a href="%s">Dingtalk</a> integration to your repository.
settings.add_dingtalk_hook_desc=リポジトリに <a href="%s">Dingtalk</a> 連携を追加します。
settings.slack_token=トークン
settings.slack_domain=ドメイン
settings.slack_channel=チャンネル
@@ -860,7 +860,7 @@ diff.data_not_available=差分データは利用できません。
diff.show_diff_stats=差分情報を表示
diff.show_split_view=分割表示
diff.show_unified_view=一括表示
diff.stats_desc=共有<strong>%d 個のファイル変更した</strong>、<strong>%d 個の追加</strong><strong>%d 個の削除</strong>を含む
diff.stats_desc=<strong>%d ファイル変更</strong>、<strong>%d 追加</strong><strong>%d 削除</strong>
diff.bin=BIN
diff.view_file=ファイルの表示
diff.file_suppressed=ファイルの差分が大きいため隠しています
@@ -871,10 +871,10 @@ release.new_release=新しいリリース
release.draft=ドラフト
release.prerelease=プレリリース
release.edit=編集
release.ahead=このリリース以降 %s へ <strong>%d</strong> コミット
release.ahead=このリリース以降 %[2]s へ <strong>%[1]d</strong> コミット
release.source_code=ソース コード
release.new_subheader=Publish releases to iterate product.
release.edit_subheader=詳細な変更ログは、ユーザーに何が改善されたかの理解を助けることができます
release.new_subheader=製品を反復するためにリリースを公開する。
release.edit_subheader=詳細な変更ログは、ユーザーが改善点を理解するのに役立つでしょう
release.tag_name=タグ名
release.target=ターゲット
release.tag_helper=既存のタグを選択するか、新しいタグを作成し発行します。
@@ -895,7 +895,7 @@ release.deletion_desc=このリリースを削除すると、対応するGitの
release.deletion_success=リリースが正常に削除されました。
release.tag_name_already_exist=このタグ名には既にリリースが存在します。
release.tag_name_invalid=使用できないタグ名です。
release.downloads=Downloads
release.downloads=ダウンロード
[org]
org_name_holder=組織名
@@ -927,7 +927,7 @@ settings.website=WEBサイト
settings.location=ロケーション
settings.update_settings=設定の更新
settings.update_setting_success=組織の設定が更新されました。
settings.change_orgname_prompt=This change will affect how links relate to the organization.
settings.change_orgname_prompt=この変更は組織へのリンクに影響します。
settings.update_avatar_success=組織のアバター画像が正常に更新されました。
settings.delete=組織を削除
settings.delete_account=この組織を削除
@@ -1009,10 +1009,10 @@ 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_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.
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=現在のGoroutine
@@ -1100,22 +1100,22 @@ 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_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=Leave empty to use sign-in form field value for user name.
auths.attribute_name=First Name Attribute
auths.attribute_username_placeholder=ログインフォームの値を使う場合は空にしてください。
auths.attribute_name=名前属性
auths.attribute_surname=名字属性
auths.attribute_mail=Eメール属性
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.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=属性をバインドDNのコンテクストから取得する
auths.filter=User フィルター
auths.admin_filter=Admin フィルター
auths.ms_ad_sa=Ms Ad SA
@@ -1141,7 +1141,7 @@ auths.still_in_used=この認証を使用しているユーザーがいます。
auths.deletion_success=認証が正常に削除されました。
auths.login_source_exist=ログイン ソース '%s' は既に存在します。
config.not_set=(not set)
config.not_set=(未設定)
config.server_config=サーバーの構成
config.app_name=アプリケーション名
config.app_ver=アプリケーションのバージョン
@@ -1163,6 +1163,7 @@ 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=最小キーサイズチェック
@@ -1175,10 +1176,10 @@ config.repo_force_private=非公開リポジトリの強制
config.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.enable_local_path_migration=ローカルパス移行の有効化
config.commits_fetch_concurrency=コミットのフェッチの並行数
config.http_config=HTTP Configuration
config.http_config=HTTP の設定
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=データベース設定
@@ -1210,7 +1211,7 @@ 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=テストメールの送信
@@ -1284,21 +1285,21 @@ notices.delete_success=システム通知が正常に削除されました。
[action]
create_repo=がリポジトリ <a href="%s"> %s</a> を作成しました
fork_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">%[4]s</a><a href="%[1]s/src/%[2]s">%[3]s</a>プッシュしました
rename_repo=<code>%[1]s</code> から <a href="%[2]s">%[3]s</a> にリポジトリ名を変更しました
commit_repo=<a href="%[1]s">%[4]s</a><a href="%[1]s/src/%[2]s">%[3]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> へのコメント`
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> が再び開かれました`
merge_pull_request=`プルリクエスト <a href="%s/pulls/%s"> %s[2]s</a>をマージしました`
create_branch=<a href="%[1]s">%[4]s</a> に新しいブランチ <a href="%[1]s/src/%[2]s">%[3]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="%[1]s">%[3]s</a> に タグ <a href="%[1]s/src/%[2]s">%[2]s</a> をプッシュしました
push_tag=<a href="%[1]s">%[3]s</a> にタグ <a href="%[1]s/src/%[2]s">%[2]s</a> をプッシュしました
delete_tag=<a href="%[1]s">%[3]s</a> のタグ <code>%[2]s</code> を削除しました
[tool]

View File

@@ -349,7 +349,7 @@ two_factor_then_enter_passcode=그리고 코드를 입력하세요:
two_factor_verify=확인
two_factor_invalid_passcode=입력한 코드가 올바르지 않습니다. 다시 시도해 주세요!
two_factor_enable_error=2단계 인증 활성화 실패: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
two_factor_enable_success=2단계 인증이 성공적으로 활성화되었습니다!
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
@@ -762,7 +762,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=- 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=저장소 옵션이 성공적으로 업데이트 되었습니다.
@@ -1164,6 +1164,7 @@ 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=최소 키 사이즈 검사
@@ -1179,7 +1180,7 @@ 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_config=HTTP 설정
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=데이터베이스 설정
@@ -1211,7 +1212,7 @@ 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=테스트 이메일 보내기

View File

@@ -761,7 +761,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.
@@ -1163,6 +1163,7 @@ 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
@@ -1210,7 +1211,7 @@ 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

View File

@@ -761,7 +761,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.
@@ -1163,6 +1163,7 @@ 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
@@ -1210,7 +1211,7 @@ 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

View File

@@ -40,7 +40,7 @@ your_settings=Twoje ustawienia
activities=Aktywności
pull_requests=Oczekujące zmiany
issues=Zagadnienia
issues=Problemy
cancel=Anuluj
@@ -632,8 +632,8 @@ 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=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.create_merge_commit=Utwórz scalający commit
pulls.rebase_before_merging=Rebase przed scaleniem
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łąź
@@ -739,8 +739,8 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
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.
@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Dane wiki zostały usunięte.
settings.delete=Usuń to repozytorium
settings.delete_desc=Po usunięciu repozytorium nie ma odwrotu. Upewnij się, że tego chcesz.
settings.delete_notices_1=- Ta operacja <strong>NIE MOŻE</strong> zostać cofnięta.
settings.delete_notices_2=- Ta operacja trwale usunie wszystko z tego repozytorium, w tym dane Git, problemy, komentarze i dostęp dla współpracowników.
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=Wszystkie forki staną się niezależne po usunięciu.
settings.deletion_success=Repozytorium zostało pomyślnie usunięte!
settings.update_settings_success=Opcje repozytorium zostały pomyślnie zaktualizowane.
@@ -1100,7 +1100,7 @@ auths.domain=Domena
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_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
@@ -1141,7 +1141,7 @@ auths.still_in_used=Ten rodzaj autentykacji jest wciąż wykorzystywany przez ni
auths.deletion_success=Uwierzytelnienie zostało usunięte pomyślnie!
auths.login_source_exist=Login '%s' już istnieje.
config.not_set=(not set)
config.not_set=(nie ustawiono)
config.server_config=Konfiguracja serwera
config.app_name=Nazwa aplikacji
config.app_ver=Wersja aplikacji
@@ -1163,6 +1163,7 @@ 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
@@ -1178,8 +1179,8 @@ 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=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
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
@@ -1210,7 +1211,7 @@ 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=Subject Prefix
config.mailer_host=Host
config.mailer_user=Użytkownik
config.send_test_mail=Wyślij email testowy

View File

@@ -632,7 +632,7 @@ pulls.is_checking=A verificação do conflito ainda está em progresso, por favo
pulls.can_auto_merge_desc=O merge deste Pull Pequest pode ser aplicado automaticamente.
pulls.cannot_auto_merge_desc=O merge deste Pull Request não pode ser aplicado automaticamente pois há conflitos.
pulls.cannot_auto_merge_helper=Por favor, aplique o merge manualmente para resolver os conflitos.
pulls.create_merge_commit=Create a merge commit
pulls.create_merge_commit=Criar commit de um merge
pulls.rebase_before_merging=Rebase before merging
pulls.merge_pull_request=Solicitação de merge de Pull Request
pulls.open_unmerged_pull_exists=`Você não pode executar a operação de reabrir porque já existe um Pull request aberto (#%d) do mesmo repositório com as mesmas informações de merge e está esperando pelo merge.`
@@ -739,7 +739,7 @@ settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Você pode usar o espaço reservado <code>{user} {repo} {index}</code> para o nome do usuário, índice de nome e a questão do repositório.
settings.pulls_desc=Habilitar Pull Requests para aceitar contribuições públicas
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.ignore_whitespace=Ignorar alterações em espaço em branco
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Zona de perigo
settings.cannot_fork_to_same_owner=Não se pode realizar fork de um repositório para seu dono original.
@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Dados de wiki do repositório foram deletados com
settings.delete=Deletar este repositório
settings.delete_desc=Uma vez que você remova um repositório, não tem volta. Por favor, tenha certeza.
settings.delete_notices_1=-Esta operação <strong>NÃO PODERÁ</strong> ser desfeita.
settings.delete_notices_2=- Esta operação irá apagar permanentemente o tudo deste repositório, incluindo os dados do Git, Issues, comentários e acessos dos colaboradores.
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=-Todos os forks se tornarão independentes após a exclusão.
settings.deletion_success=Repositório excluído com sucesso!
settings.update_settings_success=As opções do repositório foram atualizadas com sucesso.
@@ -1163,6 +1163,7 @@ config.ssh_domain=Domínio
config.ssh_port=Porta
config.ssh_listen_port=Porta de escuta
config.ssh_root_path=Caminho da raiz
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Caminho da chave de teste
config.ssh_keygen_path=Caminho do keygen ('ssh-keygen')
config.ssh_minimum_key_size_check=Verificar tamanho mínimo da chave
@@ -1175,10 +1176,10 @@ config.repo_force_private=Forçar Privado
config.max_creation_limit=Limite de Criação
config.preferred_licenses=Licenças Preferidas
config.disable_http_git=Desabilitar Git por HTTP
config.enable_local_path_migration=Enable Local Path Migration
config.enable_local_path_migration=Permitir a migração de caminho local
config.commits_fetch_concurrency=Commits Fetch Concurrency
config.http_config=HTTP Configuration
config.http_config=Configuração de HTTP
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Configuração do banco de dados
@@ -1210,7 +1211,7 @@ config.skip_tls_verify=Pular verificação de TLS
config.mailer_config=Configuração de envio de e-mail
config.mailer_enabled=Habilitado
config.mailer_disable_helo=Desabilitar HELO
config.mailer_name=Nome
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Host
config.mailer_user=Usuário
config.send_test_mail=Enviar email de teste

View File

@@ -98,7 +98,7 @@ 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=Отключить самостоятельную регистрацию
@@ -159,7 +159,7 @@ confirmation_mail_sent_prompt=Новое письмо для подтвержд
active_your_account=Активируйте свой аккаунт
prohibit_login=Вход запрещен
prohibit_login_desc=Вход для вашей учетной записи был запрещен, пожалуйста, свяжитесь с администратором сайта.
resent_limit_prompt=Извините, вы уже запросили активацию по электронной почте недавно. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
resent_limit_prompt=Вы уже запрашивали активацию по электронной почте. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (<b>%s</b>). Если вам не приходило письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже.
resend_mail=Нажмите здесь, чтобы переотправить активационное письмо
send_reset_mail=Нажмите сюда, чтобы отправить письмо для сброса пароля
@@ -476,7 +476,7 @@ branches.overview=Обзор
branches.active_branches=Активные ветки
branches.stale_branches=Устаревшие ветки
branches.all=Все ветки
branches.updated_by=Обновлено %[1]s %[2]s
branches.updated_by=Обновлено %[1]s пользователем %[2]s
branches.change_default_branch=Change Default Branch
editor.new_file=Новый файл
@@ -616,7 +616,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.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>
@@ -632,8 +632,8 @@ 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.create_merge_commit=Создать коммит на слияние
pulls.rebase_before_merging=Выполнить rebase перед слиянием
pulls.merge_pull_request=Слить пулл-реквест
pulls.open_unmerged_pull_exists=`Вы не можете снова открыть, поскольку уже существует запрос на слияние (#%d) из того же репозитория с той же информацией о слиянии и ожидающий слияния. `
pulls.delete_branch=Удалить ветку
@@ -739,8 +739,8 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
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=У нового владельца уже есть хранилище с таким названием.
@@ -761,7 +761,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=Настройки репозитория обновлены успешно.
@@ -835,12 +835,12 @@ 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=Add <a href="%s">Dingtalk</a> integration to your repository.
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>Common Gotcha!</b> Если вы ищите куда добавить персональные публичные ключи, добавьте их в <a href="%s%s">настройках вашего аккаунта</a>.
settings.deploy_keys_helper=<b>Подсказка:</b> если вы хотите добавить личные публичные ключи, сделайте это в <a href="%s%s">настройках вашего аккаунта</a>.
settings.add_deploy_key=Добавить ключ развертывания
settings.deploy_key_desc=Ключи развёртывания доступны только для чтения. Это не то же самое что и SSH-ключи аккаунта.
settings.no_deploy_keys=Вы не добавляли ключи развертывания.
@@ -908,7 +908,7 @@ invite_someone=Пригласить кого-нибудь
teams=Команды
lower_members=Участники
lower_repositories=Репозитории
create_new_team=Создать Новую Команду
create_new_team=Создать новую команду
org_desc=Описание
team_name=Название команды
team_desc=Описание
@@ -1015,7 +1015,7 @@ dashboard.reinit_missing_repos=Реинициализировать все ре
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=Памяти использовано
@@ -1100,17 +1100,17 @@ 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_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=First Name Attribute
auths.attribute_name=Имя атрибута
auths.attribute_surname=Фамилия аттрибута
auths.attribute_mail=Электронная почта аттрибута
auths.verify_group_membership=Verify group membership
auths.verify_group_membership=Верифицировать членство в группе
auths.group_search_base_dn=Base DN для поиска группы
auths.group_filter=Групповой фильтр
auths.group_attribute_contain_user_list=Атрибут группы, содержащий список пользователей
@@ -1141,7 +1141,7 @@ auths.still_in_used=Эта проверка подлинности до сих
auths.deletion_success=Канал аутентификации успешно удален!
auths.login_source_exist=Источник входа '%s' уже существует.
config.not_set=(not set)
config.not_set=(не задано)
config.server_config=Конфигурация сервера
config.app_name=Имя приложения
config.app_ver=Версия приложения
@@ -1163,6 +1163,7 @@ 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=Минимальный размер ключа проверки
@@ -1178,8 +1179,8 @@ config.disable_http_git=Выключить HTTP Git
config.enable_local_path_migration=Включить миграцию с локального пути
config.commits_fetch_concurrency=Параллельность получения коммитов
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.http_config=Конфигурация HTTP
config.http_access_control_allow_origin=Содержимое заголовка Access Control Allow Origin
config.db_config=Конфигурация базы данных
config.db_type=Тип
@@ -1202,15 +1203,15 @@ 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=Subject Prefix
config.mailer_host=Сервер
config.mailer_user=Пользователь
config.send_test_mail=Отправить тестовое письмо
@@ -1247,9 +1248,9 @@ config.git_max_diff_line_characters=Максимальное количеств
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_mirror_timeout=Время ожидания обновления зеркала
config.git_clone_timeout=Время ожидания операции клонирования
config.git_pull_timeout=Время ожидания операции извлечения
config.git_gc_timeout=Время Ожидания Операции Сборки Мусора
config.log_config=Конфигурация журнала
@@ -1296,8 +1297,8 @@ create_pull_request=`создал запрос на слияние <a href="%s/p
close_pull_request=`закрыл запрос на слияние <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`открыл снова запрос на слияние <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`слил пул реквест <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=создать новую ветку <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
delete_branch=удален бранч <code>%[2]s</code> at <a href="%[1]s">%[3]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>
delete_tag=удален тег <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
@@ -1306,19 +1307,19 @@ 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=минут

View File

@@ -632,8 +632,8 @@ pulls.is_checking=Kontrola rozporov stále pokračuje, prosím obnovte stránku
pulls.can_auto_merge_desc=Tento pull request je možné automaticky zlúčiť.
pulls.cannot_auto_merge_desc=Tento pull request nemôže byť automaticky zlúčený pretože obsahuje konflikty.
pulls.cannot_auto_merge_helper=Prosím zlúčte manuálne pre vyriešenie konfliktov.
pulls.create_merge_commit=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.create_merge_commit=Vytvoriť zlúčenú revíziu
pulls.rebase_before_merging=Rebase pred zlúčením
pulls.merge_pull_request=Zlúčiť pull request
pulls.open_unmerged_pull_exists=`Nemôžete znovu otvoriť požiadavku na stiahnutie, pretože požiadavka na stiahnutie z rovnakého repozitára s rovnakými informáciami pre zlúčenie už existuje (#%d) a čaká na zlúčenie.`
pulls.delete_branch=Odstrániť vetvu
@@ -739,8 +739,8 @@ settings.tracker_issue_style.numeric=Numerická
settings.tracker_issue_style.alphanumeric=Alfanumerické
settings.tracker_url_format_desc=Môžete použiť zástupné výrazy <code>{user} {repo} {index}</code> pre užívateľské meno, názov repozitára a číslo úlohy.
settings.pulls_desc=Povoliť požiadavky na stiahnutie, aby mohli byť príspevky verejnosti akceptované
settings.pulls.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.pulls.ignore_whitespace=Ignorovať zmeny v prázdnom priestore
settings.pulls.allow_rebase_merge=Povoliť použitie rebase pre zlúčenie revízií
settings.danger_zone=Riziková zóna
settings.cannot_fork_to_same_owner=Nemôžete rozštiepiť repozitár jeho vlastníkovi.
settings.new_owner_has_same_repo=Nový vlastník už repozitár s rovnakým názvom má. Vyberte, prosím, iné meno.
@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Data Wiki tohoto repozitára boli zmazané.
settings.delete=Odstrániť tento repozitár
settings.delete_desc=Hneď ako odstránite repozitár, nie je možné vrátiť sa späť, Buďte si prosím istý.
settings.delete_notices_1=- Tuto operáciu <strong>nie je možné</strong> vrátiť.
settings.delete_notices_2=Táto operácia permanentne odstráni všetko v tomto repozitári, zahrnujúc dáta Git, úloh, komentárov a prístup spolupracovníkov.
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=- Po odstránení sa všetky forky stanú nezávislé.
settings.deletion_success=Repozitár bol odstránený!
settings.update_settings_success=Možnosti repozitára boli zmenené.
@@ -778,7 +778,7 @@ settings.remove_collaborator_success=Spolupracovník bol odstránený.
settings.search_user_placeholder=Hľadať užívateľa...
settings.org_not_allowed_to_be_collaborator=Nieje dovolené pridať organizáciu ako spolupracovníka.
settings.add_webhook=Pridať 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.hooks_desc=Webové háčiky sú podobné základným spúšťačom HTTP, POST udalostí. Kedykoľvek sa niečo stane v Gogs, bude postarané o oznámenie špecifickému cieľovému serveru. Viac o danom sa dozviete v <a target="_blank" href="%s"> príručke webových háčikov </a>.
settings.webhook_deletion=Odstrániť webhook
settings.webhook_deletion_desc=Odstránením tohto webového háčika sa odstránia všetky informácie o ňom a tiež história volaní. Chcete pokračovať?
settings.webhook_deletion_success=Webový háčik bol odstránený!
@@ -1100,7 +1100,7 @@ auths.domain=Doména
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_dn_helper=Môžete použiť '%s' ako miesto pre užívateľské meno, napr. DOM\%s
auths.bind_password=Heslo pripojenia
auths.bind_password_helper=Upozornenie: Toto heslo je ukladané nešifrovane. Nepoužívajte pre správcovské účty.
auths.user_base=Východzie miesto hľadania úživateľov
@@ -1141,44 +1141,45 @@ auths.still_in_used=Tento spôsob overovania je stále používaný niektorými
auths.deletion_success=Spôsob overovania bol odstránený!
auths.login_source_exist=Zdroj prihlásenia '%s' už existuje.
config.not_set=(not set)
config.not_set=(nezadané)
config.server_config=Konfigurácia servera
config.app_name=Názov aplikácie
config.app_ver=Verzia aplikácie
config.app_url=URL adresa aplikácie
config.domain=Doména
config.offline_mode=Offline režim
config.disable_router_log=Disable Router Log
config.disable_router_log=Vypnúť systémové záznamy smerovača
config.run_user=Používateľ pre spustenie aplikácie
config.run_mode=Run Mode
config.git_version=Git Version
config.static_file_root_path=Static File Root Path
config.log_file_root_path=Log File Root Path
config.reverse_auth_user=Reverse Authentication User
config.run_mode=Režim spúšťania
config.git_version=Verzia Gitu
config.static_file_root_path=Koreňový adresár statického súboru
config.log_file_root_path=Koreňový adresár súboru systémových záznamov
config.reverse_auth_user=Užívateľ obráteného overenia
config.ssh_config=SSH Configuration
config.ssh_config=Nastavenie SSH
config.ssh_enabled=Povolené
config.ssh_start_builtin_server=Start Builtin Server
config.ssh_start_builtin_server=Spustiť vstavaný server
config.ssh_domain=Doména
config.ssh_port=Port
config.ssh_listen_port=Listen Port
config.ssh_root_path=Root Path
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.ssh_listen_port=Port pre poslúchanie
config.ssh_root_path=Koreňová cesta
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Cesta testu kľúčov
config.ssh_keygen_path=Cesta ku generátoru kľúčov ('ssh-keygen')
config.ssh_minimum_key_size_check=Kontrola minimálnej veľkosti kľúčov
config.ssh_minimum_key_sizes=Minimálna veľkosť kľúčov
config.repo_config=Repository Configuration
config.repo_config=Nastavenie repozitára
config.repo_root_path=Koreňový adresár repozitára
config.script_type=Typ skriptu
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.repo_force_private=Vynútiť súkromné
config.max_creation_limit=Maximálna lehota pre vytvorenie
config.preferred_licenses=Uprednostňované licencie
config.disable_http_git=Vypnúť HTTP Git
config.enable_local_path_migration=Povoliť migráciu z miestnej cesty
config.commits_fetch_concurrency=Súbežnosť vyzdvihnutia revízii
config.http_config=HTTP Configuration
config.http_config=HTTP konfigurácia
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=Konfigurácia databázy
@@ -1192,30 +1193,30 @@ config.db_path=Cesta
config.db_path_helper=(iba pre "sqlite3" a "tidb")
config.service_config=Konfigurácia služby
config.register_email_confirm=Require Email Confirmation
config.register_email_confirm=Vyžadovať potvrdenie e-mailu
config.disable_register=Zakázať registráciu
config.show_registration_button=Show Register Button
config.require_sign_in_view=Require Sign In View
config.mail_notify=Mail Notification
config.disable_key_size_check=Disable Minimum Key Size Check
config.show_registration_button=Zobraziť tlačítko registrácie
config.require_sign_in_view=Vyžadovať zobrazenie prihlásenia
config.mail_notify=Upozornenie e-mailom
config.disable_key_size_check=Vypnúť kontrolu minimálnej veľkosti kľúčov
config.enable_captcha=Povoliť Captcha
config.active_code_lives=Active Code Lives
config.reset_password_code_lives=Reset Password Code Lives
config.active_code_lives=Doba života aktívneho kódu
config.reset_password_code_lives=Lehota kódu pre obnovu hesla
config.webhook_config=Webhook Configuration
config.webhook_config=Nastavenie webových háčikov
config.queue_length=Dĺžka fronty
config.deliver_timeout=Deliver Timeout
config.skip_tls_verify=Skip TLS Verify
config.deliver_timeout=Časový limit doručenia
config.skip_tls_verify=Preskočiť overenie TLS
config.mailer_config=Nastavenie mailera
config.mailer_enabled=Povolený
config.mailer_disable_helo=Zakázať HELO
config.mailer_name=Názov
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Host
config.mailer_user=Používateľ
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.send_test_mail=Odoslať testovací E-mail
config.test_mail_failed=Odoslanie testovacieho e-mailu na '%s' zlyhalo: %v
config.test_mail_sent=Testovací e-mail bol odoslaný na '%s'.
config.oauth_config=OAuth konfigurácia
config.oauth_enabled=Povolený
@@ -1229,77 +1230,77 @@ config.session_config=Nastavenie session
config.session_provider=Session provider
config.provider_config=Nastavenie providera
config.cookie_name=Názov cookie
config.enable_set_cookie=Enable Set Cookie
config.enable_set_cookie=Povoliť nastavenie Cookie
config.gc_interval_time=GC Časový interval
config.session_life_time=Session Life Time
config.session_life_time=Doba trvania relácie
config.https_only=Iba HTTPS
config.cookie_life_time=Cookie Life Time
config.cookie_life_time=Doba života súboru cookie
config.picture_config=Picture Configuration
config.picture_service=Picture Service
config.picture_config=Nastavenie ikony užívateľa
config.picture_service=Služba ikon užívateľov
config.disable_gravatar=Zakázať Gravatar
config.enable_federated_avatar=Enable Federated Avatars
config.enable_federated_avatar=Povoliť jednotné ikony užívateľov
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.git_config=Konfigurácia Gitu
config.git_disable_diff_highlight=Vypnúť zvýraznenie syntaxi v rozdielovom zobrazení
config.git_max_diff_lines=Maximálny počet rozdielnych riadkov jedného súboru
config.git_max_diff_line_characters=Maximálny počet zobrazených rozdielnych znakov jedného riadku
config.git_max_diff_files=Maximálny počet zobrazených rozdielnych súborov
config.git_gc_args=Parametre GC
config.git_migrate_timeout=Časová lehota prenesenia
config.git_mirror_timeout=Časový limit aktualizácie zrkadla
config.git_clone_timeout=Časový limit operácie naklonovania
config.git_pull_timeout=Časový limit operácie stiahnutia
config.git_gc_timeout=Časový limit operácie GC
config.log_config=Log Configuration
config.log_mode=Mode
config.log_options=Options
config.log_config=Nastavenie systémových záznamov
config.log_mode=Režim
config.log_options=Možnosti
monitor.cron=Cron úlohy
monitor.name=Názov
monitor.schedule=Schedule
monitor.schedule=Rozvrh
monitor.next=Nabudúce
monitor.previous=Predchádzajúci čas
monitor.execute_times=Execute Times
monitor.process=Running Processes
monitor.execute_times=Doby vykonávania
monitor.process=Spustené procesy
monitor.desc=Popis
monitor.start=Start Time
monitor.execute_time=Execution Time
monitor.start=Čas štartu
monitor.execute_time=Doba vykonávania
notices.system_notice_list=System Notices
notices.view_detail_header=View Notice Detail
notices.actions=Actions
notices.select_all=Select All
notices.deselect_all=Deselect All
notices.inverse_selection=Inverse Selection
notices.delete_selected=Delete Selected
notices.delete_all=Delete All Notices
notices.system_notice_list=Systémové oznámenia
notices.view_detail_header=Zobraziť detail oznámenia
notices.actions=Akcie
notices.select_all=Vybrať všetko
notices.deselect_all=Zrušiť výber všetkých
notices.inverse_selection=Prevrátiť výber
notices.delete_selected=Odstrániť vybrané
notices.delete_all=Odstrániť všetky oznámenia
notices.type=Typ
notices.type_1=Repozitár
notices.desc=Popis
notices.op=Op.
notices.delete_success=System notices have been deleted successfully.
notices.delete_success=Systémové upozornenia boli odstránené.
[action]
create_repo=created repository <a href="%s">%s</a>
fork_repo=forked a repository to <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>
create_repo=vytvoril repozitár <a href="%s">%s</a>
fork_repo=rozštiepil repozitár do <a href="%s">%s</a>
rename_repo=premenoval repozitár z <code>%[1]s</code> na <a href="%[2]s">%[3]s</a>
commit_repo=odoslal do vetvy <a href="%[1]s/src/%[2]s">%[3]s</a> v repositáři <a href="%[1]s">%[4]s</a>
compare_commits=Zobraziť porovnanie týchto %d commitov
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>`
merge_pull_request=`merged pull request <a href="%s/pulls/%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=pushed tag <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a>
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
transfer_repo=predal repozitár <code>%s</code> užívateľovi/organizácii <a href="%s">%s</a>
create_issue=`vytvoril úlohu <a href="%s/issues/%s">%s#%[2]s</a>`
close_issue=`uzatvoril úlohu <a href="%s/issues/%s">%s#%[2]s</a>`
reopen_issue=`znovuotvoril úlohu <a href="%s/issues/%s">%s#%[2]s</a>`
comment_issue=`okomentoval úlohu <a href="%s/issues/%s">%s#%[2]s</a>`
create_pull_request=`vytvoril požiadavku na stiahnutie <a href="%s/pulls/%s">%s#%[2]s</a>`
close_pull_request=`zatvoril požiadavku na stiahnutie <a href="%s/pulls/%s">%s#%[2]s</a>`
reopen_pull_request=`znovuotvoril požiadavku na stiahnutie <a href="%s/pulls/%s">%s#%[2]s</a>`
merge_pull_request=`zlúčil požiadavku na stiahnutie <a href="%s/pulls/%s">%s#%[2]s</a>`
create_branch=vytvoril novú vetvu <a href="%[1]s/src/%[2]s">%[3]s</a> v <a href="%[1]s">%[4]s</a>
delete_branch=odstránil vetvu <code>%[2]s</code> v <a href="%[1]s">%[3]s</a>
push_tag=odoslal značku <a href="%s/src/%s">%[2]s</a> do repozitára <a href="%[1]s">%[3]s</a>
delete_tag=odstránená značka <code>%[2]s</code> v <a href="%[1]s">%[3]s</a>
[tool]
ago=pred
@@ -1323,8 +1324,8 @@ raw_seconds=sekúnd
raw_minutes=minút
[dropzone]
default_message=Drop files here or click to upload.
invalid_input_type=You can't upload files of this type.
file_too_big=File size ({{filesize}} MB) exceeds maximum size ({{maxFilesize}} MB).
default_message=Pretiahnite súbory sem alebo stlačte Nahrať.
invalid_input_type=Nie je možné nahrať súbory tohoto typu.
file_too_big=Veľkosť súboru ({{filesize}} MB) je vyššia než maximálna veľkosť ({{maxFilesize}} MB).
remove_file=Odstrániť súbor

View File

@@ -632,8 +632,8 @@ 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.create_merge_commit=Направите спајање
pulls.rebase_before_merging=Поврат пре обједињавања
pulls.merge_pull_request=Обави спајање
pulls.open_unmerged_pull_exists=`Неможете поново отворити јер већ постоји захтев за спајање (#%d) из истог спремишта са истим информацијама о спајању и чека спајање.`
pulls.delete_branch=Избришите грану
@@ -739,8 +739,8 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.pulls.ignore_whitespace=Занемарите промене у размаку
settings.pulls.allow_rebase_merge=Дозволи употребу поврата да обједините обавезе
settings.danger_zone=Опасна зона
settings.cannot_fork_to_same_owner=Не можете поделити спремиште власнику.
settings.new_owner_has_same_repo=Нови власник већ има спремиште по истим називом. Молимо вас изаберите друго име.
@@ -761,7 +761,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=Подешавања спремишта су успешно ажурирани.
@@ -1100,7 +1100,7 @@ auths.domain=Домен
auths.host=Хост
auths.port=Порт
auths.bind_dn=Bind DN
auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_dn_helper=Можете користити „%s” као место за корисничко име, e.g. DOM\%s
auths.bind_password=Bind лозинкa
auths.bind_password_helper=Упозорење: Ова лозинка је сачувана у облику нешифрованом текцту. Не користите високо-привилеговану налог.
auths.user_base=База претраживање корисника
@@ -1141,7 +1141,7 @@ auths.still_in_used=Овај канал аутентикације још уве
auths.deletion_success=Канал аутентикације успешно избрисан!
auths.login_source_exist=Улазни извор '%s' већ постоји.
config.not_set=(not set)
config.not_set=(није подешено)
config.server_config=Конфигурација сервера
config.app_name=Име апликације
config.app_ver=Верзија апликације
@@ -1163,6 +1163,7 @@ 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=Минимална величина провера кључа
@@ -1178,8 +1179,8 @@ config.disable_http_git=Онемогући HTTP Git
config.enable_local_path_migration=Омогући миграцију локалнe путањe
config.commits_fetch_concurrency=Предузеће Fetch Concurrency
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.http_config=HTTP Конфигурација
config.http_access_control_allow_origin=Контрола приступа дозвољава порекло
config.db_config=Конфигурација базе података
config.db_type=Тип
@@ -1210,7 +1211,7 @@ 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=Пошаљи тест поруку

View File

@@ -761,7 +761,7 @@ settings.wiki_deletion_success=Förrådets wikidata har tagits bort.
settings.delete=Ta Bort Detta Repo
settings.delete_desc=När du har tagit bort ett repo så finns det ingen återvändo. Var säker på vad du gör.
settings.delete_notices_1=- Denna åtgärd kan <strong>INTE</strong> ångras.
settings.delete_notices_2=- Denna åtgärd kommer permanent ta bort hela repot, includerat git-datan, ärenden, kommentarer, och åtkomst för deltagare.
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=- Alla förgreningar kommer bli oberoende efter borttagning.
settings.deletion_success=Repot har tagits bort!
settings.update_settings_success=Repo-inställningar har uppdaterats.
@@ -1163,6 +1163,7 @@ config.ssh_domain=Domän
config.ssh_port=Port
config.ssh_listen_port=Lyssningsport
config.ssh_root_path=Rotsökväg
config.ssh_rewrite_authorized_keys_at_start=Rewrite authorized_keys At Start
config.ssh_key_test_path=Testsökväg för nyckel
config.ssh_keygen_path=Sökväg för nyckelgenerator ('ssh-keygen')
config.ssh_minimum_key_size_check=Kontroll av minsta tillåtna nyckelstorlek
@@ -1210,7 +1211,7 @@ config.skip_tls_verify=Skippa verifikation av TLS
config.mailer_config=Konfiguration för e-postutskick
config.mailer_enabled=Aktiverad
config.mailer_disable_helo=Avaktivera HELO
config.mailer_name=Namn
config.mailer_subject_prefix=Subject Prefix
config.mailer_host=Server
config.mailer_user=Användare
config.send_test_mail=Skicka testmeddelande

View File

@@ -58,7 +58,7 @@ 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=The file path of SQLite3 database. <br>Please use absolute path when you start as service.
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,7 +75,7 @@ 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=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
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ı
@@ -83,7 +83,7 @@ app_url_helper=Bu, HTTP/HTTPS klon bağlantılarını ve e-postadaki bazı kıs
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=In addition to file mode, also print logs to console.
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ı
@@ -99,8 +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=Enable Federated Avatars Lookup
federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
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
@@ -119,8 +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 Host is missing port in address.
invalid_smtp_from=SMTP From field is not valid: %v
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!
@@ -170,12 +170,12 @@ 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=Authentication Passcode
login_two_factor_enter_recovery_code=Enter a two-factor recovery code
login_two_factor_recovery=Two-factor Recovery
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=Enter a two-factor passcode
login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
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
@@ -202,7 +202,7 @@ TeamName=Takım ismi
AuthName=Yetkilendirme adı
AdminEmail=Yönetici e-postası
NewBranchName=New branch name
NewBranchName=Yeni bölüm adı
CommitSummary=İşleme özeti
CommitMessage=İşleme mesajı
CommitChoice=İşleme tercihi
@@ -212,7 +212,7 @@ 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=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
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.`
@@ -283,8 +283,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=Lookup Avatar by mail
federated_avatar_lookup=Federated Avatar Lookup
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
@@ -334,30 +334,30 @@ 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ı
two_factor=Two-factor Authentication
two_factor_status=Status:
two_factor=İki faktörlü Kimlik doğrulama
two_factor_status=Durum:
two_factor_on=ık
two_factor_off=Kapalı
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_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!
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_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
@@ -371,14 +371,14 @@ 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=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?
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=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!
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>!
@@ -400,7 +400,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_gitignore_helper=Select .gitignore templates
repo_gitignore_helper=.gitignore şablonlarını seç
license=Lisans
license_helper=Bir lisans dosyası seçin
readme=Benioku
@@ -413,7 +413,7 @@ 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=Last Synced
mirror_last_synced=Son Eşzamanlama
watchers=İzleyenler
stargazers=Yıldızlayanlar
forks=Çatallamalar
@@ -427,8 +427,8 @@ 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=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.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
@@ -450,9 +450,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
bare_message=This repository does not have any content yet.
bare_message=Bu depo henüz hiçbir içeriğe sahip değil.
files=Files
files=Dosyalar
branch=Dal
tree=Ağaç
filter_branch_and_tag=Dal veya biçim imini filtrele
@@ -463,62 +463,62 @@ pulls=Değişiklik İstekleri
labels=Etiketler
milestones=Kilometre Taşları
commits=İşlemeler
git_branches=Branches
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=Your browser doesn't support HTML5 video tag.
video_not_supported_in_browser=Tarayıcınız HTML5 video etkiketini desteklemiyor.
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
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=New file
editor.upload_file=Upload file
editor.new_file=Yeni dosya
editor.upload_file=Dosyayı yükle
editor.edit_file=Dosya düzenle
editor.preview_changes=Preview Changes
editor.preview_changes=Değişiklikleri Önizle
editor.cannot_edit_non_text_files=Metin dışı dosyalar düzenlenemez
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.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=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.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=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.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'
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.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=Commit History
commits.commit_history=Geçmişin Kaydedilmesi
commits.commits=İşlemeler
commits.search=İşleme Arama
commits.find=Bul
@@ -544,11 +544,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=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.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=Failed to load label template file '%s': %v
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
@@ -590,7 +590,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_in_require_desc=<a href="%s">Sign in</a> to join this conversation.
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
@@ -605,8 +605,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=`Click to see "%s" in a new tab`
issues.attachment.download=`Click to download "%s"`
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
@@ -616,7 +616,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=There is nothing to compare because two branches have completely different history.
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
@@ -632,12 +632,12 @@ 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=Create a merge commit
pulls.rebase_before_merging=Rebase before merging
pulls.create_merge_commit=Birleştirme işlemi oluşturma
pulls.rebase_before_merging=Birleştirmeden önce yenidenreferans al
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=Delete Branch
pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
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
@@ -688,50 +688,50 @@ settings.collaboration.admin=Yönetici
settings.collaboration.write=Yaz
settings.collaboration.read=Oku
settings.collaboration.undefined=Belirsiz
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.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=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.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=Viki sıstemini etkinleştir
settings.use_internal_wiki=Use builtin wiki
settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
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=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.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=External Issue Tracker URL
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:
@@ -761,7 +761,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.
@@ -1163,6 +1163,7 @@ 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ü
@@ -1210,7 +1211,7 @@ 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
@@ -1241,20 +1242,20 @@ config.disable_gravatar=Gravatar Hizmet Dışı
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.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=Mode
config.log_options=Options
config.log_mode=Mod
config.log_options=Seçenekler
monitor.cron=Cron Görevleri
monitor.name=İsim
@@ -1283,7 +1284,7 @@ notices.delete_success=Sistem bildirimleri başarıyla silindi.
[action]
create_repo=depo <a href="%s">%s</a> oluşturuldu
fork_repo=forked a repository to <a href="%s">%s</a>
fork_repo=<a href="%s">%s</a> için bir depo çatalladı
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
@@ -1296,10 +1297,10 @@ create_pull_request=`<a href="%s/pulls/%s">%s#%[2]s</a> değişiklik isteğini o
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ı`
merge_pull_request=`<a href="%s/pulls/%s">%s#%[2]s</a> değişim isteğini birleştirdi`
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>
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
delete_tag=deleted tag <code>%[2]s</code> at <a href="%[1]s">%[3]s</a>
delete_tag=<code>%[2]s</code> 'ın <a href="%[1]s">%[3]s</a> etiketi silindi
[tool]
ago=önce

View File

@@ -1,4 +1,4 @@
app_desc=Зручний сервіс власного Git хостінгу, написаний на Go
app_desc=Зручний сервіс власного Git хостінгу
home=Головна сторінка
dashboard=Щиток
@@ -73,7 +73,7 @@ run_user_helper=Користувач мусить мати доступ до к
domain=Домен
domain_helper=Це впливає на клонування через SSH.
ssh_port=SSH порт
ssh_port_helper=Номер порту, який використовує SSH сервер. Для заборони опції SSH залиште його пустим.
ssh_port_helper=Номер порту, який використовує SSH сервер. Для заборони опції SSH залиште його порожнім.
use_builtin_ssh_server=Користуватися вбудованим SSH сервером
use_builtin_ssh_server_popup=Запустити вбудований SSH сервер для операцій git інакший за системний SSH демон.
http_port=Порт HTTP
@@ -491,7 +491,7 @@ editor.delete_this_file=Видалити цей файл
editor.must_have_write_access=Ви повинні мати доступ на запис щоб запропонувати зміни до цього файлу
editor.file_delete_success=Файл '%s' успішно видалено!
editor.name_your_file=Дайте назву файлу...
editor.filename_help=Щоб додати каталог, просто наберіть його ім'я, та натисніть /. Щоб видалити каталог, перейдіь на початок поля й натисніть клавішу backspace.
editor.filename_help=Щоб додати каталог, просто наберіть його ім'я, та натисніть /. Щоб видалити каталог, перейдіть на початок поля й натисніть клавішу backspace.
editor.or=Або
editor.cancel_lower=Скасувати
editor.commit_changes=Зафіксувати зміни
@@ -632,8 +632,8 @@ 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.create_merge_commit=Створити коміт на злиття
pulls.rebase_before_merging=Перебазувати перед об'єднанням
pulls.merge_pull_request=Влити запрос на злиття
pulls.open_unmerged_pull_exists=`Ви не можете перевідкрити, бо вже існує запрос на злиття (#%d) з того самого репозиторію, з тією самою інформацією про злиття, та він очікує на влиття.`
pulls.delete_branch=Видалити гілку
@@ -660,7 +660,7 @@ milestones.cancel=Скасувати
milestones.modify=Змінити етап
milestones.edit_success=Зміни в етапі '%s' успішно збережені!
milestones.deletion=Видалення етапу
milestones.deletion_desc=Видалення цього єтапу призведе до видалення інформації, його та пов'язаних проблем. Ви справді хочете продовжити?
milestones.deletion_desc=Видалення цього етапу призведе до видалення інформації, його та пов'язаних проблем. Ви справді хочете продовжити?
milestones.deletion_success=Етап успішно видалено!
wiki=Wiki
@@ -739,11 +739,11 @@ 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.ignore_whitespace=Ignore changes in whitespace
settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.pulls.ignore_whitespace=Ігнорувати зміни у пробільних символах
settings.pulls.allow_rebase_merge=Дозволити перебазування для merge-комітів
settings.danger_zone=Небезпечна зона
settings.cannot_fork_to_same_owner=Ви не можете клонувати репозиторій його ж власнику.
settings.new_owner_has_same_repo=Новий власник вже має репозиторій з такою назвою.
settings.new_owner_has_same_repo=Новий власник вже має репозиторій з такою назвою. Будь ласка, виберіть іншу.
settings.convert=Перетворити на звичайний репозиторій
settings.convert_desc=Ви можете сконвертувати це дзеркало у звичайний репозиторій. Це не може бути повернуто.
settings.convert_notices_1=- Ця операція перетворить дзеркало на звичайний репозиторій та не зможе бути відмінена.
@@ -761,7 +761,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=- 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=Налаштування репозиторію було вдало оновлено.
@@ -836,13 +836,13 @@ 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=Жетон
settings.slack_token=Токен
settings.slack_domain=Домен
settings.slack_channel=Канал
settings.deploy_keys=Ключи для розгортування
settings.deploy_keys_helper=<b>Common Gotcha!</b> Якщо ви шукаєте куди додати персональний публічний ключ, додайте його до <a href="%s%s">налаштуань вашого аккаунту</a>.
settings.add_deploy_key=Додати ключ для розгортування
settings.deploy_key_desc=Ключи розгортування доступні лише для читання. Це не те саме, що персональний SSH ключ аккаунту.
settings.deploy_key_desc=Ключі розгортування доступні лише для читання. Це не те саме, що персональний SSH ключ акаунту.
settings.no_deploy_keys=Ви не додали жодного ключа для розгортування.
settings.title=Заголовок
settings.deploy_key_content=Контент
@@ -850,7 +850,7 @@ settings.key_been_used=Вміст ключа розгортування вже
settings.key_name_used=Ключ розгортування має ім'я яке вже використано.
settings.add_key_success=Новий ключ розгортування '%s' успішно додано!
settings.deploy_key_deletion=Видалити ключ для розгортування
settings.deploy_key_deletion_desc=Видалення цього ключа для розгортування призведе о видалення усіх повїязаних прав до цього репозитрію. Ви справді бажаєти продовжити?
settings.deploy_key_deletion_desc=Видалення цього ключа для розгортування призведе о видалення усіх пов'язаних прав до цього репозиторію. Ви справді бажаєте продовжити?
settings.deploy_key_deletion_success=Ключі для розгортування було успішно видалено!
diff.browse_source=Переглянути джерело
@@ -1100,7 +1100,7 @@ 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_dn_helper=Ви можете використовувати '%s' як шаблон для імені користувача, напр. DOM\%s
auths.bind_password=Прив'язати пароль
auths.bind_password_helper=Увага: Цей пароль зберігається як звичайний текст. Не використовуйте профіль з високими повноваженнями.
auths.user_base=База пошуку користувачів
@@ -1123,7 +1123,7 @@ auths.smtp_auth=Тип автентифікації SMTP
auths.smtphost=SMTP хост
auths.smtpport=SMTP порт
auths.allowed_domains=Дозволені домени
auths.allowed_domains_helper=Залиште пустим щоб дозволити будь-які домени. Якщо доменів декілька - розділить їх комами ','.
auths.allowed_domains_helper=Залиште порожнім щоб дозволити будь-які домени. Якщо доменів декілька - розділить їх комами ','.
auths.enable_tls=Увімкнути TLS-шифрування
auths.skip_tls_verify=Пропустити перевірку TLS
auths.pam_service_name=Ім'я служби PAM
@@ -1141,7 +1141,7 @@ auths.still_in_used=Цю автентифікацію ще використов
auths.deletion_success=Автентивікацію було успішно видалено!
auths.login_source_exist=Джерело входу '%s' вже існує.
config.not_set=(not set)
config.not_set=(не встановлено)
config.server_config=Конфігурація сервера
config.app_name=Назва програми
config.app_ver=Версія програми
@@ -1163,6 +1163,7 @@ 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=Мінімальний розмір ключа перевірки
@@ -1178,8 +1179,8 @@ config.disable_http_git=Вимкнути HTTP Git
config.enable_local_path_migration=Увімкнути міграцію з локального шляху
config.commits_fetch_concurrency=Запросити коміти конкурентно
config.http_config=HTTP Configuration
config.http_access_control_allow_origin=Access Control Allow Origin
config.http_config=Налаштування HTTP
config.http_access_control_allow_origin=Контроль доступу дозволяє Origin
config.db_config=Налаштування бази даних
config.db_type=Тип
@@ -1210,7 +1211,7 @@ 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=Відправити тестового листа

View File

@@ -590,7 +590,7 @@ issues.commit_ref_at=`在代码提交 <a id="%[1]s" href="#%[1]s">%[2]s</a> 中
issues.poster=发布者
issues.collaborator=协作者
issues.owner=所有者
issues.sign_in_require_desc=<a href="%s">登</a> 并参与到对话中。
issues.sign_in_require_desc=<a href="%s">登</a> 并参与到对话中。
issues.edit=编辑
issues.cancel=取消
issues.save=保存
@@ -761,7 +761,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=仓库设置更新成功!
@@ -1163,6 +1163,7 @@ 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=密钥最小长度检查
@@ -1210,7 +1211,7 @@ 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=发送测试邮件

View File

@@ -207,7 +207,7 @@ CommitSummary=Commit summary
CommitMessage=Commit message
CommitChoice=Commit choice
TreeName=File path
Content=Content
Content=內容
require_error=不能為空。
alpha_dash_error=必須為英文字母、阿拉伯數字或橫線(-_
@@ -262,10 +262,10 @@ form.name_pattern_not_allowed=用戶名不允許 '%s' 的格式。
[settings]
profile=個人信息
password=修改密碼
avatar=Avatar
avatar=頭像
ssh_keys=管理 SSH 密鑰
security=Security
repos=Repositories
security=安全
repos=倉庫
orgs=管理組織
applications=管理授權應用
delete=刪除帳戶
@@ -335,18 +335,18 @@ key_state_desc=該密鑰在 7 天內被使用過
token_state_desc=此token在過去七天內曾經被使用過
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_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=Then enter passcode:
two_factor_verify=Verify
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_enable_error=Enable Two-factor authentication failed: %v
two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
@@ -761,7 +761,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=倉庫設置更新成功!
@@ -1163,6 +1163,7 @@ 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=金鑰最小大小檢查
@@ -1210,7 +1211,7 @@ 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=發送測試郵件

View File

@@ -82,7 +82,7 @@ app_url=應用程式網址
app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
log_root_path=日誌路徑
log_root_path_helper=寫入日誌檔目錄
enable_console_mode=Enable Console Mode
enable_console_mode=開啟主控台模式
enable_console_mode_popup=In addition to file mode, also print logs to console.
optional_title=可選設置
@@ -119,7 +119,7 @@ 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.
smtp_host_missing_port=SMTP 主機缺少位址中的埠。
invalid_smtp_from=SMTP 寄件者欄位無效﹔%v
save_config_failed=設定儲存失敗:%v
invalid_admin_setting=管理員帳戶設置不正確:%v
@@ -169,13 +169,13 @@ reset_password_helper=單擊此處重置密碼
password_too_short=密碼長度不能少於 6 位!
non_local_account=非本地帳戶無法通過 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.
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=請激活您的帳戶
@@ -264,8 +264,8 @@ profile=個人信息
password=修改密碼
avatar=頭像
ssh_keys=管理 SSH 密鑰
security=Security
repos=Repositories
security=安全
repos=倉庫
orgs=管理組織
applications=管理授權應用
delete=刪除帳戶
@@ -318,7 +318,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=密鑰名稱
@@ -334,27 +334,27 @@ no_activity=沒有最近活動
key_state_desc=該密鑰在 7 天內被使用過
token_state_desc=此token在過去七天內曾經被使用過
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=兩步驗證
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=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_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_scan_qr=請使用您的身份驗證應用程式掃描圖像:
two_factor_or_enter_secret=或輸入密碼: %s
two_factor_then_enter_passcode=然後輸入驗證碼:
two_factor_verify=驗證
two_factor_invalid_passcode=您輸入的密碼無效,請再試一次。
two_factor_enable_error=啟用兩步驗證失敗: %v
two_factor_enable_success=您帳戶的兩步驗證已成功啟用!
two_factor_recovery_codes_title=兩步驗證恢復代碼
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_regenerate_recovery_codes=重新生成恢復代碼
two_factor_regenerate_recovery_codes_error=重新生成恢復代碼失敗: %v
two_factor_regenerate_recovery_codes_success=已成功生成新的恢復代碼!
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!
@@ -632,7 +632,7 @@ 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.create_merge_commit=創建一個合併提交
pulls.rebase_before_merging=Rebase before merging
pulls.merge_pull_request=合併請求
pulls.open_unmerged_pull_exists=`由於已經存在來自相同倉庫和合併信息的未合併請求(#%d您無法執行重新開啟操作。`
@@ -761,7 +761,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=- 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=倉庫設置更新成功!
@@ -1110,11 +1110,11 @@ auths.attribute_username_placeholder=留空表示使用用戶登錄時所使用
auths.attribute_name=歸納名字
auths.attribute_surname=姓氏屬性
auths.attribute_mail=電子郵箱屬性
auths.verify_group_membership=Verify group membership
auths.verify_group_membership=驗證組成員身份
auths.group_search_base_dn=Group Search Base DN
auths.group_filter=Group Filter
auths.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.user_attribute_listed_in_group=組中列出的使用者屬性
auths.attributes_in_bind=從 Bind DN 中獲取屬性信息
auths.filter=使用者篩選器
auths.admin_filter=管理者篩選器
@@ -1141,7 +1141,7 @@ auths.still_in_used=一些使用者仍然使用此驗證方式,請先刪除或
auths.deletion_success=認證源刪除成功!
auths.login_source_exist=登錄源 '%s' 已存在。
config.not_set=(not set)
config.not_set=(未設定)
config.server_config=服務器配置
config.app_name=應用名稱
config.app_ver=應用版本
@@ -1163,6 +1163,7 @@ 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=金鑰最小大小檢查
@@ -1178,7 +1179,7 @@ config.disable_http_git=停用 HTTP Git
config.enable_local_path_migration=啟用本地路徑遷移
config.commits_fetch_concurrency=同時Fetch Commit數量
config.http_config=HTTP Configuration
config.http_config=HTTP設定
config.http_access_control_allow_origin=Access Control Allow Origin
config.db_config=資料庫設定
@@ -1210,7 +1211,7 @@ 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=發送測試郵件

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)
}
}

View File

@@ -16,7 +16,7 @@ import (
"github.com/gogits/gogs/pkg/setting"
)
const APP_VER = "0.11.33.1119"
const APP_VER = "0.11.43.0330"
func init() {
setting.AppVer = APP_VER

View File

@@ -74,7 +74,7 @@ func CreateRepositoryNotice(desc string) error {
// creates a system notice when error occurs.
func RemoveAllWithNotice(title, path string) {
var err error
// LEGACY [Go 1.7]: workaround for Go not being able to remove read-only files/folders: https://github.com/golang/go/issues/9606
// LEGACY [Go 1.7, 0.12]: 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
// Note: Windows complains when delete target does not exist, therefore we can skip deletion in such cases.

View File

@@ -388,26 +388,6 @@ func (err ErrRepoFileAlreadyExist) Error() string {
return fmt.Sprintf("repository file already exists [file_name: %s]", err.FileName)
}
// __________ .__
// \______ \____________ ____ ____ | |__
// | | _/\_ __ \__ \ / \_/ ___\| | \
// | | \ | | \// __ \| | \ \___| Y \
// |______ / |__| (____ /___| /\___ >___| /
// \/ \/ \/ \/ \/
type ErrBranchNotExist struct {
Name string
}
func IsErrBranchNotExist(err error) bool {
_, ok := err.(ErrBranchNotExist)
return ok
}
func (err ErrBranchNotExist) Error() string {
return fmt.Sprintf("branch does not exist [name: %s]", err.Name)
}
// __________ .__ .__ __________ __
// \______ \__ __| | | |\______ \ ____ ________ __ ____ _______/ |_
// | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\

View File

@@ -72,3 +72,16 @@ func IsBranchAlreadyExists(err error) bool {
func (err BranchAlreadyExists) Error() string {
return fmt.Sprintf("branch already exists [name: %s]", err.Name)
}
type ErrBranchNotExist struct {
Name string
}
func IsErrBranchNotExist(err error) bool {
_, ok := err.(ErrBranchNotExist)
return ok
}
func (err ErrBranchNotExist) Error() string {
return fmt.Sprintf("branch does not exist [name: %s]", err.Name)
}

View File

@@ -133,13 +133,6 @@ In case you're stilling getting this notice, go through instructions again until
return nil
}
func sessionRelease(sess *xorm.Session) {
if !sess.IsCommitedOrRollbacked {
sess.Rollback()
}
sess.Close()
}
func generateOrgRandsAndSalt(x *xorm.Engine) (err error) {
type User struct {
ID int64 `xorm:"pk autoincr"`

View File

@@ -134,12 +134,14 @@ func getEngine() (*xorm.Engine, error) {
switch DbCfg.Type {
case "mysql":
if DbCfg.Host[0] == '/' { // looks like a unix socket
connStr = fmt.Sprintf("%s:%s@unix(%s)/%s%scharset=utf8&parseTime=true",
connStr = fmt.Sprintf("%s:%s@unix(%s)/%s%scharset=utf8mb4&parseTime=true",
DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name, Param)
} else {
connStr = fmt.Sprintf("%s:%s@tcp(%s)/%s%scharset=utf8&parseTime=true",
connStr = fmt.Sprintf("%s:%s@tcp(%s)/%s%scharset=utf8mb4&parseTime=true",
DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name, Param)
}
var engineParams = map[string]string{"rowFormat": "DYNAMIC"}
return xorm.NewEngineWithParams(DbCfg.Type, connStr, engineParams)
case "postgres":
host, port := parsePostgreSQLHostPort(DbCfg.Host)
if host[0] == '/' { // looks like a unix socket

View File

@@ -215,11 +215,13 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository, mergeStyle
return fmt.Errorf("OpenRepository: %v", err)
}
// Clone base repo.
// Create temporary directory to store temporary copy of the base repository,
// and clean it up when operation finished regardless of succeed or not.
tmpBasePath := path.Join(setting.AppDataPath, "tmp/repos", com.ToStr(time.Now().Nanosecond())+".git")
os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm)
defer os.RemoveAll(path.Dir(tmpBasePath))
// Clone the base repository to the defined temporary directory.
var stderr string
if _, stderr, err = process.ExecTimeout(5*time.Minute,
fmt.Sprintf("PullRequest.Merge (git clone): %s", tmpBasePath),
@@ -227,26 +229,22 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository, mergeStyle
return fmt.Errorf("git clone: %s", stderr)
}
// Check out base branch.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git checkout): %s", tmpBasePath),
"git", "checkout", pr.BaseBranch); err != nil {
return fmt.Errorf("git checkout: %s", stderr)
}
// Add head repo remote.
// Add remote which points to the head repository.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git remote add): %s", tmpBasePath),
"git", "remote", "add", "head_repo", headRepoPath); err != nil {
return fmt.Errorf("git remote add [%s -> %s]: %s", headRepoPath, tmpBasePath, stderr)
}
// Fetch information from head repository to the temporary copy.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git fetch): %s", tmpBasePath),
"git", "fetch", "head_repo"); err != nil {
return fmt.Errorf("git fetch [%s -> %s]: %s", headRepoPath, tmpBasePath, stderr)
}
remoteHeadBranch := "head_repo/" + pr.HeadBranch
// Check if merge style is allowed, reset to default style if not
if mergeStyle == MERGE_STYLE_REBASE && !pr.BaseRepo.PullsAllowRebase {
mergeStyle = MERGE_STYLE_REGULAR
@@ -254,12 +252,22 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository, mergeStyle
switch mergeStyle {
case MERGE_STYLE_REGULAR: // Create merge commit
// Check out the base branch to be operated on.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git checkout): %s", tmpBasePath),
"git", "checkout", pr.BaseBranch); err != nil {
return fmt.Errorf("git checkout '%s': %s", pr.BaseBranch, stderr)
}
// Merge changes from head branch.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git merge --no-ff --no-commit): %s", tmpBasePath),
"git", "merge", "--no-ff", "--no-commit", "head_repo/"+pr.HeadBranch); err != nil {
"git", "merge", "--no-ff", "--no-commit", remoteHeadBranch); err != nil {
return fmt.Errorf("git merge --no-ff --no-commit [%s]: %v - %s", tmpBasePath, err, stderr)
}
// Create a merge commit for the base branch.
sig := doer.NewGitSig()
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git merge): %s", tmpBasePath),
@@ -269,20 +277,44 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository, mergeStyle
}
case MERGE_STYLE_REBASE: // Rebase before merging
// Rebase head branch based on base branch, this creates a non-branch commit state.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git rebase): %s", tmpBasePath),
"git", "rebase", "-q", pr.BaseBranch, "head_repo/"+pr.HeadBranch); err != nil {
return fmt.Errorf("git rebase [%s -> %s]: %s", headRepoPath, tmpBasePath, stderr)
"git", "rebase", "--quiet", pr.BaseBranch, remoteHeadBranch); err != nil {
return fmt.Errorf("git rebase [%s on %s]: %s", remoteHeadBranch, pr.BaseBranch, stderr)
}
// Name non-branch commit state to a new temporary branch in order to save changes.
tmpBranch := com.ToStr(time.Now().UnixNano(), 10)
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git checkout): %s", tmpBasePath),
"git", "checkout", "-b", tmpBranch); err != nil {
return fmt.Errorf("git checkout '%s': %s", tmpBranch, stderr)
}
// Check out the base branch to be operated on.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git checkout): %s", tmpBasePath),
"git", "checkout", pr.BaseBranch); err != nil {
return fmt.Errorf("git checkout '%s': %s", pr.BaseBranch, stderr)
}
// Merge changes from temporary branch to the base branch.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git merge): %s", tmpBasePath),
"git", "merge", tmpBranch); err != nil {
return fmt.Errorf("git merge [%s]: %v - %s", tmpBasePath, err, stderr)
}
default:
return fmt.Errorf("unknown merge style: %s", mergeStyle)
}
// Push back to upstream.
// Push changes on base branch to upstream.
if _, stderr, err = process.ExecDir(-1, tmpBasePath,
fmt.Sprintf("PullRequest.Merge (git push): %s", tmpBasePath),
"git", "push", "head_repo", "HEAD:"+pr.BaseBranch); err != nil {
"git", "push", baseGitRepo.Path, pr.BaseBranch); err != nil {
return fmt.Errorf("git push: %s", stderr)
}

View File

@@ -287,7 +287,7 @@ func (repo *Repository) HTMLURL() string {
// This method assumes following fields have been assigned with valid values:
// Required - BaseRepo (if fork)
// Arguments that are allowed to be nil: permission
func (repo *Repository) APIFormat(permission *api.Permission) *api.Repository {
func (repo *Repository) APIFormat(permission *api.Permission, user ...*User) *api.Repository {
cloneLink := repo.CloneLink()
apiRepo := &api.Repository{
ID: repo.ID,
@@ -314,8 +314,12 @@ func (repo *Repository) APIFormat(permission *api.Permission) *api.Repository {
Permissions: permission,
}
if repo.IsFork {
// FIXME: check precise permission for base repository
apiRepo.Parent = repo.BaseRepo.APIFormat(nil)
p := &api.Permission{Pull: true}
if len(user) != 0 {
p.Admin = user[0].IsAdminOfRepo(repo)
p.Push = user[0].IsWriterOfRepo(repo)
}
apiRepo.Parent = repo.BaseRepo.APIFormat(p)
}
return apiRepo
}
@@ -2335,7 +2339,14 @@ func ForkRepository(doer, owner *User, baseRepo *Repository, name, desc string)
func (repo *Repository) GetForks() ([]*Repository, error) {
forks := make([]*Repository, 0, repo.NumForks)
return forks, x.Find(&forks, &Repository{ForkID: repo.ID})
if err := x.Find(&forks, &Repository{ForkID: repo.ID}); err != nil {
return nil, err
}
for _, fork := range forks {
fork.BaseRepo = repo
}
return forks, nil
}
// __________ .__

View File

@@ -11,6 +11,7 @@ import (
"github.com/Unknwon/com"
"github.com/gogits/git-module"
"github.com/gogits/gogs/models/errors"
"github.com/gogits/gogs/pkg/tool"
)
@@ -45,7 +46,7 @@ func GetBranchesByPath(path string) ([]*Branch, error) {
func (repo *Repository) GetBranch(br string) (*Branch, error) {
if !git.IsBranchExist(repo.RepoPath(), br) {
return nil, ErrBranchNotExist{br}
return nil, errors.ErrBranchNotExist{br}
}
return &Branch{
RepoPath: repo.RepoPath(),
@@ -101,7 +102,7 @@ func GetProtectBranchOfRepoByName(repoID int64, name string) (*ProtectBranch, er
if err != nil {
return nil, err
} else if !has {
return nil, ErrBranchNotExist{name}
return nil, errors.ErrBranchNotExist{name}
}
return protectBranch, nil
}
@@ -252,5 +253,5 @@ func UpdateOrgProtectBranch(repo *Repository, protectBranch *ProtectBranch, whit
// GetProtectBranchesByRepoID returns a list of *ProtectBranch in given repostiory.
func GetProtectBranchesByRepoID(repoID int64) ([]*ProtectBranch, error) {
protectBranches := make([]*ProtectBranch, 0, 2)
return protectBranches, x.Where("repo_id = ?", repoID).Asc("name").Find(&protectBranches)
return protectBranches, x.Where("repo_id = ? and protected = ?", repoID, true).Asc("name").Find(&protectBranches)
}

View File

@@ -512,16 +512,18 @@ func DeletePublicKey(doer *User, id int64) (err error) {
return err
}
return RewriteAllPublicKeys()
return RewriteAuthorizedKeys()
}
// RewriteAllPublicKeys removes any authorized key and rewrite all keys from database again.
// RewriteAuthorizedKeys removes any authorized key and rewrite all keys from database again.
// Note: x.Iterate does not get latest data after insert/delete, so we have to call this function
// outsite any session scope independently.
func RewriteAllPublicKeys() error {
func RewriteAuthorizedKeys() error {
sshOpLocker.Lock()
defer sshOpLocker.Unlock()
log.Trace("Doing: RewriteAuthorizedKeys")
os.MkdirAll(setting.SSH.RootPath, os.ModePerm)
fpath := filepath.Join(setting.SSH.RootPath, "authorized_keys")
tmpPath := fpath + ".tmp"

View File

@@ -853,7 +853,7 @@ func DeleteUser(u *User) (err error) {
return err
}
return RewriteAllPublicKeys()
return RewriteAuthorizedKeys()
}
// DeleteInactivateUsers deletes all inactivate users and email addresses.

File diff suppressed because one or more lines are too long

View File

@@ -244,7 +244,7 @@ func Contexter() macaron.Handler {
}
prefix := setting.AppURL + path.Join(ownerName, repoName, "src", branchName)
c.PlainText(http.StatusOK, []byte(com.Expand(`
c.PlainText(http.StatusOK, []byte(com.Expand(`<!doctype html>
<html>
<head>
<meta name="go-import" content="{GoGetImport} git {CloneLink}">

View File

@@ -34,7 +34,7 @@ func NewMessageFrom(to []string, from, subject, htmlBody string) *Message {
msg := gomail.NewMessage()
msg.SetHeader("From", from)
msg.SetHeader("To", to...)
msg.SetHeader("Subject", subject)
msg.SetHeader("Subject", setting.MailService.SubjectPrefix+subject)
msg.SetDateHeader("Date", time.Now())
contentType := "text/html"

View File

@@ -82,18 +82,19 @@ var (
}
SSH struct {
Disabled bool `ini:"DISABLE_SSH"`
StartBuiltinServer bool `ini:"START_SSH_SERVER"`
Domain string `ini:"SSH_DOMAIN"`
Port int `ini:"SSH_PORT"`
ListenHost string `ini:"SSH_LISTEN_HOST"`
ListenPort int `ini:"SSH_LISTEN_PORT"`
RootPath string `ini:"SSH_ROOT_PATH"`
ServerCiphers []string `ini:"SSH_SERVER_CIPHERS"`
KeyTestPath string `ini:"SSH_KEY_TEST_PATH"`
KeygenPath string `ini:"SSH_KEYGEN_PATH"`
MinimumKeySizeCheck bool `ini:"MINIMUM_KEY_SIZE_CHECK"`
MinimumKeySizes map[string]int `ini:"-"`
Disabled bool `ini:"DISABLE_SSH"`
StartBuiltinServer bool `ini:"START_SSH_SERVER"`
Domain string `ini:"SSH_DOMAIN"`
Port int `ini:"SSH_PORT"`
ListenHost string `ini:"SSH_LISTEN_HOST"`
ListenPort int `ini:"SSH_LISTEN_PORT"`
RootPath string `ini:"SSH_ROOT_PATH"`
RewriteAuthorizedKeysAtStart bool `ini:"REWRITE_AUTHORIZED_KEYS_AT_START"`
ServerCiphers []string `ini:"SSH_SERVER_CIPHERS"`
KeyTestPath string `ini:"SSH_KEY_TEST_PATH"`
KeygenPath string `ini:"SSH_KEYGEN_PATH"`
MinimumKeySizeCheck bool `ini:"MINIMUM_KEY_SIZE_CHECK"`
MinimumKeySizes map[string]int `ini:"-"`
}
// Security settings
@@ -486,6 +487,7 @@ func NewContext() {
}
SSH.RootPath = path.Join(homeDir, ".ssh")
SSH.RewriteAuthorizedKeysAtStart = sec.Key("REWRITE_AUTHORIZED_KEYS_AT_START").MustBool()
SSH.ServerCiphers = sec.Key("SSH_SERVER_CIPHERS").Strings(",")
SSH.KeyTestPath = os.TempDir()
if err = Cfg.Section("server").MapTo(&SSH); err != nil {
@@ -504,6 +506,10 @@ func NewContext() {
}
}
if SSH.StartBuiltinServer {
SSH.RewriteAuthorizedKeysAtStart = false
}
// Check if server is eligible for minimum key size check when user choose to enable.
// Windows server and OpenSSH version lower than 5.1 (https://github.com/gogits/gogs/issues/4507)
// are forced to be disabled because the "ssh-keygen" in Windows does not print key type.
@@ -815,7 +821,7 @@ func newSessionService() {
// Mailer represents mail service.
type Mailer struct {
QueueLength int
Subject string
SubjectPrefix string
Host string
From string
FromEmail string
@@ -842,7 +848,7 @@ func newMailService() {
MailService = &Mailer{
QueueLength: sec.Key("SEND_BUFFER_LEN").MustInt(100),
Subject: sec.Key("SUBJECT").MustString(AppName),
SubjectPrefix: sec.Key("SUBJECT_PREFIX").MustString("[" + AppName + "] "),
Host: sec.Key("HOST").String(),
User: sec.Key("USER").String(),
Passwd: sec.Key("PASSWD").String(),

View File

@@ -199,7 +199,7 @@ func AvatarLink(email string) (url string) {
}
}
if len(url) == 0 && !setting.DisableGravatar {
url = setting.GravatarSource + HashEmail(email)
url = setting.GravatarSource + HashEmail(email) + "?d=identicon"
}
if len(url) == 0 {
url = setting.AppSubURL + "/img/avatar_default.png"

View File

@@ -66,9 +66,9 @@
<td><a href="https://github.com/chjj/marked/archive/v0.3.6.tar.gz">marked-0.3.6.tar.gz</a></td>
</tr>
<tr>
<td><a href="/plugins/notebookjs-0.2.6/notebook.min.js">notebook.min.js</a></td>
<td><a href="/plugins/notebookjs-0.3.0/notebook.min.js">notebook.min.js</a></td>
<td><a href="https://github.com/jsvine/notebookjs/blob/master/LICENSE.txt">Expat</a></td>
<td><a href="https://github.com/jsvine/notebookjs/archive/v0.2.6.tar.gz">notebookjs-0.2.6.tar.gz</a></td>
<td><a href="https://github.com/jsvine/notebookjs/archive/v0.3.0.tar.gz">notebookjs-0.3.0.tar.gz</a></td>
</tr>
</table>
</body>

View File

@@ -108,6 +108,9 @@ code.wrap {
.following.bar .avatar > .ui.image {
margin-right: 0;
}
.following.bar .avatar .octicon-triangle-down {
margin-top: 6.5px;
}
.following.bar .searchbox {
background-color: #f4f4f4 !important;
}
@@ -439,6 +442,14 @@ footer .ui.language .menu {
background: inherit !important;
padding: 0 !important;
}
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img,
.ui.dropdown > .text > .image,
.ui.dropdown > .text > img {
vertical-align: middle;
margin-top: 0;
margin-bottom: 0;
}
.markdown:not(code) {
overflow: hidden;
font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;

View File

@@ -98,6 +98,9 @@ pre, code {
.avatar > .ui.image {
margin-right: 0;
}
.avatar .octicon-triangle-down {
margin-top: 6.5px;
}
.searchbox {
background-color: rgb(244, 244, 244) !important;
&:focus {
@@ -425,3 +428,13 @@ footer {
background: inherit !important;
padding: 0 !important;
}
// Reset CSS to prevent UI breaks
.ui.dropdown .menu>.item>.image,
.ui.dropdown .menu>.item>img,
.ui.dropdown>.text>.image,
.ui.dropdown>.text>img {
vertical-align: middle;
margin-top: 0;
margin-bottom: 0;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -151,7 +151,7 @@ func Dashboard(c *context.Context) {
err = models.GitGcRepos()
case SYNC_SSH_AUTHORIZED_KEY:
success = c.Tr("admin.dashboard.resync_all_sshkeys_success")
err = models.RewriteAllPublicKeys()
err = models.RewriteAuthorizedKeys()
case SYNC_REPOSITORY_HOOKS:
success = c.Tr("admin.dashboard.resync_all_hooks_success")
err = models.SyncRepositoryHooks()

View File

@@ -7,7 +7,7 @@ package repo
import (
api "github.com/gogits/go-gogs-client"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/models/errors"
"github.com/gogits/gogs/pkg/context"
"github.com/gogits/gogs/routes/api/v1/convert"
)
@@ -16,7 +16,7 @@ import (
func GetBranch(c *context.APIContext) {
branch, err := c.Repo.Repository.GetBranch(c.Params("*"))
if err != nil {
if models.IsErrBranchNotExist(err) {
if errors.IsErrBranchNotExist(err) {
c.Error(404, "GetBranch", err)
} else {
c.Error(500, "GetBranch", err)

View File

@@ -84,11 +84,21 @@ func GlobalInit() {
}
checkRunMode()
if setting.InstallLock && setting.SSH.StartBuiltinServer {
if !setting.InstallLock {
return
}
if setting.SSH.StartBuiltinServer {
ssh.Listen(setting.SSH.ListenHost, setting.SSH.ListenPort, setting.SSH.ServerCiphers)
log.Info("SSH server started on %s:%v", setting.SSH.ListenHost, setting.SSH.ListenPort)
log.Trace("SSH server cipher list: %v", setting.SSH.ServerCiphers)
}
if setting.SSH.RewriteAuthorizedKeysAtStart {
if err := models.RewriteAuthorizedKeys(); err != nil {
log.Warn("Failed to rewrite authorized_keys file: %v", err)
}
}
}
func InstallInit(c *context.Context) {

View File

@@ -45,6 +45,7 @@ func RenderIssueLinks(oldCommits *list.List, repoLink string) *list.List {
func renderCommits(c *context.Context, filename string) {
c.Data["Title"] = c.Tr("repo.commits.commit_history") + " · " + c.Repo.Repository.FullName()
c.Data["PageIsCommits"] = true
c.Data["FileName"] = filename
page := c.QueryInt("page")
if page < 1 {

View File

@@ -56,6 +56,18 @@ func askCredentials(c *context.Context, status int, text string) {
func HTTPContexter() macaron.Handler {
return func(c *context.Context) {
if len(setting.HTTP.AccessControlAllowOrigin) > 0 {
// Set CORS headers for browser-based git clients
c.Resp.Header().Set("Access-Control-Allow-Origin", setting.HTTP.AccessControlAllowOrigin)
c.Resp.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization")
// Handle preflight OPTIONS request
if c.Req.Method == "OPTIONS" {
c.Status(http.StatusOK)
return
}
}
ownerName := c.Params(":username")
repoName := strings.TrimSuffix(c.Params(":reponame"), ".git")
repoName = strings.TrimSuffix(repoName, ".wiki")

View File

@@ -642,8 +642,20 @@ func viewIssue(c *context.Context, isPullList bool) {
if issue.IsPull && issue.PullRequest.HasMerged {
pull := issue.PullRequest
branchProtected := false
protectBranch, err := models.GetProtectBranchOfRepoByName(pull.BaseRepoID, pull.HeadBranch)
if err != nil {
if !errors.IsErrBranchNotExist(err) {
c.ServerError("GetProtectBranchOfRepoByName", err)
return
}
} else {
branchProtected = protectBranch.Protected
}
c.Data["IsPullBranchDeletable"] = pull.BaseRepoID == pull.HeadRepoID &&
c.Repo.IsWriter() && c.Repo.GitRepo.IsBranchExist(pull.HeadBranch)
c.Repo.IsWriter() && c.Repo.GitRepo.IsBranchExist(pull.HeadBranch) &&
!branchProtected
deleteBranchUrl := c.Repo.RepoLink + "/branches/delete/" + pull.HeadBranch
c.Data["DeleteBranchLink"] = fmt.Sprintf("%s?commit=%s&redirect_to=%s", deleteBranchUrl, pull.MergedCommitID, c.Data["Link"])

View File

@@ -433,7 +433,7 @@ func SettingsProtectedBranch(c *context.Context) {
protectBranch, err := models.GetProtectBranchOfRepoByName(c.Repo.Repository.ID, branch)
if err != nil {
if !models.IsErrBranchNotExist(err) {
if !errors.IsErrBranchNotExist(err) {
c.Handle(500, "GetProtectBranchOfRepoByName", err)
return
}
@@ -475,7 +475,7 @@ func SettingsProtectedBranchPost(c *context.Context, f form.ProtectBranch) {
protectBranch, err := models.GetProtectBranchOfRepoByName(c.Repo.Repository.ID, branch)
if err != nil {
if !models.IsErrBranchNotExist(err) {
if !errors.IsErrBranchNotExist(err) {
c.Handle(500, "GetProtectBranchOfRepoByName", err)
return
}

View File

@@ -1,6 +1,6 @@
outPlattform=freebsd
outArch=amd64
outPath=./output_$outPlattform_$outArch
outPath=./output_${outPlattform}_$outArch
rm -rf $outPath
mkdir $outPath

View File

@@ -1,6 +1,6 @@
outPlattform=linux
outArch=amd64
outPath=./output_$outPlattform_$outArch
outPath=./output_${outPlattform}_$outArch
rm -rf $outPath
mkdir $outPath

View File

@@ -1,2 +1,5 @@
SET GLOBAL innodb_file_per_table = ON,
innodb_file_format = Barracuda,
innodb_large_prefix = ON;
DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

View File

@@ -1 +1 @@
0.11.33.1119
0.11.43.0330

View File

@@ -61,6 +61,8 @@
{{if not .SSH.StartBuiltinServer}}
<dt>{{.i18n.Tr "admin.config.ssh_root_path"}}</dt>
<dd>{{.SSH.RootPath}}</dd>
<dt>{{.i18n.Tr "admin.config.ssh_rewrite_authorized_keys_at_start"}}</dt>
<dd><i class="fa fa{{if .SSH.RewriteAuthorizedKeysAtStart}}-check{{end}}-square-o"></i></dd>
<dt>{{.i18n.Tr "admin.config.ssh_key_test_path"}}</dt>
<dd>{{.SSH.KeyTestPath}}</dd>
<dt>{{.i18n.Tr "admin.config.ssh_keygen_path"}}</dt>
@@ -188,8 +190,8 @@
<dt>{{.i18n.Tr "admin.config.mailer_enabled"}}</dt>
<dd><i class="fa fa{{if .MailerEnabled}}-check{{end}}-square-o"></i></dd>
{{if .MailerEnabled}}
<dt>{{.i18n.Tr "admin.config.mailer_name"}}</dt>
<dd>{{.Mailer.Subject}}</dd>
<dt>{{.i18n.Tr "admin.config.mailer_subject_prefix"}}</dt>
<dd><code>{{.Mailer.SubjectPrefix}}</code></dd>
<dt>{{.i18n.Tr "admin.config.mailer_disable_helo"}}</dt>
<dd><i class="fa fa{{if .Mailer.DisableHelo}}-check{{end}}-square-o"></i></dd>
<dt>{{.i18n.Tr "admin.config.mailer_host"}}</dt>

View File

@@ -7,7 +7,7 @@
<footer>
<div class="ui container">
<div class="ui left">
© 2017 Gogs {{if (or .ShowFooterVersion .PageIsAdmin)}}{{.i18n.Tr "version"}}: {{AppVer}}{{end}} {{if ShowFooterTemplateLoadTime}}{{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong>{{end}}
© 2018 Gogs {{if (or .ShowFooterVersion .PageIsAdmin)}}{{.i18n.Tr "version"}}: {{AppVer}}{{end}} {{if ShowFooterTemplateLoadTime}}{{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong>{{end}}
</div>
<div class="ui right links">
{{if .ShowFooterBranding}}

View File

@@ -44,7 +44,7 @@
<!-- notebook.js for rendering ipython notebooks and marked.js for rendering markdown in notebooks -->
{{if .IsIPythonNotebook}}
<script src="{{AppSubURL}}/plugins/notebookjs-0.2.6/notebook.min.js"></script>
<script src="{{AppSubURL}}/plugins/notebookjs-0.3.0/notebook.min.js"></script>
<script src="{{AppSubURL}}/plugins/marked-0.3.6/marked.min.js"></script>
{{end}}
@@ -61,6 +61,12 @@
<!-- Stylesheet -->
<link rel="stylesheet" href="{{AppSubURL}}/css/semantic-2.2.13.min.css">
<link rel="stylesheet" href="{{AppSubURL}}/css/gogs.css?v={{MD5 AppVer}}">
<noscript>
<style>
.dropdown:hover > .menu { display: block; }
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
</style>
</noscript>
<!-- JavaScript -->
<script src="{{AppSubURL}}/js/semantic-2.2.13.min.js"></script>
@@ -74,7 +80,7 @@
</head>
<body>
<div class="full height">
<noscript>Please enable JavaScript in your browser!</noscript>
<noscript>This website works better with JavaScript</noscript>
{{if not .PageIsInstall}}
<div class="following bar light">

View File

@@ -5,7 +5,7 @@
<div class="ui grid">
<div class="sixteen wide column content">
{{template "base/alert" .}}
{{if .IsRepositoryAdmin}}
{{if .IsRepositoryWriter}}
<h4 class="ui top attached header">
{{.i18n.Tr "repo.quick_guide"}}
</h4>

View File

@@ -12,7 +12,7 @@
{{range .Branches}}
<div class="item ui grid">
<div class="ui eleven wide column">
{{if .IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{.Name}}"><code>{{.Name}}</code></a>
{{if .IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{EscapePound .Name}}"><code>{{.Name}}</code></a>
{{$timeSince := TimeSince .Commit.Committer.When $.Lang}}
<span class="ui text light grey">{{$.i18n.Tr "repo.branches.updated_by" $timeSince .Commit.Committer.Name | Safe}}</span>
</div>
@@ -20,7 +20,7 @@
{{if and (and (eq $.BranchName .Name) $.IsRepositoryAdmin) (not $.Repository.IsMirror)}}
<a class="ui basic blue button" href="{{$.RepoLink}}/settings/branches">{{$.i18n.Tr "repo.branches.change_default_branch"}}</a>
{{else if and $.IsRepositoryWriter $.AllowPullRequest}}
<a class="ui basic button" href="{{$.RepoLink}}/compare/{{$.BranchName}}...{{.Name}}"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.new"}}</a>
<a class="ui basic button" href="{{$.RepoLink}}/compare/{{EscapePound $.BranchName}}...{{EscapePound .Name}}"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.new"}}</a>
{{end}}
</div>
</div>

View File

@@ -11,7 +11,7 @@
<div class="ui attached segment list">
<div class="item ui grid">
<div class="ui eleven wide column">
{{if .DefaultBranch.IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{.DefaultBranch.Name}}"><code>{{.DefaultBranch.Name}}</code></a>
{{if .DefaultBranch.IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{EscapePound .DefaultBranch.Name}}"><code>{{.DefaultBranch.Name}}</code></a>
{{$timeSince := TimeSince .DefaultBranch.Commit.Committer.When $.Lang}}
<span class="ui text light grey">{{$.i18n.Tr "repo.branches.updated_by" $timeSince .DefaultBranch.Commit.Committer.Name | Safe}}</span>
</div>
@@ -31,13 +31,13 @@
{{range .ActiveBranches}}
<div class="item ui grid">
<div class="ui eleven wide column">
{{if .IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{.Name}}"><code>{{.Name}}</code></a>
{{if .IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{EscapePound .Name}}"><code>{{.Name}}</code></a>
{{$timeSince := TimeSince .Commit.Committer.When $.Lang}}
<span class="ui text light grey">{{$.i18n.Tr "repo.branches.updated_by" $timeSince .Commit.Committer.Name | Safe}}</span>
</div>
{{if and $.IsRepositoryWriter $.AllowPullRequest}}
<div class="ui four wide column">
<a class="ui basic button" href="{{$.RepoLink}}/compare/{{$.BranchName}}...{{.Name}}"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.new"}}</a>
<a class="ui basic button" href="{{$.RepoLink}}/compare/{{EscapePound $.BranchName}}...{{EscapePound .Name}}"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.new"}}</a>
</div>
{{end}}
</div>
@@ -53,13 +53,13 @@
{{range .StaleBranches}}
<div class="item ui grid">
<div class="ui eleven wide column">
{{if .IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{.Name}}"><code>{{.Name}}</code></a>
{{if .IsProtected}}<i class="octicon octicon-shield"></i> {{end}}<a class="markdown" href="{{$.RepoLink}}/src/{{EscapePound .Name}}"><code>{{.Name}}</code></a>
{{$timeSince := TimeSince .Commit.Committer.When $.Lang}}
<span class="ui text light grey">{{$.i18n.Tr "repo.branches.updated_by" $timeSince .Commit.Committer.Name | Safe}}</span>
</div>
{{if and $.IsRepositoryWriter $.AllowPullRequest}}
<div class="ui four wide column">
<a class="ui basic button" href="{{$.RepoLink}}/compare/{{$.BranchName}}...{{.Name}}"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.new"}}</a>
<a class="ui basic button" href="{{$.RepoLink}}/compare/{{EscapePound $.BranchName}}...{{EscapePound .Name}}"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.new"}}</a>
</div>
{{end}}
</div>

View File

@@ -41,7 +41,7 @@
<i class="dropdown icon"></i>
<div class="menu">
{{range .Branches}}
<div class="item" data-url="{{$.Link}}/{{.}}">{{.}}</div>
<div class="item" data-url="{{$.Link}}/{{EscapePound .}}">{{.}}</div>
{{end}}
</div>
</div>
@@ -50,7 +50,7 @@
<div class="ui protected-branches list">
{{range .ProtectBranches}}
<div class="item">
<a href="{{$.Link}}/{{.}}"><code>{{.}}</code></a>
<a href="{{$.Link}}/{{EscapePound .}}"><code>{{.}}</code></a>
</div>
{{end}}
</div>

View File

@@ -15,7 +15,7 @@
</div>
<div class="required inline field {{if .Err_Password}}error{{end}}">
<label for="password">{{.i18n.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" required>
<input id="password" name="password" type="password" autocomplete="off" value="{{.password}}" required>
</div>
<div class="inline field">
<label></label>

View File

@@ -73,6 +73,14 @@
{{if .NumComments}}
<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>
{{end}}
<div>
<span class="ui right">
{{range .Labels}}
<a class="ui label" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{.Name | Sanitize}}</a>
{{end}}
</span>
</div>
<p class="desc">
{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.HomeLink .Poster.Name | Safe}}

View File

@@ -21,7 +21,7 @@
{{if not .IsPrimary}}
<div class="ui right">
<button class="ui red tiny basic button delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}">
{{$.i18n.Tr "settings.delete_key"}}
{{$.i18n.Tr "settings.delete_email"}}
</button>
</div>
{{if .IsActivated}}

View File

@@ -1,11 +1,12 @@
package core
import (
"errors"
"fmt"
"time"
"bytes"
"encoding/gob"
"errors"
"fmt"
"strings"
"time"
)
const (
@@ -55,11 +56,10 @@ func encodeIds(ids []PK) (string, error) {
return buf.String(), err
}
func decodeIds(s string) ([]PK, error) {
pks := make([]PK, 0)
dec := gob.NewDecoder(bytes.NewBufferString(s))
dec := gob.NewDecoder(strings.NewReader(s))
err := dec.Decode(&pks)
return pks, err

View File

@@ -11,4 +11,5 @@ database:
test:
override:
# './...' is a relative pattern which means all subdirectories
- go test -v -race
- go test -v -race
- go test -v -race --dbtype=sqlite3

View File

@@ -13,12 +13,13 @@ const (
ONLYFROMDB
)
// database column
// Column defines database column
type Column struct {
Name string
TableName string
FieldName string
SQLType SQLType
IsJSON bool
Length int
Length2 int
Nullable bool
@@ -78,6 +79,10 @@ func (col *Column) String(d Dialect) string {
}
}
if col.Default != "" {
sql += "DEFAULT " + col.Default + " "
}
if d.ShowCreateNull() {
if col.Nullable {
sql += "NULL "
@@ -86,10 +91,6 @@ func (col *Column) String(d Dialect) string {
}
}
if col.Default != "" {
sql += "DEFAULT " + col.Default + " "
}
return sql
}
@@ -98,6 +99,10 @@ func (col *Column) StringNoPk(d Dialect) string {
sql += d.SqlType(col) + " "
if col.Default != "" {
sql += "DEFAULT " + col.Default + " "
}
if d.ShowCreateNull() {
if col.Nullable {
sql += "NULL "
@@ -106,10 +111,6 @@ func (col *Column) StringNoPk(d Dialect) string {
}
}
if col.Default != "" {
sql += "DEFAULT " + col.Default + " "
}
return sql
}

View File

@@ -74,6 +74,7 @@ type Dialect interface {
GetIndexes(tableName string) (map[string]*Index, error)
Filters() []Filter
SetParams(params map[string]string)
}
func OpenDialect(dialect Dialect) (*DB, error) {
@@ -244,6 +245,9 @@ func (b *Base) CreateTableSql(table *Table, tableName, storeEngine, charset stri
sql += col.StringNoPk(b.dialect)
}
sql = strings.TrimSpace(sql)
if b.DriverName() == MYSQL && len(col.Comment) > 0 {
sql += " COMMENT '" + col.Comment + "'"
}
sql += ", "
}
@@ -286,6 +290,9 @@ func (b *Base) LogSQL(sql string, args []interface{}) {
}
}
func (b *Base) SetParams(params map[string]string) {
}
var (
dialects = map[string]func() Dialect{}
)

View File

@@ -247,6 +247,18 @@ type Row struct {
err error // deferred error for easy chaining
}
// ErrorRow return an error row
func ErrorRow(err error) *Row {
return &Row{
err: err,
}
}
// NewRow from rows
func NewRow(rows *Rows, err error) *Row {
return &Row{rows, err}
}
func (row *Row) Columns() ([]string, error) {
if row.err != nil {
return nil, row.err

View File

@@ -44,6 +44,9 @@ func convertTime(dest *NullTime, src interface{}) error {
}
*dest = NullTime(t)
return nil
case time.Time:
*dest = NullTime(s)
return nil
case nil:
default:
return fmt.Errorf("unsupported driver -> Scan pair: %T -> %T", src, dest)

View File

@@ -69,15 +69,17 @@ var (
Enum = "ENUM"
Set = "SET"
Char = "CHAR"
Varchar = "VARCHAR"
NVarchar = "NVARCHAR"
TinyText = "TINYTEXT"
Text = "TEXT"
Clob = "CLOB"
MediumText = "MEDIUMTEXT"
LongText = "LONGTEXT"
Uuid = "UUID"
Char = "CHAR"
Varchar = "VARCHAR"
NVarchar = "NVARCHAR"
TinyText = "TINYTEXT"
Text = "TEXT"
Clob = "CLOB"
MediumText = "MEDIUMTEXT"
LongText = "LONGTEXT"
Uuid = "UUID"
UniqueIdentifier = "UNIQUEIDENTIFIER"
SysName = "SYSNAME"
Date = "DATE"
DateTime = "DATETIME"
@@ -100,7 +102,8 @@ var (
LongBlob = "LONGBLOB"
Bytea = "BYTEA"
Bool = "BOOL"
Bool = "BOOL"
Boolean = "BOOLEAN"
Serial = "SERIAL"
BigSerial = "BIGSERIAL"
@@ -131,6 +134,7 @@ var (
LongText: TEXT_TYPE,
Uuid: TEXT_TYPE,
Clob: TEXT_TYPE,
SysName: TEXT_TYPE,
Date: TIME_TYPE,
DateTime: TIME_TYPE,
@@ -147,11 +151,12 @@ var (
Binary: BLOB_TYPE,
VarBinary: BLOB_TYPE,
TinyBlob: BLOB_TYPE,
Blob: BLOB_TYPE,
MediumBlob: BLOB_TYPE,
LongBlob: BLOB_TYPE,
Bytea: BLOB_TYPE,
TinyBlob: BLOB_TYPE,
Blob: BLOB_TYPE,
MediumBlob: BLOB_TYPE,
LongBlob: BLOB_TYPE,
Bytea: BLOB_TYPE,
UniqueIdentifier: BLOB_TYPE,
Bool: NUMERIC_TYPE,
@@ -163,7 +168,7 @@ var (
uintTypes = sort.StringSlice{"*uint", "*uint16", "*uint32", "*uint8"}
)
// !nashtsai! treat following var as interal const values, these are used for reflect.TypeOf comparision
// !nashtsai! treat following var as interal const values, these are used for reflect.TypeOf comparison
var (
c_EMPTY_STRING string
c_BOOL_DEFAULT bool
@@ -288,9 +293,9 @@ func SQLType2Type(st SQLType) reflect.Type {
return reflect.TypeOf(float32(1))
case Double:
return reflect.TypeOf(float64(1))
case Char, Varchar, NVarchar, TinyText, Text, MediumText, LongText, Enum, Set, Uuid, Clob:
case Char, Varchar, NVarchar, TinyText, Text, MediumText, LongText, Enum, Set, Uuid, Clob, SysName:
return reflect.TypeOf("")
case TinyBlob, Blob, LongBlob, Bytea, Binary, MediumBlob, VarBinary:
case TinyBlob, Blob, LongBlob, Bytea, Binary, MediumBlob, VarBinary, UniqueIdentifier:
return reflect.TypeOf([]byte{})
case Bool:
return reflect.TypeOf(true)

View File

@@ -32,13 +32,10 @@ proposed functionality.
We appreciate any bug reports, but especially ones with self-contained
(doesn't depend on code outside of xorm), minimal (can't be simplified
further) test cases. It's especially helpful if you can submit a pull
request with just the failing test case (you'll probably want to
pattern it after the tests in
[base.go](https://github.com/go-xorm/tests/blob/master/base.go) AND
[benchmark.go](https://github.com/go-xorm/tests/blob/master/benchmark.go).
request with just the failing test case(you can find some example test file like [session_get_test.go](https://github.com/go-xorm/xorm/blob/master/session_get_test.go)).
If you implements a new database interface, you maybe need to add a <databasename>_test.go file.
For example, [mysql_test.go](https://github.com/go-xorm/tests/blob/master/mysql/mysql_test.go)
If you implements a new database interface, you maybe need to add a test_<databasename>.sh file.
For example, [mysql_test.go](https://github.com/go-xorm/xorm/blob/master/test_mysql.sh)
### New functionality

View File

@@ -3,11 +3,8 @@
Xorm is a simple and powerful ORM for Go.
[![CircleCI](https://circleci.com/gh/go-xorm/xorm.svg?style=shield)](https://circleci.com/gh/go-xorm/xorm) [![codecov](https://codecov.io/gh/go-xorm/xorm/branch/master/graph/badge.svg)](https://codecov.io/gh/go-xorm/xorm)
[![](https://goreportcard.com/badge/github.com/go-xorm/xorm)](https://goreportcard.com/report/github.com/go-xorm/xorm) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-xorm/xorm?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
# Notice
The last master version is not backwards compatible. You should use `engine.ShowSQL()` and `engine.Logger().SetLevel()` instead of `engine.ShowSQL = `, `engine.ShowInfo = ` and so on.
[![](https://goreportcard.com/badge/github.com/go-xorm/xorm)](https://goreportcard.com/report/github.com/go-xorm/xorm)
[![Join the chat at https://img.shields.io/discord/323460943201959939.svg](https://img.shields.io/discord/323460943201959939.svg)](https://discord.gg/HuR2CF3)
# Features
@@ -31,13 +28,15 @@ The last master version is not backwards compatible. You should use `engine.Show
* SQL Builder support via [github.com/go-xorm/builder](https://github.com/go-xorm/builder)
* Automatical Read/Write seperatelly
# Drivers Support
Drivers for Go's sql package which currently support database/sql includes:
* Mysql: [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)
* MyMysql: [github.com/ziutek/mymysql/godrv](https://github.com/ziutek/mymysql/godrv)
* MyMysql: [github.com/ziutek/mymysql/godrv](https://github.com/ziutek/mymysql/tree/master/godrv)
* Postgres: [github.com/lib/pq](https://github.com/lib/pq)
@@ -51,34 +50,26 @@ Drivers for Go's sql package which currently support database/sql includes:
# Changelog
* **v0.6.4**
* Automatical Read/Write seperatelly
* Query/QueryString/QueryInterface and action with Where/And
* Get support non-struct variables
* BufferSize on Iterate
* fix some other bugs.
* **v0.6.3**
* merge tests to main project
* add `Exist` function
* add `SumInt` function
* Mysql now support read and create column comment.
* fix time related bugs.
* fix some other bugs.
* **v0.6.2**
* refactor tag parse methods
* add Scan features to Get
* add QueryString method
* **v0.6.0**
* remove support for ql
* add query condition builder support via [github.com/go-xorm/builder](https://github.com/go-xorm/builder), so `Where`, `And`, `Or`
methods can use `builder.Cond` as parameter
* add Sum, SumInt, SumInt64 and NotIn methods
* some bugs fixed
* **v0.5.0**
* logging interface changed
* some bugs fixed
* **v0.4.5**
* many bugs fixed
* extends support unlimited deepth
* Delete Limit support
* **v0.4.4**
* ql database expriment support
* tidb database expriment support
* sql.NullString and etc. field support
* select ForUpdate support
* many bugs fixed
[More changes ...](https://github.com/go-xorm/manual-en-US/tree/master/chapter-16)
# Installation
@@ -117,15 +108,36 @@ type User struct {
err := engine.Sync2(new(User))
```
* `Query` runs a SQL string, the returned results is `[]map[string][]byte`, `QueryString` returns `[]map[string]string`.
* Create Engine Group
```Go
dataSourceNameSlice := []string{masterDataSourceName, slave1DataSourceName, slave2DataSourceName}
engineGroup, err := xorm.NewEngineGroup(driverName, dataSourceNameSlice)
```
```Go
masterEngine, err := xorm.NewEngine(driverName, masterDataSourceName)
slave1Engine, err := xorm.NewEngine(driverName, slave1DataSourceName)
slave2Engine, err := xorm.NewEngine(driverName, slave2DataSourceName)
engineGroup, err := xorm.NewEngineGroup(masterEngine, []*Engine{slave1Engine, slave2Engine})
```
Then all place where `engine` you can just use `engineGroup`.
* `Query` runs a SQL string, the returned results is `[]map[string][]byte`, `QueryString` returns `[]map[string]string`, `QueryInterface` returns `[]map[string]interface{}`.
```Go
results, err := engine.Query("select * from user")
results, err := engine.Where("a = 1").Query()
results, err := engine.QueryString("select * from user")
results, err := engine.Where("a = 1").QueryString()
results, err := engine.QueryInterface("select * from user")
results, err := engine.Where("a = 1").QueryInterface()
```
* `Execute` runs a SQL string, it returns `affetcted` and `error`
* `Exec` runs a SQL string, it returns `affected` and `error`
```Go
affected, err := engine.Exec("update user set age = ? where name = ?", age, name)
@@ -136,43 +148,76 @@ affected, err := engine.Exec("update user set age = ? where name = ?", age, name
```Go
affected, err := engine.Insert(&user)
// INSERT INTO struct () values ()
affected, err := engine.Insert(&user1, &user2)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values ()
affected, err := engine.Insert(&users)
// INSERT INTO struct () values (),(),()
affected, err := engine.Insert(&user1, &users)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values (),(),()
```
* Query one record from database
* `Get` query one record from database
```Go
has, err := engine.Get(&user)
// SELECT * FROM user LIMIT 1
has, err := engine.Where("name = ?", name).Desc("id").Get(&user)
// SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1
var name string
has, err := engine.Where("id = ?", id).Cols("name").Get(&name)
// SELECT name FROM user WHERE id = ?
var id int64
has, err := engine.Where("name = ?", name).Cols("id").Get(&id)
has, err := engine.SQL("select id from user").Get(&id)
// SELECT id FROM user WHERE name = ?
var valuesMap = make(map[string]string)
has, err := engine.Where("id = ?", id).Get(&valuesMap)
// SELECT * FROM user WHERE id = ?
var valuesSlice = make([]interface{}, len(cols))
has, err := engine.Where("id = ?", id).Cols(cols...).Get(&valuesSlice)
// SELECT col1, col2, col3 FROM user WHERE id = ?
```
* Query multiple records from database, also you can use join and extends
* `Exist` check if one record exist on table
```Go
has, err := testEngine.Exist(new(RecordExist))
// SELECT * FROM record_exist LIMIT 1
has, err = testEngine.Exist(&RecordExist{
Name: "test1",
})
// SELECT * FROM record_exist WHERE name = ? LIMIT 1
has, err = testEngine.Where("name = ?", "test1").Exist(&RecordExist{})
// SELECT * FROM record_exist WHERE name = ? LIMIT 1
has, err = testEngine.SQL("select * from record_exist where name = ?", "test1").Exist()
// select * from record_exist where name = ?
has, err = testEngine.Table("record_exist").Exist()
// SELECT * FROM record_exist LIMIT 1
has, err = testEngine.Table("record_exist").Where("name = ?", "test1").Exist()
// SELECT * FROM record_exist WHERE name = ? LIMIT 1
```
* `Find` query multiple records from database, also you can use join and extends
```Go
var users []User
err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users)
// SELECT * FROM user WHERE name = ? AND age > 10 limit 0 offset 10
// SELECT * FROM user WHERE name = ? AND age > 10 limit 10 offset 0
type Detail struct {
Id int64
@@ -185,14 +230,14 @@ type UserDetail struct {
}
var users []UserDetail
err := engine.Table("user").Select("user.*, detail.*")
err := engine.Table("user").Select("user.*, detail.*").
Join("INNER", "detail", "detail.user_id = user.id").
Where("user.name = ?", name).Limit(10, 0).
Find(&users)
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 10 offset 0
```
* Query multiple records and record by record handle, there are two methods Iterate and Rows
* `Iterate` and `Rows` query multiple records and record by record handle, there are two methods Iterate and Rows
```Go
err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
@@ -201,6 +246,13 @@ err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
})
// SELECT * FROM user
err := engine.BufferSize(100).Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
user := bean.(*User)
return nil
})
// SELECT * FROM user Limit 0, 100
// SELECT * FROM user Limit 101, 100
rows, err := engine.Rows(&User{Name:name})
// SELECT * FROM user
defer rows.Close()
@@ -210,10 +262,10 @@ for rows.Next() {
}
```
* Update one or more records, default will update non-empty and non-zero fields except when you use Cols, AllCols and so on.
* `Update` update one or more records, default will update non-empty and non-zero fields except when you use Cols, AllCols and so on.
```Go
affected, err := engine.Id(1).Update(&user)
affected, err := engine.ID(1).Update(&user)
// UPDATE user SET ... Where id = ?
affected, err := engine.Update(&user, &User{Name:name})
@@ -224,32 +276,50 @@ affected, err := engine.In("id", ids).Update(&user)
// UPDATE user SET ... Where id IN (?, ?, ?)
// force update indicated columns by Cols
affected, err := engine.Id(1).Cols("age").Update(&User{Name:name, Age: 12})
affected, err := engine.ID(1).Cols("age").Update(&User{Name:name, Age: 12})
// UPDATE user SET age = ?, updated=? Where id = ?
// force NOT update indicated columns by Omit
affected, err := engine.Id(1).Omit("name").Update(&User{Name:name, Age: 12})
affected, err := engine.ID(1).Omit("name").Update(&User{Name:name, Age: 12})
// UPDATE user SET age = ?, updated=? Where id = ?
affected, err := engine.Id(1).AllCols().Update(&user)
affected, err := engine.ID(1).AllCols().Update(&user)
// UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ?
```
* Delete one or more records, Delete MUST have condition
* `Delete` delete one or more records, Delete MUST have condition
```Go
affected, err := engine.Where(...).Delete(&user)
// DELETE FROM user Where ...
affected, err := engine.Id(2).Delete(&user)
affected, err := engine.ID(2).Delete(&user)
// DELETE FROM user Where id = ?
```
* Count records
* `Count` count records
```Go
counts, err := engine.Count(&user)
// SELECT count(*) AS total FROM user
```
* `Sum` sum functions
```Go
agesFloat64, err := engine.Sum(&user, "age")
// SELECT sum(age) AS total FROM user
agesInt64, err := engine.SumInt(&user, "age")
// SELECT sum(age) AS total FROM user
sumFloat64Slice, err := engine.Sums(&user, "age", "score")
// SELECT sum(age), sum(score) FROM user
sumInt64Slice, err := engine.SumsInt(&user, "age", "score")
// SELECT sum(age), sum(score) FROM user
```
* Query conditions builder
```Go
@@ -257,15 +327,76 @@ err := engine.Where(builder.NotIn("a", 1, 2).And(builder.In("b", "c", "d", "e"))
// SELECT id, name ... FROM user WHERE a NOT IN (?, ?) AND b IN (?, ?, ?)
```
* Multiple operations in one go routine, no transation here but resue session memory
```Go
session := engine.NewSession()
defer session.Close()
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
if _, err := session.Insert(&user1); err != nil {
return err
}
user2 := Userinfo{Username: "yyy"}
if _, err := session.Where("id = ?", 2).Update(&user2); err != nil {
return err
}
if _, err := session.Exec("delete from userinfo where username = ?", user2.Username); err != nil {
return err
}
return nil
```
* Transation should on one go routine. There is transaction and resue session memory
```Go
session := engine.NewSession()
defer session.Close()
// add Begin() before any action
if err := session.Begin(); err != nil {
// if returned then will rollback automatically
return err
}
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
if _, err := session.Insert(&user1); err != nil {
return err
}
user2 := Userinfo{Username: "yyy"}
if _, err := session.Where("id = ?", 2).Update(&user2); err != nil {
return err
}
if _, err := session.Exec("delete from userinfo where username = ?", user2.Username); err != nil {
return err
}
// add Commit() after all actions
return session.Commit()
```
# Cases
* [studygolang](http://studygolang.com/) - [github.com/studygolang/studygolang](https://github.com/studygolang/studygolang)
* [Gitea](http://gitea.io) - [github.com/go-gitea/gitea](http://github.com/go-gitea/gitea)
* [Gogs](http://try.gogits.org) - [github.com/gogits/gogs](http://github.com/gogits/gogs)
* [grafana](https://grafana.com/) - [github.com/grafana/grafana](http://github.com/grafana/grafana)
* [github.com/m3ng9i/qreader](https://github.com/m3ng9i/qreader)
* [Wego](http://github.com/go-tango/wego)
* [Docker.cn](https://docker.cn/)
* [Gogs](http://try.gogits.org) - [github.com/gogits/gogs](http://github.com/gogits/gogs)
* [Xorm Adapter](https://github.com/casbin/xorm-adapter) for [Casbin](https://github.com/casbin/casbin) - [github.com/casbin/xorm-adapter](https://github.com/casbin/xorm-adapter)
* [Gorevel](http://gorevel.cn/) - [github.com/goofcc/gorevel](http://github.com/goofcc/gorevel)

View File

@@ -5,11 +5,8 @@
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。
[![CircleCI](https://circleci.com/gh/go-xorm/xorm.svg?style=shield)](https://circleci.com/gh/go-xorm/xorm) [![codecov](https://codecov.io/gh/go-xorm/xorm/branch/master/graph/badge.svg)](https://codecov.io/gh/go-xorm/xorm)
[![](https://goreportcard.com/badge/github.com/go-xorm/xorm)](https://goreportcard.com/report/github.com/go-xorm/xorm) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-xorm/xorm?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
# 注意
最新的版本有不兼容的更新,您必须使用 `engine.ShowSQL()``engine.Logger().SetLevel()` 来替代 `engine.ShowSQL = `, `engine.ShowInfo = ` 等等。
[![](https://goreportcard.com/badge/github.com/go-xorm/xorm)](https://goreportcard.com/report/github.com/go-xorm/xorm)
[![Join the chat at https://img.shields.io/discord/323460943201959939.svg](https://img.shields.io/discord/323460943201959939.svg)](https://discord.gg/HuR2CF3)
## 特性
@@ -55,9 +52,18 @@ xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作
## 更新日志
* **v0.6.3**
* 合并单元测试到主工程
* 新增`Exist`方法
* 新增`SumInt`方法
* Mysql新增读取和创建字段注释支持
* 新增`SetConnMaxLifetime`方法
* 修正了时间相关的Bug
* 修复了一些其它Bug
* **v0.6.2**
* 重构Tag解析方式
* Get方法新增类似Sacn的特性
* Get方法新增类似Scan的特性
* 新增 QueryString 方法
* **v0.6.0**
@@ -71,18 +77,6 @@ xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作
* logging接口进行不兼容改变
* Bug修正
* **v0.4.5**
* bug修正
* extends 支持无限级
* Delete Limit 支持
* **v0.4.4**
* Tidb 数据库支持
* QL 试验性支持
* sql.NullString支持
* ForUpdate 支持
* bug修正
[更多更新日志...](https://github.com/go-xorm/manual-zh-CN/tree/master/chapter-16)
## 安装
@@ -121,12 +115,33 @@ type User struct {
err := engine.Sync2(new(User))
```
* `Query` 最原始的也支持SQL语句查询返回的结果类型为 []map[string][]byte。`QueryString` 返回 []map[string]string
* 创建Engine组
```Go
dataSourceNameSlice := []string{masterDataSourceName, slave1DataSourceName, slave2DataSourceName}
engineGroup, err := xorm.NewEngineGroup(driverName, dataSourceNameSlice)
```
```Go
masterEngine, err := xorm.NewEngine(driverName, masterDataSourceName)
slave1Engine, err := xorm.NewEngine(driverName, slave1DataSourceName)
slave2Engine, err := xorm.NewEngine(driverName, slave2DataSourceName)
engineGroup, err := xorm.NewEngineGroup(masterEngine, []*Engine{slave1Engine, slave2Engine})
```
所有使用 `engine` 都可以简单的用 `engineGroup` 来替换。
* `Query` 最原始的也支持SQL语句查询返回的结果类型为 []map[string][]byte。`QueryString` 返回 []map[string]string, `QueryInterface` 返回 `[]map[string]interface{}`.
```Go
results, err := engine.Query("select * from user")
results, err := engine.Where("a = 1").Query()
results, err := engine.QueryString("select * from user")
results, err := engine.Where("a = 1").QueryString()
results, err := engine.QueryInterface("select * from user")
results, err := engine.Where("a = 1").QueryInterface()
```
* `Exec` 执行一个SQL语句
@@ -135,48 +150,81 @@ results, err := engine.QueryString("select * from user")
affected, err := engine.Exec("update user set age = ? where name = ?", age, name)
```
* 插入一条或者多条记录
* `Insert` 插入一条或者多条记录
```Go
affected, err := engine.Insert(&user)
// INSERT INTO struct () values ()
affected, err := engine.Insert(&user1, &user2)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values ()
affected, err := engine.Insert(&users)
// INSERT INTO struct () values (),(),()
affected, err := engine.Insert(&user1, &users)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values (),(),()
```
* 查询单条记录
* `Get` 查询单条记录
```Go
has, err := engine.Get(&user)
// SELECT * FROM user LIMIT 1
has, err := engine.Where("name = ?", name).Desc("id").Get(&user)
// SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1
var name string
has, err := engine.Where("id = ?", id).Cols("name").Get(&name)
// SELECT name FROM user WHERE id = ?
var id int64
has, err := engine.Where("name = ?", name).Cols("id").Get(&id)
has, err := engine.SQL("select id from user").Get(&id)
// SELECT id FROM user WHERE name = ?
var valuesMap = make(map[string]string)
has, err := engine.Where("id = ?", id).Get(&valuesMap)
// SELECT * FROM user WHERE id = ?
var valuesSlice = make([]interface{}, len(cols))
has, err := engine.Where("id = ?", id).Cols(cols...).Get(&valuesSlice)
// SELECT col1, col2, col3 FROM user WHERE id = ?
```
* 查询多条记录当然可以使用Join和extends来组合使用
* `Exist` 检测记录是否存在
```Go
has, err := testEngine.Exist(new(RecordExist))
// SELECT * FROM record_exist LIMIT 1
has, err = testEngine.Exist(&RecordExist{
Name: "test1",
})
// SELECT * FROM record_exist WHERE name = ? LIMIT 1
has, err = testEngine.Where("name = ?", "test1").Exist(&RecordExist{})
// SELECT * FROM record_exist WHERE name = ? LIMIT 1
has, err = testEngine.SQL("select * from record_exist where name = ?", "test1").Exist()
// select * from record_exist where name = ?
has, err = testEngine.Table("record_exist").Exist()
// SELECT * FROM record_exist LIMIT 1
has, err = testEngine.Table("record_exist").Where("name = ?", "test1").Exist()
// SELECT * FROM record_exist WHERE name = ? LIMIT 1
```
* `Find` 查询多条记录当然可以使用Join和extends来组合使用
```Go
var users []User
err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users)
// SELECT * FROM user WHERE name = ? AND age > 10 limit 0 offset 10
// SELECT * FROM user WHERE name = ? AND age > 10 limit 10 offset 0
type Detail struct {
Id int64
@@ -193,10 +241,10 @@ err := engine.Table("user").Select("user.*, detail.*")
Join("INNER", "detail", "detail.user_id = user.id").
Where("user.name = ?", name).Limit(10, 0).
Find(&users)
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 10 offset 0
```
* 根据条件遍历数据库,可以有两种方式: Iterate and Rows
* `Iterate``Rows` 根据条件遍历数据库,可以有两种方式: Iterate and Rows
```Go
err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
@@ -205,6 +253,13 @@ err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
})
// SELECT * FROM user
err := engine.BufferSize(100).Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
user := bean.(*User)
return nil
})
// SELECT * FROM user Limit 0, 100
// SELECT * FROM user Limit 101, 100
rows, err := engine.Rows(&User{Name:name})
// SELECT * FROM user
defer rows.Close()
@@ -214,10 +269,10 @@ for rows.Next() {
}
```
* 更新数据除非使用Cols,AllCols函数指明默认只更新非空和非0的字段
* `Update` 更新数据除非使用Cols,AllCols函数指明默认只更新非空和非0的字段
```Go
affected, err := engine.Id(1).Update(&user)
affected, err := engine.ID(1).Update(&user)
// UPDATE user SET ... Where id = ?
affected, err := engine.Update(&user, &User{Name:name})
@@ -228,31 +283,50 @@ affected, err := engine.In(ids).Update(&user)
// UPDATE user SET ... Where id IN (?, ?, ?)
// force update indicated columns by Cols
affected, err := engine.Id(1).Cols("age").Update(&User{Name:name, Age: 12})
affected, err := engine.ID(1).Cols("age").Update(&User{Name:name, Age: 12})
// UPDATE user SET age = ?, updated=? Where id = ?
// force NOT update indicated columns by Omit
affected, err := engine.Id(1).Omit("name").Update(&User{Name:name, Age: 12})
affected, err := engine.ID(1).Omit("name").Update(&User{Name:name, Age: 12})
// UPDATE user SET age = ?, updated=? Where id = ?
affected, err := engine.Id(1).AllCols().Update(&user)
affected, err := engine.ID(1).AllCols().Update(&user)
// UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ?
```
* 删除记录需要注意删除必须至少有一个条件否则会报错。要清空数据库可以用EmptyTable
* `Delete` 删除记录需要注意删除必须至少有一个条件否则会报错。要清空数据库可以用EmptyTable
```Go
affected, err := engine.Where(...).Delete(&user)
// DELETE FROM user Where ...
affected, err := engine.ID(2).Delete(&user)
// DELETE FROM user Where id = ?
```
* 获取记录条数
* `Count` 获取记录条数
```Go
counts, err := engine.Count(&user)
// SELECT count(*) AS total FROM user
```
* `Sum` 求和函数
```Go
agesFloat64, err := engine.Sum(&user, "age")
// SELECT sum(age) AS total FROM user
agesInt64, err := engine.SumInt(&user, "age")
// SELECT sum(age) AS total FROM user
sumFloat64Slice, err := engine.Sums(&user, "age", "score")
// SELECT sum(age), sum(score) FROM user
sumInt64Slice, err := engine.SumsInt(&user, "age", "score")
// SELECT sum(age), sum(score) FROM user
```
* 条件编辑器
```Go
@@ -260,15 +334,76 @@ err := engine.Where(builder.NotIn("a", 1, 2).And(builder.In("b", "c", "d", "e"))
// SELECT id, name ... FROM user WHERE a NOT IN (?, ?) AND b IN (?, ?, ?)
```
* 在一个Go程中多次操作数据库但没有事务
```Go
session := engine.NewSession()
defer session.Close()
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
if _, err := session.Insert(&user1); err != nil {
return err
}
user2 := Userinfo{Username: "yyy"}
if _, err := session.Where("id = ?", 2).Update(&user2); err != nil {
return err
}
if _, err := session.Exec("delete from userinfo where username = ?", user2.Username); err != nil {
return err
}
return nil
```
* 在一个Go程中有事务
```Go
session := engine.NewSession()
defer session.Close()
// add Begin() before any action
if err := session.Begin(); err != nil {
// if returned then will rollback automatically
return err
}
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
if _, err := session.Insert(&user1); err != nil {
return err
}
user2 := Userinfo{Username: "yyy"}
if _, err := session.Where("id = ?", 2).Update(&user2); err != nil {
return err
}
if _, err := session.Exec("delete from userinfo where username = ?", user2.Username); err != nil {
return err
}
// add Commit() after all actions
return session.Commit()
```
# 案例
* [Go语言中文网](http://studygolang.com/) - [github.com/studygolang/studygolang](https://github.com/studygolang/studygolang)
* [Gitea](http://gitea.io) - [github.com/go-gitea/gitea](http://github.com/go-gitea/gitea)
* [Gogs](http://try.gogits.org) - [github.com/gogits/gogs](http://github.com/gogits/gogs)
* [grafana](https://grafana.com/) - [github.com/grafana/grafana](http://github.com/grafana/grafana)
* [github.com/m3ng9i/qreader](https://github.com/m3ng9i/qreader)
* [Wego](http://github.com/go-tango/wego)
* [Docker.cn](https://docker.cn/)
* [Gogs](http://try.gogits.org) - [github.com/gogits/gogs](http://github.com/gogits/gogs)
* [Xorm Adapter](https://github.com/casbin/xorm-adapter) for [Casbin](https://github.com/casbin/casbin) - [github.com/casbin/xorm-adapter](https://github.com/casbin/xorm-adapter)
* [Gowalker](http://gowalker.org) - [github.com/Unknwon/gowalker](http://github.com/Unknwon/gowalker)

View File

@@ -15,13 +15,12 @@ import (
// LRUCacher implments cache object facilities
type LRUCacher struct {
idList *list.List
sqlList *list.List
idIndex map[string]map[string]*list.Element
sqlIndex map[string]map[string]*list.Element
store core.CacheStore
mutex sync.Mutex
// maxSize int
idList *list.List
sqlList *list.List
idIndex map[string]map[string]*list.Element
sqlIndex map[string]map[string]*list.Element
store core.CacheStore
mutex sync.Mutex
MaxElementSize int
Expired time.Duration
GcInterval time.Duration
@@ -54,8 +53,6 @@ func (m *LRUCacher) RunGC() {
// GC check ids lit and sql list to remove all element expired
func (m *LRUCacher) GC() {
//fmt.Println("begin gc ...")
//defer fmt.Println("end gc ...")
m.mutex.Lock()
defer m.mutex.Unlock()
var removedNum int
@@ -64,12 +61,10 @@ func (m *LRUCacher) GC() {
time.Now().Sub(e.Value.(*idNode).lastVisit) > m.Expired {
removedNum++
next := e.Next()
//fmt.Println("removing ...", e.Value)
node := e.Value.(*idNode)
m.delBean(node.tbName, node.id)
e = next
} else {
//fmt.Printf("removing %d cache nodes ..., left %d\n", removedNum, m.idList.Len())
break
}
}
@@ -80,12 +75,10 @@ func (m *LRUCacher) GC() {
time.Now().Sub(e.Value.(*sqlNode).lastVisit) > m.Expired {
removedNum++
next := e.Next()
//fmt.Println("removing ...", e.Value)
node := e.Value.(*sqlNode)
m.delIds(node.tbName, node.sql)
e = next
} else {
//fmt.Printf("removing %d cache nodes ..., left %d\n", removedNum, m.sqlList.Len())
break
}
}
@@ -116,7 +109,6 @@ func (m *LRUCacher) GetIds(tableName, sql string) interface{} {
}
m.delIds(tableName, sql)
return nil
}
@@ -134,7 +126,6 @@ func (m *LRUCacher) GetBean(tableName string, id string) interface{} {
// if expired, remove the node and return nil
if time.Now().Sub(lastTime) > m.Expired {
m.delBean(tableName, id)
//m.clearIds(tableName)
return nil
}
m.idList.MoveToBack(el)
@@ -148,7 +139,6 @@ func (m *LRUCacher) GetBean(tableName string, id string) interface{} {
// store bean is not exist, then remove memory's index
m.delBean(tableName, id)
//m.clearIds(tableName)
return nil
}
@@ -166,8 +156,8 @@ func (m *LRUCacher) clearIds(tableName string) {
// ClearIds clears all sql-ids mapping on table tableName from cache
func (m *LRUCacher) ClearIds(tableName string) {
m.mutex.Lock()
defer m.mutex.Unlock()
m.clearIds(tableName)
m.mutex.Unlock()
}
func (m *LRUCacher) clearBeans(tableName string) {
@@ -184,14 +174,13 @@ func (m *LRUCacher) clearBeans(tableName string) {
// ClearBeans clears all beans in some table
func (m *LRUCacher) ClearBeans(tableName string) {
m.mutex.Lock()
defer m.mutex.Unlock()
m.clearBeans(tableName)
m.mutex.Unlock()
}
// PutIds pus ids into table
func (m *LRUCacher) PutIds(tableName, sql string, ids interface{}) {
m.mutex.Lock()
defer m.mutex.Unlock()
if _, ok := m.sqlIndex[tableName]; !ok {
m.sqlIndex[tableName] = make(map[string]*list.Element)
}
@@ -207,12 +196,12 @@ func (m *LRUCacher) PutIds(tableName, sql string, ids interface{}) {
node := e.Value.(*sqlNode)
m.delIds(node.tbName, node.sql)
}
m.mutex.Unlock()
}
// PutBean puts beans into table
func (m *LRUCacher) PutBean(tableName string, id string, obj interface{}) {
m.mutex.Lock()
defer m.mutex.Unlock()
var el *list.Element
var ok bool
@@ -229,6 +218,7 @@ func (m *LRUCacher) PutBean(tableName string, id string, obj interface{}) {
node := e.Value.(*idNode)
m.delBean(node.tbName, node.id)
}
m.mutex.Unlock()
}
func (m *LRUCacher) delIds(tableName, sql string) {
@@ -244,8 +234,8 @@ func (m *LRUCacher) delIds(tableName, sql string) {
// DelIds deletes ids
func (m *LRUCacher) DelIds(tableName, sql string) {
m.mutex.Lock()
defer m.mutex.Unlock()
m.delIds(tableName, sql)
m.mutex.Unlock()
}
func (m *LRUCacher) delBean(tableName string, id string) {
@@ -261,8 +251,8 @@ func (m *LRUCacher) delBean(tableName string, id string) {
// DelBean deletes beans in some table
func (m *LRUCacher) DelBean(tableName string, id string) {
m.mutex.Lock()
defer m.mutex.Unlock()
m.delBean(tableName, id)
m.mutex.Unlock()
}
type idNode struct {

View File

@@ -21,7 +21,16 @@ database:
test:
override:
# './...' is a relative pattern which means all subdirectories
- go test -v -race -db="sqlite3::mysql::postgres" -conn_str="./test.db::root:@/xorm_test::dbname=xorm_test sslmode=disable" -coverprofile=coverage.txt -covermode=atomic
- go get -u github.com/wadey/gocovmerge;
- go test -v -race -db="sqlite3" -conn_str="./test.db" -coverprofile=coverage1-1.txt -covermode=atomic
- go test -v -race -db="sqlite3" -conn_str="./test.db" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic
- go test -v -race -db="mysql" -conn_str="root:@/xorm_test" -coverprofile=coverage2-1.txt -covermode=atomic
- go test -v -race -db="mysql" -conn_str="root:@/xorm_test" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic
- go test -v -race -db="mymysql" -conn_str="xorm_test/root/" -coverprofile=coverage3-1.txt -covermode=atomic
- go test -v -race -db="mymysql" -conn_str="xorm_test/root/" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic
- go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -coverprofile=coverage4-1.txt -covermode=atomic
- go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic
- gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt > coverage.txt
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./mysql.sh
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./postgres.sh

26
vendor/github.com/go-xorm/xorm/context.go generated vendored Normal file
View File

@@ -0,0 +1,26 @@
// Copyright 2017 The Xorm Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build go1.8
package xorm
import "context"
// PingContext tests if database is alive
func (engine *Engine) PingContext(ctx context.Context) error {
session := engine.NewSession()
defer session.Close()
return session.PingContext(ctx)
}
// PingContext test if database is ok
func (session *Session) PingContext(ctx context.Context) error {
if session.isAutoClose {
defer session.Close()
}
session.engine.logger.Infof("PING DATABASE %v", session.engine.DriverName())
return session.DB().PingContext(ctx)
}

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