]> source.dussan.org Git - gitea.git/commitdiff
fix #711
authorUnknwon <joe2010xtmf@163.com>
Tue, 9 Dec 2014 07:18:25 +0000 (02:18 -0500)
committerUnknwon <joe2010xtmf@163.com>
Tue, 9 Dec 2014 07:18:25 +0000 (02:18 -0500)
12 files changed:
conf/locale/TRANSLATORS
conf/locale/locale_lv-LV.ini
gogs.go
models/git_diff.go
modules/base/markdown.go
modules/base/template.go
routers/repo/commit.go
routers/repo/view.go
templates/.VERSION
templates/admin/notice.tmpl
templates/repo/diff.tmpl
templates/repo/view_list.tmpl

index 9899ea4eac80f45ef156b0547c2f26559ae0f541..38e4ddc274ed54a01670b56077a8560ad88eb4df 100644 (file)
@@ -2,4 +2,5 @@
 # Order of name is meaningless.
 
 Thomas Fanninger <gogs.thomas@fanninger.at>
-Łukasz Jan Niemier <lukasz@niemier.pl>
\ No newline at end of file
+Łukasz Jan Niemier <lukasz@niemier.pl>
+Lafriks <lafriks@gmail.com>
\ No newline at end of file
index ac1ea5b98775d1e3cebf06f5b957a92f9b033728..a9be8e50efe1b16c4d0843c5f139e2a3eee899aa 100755 (executable)
@@ -34,7 +34,7 @@ account_settings=Konta iestatījumi
 settings=Iestatījumi\r
 \r
 news_feed=Jaunumu plūsma\r
-pull_requests=Vilkšanas pieprasījumi\r
+pull_requests=Izmaiņu pieprasījumi\r
 issues=Problēmas\r
 \r
 cancel=Atcelt\r
@@ -51,12 +51,12 @@ db_name=Datu bāzes nosaukums
 db_helper=Nepieciešams izmantot MySQL INNODB dzini ar rakstzīmju kopu utf8_general_ci.\r
 ssl_mode=SSL režīms\r
 path=Ceļš\r
-sqlite_helper=SQLite 3 datu bāzes faila ceļš.\r
+sqlite_helper=SQLite 3 datu bāzes faila atrašanās vieta.\r
 general_title=Gogs vispārīgie iestatījumi\r
-repo_path=Repozitorija saknes ceļš\r
+repo_path=Repozitoriju glabāšanas vieta\r
 repo_path_helper=Visi Git attālinātie repozitoriji tiks glabāti šajā direktorijā.\r
 run_user=Izpildes lietotājs\r
-run_user_helper=Lietotājam ir jābūt tiesībām rakstīšanas tiesībām repozitorija saknes direktorijai un Gogs jābūt palaistam zem šī lietotāja.\r
+run_user_helper=Lietotājam ir jābūt rakstīšanas tiesībām repozitorija saknes direktorijai un Gogs jābūt palaistam zem šī lietotāja.\r
 domain=Domēns\r
 domain_helper=Tas ietekmē SSH klonēšanas URL.\r
 app_url=Lietotnes URL\r
@@ -77,14 +77,14 @@ install_gogs=Instalēt Gogs
 test_git_failed=Kļūda pārbaudot 'git' komandu: %v\r
 sqlite3_not_available=Jūsu versija neatbalsta SQLite3, lūdzu lejupielādējiet oficiālo bināro versiju no %s, NEVIS gobuild versiju.\r
 invalid_db_setting=Datu bāzes iestatījums nav pareizs: %v\r
-invalid_repo_path=Repozitorija saknes ceļš ir nekorekts: %v\r
+invalid_repo_path=Repozitorija atrašanās vieta ir nekorekta: %v\r
 run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s\r
-save_config_failed=Neizdevās saglanāt konfigurāciju: %v\r
+save_config_failed=Neizdevās saglabāt konfigurāciju: %v\r
 invalid_admin_setting=Nekorekts admin konta iestatījums: %v\r
 install_success=Laipni lūdzam! Mēs priecājamies, ka Jūs izvēlaties Gogs, patīkamu lietošanu!\r
 \r
 [home]\r
-uname_holder=Lietotājvārds vai e-pasta adrese\r
+uname_holder=Lietotājvārds vai e-pasts\r
 password_holder=Parole\r
 switch_dashboard_context=Mainīt infopaneļa kontekstu\r
 my_repos=Mani repozitoriji\r
@@ -291,7 +291,7 @@ no_desc=Nav apraksta
 quick_guide=Īsa pamācība\r
 clone_this_repo=Klonēt šo repozitoriju\r
 create_new_repo_command=Izveidot jaunu repozitoriju komandrindā\r
-push_exist_repo=Veikt <code>push</code> darbību eksistējošam repozitorijam no komandrindas\r
+push_exist_repo=Nosūtīt izmaiņas no komandrindas eksistējošam repozitorijam\r
 \r
 branch=Atzars\r
 tree=Koks\r
@@ -354,7 +354,7 @@ settings.payload_url=Vērtuma URL
 settings.content_type=Satura tips\r
 settings.secret=Noslēpums\r
 settings.event_desc=Kādu notikumu rezultātā tiktu izsaukts tīmekļā āķis?\r
-settings.event_push_only=Tikai <code>push</code> notikums.\r
+settings.event_push_only=Tikai izmaiņu nosūtīšanas notikumiem.\r
 settings.active=Aktīvs\r
 settings.active_helper=Tiks nosūtīti notikuma dati, kad nostrādās šis āķis.\r
 settings.add_hook_success=Jauns tīmekļa āķis tika veiksmīgi pievienots.\r
@@ -430,7 +430,7 @@ teams.leave=Atstāt
 teams.read_access=Lasīšanas piekļuve\r
 teams.read_access_helper=Komanda varēs skatīties un klonēt šīs organizācijas repozitorijus.\r
 teams.write_access=Rakstīšanas piekļuve\r
-teams.write_access_helper=Komanda varēs skatīties un klonēt, kā arī veikt <code>push</code> darbību šīs organizācijas repozitorijiem.\r
+teams.write_access_helper=Komanda varēs skatīties un klonēt, kā arī nosūtīt izmaiņas šīs organizācijas repozitorijiem.\r
 teams.admin_access=Administratora piekļuve\r
 teams.admin_access_helper=Šī komanda varēs veikt push/pull komandas tās repozitorijiem, kā arī tiem pievienot citus līdzstrādniekus.\r
 teams.no_desc=Komandai nav apraksta\r
@@ -444,7 +444,7 @@ teams.delete_team_title=Komandas dzēšana
 teams.delete_team_desc=Komanda tiks dzēsta, vai vēlaties turpināt? Komandas biedri var zaudēt piekļuvi dažiem vai pat visiem repozitorijiem.\r
 teams.delete_team_success=Komanda tika veiksmīgi izdzēsta.\r
 teams.read_permission_desc=Šai komandai ir <strong>lasīšanas</strong> tiesības: dalībnieki var skatīties un klonēt komandas repozitorijus.\r
-teams.write_permission_desc=Šai komandai ir <strong>rakstīšanas</strong> tiesības: dalībnieki var lasīt un veikt <code>push</code> komandas repozitorijiem.\r
+teams.write_permission_desc=Šai komandai ir <strong>rakstīšanas</strong> tiesības: dalībnieki var lasīt un nosūtīt izmaiņas repozitorijiem.\r
 teams.admin_permission_desc=Šai komandai ir <strong>administratora</strong> tiesības: dalībnieki var lasīt, rakstīt un pievienot citus dalībniekus komandas repozitorijiem.\r
 teams.repositories=Komandas repozitoriji\r
 teams.add_team_repository=Pievienot komandas repozitoriju\r
@@ -529,12 +529,12 @@ users.delete_account=Dzēst šo kontu
 users.still_own_repo=Šis konts ir vismaz viena repozitorija īpašnieks, tos sākumā ir nepieciešams izdzēst vai nomainīt to īpašnieku.\r
 users.still_has_org=Šis konts ir vismaz vienas organizācijas biedrs, sākumā nepieciešams pamest vai izdzēst šo organizāciju.\r
 \r
-orgs.org_manage_panel=Organizācijas pārvaldīšanas panelis\r
+orgs.org_manage_panel=Organizāciju pārvaldības panelis\r
 orgs.name=Nosaukums\r
 orgs.teams=Komandas\r
 orgs.members=Dalībnieki\r
 \r
-repos.repo_manage_panel=Repozitorija pārvaldes panelis\r
+repos.repo_manage_panel=Repozitoriju pārvaldības panelis\r
 repos.owner=Īpašnieks\r
 repos.name=Vārds\r
 repos.private=Privāts\r
@@ -542,7 +542,7 @@ repos.watches=Vērošana
 repos.stars=Atzīmētās zvaigznītes\r
 repos.issues=Problēmas\r
 \r
-auths.auth_manage_panel=Autorizācijas pārvaldīšanas panelis\r
+auths.auth_manage_panel=Autorizāciju pārvaldības panelis\r
 auths.new=Pievienot jaunu autorizācijas veidu\r
 auths.name=Nosaukums\r
 auths.type=Veids\r
@@ -580,9 +580,9 @@ config.offline_mode=Bezsaistes režīms
 config.disable_router_log=Atspējot maršrutētāja žurnalizēšanu\r
 config.run_user=Izpildes lietotājs\r
 config.run_mode=Izpildes režīms\r
-config.repo_root_path=Repozitorija saknes ceļš\r
-config.static_file_root_path=Statisko failu direktorija\r
-config.log_file_root_path=Žurnalizēšānas failu direktorija\r
+config.repo_root_path=Repozitoriju glabāšanas vieta\r
+config.static_file_root_path=Statisko failu atrašanās vieta\r
+config.log_file_root_path=Žurnalizēšanas failu glabāšanas vieta\r
 config.script_type=Skripta veids\r
 config.reverse_auth_user=Reversā lietotāja autentifikācija\r
 config.db_config=Datu bāzes konfigurācija\r
@@ -650,12 +650,12 @@ notices.op=Op.
 notices.delete_success=Sistēmas paziņojums tika veiksmīgi izdzēsts.\r
 \r
 [action]\r
-create_repo=izveidots repozitorijs <a href="%s/%s">%s</a>\r
-commit_repo=veica <code>push</code> atzaram <a href="%s/%s/src/%s">%s</a> repozitorijam <a href="%s/%s">%s</a>\r
-create_issue=reģistrēta problēma <a href="%s/%s/issues/%s">%s#%s</a>\r
-comment_issue=pievienots komentārs problēmai <a href="%s/%s/issues/%s">%s#%s</a>\r
-transfer_repo=Mainīja repozitorija īpašnieku <code>%s</code> uz <a href="/%s%s">%s</a>\r
-push_tag=veica <code>push</code> birkai <a href="%s/%s/src/%s">%s</a> uz <a href="%s/%s">%s</a>\r
+create_repo=izveidoja repozitoriju <a href="%s/%s">%s</a>\r
+commit_repo=veica izmaiņu nosūtīšanu atzaram <a href="%s/%s/src/%s">%s</a> repozitorijā <a href="%s/%s">%s</a>\r
+create_issue=reģistrēja problēmu <a href="%s/%s/issues/%s">%s#%s</a>\r
+comment_issue=pievienoja komentāru problēmai <a href="%s/%s/issues/%s">%s#%s</a>\r
+transfer_repo=mainīja repozitorija <code>%s</code> īpašnieku uz <a href="/%s%s">%s</a>\r
+push_tag=pievienoja birku <a href="%s/%s/src/%s">%s</a> repozitorijam <a href="%s/%s">%s</a>\r
 compare_2_commits=Veikt salīdzināšanu starp šīm 2 revīzijām\r
 \r
 [tool]\r
@@ -665,7 +665,7 @@ now=tagad
 1s=1 sekundi %s\r
 1m=1 minūti %s\r
 1h=1 stundu %s\r
-1d=1 diena %s\r
+1d=1 dienu %s\r
 1w=1 nedēļu %s\r
 1mon=1 mēnesi %s\r
 1y=1 gadu %s\r
diff --git a/gogs.go b/gogs.go
index 5097309e44484aee9729aa2237c1783f12eb67f0..c3f264c2d62524c6dcf1afe9eb454785165b3a33 100644 (file)
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
        "github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.5.8.1205 Beta"
+const APP_VER = "0.5.8.1209 Beta"
 
 func init() {
        runtime.GOMAXPROCS(runtime.NumCPU())
index e093e7ab1bb5558e164945423cad248f4bec183c..4bbe3c0e8f4977af4a308e96d299aee40ca60d0e 100644 (file)
@@ -6,6 +6,7 @@ package models
 
 import (
        "bufio"
+       "bytes"
        "fmt"
        "io"
        "os"
@@ -15,8 +16,10 @@ import (
 
        "github.com/Unknwon/com"
 
+       "github.com/gogits/gogs/modules/base"
        "github.com/gogits/gogs/modules/git"
        "github.com/gogits/gogs/modules/log"
+       "github.com/gogits/gogs/modules/mahonia"
        "github.com/gogits/gogs/modules/process"
 )
 
@@ -80,6 +83,8 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff
 
                leftLine, rightLine int
                isTooLong           bool
+               // FIXME: use first 30 lines to detect file encoding. Should use cache in the future.
+               buf bytes.Buffer
        )
 
        diff := &Diff{Files: make([]*DiffFile, 0)}
@@ -97,6 +102,11 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff
 
                i = i + 1
 
+               // FIXME: use first 30 lines to detect file encoding.
+               if i <= 30 {
+                       buf.WriteString(line)
+               }
+
                // Diff data too large, we only show the first about maxlines lines
                if i == maxlines {
                        isTooLong = true
@@ -181,6 +191,21 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff
                }
        }
 
+       // FIXME: use first 30 lines to detect file encoding.
+       charset, err := base.DetectEncoding(buf.Bytes())
+       if charset != "utf8" && err == nil {
+               decoder := mahonia.NewDecoder(charset)
+               if decoder != nil {
+                       for _, f := range diff.Files {
+                               for _, sec := range f.Sections {
+                                       for _, l := range sec.Lines {
+                                               l.Content = decoder.ConvertString(l.Content)
+                                       }
+                               }
+                       }
+               }
+       }
+
        return diff, nil
 }
 
index c85bd020691a4fa2d36520a9a0f89b189414ac3f..b2f94c480b1e9bcd7f720d370aaa6e15c3594344 100644 (file)
@@ -154,7 +154,7 @@ func RenderSpecialLink(rawBytes []byte, urlPrefix string) []byte {
                rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(
                        ` <a href="%s">#%s</a>`, m, ShortSha(string(m[i+7:j])))), -1)
        }
-       rawBytes = RenderissueIndexPattern(rawBytes, urlPrefix)
+       rawBytes = RenderIssueIndexPattern(rawBytes, urlPrefix)
        rawBytes = RenderSha1CurrentPattern(rawBytes, urlPrefix)
        return rawBytes
 }
@@ -168,7 +168,7 @@ func RenderSha1CurrentPattern(rawBytes []byte, urlPrefix string) []byte {
        return rawBytes
 }
 
-func RenderissueIndexPattern(rawBytes []byte, urlPrefix string) []byte {
+func RenderIssueIndexPattern(rawBytes []byte, urlPrefix string) []byte {
        ms := issueIndexPattern.FindAll(rawBytes, -1)
        for _, m := range ms {
                rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(
index 446d01dd09ee49db736dbc58264d86773a32e43b..462269aa4e39240775ff85534141d6f88486c9df 100644 (file)
@@ -47,18 +47,23 @@ func ShortSha(sha1 string) string {
        return sha1
 }
 
-func ToUtf8WithErr(content []byte) (error, string) {
+func DetectEncoding(content []byte) (string, error) {
        detector := chardet.NewTextDetector()
        result, err := detector.DetectBest(content)
+       return result.Charset, err
+}
+
+func ToUtf8WithErr(content []byte) (error, string) {
+       charset, err := DetectEncoding(content)
        if err != nil {
                return err, ""
        }
 
-       if result.Charset == "utf8" {
+       if charset == "utf8" {
                return nil, string(content)
        }
 
-       decoder := mahonia.NewDecoder(result.Charset)
+       decoder := mahonia.NewDecoder(charset)
        if decoder != nil {
                return nil, decoder.ConvertString(string(content))
        }
index 82be6881fa3710877f9b69dea78673c990674ce8..619c6c815c102bfcc760014d81a7e26571feac18 100644 (file)
@@ -33,6 +33,16 @@ func RefCommits(ctx *middleware.Context) {
        }
 }
 
+func RenderIssueLinks(oldCommits *list.List, repoLink string) *list.List {
+       newCommits := list.New()
+       for e := oldCommits.Front(); e != nil; e = e.Next() {
+               c := e.Value.(*git.Commit)
+               c.CommitMessage = string(base.RenderIssueIndexPattern([]byte(c.CommitMessage), repoLink))
+               newCommits.PushBack(c)
+       }
+       return newCommits
+}
+
 func Commits(ctx *middleware.Context) {
        ctx.Data["IsRepoToolbarCommits"] = true
 
@@ -86,16 +96,6 @@ func Commits(ctx *middleware.Context) {
        ctx.HTML(200, COMMITS)
 }
 
-func RenderIssueLinks(oldCommits *list.List, repoLink string) *list.List {
-       newCommits := list.New()
-       for e := oldCommits.Front(); e != nil; e = e.Next() {
-               c := e.Value.(*git.Commit)
-               c.CommitMessage = string(base.RenderissueIndexPattern([]byte(c.CommitMessage), repoLink))
-               newCommits.PushBack(c)
-       }
-       return newCommits
-}
-
 func SearchCommits(ctx *middleware.Context) {
        ctx.Data["IsSearchPage"] = true
        ctx.Data["IsRepoToolbarCommits"] = true
@@ -206,7 +206,7 @@ func Diff(ctx *middleware.Context) {
        commitId := ctx.Repo.CommitId
 
        commit := ctx.Repo.Commit
-       commit.CommitMessage = string(base.RenderissueIndexPattern([]byte(commit.CommitMessage), ctx.Repo.RepoLink))
+       commit.CommitMessage = string(base.RenderIssueIndexPattern([]byte(commit.CommitMessage), ctx.Repo.RepoLink))
        diff, err := models.GetDiffCommit(models.RepoPath(userName, repoName),
                commitId, setting.MaxGitDiffLines)
        if err != nil {
index 073eb5d74ebf84304405ec51b78f4726bef8051e..2fb411589aea64371b9f16254ded96b601d49042 100644 (file)
@@ -152,6 +152,11 @@ func Home(ctx *middleware.Context) {
                        }
                }
 
+               // Render issue index links.
+               for _, f := range files {
+                       c := f[1].(*git.Commit)
+                       c.CommitMessage = string(base.RenderIssueIndexPattern([]byte(c.CommitMessage), ctx.Repo.RepoLink))
+               }
                ctx.Data["Files"] = files
 
                var readmeFile *git.Blob
@@ -199,7 +204,7 @@ func Home(ctx *middleware.Context) {
                }
 
                lastCommit := ctx.Repo.Commit
-               lastCommit.CommitMessage = string(base.RenderissueIndexPattern([]byte(lastCommit.CommitMessage), ctx.Repo.RepoLink))
+               lastCommit.CommitMessage = string(base.RenderIssueIndexPattern([]byte(lastCommit.CommitMessage), ctx.Repo.RepoLink))
                if len(treePath) > 0 {
                        c, err := ctx.Repo.Commit.GetCommitOfRelPath(treePath)
                        if err != nil {
index 9808b629711f925fe201596dfcc54532744781fa..f7e9d476cc936bb92bd19f2ad21b973c7aa86352 100644 (file)
@@ -1 +1 @@
-0.5.8.1205 Beta
\ No newline at end of file
+0.5.8.1209 Beta
\ No newline at end of file
index b3abbb6b78f694c29e7a0d26aca49c340bec8420..a3ae2a10dd99283ba76cd04ec06f0f03e7e40f4d 100644 (file)
@@ -38,8 +38,8 @@
                                                        </table>
                                                        {{if or .LastPageNum .NextPageNum}}
                                                        <ul class="pagination">
-                                                           {{if .LastPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/users?p={{.LastPageNum}}">&laquo; {{.i18n.Tr "admin.prev"}}</a></li>{{end}}
-                                                           {{if .NextPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/users?p={{.NextPageNum}}">&raquo; {{.i18n.Tr "admin.next"}}</a></li>{{end}}
+                                                           {{if .LastPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/notices?p={{.LastPageNum}}">&laquo; {{.i18n.Tr "admin.prev"}}</a></li>{{end}}
+                                                           {{if .NextPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/notices?p={{.NextPageNum}}">&raquo; {{.i18n.Tr "admin.next"}}</a></li>{{end}}
                                                        </ul>
                                                        {{end}}
                                                </div>
index 2726b94d9d389c8b9ca4a4c14e55661d64f95151..225175e8d182edad7ef0eda0ac9394f327bb262f 100644 (file)
                             </td>
                             
                             <td class="lines-code">
-                                <pre>{{ToUtf8 .Content}}</pre>
+                                <pre>{{.Content}}</pre>
                             </td>
                         </tr>
                         {{end}}
index 8160c17b83697541ce487b31d4e7c74467c7d86e..fed91effa7743401dddf87da5bafb19a86b51570 100644 (file)
@@ -1,7 +1,7 @@
 <table id="repo-files-table" class="table-border table-block table-radius">
     <thead>
     <tr>
-        <th colspan="4" class="clear">
+        <th colspan="5" class="clear">
             <span class="author left">
                 {{if .LastCommitUser}}
                 <img class="avatar-24 radius" src="{{.LastCommitUser.AvatarLink}}" />