From 632b1b694dc7eb598b552476bb5f76e90c13b25a Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 15 Sep 2014 09:56:12 -0400 Subject: [PATCH 01/14] Fix #465 --- gogs.go | 2 +- routers/user/auth.go | 2 +- templates/.VERSION | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gogs.go b/gogs.go index b94cf0e002..f492b2f7f7 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.5.0.0913 Beta" +const APP_VER = "0.5.1.0915 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/routers/user/auth.go b/routers/user/auth.go index 231ee66279..e3d132166e 100644 --- a/routers/user/auth.go +++ b/routers/user/auth.go @@ -280,7 +280,7 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe ctx.Data["IsSendRegisterMail"] = true ctx.Data["Email"] = u.Email ctx.Data["Hours"] = setting.Service.ActiveCodeLives / 60 - ctx.HTML(200, "user/activate") + ctx.HTML(200, ACTIVATE) if err := ctx.Cache.Put("MailResendLimit_"+u.LowerName, u.LowerName, 180); err != nil { log.Error(4, "Set cache(MailResendLimit) fail: %v", err) diff --git a/templates/.VERSION b/templates/.VERSION index 8d423d667c..6db2a3e6c9 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.5.0.0913 Beta \ No newline at end of file +0.5.1.0915 Beta \ No newline at end of file From 0f037b430a99a10cc9cff6f04dd1cf197ecc04ba Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 15 Sep 2014 10:09:17 -0400 Subject: [PATCH 02/14] Fix #464 --- cmd/web.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cmd/web.go b/cmd/web.go index e703807643..a9ff9dbcc2 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -124,7 +124,7 @@ func runWeb(*cli.Context) { // Routers. m.Get("/", ignSignIn, routers.Home) - m.Get("/explore", routers.Explore) + m.Get("/explore", ignSignIn, routers.Explore) m.Get("/install", bindIgnErr(auth.InstallForm{}), routers.Install) m.Post("/install", bindIgnErr(auth.InstallForm{}), routers.InstallPost) m.Group("", func(r *macaron.Router) { @@ -355,11 +355,9 @@ func runWeb(*cli.Context) { }, ignSignIn, middleware.RepoAssignment(true, true)) m.Group("/:username", func(r *macaron.Router) { - r.Get("/:reponame", middleware.RepoAssignment(true, true, true), repo.Home) - m.Group("/:reponame", func(r *macaron.Router) { - r.Any("/*", repo.Http) - }) - }, ignSignInAndCsrf) + r.Get("/:reponame", ignSignIn, middleware.RepoAssignment(true, true, true), repo.Home) + r.Any("/:reponame/*", ignSignInAndCsrf, repo.Http) + }) // Not found handler. m.NotFound(routers.NotFound) From ea309acdb23f2058478f7e7753e359a6c6256c81 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 15 Sep 2014 17:23:58 -0400 Subject: [PATCH 03/14] Fix #468 --- README.md | 6 +++--- README_ZH.md | 4 ++-- cmd/web.go | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0577114452..3c319896af 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go. ### NOTICES -- Due to testing purpose, data of [try.gogits.org](http://try.gogits.org) has been reset in **June 21, 2014** and will reset multiple times after. Please do **NOT** put your important data on the site. -- Demo site [try.gogits.org](http://try.gogits.org) is running under `dev` branch. +- Due to testing purpose, data of [try.gogs.io](https://try.gogs.io) has been reset in **June 21, 2014** and will reset multiple times after. Please do **NOT** put your important data on the site. +- Demo site [try.gogs.io](https://try.gogs.io) is running under `dev` branch. #### Other language version @@ -24,7 +24,7 @@ The goal of this project is to make the easiest, fastest and most painless way t - Please see [Documentation](http://gogs.io/docs/intro/) for project design, known issues, and change log. - See [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) to follow the develop team. -- Try it before anything? Do it [online](http://try.gogits.org/Unknown/gogs) or go down to **Installation -> Install from binary** section! +- Try it before anything? Do it [online](https://try.gogs.io/Unknown/gogs) or go down to **Installation -> Install from binary** section! - Having troubles? Get help from [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.md). ## Features diff --git a/README_ZH.md b/README_ZH.md index 2fa82e7d27..7faeee2bea 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。 ![Demo](https://gowalker.org/public/gogs_demo.gif) -##### 当前版本:0.5.0 Beta +##### 当前版本:0.5.1 Beta ## 开发目的 @@ -15,7 +15,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自 - 有关项目设计、已知问题和变更日志,请通过 [使用手册](http://gogs.io/docs/intro/) 查看。 - 您可以到 [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) 跟随开发团队的脚步。 -- 想要先睹为快?通过 [在线体验](http://try.gogits.org/Unknown/gogs) 或查看 **安装部署 -> 二进制安装** 小节。 +- 想要先睹为快?通过 [在线体验](https://try.gogs.io/Unknown/gogs) 或查看 **安装部署 -> 二进制安装** 小节。 - 使用过程中遇到问题?尝试从 [故障排查](http://gogs.io/docs/intro/troubleshooting.md) 页面获取帮助。 ## 功能特性 diff --git a/cmd/web.go b/cmd/web.go index a9ff9dbcc2..f56ae82685 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -64,7 +64,8 @@ func newMacaron() *macaron.Macaron { m := macaron.New() m.Use(macaron.Logger()) m.Use(macaron.Recovery()) - m.Use(macaron.Static("public", + m.Use(macaron.Static( + path.Join(setting.StaticRootPath, "public"), macaron.StaticOptions{ SkipLogging: !setting.DisableRouterLog, }, From 41386fa91a5a4480aea95fa9687e3ce6f4a60c2f Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 15 Sep 2014 22:35:05 -0400 Subject: [PATCH 04/14] Fix UI --- public/ng/css/gogs.css | 2 +- public/ng/less/gogs/repository.less | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/ng/css/gogs.css b/public/ng/css/gogs.css index b92786de74..8f82e0af3a 100644 --- a/public/ng/css/gogs.css +++ b/public/ng/css/gogs.css @@ -1032,7 +1032,7 @@ The register and sign-in page style } #repo-clone-url { border-right: none; - width: 200px; + width: 190px; border-left: none; } #repo-clone-help { diff --git a/public/ng/less/gogs/repository.less b/public/ng/less/gogs/repository.less index 23d156503b..c86cb7f07f 100644 --- a/public/ng/less/gogs/repository.less +++ b/public/ng/less/gogs/repository.less @@ -95,7 +95,7 @@ background-color: @repoHeaderBgColor; } #repo-clone-url { border-right: none; - width: 200px; + width: 190px; border-left: none; } #repo-clone-help { From cff3ca23a57230c21e685ab02aab85f07bd25fe2 Mon Sep 17 00:00:00 2001 From: Benjamin Peng Date: Tue, 16 Sep 2014 15:55:41 +0800 Subject: [PATCH 05/14] Fix TimeSince arguments error. --- templates/repo/release/list.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/repo/release/list.tmpl b/templates/repo/release/list.tmpl index 0f02508fb9..b9f462588d 100644 --- a/templates/repo/release/list.tmpl +++ b/templates/repo/release/list.tmpl @@ -29,7 +29,7 @@

   {{.Publisher.Name}} - {{if .Created}}{{TimeSince .Created}}{{end}} + {{if .Created}}{{TimeSince .Created $.Lang}}{{end}} {{.NumCommitsBehind}} commits to {{.Target}} since this release

From ad041167f7bcbc5a26a907b7bc43db2cb307e509 Mon Sep 17 00:00:00 2001 From: tobyzxj Date: Tue, 16 Sep 2014 16:20:32 +0800 Subject: [PATCH 06/14] fix user's actions on domain/org/name-of-organization/dashboard --- routers/user/home.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/user/home.go b/routers/user/home.go index bd33318d3c..372f111aec 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -94,7 +94,7 @@ func Dashboard(ctx *middleware.Context) { feeds := make([]*models.Action, 0, len(actions)) for _, act := range actions { if act.IsPrivate { - if has, _ := models.HasAccess(ctxUser.Name, act.RepoUserName+"/"+act.RepoName, + if has, _ := models.HasAccess(ctx.User.Name, act.RepoUserName+"/"+act.RepoName, models.READABLE); !has { continue } From c1ceec45da8c600dea2b932127519c04484258d8 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 16 Sep 2014 08:32:13 -0400 Subject: [PATCH 07/14] Fix mirror UI style and work on #475 --- gogs.go | 2 +- models/publickey.go | 13 +++++++++---- public/ng/css/gogs.css | 2 +- public/ng/less/gogs/dashboard.less | 4 +--- templates/.VERSION | 2 +- templates/user/dashboard/dashboard.tmpl | 4 ++-- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/gogs.go b/gogs.go index f492b2f7f7..f0aebf0367 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.5.1.0915 Beta" +const APP_VER = "0.5.1.0916 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/publickey.go b/models/publickey.go index 1246cffc58..dccb89362b 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -14,6 +14,7 @@ import ( "os/exec" "path" "path/filepath" + "runtime" "strings" "sync" "time" @@ -160,10 +161,14 @@ func saveAuthorizedKeyFile(key *PublicKey) error { if err != nil { return err } - if finfo.Mode().Perm() > 0600 { - log.Error(4, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) - if err = f.Chmod(0600); err != nil { - return err + + // FIXME: following command does not support in Windows. + if runtime.GOOS != "windows" { + if finfo.Mode().Perm() > 0600 { + log.Error(4, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) + if err = f.Chmod(0600); err != nil { + return err + } } } diff --git a/public/ng/css/gogs.css b/public/ng/css/gogs.css index 8f82e0af3a..db4aad2283 100644 --- a/public/ng/css/gogs.css +++ b/public/ng/css/gogs.css @@ -686,7 +686,7 @@ ol.linenums { width: auto; } /* -The dashboard page style + The dashboard page style */ #dashboard-header { border-bottom: 1px solid #d6d6d6; diff --git a/public/ng/less/gogs/dashboard.less b/public/ng/less/gogs/dashboard.less index afef60cfab..60aa807269 100644 --- a/public/ng/less/gogs/dashboard.less +++ b/public/ng/less/gogs/dashboard.less @@ -1,9 +1,7 @@ @import "../ui/var"; - /* -The dashboard page style + The dashboard page style */ - @dashboardHeaderBorderColor: #D6D6D6; @dashboardHeaderLinkColor: #444; @dashboardHeaderLinkHoverColor: #D9453D; diff --git a/templates/.VERSION b/templates/.VERSION index 6db2a3e6c9..261667dbe1 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.5.1.0915 Beta \ No newline at end of file +0.5.1.0916 Beta \ No newline at end of file diff --git a/templates/user/dashboard/dashboard.tmpl b/templates/user/dashboard/dashboard.tmpl index bf0aba097b..2f9bbc4ed4 100644 --- a/templates/user/dashboard/dashboard.tmpl +++ b/templates/user/dashboard/dashboard.tmpl @@ -9,7 +9,7 @@
-
+

{{.GetActUserName}} {{if eq .GetOpType 1}} @@ -30,7 +30,7 @@ {{ $push := ActionContent2Commits .}} {{ $repoLink := .GetRepoLink}} {{range $push.Commits}} -

  • {{ShortSha .Sha1}} {{.Message}}
  • +
  • {{ShortSha .Sha1}} {{.Message}}
  • {{end}}
    From 0d9c41be7d7d4ae1d2a28931be5565c8f6d3f792 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 16 Sep 2014 10:10:33 -0400 Subject: [PATCH 08/14] Work on #476 --- README.md | 2 +- README_ZH.md | 2 +- gogs.go | 2 +- models/repo.go | 9 +++-- modules/git/repo_commit.go | 8 +++++ modules/git/version.go | 70 ++++++++++++++++++++++++++++++++------ templates/.VERSION | 2 +- 7 files changed, 78 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 3c319896af..43d75c264b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go. ![Demo](https://gowalker.org/public/gogs_demo.gif) -##### Current version: 0.5.0 Beta +##### Current version: 0.5.2 Beta ### NOTICES diff --git a/README_ZH.md b/README_ZH.md index 7faeee2bea..bf6c1d03a1 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。 ![Demo](https://gowalker.org/public/gogs_demo.gif) -##### 当前版本:0.5.1 Beta +##### 当前版本:0.5.2 Beta ## 开发目的 diff --git a/gogs.go b/gogs.go index f0aebf0367..8ae7449e2b 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.5.1.0916 Beta" +const APP_VER = "0.5.2.0916 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/repo.go b/models/repo.go index 25876872eb..a8e53dbcd7 100644 --- a/models/repo.go +++ b/models/repo.go @@ -95,8 +95,13 @@ func NewRepoContext() { if err != nil { log.Fatal(4, "Fail to get Git version: %v", err) } - if ver.Major < 2 && ver.Minor < 8 { - log.Fatal(4, "Gogs requires Git version greater or equal to 1.8.0") + + reqVer, err := git.ParseVersion("1.7.1") + if err != nil { + log.Fatal(4, "Fail to parse required Git version: %v", err) + } + if ver.Compare(reqVer) == -1 { + log.Fatal(4, "Gogs requires Git version greater or equal to 1.7.1") } // Check if server has basic git setting and set if not. diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index eebe3dd0e0..c9258927bb 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -137,6 +137,14 @@ func (repo *Repository) GetCommit(commitId string) (*Commit, error) { } func (repo *Repository) commitsCount(id sha1) (int, error) { + if gitVer.Compare(MustParseVersion("1.8.0")) == -1 { + stdout, stderr, err := com.ExecCmdDirBytes(repo.Path, "git", "log", "--pretty=format:''", id.String()) + if err != nil { + return 0, errors.New(string(stderr)) + } + return len(bytes.Split(stdout, []byte("\n"))), nil + } + stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "rev-list", "--count", id.String()) if err != nil { return 0, errors.New(stderr) diff --git a/modules/git/version.go b/modules/git/version.go index 683e859b47..653503c03c 100644 --- a/modules/git/version.go +++ b/modules/git/version.go @@ -11,25 +11,24 @@ import ( "github.com/Unknwon/com" ) +var ( + // Cached Git version. + gitVer *Version +) + // Version represents version of Git. type Version struct { Major, Minor, Patch int } -// GetVersion returns current Git version installed. -func GetVersion() (Version, error) { - stdout, stderr, err := com.ExecCmd("git", "version") - if err != nil { - return Version{}, errors.New(stderr) - } - - infos := strings.Split(stdout, " ") +func ParseVersion(verStr string) (*Version, error) { + infos := strings.Split(verStr, ".") if len(infos) < 3 { - return Version{}, errors.New("not enough output") + return nil, errors.New("incorrect version input") } - v := Version{} - for i, s := range strings.Split(strings.TrimSpace(infos[2]), ".") { + v := &Version{} + for i, s := range infos { switch i { case 0: v.Major, _ = com.StrTo(s).Int() @@ -41,3 +40,52 @@ func GetVersion() (Version, error) { } return v, nil } + +func MustParseVersion(verStr string) *Version { + v, _ := ParseVersion(verStr) + return v +} + +// Compare compares two versions, +// it returns 1 if original is greater, 1 if original is smaller, 0 if equal. +func (v *Version) Compare(that *Version) int { + if v.Major > that.Major { + return 1 + } else if v.Major < that.Major { + return -1 + } + + if v.Minor > that.Minor { + return 1 + } else if v.Minor < that.Minor { + return -1 + } + + if v.Patch > that.Patch { + return 1 + } else if v.Patch < that.Patch { + return -1 + } + + return 0 +} + +// GetVersion returns current Git version installed. +func GetVersion() (*Version, error) { + if gitVer != nil { + return gitVer, nil + } + + stdout, stderr, err := com.ExecCmd("git", "version") + if err != nil { + return nil, errors.New(stderr) + } + + infos := strings.Split(stdout, " ") + if len(infos) < 3 { + return nil, errors.New("not enough output") + } + + gitVer, err = ParseVersion(infos[2]) + return gitVer, err +} diff --git a/templates/.VERSION b/templates/.VERSION index 261667dbe1..aada89d11a 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.5.1.0916 Beta \ No newline at end of file +0.5.2.0916 Beta \ No newline at end of file From 62f21ff3ed1b85a1d3a1eab73da354e4f6e8794a Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 16 Sep 2014 11:29:53 -0400 Subject: [PATCH 09/14] Work on #476 --- models/repo.go | 2 +- modules/git/repo_commit.go | 2 +- modules/git/version.go | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/models/repo.go b/models/repo.go index a8e53dbcd7..2e16270431 100644 --- a/models/repo.go +++ b/models/repo.go @@ -100,7 +100,7 @@ func NewRepoContext() { if err != nil { log.Fatal(4, "Fail to parse required Git version: %v", err) } - if ver.Compare(reqVer) == -1 { + if ver.LessThan(reqVer) { log.Fatal(4, "Gogs requires Git version greater or equal to 1.7.1") } diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index c9258927bb..cd0181c481 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -137,7 +137,7 @@ func (repo *Repository) GetCommit(commitId string) (*Commit, error) { } func (repo *Repository) commitsCount(id sha1) (int, error) { - if gitVer.Compare(MustParseVersion("1.8.0")) == -1 { + if gitVer.LessThan(MustParseVersion("1.8.0")) { stdout, stderr, err := com.ExecCmdDirBytes(repo.Path, "git", "log", "--pretty=format:''", id.String()) if err != nil { return 0, errors.New(string(stderr)) diff --git a/modules/git/version.go b/modules/git/version.go index 653503c03c..546397aa62 100644 --- a/modules/git/version.go +++ b/modules/git/version.go @@ -47,7 +47,7 @@ func MustParseVersion(verStr string) *Version { } // Compare compares two versions, -// it returns 1 if original is greater, 1 if original is smaller, 0 if equal. +// it returns 1 if original is greater, -1 if original is smaller, 0 if equal. func (v *Version) Compare(that *Version) int { if v.Major > that.Major { return 1 @@ -70,6 +70,10 @@ func (v *Version) Compare(that *Version) int { return 0 } +func (v *Version) LessThan(that *Version) bool { + return v.Compare(that) < 0 +} + // GetVersion returns current Git version installed. func GetVersion() (*Version, error) { if gitVer != nil { From ebb4f1b78cdf7ce877eafc346be94b8e8ac3217b Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Sep 2014 13:34:09 -0400 Subject: [PATCH 10/14] Work #475 and #458 --- models/publickey.go | 15 +++++++++++---- modules/setting/setting.go | 3 +++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/models/publickey.go b/models/publickey.go index dccb89362b..1824e88701 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -14,7 +14,6 @@ import ( "os/exec" "path" "path/filepath" - "runtime" "strings" "sync" "time" @@ -23,6 +22,7 @@ import ( "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/process" + "github.com/gogits/gogs/modules/setting" ) const ( @@ -120,23 +120,30 @@ func CheckPublicKeyString(content string) (bool, error) { tmpFile.WriteString(content) tmpFile.Close() - // … see if ssh-keygen recognizes its contents + // Check if ssh-keygen recognizes its contents. stdout, stderr, err := process.Exec("CheckPublicKeyString", "ssh-keygen", "-l", "-f", tmpPath) if err != nil { return false, errors.New("ssh-keygen -l -f: " + stderr) } else if len(stdout) < 2 { return false, errors.New("ssh-keygen returned not enough output to evaluate the key") } + + // The ssh-keygen in Windows does not print key type, so no need go further. + if setting.IsWindows { + return true, nil + } + sshKeygenOutput := strings.Split(stdout, " ") if len(sshKeygenOutput) < 4 { return false, errors.New("Not enough fields returned by ssh-keygen -l -f") } + + // Check if key type and key size match. keySize, err := com.StrTo(sshKeygenOutput[0]).Int() if err != nil { return false, errors.New("Cannot get key size of the given key") } keyType := strings.TrimSpace(sshKeygenOutput[len(sshKeygenOutput)-1]) - if minimumKeySize := MinimumKeySize[keyType]; minimumKeySize == 0 { return false, errors.New("Sorry, unrecognized public key type") } else if keySize < minimumKeySize { @@ -163,7 +170,7 @@ func saveAuthorizedKeyFile(key *PublicKey) error { } // FIXME: following command does not support in Windows. - if runtime.GOOS != "windows" { + if !setting.IsWindows { if finfo.Mode().Perm() > 0600 { log.Error(4, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) if err = f.Chmod(0600); err != nil { diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 199b4f2c27..d2c4d49cb0 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -10,6 +10,7 @@ import ( "os/exec" "path" "path/filepath" + "runtime" "strings" "time" @@ -98,12 +99,14 @@ var ( CustomPath string // Custom directory path. ProdMode bool RunUser string + IsWindows bool // I18n settings. Langs, Names []string ) func init() { + IsWindows = runtime.GOOS == "windows" log.NewLogger(0, "console", `{"level": 0}`) } From 78bd144c1c050444b959ea43c0ef5c63b75ad27e Mon Sep 17 00:00:00 2001 From: Thomas Fanninger Date: Tue, 16 Sep 2014 20:10:21 +0200 Subject: [PATCH 11/14] Intial commit for systemd support --- scripts/systemd/gogs.service | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 scripts/systemd/gogs.service diff --git a/scripts/systemd/gogs.service b/scripts/systemd/gogs.service new file mode 100644 index 0000000000..1fa0b82aea --- /dev/null +++ b/scripts/systemd/gogs.service @@ -0,0 +1,18 @@ +[Unit] +Description=Gogs (Go Git Service) server +After=syslog.target +After=network.target +#After=mysqld.service +#After=postgresql.service +#After=memcached.service +#After=redis.service + +[Service] +Type=simple +User=git +Group=git +ExecStart=/home/git/gogs/gogs/start.sh +WorkingDirectory=/home/git/gogs + +[Install] +WantedBy=multi-user.target From ae3639868ee2d720dc50fc81be712072445ab6ed Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 16 Sep 2014 20:58:06 -0400 Subject: [PATCH 12/14] Quick fix on #476 --- modules/git/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/git/version.go b/modules/git/version.go index 546397aa62..9908d11e20 100644 --- a/modules/git/version.go +++ b/modules/git/version.go @@ -35,7 +35,7 @@ func ParseVersion(verStr string) (*Version, error) { case 1: v.Minor, _ = com.StrTo(s).Int() case 2: - v.Patch, _ = com.StrTo(s).Int() + v.Patch, _ = com.StrTo(strings.TrimSpace(s)).Int() } } return v, nil From 9e10304ab21ef9a5e32a2204bee34b13c3631948 Mon Sep 17 00:00:00 2001 From: Philippe Barsalou Date: Mon, 8 Sep 2014 20:37:04 -0400 Subject: [PATCH 13/14] started french localization --- conf/app.ini | 4 +- conf/locale/locale_fr-CA.ini | 516 +++++++++++++++++++++++++++++++++++ 2 files changed, 518 insertions(+), 2 deletions(-) create mode 100644 conf/locale/locale_fr-CA.ini diff --git a/conf/app.ini b/conf/app.ini index be49e06411..c94afe0726 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -253,5 +253,5 @@ DRIVER = CONN = [i18n] -LANGS = en-US,zh-CN,de-DE -NAMES = English,简体中文,Deutsch +LANGS = en-US,zh-CN,de-DE,fr-CA +NAMES = English,简体中文,Deutsch,Français diff --git a/conf/locale/locale_fr-CA.ini b/conf/locale/locale_fr-CA.ini new file mode 100644 index 0000000000..05196be9e0 --- /dev/null +++ b/conf/locale/locale_fr-CA.ini @@ -0,0 +1,516 @@ +app_desc = Un service Git écrit en Go auto-hébergé + +home = Accueil +dashboard = Tableau de bord +explore = Explorer +help = Aide +sign_in = Connexion +social_sign_in = Social Sign In: 2nd Step associate account +sign_out = Déconnexion +sign_up = Créer un compte +register = S'inscrire +website = Site web +version = Version +page = Page +template = Gabarit +language = Langage + +username = Usager +email = Courriel +password = Mot de passe +re_type = Tapez de nouveau +captcha = Captcha + +repository = Dépôt +organization = Organisme +mirror = Mirroir +new_repo = Nouveau dépôt +new_migrate = Nouvelle migration +new_org = Nouvel organisme +manage_org = Gestion de organismes +admin_panel = Gestion +account_settings = Profil usager +settings = Configuration + +news_feed = Fil de nouvelles +pull_requests = Demandes de fusion (pull requests) +issues = Suivi de problèmes + +cancel = Annuler + +[home] +uname_holder = Nom d'usager ou courriel +password_holder = Mot de passe +switch_dashboard_context = Changer de tableau de bord +my_repos = Mes dépôts +collaborative_repos = Dépôts partagés +my_orgs = Mes organismes +my_mirrors = Mes mirroirs + +[auth] +create_new_account = Créer un nouveau compte +register_hepler_msg = Déjà inscrits? Connectez-vous maintenant! +social_register_hepler_msg = Déjà inscrits? Branchez-vous! +disable_register_prompt = Désolé, l'auto-inscription n'est pas activée. Contactez l'admnistrateur du site. +disable_register_mail = Désolé, la confirmation d'inscription par courriel est désactivée. Contactez l'administrateur du site. +remember_me = Se souvenir de moi +forgot_password= Mot de passe oublié +forget_password = Mot de passe oublié? +sign_up_now = Besoin d'un compte? Inscrivez-vous maintenant. +confirmation_mail_sent_prompt = Un courriel de confirmation à été envoyé à %s, consultez vos courriels d'ici %d heures pour terminer l'inscription. +sign_in_email = Connexion avec votre courriel +active_your_account = Activez votre compte +resent_limit_prompt = Désolé vous demandez trop souvent un courriel de confirmation. S.v.p. patientez 3 minutes. +has_unconfirmed_mail = Bonjour %s, votre adresse courriel n'est pas vérifiée(%s). Si vous n'avez pas reçu de courriel de confirmation ou si vous avez besoin d'en envoyer un maintenant, appuyez sur le bouton ci-dessous. +resend_mail = Appuyez ici pour envoyer de nouveau un courriel de confirmation. +email_not_associate = Ce courriel ne correspond à aucun compte. +send_reset_mail = Appuyez ici pour (ré)envoyer un courriel pour réinitialiser de mot de passe. +reset_password = Réinitialiser votre mot de passe +invalid_code = Désolé, ce code de confirmation est périmé ou non-valide. +reset_password_helper = Appuyez ici pour réinitialiser votre mot de passe +password_too_short = La longueur du mot de passe doit être d'au moins 6 caractères. + +[form] +UserName = Nom d'usager +RepoName = Nom du dépôt +Email = Adresse de courriel +Password = Mot de passe +Retype = Mot de passe (confirmation) +SSHTitle = Nom de la clef SSH +HttpsUrl = URL HTTPS +PayloadUrl = URL cible +TeamName = Nom de l'équipe +AuthName = Nom d'usager + +require_error = ` ne peut être vide.` +alpha_dash_error = ` doit être composé de caractères alpha-numériques et/ou d'un tiret(-_).` +alpha_dash_dot_error = ` doit être composé de caractères alpha-numérique, un point(.) et/ou tiret(-_).` +min_size_error = ` doit être composé d'au moins %s caractères.` +max_size_error = ` doit être conposé d'au plus %s caractères.` +email_error = ` n'est pas une adresse de courriel bien formée.` +url_error = ` n'est pas un URL valide.` +unknown_error = Erreur inconnue: +captcha_incorrect = Le captcha ne concorde pas. +password_not_match = Les deux mots de passe diffèrent. + +username_been_taken = `Nom d'usager dèjà utilisé.` +repo_name_been_taken = Nom de dépôt déjà utilisé. +org_name_been_taken = Nom d'organisme déjà utilisé. +team_name_been_taken = Nom d'équipe déjà utilisé. +email_been_used = Adresse de courriel déjà utilisée. +ssh_key_been_used = Nom de clef public déjà utilisé. +illegal_username = Votre nom d'usager contient des caractères interdits. +illegal_repo_name = Le nom du dépôt contient des caractères interdits. +illegal_org_name = Le nom de l'organisation contient des caractères interdits. +illegal_team_name = Le nom de l'équipe contient des caractères interdits. +username_password_incorrect = Nom d'usager ou mot de passe erroné. +enterred_invalid_repo_name = Nom de dépôt inexistant. +enterred_invalid_owner_name = Responsable de dépôt inexistant. +enterred_invalid_password = Mot de passe erroné. +user_not_exist = Nom d'usager inexistant. +last_org_owner = Ceci est le dernier responsable du dépôt. Il doit y avoir obligatoirement au moins un usager responsable. + +invalid_ssh_key = Désolé, impossible de vérifier votre clef SSH: % +auth_failed = Erreur d'authentification : %v + +still_own_repo = Votre compte est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager. +org_still_own_repo = Cet organisme est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager ou organisme. + +still_own_user = Cet authentification est utilisé par un usager. + +[settings] +profile = Profile +password = Mot de passe +ssh_keys = Clefs SSH +social = Comptes médias sociaux +orgs = Organismes +delete = Supprimer votre compte + +public_profile = Profil public +profile_desc = Votre adresse de couriel est publique et sera utilisée pour les avis produits par le site. +full_name = Nom complêt +website = Site web +location = Endroit +update_profile = Mettre à jour le profil +update_profile_success = Mise à jour du profil réussie. + +change_password = Changer le mot de passe +old_password = Mot de passe actuel +new_password = Nouveau mot de passe +password_incorrect = Mot de passe actuel erroné. +change_password_success = Modification du mot de passe effectuée. Vous pouvez dorénavant vous connecter avec le nouveau mot de passe. + +manage_ssh_keys = Gestion des clefs SSH +add_key = Ajouter une clef +ssh_desc = Voici la liste de clefs SSH associées à votre profil. Détruire les clefs que vous ne reconnaissez pas. +ssh_helper = Beson d'aide? Consultez le guide au generating SSH keys ou vérifiez les problèmes SSH fréquents. +add_new_key = Ajouter une clef SSH +key_name = Nom de la clef +key_content = Contenu +add_key_success = Clef SSH ajoutée! +delete_key = Détruire +add_on = Ajoutée le +last_used = Dernière utilisation le +no_activity = Pas d'activité récente + +manage_social = Gestion des profils de Internets associés +social_desc = Ceci est une list de profils Internet associés. Déassociez les profils que vous ne reconnaissez pas. +unbind = Déaccocier +unbind_success = Profil Internet déassocié. + +delete_account = Detruire votre compte +delete_prompt = Cette opération détruira votre compte et ne pourra être annulée! +confirm_delete_account = Confirmez la suppression + +[repo] +owner = Responsable +repo_name = Nom du dépôt +repo_name_helper = Les bons noms de dépôts sont courts, mémorables et uniques +visibility = Visibilité +visiblity_helper = Ce dépôt est privé +repo_desc = Description +repo_lang = Langue +repo_lang_helper = Choisir un fichier .gitignore +license = License +license_helper = Choisir un fichier de licence +init_readme = Initialiser le dépôt avec un fichier README.md +create_repo = Créer le dépôt +default_branch = Branche par défaut +mirror_interval = Intervale de synchronisation (heures) +goget_meta = Métadonnées Go-Get +goget_meta_helper = Ce dépôt sera Go-Getable + +need_auth = Authorisation requise +migrate_type = Type de migration +migrate_type_helper = Ce dépôt sera un mirroir +migrate_repo = Migrer le dépôt + +copy_link = Copier +clone_helper = Besoin d'aide pour cloner? Obtenez de l' aide! +unwatch = Ne plus suivre +watch = Suivre +unstar = Retirer étoile +star = Étoile +fork = Fork + +quick_guide = Guide rapide +clone_this_repo = Cloner ce dépôt +create_new_repo_command = Créer un nouveau dépôt à la ligne de commande +push_exist_repo = Pousser un dépôt existant depuis la ligne de commande + +settings = Réglages +settings.options = Réglages de base +settings.collaboration = Collaboration +settings.hooks = Webhooks +settings.deploy_keys = Clef de déploiement +settings.basic_settings = réglages de base +settings.danger_zone = Danger! +settings.site = Site officiel +settings.update_settings = Réglage des mises à jour +settings.transfer = Transférer la responsabilité +settings.transfer_desc = Transférer ce dépôt à un autre usager ou organisation si vous en avez la responsabilité. +settings.delete = Détruire ce dépôt +settings.delete_desc = La destruction est irrémédiable, impossible d'annuler. Soyez sûr de votre décision. +settings.update_settings_success = Réglages modifiés +settings.transfer_owner = Nouveau responsable +settings.make_transfer = Faire le transfert +settings.confirm_delete = Confirm Deletion +settings.add_collaborator = Add New Collaborator +settings.add_collaborator_success = New collaborator has been added. +settings.remove_collaborator_success = Collaborator has been removed. +settings.add_webhook = Add Webhook +settings.hooks_desc = Webhooks allow external services to be notified when certain events happen on Gogs. When the specified events happen, we'll send a POST request to each of the URLs you provide. Learn more in our Webhooks Guide. +settings.remove_hook_success = Webhook has been removed. +settings.add_webhook_desc = We’ll send a POST request to the URL below with details of any subscribed events. You can also specify which data format you'd like to receive (JSON, x-www-form-urlencoded, etc). More information can be found in Webhooks Guide. +settings.payload_url = Payload URL +settings.content_type = Content Type +settings.secret = Secret +settings.event_desc = Which events would you like to trigger this webhook? +settings.event_push_only = Just the push event. +settings.active = Active +settings.active_helper = We will deliver event details when this hook is triggered. +settings.add_hook_success = New webhook has been added. +settings.update_webhook = Update Webhook +settings.update_hook_success = Webhook has been updated. +settings.delete_webhook = Delete Webhook +settings.recent_deliveries = Recent Deliveries +settings.hook_type = Hook Type +settings.add_slack_hook_desc = Add Slack integration to your repository. +settings.slack_token = Token +settings.slack_domain = Domain +settings.slack_channel = Channel + +[org] +org_name_holder = Organization Name +org_name_helper = Great organization names are short and memorable. +org_email_helper = Organization's Email receives all notifications and confirmations. +create_org = Create Organization +repo_updated = Updated +people = People +invite_someone = Invite Someone +teams = Teams +lower_members = members +lower_repositories = repositories +create_new_team = Create New Team +org_desc = Description +team_name = Team Name +team_desc = Description +team_name_helper = You'll use this name to mention this team in conversations. +team_desc_helper = What is this team all about? +team_permission_desc = What permission level should this team have? + +settings = Settings +settings.options = Options +settings.full_name = Full Name +settings.website = Website +settings.location = Location +settings.update_settings = Update Settings +settings.update_setting_success = Organization setting has been successfully updated. +settings.delete = Delete Organization +settings.delete_account = Delete This Organization +settings.delete_prompt = The operation will delete this organization permanently, and CANNOT be undo! +settings.confirm_delete_account = Confirm Deletion + +members.public = Public +members.public_helper = make private +members.private = Private +members.private_helper = make public +members.owner = Owner +members.member = Member +members.conceal = Conceal +members.remove = Remove +members.leave = Leave +members.invite_desc = Start typing a username to invite a new member to %s: +members.invite_now = Invite Now + +teams.join = Join +teams.leave = Leave +teams.read_access = Read Access +teams.read_access_helper = This team will be able to view and clone its repositories. +teams.write_access = Write Access +teams.write_access_helper = This team will be able to read its repositories, as well as push to them. +teams.admin_access = Admin Access +teams.admin_access_helper = This team will be able to push/pull to its repositories, as well as add other collaborators to them. +teams.no_desc = This team has no description +teams.settings = Settings +teams.owners_permission_desc = Owners have full access to all repositories and have admin rights to the organization. +teams.members = Team Members +teams.update_settings = Update Settings +teams.delete_team = Delete This Team +teams.add_team_member = Add Team Member +teams.delete_team_success = Given team has been successfully deleted. +teams.read_permission_desc = This team grants Read access: members can view and clone the team's repositories. +teams.write_permission_desc = This team grants Write access: members can read from and push to the team's repositories. +teams.admin_permission_desc = This team grants Admin access: members can read from, push to, and add collaborators to the team's repositories. +teams.repositories = Team Repositories +teams.add_team_repository = Add Team Repository +teams.remove_repo = Remove + +[admin] +dashboard = Dashboard +users = Users +organizations = Organizations +repositories = Repositories +authentication = Authentications +config = Configuration +monitor = Monitoring +prev = Prev. +next = Next + +dashboard.statistic = Statistic +dashboard.operations = Operations +dashboard.system_status = System Monitor Status +dashboard.statistic_info = Gogs database has %d users, %d organizations, %d public keys, %d repositories, %d watches, %d stars, %d actions, %d accesses, %d issues, %d comments, %d social accounts, %d follows, %d mirrors, %d releases, %d login sources, %d webhooks, %d milestones, %d labels, %d hook tasks, %d teams, %d update tasks, %d attachments. +dashboard.operation_name = Operation Name +dashboard.operation_switch = Switch +dashboard.operation_run = Run +dashboard.clean_unbind_oauth = Clean unbound OAuthes +dashboard.delete_inactivate_accounts = Delete all inactive accounts +dashboard.server_uptime = Server Uptime +dashboard.current_goroutine = Current Goroutines +dashboard.current_memory_usage = Current Memory Usage +dashboard.total_memory_allocated = Total Memory Allocated +dashboard.memory_obtained = Memory Obtained +dashboard.pointer_lookup_times = Pointer Lookup Times +dashboard.memory_allocate_times = Memory Allocate Times +dashboard.memory_free_times = Memory Free Times +dashboard.current_heap_usage = Current Heap Usage +dashboard.heap_memory_obtained = Heap Memory Obtained +dashboard.heap_memory_idle = Heap Memory Idle +dashboard.heap_memory_in_use = Heap Memory In Use +dashboard.heap_memory_released = Heap Memory Released +dashboard.heap_objects = Heap Objects +dashboard.bootstrap_stack_usage = Bootstrap Stack Usage +dashboard.stack_memory_obtained = Stack Memory Obtained +dashboard.mspan_structures_usage = MSpan Structures Usage +dashboard.mspan_structures_obtained = MSpan Structures Obtained +dashboard.mcache_structures_usage = MCache Structures Usage +dashboard.mcache_structures_obtained = MCache Structures Obtained +dashboard.profiling_bucket_hash_table_obtained = Profiling Bucket Hash Table Obtained +dashboard.gc_metadata_obtained = GC Metadada Obtained +dashboard.other_system_allocation_obtained = Other System Allocation Obtained +dashboard.next_gc_recycle = Next GC Recycle +dashboard.last_gc_time = Since Last GC Time +dashboard.total_gc_time = Total GC Pause +dashboard.total_gc_pause = Total GC Pause +dashboard.last_gc_pause = Last GC Pause +dashboard.gc_times = GC Times + +users.user_manage_panel = User Manage Panel +users.new_account = Create New Account +users.name = Name +users.activated = Activated +users.admin = Admin +users.repos = Repos +users.created = Created +users.edit = Edit +users.auth_source = Authorization Source +users.local = Local +users.auth_login_name = Authorization Login Name +users.update_profile_success = Account profile has been successfully updated. +users.edit_account = Edit Account +users.is_activated = This account is activated +users.is_admin = This account has administrator permissions +users.update_profile = Update Account Profile +users.delete_account = Delete This Account +users.still_own_repo = This account still have ownership of repository, you have to delete or transfer them first. + +orgs.org_manage_panel = Organization Manage Panel +orgs.name = Name +orgs.teams = Teams +orgs.members = Members + +repos.repo_manage_panel = Repository Manage Panel +repos.owner = Owner +repos.name = Name +repos.private = Private +repos.watches = Watches +repos.stars = Stars +repos.issues = Issues + +auths.auth_manage_panel = Authorization Manage Panel +auths.new = Add New Authorization Source +auths.name = Name +auths.type = Type +auths.enabled = Enabled +auths.updated = Updated +auths.auth_type = Authorization Type +auths.auth_name = Authorization Name +auths.domain = Domain +auths.host = Host +auths.port = Port +auths.base_dn = Base DN +auths.attributes = Search Attributes +auths.filter = Search Filter +auths.ms_ad_sa = Ms Ad SA +auths.smtp_auth = SMTP Authorization Type +auths.smtphost = SMTP Host +auths.smtpport = SMTP Port +auths.enable_tls = Enable TLS Encryption +auths.enable_auto_register = Enable Auto Registration +auths.tips = Tips +auths.edit = Edit Authorization Setting +auths.activated = This authentication has activated +auths.update_success = Authorization setting has been successfully updated. +auths.update = Update Authorization Setting +auths.delete = Delete This Authorization + +config.server_config = Server Configuration +config.app_name = Application Name +config.app_ver = Application Version +config.app_url = Application URL +config.domain = Domain +config.offline_mode = Offline Mode +config.disable_router_log = Disable Router Log +config.run_user = Run User +config.run_mode = Run Mode +config.repo_root_path = Repository Root Path +config.static_file_root_path = Static File Root Path +config.log_file_root_path = Log File Root Path +config.script_type = Script Type +config.reverse_auth_user = Reverse Authentication User +config.db_config = Database Configuration +config.db_type = Type +config.db_host = Host +config.db_name = Name +config.db_user = User +config.db_ssl_mode = SSL Mode +config.db_ssl_mode_helper = (for "postgres" only) +config.db_path = Path +config.db_path_helper = (for "sqlite3" only) +config.service_config = Service Configuration +config.register_email_confirm = Register Email Confirmation +config.disable_register = Disable Registration +config.require_sign_in_view = Require Sign In View +config.mail_notify = Mail Notification +config.enable_cache_avatar = Enable Cache Avatar +config.active_code_lives = Active Code Lives +config.reset_password_code_lives = Reset Password Code Lives +config.webhook_config = Webhook Configuration +config.task_interval = Task Interval +config.deliver_timeout = Deliver Timeout +config.mailer_config = Mailer Configuration +config.mailer_enabled = Enabled +config.mailer_name = Name +config.mailer_host = Host +config.mailer_user = User +config.oauth_config = OAuth Configuration +config.oauth_enabled = Enabled +config.cache_config = Cache Configuration +config.cache_adapter = Cache Adapter +config.cache_interval = Cache Interval +config.cache_conn = Cache Connection +config.session_config = Session Configuration +config.session_provider = Session Provider +config.provider_config = Provider Config +config.cookie_name = Cookie Name +config.enable_set_cookie = Enable Set Cookie +config.gc_interval_time = GC Interval Time +config.session_life_time = Session Life Time +config.https_only = HTTPS Only +config.cookie_life_time = Cookie Life Time +config.session_hash_function = Session ID Hash Function +config.session_hash_key = Session ID Hash Key +config.picture_config = Picture Configuration +config.picture_service = Picture Service +config.disable_gravatar = Disable Gravatar +config.log_config = Log Configuration +config.log_mode = Log Mode + +monitor.cron = Cron Tasks +monitor.name = Name +monitor.schedule = Schedule +monitor.next = Next Time +monitor.previous = Previous Time +monitor.execute_times = Execute Times +monitor.process = Running Processes +monitor.desc = Description +monitor.start = Start Time +monitor.execute_time = Execution Time + +[action] +create_repo = a créé le dépôt %s +commit_repo = a poussé sur %s à %s +create_issue = a ouvert le ticket %s#%s +comment_issue = a commenté sur le ticket %s#%s + +[tool] +ago = ago +from_now = from now +now = now +1s = 1 second %s +1m = 1 minute %s +1h = 1 hour %s +1d = 1 day %s +1w = 1 week %s +1mon = 1 month %s +1y = 1 year %s +seconds = %d seconds %s +minutes = %d minutes %s +hours = %d hours %s +days = %d days %s +weeks = %d weeks %s +months = %d months %s +years = %d years %s +raw_seconds = seconds +raw_minutes = minutes From bc3abb397f968f87c98cecc371d3fb4e9c1a5c16 Mon Sep 17 00:00:00 2001 From: Philippe Barsalou Date: Tue, 16 Sep 2014 20:55:52 -0400 Subject: [PATCH 14/14] typos --- conf/locale/locale_fr-CA.ini | 542 +++++++++++++++++------------------ 1 file changed, 271 insertions(+), 271 deletions(-) diff --git a/conf/locale/locale_fr-CA.ini b/conf/locale/locale_fr-CA.ini index 05196be9e0..3f5d705fc7 100644 --- a/conf/locale/locale_fr-CA.ini +++ b/conf/locale/locale_fr-CA.ini @@ -5,7 +5,7 @@ dashboard = Tableau de bord explore = Explorer help = Aide sign_in = Connexion -social_sign_in = Social Sign In: 2nd Step associate account +social_sign_in = Authentification via Internet: 2ème étape associé le compte sign_out = Déconnexion sign_up = Créer un compte register = S'inscrire @@ -18,16 +18,16 @@ language = Langage username = Usager email = Courriel password = Mot de passe -re_type = Tapez de nouveau +re_type = Saisir à nouveau captcha = Captcha repository = Dépôt -organization = Organisme +organization = Organisation mirror = Mirroir new_repo = Nouveau dépôt new_migrate = Nouvelle migration -new_org = Nouvel organisme -manage_org = Gestion de organismes +new_org = Nouvel organisation +manage_org = Gestion des organisations admin_panel = Gestion account_settings = Profil usager settings = Configuration @@ -44,7 +44,7 @@ password_holder = Mot de passe switch_dashboard_context = Changer de tableau de bord my_repos = Mes dépôts collaborative_repos = Dépôts partagés -my_orgs = Mes organismes +my_orgs = Mes organisations my_mirrors = Mes mirroirs [auth] @@ -64,7 +64,7 @@ resent_limit_prompt = Désolé vous demandez trop souvent un courriel de confirm has_unconfirmed_mail = Bonjour %s, votre adresse courriel n'est pas vérifiée(%s). Si vous n'avez pas reçu de courriel de confirmation ou si vous avez besoin d'en envoyer un maintenant, appuyez sur le bouton ci-dessous. resend_mail = Appuyez ici pour envoyer de nouveau un courriel de confirmation. email_not_associate = Ce courriel ne correspond à aucun compte. -send_reset_mail = Appuyez ici pour (ré)envoyer un courriel pour réinitialiser de mot de passe. +send_reset_mail = Appuyez ici pour (ré)envoyer un courriel pour réinitialiser le mot de passe. reset_password = Réinitialiser votre mot de passe invalid_code = Désolé, ce code de confirmation est périmé ou non-valide. reset_password_helper = Appuyez ici pour réinitialiser votre mot de passe @@ -76,7 +76,7 @@ RepoName = Nom du dépôt Email = Adresse de courriel Password = Mot de passe Retype = Mot de passe (confirmation) -SSHTitle = Nom de la clef SSH +SSHTitle = Nom de la clé SSH HttpsUrl = URL HTTPS PayloadUrl = URL cible TeamName = Nom de l'équipe @@ -95,10 +95,10 @@ password_not_match = Les deux mots de passe diffèrent. username_been_taken = `Nom d'usager dèjà utilisé.` repo_name_been_taken = Nom de dépôt déjà utilisé. -org_name_been_taken = Nom d'organisme déjà utilisé. +org_name_been_taken = Nom d'organisation déjà utilisé. team_name_been_taken = Nom d'équipe déjà utilisé. email_been_used = Adresse de courriel déjà utilisée. -ssh_key_been_used = Nom de clef public déjà utilisé. +ssh_key_been_used = Nom de clé publique déjà utilisé. illegal_username = Votre nom d'usager contient des caractères interdits. illegal_repo_name = Le nom du dépôt contient des caractères interdits. illegal_org_name = Le nom de l'organisation contient des caractères interdits. @@ -110,25 +110,25 @@ enterred_invalid_password = Mot de passe erroné. user_not_exist = Nom d'usager inexistant. last_org_owner = Ceci est le dernier responsable du dépôt. Il doit y avoir obligatoirement au moins un usager responsable. -invalid_ssh_key = Désolé, impossible de vérifier votre clef SSH: % +invalid_ssh_key = Désolé, impossible de vérifier votre clé SSH: % auth_failed = Erreur d'authentification : %v still_own_repo = Votre compte est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager. -org_still_own_repo = Cet organisme est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager ou organisme. +org_still_own_repo = Cette organisation est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager ou organisation. -still_own_user = Cet authentification est utilisé par un usager. +still_own_user = Cette authentification est utilisée par un usager. [settings] -profile = Profile +profile = Profil password = Mot de passe -ssh_keys = Clefs SSH -social = Comptes médias sociaux -orgs = Organismes +ssh_keys = Clés SSH +social = Comptes Internet +orgs = Organisations delete = Supprimer votre compte public_profile = Profil public -profile_desc = Votre adresse de couriel est publique et sera utilisée pour les avis produits par le site. -full_name = Nom complêt +profile_desc = Votre adresse de courriel est publique et sera utilisée pour les avis produits par le site. +full_name = Nom complet website = Site web location = Endroit update_profile = Mettre à jour le profil @@ -140,23 +140,23 @@ new_password = Nouveau mot de passe password_incorrect = Mot de passe actuel erroné. change_password_success = Modification du mot de passe effectuée. Vous pouvez dorénavant vous connecter avec le nouveau mot de passe. -manage_ssh_keys = Gestion des clefs SSH -add_key = Ajouter une clef -ssh_desc = Voici la liste de clefs SSH associées à votre profil. Détruire les clefs que vous ne reconnaissez pas. +manage_ssh_keys = Gestion des clés SSH +add_key = Ajouter une clé +ssh_desc = Voici la liste de clés SSH associées à votre profil. Retirez les clés que vous ne reconnaissez pas. ssh_helper = Beson d'aide? Consultez le guide au generating SSH keys ou vérifiez les problèmes SSH fréquents. -add_new_key = Ajouter une clef SSH -key_name = Nom de la clef +add_new_key = Ajouter une clé SSH +key_name = Nom de la clé key_content = Contenu -add_key_success = Clef SSH ajoutée! +add_key_success = Clé SSH ajoutée! delete_key = Détruire add_on = Ajoutée le last_used = Dernière utilisation le no_activity = Pas d'activité récente -manage_social = Gestion des profils de Internets associés -social_desc = Ceci est une list de profils Internet associés. Déassociez les profils que vous ne reconnaissez pas. -unbind = Déaccocier -unbind_success = Profil Internet déassocié. +manage_social = Gestion des comptes Internets associés +social_desc = Ceci est une liste de comptes Internet associés. Retirez les comptes que vous ne reconnaissez pas. +unbind = Désassocier +unbind_success = Compte Internet déassocié. delete_account = Detruire votre compte delete_prompt = Cette opération détruira votre compte et ne pourra être annulée! @@ -165,7 +165,7 @@ confirm_delete_account = Confirmez la suppression [repo] owner = Responsable repo_name = Nom du dépôt -repo_name_helper = Les bons noms de dépôts sont courts, mémorables et uniques +repo_name_helper = Les bons noms de dépôts sont courts, mémorables et uniques. visibility = Visibilité visiblity_helper = Ce dépôt est privé repo_desc = Description @@ -202,7 +202,7 @@ settings = Réglages settings.options = Réglages de base settings.collaboration = Collaboration settings.hooks = Webhooks -settings.deploy_keys = Clef de déploiement +settings.deploy_keys = Clé de déploiement settings.basic_settings = réglages de base settings.danger_zone = Danger! settings.site = Site officiel @@ -214,132 +214,132 @@ settings.delete_desc = La destruction est irrémédiable, impossible d'annuler. settings.update_settings_success = Réglages modifiés settings.transfer_owner = Nouveau responsable settings.make_transfer = Faire le transfert -settings.confirm_delete = Confirm Deletion -settings.add_collaborator = Add New Collaborator -settings.add_collaborator_success = New collaborator has been added. -settings.remove_collaborator_success = Collaborator has been removed. -settings.add_webhook = Add Webhook -settings.hooks_desc = Webhooks allow external services to be notified when certain events happen on Gogs. When the specified events happen, we'll send a POST request to each of the URLs you provide. Learn more in our Webhooks Guide. -settings.remove_hook_success = Webhook has been removed. -settings.add_webhook_desc = We’ll send a POST request to the URL below with details of any subscribed events. You can also specify which data format you'd like to receive (JSON, x-www-form-urlencoded, etc). More information can be found in Webhooks Guide. -settings.payload_url = Payload URL +settings.confirm_delete = Confirmer la destruction +settings.add_collaborator = Ajouter un nouveau collaborateur +settings.add_collaborator_success = Nouveau collaborateur ajouté. +settings.remove_collaborator_success = Collaborateur supprimé. +settings.add_webhook = Ajouter un Webhook +settings.hooks_desc = Les Webhooks permettent à des services externes d'être avertis de certains changements sur Gogs. Lorque qu'un changement se produit, Gogs envoie une requête POST à chacun des URLs spécifiés. Plus d'info disponible sur notre guide Webhooks'. +settings.remove_hook_success = Webhook supprimé. +settings.add_webhook_desc = Gogs envoiera un POST à l'URL ci-dessous avec le détail de l'événement souscrit. Vous pouvez aussi spécifier dans quel format vous désirez recevoir les données (JSON,x-www-form-urlencoded, etc). Plus d'info disponible sur notre guide Webhooks'. +settings.payload_url = URL cible settings.content_type = Content Type settings.secret = Secret -settings.event_desc = Which events would you like to trigger this webhook? -settings.event_push_only = Just the push event. -settings.active = Active -settings.active_helper = We will deliver event details when this hook is triggered. -settings.add_hook_success = New webhook has been added. -settings.update_webhook = Update Webhook -settings.update_hook_success = Webhook has been updated. -settings.delete_webhook = Delete Webhook -settings.recent_deliveries = Recent Deliveries -settings.hook_type = Hook Type -settings.add_slack_hook_desc = Add Slack integration to your repository. -settings.slack_token = Token -settings.slack_domain = Domain -settings.slack_channel = Channel +settings.event_desc = Quels changements déclencheront le webhook? +settings.event_push_only = Uniquement les push. +settings.active = Activé +settings.active_helper = Gogs fournira le détail de l'événement lorsque ce webhook sera déclenché. +settings.add_hook_success = Nouveau webhook ajouté. +settings.update_webhook = Mettre à jour le webhook +settings.update_hook_success = Webhook mis à jour. +settings.delete_webhook = Détruire le webhook +settings.recent_deliveries = Livraisons récentes +settings.hook_type = Type de déclencheur +settings.add_slack_hook_desc = Ajouter la compatibilité Slack à ce dépôt. +settings.slack_token = Jeton (token) +settings.slack_domain = Domaine +settings.slack_channel = Canal [org] -org_name_holder = Organization Name -org_name_helper = Great organization names are short and memorable. -org_email_helper = Organization's Email receives all notifications and confirmations. -create_org = Create Organization -repo_updated = Updated -people = People -invite_someone = Invite Someone -teams = Teams -lower_members = members -lower_repositories = repositories -create_new_team = Create New Team +org_name_holder = Nom de l'organisation +org_name_helper = Les bons noms d'organisations sont courts, mémorables et uniques +org_email_helper = Le courriel de l'organisation recevra toutes les notifications et les confirmations. +create_org = Créer une organisation +repo_updated = Changement effectué +people = Personne +invite_someone = Inviter quelqu'un +teams = Équipes +lower_members = Membres +lower_repositories = Dépôts +create_new_team = Créer une nouvelle équipe org_desc = Description -team_name = Team Name +team_name = Nom de l'équipe team_desc = Description -team_name_helper = You'll use this name to mention this team in conversations. -team_desc_helper = What is this team all about? -team_permission_desc = What permission level should this team have? +team_name_helper = Le nom qui sera utilisé pour mentionner cette équipe dans les conversations. +team_desc_helper = Quel est la raison d'être de cette équipe? +team_permission_desc = Quel niveau de permission attribuer à cette équipe? -settings = Settings -settings.options = Options -settings.full_name = Full Name -settings.website = Website -settings.location = Location -settings.update_settings = Update Settings -settings.update_setting_success = Organization setting has been successfully updated. -settings.delete = Delete Organization -settings.delete_account = Delete This Organization -settings.delete_prompt = The operation will delete this organization permanently, and CANNOT be undo! -settings.confirm_delete_account = Confirm Deletion +settings = Réglages +settings.options = Paramètres +settings.full_name = Nom complet +settings.website = Site web +settings.location = Endroit +settings.update_settings = Mettre à jour les paramètres +settings.update_setting_success = Paramètres mis à jour. +settings.delete = Détruire l'organisation +settings.delete_account = Détruire cette organisation +settings.delete_prompt = La destruction de l'organisation est irrémédiable, impossible d'annuler. Soyez sûr de votre décision. +settings.confirm_delete_account = Confirmer la destruction -members.public = Public -members.public_helper = make private -members.private = Private -members.private_helper = make public -members.owner = Owner -members.member = Member -members.conceal = Conceal -members.remove = Remove -members.leave = Leave -members.invite_desc = Start typing a username to invite a new member to %s: -members.invite_now = Invite Now +members.public = Publique +members.public_helper = Rendre privé +members.private = Privé +members.private_helper = Rendre publique +members.owner = Responsable +members.member = Membre +members.conceal = Caché +members.remove = Retirer +members.leave = Quitter +members.invite_desc = Commencez à saisir un nom d'usager pour l'inviter à %s: +members.invite_now = Inviter -teams.join = Join -teams.leave = Leave -teams.read_access = Read Access -teams.read_access_helper = This team will be able to view and clone its repositories. -teams.write_access = Write Access -teams.write_access_helper = This team will be able to read its repositories, as well as push to them. -teams.admin_access = Admin Access -teams.admin_access_helper = This team will be able to push/pull to its repositories, as well as add other collaborators to them. -teams.no_desc = This team has no description -teams.settings = Settings -teams.owners_permission_desc = Owners have full access to all repositories and have admin rights to the organization. -teams.members = Team Members -teams.update_settings = Update Settings -teams.delete_team = Delete This Team -teams.add_team_member = Add Team Member -teams.delete_team_success = Given team has been successfully deleted. -teams.read_permission_desc = This team grants Read access: members can view and clone the team's repositories. -teams.write_permission_desc = This team grants Write access: members can read from and push to the team's repositories. -teams.admin_permission_desc = This team grants Admin access: members can read from, push to, and add collaborators to the team's repositories. -teams.repositories = Team Repositories -teams.add_team_repository = Add Team Repository -teams.remove_repo = Remove +teams.join = Rejoindre +teams.leave = Quitter +teams.read_access = Droits de lecture +teams.read_access_helper = Cette équipe pourra voir et cloner ses dépôts. +teams.write_access = Droits d'écriture +teams.write_access_helper = Cette équipe pourra voir et cloner ses dépôts ainsi que pousser vers ceux-ci. +teams.admin_access = Droits de gestion +teams.admin_access_helper = En plus des droits d'écriture, cette équipe pourra gérer les collaborateurs. +teams.no_desc = Cette équipe ne posséde pas de description +teams.settings = Réglages +teams.owners_permission_desc = Les responsables ont accès à tous les dépôts et en possédent les droits de gestion. +teams.members = Membre de l'équipe +teams.update_settings = Mettre à jour +teams.delete_team = Détruire cette équipe +teams.add_team_member = Ajouter un membre à l'équipe +teams.delete_team_success = Équipe détruite +teams.read_permission_desc = La participation à cette équipe confère les droits de lecture. Ses membres peuvent voir et cloner ses dépôts. +teams.write_permission_desc = La participation à cette équipe confère les droits d'écriture en plus des droits de lecture. Ses membres peuvent pousser vers les dépôts de l'équipe. +teams.admin_permission_desc = La participation à cette équire confère les droits de gestion. Ses membres peuvent voir, cloner, pousser et gérer les collaborateurs des dépôts. +teams.repositories = Dépôts de l'équipe +teams.add_team_repository = Ajouer un dépôt à l'équipe +teams.remove_repo = Enlever [admin] -dashboard = Dashboard -users = Users -organizations = Organizations -repositories = Repositories -authentication = Authentications +dashboard = Tableau de bord +users = Usagers +organizations = Organisations +repositories = Dépôts +authentication = Sources d'authentifications config = Configuration monitor = Monitoring -prev = Prev. -next = Next +prev = Préc. +next = Suiv. -dashboard.statistic = Statistic -dashboard.operations = Operations -dashboard.system_status = System Monitor Status -dashboard.statistic_info = Gogs database has %d users, %d organizations, %d public keys, %d repositories, %d watches, %d stars, %d actions, %d accesses, %d issues, %d comments, %d social accounts, %d follows, %d mirrors, %d releases, %d login sources, %d webhooks, %d milestones, %d labels, %d hook tasks, %d teams, %d update tasks, %d attachments. -dashboard.operation_name = Operation Name -dashboard.operation_switch = Switch -dashboard.operation_run = Run -dashboard.clean_unbind_oauth = Clean unbound OAuthes -dashboard.delete_inactivate_accounts = Delete all inactive accounts -dashboard.server_uptime = Server Uptime -dashboard.current_goroutine = Current Goroutines -dashboard.current_memory_usage = Current Memory Usage -dashboard.total_memory_allocated = Total Memory Allocated -dashboard.memory_obtained = Memory Obtained -dashboard.pointer_lookup_times = Pointer Lookup Times -dashboard.memory_allocate_times = Memory Allocate Times -dashboard.memory_free_times = Memory Free Times -dashboard.current_heap_usage = Current Heap Usage -dashboard.heap_memory_obtained = Heap Memory Obtained -dashboard.heap_memory_idle = Heap Memory Idle -dashboard.heap_memory_in_use = Heap Memory In Use -dashboard.heap_memory_released = Heap Memory Released -dashboard.heap_objects = Heap Objects +dashboard.statistic = Statistiques +dashboard.operations = Opérations +dashboard.system_status = État du monitoring système +dashboard.statistic_info = La BD Gogs compte %d usagers, %d organisations, %d clé SSH, %d dépôts, %d suivis, %d étoiles, %d actions, %d accès, %d tickets, %d commentaires, %d comptes Internet, %d suivis, %d mirroirs, %d publications, %d sources d'authentification, %d webhooks, %d jalons, %d tags, %d tâches hook, %d équipes, %d tâches de mise à jours, %d fichiers joints. +dashboard.operation_name = Nom de l'opération +dashboard.operation_switch = Commande +dashboard.operation_run = Lancer +dashboard.clean_unbind_oauth = Nettoyer les OAuths orphelins +dashboard.delete_inactivate_accounts = Détruire les comptes inactifs +dashboard.server_uptime = Démarré depuis +dashboard.current_goroutine = Nombre de Goroutines +dashboard.current_memory_usage = Usage mémoire actuel +dashboard.total_memory_allocated = Mémoire allouée totale +dashboard.memory_obtained = Memoire obtenue +dashboard.pointer_lookup_times = Accès pointeur +dashboard.memory_allocate_times = Allocation mémoire +dashboard.memory_free_times = Désallocation mémoire +dashboard.current_heap_usage = Taille du heap actuelle +dashboard.heap_memory_obtained = Mémoire heap obtenue +dashboard.heap_memory_idle = Mémoire heap inactive +dashboard.heap_memory_in_use = Mémoire heap utilisée +dashboard.heap_memory_released = Mémoire heap relachée +dashboard.heap_objects = Objets dans le heap dashboard.bootstrap_stack_usage = Bootstrap Stack Usage dashboard.stack_memory_obtained = Stack Memory Obtained dashboard.mspan_structures_usage = MSpan Structures Usage @@ -356,126 +356,126 @@ dashboard.total_gc_pause = Total GC Pause dashboard.last_gc_pause = Last GC Pause dashboard.gc_times = GC Times -users.user_manage_panel = User Manage Panel -users.new_account = Create New Account -users.name = Name -users.activated = Activated -users.admin = Admin -users.repos = Repos -users.created = Created -users.edit = Edit -users.auth_source = Authorization Source -users.local = Local -users.auth_login_name = Authorization Login Name -users.update_profile_success = Account profile has been successfully updated. -users.edit_account = Edit Account -users.is_activated = This account is activated -users.is_admin = This account has administrator permissions -users.update_profile = Update Account Profile -users.delete_account = Delete This Account -users.still_own_repo = This account still have ownership of repository, you have to delete or transfer them first. +users.user_manage_panel = Gestion des usager +users.new_account = Creér un nouveau compte +users.name = Nom +users.activated = Activé +users.admin = Gestionnaire +users.repos = Dépôts +users.created = Créé +users.edit = Editer +users.auth_source = Source d'authentification +users.local = Locale +users.auth_login_name = Identifiant d'authentification +users.update_profile_success = Compte crée. +users.edit_account = Éditer compte +users.is_activated = Ce compte est activé +users.is_admin = Ce compte a les droits de gestionnaire +users.update_profile = Mettre à jour le compte +users.delete_account = Détruire ce compte +users.still_own_repo = Ce compte est responsables d'un dépôt. I faut détruire le dépôt ou transférer la responsabilité avant de détruire ce compte. -orgs.org_manage_panel = Organization Manage Panel -orgs.name = Name -orgs.teams = Teams -orgs.members = Members +orgs.org_manage_panel = Gestion des organisations +orgs.name = Nom +orgs.teams = Équipes +orgs.members = Membres -repos.repo_manage_panel = Repository Manage Panel -repos.owner = Owner -repos.name = Name -repos.private = Private -repos.watches = Watches -repos.stars = Stars -repos.issues = Issues +repos.repo_manage_panel = Gestion des dépôts +repos.owner = Responsable +repos.name = Nom +repos.private = Privé +repos.watches = Suivis +repos.stars = Étoiles +repos.issues = Ticket -auths.auth_manage_panel = Authorization Manage Panel -auths.new = Add New Authorization Source -auths.name = Name +auths.auth_manage_panel = Gestion des sources d'authentification +auths.new = Ajouter une nouvelle source d'authentification +auths.name = Nom auths.type = Type -auths.enabled = Enabled -auths.updated = Updated -auths.auth_type = Authorization Type -auths.auth_name = Authorization Name -auths.domain = Domain -auths.host = Host +auths.enabled = Activé +auths.updated = Mis à jour +auths.auth_type = Type d'authentification +auths.auth_name = Nom de l'authentification +auths.domain = Domaine +auths.host = Serveur auths.port = Port -auths.base_dn = Base DN -auths.attributes = Search Attributes -auths.filter = Search Filter -auths.ms_ad_sa = Ms Ad SA -auths.smtp_auth = SMTP Authorization Type -auths.smtphost = SMTP Host -auths.smtpport = SMTP Port -auths.enable_tls = Enable TLS Encryption -auths.enable_auto_register = Enable Auto Registration -auths.tips = Tips -auths.edit = Edit Authorization Setting -auths.activated = This authentication has activated -auths.update_success = Authorization setting has been successfully updated. -auths.update = Update Authorization Setting -auths.delete = Delete This Authorization +auths.base_dn = DN de base +auths.attributes = Attributs de recherche +auths.filter = Filtre de recherche +auths.ms_ad_sa = Microsoft Active Directory +auths.smtp_auth = Authentification SMTP +auths.smtphost = Serveur SMTP +auths.smtpport = Port SMTP +auths.enable_tls = Chiffrement TLS +auths.enable_auto_register = Activer auto-abonnement +auths.tips = Trucs +auths.edit = Éditer réglages d'authentification +auths.activated = Source d'authentification activée +auths.update_success = Réglages mis à jour. +auths.update = Mettre à jour réglages +auths.delete = Détruire cette source -config.server_config = Server Configuration -config.app_name = Application Name -config.app_ver = Application Version -config.app_url = Application URL -config.domain = Domain -config.offline_mode = Offline Mode -config.disable_router_log = Disable Router Log -config.run_user = Run User -config.run_mode = Run Mode -config.repo_root_path = Repository Root Path -config.static_file_root_path = Static File Root Path -config.log_file_root_path = Log File Root Path -config.script_type = Script Type -config.reverse_auth_user = Reverse Authentication User -config.db_config = Database Configuration +config.server_config = Configuration du serveur +config.app_name = Nom de l'applicaiton +config.app_ver = Version de l'application +config.app_url = URL de l'application +config.domain = Domaine +config.offline_mode = Mode hors-ligne +config.disable_router_log = Journal du routeur désactivé +config.run_user = Éxécuté en tant que +config.run_mode = Mode de fonctionnement +config.repo_root_path = Dossier contenant les dépôts +config.static_file_root_path = Dossier contenant les fichiers statiques +config.log_file_root_path = Dossier contenant les journaux +config.script_type = Type de script +config.reverse_auth_user = Usager d'authentification inversée +config.db_config = Configuration de la BD config.db_type = Type -config.db_host = Host -config.db_name = Name -config.db_user = User -config.db_ssl_mode = SSL Mode -config.db_ssl_mode_helper = (for "postgres" only) +config.db_host = Serveur +config.db_name = Nom +config.db_user = Usager +config.db_ssl_mode = Mode SSL +config.db_ssl_mode_helper = (pour "postgres" seulement) config.db_path = Path -config.db_path_helper = (for "sqlite3" only) -config.service_config = Service Configuration -config.register_email_confirm = Register Email Confirmation -config.disable_register = Disable Registration -config.require_sign_in_view = Require Sign In View -config.mail_notify = Mail Notification -config.enable_cache_avatar = Enable Cache Avatar -config.active_code_lives = Active Code Lives -config.reset_password_code_lives = Reset Password Code Lives -config.webhook_config = Webhook Configuration -config.task_interval = Task Interval -config.deliver_timeout = Deliver Timeout -config.mailer_config = Mailer Configuration -config.mailer_enabled = Enabled -config.mailer_name = Name -config.mailer_host = Host -config.mailer_user = User -config.oauth_config = OAuth Configuration -config.oauth_enabled = Enabled -config.cache_config = Cache Configuration -config.cache_adapter = Cache Adapter -config.cache_interval = Cache Interval -config.cache_conn = Cache Connection -config.session_config = Session Configuration -config.session_provider = Session Provider -config.provider_config = Provider Config -config.cookie_name = Cookie Name -config.enable_set_cookie = Enable Set Cookie -config.gc_interval_time = GC Interval Time -config.session_life_time = Session Life Time -config.https_only = HTTPS Only -config.cookie_life_time = Cookie Life Time -config.session_hash_function = Session ID Hash Function -config.session_hash_key = Session ID Hash Key -config.picture_config = Picture Configuration -config.picture_service = Picture Service -config.disable_gravatar = Disable Gravatar -config.log_config = Log Configuration -config.log_mode = Log Mode +config.db_path_helper = (pour "sqlite3" seulement) +config.service_config = Configuration du service +config.register_email_confirm = Confirmation d'abonnement par courriel +config.disable_register = Auto-inscription désactivée +config.require_sign_in_view = Connexion requise pour visualiser +config.mail_notify = Notifications par courriel +config.enable_cache_avatar = Cache avatar activée +config.active_code_lives = Jeton d'activation +config.reset_password_code_lives = Jeton de modification mot-de-passe +config.webhook_config = Configuration Webhook +config.task_interval = Intervalle +config.deliver_timeout = Expiration des appels +config.mailer_config = Configuration expédition de courriels +config.mailer_enabled = Activé +config.mailer_name = Nom +config.mailer_host = Serveur +config.mailer_user = Usager +config.oauth_config = Configuration OAuth +config.oauth_enabled = Activé +config.cache_config = Configuration du cache +config.cache_adapter = Mécanisme de cache +config.cache_interval = Intervalle +config.cache_conn = Chaîne de connexion +config.session_config = Configuration des session +config.session_provider = Mécanisme +config.provider_config = Configuration du mécanisme +config.cookie_name = Nom du fichier témoin +config.enable_set_cookie = Fichier témoin actvité +config.gc_interval_time = Intervalle GC +config.session_life_time = Durée de la session +config.https_only = HTTPS exigé +config.cookie_life_time = Expiration du fichier témoin +config.session_hash_function = Fonction de hashage ID de session +config.session_hash_key = Clé de hashage ID de session +config.picture_config = Configuration des avatars +config.picture_service = Service image +config.disable_gravatar = Désactivé Gravatar +config.log_config = Configuration du journal +config.log_mode = Mode de journal monitor.cron = Cron Tasks monitor.name = Name @@ -495,22 +495,22 @@ create_issue = a ouvert le ticket %s#%s comment_issue = a commenté sur le ticket %s#%s [tool] -ago = ago -from_now = from now -now = now -1s = 1 second %s +ago = auparavant +from_now = depuis +now = maintenant +1s = 1 seconde %s 1m = 1 minute %s -1h = 1 hour %s -1d = 1 day %s -1w = 1 week %s -1mon = 1 month %s -1y = 1 year %s -seconds = %d seconds %s +1h = 1 heure %s +1d = 1 jour %s +1w = 1 semaine %s +1mon = 1 mos %s +1y = 1 an %s +seconds = %d secondes %s minutes = %d minutes %s -hours = %d hours %s -days = %d days %s -weeks = %d weeks %s -months = %d months %s -years = %d years %s -raw_seconds = seconds +hours = %d heures %s +days = %d jours %s +weeks = %d semaines %s +months = %d mois %s +years = %d années %s +raw_seconds = secondes raw_minutes = minutes