]> source.dussan.org Git - gitea.git/commitdiff
feat: add check misspelling (#1877)
authorBo-Yi Wu <appleboy.tw@gmail.com>
Mon, 5 Jun 2017 07:49:46 +0000 (02:49 -0500)
committerGitHub <noreply@github.com>
Mon, 5 Jun 2017 07:49:46 +0000 (02:49 -0500)
29 files changed:
.drone.yml
.drone.yml.sig
Makefile
cmd/serv.go
models/gpg_key_test.go
options/locale/locale_bg-BG.ini
options/locale/locale_cs-CZ.ini
options/locale/locale_de-DE.ini
options/locale/locale_en-US.ini
options/locale/locale_es-ES.ini
options/locale/locale_fi-FI.ini
options/locale/locale_fr-FR.ini
options/locale/locale_it-IT.ini
options/locale/locale_ja-JP.ini
options/locale/locale_ko-KR.ini
options/locale/locale_lv-LV.ini
options/locale/locale_nl-NL.ini
options/locale/locale_pl-PL.ini
options/locale/locale_pt-BR.ini
options/locale/locale_ru-RU.ini
options/locale/locale_sr-SP.ini
options/locale/locale_sv-SE.ini
options/locale/locale_tr-TR.ini
options/locale/locale_zh-CN.ini
options/locale/locale_zh-HK.ini
options/locale/locale_zh-TW.ini
routers/api/v1/user/gpg_key.go
routers/repo/view.go
routers/user/setting.go

index c6b789e171bff53693451cb51cad969ccb51f5f3..00810b8ad94fcfd51a108daae08a3660f4f456ef 100644 (file)
@@ -20,6 +20,7 @@ pipeline:
       - make generate
       - make vet
       - make lint
+      - make misspell-check
       - make test-vendor
       - make build
     when:
index 16c9966d62204dc07843586e3d7fb721ba8aa54c..9c301a9ec3485ba78e1c302b01e4c8f8e5f0f173 100644 (file)
@@ -1 +1 @@
-eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2NvZGUuZ2l0ZWEuaW8vZ2l0ZWEKCnBpcGVsaW5lOgogIGNsb25lOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0CiAgICBkZXB0aDogNTAKICAgIHRhZ3M6IHRydWUKCiAgYnVpbGQ6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gYXBrIC1VIGFkZCBvcGVuc3NoLWNsaWVudAogICAgICAtIG1ha2UgY2xlYW4KICAgICAgLSBtYWtlIGdlbmVyYXRlCiAgICAgIC0gbWFrZSB2ZXQKICAgICAgLSBtYWtlIGxpbnQKICAgICAgLSBtYWtlIHRlc3QtdmVuZG9yCiAgICAgIC0gbWFrZSBidWlsZAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICB0ZXN0OgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEgc3FsaXRlCiAgICAgIEdPUEFUSDogL3Nydi9hcHAKICAgIGNvbW1hbmRzOgogICAgICAtIGFwayAtVSBhZGQgb3BlbnNzaC1jbGllbnQKICAgICAgLSBtYWtlIHRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgdGVzdC1jb3ZlcmFnZToKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBhcGsgLVUgYWRkIG9wZW5zc2gtY2xpZW50CiAgICAgIC0gbWFrZSB0ZXN0LWNvdmVyYWdlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBtYXN0ZXIKCiAgdGVzdC1zcWxpdGU6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHRlc3Qtc3FsaXRlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtbXlzcWw6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHRlc3QtbXlzcWwKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgdGVzdC1wZ3NxbDoKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhCiAgICAgIEdPUEFUSDogL3Nydi9hcHAKICAgIGNvbW1hbmRzOgogICAgICAtIG1ha2UgdGVzdC1wZ3NxbAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICBzdGF0aWM6CiAgICBpbWFnZToga2FyYWxhYmUveGdvLWxhdGVzdDpsYXRlc3QKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHJlbGVhc2UKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgY292ZXJhZ2U6CiAgICBpbWFnZTogcGx1Z2lucy9jb3ZlcmFnZQogICAgc2VydmVyOiBodHRwczovL2NvdmVyYWdlLmdpdGVhLmlvCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBtYXN0ZXIKCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiBnaXRlYS9naXRlYQogICAgdGFnczogWyAnJHtEUk9ORV9UQUcjI3Z9JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IGdpdGVhL2dpdGVhCiAgICB0YWdzOiBbICcke0RST05FX0JSQU5DSCMjcmVsZWFzZS92fScgXQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyByZWxlYXNlLyogXQoKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IGdpdGVhL2dpdGVhCiAgICB0YWdzOiBbICdsYXRlc3QnIF0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgbWFzdGVyIF0KCiAgcmVsZWFzZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzdHJpcF9wcmVmaXg6IGRpc3QvcmVsZWFzZS8KICAgIHNvdXJjZTogZGlzdC9yZWxlYXNlLyoKICAgIHRhcmdldDogL2dpdGVhLyR7RFJPTkVfVEFHIyN2fQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgdGFnIF0KICAgICAgYnJhbmNoOiBbIHJlZnMvdGFncy8qIF0KCiAgcmVsZWFzZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzdHJpcF9wcmVmaXg6IGRpc3QvcmVsZWFzZS8KICAgIHNvdXJjZTogZGlzdC9yZWxlYXNlLyoKICAgIHRhcmdldDogL2dpdGVhLyR7RFJPTkVfQlJBTkNIIyNyZWxlYXNlL3Z9CiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIHJlbGVhc2UvKiBdCgogIHJlbGVhc2U6CiAgICBpbWFnZTogcGx1Z2lucy9zMwogICAgcGF0aF9zdHlsZTogdHJ1ZQogICAgc3RyaXBfcHJlZml4OiBkaXN0L3JlbGVhc2UvCiAgICBzb3VyY2U6IGRpc3QvcmVsZWFzZS8qCiAgICB0YXJnZXQ6IC9naXRlYS9tYXN0ZXIKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgbWFzdGVyIF0KCiAgZ2l0aHViOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0aHViLXJlbGVhc2UKICAgIGZpbGVzOgogICAgICAtIGRpc3QvcmVsZWFzZS8qCiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICBnaXR0ZXI6CiAgICBpbWFnZTogcGx1Z2lucy9naXR0ZXIKCnNlcnZpY2VzOgogIG15c3FsOgogICAgaW1hZ2U6IG15c3FsOjUuNwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTVlTUUxfREFUQUJBU0U9dGVzdAogICAgICAtIE1ZU1FMX0FMTE9XX0VNUFRZX1BBU1NXT1JEPXllcwogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICBwZ3NxbDoKICAgIGltYWdlOiBwb3N0Z3Jlczo5LjUKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX0RCPXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0K.UCCkreASOg6mhtF1840XuN2Qvf4vAYeJsOY-LNe9GZk
\ No newline at end of file
+eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2NvZGUuZ2l0ZWEuaW8vZ2l0ZWEKCnBpcGVsaW5lOgogIGNsb25lOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0CiAgICBkZXB0aDogNTAKICAgIHRhZ3M6IHRydWUKCiAgYnVpbGQ6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gYXBrIC1VIGFkZCBvcGVuc3NoLWNsaWVudAogICAgICAtIG1ha2UgY2xlYW4KICAgICAgLSBtYWtlIGdlbmVyYXRlCiAgICAgIC0gbWFrZSB2ZXQKICAgICAgLSBtYWtlIGxpbnQKICAgICAgLSBtYWtlIG1pc3NwZWxsLWNoZWNrCiAgICAgIC0gbWFrZSB0ZXN0LXZlbmRvcgogICAgICAtIG1ha2UgYnVpbGQKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgdGVzdDoKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBhcGsgLVUgYWRkIG9wZW5zc2gtY2xpZW50CiAgICAgIC0gbWFrZSB0ZXN0CiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtY292ZXJhZ2U6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gYXBrIC1VIGFkZCBvcGVuc3NoLWNsaWVudAogICAgICAtIG1ha2UgdGVzdC1jb3ZlcmFnZQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogbWFzdGVyCgogIHRlc3Qtc3FsaXRlOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LXNxbGl0ZQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICB0ZXN0LW15c3FsOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LW15c3FsCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtcGdzcWw6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHRlc3QtcGdzcWwKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgc3RhdGljOgogICAgaW1hZ2U6IGthcmFsYWJlL3hnby1sYXRlc3Q6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSByZWxlYXNlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIGNvdmVyYWdlOgogICAgaW1hZ2U6IHBsdWdpbnMvY292ZXJhZ2UKICAgIHNlcnZlcjogaHR0cHM6Ly9jb3ZlcmFnZS5naXRlYS5pbwogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogbWFzdGVyCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJyR7RFJPTkVfVEFHIyN2fScgXQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgdGFnIF0KICAgICAgYnJhbmNoOiBbIHJlZnMvdGFncy8qIF0KCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiBnaXRlYS9naXRlYQogICAgdGFnczogWyAnJHtEUk9ORV9CUkFOQ0gjI3JlbGVhc2Uvdn0nIF0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgcmVsZWFzZS8qIF0KCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiBnaXRlYS9naXRlYQogICAgdGFnczogWyAnbGF0ZXN0JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIG1hc3RlciBdCgogIHJlbGVhc2U6CiAgICBpbWFnZTogcGx1Z2lucy9zMwogICAgcGF0aF9zdHlsZTogdHJ1ZQogICAgc3RyaXBfcHJlZml4OiBkaXN0L3JlbGVhc2UvCiAgICBzb3VyY2U6IGRpc3QvcmVsZWFzZS8qCiAgICB0YXJnZXQ6IC9naXRlYS8ke0RST05FX1RBRyMjdn0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIHJlbGVhc2U6CiAgICBpbWFnZTogcGx1Z2lucy9zMwogICAgcGF0aF9zdHlsZTogdHJ1ZQogICAgc3RyaXBfcHJlZml4OiBkaXN0L3JlbGVhc2UvCiAgICBzb3VyY2U6IGRpc3QvcmVsZWFzZS8qCiAgICB0YXJnZXQ6IC9naXRlYS8ke0RST05FX0JSQU5DSCMjcmVsZWFzZS92fQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyByZWxlYXNlLyogXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvbWFzdGVyCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIG1hc3RlciBdCgogIGdpdGh1YjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdGh1Yi1yZWxlYXNlCiAgICBmaWxlczoKICAgICAgLSBkaXN0L3JlbGVhc2UvKgogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgdGFnIF0KICAgICAgYnJhbmNoOiBbIHJlZnMvdGFncy8qIF0KCiAgZ2l0dGVyOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0dGVyCgpzZXJ2aWNlczoKICBteXNxbDoKICAgIGltYWdlOiBteXNxbDo1LjcKICAgIGVudmlyb25tZW50OgogICAgICAtIE1ZU1FMX0RBVEFCQVNFPXRlc3QKICAgICAgLSBNWVNRTF9BTExPV19FTVBUWV9QQVNTV09SRD15ZXMKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgcGdzcWw6CiAgICBpbWFnZTogcG9zdGdyZXM6OS41CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBQT1NUR1JFU19EQj10ZXN0CiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCg.L18ZdBOuT65qKtXjuKNRjGy0iRJkefxOGLnyexdmoGw
\ No newline at end of file
index 6b0c0327a460377c5916a44f5769c8111ebc8c08..2566677d6854020000c0e8e34852543913afdb0a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,7 @@ LDFLAGS := -X "main.Version=$(shell git describe --tags --always | sed 's/-/+/'
 
 PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations,$(shell go list ./... | grep -v /vendor/))
 SOURCES ?= $(shell find . -name "*.go" -type f)
+GOFILES := $(shell find . -name "*.go" -type f -not -path "./vendor/*")
 
 TAGS ?=
 
@@ -73,6 +74,20 @@ lint:
        fi
        for PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;
 
+.PHONY: misspell-check
+misspell-check:
+       @hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
+               go get -u github.com/client9/misspell/cmd/misspell; \
+       fi
+       misspell -error -i unknwon $(GOFILES)
+
+.PHONY: misspell
+misspell:
+       @hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
+               go get -u github.com/client9/misspell/cmd/misspell; \
+       fi
+       misspell -w -i unknwon $(GOFILES)
+
 .PHONY: test
 test:
        go test $(PACKAGES)
index 277790d4cadbf765224742e5675200895183ae34..4e3b9de2f9223dafa344315bc5e22ca34e7c387b 100644 (file)
@@ -185,7 +185,7 @@ func runServ(c *cli.Context) error {
                } else if lfsVerb == "download" {
                        requestedMode = models.AccessModeRead
                } else {
-                       fail("Unknown LFS verb", "Unkown lfs verb %s", lfsVerb)
+                       fail("Unknown LFS verb", "Unknown lfs verb %s", lfsVerb)
                }
        }
 
index d291ce91c0ef468b92789d25df250dbcc9b68bd5..507cfabd2308c17fff33564c25181980809b9c14 100644 (file)
@@ -140,7 +140,7 @@ parent fd3577542f7ad1554c7c7c0eb86bb57a1324ad91
 author Antoine GIRARD <sapk@sapk.fr> 1489013107 +0100
 committer Antoine GIRARD <sapk@sapk.fr> 1489013107 +0100
 
-Unkonwn GPG key with good email
+Unknown GPG key with good email
 `
        //Reading Sign
        goodSig, err := extractSignature(testGoodSigArmor)
index a4fbd680909cbbde2ba48f18b46df174d91845f6..14a14b1dc196183af67ed5d9c7de212808286d46 100644 (file)
@@ -330,7 +330,7 @@ tokens_desc=Генерирани API ключове, които могат да
 new_token_desc=Всеки API ключ ще има пълен достъп до Вашия профил.
 token_name=Име на API ключ
 generate_token=Генериране на API ключ
-generate_token_succees=Успешно е генериран API ключ за достъп. Уверете се, че сте го копирали, тъй като няма да можете да го видите отново!
+generate_token_success=Успешно е генериран API ключ за достъп. Уверете се, че сте го копирали, тъй като няма да можете да го видите отново!
 delete_token=Изтрий
 access_token_deletion=Изтрий индивидуален API ключ за достъп
 access_token_deletion_desc=При изтриване на този индивидуален API ключ за достъп ще се премахнат всички свързани права на приложението. Желаете ли да продължите?
index 05db4b1f7593a1281371dba8695bcd71f930f141..e3843d8ee4f5e0b05a869404a83a9350b9c74993 100644 (file)
@@ -330,7 +330,7 @@ tokens_desc=Poukázky, které jste vygeneroval, mohou být použity pro přístu
 new_token_desc=Každá poukázka má úplný přístup k vašemu účtu.
 token_name=Název poukázky
 generate_token=Vygenerovat poukázku
-generate_token_succees=Vaše přístupová poukázka byl úspěšně vygenerován. Nyní si ji zkopírujte, neboť později to již nebude možné!
+generate_token_success=Vaše přístupová poukázka byl úspěšně vygenerován. Nyní si ji zkopírujte, neboť později to již nebude možné!
 delete_token=Smazat
 access_token_deletion=Smazání osobní přístupové poukázky
 access_token_deletion_desc=Smazáním této osobní přístupové poukázky odstraní všechen návazný přístup aplikace. Chcete pokračovat?
index efeb859fca449cd1831f9af7e8621bb0a9eae461..8741334889cd533fb15f33b3819ec26d94ad146d 100644 (file)
@@ -356,7 +356,7 @@ tokens_desc=Die von Ihnen erzeugten Token können zum Zugriff auf die Gitea-API
 new_token_desc=Jeder Token ermöglicht vollen Zugriff auf dein Konto.
 token_name=Token-Name
 generate_token=Token generieren
-generate_token_succees=Dein Zugangs-Token wurde erfolgreich generiert! Stelle sicher, dass du den Token kopiert hast, da du ihn später nicht mehr betrachten kannst!
+generate_token_success=Dein Zugangs-Token wurde erfolgreich generiert! Stelle sicher, dass du den Token kopiert hast, da du ihn später nicht mehr betrachten kannst!
 delete_token=Löschen
 access_token_deletion=Persönlichen Token entfernen
 access_token_deletion_desc=Das Löschen dieses persönlichen Zugangs-Tokens wird alle zugehörigen Zugriffe der Anwendung entfernen. Möchtest du fortfahren?
index 00b374835f7b5583c0dbc9d3177a8363524e4e74..c2df7f27dce32a25bd2b789befcbe1a5c69c375d 100644 (file)
@@ -402,7 +402,7 @@ tokens_desc = Tokens you have generated which can be used to access the Gitea AP
 new_token_desc = Each token will have full access to your account.
 token_name = Token Name
 generate_token = Generate Token
-generate_token_succees = Your access token was successfully generated! Be sure to copy it right now, because you will not be able to see it again later!
+generate_token_success = Your access token was successfully generated! Be sure to copy it right now, because you will not be able to see it again later!
 delete_token = Delete
 access_token_deletion = Personal Access Token Deletion
 access_token_deletion_desc = Delete this personal access token will revoke access for any application using this token. Do you want to continue?
index 97e562917770b6b3a42c28ad2820bcd682a525ca..b0de46070d5cfc5be1ee8b46b66d92f7695ebb84 100644 (file)
@@ -324,7 +324,7 @@ tokens_desc=Tokens usados para acceder al API de Gitea.
 new_token_desc=Desde ahora, todos los tokens tendrán acceso completo a tu cuenta.
 token_name=Nombre del Token
 generate_token=Generar Token
-generate_token_succees=¡Los nuevos tokens de acceso se han generado correctamente! Asegúrate de copiar tu nuevo token de acceso personal. ¡No podrás verlo de nuevo!
+generate_token_success=¡Los nuevos tokens de acceso se han generado correctamente! Asegúrate de copiar tu nuevo token de acceso personal. ¡No podrás verlo de nuevo!
 delete_token=Eliminar
 access_token_deletion=Borrado de Token de Acceso Personal
 access_token_deletion_desc=Si elimina este token de acceso personal la aplicación asociada perderá el permiso de acceso. ¿Desea continuar?
index 884f1d9d35efe3a3f6f4018cca1c1efccaaf028c..ec8361b1410ab36ab3541db41f8867c6e486e14f 100644 (file)
@@ -330,7 +330,7 @@ tokens_desc=Luomiasi pääsymerkkejä voidaan käyttää Gitea APIn kanssa.
 new_token_desc=Joka pääsymerkillä on täysi pääsy tiliisi.
 token_name=Pääsymerkin nimi
 generate_token=Luo pääsymerkki
-generate_token_succees=Pääsymerkkisi luotiin onnistuneesti! Varmista että kopioit sen juuri nyt, koska et voi nähdä sitä uudelleen myöhemmin!
+generate_token_success=Pääsymerkkisi luotiin onnistuneesti! Varmista että kopioit sen juuri nyt, koska et voi nähdä sitä uudelleen myöhemmin!
 delete_token=Poista
 access_token_deletion=Henkilökohtaisen pääsymerkin poisto
 access_token_deletion_desc=Tämän henkilökohtaisen pääsymerkin poistaminen poistaa kaikki siihen liittyvät pääsyt sovellukseen. Haluatko jatkaa?
index 4e80257c11ca5297ed7afcf18c52ca588396e264..9e4c9c086d8e66dfde51538b22abcef68f7c0ad5 100644 (file)
@@ -353,7 +353,7 @@ tokens_desc=Jetons, que vous avez généré, qui peuvent être utilisés pour ac
 new_token_desc=Chaque Jeton donnera un accès complet à votre compte.
 token_name=Nom du jeton
 generate_token=Générer le jeton
-generate_token_succees=Nouveau jeton d'accès a été généré avec succès ! Assurez-vous de copier votre nouveau jeton d'accès personnel maintenant. Vous ne serez pas en mesure de le revoir !
+generate_token_success=Nouveau jeton d'accès a été généré avec succès ! Assurez-vous de copier votre nouveau jeton d'accès personnel maintenant. Vous ne serez pas en mesure de le revoir !
 delete_token=Supprimer
 access_token_deletion=Suppression du jeton d'accès
 access_token_deletion_desc=Supprimer ce jeton d'accès supprimera tous les accès de l'application. Voulez-vous continuer ?
index 29b9d2024cfbd638f68940a2b4e626dae76b940e..20ed3959d52cee31304692660ed0b800fabbad9f 100644 (file)
@@ -337,7 +337,7 @@ tokens_desc=I Token che hai generato e che possono essere utilizzati per acceder
 new_token_desc=Da questo momento, ogni token avrà pieno accesso al tuo account.
 token_name=Nome Token
 generate_token=Genera Token
-generate_token_succees=Nuovo token di accesso generato con successo! Assicurarsi di copiare il nuovo token di accesso personale ora: non sarà possibile visualizzarlo nuovamente!
+generate_token_success=Nuovo token di accesso generato con successo! Assicurarsi di copiare il nuovo token di accesso personale ora: non sarà possibile visualizzarlo nuovamente!
 delete_token=Elimina
 access_token_deletion=Eliminazione Token di accesso personale
 access_token_deletion_desc=Eliminare questo token di accesso personale rimuoverà tutti i relativi accessi di applicazione. Si desidera continuare?
index dc1012ac143f452402ba1c58c5f39d1dc3dbd4f8..868bf4e04e2cade7f5b83732a5178b8fdf28defc 100644 (file)
@@ -321,7 +321,7 @@ tokens_desc=生成したトークンを利用して Gitea の API にアクセ
 new_token_desc=今のところ、全てのトークンはあなたのアカウントにフルアクセスできます。
 token_name=トークン名
 generate_token=トークンを生成
-generate_token_succees=新しいアクセス トークンは正常に生成されました !今すぐあなたの新しいアクセス トークンをコピーしておいてください。二度と見ることはできませんので確認してください!
+generate_token_success=新しいアクセス トークンは正常に生成されました !今すぐあなたの新しいアクセス トークンをコピーしておいてください。二度と見ることはできませんので確認してください!
 delete_token=削除
 access_token_deletion=パーソナルアクセストークンの削除
 access_token_deletion_desc=パーソナルアクセストークンを削除すると、関連するアプリケーションのすべてのアクセスが削除されます。続行しますか?
index 04fa32934b01fee2c04426a941ab5bc59a8ebb83..deef0b29488632dce477066f2a48500b3a92286e 100644 (file)
@@ -328,7 +328,7 @@ tokens_desc=Gitea Api에 액세스 하는 데 사용할 수 있는 토큰입니
 new_token_desc=각 토큰은 당신의 모든 권한을 행사할 수 있습니다.
 token_name=토큰 이름
 generate_token=토큰 생성
-generate_token_succees=액세스 토큰이 생성되었습니다. 이번에만 확인할 수 있으니 잘 보관하세요.
+generate_token_success=액세스 토큰이 생성되었습니다. 이번에만 확인할 수 있으니 잘 보관하세요.
 delete_token=삭제
 access_token_deletion=개인 액세스 토큰 삭제
 access_token_deletion_desc=이 토큰을 사용하는 애플리케이션의 접근권한 또한 삭제됩니다. 계속 하시겠습니까?
index 5ca65957ed04a02842f21a6025de409315ac1c7e..7035c4da58ea96b9360aa099199b9aef351571f0 100644 (file)
@@ -330,7 +330,7 @@ tokens_desc=Taloni, kurus esat uzģenerējuši, kas var tikt izmantoti, lai piek
 new_token_desc=Pašlaik visiem taloniem ir pilna piekļuve Jūsu kontam.
 token_name=Talona nosaukums
 generate_token=Ģenerēt talonu
-generate_token_succees=Jauns piekļuves talons tika veiksmīgi uzģenerēts! Pārliecinieties, ka esat to nokopējis, jo to Jums vairāk nebūs iespēja izdarīt!
+generate_token_success=Jauns piekļuves talons tika veiksmīgi uzģenerēts! Pārliecinieties, ka esat to nokopējis, jo to Jums vairāk nebūs iespēja izdarīt!
 delete_token=Dzēst
 access_token_deletion=Personīgā piekļuves talona dzēšana
 access_token_deletion_desc=Dzēšot personīgo piekļuves talonu, tiks liegta piekļuve aplikācijām, kas to izmanto. Vai vēlaties turpināt?
index 0c497268b8cffb7a70eeb9e3024970c4fca5e7c0..534360eec5baf4dad1574c1e2b19612e746a9b1c 100644 (file)
@@ -329,7 +329,7 @@ tokens_desc=Tokens die u hebt gegenereerd om toegang tot de Gitea APIs te verkri
 new_token_desc=Alle tokens hebben volledig toegang tot uw account.
 token_name=Symbolische naam
 generate_token=Token genereren
-generate_token_succees=Nieuw toegangstoken is met succes gegenereerd! Kopieer uw toegangstoken nu. Dit is de enige keer dat u uw toegangstoken te zien krijgt!
+generate_token_success=Nieuw toegangstoken is met succes gegenereerd! Kopieer uw toegangstoken nu. Dit is de enige keer dat u uw toegangstoken te zien krijgt!
 delete_token=Verwijderen
 access_token_deletion=Persoonlijke toegangstoken verwijderen
 access_token_deletion_desc=Verwijderen van dit persoonlijke toegangstoken zal alle verwante toegang verwijderen. Wilt u doorgaan?
index 15a208af157bb9bfeea9b8388a2c00ad4428847b..6a10540e06497e3b1d3f602904dad46bd95dc6f1 100644 (file)
@@ -326,7 +326,7 @@ tokens_desc=Tokeny, które wygenerowałeś, mogą być użyte do dostępu do API
 new_token_desc=Jak na razie, każdy token zapewnia pełen dostęp do Twojego konta.
 token_name=Nazwa tokena
 generate_token=Wygeneruj token
-generate_token_succees=Nowy token dostępu został wygenerowany pomyślnie! Upewnij się, że teraz go skopiowałeś. Nie będziesz mógł go zobaczyć ponownie!
+generate_token_success=Nowy token dostępu został wygenerowany pomyślnie! Upewnij się, że teraz go skopiowałeś. Nie będziesz mógł go zobaczyć ponownie!
 delete_token=Usuń
 access_token_deletion=Usuwanie osobistego tokena dostępu
 access_token_deletion_desc=Usunięcie tego tokena osobistego dostęp spowoduje usunięcie wszystkich powiązanych dostępów do aplikacji. Czy chcesz kontynuować?
index 11aae9f4bbaf0cf96e4ab542342809de1a50301c..03a20cd169a3bc144a2ce9bed3260962452acbd6 100644 (file)
@@ -356,7 +356,7 @@ tokens_desc=Tokens gerados por você que podem ser usados para acessar a API do
 new_token_desc=Por enquanto, todo token terá acesso completo à sua conta.
 token_name=Nome do token
 generate_token=Gerar token
-generate_token_succees=Novo token de acesso gerado com sucesso! Certifique-se de copiar seu novo token de acesso pessoal agora. Você não poderá vê-lo novamente!
+generate_token_success=Novo token de acesso gerado com sucesso! Certifique-se de copiar seu novo token de acesso pessoal agora. Você não poderá vê-lo novamente!
 delete_token=Excluir
 access_token_deletion=Exclusão do token de acesso pessoal
 access_token_deletion_desc=Ao excluir este token de acesso pessoal será removido todos os acessos do aplicativo. Você deseja continuar?
index 2df1a5aba5f184d7d23722e6cfabc1635700d0cf..ed01472d564058a4c88f3c37d0c31e68b5bfe988 100644 (file)
@@ -337,7 +337,7 @@ tokens_desc=Созданные вами токены могут использо
 new_token_desc=Пока что каждый токен будет иметь полный доступ к вашей учетной записи.
 token_name=Имя маркера
 generate_token=Генерировать маркер
-generate_token_succees=Успешно создан новый токен доступа! Пожалуйста сделайте копию вашего нового токена персонального доступа. Вы не сможете увидеть его снова!
+generate_token_success=Успешно создан новый токен доступа! Пожалуйста сделайте копию вашего нового токена персонального доступа. Вы не сможете увидеть его снова!
 delete_token=Удалить
 access_token_deletion=Удаление личного токена доступа
 access_token_deletion_desc=Удаление этого персонального токена доступа приведет к удалению всех связанных прав доступа к приложению. Вы хотите продолжить?
index 2dc463f34637049dbac1ba522237bd7cdc98466b..46e4966cd7c2b00a333c762034bd8cf03927ae4e 100644 (file)
@@ -329,7 +329,7 @@ tokens_desc=Tокени се могу користити за приступ н
 new_token_desc=Сваки API токен ће имати пун приступ вашем налогу.
 token_name=Име токена
 generate_token=Генериши токен
-generate_token_succees=Успешно креиран нови токен! Молимо вас да направите копију овог токена, не ће се моћи видети накнадно!
+generate_token_success=Успешно креиран нови токен! Молимо вас да направите копију овог токена, не ће се моћи видети накнадно!
 delete_token=Уклони
 access_token_deletion=Уклоњење токена личног приступа
 access_token_deletion_desc=Уклоњење овог токена ће онемогућити сав приступ. Да ли желите да наставите?
index 679ad43782287abc55463a1e9f0d342818503e94..fad9efcf7e028e12278ee948e7e212a0917087f1 100644 (file)
@@ -353,7 +353,7 @@ tokens_desc=Tokens som du har genererat kan användas för åtkomst av Gitea API
 new_token_desc=Varje token har full tillgång till ditt konto.
 token_name=Tokennamn
 generate_token=Generera Token
-generate_token_succees=Din åtkomst-token har genererats! Se till att kopiera den nu, eftersom du inte kommer att kunna se den igen senare!
+generate_token_success=Din åtkomst-token har genererats! Se till att kopiera den nu, eftersom du inte kommer att kunna se den igen senare!
 delete_token=Radera
 access_token_deletion=Borttagning Av Personlig Åtkomsttoken
 access_token_deletion_desc=Borttagning av denna personliga åtkomsttoken kommer att ta bort all relaterad åtkomst för applikationer. Vill du fortsätta?
index 0f6cd8ef37e7eb151e6c04702d2ee1151fec851c..4b38ca54b63cf838079e4c70dfa5f2aef11a4f22 100644 (file)
@@ -321,7 +321,7 @@ tokens_desc=Ürettiğiniz erişim anahtarları, Gitea API'lerine erişimde kulla
 new_token_desc=Her bir erişim anahtarının hesabınıza tam erişim yetkisi olacaktır.
 token_name=Erişim Anahtarı İsmi
 generate_token=Erişim Anahtarı Üret
-generate_token_succees=Erişim anahtarınız başarıyla üretilmiştir! Bir daha göremeyeceğiniz için hemen şimdi bir yere kopyaladığınızdan emin olun!
+generate_token_success=Erişim anahtarınız başarıyla üretilmiştir! Bir daha göremeyeceğiniz için hemen şimdi bir yere kopyaladığınızdan emin olun!
 delete_token=Sil
 access_token_deletion=Kişisel Erişim Anahtarını Silme
 access_token_deletion_desc=Bu kişisel erişim anahtarını silerseniz uygulamanıza ilişkin tüm erişimler de kaldırılacaktır. Devam etmek istiyor musunuz?
index c9c3927a68225c0387ae9184ba2b631bb18cf2e8..39dc2ef4047061767e26e5434f83760f2a4219e5 100644 (file)
@@ -356,7 +356,7 @@ tokens_desc=您可以使用这些已生成的令牌来操作 Gitea API。
 new_token_desc=目前为止,任何令牌都对您的帐户拥有完整的操作权限。
 token_name=令牌名称
 generate_token=生成令牌
-generate_token_succees=新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次!
+generate_token_success=新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次!
 delete_token=删除令牌
 access_token_deletion=删除个人操作令牌操作
 access_token_deletion_desc=删除该个人操作令牌将删除所有相关的应用程序的访问权限。是否继续?
index 57682525020451169af50c8f7569c1efe77860ed..d2391a0f1ea27b48c214ab2366256a55decf9ed7 100644 (file)
@@ -338,7 +338,7 @@ tokens_desc=您所產生的token將被用來存取Gitea APIs
 new_token_desc=目前為止,任何令牌都對您的帳戶擁有完整的操作權限。
 token_name=令牌名稱
 generate_token=生成令牌
-generate_token_succees=新的操作令牌生成成功!您必須立即複製到一個安全的地方,因為該令牌只會顯示一次!
+generate_token_success=新的操作令牌生成成功!您必須立即複製到一個安全的地方,因為該令牌只會顯示一次!
 delete_token=删除令牌
 access_token_deletion=刪除個人的連接token
 access_token_deletion_desc=刪除此連接token將會刪除與相關應用程式的連結。您想要繼續嗎?
index 4f337dc29fea2f2379641d777a0cb5ce114b8b40..5f9b2b8b23d86c5e06474e9b1249e59d438620be 100644 (file)
@@ -353,7 +353,7 @@ tokens_desc=您所產生的token將被用來存取Gitea APIs
 new_token_desc=目前為止,任何令牌都對您的帳戶擁有完整的操作權限。
 token_name=令牌名稱
 generate_token=生成令牌
-generate_token_succees=新的操作令牌生成成功!您必須立即複製到一個安全的地方,因為該令牌只會顯示一次!
+generate_token_success=新的操作令牌生成成功!您必須立即複製到一個安全的地方,因為該令牌只會顯示一次!
 delete_token=删除令牌
 access_token_deletion=刪除個人的連接token
 access_token_deletion_desc=刪除此連接token將會刪除與相關應用程式的連結。您想要繼續嗎?
index 678816ccda71a31ad7114b463ce543c653e277cf..8c5e171b7f2ee79b1f2d129bd6bae80a3c683336 100644 (file)
@@ -146,7 +146,7 @@ func HandleAddGPGKeyError(ctx *context.APIContext, err error) {
        case models.IsErrGPGKeyAccessDenied(err):
                ctx.Error(422, "", "You do not have access to this gpg key")
        case models.IsErrGPGKeyIDAlreadyUsed(err):
-               ctx.Error(422, "", "A key with the same keyid is allready in database")
+               ctx.Error(422, "", "A key with the same keyid is already in database")
        default:
                ctx.Error(500, "AddGPGKey", err)
        }
index 17aa8701e2bfb48a3ec33bf6b8ecdc0e2c1226e0..a3c42a0fdd2bf6cbcdac16a5fb25cb18ac2a2bda 100644 (file)
@@ -190,7 +190,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st
 
                tp := markup.Type(blob.Name())
                isSupportedMarkup := tp != ""
-               // FIXME: currently set IsMarkdown for compitable
+               // FIXME: currently set IsMarkdown for compatible
                ctx.Data["IsMarkdown"] = isSupportedMarkup
 
                readmeExist := isSupportedMarkup || markup.IsReadmeFile(blob.Name())
index f0cb9e78439e2def27b765f7abffe825fa47741f..1cc6012820765f815e64663ba3e58b1aeb3b80b8 100644 (file)
@@ -489,7 +489,7 @@ func SettingsApplicationsPost(ctx *context.Context, form auth.NewAccessTokenForm
                return
        }
 
-       ctx.Flash.Success(ctx.Tr("settings.generate_token_succees"))
+       ctx.Flash.Success(ctx.Tr("settings.generate_token_success"))
        ctx.Flash.Info(t.Sha1)
 
        ctx.Redirect(setting.AppSubURL + "/user/settings/applications")