浏览代码

Merge remote-tracking branch 'origin/master' into pkgr

crohr 9 年之前
父节点
当前提交
cbce2ec9cf
共有 56 个文件被更改,包括 1766 次插入378 次删除
  1. 2 2
      .bra.toml
  2. 2 1
      .travis.yml
  3. 13 1
      README.md
  4. 13 1
      README_ZH.md
  5. 2 2
      conf/app.ini
  6. 13 0
      conf/gitignore/PHP CakePHP
  7. 2 0
      conf/gitignore/PHP FuelPHP
  8. 4 0
      conf/gitignore/PHP Laravel
  9. 37 0
      conf/gitignore/PHP Symfony
  10. 6 0
      conf/gitignore/PHP Yii
  11. 20 0
      conf/gitignore/PHP ZendFramework
  12. 1 0
      conf/locale/TRANSLATORS
  13. 759 0
      conf/locale/locale_bg-BG.ini
  14. 30 12
      conf/locale/locale_de-DE.ini
  15. 19 3
      conf/locale/locale_en-US.ini
  16. 33 15
      conf/locale/locale_es-ES.ini
  17. 31 13
      conf/locale/locale_fr-FR.ini
  18. 32 14
      conf/locale/locale_ja-JP.ini
  19. 18 2
      conf/locale/locale_lv-LV.ini
  20. 32 14
      conf/locale/locale_nl-NL.ini
  21. 42 24
      conf/locale/locale_pl-PL.ini
  22. 32 14
      conf/locale/locale_pt-BR.ini
  23. 37 19
      conf/locale/locale_ru-RU.ini
  24. 18 2
      conf/locale/locale_zh-CN.ini
  25. 30 14
      conf/locale/locale_zh-HK.ini
  26. 1 1
      gogs.go
  27. 19 0
      models/access.go
  28. 9 0
      models/repo.go
  29. 8 1
      modules/auth/auth.go
  30. 1 1
      modules/auth/pam/pam.go
  31. 1 1
      modules/auth/pam/pam_stub.go
  32. 30 21
      modules/auth/user_form.go
  33. 60 10
      modules/bindata/bindata.go
  34. 7 1
      modules/middleware/context.go
  35. 0 0
      public/css/gogs.min.css
  36. 1 1
      public/css/semantic.min.css
  37. 42 2
      public/js/gogs.js
  38. 0 3
      public/js/jquery-1.10.1.min.js
  39. 0 0
      public/js/jquery-1.10.1.min.map
  40. 0 1
      public/js/jquery-1.11.2.min.js
  41. 1 0
      public/js/jquery-1.11.3.min.js
  42. 1 1
      public/js/semantic.min.js
  43. 12 0
      public/less/_base.less
  44. 8 0
      public/less/_form.less
  45. 33 0
      public/less/_install.less
  46. 3 1
      public/less/gogs.less
  47. 64 16
      routers/install.go
  48. 1 0
      routers/repo/issue.go
  49. 14 7
      routers/repo/setting.go
  50. 1 1
      templates/.VERSION
  51. 5 2
      templates/base/alert.tmpl
  52. 2 0
      templates/base/alert_old.tmpl
  53. 1 1
      templates/base/footer.tmpl
  54. 8 6
      templates/base/head.tmpl
  55. 2 2
      templates/base/head_old.tmpl
  56. 203 145
      templates/install.tmpl

+ 2 - 2
.bra.toml

@@ -14,7 +14,7 @@ watch_exts = [".go"]
 build_delay = 1500
 build_delay = 1500
 cmds = [
 cmds = [
 	#["go-bindata", "-o=modules/bindata/bindata.go", "-ignore=\\.DS_Store|README", "-pkg=bindata", "conf/..."],
 	#["go-bindata", "-o=modules/bindata/bindata.go", "-ignore=\\.DS_Store|README", "-pkg=bindata", "conf/..."],
-	["go", "install", "-tags", "sqlite cert"],# redis memcache
-	["go", "build", "-tags", "sqlite cert"],
+	["go", "install", "-tags", "sqlite"],# redis memcache cert pam
+	["go", "build", "-tags", "sqlite"],
 	["./gogs", "web"]
 	["./gogs", "web"]
 ]
 ]

+ 2 - 1
.travis.yml

@@ -9,8 +9,9 @@ go:
 before_install:
 before_install:
   - sudo apt-get update -qq
   - sudo apt-get update -qq
   - sudo apt-get install -y libpam-dev
   - sudo apt-get install -y libpam-dev
+  - go get github.com/msteinert/pam 
 
 
-script: go build -v
+script: go build -v -tags "pam"
 
 
 notifications:
 notifications:
   email:
   email:

+ 13 - 1
README.md

@@ -52,13 +52,25 @@ The goal of this project is to make the easiest, fastest, and most painless way
 - Drone CI integration
 - Drone CI integration
 - Supports MySQL, PostgreSQL and SQLite3
 - Supports MySQL, PostgreSQL and SQLite3
 - Social account login (GitHub, Google, QQ, Weibo)
 - Social account login (GitHub, Google, QQ, Weibo)
-- Multi-language support ([11 languages](https://crowdin.com/project/gogs))
+- Multi-language support ([13 languages](https://crowdin.com/project/gogs))
 
 
 ## System Requirements
 ## System Requirements
 
 
 - A cheap Raspberry Pi is powerful enough for basic functionality.
 - A cheap Raspberry Pi is powerful enough for basic functionality.
 - At least 2 CPU cores and 1GB RAM would be the baseline for teamwork.
 - At least 2 CPU cores and 1GB RAM would be the baseline for teamwork.
 
 
+## Browser Support
+
+According to [Semantic UI](https://github.com/Semantic-Org/Semantic-UI/tree/1.x):
+
+- Last 2 Versions FF, Chrome, IE 10+
+- Safari 6
+- IE 9+ (Browser prefix only)
+- Android 4
+- Blackberry 10
+
+Browser prefixes are present for Internet Explorer 9, but the browser is not officially supported.
+
 ## Installation
 ## Installation
 
 
 Make sure you install the [prerequisites](http://gogs.io/docs/installation/) first.
 Make sure you install the [prerequisites](http://gogs.io/docs/installation/) first.

+ 13 - 1
README_ZH.md

@@ -39,13 +39,25 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
 - Drone CI 持续部署集成
 - Drone CI 持续部署集成
 - 支持 MySQL、PostgreSQL 以及 SQLite3 数据库
 - 支持 MySQL、PostgreSQL 以及 SQLite3 数据库
 - 社交帐号登录(GitHub、Google、QQ、微博)
 - 社交帐号登录(GitHub、Google、QQ、微博)
-- 多语言支持([11 种语言]([more](https://crowdin.com/project/gogs)))
+- 多语言支持([13 种语言]([more](https://crowdin.com/project/gogs)))
 
 
 ## 系统要求
 ## 系统要求
 
 
 - 最低的系统硬件要求为一个廉价的树莓派
 - 最低的系统硬件要求为一个廉价的树莓派
 - 如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存
 - 如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存
 
 
+## 浏览器支持
+
+根据 [Semantic UI](https://github.com/Semantic-Org/Semantic-UI/tree/1.x) 的要求:
+
+- 最新两版的 FF、Chrome 和 IE 10+
+- Safari 6
+- IE 9+ (仅限浏览器前缀)
+- Android 4
+- Blackberry 10
+
+尽管已经使用了 Internet Explorer 9 的浏览器前缀,但该版本的浏览器被没有被正式支持。
+
 ## 安装部署
 ## 安装部署
 
 
 在安装 Gogs 之前,您需要先安装 [基本环境](http://gogs.io/docs/installation/)。
 在安装 Gogs 之前,您需要先安装 [基本环境](http://gogs.io/docs/installation/)。

+ 2 - 2
conf/app.ini

@@ -292,8 +292,8 @@ INTERVAL = 24
 ARGS = 
 ARGS = 
 
 
 [i18n]
 [i18n]
-LANGS = en-US,zh-CN,zh-HK,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL
-NAMES = English,简体中文,繁體中文,Deutsch,Français,Nederlands,Latviešu,Русский,日本语,Español,Português,Polski
+LANGS = en-US,zh-CN,zh-HK,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG
+NAMES = English,简体中文,繁體中文,Deutsch,Français,Nederlands,Latviešu,Русский,日本语,Español,Português,Polski,български
 
 
 [other]
 [other]
 SHOW_FOOTER_BRANDING = false
 SHOW_FOOTER_BRANDING = false

+ 13 - 0
conf/gitignore/PHP CakePHP

@@ -0,0 +1,13 @@
+# CakePHP 3
+
+/vendor/*
+/config/app.php
+/tmp/*
+/logs/*
+
+# CakePHP 2
+
+/app/tmp/*
+/app/Config/core.php
+/app/Config/database.php
+/vendors/*

+ 2 - 0
conf/gitignore/PHP FuelPHP

@@ -0,0 +1,2 @@
+fuel/app/logs/*/*/*
+fuel/app/cache/*/*

+ 4 - 0
conf/gitignore/PHP Laravel

@@ -0,0 +1,4 @@
+/bootstrap/compiled.php
+.env.*.php
+.env.php
+.env

+ 37 - 0
conf/gitignore/PHP Symfony

@@ -0,0 +1,37 @@
+# Cache and logs (Symfony2)
+/app/cache/*
+/app/logs/*
+!app/cache/.gitkeep
+!app/logs/.gitkeep
+
+# Cache and logs (Symfony3)
+/var/cache/*
+/var/logs/*
+!var/cache/.gitkeep
+!var/logs/.gitkeep
+
+# Parameters
+/app/config/parameters.yml
+/app/config/parameters.ini
+
+# Managed by Composer
+/app/bootstrap.php.cache
+/var/bootstrap.php.cache
+/bin/*
+!bin/console
+!bin/symfony_requirements
+/vendor/
+
+# Assets and user uploads
+/web/bundles/
+/web/uploads/
+
+# PHPUnit
+/app/phpunit.xml
+/phpunit.xml
+
+# Build data
+/build/
+
+# Composer PHAR
+/composer.phar

+ 6 - 0
conf/gitignore/PHP Yii

@@ -0,0 +1,6 @@
+assets/*
+!assets/.gitignore
+protected/runtime/*
+!protected/runtime/.gitignore
+protected/data/*.db
+themes/classic/views/

+ 20 - 0
conf/gitignore/PHP ZendFramework

@@ -0,0 +1,20 @@
+# Composer files
+composer.phar
+vendor/
+
+# Local configs
+config/autoload/*.local.php
+
+# Binary gettext files
+*.mo
+
+# Data
+data/logs/
+data/cache/
+data/sessions/
+data/tmp/
+temp/
+
+# Legacy ZF1
+demos/
+extras/documentation

+ 1 - 0
conf/locale/TRANSLATORS

@@ -2,6 +2,7 @@
 # Order of name is meaningless.
 # Order of name is meaningless.
 
 
 Akihiro YAGASAKI <yaggytter@momiage.com>
 Akihiro YAGASAKI <yaggytter@momiage.com>
+Alexander Steinhöfer <kontakt@lx-s.de>
 Christoph Kisfeld <christoph.kisfeld@gmail.com>
 Christoph Kisfeld <christoph.kisfeld@gmail.com>
 Huimin Wang <wanghm2009@hotmail.co.jp>
 Huimin Wang <wanghm2009@hotmail.co.jp>
 Thomas Fanninger <gogs.thomas@fanninger.at>
 Thomas Fanninger <gogs.thomas@fanninger.at>

+ 759 - 0
conf/locale/locale_bg-BG.ini

@@ -0,0 +1,759 @@
+app_desc=Удобна услуга за самостоятелни Git услуги, написана на Go
+
+home=Начало
+dashboard=Табло
+explore=Разгледай
+help=Помощ
+sign_in=Влизане
+social_sign_in=Вход чрез социална мрежа: 2. стъпка <small>асоцииране на акаунт</small>
+sign_out=Излизане
+sign_up=Регистрирайте се
+register=Регистриране
+website=Уебсайт
+version=Версия
+page=Страница
+template=Шаблон
+language=Език
+
+username=Потребителско име
+email=Електронна поща
+password=Парола
+re_type=Въведете отново
+captcha=Captcha
+
+repository=Хранилище
+organization=Организация
+mirror=Mirror
+new_repo=Ново хранилище
+new_migrate=Нова миграция
+new_fork=Създаване на нов форк на хранилището
+new_org=Нова организация
+manage_org=Управление на организации
+admin_panel=Админ панел
+account_settings=Настройки на профила
+settings=Настройки
+
+news_feed=Емисия новини
+pull_requests=Pull Requests
+issues=Проблеми
+
+cancel=Отказ
+
+[search]
+search=Търсене...
+repository=Хранилище
+user=Потребител
+issue=Проблем
+code=Код
+
+[install]
+install=Инсталация
+title=Стъпки за инсталиране при първоначално стартиране
+requite_db_desc=Gogs изисква MySQL, PostgreSQL или SQLite3.
+db_title=Настройки на базата данни
+db_type=Тип на база данни
+host=Хост
+user=Потребител
+password=Парола
+db_name=Име на база данни
+db_helper=Моля, използвайте INNODB engine  с utf8_general_ci charset за MySQL.
+ssl_mode=Режим SSL
+path=Път
+sqlite_helper=Пък към файла на SQLite3 база данни.
+err_empty_sqlite_path=Пътят за SQLite3 база за данни не може да е празен.
+
+general_title=Общи настройки на Gogs
+app_name=Име на програмата
+app_name_helper=Постави името на твоята организация тук - голямо е крещящо!
+repo_path=Основен път към хранилището
+repo_path_helper=Всички отдалечени хранилища ще бъдат съхранени в тази папка.
+run_user=Run User
+run_user_helper=The user must have access to Repository Root Path and run Gogs.
+domain=Домейн
+domain_helper=Това влияе на URL-адреса за клониране по SSH.
+http_port=HTTP порт
+http_port_helper=Порт, на който програмата ще слуша.
+app_url=URL на програмата
+app_url_helper=Този параметър влияе на URL на HTTP/HTTPS и понякога на адреса на електронната поща.
+
+optional_title=Опционални настройки
+email_title=Настройка на мейл услугата
+smtp_host=SMTP хост
+smtp_from=От
+smtp_from_helper=Писмо от адрес, RFC 5322. Тя може да бъде мейл адрес или на  < email@example.com > формат.
+mailer_user=Адрес на изпращача
+mailer_password=Парола на изпращача
+register_confirm=Включи потвърждението на регистрациите
+mail_notify=Включи оповестяването по пощата
+server_service_title=Настройки на сървъра и други услуги
+offline_mode=Включи офлайн режима
+offline_mode_popup=Забранете CDN дори в режим production, всички ресурсни файлове ще бъдат връчени локално.
+disable_registration=Изключи саморегистрацията
+disable_registration_popup=Изключи потребителската саморегистрация, само администратор може да създава профили.
+require_sign_in_view=Изисквай вписване за преглед на страниците
+require_sign_in_view_popup=Само вписани потребители могат да виждат страниците, посетителите виждат само страниците за регистрация и вход.
+admin_setting_desc=Няма Нужда да създавате администраторски акаунт в момента - потребителя с ID 1 получава администраторски достъп автоматично.
+admin_title=Настройки на акаунта на администратора
+admin_name=Потребителско име
+admin_password=Парола
+confirm_password=Потвърждение на паролата
+admin_email=Електронна поща
+install_gogs=Инсталирай Gogs
+test_git_failed=Неуспех при тестването на "git" команда: %v
+sqlite3_not_available=Вашата версия не поддържа SQLite3, моля, изтеглете официалната двоичен версия от %s, а не gobuild версия.
+invalid_db_setting=Настройките на базата данни не са правилни: %v
+invalid_repo_path=Главният път за хранилището е невалиден: %v
+run_user_not_match=Потребителя пуснал приложението не е текущия потребител: %s -> %s
+save_config_failed=Неуспех при запазване на конфигурацията: %v
+invalid_admin_setting=Настройките за акаунта на администратора е невалиден: %v
+install_success=Добре дошли! Ние се радваме, че сте избрали Gogs. Приятно ползване!
+
+[home]
+uname_holder=Потребителско име или имейл
+password_holder=Парола
+switch_dashboard_context=Превключване на контекста на контролното табло
+my_repos=Моите хранилища
+collaborative_repos=Съвместни хранилища
+my_orgs=Моите организации
+my_mirrors=Моите огледала
+
+[explore]
+repos=Хранилища
+
+[auth]
+create_new_account=Създаване на нов акаунт
+register_hepler_msg=Вече имате регистрация? Впишете се сега!
+social_register_hepler_msg=Вече имате профил? Свържете сега!
+disable_register_prompt=За съжаление регистрацията е преустановена. Обърнете се към администратора на сайта.
+disable_register_mail=За съжаление потвърждението на регистрацията е преустановена.
+remember_me=Запомни ме
+forgot_password=Забравена парола
+forget_password=Забравена парола?
+sign_up_now=Нужда от акаунт? Регистрирайте се сега.
+confirmation_mail_sent_prompt=Нов имейл за потвърждение е бил изпратен до <b>%s</b>, моля, проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация.
+sign_in_email=Влез чрез своя имейл
+active_your_account=Активиране на акаунта
+resent_limit_prompt=За съжаление вие вече имате имейл за активация. Моля изчакайте 3 минути, след което опитайте отново.
+has_unconfirmed_mail=Здравейте %s, имате непотвърден имейл адрес (<b>%s</b>). Ако не сте получили имейл за потвърждение или имате нужда да се изпрати нов, моля, кликнете върху бутона по-долу.
+resend_mail=Щракнете тук, за да изпратите наново имейл за активиране
+email_not_associate=Този имейл адрес не е свързана с никой акаунт.
+send_reset_mail=Щракнете тук, за да получите (наново) имейл за нулиране на паролата
+reset_password=Нулиране на паролата
+invalid_code=За съжаление, вашия код за потвърждение е изтекъл или не е валиден.
+reset_password_helper=Щракнете тук, за да нулирате паролата си
+password_too_short=Дължина на паролата не може да бъде по-малко от 6.
+
+[form]
+UserName=Потребителско име
+RepoName=Име на хранилище
+Email=Адрес на електронната поща
+Password=Парола
+Retype=Въведете отново паролата си
+SSHTitle=Име на SSH ключ
+HttpsUrl=HTTPS URL
+PayloadUrl=Payload URL
+TeamName=Име на екипа
+AuthName=Име за ауторизация
+AdminEmail=Имейл на администратора
+
+require_error="не може да бъде празен."
+alpha_dash_error=` must be valid alpha or numeric or dash(-_) characters.`
+alpha_dash_dot_error=` must be valid alpha or numeric or dash(-_) or dot characters.`
+min_size_error="трябва да съдържа поне %s знака."
+max_size_error="трябва да съдържа най-много %s знака."
+email_error=„не е валиден имейл адрес.“
+url_error="не е валиден URL адрес."
+unknown_error=Непозната грешка:
+captcha_incorrect=Captcha не съвпада.
+password_not_match=Паролата и потвърждението ѝ не съвпадат.
+
+username_been_taken=Потребителското име е заето.
+repo_name_been_taken=Името на хранилището вече е заето.
+org_name_been_taken=Името на организацията вече се ползва.
+team_name_been_taken=Името на екипа вече се ползва.
+email_been_used=Този е-мейл адрес е бил вече използван.
+ssh_key_been_used=Име на публичен ключ или съдържание са били използвани.
+illegal_team_name=Името на екип съдържа недопустими знаци.
+username_password_incorrect=Потребителското име или паролата не е вярна.
+enterred_invalid_repo_name=Моля, проверете дали името на хранилището е въведено правилно.
+enterred_invalid_owner_name=Моля уверете се, че въведеното име на собственик е вярно.
+enterred_invalid_password=Моля уверете се, че въведената парола е вярна.
+user_not_exist=Даденият потребител не съществува.
+last_org_owner=Премахване на последния потребител от собственика екип не е позволено, тъй като винаги трябва да има поне един собственик в дадена организация.
+
+invalid_ssh_key=За съжаление, ние не сме в състояние да удостоверим вашия SSH ключ: %s
+unable_verify_ssh_key=Gogs не може да провери вашия SSH ключ, но предполагаме, че е валиден, моля, проверете го.
+auth_failed=Неуспешно удостоверяване: %v
+
+still_own_repo=Вашата регистрация все още е собственик на поне едно хранилище, вие трябва да изтриете или да ги прехвърлите първо.
+still_has_org=Вашата сметка все още има членство в най-малко една организация, вие трябва да напусне или да изтриете вашите членства първо.
+org_still_own_repo=Тази организация все още има собственост на хранилище, вие трябва да я изтриете или да я прехвърлите първо.
+
+still_own_user=Тази аутентикация се ползва все още, моля премахнете я от аутентиканцията и опитайте отново.
+
+target_branch_not_exist=Target branch does not exist.
+
+[user]
+change_avatar=Сменете вашия аватар на gravatar.com
+change_custom_avatar=Промяна на вашия аватар в настройките
+join_on=Присъедини се на
+repositories=Хранилища
+activity=Обществена дейност
+followers=Последователи
+starred=Избрано
+following=Следване
+
+form.name_reserved=Потребителското име "%s" е запазено.
+form.name_pattern_not_allowed=Потребителското име  «%s» не е допустимо.
+
+[settings]
+profile=Профил
+password=Парола
+ssh_keys=SSH ключове
+social=Социални профили
+applications=Приложения
+orgs=Организации
+delete=Изтриване на акаунт
+uid=UID
+
+public_profile=Публичен профил
+profile_desc=Вашият имейл адрес е публичен и ще бъде използван за всеки свързани с профила ви уведомления и всички уеб базирани операции, направени чрез сайта.
+full_name=Пълно име
+website=Уебсайт
+location=Местоположение
+update_profile=Актуализиране на профила ви
+update_profile_success=Вашият профил е актуализиран успешно.
+change_username=Потребителското име е променено
+change_username_desc=Сменихте вашето потребителско име. Това ще засегне връзките сочещи към акаунта ви. Искате ли да продължите?
+continue=Продължи
+cancel=Отказ
+
+enable_custom_avatar=Разреши потребителски аватар
+enable_custom_avatar_helper=Включете тази опция, за да изключите сареждането от Gravatar
+choose_new_avatar=Изберете нов аватар
+update_avatar=Обнови настройките на аватара
+uploaded_avatar_not_a_image=Каченият файл не е изображение.
+no_custom_avatar_available=Собствен аватар е забранен, включването е невъзможно.
+update_avatar_success=Настройките за аватара са обновени успешно.
+
+change_password=Промени парола
+old_password=Текуща парола
+new_password=Нова парола
+password_incorrect=Въведената парола не е вярна.
+change_password_success=Вашата парола бе успешно променена. Сега можете да влезете, използвайки тази нова парола.
+
+emails=Имейл адреси
+manage_emails=Управление на имейл адреси
+email_desc=Вашият основен имейл адрес ще се използва за известия и други операции.
+primary=Основен
+primary_email=Задаване като основна
+delete_email=Изтриване
+add_new_email=Добавяне на нов имейл адрес
+add_email=Добавяне на имейл
+add_email_confirmation_sent=Нов имейл за потвърждение е бил изпратен до <b>%s</b>, моля, проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация.
+add_email_success=Успешно беше добавен нов имейл адрес.
+
+manage_ssh_keys=Управление на SSH ключове
+add_key=Добавяне на ключ
+ssh_desc=Това е списък на SSH ключове, свързани с вашия акаунт. Тъй като тези ключове позволяват на всеки, който ги използва да получи достъп до хранилищата ви, много е важно да се уверите, че ги разпознавате.
+ssh_helper=<strong>Не знам как?</strong> Проверете на GitHub упътването как да <a href="%s"> създадете свои собствени SSH ключове</a> или решаване на <a href="%s"> Общи проблеми</a>, които може да възникнат при използване на SSH.
+add_new_key=Добавите SSH ключ
+key_name=Име на ключа
+key_content=Съдържание
+add_key_success=Добавен е нов SSH ключ!
+delete_key=Изтрий
+add_on=Добавен на
+last_used=Последно използван на
+no_activity=Няма скорошна активност
+
+manage_social=Управление на свързаните с тях акаунти в социални мрежи
+social_desc=Това е списък на свързаните акаунти в социални мрежи. Премахнете всички, които не разпознавате.
+unbind=Освобождаване
+unbind_success=Социалния профил е освободен.
+
+manage_access_token=Управление на tokens за персонален достъп
+generate_new_token=Генерира нов маркер
+tokens_desc=Маркерите, които са генерирани и могат да бъдат ползвани за достъп до API-то на Gogs.
+new_token_desc=Всеки маркер ще има пълен достъп до вашия акаунт.
+token_name=Име на маркера
+generate_token=Генериране на маркер
+generate_token_succees=Успешно е генериран вашия маркер за достъп! Уверете се, че сте го копирали, тъй като няма да можете да го видите отново!
+delete_token=Изтриване
+delete_token_success=Този маркер за личен достъп е премахнат успешно! Не забравяйте да актуализирате вашите приложения.
+
+delete_account=Изтриване на вашия акаунт
+delete_prompt=Тази операция ще изтрие вашия акаунт завинаги и <strong>няма да може</strong> да се отмени!
+confirm_delete_account=Потвърждаване на изтриването
+delete_account_title=Изтриване на акаунта
+delete_account_desc=Този акаунт ще бъде окончателно изтрит. Искате ли да продължите?
+
+[repo]
+owner=Собственик
+repo_name=Име на хранилище
+repo_name_helper=Добро име на хранилище е име, състоящо от кратки, запомнящи се и уникални ключови думи.
+visibility=Видимост
+visiblity_helper=Това хранилище е <span class="label label-red label-radius"> частно</span>
+fork_repo=Fork на хранилището
+fork_from=Fork от
+fork_visiblity_helper=Не можете да промените видимостта на форкнато хранилище.
+repo_desc=Описание
+repo_lang=Език
+repo_lang_helper=Изберете .gitignore файл
+license=Лиценз
+license_helper=Изберете лицензионен файл
+init_readme=Инициализиране на това хранилище с README.md
+create_repo=Създаване на хранилище
+default_branch=Клон по подразбиране
+mirror_interval=Интервал на мирроване(часове)
+
+form.name_reserved=Името на хранилището "%s" е запазено.
+form.name_pattern_not_allowed=Името на хранилище  „%s“ не е позволено.
+
+need_auth=Нужда от удостоверяване
+migrate_type=Тип мигриране
+migrate_type_helper=НА хранилището ще бъде създаден <span class="label label-blue label-radius">мирор</span>
+migrate_repo=Мигриране на хранилището
+migrate.clone_address=Клонирай адрес
+migrate.invalid_local_path=Невалиден път - не съществува или не е директория.
+
+copy_link=Копирай
+click_to_copy=Копиране в клипборда
+copied=Успешно копирано
+clone_helper=Нуждаеш се от помощ при клониране? Посети <a target="_blank" href="%s">Помощ</a>!
+unwatch=Не следи повече
+watch=Следи
+unstar=Unstar
+star=Star
+fork=Форк
+
+no_desc=Няма описание
+quick_guide=Бърз справочник
+clone_this_repo=Клониране на хранилището
+create_new_repo_command=Създай ново хранилище чрез командния ред
+push_exist_repo=Пушни съществуващо хранилище през командния ред
+
+branch=Бранч
+tree=Дърво
+branch_and_tags=Бранчове и тагове
+branches=Бранчове
+tags=Тагове
+issues=Issues
+commits=Комити
+releases=Релийзи
+file_raw=Суров
+file_history=История
+file_view_raw=Прегледай в суров вид
+
+commits.commits=Комити
+commits.search=Търсене на комити
+commits.find=Намери
+commits.author=Автор
+commits.message=Съобщение
+commits.date=Дата
+commits.older=По-стари
+commits.newer=По-нови
+
+settings=Настройки
+settings.options=Опции
+settings.collaboration=Сътрудничество
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.deploy_keys=Използвай ключове
+settings.basic_settings=Основни настройки
+settings.danger_zone=Опасната зона
+settings.site=Официален сайт
+settings.update_settings=Настройки  за актуализациите
+settings.change_reponame=Името на хранилището е променено
+settings.change_reponame_desc=Името на хранилището е променено. Това ще засегне линковете, отнасящи се до хранилището. Искате ли да продължите?
+settings.transfer=Прехвърляне на собствеността
+settings.transfer_desc=Прехвърля това хранилище на друг потребител или на организация, в която имате права на администратор.
+settings.new_owner_has_same_repo=Новият собственик вече има хранилище със същото име. Изберете друго име.
+settings.delete=Изтриване на това хранилище
+settings.delete_desc=След като изтриете хранилище, няма връщане назад. Моля, бъдете сигурни.
+settings.transfer_notices=<p>-Ще загубите достъп ако новият собственик е индивидуален потребител.</p> <p>-Ти ще запазиш достъп, ако новият собственик е организация и вие сте един от собствениците.</p>
+settings.update_settings_success=Опции за хранилище е актуализиран успешно.
+settings.transfer_owner=Нов собственик
+settings.make_transfer=Направи трансфер
+settings.transfer_succeed=Собствеността на хранилището е прехвърлена успешно.
+settings.confirm_delete=Потвърждаване на изтриването
+settings.add_collaborator=Добавяне на нов сътрудник
+settings.add_collaborator_success=Добавен е нов съавтор.
+settings.remove_collaborator_success=Съавторът е премахнат.
+settings.user_is_org_member=Потребителят е член на организацията, който не може да бъде добавен като съавтор.
+settings.add_webhook=Добави Webhook
+settings.hooks_desc=Webhooks са много като основните HTTP POST тригери. Когато нещо се случи в Gogs, ние ще пратим уведомлението до хоста, който е посочвате. Научете повече в това <a target="_blank" href="%s"> Webhooks ръководство</a>.
+settings.githooks_desc=Git Hooks се изпълняват от Git, вие може да промените файловете на поддъръжаните хуукове в списъка отдолу, за да може да изпълнявате персонализирани операции.
+settings.githook_edit_desc=Ако хуукът е неактивен, примерно съдържание ще бъдат представено. Ако оставите съдържанието празна стойност този хуук ще бъде изключен.
+settings.githook_name=Име на хуук
+settings.githook_content=Съдържание на хуука
+settings.update_githook=Обнови хуука
+settings.remove_hook_success=Webhook е бил изтрит.
+settings.add_webhook_desc=Gogs will send a <code>POST</code> request to the URL you specify, along with regarding the event that occured. You can also specify what kind of data format you'd like to get upon triggering the hook (JSON, x-www-form-urlencoded, XML, etc). More information can be found in our <a target="_blank" href="%s">Webhooks Guide</a>.
+settings.payload_url=Payload URL
+settings.content_type=Тип на съдържанието
+settings.secret=Тайна
+settings.event_desc=При какви събития да се задейства този webhook?
+settings.event_push_only=Само <code>пуш</code> събитието.
+settings.active=Активен
+settings.active_helper=Подробности относно събитието извикало хуука ще бъде също представена.
+settings.add_hook_success=Нова webhook е добавен.
+settings.update_webhook=Актуализация на Webhook
+settings.update_hook_success=Webhook е бил актуализиран.
+settings.delete_webhook=Изтриване на Webhook
+settings.recent_deliveries=Recent Deliveries
+settings.hook_type=Вид на хуука
+settings.add_slack_hook_desc=Добавяне на интеграция с <a href="%s">Slack</a> в вашето хранилище.
+settings.slack_token=Маркер
+settings.slack_domain=Домейн
+settings.slack_channel=Канал
+
+diff.browse_source=Преглед на кода
+diff.parent=родител
+diff.commit=commit
+diff.data_not_available=Няма Diff данни.
+diff.show_diff_stats=Покажи Diff статистика
+diff.stats_desc=<strong>%d променени файлове</strong> с <strong>%d допълнения</strong> и <strong>изравания %d</strong>
+diff.bin=BIN
+diff.view_file=Преглед на файла
+
+release.releases=Релийзи
+release.new_release=Нов релийз
+release.draft=Чернова
+release.prerelease=Предварително издание
+release.stable=Стабилна
+release.edit=редактиране
+release.ahead=<strong>%d</strong> комит(а) %s след последния издание
+release.source_code=Програмен код
+release.tag_name=Име на етикет
+release.target=Цел
+release.tag_helper=Изберете съществуващ етикет или създайте нов етикет при публикуване.
+release.release_title=Заглавие на изданието
+release.content_with_md=Съдържание с <a href="%s"> Markdown</a>
+release.write=Писане
+release.preview=Преглед
+release.content_placeholder=Напишете някакво съдържание
+release.loading=Зареждане...
+release.prerelease_desc=Това е предварително издание
+release.prerelease_helper=Ние ще се отбележим, че тази версия не е готова за производство.
+release.publish=Публично издание
+release.save_draft=Запази чернова
+release.edit_release=Редактиране на изданието
+release.tag_name_already_exist=Релийз с таг с такова име вече съществува.
+
+[org]
+org_name_holder=Име на организацията
+org_name_helper=Добрите имена на организация са кратки и запомнящи се.
+org_email_helper=Пощата на организацията получава всички уведомления и потвърждения.
+create_org=Създаване на организация
+repo_updated=Актуализиране
+people=Хора
+invite_someone=Поканете някого
+teams=Екипи
+lower_members=членове
+lower_repositories=хранилища
+create_new_team=Създаване на нов екип
+org_desc=Описание
+team_name=Име на екипа
+team_desc=Описание
+team_name_helper=Ще използвате това име при споменаване на този отбор в разговори.
+team_desc_helper=Каква е целта на този отбор?
+team_permission_desc=Какво ниво на достъп трябва да има този отбор?
+
+form.name_reserved=Името за организация "%s" е запазено.
+form.name_pattern_not_allowed=Името на хранилището „%s“ не е позволено.
+
+settings=Настройки
+settings.options=Опции
+settings.full_name=Пълно име
+settings.website=Уебсайт
+settings.location=Местоположение
+settings.update_settings=Актуализирай настройките
+settings.change_orgname=Името на екипа е променено
+settings.change_orgname_desc=Името на организацията е сменено. Това ще засегне връзките свързани с организацията. Искате ли да продължите?
+settings.update_setting_success=Настройките на организацията са успешно запазени.
+settings.delete=Изтрий организацията
+settings.delete_account=Изтрий тази организация
+settings.delete_prompt=Организацията ще бъде изтрита и <strong>НЕ МОЖЕ</strong> да се върне!
+settings.confirm_delete_account=Потвърди изтриването
+settings.delete_org_title=Изтриване на организацията
+settings.delete_org_desc=Тази организация ще бъде окончателно изтрита. Искате ли да продължите?
+settings.hooks_desc=Добави webhooks, който ще бъде използван за <strong>всички хранилища</strong> в тази организация.
+
+members.public=Обществено
+members.public_helper=направи частен
+members.private=Частно
+members.private_helper=направи публично
+members.owner=Собственик
+members.member=Участник
+members.conceal=Conceal
+members.remove=Премахни
+members.leave=Напусни
+members.invite_desc=Започнете да пишете потребителското име, за да поканите член в %s:
+members.invite_now=Покани сега
+
+teams.join=Присъединяване
+teams.leave=Напусни
+teams.read_access=Достъп за четене
+teams.read_access_helper=Този екип ще може да вижда и клонира своите хранилища.
+teams.write_access=Достъп за запис
+teams.write_access_helper=Този екип ще може да чете своите хранилища и ще може да пушва.
+teams.admin_access=Администраторски достъп
+teams.admin_access_helper=Екипът може да пушва и пулва в своите хранилища и да добавя collaborators.
+teams.no_desc=Този екип няма описание
+teams.settings=Настройки
+teams.owners_permission_desc=Собствениците имат пълен достъп до <strong>всички хранилища</strong> и имат <strong>права на администратор</strong> на организацията.
+teams.members=Членовете на екипа
+teams.update_settings=Актуализирай настройките
+teams.delete_team=Изтриване на този екип
+teams.add_team_member=Добавяне на член в екипа
+teams.delete_team_title=Изтриването на екипа
+teams.delete_team_desc=Тъй като този екип ще бъдат изтрит, членовете на този екип може да загуби достъп до някои хранилища. Искате ли да продължите?
+teams.delete_team_success=Даденият екип е бил изтрит успешно.
+teams.read_permission_desc=Този екип предоставя достъп за <strong>четене</strong>: членове могат да разглеждат и клонират хранилищата на екипа.
+teams.write_permission_desc=Този екип предоставя права за <strong>пиша</strong>: членовете могат да четат от и пушват към хранилищата на екипа.
+teams.admin_permission_desc=Този екип получава <strong>администраторски</strong> достъп: членовете могат да четат, да пушват и добавя сътрудници към хранилищата на екипа.
+teams.repositories=Хранилища на екипа
+teams.add_team_repository=Добави хранилище на екипа
+teams.remove_repo=Премахни
+teams.add_nonexistent_repo=Хранилището, което се опитвате да добавите не съществува. Моля първо го създадете!
+
+[admin]
+dashboard=Табло
+users=Потребители
+organizations=Организация
+repositories=Хранилища
+authentication=Ауторизация
+config=Конфигурация
+notices=Системни известия
+monitor=Наблюдение
+prev=Предишен.
+next=Следващ
+
+dashboard.statistic=Статистики
+dashboard.operations=Операции
+dashboard.system_status=Наблюдение на системния статус
+dashboard.statistic_info=Gogs базата данни има <b>%d</b> потребители, <b>%d</b> организации, <b>%d</b> публични ключове, <b>%d</b> хранилища, <b>%d</b> watches, <b>%d</b> stars, <b>%d</b> действия, <b>%d</b> accesses, <b>%d</b> issues, <b>%d</b> коментари, <b>%d</b> социални accounts, <b>%d</b> последователи , <b>%d</b> mirrors, <b>%d</b> releases, <b>%d</b> login soureces, <b>%d</b> webhooks, <b>%d</b> milestones, <b>%d</b> label, <b>%d</b> hook tasks <b>%d</b> teams, <b>%d</b> update tasks, <b>%d</b> attachments.
+dashboard.operation_name=Име на операцията
+dashboard.operation_switch=Превключване
+dashboard.operation_run=Run
+dashboard.clean_unbind_oauth=Изчисти несвързаните OAuthes
+dashboard.clean_unbind_oauth_success=Всички неизползвани OAuthes са изтрити успешно.
+dashboard.delete_inactivate_accounts=Изтриване на всички неактивни профили
+dashboard.delete_inactivate_accounts_success=Всички неактивни профили са изтрити успешно.
+dashboard.delete_repo_archives=Изтрий всички архиви на хранилищата
+dashboard.delete_repo_archives_success=Всички архиви на хранилищата са били изтрити успешно.
+dashboard.git_gc_repos=Почисти ненужните данни в хранилищата
+dashboard.git_gc_repos_success=Всички хранилища са изпълнили garbage collection успешно.
+dashboard.resync_all_sshkeys=Презапис на ".ssh/authorized_keys" файл (внимание: не-Gogs ключове ще бъдат загубени)
+dashboard.resync_all_sshkeys_success=Всички публични ключове са били презаписани успешно.
+dashboard.resync_all_update_hooks=Пренапише всички хуукове за обновяване на хранилищата (необходимо, когато се ползва собствен път за конфигурацията)
+dashboard.resync_all_update_hooks_success=All repositories' update hook have been rewritten successfully.
+
+dashboard.server_uptime=Сървър ъптайм
+dashboard.current_goroutine=Текущата Goroutines
+dashboard.current_memory_usage=Текущо ползване на паметта
+dashboard.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=Панел за управление на потребителите
+users.new_account=Създаване на нов профил
+users.name=Име
+users.activated=Активиран
+users.admin=Администратор
+users.repos=Хранилища
+users.created=Създаване
+users.edit=Редакцияэ
+users.auth_source=Източници за удостоверяване
+users.local=Локално
+users.auth_login_name=Потребителско име за удстоверяване
+users.update_profile_success=Профилът е обновен успешно.
+users.edit_account=Редактиране на профила
+users.is_activated=Този профил е активиран
+users.is_admin=Този профил има административни права
+users.allow_git_hook=Този профил има разрешение да създава Git hooks
+users.update_profile=Обнови  профила
+users.delete_account=Изтриване на акаунта
+users.still_own_repo=Този профил е собственик на поне едно хранилище. Трябва да ги изтриете или предадете на друг преди това.
+users.still_has_org=Този потребител е поне в една организация. Първо трябва да излезете от или изтриете тези организации.
+
+orgs.org_manage_panel=Управление на организациите
+orgs.name=Име
+orgs.teams=Екипи
+orgs.members=Членове
+
+repos.repo_manage_panel=Управление на хранилищата
+repos.owner=Собственик
+repos.name=Име
+repos.private=Личен
+repos.watches=Watches
+repos.stars=Stars
+repos.issues=Issues
+
+auths.auth_manage_panel=Управление на удостоверяването
+auths.new=Добави нов начин за удостоверяване
+auths.name=Име
+auths.type=Тип
+auths.enabled=Активиран
+auths.updated=Актуализиране
+auths.auth_type=Тип на разрешение
+auths.auth_name=Име на удостоверяването
+auths.domain=Домейн
+auths.host=Хост
+auths.port=Порт
+auths.base_dn=Base DN
+auths.attribute_username=Атрибут на потребителско име
+auths.attribute_name=Атрибут име
+auths.attribute_surname=Атрибут фамилия
+auths.attribute_mail=E-Mail атрибут
+auths.filter=Филтър за търсене 
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=Вид на SMTP удостоверяване
+auths.smtphost=SMTP хост
+auths.smtpport=SMTP порт
+auths.enable_tls=Разрешаване на TLS шифроване
+auths.pam_service_name=Име на PAM услуга
+auths.enable_auto_register=Включване на автоматичната регистрация
+auths.tips=Съвети
+auths.edit=Редактиране на низа за ауторизация
+auths.activated=Това удостоверяване е активно
+auths.update_success=Настройките за удостоверяване са обновени успешно.
+auths.update=Обнови настройките за удостоверяване
+auths.delete=Изтрий това удостоверяване
+auths.delete_auth_title=Изтриване на удостоверяването
+auths.delete_auth_desc=Това удостоверяване ще бъде изтрито. Искате ли да продължите?
+
+config.server_config=Сървърни настройки
+config.app_name=Име на програмата
+config.app_ver=Версия на приложението
+config.app_url=URL на програмата
+config.domain=Домейн
+config.offline_mode=Офлайн режим
+config.disable_router_log=Изключи логът на маршрутизатора
+config.run_user=Run User
+config.run_mode=Run Mode
+config.repo_root_path=Път към хранилището
+config.static_file_root_path=Път към статичен път
+config.log_file_root_path=Път към лог файла
+config.script_type=Тип на скрипта
+config.reverse_auth_user=Потребителско име при обратно удостоверяване
+config.db_config=Настройки на базата данни
+config.db_type=Тип
+config.db_host=Хост
+config.db_name=Име
+config.db_user=Потребител
+config.db_ssl_mode=SSL режим
+config.db_ssl_mode_helper=(само за «postgres»)
+config.db_path=Път
+config.db_path_helper=(само за "sqlite3")
+config.service_config=Настройка на услугата
+config.register_email_confirm=Изисквай имейл потвърждение
+config.disable_register=Изключване на регистрирането
+config.show_registration_button=Покажи бутон за регистрация
+config.require_sign_in_view=Изисква влизане за преглед
+config.mail_notify=Уведомяване по поща
+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 настройки
+config.task_interval=Task Interval
+config.deliver_timeout=Deliver Timeout
+config.skip_tls_verify=Пропусни TLS проверката
+config.mailer_config=Мейлър конфигурация
+config.mailer_enabled=Включено
+config.mailer_disable_helo=Изключи HELO
+config.mailer_name=Име
+config.mailer_host=Хост
+config.mailer_user=Потребител
+config.oauth_config=OAuth конфигурация
+config.oauth_enabled=Активиран
+config.cache_config=Конфигурация на кеша
+config.cache_adapter=Кеш адаптер
+config.cache_interval=Кеш интервал
+config.cache_conn=Кеш на връзката
+config.session_config=Конфигурация на сесията
+config.session_provider=Доставчик на сесия
+config.provider_config=Provider Config
+config.cookie_name=Име на бисквитка
+config.enable_set_cookie=Enable Set Cookie
+config.gc_interval_time=GC Interval Time
+config.session_life_time=Време на живот на сесията
+config.https_only=HTTPS само
+config.cookie_life_time=Време на живот на бисквитка
+config.picture_config=Конфигурация на идображение
+config.picture_service=Услуги за снимки
+config.disable_gravatar=Изключване на Gravatar
+config.log_config=Конфигурация на логовете
+config.log_mode=Режим на логване
+
+monitor.cron=Cron задачи
+monitor.name=Име
+monitor.schedule=График
+monitor.next=Следващ път
+monitor.previous=Предишен път
+monitor.execute_times=Време на изпълнение
+monitor.process=Изпълнявани процеса
+monitor.desc=Описание
+monitor.start=Начален час
+monitor.execute_time=Време за изпълнение
+
+notices.system_notice_list=Системни известия
+notices.type=Вид
+notices.type_1=Хранилище
+notices.desc=Описание
+notices.op=Op.
+notices.delete_success=System notice has been deleted successfully.
+
+[action]
+create_repo=създадено е хранилище <a href="%s"> %s</a>
+commit_repo=пушнато към <a href="%s/src/%s">%[2]s</a> в <a href="%[1]s">%[3]s</a>
+create_issue=`opened issue <a href="%s/issues/%s">%s#%[2]s</a>`
+comment_issue=`commented on issue <a href="%s/issues/%s">%s#%[2]s</a>`
+transfer_repo=прехвърлено хранилище:  от <code>%s</code> към  <a href="%s"> %s</a>
+push_tag=pushed tag <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a>
+compare_2_commits=Виж сравнението между тези 2 комита
+
+[tool]
+ago=ago
+from_now=from now
+now=сега
+1s=1 second %s
+1m=1 минута %s
+1h=1 час %s
+1d=1 ден %s
+1w=1 седмица %s
+1mon=1 месец %s
+1y=1 година %s
+seconds=%d секунди %s
+minutes=%d минути %s
+hours=%d часа %s
+days=%d дни %s
+weeks=%d седмици %s
+months=%d months %s
+years=%d years %s
+raw_seconds=секунди
+raw_minutes=минути
+

+ 30 - 12
conf/locale/locale_de-DE.ini

@@ -40,16 +40,17 @@ issues=Issues
 cancel=Abbrechen
 cancel=Abbrechen
 
 
 [search]
 [search]
-search=Search...
+search=Suchen...
 repository=Repository
 repository=Repository
-user=User
-issue=Issue
+user=Benutzer
+issue=Problem
 code=Code
 code=Code
 
 
 [install]
 [install]
 install=Installation
 install=Installation
 title=Installation für erstmaligen Start
 title=Installation für erstmaligen Start
 requite_db_desc=Gogs erfordert MySQL, PostgreSQL oder SQLite 3, aber SQLite3 ist in der offiziellen binären Version akiviert.
 requite_db_desc=Gogs erfordert MySQL, PostgreSQL oder SQLite 3, aber SQLite3 ist in der offiziellen binären Version akiviert.
+db_title=Datenbankeinstellungen
 db_type=Datenbanktyp
 db_type=Datenbanktyp
 host=Host
 host=Host
 user=Benutzer
 user=Benutzer
@@ -59,7 +60,11 @@ db_helper=Bitte verwenden InnoDB-Engine mit utf8_general_ci Zeichensatz für MyS
 ssl_mode=SSL-Modus
 ssl_mode=SSL-Modus
 path=Pfad
 path=Pfad
 sqlite_helper=Der Dateipfad des SQLite3 Datenbank.
 sqlite_helper=Der Dateipfad des SQLite3 Datenbank.
+err_empty_sqlite_path=Pfad zur SQLite3-Datenbank darf nicht leer sein.
+
 general_title=Allgemeine Einstellungen von Gogs
 general_title=Allgemeine Einstellungen von Gogs
+app_name=Anwendungsname
+app_name_helper=Hier den Organisationsnamen einfügen.
 repo_path=Repository Root-Verzeichnispfad
 repo_path=Repository Root-Verzeichnispfad
 repo_path_helper=Alle Git-Repositorys werden in diesem Verzeichnis gespeichert.
 repo_path_helper=Alle Git-Repositorys werden in diesem Verzeichnis gespeichert.
 run_user=Ausführender Benutzer
 run_user=Ausführender Benutzer
@@ -70,13 +75,24 @@ http_port=HTTP Port
 http_port_helper=Auf dieser Port Nummer ist die Apllikation erreichbar.
 http_port_helper=Auf dieser Port Nummer ist die Apllikation erreichbar.
 app_url=Anwendungs-URL
 app_url=Anwendungs-URL
 app_url_helper=Dies hat Auswirkung auf die HTTP/HTTPS clone URLs und für die E-Mails.
 app_url_helper=Dies hat Auswirkung auf die HTTP/HTTPS clone URLs und für die E-Mails.
-email_title=E-Mail-Service Einstellungen (optional)
+
+optional_title=Optionale Einstellungen
+email_title=E-Mail-Service Einstellungen
 smtp_host=SMTP Host
 smtp_host=SMTP Host
+smtp_from=Von
+smtp_from_helper=Absender-Adresse nach RFC 5322. Entweder nur eine E-Mail Adresse oder im folgenden Format: "Name" <email@example.com>.
 mailer_user=Sender E-mail
 mailer_user=Sender E-mail
 mailer_password=Sender Passwort
 mailer_password=Sender Passwort
-notify_title=Benachrichtigungseinstellungen (optional)
 register_confirm=Registrierungsbestätigung aktvieren
 register_confirm=Registrierungsbestätigung aktvieren
 mail_notify=E-Mail-Benachrichtgung aktivieren
 mail_notify=E-Mail-Benachrichtgung aktivieren
+server_service_title=Server- und sonstige Diensteinstellungen
+offline_mode=Offline-Modus aktivieren
+offline_mode_popup=Deaktiviere das CDN auch im Produktionsmodus, alle Dateien werden von diesem Server ausgeliefert.
+disable_registration=Benutzerregistrierung deaktivieren
+disable_registration_popup=Deaktiviere die Benutzerregistrierung, nur Administratoren können Benutzerkonten anlegen.
+require_sign_in_view=Erfordere Anmeldung, um Inhalte anzusehen
+require_sign_in_view_popup=Lediglich angemeldete Benutzer können Inhalte betrachten, Gäste sehen nur die Anmelden/Registrieren Seite.
+admin_setting_desc=Sie müssen jetzt noch keinen Administrator-Account anlegen. Der erste Benutzer ("ID=1") erhält automatisch Administrationsrechte.
 admin_title=Konto-Einstellungen für den Administrator
 admin_title=Konto-Einstellungen für den Administrator
 admin_name=Benutzername
 admin_name=Benutzername
 admin_password=Passwort
 admin_password=Passwort
@@ -187,8 +203,8 @@ followers=Folgen
 starred=Markiert
 starred=Markiert
 following=Folgt
 following=Folgt
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=Der Benutzername '%s' ist reserviert.
+form.name_pattern_not_allowed=Benutzernamens-Muster "%s" ist nicht zulässig.
 
 
 [settings]
 [settings]
 profile=Profil
 profile=Profil
@@ -234,7 +250,7 @@ primary_email=Als primäre Adresse verwenden
 delete_email=Löschen
 delete_email=Löschen
 add_new_email=Neue E-Mail-Adresse hinzufügen
 add_new_email=Neue E-Mail-Adresse hinzufügen
 add_email=E-Mail-Adresse hinzufügen
 add_email=E-Mail-Adresse hinzufügen
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=Eine neue Bestätigungsmail wurde an <b>%s</b> gesendet, bitte überprüfen Sie Ihren Posteingang innerhalb von %d Stunden um die Bestätigung abzuschließen.
 add_email_success=Deine neue E-Mail-Adresse wurde erfolgreich hinzugefügt.
 add_email_success=Deine neue E-Mail-Adresse wurde erfolgreich hinzugefügt.
 
 
 manage_ssh_keys=SSH-Schlüssel verwalten
 manage_ssh_keys=SSH-Schlüssel verwalten
@@ -290,8 +306,8 @@ create_repo=Repository erstellen
 default_branch=Standard-Branch
 default_branch=Standard-Branch
 mirror_interval=Spiegel-Intervall (in Stunden)
 mirror_interval=Spiegel-Intervall (in Stunden)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=Repository-Name '%s' ist bereits vergeben.
+form.name_pattern_not_allowed=Repository-Namesmuster '%s' ist nicht zulässig.
 
 
 need_auth=Authorisierung benötigt
 need_auth=Authorisierung benötigt
 migrate_type=Migrationstyp
 migrate_type=Migrationstyp
@@ -443,8 +459,8 @@ team_name_helper=Verwende diesen Namen, um dich auf dieses Team zu beziehen.
 team_desc_helper=Was hat es mit diesem Team auf sich?
 team_desc_helper=Was hat es mit diesem Team auf sich?
 team_permission_desc=Welche Berechtigungsstufe soll das Team haben?
 team_permission_desc=Welche Berechtigungsstufe soll das Team haben?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=Organisationsname '%s' ist bereits vergeben.
+form.name_pattern_not_allowed=Organisations-Namensmuster '%s' ist nicht zulässig.
 
 
 settings=Einstellungen
 settings=Einstellungen
 settings.options=Optionen
 settings.options=Optionen
@@ -619,6 +635,7 @@ auths.smtp_auth=SMTP-Authentifizierungstyp
 auths.smtphost=SMTP-Host
 auths.smtphost=SMTP-Host
 auths.smtpport=SMTP-Port
 auths.smtpport=SMTP-Port
 auths.enable_tls=TLS-Verschlüsselung aktivieren
 auths.enable_tls=TLS-Verschlüsselung aktivieren
+auths.pam_service_name=PAM Dienstname
 auths.enable_auto_register=Automatische Registrierung aktivieren
 auths.enable_auto_register=Automatische Registrierung aktivieren
 auths.tips=Tipps
 auths.tips=Tipps
 auths.edit=Authentifizierungseinstellungen bearbeiten
 auths.edit=Authentifizierungseinstellungen bearbeiten
@@ -667,6 +684,7 @@ config.deliver_timeout=Zeitlimit für Zustellung
 config.skip_tls_verify=TLS verifikation überspringen
 config.skip_tls_verify=TLS verifikation überspringen
 config.mailer_config=Mailer-Einstellungen
 config.mailer_config=Mailer-Einstellungen
 config.mailer_enabled=Aktiviert
 config.mailer_enabled=Aktiviert
+config.mailer_disable_helo=HELO Deaktivieren
 config.mailer_name=Name
 config.mailer_name=Name
 config.mailer_host=Host
 config.mailer_host=Host
 config.mailer_user=Benutzer
 config.mailer_user=Benutzer

+ 19 - 3
conf/locale/locale_en-US.ini

@@ -50,6 +50,7 @@ code = Code
 install = Installation
 install = Installation
 title = Install Steps For First-time Run
 title = Install Steps For First-time Run
 requite_db_desc = Gogs requires MySQL, PostgreSQL or SQLite3.
 requite_db_desc = Gogs requires MySQL, PostgreSQL or SQLite3.
+db_title = Database Settings
 db_type = Database Type
 db_type = Database Type
 host = Host
 host = Host
 user = User
 user = User
@@ -59,7 +60,11 @@ db_helper = Please use INNODB engine with utf8_general_ci charset for MySQL.
 ssl_mode = SSL Mode
 ssl_mode = SSL Mode
 path = Path
 path = Path
 sqlite_helper = The file path of SQLite3 database.
 sqlite_helper = The file path of SQLite3 database.
-general_title = General Settings of Gogs
+err_empty_sqlite_path = SQLite3 database path cannot be empty.
+
+general_title = Application General Settings
+app_name = Application Name
+app_name_helper = Put your organization name here huge and loud!
 repo_path = Repository Root Path
 repo_path = Repository Root Path
 repo_path_helper = All Git remote repositories will be saved to this directory.
 repo_path_helper = All Git remote repositories will be saved to this directory.
 run_user = Run User
 run_user = Run User
@@ -70,13 +75,24 @@ http_port = HTTP Port
 http_port_helper = Port number which application will listen on.
 http_port_helper = Port number which application will listen on.
 app_url = Application URL
 app_url = Application URL
 app_url_helper = This affects HTTP/HTTPS clone URL and somewhere in e-mail.
 app_url_helper = This affects HTTP/HTTPS clone URL and somewhere in e-mail.
-email_title = E-mail Service Settings (Optional)
+
+optional_title = Optional Settings
+email_title = E-mail Service Settings
 smtp_host = SMTP Host
 smtp_host = SMTP Host
+smtp_from = From
+smtp_from_helper = Mail from address, RFC 5322. It can be just an email address, or the "Name" <email@example.com> format.
 mailer_user = Sender E-mail
 mailer_user = Sender E-mail
 mailer_password = Sender Password
 mailer_password = Sender Password
-notify_title = Notification Settings (Optional)
 register_confirm = Enable Register Confirmation
 register_confirm = Enable Register Confirmation
 mail_notify = Enable Mail Notification
 mail_notify = Enable Mail Notification
+server_service_title = Server and Other Services Settings
+offline_mode = Enable Offline Mode
+offline_mode_popup = Disable CDN even in production mode, all resource files will be served locally.
+disable_registration = Disable Self-registration
+disable_registration_popup = Disable user self-registration, only admin can create accounts.
+require_sign_in_view = Enable Require Sign In to View Pages
+require_sign_in_view_popup = Only signed in users can view pages, visitors will only be able to see sign in/up pages.
+admin_setting_desc = You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
 admin_title = Admin Account Settings
 admin_title = Admin Account Settings
 admin_name = Username
 admin_name = Username
 admin_password = Password
 admin_password = Password

+ 33 - 15
conf/locale/locale_es-ES.ini

@@ -40,16 +40,17 @@ issues=Publicaciones
 cancel=Cancelar
 cancel=Cancelar
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
-code=Code
+search=Buscar...
+repository=Repositorio
+user=Usuario
+issue=Incidencia
+code=Código
 
 
 [install]
 [install]
 install=Instalación
 install=Instalación
 title=Pasos de la instalación por primera vez
 title=Pasos de la instalación por primera vez
 requite_db_desc=Gogs necesita MySQL, PostgreSQL o SQLite3.
 requite_db_desc=Gogs necesita MySQL, PostgreSQL o SQLite3.
+db_title=Configuración de base de datos
 db_type=Tipo de base de datos
 db_type=Tipo de base de datos
 host=Anfitrión
 host=Anfitrión
 user=Usuario
 user=Usuario
@@ -59,7 +60,11 @@ db_helper=Por favor utilice el motor INNODB con la configuración de caracteres
 ssl_mode=Modo SSL
 ssl_mode=Modo SSL
 path=Ruta
 path=Ruta
 sqlite_helper=Ruta del archivo de la base de datos de SQLite3.
 sqlite_helper=Ruta del archivo de la base de datos de SQLite3.
-general_title=Configuraciones Generales de Gogs
+err_empty_sqlite_path=La ruta de la base de datos SQLite3 no puede estar vacía.
+
+general_title=Configuración General de Gogs
+app_name=Nombre de la Aplicación
+app_name_helper=Pon aquí el nombre de tu organización, ¡alto y claro!
 repo_path=Ruta del repositorio de Raiz (Root)
 repo_path=Ruta del repositorio de Raiz (Root)
 repo_path_helper=Todos los repositorios remotos de Git se guardarán en este directorio.
 repo_path_helper=Todos los repositorios remotos de Git se guardarán en este directorio.
 run_user=Abrir el usuario
 run_user=Abrir el usuario
@@ -70,13 +75,24 @@ http_port=Puerto HTTP
 http_port_helper=Puerto en el que escuchará la aplicación.
 http_port_helper=Puerto en el que escuchará la aplicación.
 app_url=URL de la aplicación
 app_url=URL de la aplicación
 app_url_helper=Esto afecta a las URLs para clonar por HTTP/HTTPS y a algunos correos electrónicos.
 app_url_helper=Esto afecta a las URLs para clonar por HTTP/HTTPS y a algunos correos electrónicos.
-email_title=Configuración del Servicio de Correo (Opcional)
+
+optional_title=Configuración Opcional
+email_title=Configuración del Servicio de Correo
 smtp_host=SMTP Host
 smtp_host=SMTP Host
+smtp_from=Desde
+smtp_from_helper=Remitente del email, RFC 5322. Puede ser solamente una dirección de correo electrónico, o estar en el formato "Nombre" <email@example.com>.
 mailer_user=Remitente del Correo Electrónico
 mailer_user=Remitente del Correo Electrónico
 mailer_password=Contraseña del Remitente
 mailer_password=Contraseña del Remitente
-notify_title=Configuración de Notificaciones (Opcional)
 register_confirm=Habilitar la Confirmación en el Registro
 register_confirm=Habilitar la Confirmación en el Registro
 mail_notify=Habilitar las Notificaciones de Correo
 mail_notify=Habilitar las Notificaciones de Correo
+server_service_title=Configuración de Servidor y Otros Servicios
+offline_mode=Activar el modo Sin Conexión
+offline_mode_popup=Desactivar el CDN incluso en el modo de producción, todos los recursos se servirán localmente.
+disable_registration=Desactivar Auto-Registro
+disable_registration_popup=Desactivar auto-registro del usuario, solo el administrador podrá crear cuentas nuevas.
+require_sign_in_view=Activar el Inicio de Sesión obligatorio para Ver Páginas
+require_sign_in_view_popup=Solo los usuarios logados pueden ver páginas, los visitantes anónimos solo podrán ver las páginas de login/registro.
+admin_setting_desc=No es necesario crear una cuenta de administrador ahora mismo, el usuario que tenga ID=1 obtendrá privilegios de administrador automáticamente.
 admin_title=Configuración de la Cuenta de Administrador
 admin_title=Configuración de la Cuenta de Administrador
 admin_name=Nombre de usuario
 admin_name=Nombre de usuario
 admin_password=Contraseña
 admin_password=Contraseña
@@ -187,8 +203,8 @@ followers=Seguidores
 starred=Destacados
 starred=Destacados
 following=Siguiendo
 following=Siguiendo
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=El usuario '%s' está reservado.
+form.name_pattern_not_allowed=El patrón de nombre de usuario '%s' no está permitido.
 
 
 [settings]
 [settings]
 profile=Perfil
 profile=Perfil
@@ -234,7 +250,7 @@ primary_email=Marcar como principal
 delete_email=Eliminar
 delete_email=Eliminar
 add_new_email=Añadir nueva dirección de correo electrónico
 add_new_email=Añadir nueva dirección de correo electrónico
 add_email=Añadir correo electrónico
 add_email=Añadir correo electrónico
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=Un nuevo correo de confirmación ha sido enviado a <b>%s</b>, por favor, comprueba tu bandeja de entrada en las próximas %d horas para completar el proceso de confirmación.
 add_email_success=Tu nuevo correo electrónico se ha añadido correctamente.
 add_email_success=Tu nuevo correo electrónico se ha añadido correctamente.
 
 
 manage_ssh_keys=Gestionar Claves SSH
 manage_ssh_keys=Gestionar Claves SSH
@@ -290,8 +306,8 @@ create_repo=Crear Repositorio
 default_branch=Rama por defecto
 default_branch=Rama por defecto
 mirror_interval=Intervalo de mirror(en horas)
 mirror_interval=Intervalo de mirror(en horas)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=El nombre del repositorio '%s' está reservado.
+form.name_pattern_not_allowed=El patrón del nombre del repositorio '%s' no está permitido.
 
 
 need_auth=Requiere Autorización
 need_auth=Requiere Autorización
 migrate_type=Tipo de Migración
 migrate_type=Tipo de Migración
@@ -443,8 +459,8 @@ team_name_helper=Utiliza este nombre para mencionar a este equipo en las convers
 team_desc_helper=¿En qué consiste este equipo?
 team_desc_helper=¿En qué consiste este equipo?
 team_permission_desc=¿Qué nivel de permisos debería tener este equipo?
 team_permission_desc=¿Qué nivel de permisos debería tener este equipo?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=El nombre de la organización '%s' está reservado.
+form.name_pattern_not_allowed=El patrón de nombre de la organización '%s' no está permitido.
 
 
 settings=Configuración
 settings=Configuración
 settings.options=Opciones
 settings.options=Opciones
@@ -619,6 +635,7 @@ auths.smtp_auth=Tipo de Autorización SMTP
 auths.smtphost=SMTP Host
 auths.smtphost=SMTP Host
 auths.smtpport=Puerto SMTP
 auths.smtpport=Puerto SMTP
 auths.enable_tls=Habilitar Cifrado TLS
 auths.enable_tls=Habilitar Cifrado TLS
+auths.pam_service_name=Nombre del Servicio PAM
 auths.enable_auto_register=Hablilitar Auto-Registro
 auths.enable_auto_register=Hablilitar Auto-Registro
 auths.tips=Consejos
 auths.tips=Consejos
 auths.edit=Editar la Configuración de Autorización
 auths.edit=Editar la Configuración de Autorización
@@ -667,6 +684,7 @@ config.deliver_timeout=Timeout de Entrega
 config.skip_tls_verify=Omitir la Verificación TLS
 config.skip_tls_verify=Omitir la Verificación TLS
 config.mailer_config=Configuración del Mailer
 config.mailer_config=Configuración del Mailer
 config.mailer_enabled=Activado
 config.mailer_enabled=Activado
+config.mailer_disable_helo=Desactivar HELO
 config.mailer_name=Nombre
 config.mailer_name=Nombre
 config.mailer_host=Host
 config.mailer_host=Host
 config.mailer_user=Usuario
 config.mailer_user=Usuario

+ 31 - 13
conf/locale/locale_fr-FR.ini

@@ -40,16 +40,17 @@ issues=Problèmes
 cancel=Annuler
 cancel=Annuler
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
+search=Rechercher...
+repository=Dépôt
+user=Utilisateur
+issue=Ticket
 code=Code
 code=Code
 
 
 [install]
 [install]
 install=Installation
 install=Installation
 title=Instructions de Première Installation
 title=Instructions de Première Installation
 requite_db_desc=Gogs nécessite MySQL, PostgreSQL ou SQLite3.
 requite_db_desc=Gogs nécessite MySQL, PostgreSQL ou SQLite3.
+db_title=Paramètres de la base de données
 db_type=Type de Base de Données
 db_type=Type de Base de Données
 host=Hôte
 host=Hôte
 user=Utilisateur
 user=Utilisateur
@@ -59,7 +60,11 @@ db_helper=Veuillez utiliser le moteur INNODB avec le jeu de caractères utf8_gen
 ssl_mode=Mode SSL
 ssl_mode=Mode SSL
 path=Chemin
 path=Chemin
 sqlite_helper=Emplacement du fichier de la base de données SQLite3.
 sqlite_helper=Emplacement du fichier de la base de données SQLite3.
+err_empty_sqlite_path=Le chemin de la base de donnée SQLite3 ne peut être vide.
+
 general_title=Paramètres Généraux de Gogs
 general_title=Paramètres Généraux de Gogs
+app_name=Nom de l'Application
+app_name_helper=Inscrivez fièrement le nom de votre organisation ici !
 repo_path=Emplacement Racine du Référentiel
 repo_path=Emplacement Racine du Référentiel
 repo_path_helper=Tous les Référentiels Git distants seront sauvegardés ici.
 repo_path_helper=Tous les Référentiels Git distants seront sauvegardés ici.
 run_user=Entrer un Utilisateur
 run_user=Entrer un Utilisateur
@@ -70,13 +75,24 @@ http_port=Port HTTP
 http_port_helper=Numéro de port que l'application écoutera.
 http_port_helper=Numéro de port que l'application écoutera.
 app_url=URL de l'Application
 app_url=URL de l'Application
 app_url_helper=Cela affecte les doublons d'URL HTTP/HTTPS et le contenu d'e-mail.
 app_url_helper=Cela affecte les doublons d'URL HTTP/HTTPS et le contenu d'e-mail.
-email_title=Paramètres du Service de Messagerie (Facultatif)
+
+optional_title=Paramètres facultatifs
+email_title=Paramètres du Service de Messagerie
 smtp_host=Hôte SMTP
 smtp_host=Hôte SMTP
+smtp_from=De
+smtp_from_helper=Adresse de l'expéditeur, RFC 5322. Soit une adresse courriel simple, soit au format "Nom" <email@example.com>.
 mailer_user=E-mail de l'Expéditeur
 mailer_user=E-mail de l'Expéditeur
 mailer_password=Mot de Passe de l'Expéditeur
 mailer_password=Mot de Passe de l'Expéditeur
-notify_title=Paramètre des Notifications (Facultatif)
 register_confirm=Activer la Confirmation d'Enregistrement
 register_confirm=Activer la Confirmation d'Enregistrement
 mail_notify=Activer la Notification des Mails reçus
 mail_notify=Activer la Notification des Mails reçus
+server_service_title=Paramètres du serveur et des autres services
+offline_mode=Activer le Mode hors connexion
+offline_mode_popup=Désactiver le CDN, même en production. Toutes les ressources seront distribuées en local.
+disable_registration=Désactiver le formulaire d'inscription
+disable_registration_popup=Désactiver le formulaire d'inscription, seuls les administrateurs peuvent créer des comptes.
+require_sign_in_view=Demander une connexion pour afficher des pages
+require_sign_in_view_popup=Seules les personnes connectées peuvent voir les pages. Les visiteurs anonymes ne pourront voir que les pages de connexion/enregistrement.
+admin_setting_desc=Vous n'avez pas besoin de créer un compte admin. L'utilisateur ayant l'ID = 1 aura l'accès admin automatiquement.
 admin_title=Paramètres du Compte Administrateur
 admin_title=Paramètres du Compte Administrateur
 admin_name=Nom d'Utilisateur
 admin_name=Nom d'Utilisateur
 admin_password=Mot de Passe
 admin_password=Mot de Passe
@@ -187,8 +203,8 @@ followers=Abonnés
 starred=Votés
 starred=Votés
 following=Abonnements
 following=Abonnements
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=Le nom '%s' est réservé.
+form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'utilisateur.
 
 
 [settings]
 [settings]
 profile=Profil
 profile=Profil
@@ -234,7 +250,7 @@ primary_email=Définir comme principale
 delete_email=Supprimer
 delete_email=Supprimer
 add_new_email=Ajouter une nouvelle adresse courriel
 add_new_email=Ajouter une nouvelle adresse courriel
 add_email=Ajouter un courriel
 add_email=Ajouter un courriel
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=Un nouvel e-mail de confirmation a été envoyé à <b>%s</b>, merci de vérifier votre boite de réception dans les %d heures pour compléter le processus de confirmation.
 add_email_success=Votre courriel a été ajouté avec succès.
 add_email_success=Votre courriel a été ajouté avec succès.
 
 
 manage_ssh_keys=Gérer les clés SSH
 manage_ssh_keys=Gérer les clés SSH
@@ -290,8 +306,8 @@ create_repo=Créer un Référentiel
 default_branch=Branche par défaut
 default_branch=Branche par défaut
 mirror_interval=Intervalle du miroir (heure)
 mirror_interval=Intervalle du miroir (heure)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=Le nom de dépôt '%s' est réservé.
+form.name_pattern_not_allowed=Motif '%s' interdit pour les noms de dépôt.
 
 
 need_auth=Nécessite une Autorisation
 need_auth=Nécessite une Autorisation
 migrate_type=Type de Migration
 migrate_type=Type de Migration
@@ -443,8 +459,8 @@ team_name_helper=Ce nom sera utilisé pour mentionner l'équipe dans les convers
 team_desc_helper=Présentation de l'équipe
 team_desc_helper=Présentation de l'équipe
 team_permission_desc=Quel niveau d'accès cette équipe devrait-elle posséder ?
 team_permission_desc=Quel niveau d'accès cette équipe devrait-elle posséder ?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=Le nom d'organisation '%s' est réservé.
+form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'organisation.
 
 
 settings=Paramètres
 settings=Paramètres
 settings.options=Options
 settings.options=Options
@@ -619,6 +635,7 @@ auths.smtp_auth=Type d'Autorisation SMTP
 auths.smtphost=Hôte SMTP
 auths.smtphost=Hôte SMTP
 auths.smtpport=Port SMTP
 auths.smtpport=Port SMTP
 auths.enable_tls=Activer le Chiffrement TLS
 auths.enable_tls=Activer le Chiffrement TLS
+auths.pam_service_name=Nom du Service PAM
 auths.enable_auto_register=Connexion Automatique
 auths.enable_auto_register=Connexion Automatique
 auths.tips=Conseils
 auths.tips=Conseils
 auths.edit=Modifier les Paramètres d'Autorisation
 auths.edit=Modifier les Paramètres d'Autorisation
@@ -667,6 +684,7 @@ config.deliver_timeout=Expiration d'Envoi
 config.skip_tls_verify=Ne pas vérifier TLS
 config.skip_tls_verify=Ne pas vérifier TLS
 config.mailer_config=Configuration du Maileur
 config.mailer_config=Configuration du Maileur
 config.mailer_enabled=Activé
 config.mailer_enabled=Activé
+config.mailer_disable_helo=Désactiver HELO
 config.mailer_name=Nom
 config.mailer_name=Nom
 config.mailer_host=Hôte
 config.mailer_host=Hôte
 config.mailer_user=Utilisateur
 config.mailer_user=Utilisateur

+ 32 - 14
conf/locale/locale_ja-JP.ini

@@ -40,16 +40,17 @@ issues=課題
 cancel=キャンセル
 cancel=キャンセル
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
-code=Code
+search=検索...
+repository=リポジトリ
+user=ユーザ
+issue=課題
+code=コード
 
 
 [install]
 [install]
 install=インストール
 install=インストール
 title=初回実行のインストール手順
 title=初回実行のインストール手順
 requite_db_desc=Gogs には、MySQL や PostgreSQL 、SQLite3 が必要です。
 requite_db_desc=Gogs には、MySQL や PostgreSQL 、SQLite3 が必要です。
+db_title=データベース設定
 db_type=データベースの種類
 db_type=データベースの種類
 host=ホスト
 host=ホスト
 user=ユーザ
 user=ユーザ
@@ -59,7 +60,11 @@ db_helper=Mysql INNODB エンジン utf8_general_ci の文字セットを使用
 ssl_mode=SSL モード
 ssl_mode=SSL モード
 path=パス
 path=パス
 sqlite_helper=SQLite3 データベースのファイル パス
 sqlite_helper=SQLite3 データベースのファイル パス
+err_empty_sqlite_path=SQLite3 データベースのパスは、空にすることはできません。
+
 general_title=Gogs の全般設定
 general_title=Gogs の全般設定
+app_name=アプリケーション名
+app_name_helper=素晴らしい組織名を入れてください!
 repo_path=リポジトリのルートパス
 repo_path=リポジトリのルートパス
 repo_path_helper=すべての Git リモート リポジトリはこのディレクトリに保存されます。
 repo_path_helper=すべての Git リモート リポジトリはこのディレクトリに保存されます。
 run_user=実行ユーザ
 run_user=実行ユーザ
@@ -70,13 +75,24 @@ http_port=HTTP ポート
 http_port_helper=アプリケーションが待ち受けするポート番号。
 http_port_helper=アプリケーションが待ち受けするポート番号。
 app_url=アプリケーションの URL
 app_url=アプリケーションの URL
 app_url_helper=この設定は、HTTP / HTTPSのクローンURLおよび、一部のメールボックスへのリンクに影響を与えます。
 app_url_helper=この設定は、HTTP / HTTPSのクローンURLおよび、一部のメールボックスへのリンクに影響を与えます。
-email_title=E-mailサービス設定(Optional)
+
+optional_title=オプション設定
+email_title=E-mailサービス設定
 smtp_host=SMTP ホスト
 smtp_host=SMTP ホスト
+smtp_from=差出人
+smtp_from_helper=送信者メールアドレス、RFC 5322。フォーマットはメールアドレスのみ、または"Name" <email@example.com>。
 mailer_user=送信者の電子メール
 mailer_user=送信者の電子メール
 mailer_password=送信者のパスワード
 mailer_password=送信者のパスワード
-notify_title=通知 Settings(Optional)
 register_confirm=登録の確認を有効にする
 register_confirm=登録の確認を有効にする
 mail_notify=メール通知を有効にする
 mail_notify=メール通知を有効にする
+server_service_title=サーバーとその他のサービスの設定
+offline_mode=オフラインモード有効化
+offline_mode_popup=プロダクション モードでCDN を無効にし、すべてのリソースファイルをローカルで提供します 。
+disable_registration=自己登録を無効にする
+disable_registration_popup=自己登録を無効にし、管理者のみがアカウント作成できる
+require_sign_in_view=サインインしたユーザのみページ閲覧を許可
+require_sign_in_view_popup=サインインしたユーザのみがページを閲覧できます。ビジターはサインインもしくはサインアップページのみ見られます。
+admin_setting_desc=今管理者アカウントを作成する必要はありません。ID = 1のユーザ は自動的に管理者の権限を獲得します。
 admin_title=管理者アカウントの設定
 admin_title=管理者アカウントの設定
 admin_name=ユーザ名
 admin_name=ユーザ名
 admin_password=パスワード
 admin_password=パスワード
@@ -187,8 +203,8 @@ followers=フォロワー
 starred=スター
 starred=スター
 following=フォロー
 following=フォロー
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=ユーザー名 '%s' は予約されています。
+form.name_pattern_not_allowed=ユーザ名のパターン '%s' は許可されていません。
 
 
 [settings]
 [settings]
 profile=プロフィール
 profile=プロフィール
@@ -234,7 +250,7 @@ primary_email=プライマリに設定
 delete_email=削除
 delete_email=削除
 add_new_email=新しいe-mailアドレスを追加
 add_new_email=新しいe-mailアドレスを追加
 add_email=電子メールを追加します。
 add_email=電子メールを追加します。
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=<b>%s</b> に新しい確認メールを送信しました、次の %d 時間以内に受信トレイを確認し、確認プロセスを完了してください。
 add_email_success=新しいe-mail アドレスが追加されました。
 add_email_success=新しいe-mail アドレスが追加されました。
 
 
 manage_ssh_keys=SSH キーを管理
 manage_ssh_keys=SSH キーを管理
@@ -290,8 +306,8 @@ create_repo=リポジトリを作成
 default_branch=デフォルトのブランチ
 default_branch=デフォルトのブランチ
 mirror_interval=ミラー 間隔(時)
 mirror_interval=ミラー 間隔(時)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=リポジトリ名 '%s' は予約されています。
+form.name_pattern_not_allowed=リポジトリ名のパターン '%s' は許可されていません。
 
 
 need_auth=認証が必要
 need_auth=認証が必要
 migrate_type=マイグレーションの種類
 migrate_type=マイグレーションの種類
@@ -443,8 +459,8 @@ team_name_helper=会話の時、この名前を使用しチーム名を表明し
 team_desc_helper=このチームに関する全ての情報は?
 team_desc_helper=このチームに関する全ての情報は?
 team_permission_desc=このチームに必要な権限レベルは?
 team_permission_desc=このチームに必要な権限レベルは?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=組織名 '%s' は予約されています。
+form.name_pattern_not_allowed=組織名のパターン '%s' は許可されていません。
 
 
 settings=設定
 settings=設定
 settings.options=オプション
 settings.options=オプション
@@ -619,6 +635,7 @@ auths.smtp_auth=SMTP 認証の種類
 auths.smtphost=SMTP ホスト
 auths.smtphost=SMTP ホスト
 auths.smtpport=SMTP ポート
 auths.smtpport=SMTP ポート
 auths.enable_tls=TLS 暗号化を有効にする
 auths.enable_tls=TLS 暗号化を有効にする
+auths.pam_service_name=PAMサービス名
 auths.enable_auto_register=自動登録を有効にする
 auths.enable_auto_register=自動登録を有効にする
 auths.tips=ヒント
 auths.tips=ヒント
 auths.edit=認証設定を編集
 auths.edit=認証設定を編集
@@ -667,6 +684,7 @@ config.deliver_timeout=送信タイムアウト
 config.skip_tls_verify=TLSの確認を省略
 config.skip_tls_verify=TLSの確認を省略
 config.mailer_config=メーラーの構成
 config.mailer_config=メーラーの構成
 config.mailer_enabled=有効にした
 config.mailer_enabled=有効にした
+config.mailer_disable_helo=HELOコマンド無効
 config.mailer_name=名前
 config.mailer_name=名前
 config.mailer_host=ホスト
 config.mailer_host=ホスト
 config.mailer_user=ユーザ
 config.mailer_user=ユーザ

+ 18 - 2
conf/locale/locale_lv-LV.ini

@@ -50,6 +50,7 @@ code=Code
 install=Instalācija
 install=Instalācija
 title=Instalācijas soļi pirmo reizi palaižot
 title=Instalācijas soļi pirmo reizi palaižot
 requite_db_desc=Gogs ir nepieciešama MySQL, PostgreSQL vai SQLite3 datu bāze.
 requite_db_desc=Gogs ir nepieciešama MySQL, PostgreSQL vai SQLite3 datu bāze.
+db_title=Database Settings
 db_type=Datu bāzes veids
 db_type=Datu bāzes veids
 host=Resursdators
 host=Resursdators
 user=Lietotājs
 user=Lietotājs
@@ -59,7 +60,11 @@ db_helper=Nepieciešams izmantot MySQL INNODB dzini ar rakstzīmju kopu utf8_gen
 ssl_mode=SSL režīms
 ssl_mode=SSL režīms
 path=Ceļš
 path=Ceļš
 sqlite_helper=SQLite 3 datu bāzes faila atrašanās vieta.
 sqlite_helper=SQLite 3 datu bāzes faila atrašanās vieta.
+err_empty_sqlite_path=SQLite3 database path cannot be empty.
+
 general_title=Gogs vispārīgie iestatījumi
 general_title=Gogs vispārīgie iestatījumi
+app_name=Application Name
+app_name_helper=Put your organization name here huge and loud!
 repo_path=Repozitoriju glabāšanas vieta
 repo_path=Repozitoriju glabāšanas vieta
 repo_path_helper=Visi Git attālinātie repozitoriji tiks glabāti šajā direktorijā.
 repo_path_helper=Visi Git attālinātie repozitoriji tiks glabāti šajā direktorijā.
 run_user=Izpildes lietotājs
 run_user=Izpildes lietotājs
@@ -70,13 +75,22 @@ http_port=HTTP ports
 http_port_helper=Porta numurs pēc kura lietojumprogrammai būs iespējams pieslēgties.
 http_port_helper=Porta numurs pēc kura lietojumprogrammai būs iespējams pieslēgties.
 app_url=Lietotnes URL
 app_url=Lietotnes URL
 app_url_helper=Tas ietekmē HTTP/HTTPS klonēšanas URL un e-pasta saturā izsūtītās saites.
 app_url_helper=Tas ietekmē HTTP/HTTPS klonēšanas URL un e-pasta saturā izsūtītās saites.
-email_title=E-pasta pakalpojuma iestatījumi (neobligāti)
+
+optional_title=Optional Settings
+email_title=E-pasta pakalpojuma iestatījumi
 smtp_host=SMTP resursdators
 smtp_host=SMTP resursdators
 mailer_user=Sūtītāja e-pasta adrese
 mailer_user=Sūtītāja e-pasta adrese
 mailer_password=Sūtītāja parole
 mailer_password=Sūtītāja parole
-notify_title=Paziņojumu iestatījumi (neobligāti)
 register_confirm=Iespējot reģistrēšanās apstiprināšanu
 register_confirm=Iespējot reģistrēšanās apstiprināšanu
 mail_notify=Iespējot e-pasta paziņojumus
 mail_notify=Iespējot e-pasta paziņojumus
+server_service_title=Server and Other Services Settings
+offline_mode=Enable Offline Mode
+offline_mode_popup=Disable CDN even in production mode, all resource files will be served locally.
+disable_registration=Disable Self-registration
+disable_registration_popup=Disable user self-registration, only admin can create accounts.
+require_sign_in_view=Enable Require Sign In to View Pages
+require_sign_in_view_popup=Only signed in users can view pages, visitors will only be able to see sign in/up pages.
+admin_setting_desc=You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
 admin_title=Admin konta iestatījumi
 admin_title=Admin konta iestatījumi
 admin_name=Lietotājvārds
 admin_name=Lietotājvārds
 admin_password=Parole
 admin_password=Parole
@@ -619,6 +633,7 @@ auths.smtp_auth=SMTP autorizācijas veids
 auths.smtphost=SMTP resursdators
 auths.smtphost=SMTP resursdators
 auths.smtpport=SMTP ports
 auths.smtpport=SMTP ports
 auths.enable_tls=Iespējot TLS šifrēšanu
 auths.enable_tls=Iespējot TLS šifrēšanu
+auths.pam_service_name=PAM Service Name
 auths.enable_auto_register=Iespējot automātisko reģistrāciju
 auths.enable_auto_register=Iespējot automātisko reģistrāciju
 auths.tips=Padomi
 auths.tips=Padomi
 auths.edit=Labot autorizācijas iestatījumus
 auths.edit=Labot autorizācijas iestatījumus
@@ -667,6 +682,7 @@ config.deliver_timeout=Piegādes noildze
 config.skip_tls_verify=Izlaist TLS pārbaudi
 config.skip_tls_verify=Izlaist TLS pārbaudi
 config.mailer_config=Sūtītāja konfigurācija
 config.mailer_config=Sūtītāja konfigurācija
 config.mailer_enabled=Iespējots
 config.mailer_enabled=Iespējots
+config.mailer_disable_helo=Disable HELO
 config.mailer_name=Nosaukums
 config.mailer_name=Nosaukums
 config.mailer_host=Resursdators
 config.mailer_host=Resursdators
 config.mailer_user=Lietotājs
 config.mailer_user=Lietotājs

+ 32 - 14
conf/locale/locale_nl-NL.ini

@@ -40,16 +40,17 @@ issues=Kwesties
 cancel=Annuleer
 cancel=Annuleer
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
+search=Zoeken...
+repository=Opslagplaats
+user=Gebruiker
+issue=Probleem
 code=Code
 code=Code
 
 
 [install]
 [install]
 install=Installatie
 install=Installatie
 title=Installatiestappen voor de eerste keer opstarten
 title=Installatiestappen voor de eerste keer opstarten
 requite_db_desc=Om Gogs te gebruiken is MySQL, PostgreSQL of SQLite3 vereist (SQLite3 is beschikbaar in de officiële versie).
 requite_db_desc=Om Gogs te gebruiken is MySQL, PostgreSQL of SQLite3 vereist (SQLite3 is beschikbaar in de officiële versie).
+db_title=Database instellingen
 db_type=Database-type
 db_type=Database-type
 host=Host
 host=Host
 user=Gebruikersnaam
 user=Gebruikersnaam
@@ -59,7 +60,11 @@ db_helper=Gebruik InnoDB engine met utf8_general_ci karakterset voor MySQL.
 ssl_mode=SSL-modus
 ssl_mode=SSL-modus
 path=Pad
 path=Pad
 sqlite_helper=Het pad naar de SQLite3 database.
 sqlite_helper=Het pad naar de SQLite3 database.
-general_title=Algemene instellingen van Gogs
+err_empty_sqlite_path=SQLite3 database pad mag niet leeg zijn.
+
+general_title=Toepassing algemene instellingen
+app_name=Applicatienaam
+app_name_helper=Plaats hier je organisatienaam in grote letters!
 repo_path=Repositories basis directorie
 repo_path=Repositories basis directorie
 repo_path_helper=Alle remote Git repositories worden in deze directorie opgeslagen
 repo_path_helper=Alle remote Git repositories worden in deze directorie opgeslagen
 run_user=Uitvoerende gebruikersnaam
 run_user=Uitvoerende gebruikersnaam
@@ -70,13 +75,24 @@ http_port=HTTP-poort
 http_port_helper=Poortnummer waar het programma naar luistert.
 http_port_helper=Poortnummer waar het programma naar luistert.
 app_url=Applicatie URL
 app_url=Applicatie URL
 app_url_helper=Dit heeft invloed op de HTTP/HTTPS kloon urls en de urls die in de email worden gebruikt
 app_url_helper=Dit heeft invloed op de HTTP/HTTPS kloon urls en de urls die in de email worden gebruikt
-email_title=E-mail service instellingen (Optioneel)
+
+optional_title=Optionele instellingen
+email_title=E-mail service instellingen
 smtp_host=SMTP host
 smtp_host=SMTP host
+smtp_from=Afzender
+smtp_from_helper=Email afzender, RFC 5322. Dit kan gewoon een email adres zijn of het "Naam"<email@example.com> formaat.
 mailer_user=Afzender e-mail / gebruikersnaam
 mailer_user=Afzender e-mail / gebruikersnaam
 mailer_password=Wachtwoord
 mailer_password=Wachtwoord
-notify_title=Notificatie-instelligen (optioneel)
 register_confirm=Activeer registratie emails
 register_confirm=Activeer registratie emails
 mail_notify=Activeer e-mailnotificaties
 mail_notify=Activeer e-mailnotificaties
+server_service_title=Server en andere Services-instellingen
+offline_mode=Off line modus inschakelen
+offline_mode_popup=Schakel CDN uit in productiemodus, alle bestanden worden lokaal aangeboden.
+disable_registration=Schakel zelfregistratie uit
+disable_registration_popup=Schakel zelfregistratie uit, alleen admins kunnen accounts maken.
+require_sign_in_view=Schakel vereiste aanmelding om pagina's te zien in
+require_sign_in_view_popup=Alleen ingelogde gebruikers kunnen pagina's bekijken, bezoekers kunnen alleen de login/registratie pagina's zien.
+admin_setting_desc=U hoeft niet meteen een administratie account te maken, de gebruiker met ID=1 krijgt automatisch administratierechten.
 admin_title=Instellingen beheerdersaccount
 admin_title=Instellingen beheerdersaccount
 admin_name=Gebruikersnaam
 admin_name=Gebruikersnaam
 admin_password=Wachtwoord
 admin_password=Wachtwoord
@@ -187,8 +203,8 @@ followers=Volgers
 starred=Sterren
 starred=Sterren
 following=Volgt
 following=Volgt
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=De gebruikersnaam '%s' is gereserveerd.
+form.name_pattern_not_allowed=Het gebruikersnaam patroon '%s' is niet toegestaan.
 
 
 [settings]
 [settings]
 profile=Profiel
 profile=Profiel
@@ -234,7 +250,7 @@ primary_email=Instellen als primair
 delete_email=Verwijder
 delete_email=Verwijder
 add_new_email=Nieuw e-mailadres toevoegen
 add_new_email=Nieuw e-mailadres toevoegen
 add_email=E-mailadres toevoegen
 add_email=E-mailadres toevoegen
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=Een nieuwe bevestiging e-mail werd verstuurd naar <b>%s</b>, gelieve uw inbox in de komende %d uren te controleren om het bevestigingsproces te voltooien.
 add_email_success=Het e-mailadres was toegevoegd.
 add_email_success=Het e-mailadres was toegevoegd.
 
 
 manage_ssh_keys=Beheer SSH sleutels
 manage_ssh_keys=Beheer SSH sleutels
@@ -290,8 +306,8 @@ create_repo=Nieuwe Repositorie
 default_branch=Standaard branch
 default_branch=Standaard branch
 mirror_interval=Mirror interval(uur)
 mirror_interval=Mirror interval(uur)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=Repositorienaam '%s' is gereserveerd.
+form.name_pattern_not_allowed=Repositorie naampatroon '%s' is niet toegestaan.
 
 
 need_auth=Autorisatie vereist
 need_auth=Autorisatie vereist
 migrate_type=Migratie type
 migrate_type=Migratie type
@@ -443,8 +459,8 @@ team_name_helper=U gebruikt deze naam om dit team te vermelden in conversaties.
 team_desc_helper=Waar gaat dit team doen?
 team_desc_helper=Waar gaat dit team doen?
 team_permission_desc=Welke privileges zou dit team moeten hebben?
 team_permission_desc=Welke privileges zou dit team moeten hebben?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=Organisatienaam '%s' is gereserveerd.
+form.name_pattern_not_allowed=Organisatie naampatroon '%s' is niet toegestaan.
 
 
 settings=Instellingen
 settings=Instellingen
 settings.options=Opties
 settings.options=Opties
@@ -619,6 +635,7 @@ auths.smtp_auth=SMTP authenticatietype
 auths.smtphost=SMTP host
 auths.smtphost=SMTP host
 auths.smtpport=SMTP poort
 auths.smtpport=SMTP poort
 auths.enable_tls=Activeer TLS-encryptie
 auths.enable_tls=Activeer TLS-encryptie
+auths.pam_service_name=PAM servicenaam
 auths.enable_auto_register=Activeer automatische registratie
 auths.enable_auto_register=Activeer automatische registratie
 auths.tips=Tips
 auths.tips=Tips
 auths.edit=Bewerk autorisatie-instellingen
 auths.edit=Bewerk autorisatie-instellingen
@@ -667,6 +684,7 @@ config.deliver_timeout=Bezorging verlooptijd
 config.skip_tls_verify=TLS certificaat controle overslaan
 config.skip_tls_verify=TLS certificaat controle overslaan
 config.mailer_config=Mailerconfiguatie
 config.mailer_config=Mailerconfiguatie
 config.mailer_enabled=Ingeschakeld
 config.mailer_enabled=Ingeschakeld
+config.mailer_disable_helo=Schakel HELO uit
 config.mailer_name=Naam
 config.mailer_name=Naam
 config.mailer_host=Host
 config.mailer_host=Host
 config.mailer_user=Gebruiker
 config.mailer_user=Gebruiker

+ 42 - 24
conf/locale/locale_pl-PL.ini

@@ -40,16 +40,17 @@ issues=Problemy
 cancel=Anuluj
 cancel=Anuluj
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
-code=Code
+search=Wyszukiwanie...
+repository=Repozytorium
+user=Użytkownik
+issue=Zgłoszenie
+code=Kod
 
 
 [install]
 [install]
 install=Instalacja
 install=Instalacja
 title=Kroki instalacyjne dla pierwszego uruchomienia
 title=Kroki instalacyjne dla pierwszego uruchomienia
 requite_db_desc=Gogs wymaga MySQL, PostgreSQL lub SQLite3.
 requite_db_desc=Gogs wymaga MySQL, PostgreSQL lub SQLite3.
+db_title=Ustawienia bazy danych
 db_type=Typ bazy danych
 db_type=Typ bazy danych
 host=Host
 host=Host
 user=Użytkownik
 user=Użytkownik
@@ -59,7 +60,11 @@ db_helper=Proszę użyć silnika INNODB z kodowaniem utf8_general_ci dla MySQL.
 ssl_mode=Tryb SSL
 ssl_mode=Tryb SSL
 path=Ścieżka
 path=Ścieżka
 sqlite_helper=Ścieżka do bazy SQLite3.
 sqlite_helper=Ścieżka do bazy SQLite3.
+err_empty_sqlite_path=Ścieżka do bazy danych SQLite3 nie może być pusta.
+
 general_title=Ustawienia ogólne Gogs
 general_title=Ustawienia ogólne Gogs
+app_name=Nazwa aplikacji
+app_name_helper=Umieść tutaj wielką i głośną nazwę swojej organizacji!
 repo_path=Katalog repozytoriów
 repo_path=Katalog repozytoriów
 repo_path_helper=W tym katalogu zostaną zapisane wszystkie repozytoria Git.
 repo_path_helper=W tym katalogu zostaną zapisane wszystkie repozytoria Git.
 run_user=Nazwa użytkownika uruchomieniowego
 run_user=Nazwa użytkownika uruchomieniowego
@@ -70,13 +75,24 @@ http_port=Port HTTP
 http_port_helper=Numer portu na którym aplikacja jest dostępna.
 http_port_helper=Numer portu na którym aplikacja jest dostępna.
 app_url=Adres URL aplikacji
 app_url=Adres URL aplikacji
 app_url_helper=To wpłynie na adresy klonowania HTTP/HTTPS i w wiadomościach e-mail.
 app_url_helper=To wpłynie na adresy klonowania HTTP/HTTPS i w wiadomościach e-mail.
-email_title=Ustawienia serwera e-mail (opcjonalne)
+
+optional_title=Ustawienia opcjonalne
+email_title=Ustawienia serwera e-mail
 smtp_host=Serwer SMTP
 smtp_host=Serwer SMTP
+smtp_from=Od
+smtp_from_helper=Adres w polu "Od", zgodnie z RFC 5322. Może być to po prostu adres email, bądź adres w formacie "Nazwa" <email@example.com>.
 mailer_user=Nadawca wiadomości E-mail
 mailer_user=Nadawca wiadomości E-mail
 mailer_password=Hasło nadawcy
 mailer_password=Hasło nadawcy
-notify_title=Ustawienia powiadomień (opcjonalne)
 register_confirm=Włącz potwierdzenia rejestracji
 register_confirm=Włącz potwierdzenia rejestracji
 mail_notify=Włącz powiadomienia e-mail
 mail_notify=Włącz powiadomienia e-mail
+server_service_title=Ustawienia serwera i innych usług
+offline_mode=Włącz tryb offline
+offline_mode_popup=Wyłącz CDN, nawet w trybie produkcyjnym, wszystkie pliki zasobów będą podawane lokalnie.
+disable_registration=Wyłącz samodzielną rejestrację
+disable_registration_popup=Wyłącz samodzielną rejestrację użytkownika, tylko administrator będzie mógł tworzyć konta.
+require_sign_in_view=Włącz wymóg zalogowania do przeglądania stron
+require_sign_in_view_popup=Tylko zalogowani użytkownicy będą mogli przeglądać strony, goście zobaczą tylko stronę logowania.
+admin_setting_desc=Nie musisz tworzyć konta administratora teraz, użytkownik z ID = 1 zyska dostęp administratora automatycznie.
 admin_title=Ustawienia konta administratora
 admin_title=Ustawienia konta administratora
 admin_name=Nazwa Użytkownika
 admin_name=Nazwa Użytkownika
 admin_password=Hasło
 admin_password=Hasło
@@ -187,8 +203,8 @@ followers=Obserwujący
 starred=Polubionych
 starred=Polubionych
 following=Obserwowani
 following=Obserwowani
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=Nazwa użytkownika "%s" jest zarezerwowana.
+form.name_pattern_not_allowed=Wzorzec nazwy użytkownika "%s" jest niedozwolony.
 
 
 [settings]
 [settings]
 profile=Profil
 profile=Profil
@@ -234,7 +250,7 @@ primary_email=Ustaw jako podstawowy
 delete_email=Usuń
 delete_email=Usuń
 add_new_email=Dodaj nowy e-mail
 add_new_email=Dodaj nowy e-mail
 add_email=Dodaj e-mail
 add_email=Dodaj e-mail
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=Nowa wiadomość e-mail z potwierdzeniem została wysłana do <b>%s</b>, proszę sprawdzić swoją skrzynkę odbiorczą w ciągu %d godzin, aby dokończyć proces potwierdzania.
 add_email_success=Twój nowy e-mail został dodany pomyślnie.
 add_email_success=Twój nowy e-mail został dodany pomyślnie.
 
 
 manage_ssh_keys=Zarządzaj kluczami SSH
 manage_ssh_keys=Zarządzaj kluczami SSH
@@ -290,8 +306,8 @@ create_repo=Utwórz repozytorium
 default_branch=Domyślna gałąź
 default_branch=Domyślna gałąź
 mirror_interval=Odświeżanie mirrorów (godziny)
 mirror_interval=Odświeżanie mirrorów (godziny)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=Nazwa repozytorium "%s" jest zarezerwowana.
+form.name_pattern_not_allowed=Wzorzec nazwy repozytorium "%s" jest niedozwolony.
 
 
 need_auth=Wymaga autoryzacji
 need_auth=Wymaga autoryzacji
 migrate_type=Typ migracji
 migrate_type=Typ migracji
@@ -366,8 +382,8 @@ settings.remove_collaborator_success=Współpracownik został usunięty.
 settings.user_is_org_member=Użytkownik jest członkiem organizacji, który nie może być dodany jako współpracownik.
 settings.user_is_org_member=Użytkownik jest członkiem organizacji, który nie może być dodany jako współpracownik.
 settings.add_webhook=Dodaj Webhooka
 settings.add_webhook=Dodaj Webhooka
 settings.hooks_desc=Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this <a target="_blank" href="%s">Webhooks Guide</a>.
 settings.hooks_desc=Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this <a target="_blank" href="%s">Webhooks Guide</a>.
-settings.githooks_desc=Git Hooks are powered by Git itself, you can edit files of supported hooks in the list below to perform custom operations.
-settings.githook_edit_desc=If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
+settings.githooks_desc=Doczepki Git są napędzane przez samego Git, można edytować pliki obsługiwanych doczepek z poniższej listy, aby wykonywać niestandardowe operacje.
+settings.githook_edit_desc=Jeżeli doczepka jest nieaktywna, prezentowana będzie przykładowa treść. Pozostawienie pustej wartości wyłączy tą doczepkę.
 settings.githook_name=Nazwa skryptu
 settings.githook_name=Nazwa skryptu
 settings.githook_content=Treść skryptu
 settings.githook_content=Treść skryptu
 settings.update_githook=Zaktualizuj skrypt
 settings.update_githook=Zaktualizuj skrypt
@@ -443,8 +459,8 @@ team_name_helper=Będziesz używał tej nazwy do wywoływania tego zespołu w dy
 team_desc_helper=Czym zajmuje się ten zespół?
 team_desc_helper=Czym zajmuje się ten zespół?
 team_permission_desc=Jaki poziom uprawnień powinien mieć ten zespół?
 team_permission_desc=Jaki poziom uprawnień powinien mieć ten zespół?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=Nazwa organizacji "%s" jest zarezerwowana.
+form.name_pattern_not_allowed=Wzorzec nazwy organizacji "%s" jest niedozwolony.
 
 
 settings=Ustawienia
 settings=Ustawienia
 settings.options=Opcje
 settings.options=Opcje
@@ -453,14 +469,14 @@ settings.website=Strona
 settings.location=Lolalizacja
 settings.location=Lolalizacja
 settings.update_settings=Aktualizuj ustawienia
 settings.update_settings=Aktualizuj ustawienia
 settings.change_orgname=Zmieniono nazwę organizacji
 settings.change_orgname=Zmieniono nazwę organizacji
-settings.change_orgname_desc=Organization name has been changed. This will affect how links relate to the organization. Do you want to continue?
-settings.update_setting_success=Organization settings were successfully updated.
+settings.change_orgname_desc=Zmieniono nazwę organizacji. Wpływa to na powiązanie odnośników z organizacją. Czy chcesz kontynuować?
+settings.update_setting_success=Ustawienia organizacji zostały pomyślnie zaktualizowane.
 settings.delete=Usuń Organizację
 settings.delete=Usuń Organizację
 settings.delete_account=Usuń tą organizację
 settings.delete_account=Usuń tą organizację
-settings.delete_prompt=The organization will be permanently removed, and this <strong>CANNOT</strong> be undone!
+settings.delete_prompt=Organizacja zostanie trwale usunięta, a to <strong>NIE MOŻE</strong> być cofnięte!
 settings.confirm_delete_account=Potwierdź usunięcie
 settings.confirm_delete_account=Potwierdź usunięcie
 settings.delete_org_title=Usunięcie organizacji
 settings.delete_org_title=Usunięcie organizacji
-settings.delete_org_desc=This organization is going to be deleted permanently, do you want to continue?
+settings.delete_org_desc=Ta organizacja zostanie trwale usunięta, czy chcesz kontynuować?
 settings.hooks_desc=Add webhooks that will be triggered for <strong>all repositories</strong> under this organization.
 settings.hooks_desc=Add webhooks that will be triggered for <strong>all repositories</strong> under this organization.
 
 
 members.public=Publiczne
 members.public=Publiczne
@@ -485,7 +501,7 @@ teams.admin_access=Uprawnienia admina
 teams.admin_access_helper=Ten zespół będzie mógł wysyłać i pobierać swoje repozytoria, oraz dodawać do nich współpracowników.
 teams.admin_access_helper=Ten zespół będzie mógł wysyłać i pobierać swoje repozytoria, oraz dodawać do nich współpracowników.
 teams.no_desc=Ten zespół nie ma opisu
 teams.no_desc=Ten zespół nie ma opisu
 teams.settings=Ustawienia
 teams.settings=Ustawienia
-teams.owners_permission_desc=Owners have full access to <strong>all repositories</strong> and have <strong>admin rights</strong> to the organization.
+teams.owners_permission_desc=Właściciele mają pełny dostęp do <strong>wszystkich repozytoriów</strong> i mają <strong>prawa administratora</strong> w organizacji.
 teams.members=Członkowie zespołu
 teams.members=Członkowie zespołu
 teams.update_settings=Aktualizuj ustawienia
 teams.update_settings=Aktualizuj ustawienia
 teams.delete_team=Usuń ten zespół
 teams.delete_team=Usuń ten zespół
@@ -527,7 +543,7 @@ dashboard.delete_inactivate_accounts_success=Wszystkie nieaktywne konta zostały
 dashboard.delete_repo_archives=Usuń wszystkie archiwa repozytoriów
 dashboard.delete_repo_archives=Usuń wszystkie archiwa repozytoriów
 dashboard.delete_repo_archives_success=Pomyślnie usunięto wszystkie archiwa repozytoriów.
 dashboard.delete_repo_archives_success=Pomyślnie usunięto wszystkie archiwa repozytoriów.
 dashboard.git_gc_repos=Usuń śmieci z repozytoriów
 dashboard.git_gc_repos=Usuń śmieci z repozytoriów
-dashboard.git_gc_repos_success=All repositories have done garbage collection successfully.
+dashboard.git_gc_repos_success=Wszystkie repozytoria zakończyły odśmiecanie pomyślnie.
 dashboard.resync_all_sshkeys=Przeładuj klucze publiczne w pliku '.ssh/authorized_keys' (uwaga: klucze poza Gogs zostaną usunięte)
 dashboard.resync_all_sshkeys=Przeładuj klucze publiczne w pliku '.ssh/authorized_keys' (uwaga: klucze poza Gogs zostaną usunięte)
 dashboard.resync_all_sshkeys_success=Przeładowanie kluczy publicznych zakończyło się sukcesem.
 dashboard.resync_all_sshkeys_success=Przeładowanie kluczy publicznych zakończyło się sukcesem.
 dashboard.resync_all_update_hooks=Rewrite all update hook of repositories (needed when custom config path is changed)
 dashboard.resync_all_update_hooks=Rewrite all update hook of repositories (needed when custom config path is changed)
@@ -573,7 +589,7 @@ users.created=Utworzony
 users.edit=Edytuj
 users.edit=Edytuj
 users.auth_source=Źródła autoryzacji
 users.auth_source=Źródła autoryzacji
 users.local=Lokalne
 users.local=Lokalne
-users.auth_login_name=Authorization Login Name
+users.auth_login_name=Login Autoryzacyjny
 users.update_profile_success=Profil konta został pomyślnie zaktualizowany.
 users.update_profile_success=Profil konta został pomyślnie zaktualizowany.
 users.edit_account=Edytuj konto
 users.edit_account=Edytuj konto
 users.is_activated=To konto jest aktywne
 users.is_activated=To konto jest aktywne
@@ -597,7 +613,7 @@ repos.watches=Obserwujących
 repos.stars=Polubienia
 repos.stars=Polubienia
 repos.issues=Problemy
 repos.issues=Problemy
 
 
-auths.auth_manage_panel=Authorization Manage Panel
+auths.auth_manage_panel=Zarzadzanie Autoryzacja
 auths.new=Dodaj nowe źródło autoryzacji
 auths.new=Dodaj nowe źródło autoryzacji
 auths.name=Nazwa
 auths.name=Nazwa
 auths.type=Typ
 auths.type=Typ
@@ -619,6 +635,7 @@ auths.smtp_auth=Typ autoryzacji SMTP
 auths.smtphost=Serwer SMTP
 auths.smtphost=Serwer SMTP
 auths.smtpport=Port SMTP
 auths.smtpport=Port SMTP
 auths.enable_tls=Włącz szyfrowanie TLS
 auths.enable_tls=Włącz szyfrowanie TLS
+auths.pam_service_name=Nazwa usługi PAM
 auths.enable_auto_register=Włącz automatyczną rejestrację
 auths.enable_auto_register=Włącz automatyczną rejestrację
 auths.tips=Wskazówki
 auths.tips=Wskazówki
 auths.edit=Edytuj ustawienia autoryzacji
 auths.edit=Edytuj ustawienia autoryzacji
@@ -667,6 +684,7 @@ config.deliver_timeout=Limit czasu zdarzenia
 config.skip_tls_verify=Pomiń weryfikację protokołu TLS
 config.skip_tls_verify=Pomiń weryfikację protokołu TLS
 config.mailer_config=Konfiguracja poczty
 config.mailer_config=Konfiguracja poczty
 config.mailer_enabled=Aktywne
 config.mailer_enabled=Aktywne
+config.mailer_disable_helo=Wyłącz HELO
 config.mailer_name=Nazwa
 config.mailer_name=Nazwa
 config.mailer_host=Host
 config.mailer_host=Host
 config.mailer_user=Użytkownik
 config.mailer_user=Użytkownik

+ 32 - 14
conf/locale/locale_pt-BR.ini

@@ -40,16 +40,17 @@ issues=Problemas
 cancel=Cancelar
 cancel=Cancelar
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
-code=Code
+search=Pesquisar...
+repository=Repositório
+user=Usuário
+issue=Problema
+code=Código
 
 
 [install]
 [install]
 install=Instalação
 install=Instalação
 title=Etapas de instalação para Primeira Execução
 title=Etapas de instalação para Primeira Execução
 requite_db_desc=Gogs requer MySQL, PostgreSQL ou SQLite3.
 requite_db_desc=Gogs requer MySQL, PostgreSQL ou SQLite3.
+db_title=Configurações de Banco de Dados
 db_type=Tipo do Banco de Dados
 db_type=Tipo do Banco de Dados
 host=Host
 host=Host
 user=Usuário
 user=Usuário
@@ -59,7 +60,11 @@ db_helper=Por favor, use o mecanismo INNODB com o conjunto de caracteres utf8_ge
 ssl_mode=Modo SSL
 ssl_mode=Modo SSL
 path=Caminho
 path=Caminho
 sqlite_helper=O caminho do arquivo do banco de dados do SQLite3.
 sqlite_helper=O caminho do arquivo do banco de dados do SQLite3.
+err_empty_sqlite_path=O caminho do arquivo de banco de dados SQLite3 não pode estar em branco.
+
 general_title=Configurações Gerais do Gogs
 general_title=Configurações Gerais do Gogs
+app_name=Nome do Aplicativo
+app_name_helper=Coloque o nome da sua organização aqui!
 repo_path=Caminho da Raiz do Repositório
 repo_path=Caminho da Raiz do Repositório
 repo_path_helper=Todos os repositórios remotos do Git serão salvos neste diretório.
 repo_path_helper=Todos os repositórios remotos do Git serão salvos neste diretório.
 run_user=Executar Usuário
 run_user=Executar Usuário
@@ -70,13 +75,24 @@ http_port=Porta HTTP
 http_port_helper=Número da porta em que a aplicação irá executar.
 http_port_helper=Número da porta em que a aplicação irá executar.
 app_url=URL do Aplicativo
 app_url=URL do Aplicativo
 app_url_helper=Isto afeta a URL de clonagem via HTTP/HTTPs e também o email.
 app_url_helper=Isto afeta a URL de clonagem via HTTP/HTTPs e também o email.
-email_title=Configurações do Serviço de E-mail(Opcionais)
+
+optional_title=Configurações Opcionais
+email_title=Configurações do Serviço de E-mail
 smtp_host=Host SMTP
 smtp_host=Host SMTP
+smtp_from=De	
+smtp_from_helper=O endereço de email deve atender a especificação RFC 5322. O formato deve ser um email ou  "Nome" <email@example.com>.
 mailer_user=E-mail do Remetente
 mailer_user=E-mail do Remetente
 mailer_password=Senha do Remetente
 mailer_password=Senha do Remetente
-notify_title=Configurações de Notificação (Opcional)
 register_confirm=Habilitar Confirmação de Registro
 register_confirm=Habilitar Confirmação de Registro
 mail_notify=Habilitar Notificação de Correio
 mail_notify=Habilitar Notificação de Correio
+server_service_title=Configurações de Servidor e Outros Serviços
+offline_mode=Ativar Modo Offline
+offline_mode_popup=Desative o CDN mesmo em modo de produção, todos os recursos serão disponibilizados localmente.
+disable_registration=Desativar auto-registro
+disable_registration_popup=Desativar o auto-registro de usuário, para que somente o administrador possa criar contas.
+require_sign_in_view=Requerer autenticação para a visualização de páginas
+require_sign_in_view_popup=Somente usuários autenticados podem ver todas as páginas, visitantes somente podem entrar ou se cadastrar.
+admin_setting_desc=Você não precisa criar uma conta de administrador agora, no entanto o primeiro usuário (ID=1) automaticamente terá acesso de administrador.
 admin_title=Configurações da Conta de Administrador
 admin_title=Configurações da Conta de Administrador
 admin_name=Nome de Usuário
 admin_name=Nome de Usuário
 admin_password=Senha
 admin_password=Senha
@@ -187,8 +203,8 @@ followers=Seguidores
 starred=Marcado
 starred=Marcado
 following=Seguindo
 following=Seguindo
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=O nome de usuário '%s' não pode ser usado.
+form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de usuário.
 
 
 [settings]
 [settings]
 profile=Perfil
 profile=Perfil
@@ -234,7 +250,7 @@ primary_email=Definir como principal
 delete_email=Deletar
 delete_email=Deletar
 add_new_email=Adicionar novo endereço de e-mail
 add_new_email=Adicionar novo endereço de e-mail
 add_email=Adicionar e-mail
 add_email=Adicionar e-mail
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para <b>%s</b>. Por favor, verifique sua Caixa de Entrada dentro das próximas %d horas, para concluir o processo de confirmação.
 add_email_success=Seu novo endereço de E-mail foi adicionado com sucesso.
 add_email_success=Seu novo endereço de E-mail foi adicionado com sucesso.
 
 
 manage_ssh_keys=Gerenciar Chaves SSH
 manage_ssh_keys=Gerenciar Chaves SSH
@@ -290,8 +306,8 @@ create_repo=Criar Repositório
 default_branch=Ramo padrão
 default_branch=Ramo padrão
 mirror_interval=Intervalo de Espelho (hora)
 mirror_interval=Intervalo de Espelho (hora)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=O nome de repositório '%s' não pode ser usado.
+form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de repositório.
 
 
 need_auth=Precisa de Autorização
 need_auth=Precisa de Autorização
 migrate_type=Tipo de Migração
 migrate_type=Tipo de Migração
@@ -443,8 +459,8 @@ team_name_helper=Você usará este nome para mencionar esta equipe em conversas.
 team_desc_helper=Do que trata essa equipe?
 team_desc_helper=Do que trata essa equipe?
 team_permission_desc=Que nível de permissão esta equipe deve ter?
 team_permission_desc=Que nível de permissão esta equipe deve ter?
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=O nome de organização '%s' não pode ser usado.
+form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de organização.
 
 
 settings=Configurações
 settings=Configurações
 settings.options=Opções
 settings.options=Opções
@@ -619,6 +635,7 @@ auths.smtp_auth=Tipo de Autorização de SMTP
 auths.smtphost=Host SMTP
 auths.smtphost=Host SMTP
 auths.smtpport=Porta SMTP
 auths.smtpport=Porta SMTP
 auths.enable_tls=Habilitar Criptografia TLS
 auths.enable_tls=Habilitar Criptografia TLS
+auths.pam_service_name=Nome de Serviço PAM
 auths.enable_auto_register=Habilitar Registro Automático
 auths.enable_auto_register=Habilitar Registro Automático
 auths.tips=Dicas
 auths.tips=Dicas
 auths.edit=Editar Configuração da Autorização
 auths.edit=Editar Configuração da Autorização
@@ -667,6 +684,7 @@ config.deliver_timeout=Intervalo de Entrega
 config.skip_tls_verify=Pular Verificar TLS
 config.skip_tls_verify=Pular Verificar TLS
 config.mailer_config=Configuração de Correio
 config.mailer_config=Configuração de Correio
 config.mailer_enabled=Habilitado
 config.mailer_enabled=Habilitado
+config.mailer_disable_helo=Desabilitar HELO
 config.mailer_name=Nome
 config.mailer_name=Nome
 config.mailer_host=Host
 config.mailer_host=Host
 config.mailer_user=Usuário
 config.mailer_user=Usuário

+ 37 - 19
conf/locale/locale_ru-RU.ini

@@ -40,16 +40,17 @@ issues=Вопросы
 cancel=Отмена
 cancel=Отмена
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
-code=Code
+search=Поиск...
+repository=Репозиторий
+user=Пользователь
+issue=Проблема
+code=Код
 
 
 [install]
 [install]
 install=Установка
 install=Установка
 title=Установочные шаги для первого запуска
 title=Установочные шаги для первого запуска
 requite_db_desc=Для Gogs требуется MySQL, PostgreSQL или SQLite3.
 requite_db_desc=Для Gogs требуется MySQL, PostgreSQL или SQLite3.
+db_title=Настройки базы данных
 db_type=Тип базы данных
 db_type=Тип базы данных
 host=Хост
 host=Хост
 user=Пользователь
 user=Пользователь
@@ -59,7 +60,11 @@ db_helper=Для MySQL используйте тип таблиц InnoDB с ко
 ssl_mode=Режим SSL
 ssl_mode=Режим SSL
 path=Путь
 path=Путь
 sqlite_helper=Путь к файлу базы данных SQLite3.
 sqlite_helper=Путь к файлу базы данных SQLite3.
+err_empty_sqlite_path=Путь к базе данных SQLite3 не может быть пустым.
+
 general_title=Общие параметры Gogs
 general_title=Общие параметры Gogs
+app_name=Имя приложения
+app_name_helper=Put your organization name here huge and loud!
 repo_path=Путь корня репозитория
 repo_path=Путь корня репозитория
 repo_path_helper=Все удаленные репозитории Git будут сохранены в этой директории.
 repo_path_helper=Все удаленные репозитории Git будут сохранены в этой директории.
 run_user=Пользователь
 run_user=Пользователь
@@ -70,13 +75,24 @@ http_port=Порт HTTP
 http_port_helper=Номер порта, который приложение будет слушать.
 http_port_helper=Номер порта, который приложение будет слушать.
 app_url=URL приложения
 app_url=URL приложения
 app_url_helper=Этот параметр влияет на URL для клонирования по HTTP/HTTPS и на адреса в электронной почте.
 app_url_helper=Этот параметр влияет на URL для клонирования по HTTP/HTTPS и на адреса в электронной почте.
-email_title=Настройки службы электронной почты (опционально)
+
+optional_title=Расширенные настройки
+email_title=Настройки службы электронной почты
 smtp_host=Узел SMTP
 smtp_host=Узел SMTP
+smtp_from=Из
+smtp_from_helper=Mail from address, RFC 5322. It can be just an email address, or the "Name" <email@example.com> format.
 mailer_user=Электронная почта отправителя
 mailer_user=Электронная почта отправителя
 mailer_password=Пароль отправителя
 mailer_password=Пароль отправителя
-notify_title=Настройки уведомлений(опционально)
 register_confirm=Включить подтверждение регистрации
 register_confirm=Включить подтверждение регистрации
 mail_notify=Разрешить почтовые уведомления
 mail_notify=Разрешить почтовые уведомления
+server_service_title=Server and Other Services Settings
+offline_mode=Включение офлайн режима
+offline_mode_popup=Disable CDN even in production mode, all resource files will be served locally.
+disable_registration=Disable Self-registration
+disable_registration_popup=Disable user self-registration, only admin can create accounts.
+require_sign_in_view=Enable Require Sign In to View Pages
+require_sign_in_view_popup=Only signed in users can view pages, visitors will only be able to see sign in/up pages.
+admin_setting_desc=You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
 admin_title=Настройки учётной записи администратора
 admin_title=Настройки учётной записи администратора
 admin_name=Имя пользователя
 admin_name=Имя пользователя
 admin_password=Пароль
 admin_password=Пароль
@@ -187,8 +203,8 @@ followers=Подписчики
 starred=Избранное
 starred=Избранное
 following=Подписан
 following=Подписан
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=Имя пользователя '%s' зарезервировано.
+form.name_pattern_not_allowed=Имя пользователя «%s» не допускается.
 
 
 [settings]
 [settings]
 profile=Профиль
 profile=Профиль
@@ -290,8 +306,8 @@ create_repo=Создать репозиторий
 default_branch=Ветка по умолчанию
 default_branch=Ветка по умолчанию
 mirror_interval=Интервал зеркалирования (час)
 mirror_interval=Интервал зеркалирования (час)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=Имя репозитория  '%s'  зарезервировано.
+form.name_pattern_not_allowed=Шаблон имени репозитория '%s' не допускается.
 
 
 need_auth=Требуется авторизация
 need_auth=Требуется авторизация
 migrate_type=Тип миграции
 migrate_type=Тип миграции
@@ -342,7 +358,7 @@ settings.options=Опции
 settings.collaboration=Сотрудничество
 settings.collaboration=Сотрудничество
 settings.hooks=Автоматическое обновление
 settings.hooks=Автоматическое обновление
 settings.githooks=Git хуки
 settings.githooks=Git хуки
-settings.deploy_keys=Deploy Keys
+settings.deploy_keys=Ключи развертывания
 settings.basic_settings=Основные параметры
 settings.basic_settings=Основные параметры
 settings.danger_zone=Опасная зона
 settings.danger_zone=Опасная зона
 settings.site=Официальный сайт
 settings.site=Официальный сайт
@@ -380,9 +396,9 @@ settings.event_desc=На какие события этот webhook должен
 settings.event_push_only=Просто  <code>push</code> событие.
 settings.event_push_only=Просто  <code>push</code> событие.
 settings.active=Активен
 settings.active=Активен
 settings.active_helper=Details regarding the event which triggered the hook will be delivered as well.
 settings.active_helper=Details regarding the event which triggered the hook will be delivered as well.
-settings.add_hook_success=New webhook has been added.
-settings.update_webhook=Update Webhook
-settings.update_hook_success=Webhook has been updated.
+settings.add_hook_success=Был добавлен новый webhook.
+settings.update_webhook=Обновление Webhook
+settings.update_hook_success=Webhook обновлен.
 settings.delete_webhook=Удалить автоматическое обновление
 settings.delete_webhook=Удалить автоматическое обновление
 settings.recent_deliveries=Недавние рассылки
 settings.recent_deliveries=Недавние рассылки
 settings.hook_type=Тип перехватчика
 settings.hook_type=Тип перехватчика
@@ -619,6 +635,7 @@ auths.smtp_auth=Тип авторизации SMTP
 auths.smtphost=Узел SMTP
 auths.smtphost=Узел SMTP
 auths.smtpport=SMTP-порт
 auths.smtpport=SMTP-порт
 auths.enable_tls=Включение шифрования TLS
 auths.enable_tls=Включение шифрования TLS
+auths.pam_service_name=PAM Service Name
 auths.enable_auto_register=Включить автоматическую регистрацию
 auths.enable_auto_register=Включить автоматическую регистрацию
 auths.tips=Советы
 auths.tips=Советы
 auths.edit=Редактировать параметры авторизации
 auths.edit=Редактировать параметры авторизации
@@ -650,7 +667,7 @@ config.db_name=Имя
 config.db_user=Пользователь
 config.db_user=Пользователь
 config.db_ssl_mode=Режим SSL
 config.db_ssl_mode=Режим SSL
 config.db_ssl_mode_helper=(только для «postgres»)
 config.db_ssl_mode_helper=(только для «postgres»)
-config.db_path=Path
+config.db_path=Путь
 config.db_path_helper=(for "sqlite3" only)
 config.db_path_helper=(for "sqlite3" only)
 config.service_config=Service Configuration
 config.service_config=Service Configuration
 config.register_email_confirm=Require E-mail Confirmation
 config.register_email_confirm=Require E-mail Confirmation
@@ -664,9 +681,10 @@ config.reset_password_code_lives=Reset Password Code Lives
 config.webhook_config=Настройка автоматического обновления репозиции
 config.webhook_config=Настройка автоматического обновления репозиции
 config.task_interval=Интервал задания
 config.task_interval=Интервал задания
 config.deliver_timeout=Задержка доставки
 config.deliver_timeout=Задержка доставки
-config.skip_tls_verify=Skip TLS Verify
+config.skip_tls_verify=Пропустить TLS проверка
 config.mailer_config=Настройки почты
 config.mailer_config=Настройки почты
 config.mailer_enabled=Включено
 config.mailer_enabled=Включено
+config.mailer_disable_helo=Отключить HELO
 config.mailer_name=Имя
 config.mailer_name=Имя
 config.mailer_host=Сервер
 config.mailer_host=Сервер
 config.mailer_user=Пользователь
 config.mailer_user=Пользователь
@@ -699,7 +717,7 @@ monitor.previous=Предыдущий раз
 monitor.execute_times=Execute Times
 monitor.execute_times=Execute Times
 monitor.process=Запущенные процессы
 monitor.process=Запущенные процессы
 monitor.desc=Описание
 monitor.desc=Описание
-monitor.start=Start Time
+monitor.start=Момент начала
 monitor.execute_time=Время выполнения
 monitor.execute_time=Время выполнения
 
 
 notices.system_notice_list=Система уведомлений
 notices.system_notice_list=Система уведомлений
@@ -719,7 +737,7 @@ push_tag=pushed tag <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a>
 compare_2_commits=Просмотреть сравнение двух коммитов
 compare_2_commits=Просмотреть сравнение двух коммитов
 
 
 [tool]
 [tool]
-ago=ago
+ago=назад
 from_now=from now
 from_now=from now
 now=сейчас
 now=сейчас
 1s=1 second %s
 1s=1 second %s

+ 18 - 2
conf/locale/locale_zh-CN.ini

@@ -50,6 +50,7 @@ code=代码
 install=安装页面
 install=安装页面
 title=首次运行安装程序
 title=首次运行安装程序
 requite_db_desc=Gogs 允许后端数据库为 MySQL、PostgreSQL 或 SQLite3。
 requite_db_desc=Gogs 允许后端数据库为 MySQL、PostgreSQL 或 SQLite3。
+db_title=数据库设置
 db_type=数据库类型
 db_type=数据库类型
 host=数据库主机
 host=数据库主机
 user=数据库用户
 user=数据库用户
@@ -59,7 +60,11 @@ db_helper=如果您使用 MySQL,请使用 INNODB 引擎以及 utf8_general_ci
 ssl_mode=SSL 模式
 ssl_mode=SSL 模式
 path=数据库文件路径
 path=数据库文件路径
 sqlite_helper=SQLite3 数据库的文件路径。
 sqlite_helper=SQLite3 数据库的文件路径。
+err_empty_sqlite_path=SQLite 数据库文件路径不能为空。
+
 general_title=应用基本设置
 general_title=应用基本设置
+app_name=应用名称
+app_name_helper=快用狂拽酷炫的组织名称闪瞎我们!
 repo_path=仓库根目录
 repo_path=仓库根目录
 repo_path_helper=所有 Git 远程仓库都将被存放于该目录。
 repo_path_helper=所有 Git 远程仓库都将被存放于该目录。
 run_user=运行系统用户
 run_user=运行系统用户
@@ -70,13 +75,24 @@ http_port=HTTP 端口号
 http_port_helper=应用监听的端口号
 http_port_helper=应用监听的端口号
 app_url=应用 URL
 app_url=应用 URL
 app_url_helper=该设置影响 HTTP/HTTPS 克隆地址和一些邮箱中的链接。
 app_url_helper=该设置影响 HTTP/HTTPS 克隆地址和一些邮箱中的链接。
-email_title=邮件服务设置(可选)
+
+optional_title=可选设置
+email_title=邮件服务设置
 smtp_host=SMTP 主机
 smtp_host=SMTP 主机
+smtp_from=邮件来自
+smtp_from_helper=邮件来自地址,遵循 RFC 5322 标准。可以是一个单纯的邮箱地址或使用 "Name" <email@example.com> 的格式。
 mailer_user=发送邮箱
 mailer_user=发送邮箱
 mailer_password=发送邮箱密码
 mailer_password=发送邮箱密码
-notify_title=通知提醒设置(可选)
 register_confirm=启用注册邮箱确认
 register_confirm=启用注册邮箱确认
 mail_notify=启用邮件通知提醒
 mail_notify=启用邮件通知提醒
+server_service_title=服务器和其它服务设置
+offline_mode=启用离线模式
+offline_mode_popup=在部署模式下也禁用从 CDN 获取文件,所以的资源都将从本地服务器获取。
+disable_registration=禁止用户自主注册
+disable_registration_popup=禁止用户自行注册功能,只有管理员可以添加帐号。
+require_sign_in_view=启用登录访问限制
+require_sign_in_view_popup=只有已登录的用户才能够访问页面,否则将只能看到登录或注册页面。
+admin_setting_desc=创建管理员帐号并不是必须的,因为 ID=1 的用户将自动获得管理员权限。
 admin_title=管理员帐号设置
 admin_title=管理员帐号设置
 admin_name=管理员用户名
 admin_name=管理员用户名
 admin_password=管理员密码
 admin_password=管理员密码

+ 30 - 14
conf/locale/locale_zh-HK.ini

@@ -40,16 +40,17 @@ issues=問題管理
 cancel=取消
 cancel=取消
 
 
 [search]
 [search]
-search=Search...
-repository=Repository
-user=User
-issue=Issue
-code=Code
+search=搜尋...
+repository=倉庫
+user=用戶
+issue=工單
+code=程式碼
 
 
 [install]
 [install]
 install=安裝頁面
 install=安裝頁面
 title=首次執行安裝程序
 title=首次執行安裝程序
 requite_db_desc=Gogs 允許後端數據庫為 MySQL、PostgreSQL 或 SQLite3,但是 SQLite3 一般只有官方二進制發行版才支持。
 requite_db_desc=Gogs 允許後端數據庫為 MySQL、PostgreSQL 或 SQLite3,但是 SQLite3 一般只有官方二進制發行版才支持。
+db_title=Database Settings
 db_type=數據庫類型
 db_type=數據庫類型
 host=數據庫主機
 host=數據庫主機
 user=數據庫用戶
 user=數據庫用戶
@@ -59,7 +60,11 @@ db_helper=如果您使用 MySQL,請使用 INNODB 引擎以及 utf8_general_ci
 ssl_mode=SSL 模式
 ssl_mode=SSL 模式
 path=數據庫文件路徑
 path=數據庫文件路徑
 sqlite_helper=SQLite3 數據庫的文件路徑。
 sqlite_helper=SQLite3 數據庫的文件路徑。
+err_empty_sqlite_path=SQLite3 database path cannot be empty.
+
 general_title=應用基本設置
 general_title=應用基本設置
+app_name=Application Name
+app_name_helper=Put your organization name here huge and loud!
 repo_path=倉庫根目錄
 repo_path=倉庫根目錄
 repo_path_helper=所有 Git 遠程倉庫都將被存放於該目錄。
 repo_path_helper=所有 Git 遠程倉庫都將被存放於該目錄。
 run_user=執行系統用戶
 run_user=執行系統用戶
@@ -70,13 +75,22 @@ http_port=HTTP 端口號
 http_port_helper=應用監聽的端口號
 http_port_helper=應用監聽的端口號
 app_url=應用 URL
 app_url=應用 URL
 app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
 app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
-email_title=電子郵件服務設定(可選)
+
+optional_title=Optional Settings
+email_title=電子郵件服務設定
 smtp_host=SMTP 主機
 smtp_host=SMTP 主機
 mailer_user=發送郵箱
 mailer_user=發送郵箱
 mailer_password=發送郵箱密碼
 mailer_password=發送郵箱密碼
-notify_title=通知提醒設置(可選)
 register_confirm=啟用註冊郵箱確認
 register_confirm=啟用註冊郵箱確認
 mail_notify=啟用郵件通知提醒
 mail_notify=啟用郵件通知提醒
+server_service_title=Server and Other Services Settings
+offline_mode=Enable Offline Mode
+offline_mode_popup=Disable CDN even in production mode, all resource files will be served locally.
+disable_registration=Disable Self-registration
+disable_registration_popup=Disable user self-registration, only admin can create accounts.
+require_sign_in_view=Enable Require Sign In to View Pages
+require_sign_in_view_popup=Only signed in users can view pages, visitors will only be able to see sign in/up pages.
+admin_setting_desc=You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
 admin_title=管理員帳號設置
 admin_title=管理員帳號設置
 admin_name=管理員用戶名
 admin_name=管理員用戶名
 admin_password=管理員密碼
 admin_password=管理員密碼
@@ -187,8 +201,8 @@ followers=關註者
 starred=已讚好
 starred=已讚好
 following=關註中
 following=關註中
 
 
-form.name_reserved=Username '%s' is reserved.
-form.name_pattern_not_allowed=Username pattern '%s' is not allowed.
+form.name_reserved=用戶名 '%s' 是被保留的。
+form.name_pattern_not_allowed=用戶名不允許 '%s' 的格式。
 
 
 [settings]
 [settings]
 profile=個人信息
 profile=個人信息
@@ -234,7 +248,7 @@ primary_email=设为主要
 delete_email=刪除
 delete_email=刪除
 add_new_email=添加新的電子郵件地址
 add_new_email=添加新的電子郵件地址
 add_email=添加電子郵件
 add_email=添加電子郵件
-add_email_confirmation_sent=A new confirmation e-mail has been sent to <b>%s</b>, please check your inbox within the next %d hours to complete the confirmation process.
+add_email_confirmation_sent=一封待確認的電子郵件已發送到<b>%s</b>,請在%d 小時內檢查您的收件箱,並完成確認過程。
 add_email_success=新的邮箱地址添加成功。
 add_email_success=新的邮箱地址添加成功。
 
 
 manage_ssh_keys=管理 SSH 密鑰
 manage_ssh_keys=管理 SSH 密鑰
@@ -290,8 +304,8 @@ create_repo=創建倉庫
 default_branch=默認分支
 default_branch=默認分支
 mirror_interval=鏡像同步周期(小時)
 mirror_interval=鏡像同步周期(小時)
 
 
-form.name_reserved=Repository name '%s' is reserved.
-form.name_pattern_not_allowed=Repository name pattern '%s' is not allowed.
+form.name_reserved=倉庫名稱 '%s' 是被保留的。
+form.name_pattern_not_allowed=倉庫名稱不允許 '%s' 的格式。
 
 
 need_auth=需要授權驗證
 need_auth=需要授權驗證
 migrate_type=遷移類型
 migrate_type=遷移類型
@@ -443,8 +457,8 @@ team_name_helper=您可以使用該名稱來通知改組全體成員。
 team_desc_helper=一句話描述這個團隊是做什麼的。
 team_desc_helper=一句話描述這個團隊是做什麼的。
 team_permission_desc=請選擇該團隊所具有的權限等級:
 team_permission_desc=請選擇該團隊所具有的權限等級:
 
 
-form.name_reserved=Organization name '%s' is reserved.
-form.name_pattern_not_allowed=Organization name pattern '%s' is not allowed.
+form.name_reserved=組織名稱 '%s' 是被保留的。
+form.name_pattern_not_allowed=組織名稱不允許 '%s' 的格式。
 
 
 settings=組織設置
 settings=組織設置
 settings.options=基本設置
 settings.options=基本設置
@@ -619,6 +633,7 @@ auths.smtp_auth=SMTP 授權類型
 auths.smtphost=SMTP 主機地址
 auths.smtphost=SMTP 主機地址
 auths.smtpport=SMTP 主機端口
 auths.smtpport=SMTP 主機端口
 auths.enable_tls=啟用 TLS 加密
 auths.enable_tls=啟用 TLS 加密
+auths.pam_service_name=PAM 服務名稱
 auths.enable_auto_register=允許授權用戶自動註冊
 auths.enable_auto_register=允許授權用戶自動註冊
 auths.tips=幫助提示
 auths.tips=幫助提示
 auths.edit=修改授權認證設置
 auths.edit=修改授權認證設置
@@ -667,6 +682,7 @@ config.deliver_timeout=推送超時
 config.skip_tls_verify=忽略 TLS 驗證
 config.skip_tls_verify=忽略 TLS 驗證
 config.mailer_config=郵件配置
 config.mailer_config=郵件配置
 config.mailer_enabled=啟用服務
 config.mailer_enabled=啟用服務
+config.mailer_disable_helo=禁用 HELO 操作
 config.mailer_name=發送者名稱
 config.mailer_name=發送者名稱
 config.mailer_host=郵件主機地址
 config.mailer_host=郵件主機地址
 config.mailer_user=發送者帳號
 config.mailer_user=發送者帳號

+ 1 - 1
gogs.go

@@ -17,7 +17,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 	"github.com/gogits/gogs/modules/setting"
 )
 )
 
 
-const APP_VER = "0.6.1.0703 Beta"
+const APP_VER = "0.6.1.0714 Beta"
 
 
 func init() {
 func init() {
 	runtime.GOMAXPROCS(runtime.NumCPU())
 	runtime.GOMAXPROCS(runtime.NumCPU())

+ 19 - 0
models/access.go

@@ -145,6 +145,25 @@ func (repo *Repository) refreshCollaboratorAccesses(e Engine, accessMap map[int6
 	for _, c := range collaborators {
 	for _, c := range collaborators {
 		accessMap[c.Id] = ACCESS_MODE_WRITE
 		accessMap[c.Id] = ACCESS_MODE_WRITE
 	}
 	}
+
+	// Adds team members access.
+	if repo.Owner.IsOrganization() {
+		if err = repo.Owner.GetTeams(); err != nil {
+			return fmt.Errorf("GetTeams: %v", err)
+		}
+		for _, t := range repo.Owner.Teams {
+			if err = t.GetMembers(); err != nil {
+				return fmt.Errorf("GetMembers: %v", err)
+			}
+			for _, m := range t.Members {
+				if t.IsOwnerTeam() {
+					accessMap[m.Id] = ACCESS_MODE_OWNER
+				} else {
+					accessMap[m.Id] = maxAccessMode(accessMap[m.Id], t.Authorize)
+				}
+			}
+		}
+	}
 	return nil
 	return nil
 }
 }
 
 

+ 9 - 0
models/repo.go

@@ -380,6 +380,15 @@ func MigrateRepository(u *User, name, desc string, private, mirror bool, url str
 		return repo, fmt.Errorf("create update hook: %v", err)
 		return repo, fmt.Errorf("create update hook: %v", err)
 	}
 	}
 
 
+	// Check if repository has master branch, if so set it to default branch.
+	gitRepo, err := git.OpenRepository(repoPath)
+	if err != nil {
+		return repo, fmt.Errorf("open git repository: %v", err)
+	}
+	if gitRepo.IsBranchExist("master") {
+		repo.DefaultBranch = "master"
+	}
+
 	return repo, UpdateRepository(repo, false)
 	return repo, UpdateRepository(repo, false)
 }
 }
 
 

+ 8 - 1
modules/auth/auth.go

@@ -208,7 +208,14 @@ func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaro
 
 
 		if errs[0].FieldNames[0] == field.Name {
 		if errs[0].FieldNames[0] == field.Name {
 			data["Err_"+field.Name] = true
 			data["Err_"+field.Name] = true
-			trName := l.Tr("form." + field.Name)
+
+			trName := field.Tag.Get("locale")
+			if len(trName) == 0 {
+				trName = l.Tr("form." + field.Name)
+			} else {
+				trName = l.Tr(trName)
+			}
+
 			switch errs[0].Classification {
 			switch errs[0].Classification {
 			case binding.ERR_REQUIRED:
 			case binding.ERR_REQUIRED:
 				data["ErrorMsg"] = trName + l.Tr("form.require_error")
 				data["ErrorMsg"] = trName + l.Tr("form.require_error")

+ 1 - 1
modules/auth/pam/pam.go

@@ -1,4 +1,4 @@
-// +build !windows
+// +build pam
 
 
 // Copyright 2014 The Gogs Authors. All rights reserved.
 // Copyright 2014 The Gogs Authors. All rights reserved.
 // Use of this source code is governed by a MIT-style
 // Use of this source code is governed by a MIT-style

+ 1 - 1
modules/auth/pam/pam_stub.go

@@ -1,4 +1,4 @@
-// +build windows
+// +build !pam
 
 
 // Copyright 2014 The Gogs Authors. All rights reserved.
 // Copyright 2014 The Gogs Authors. All rights reserved.
 // Use of this source code is governed by a MIT-style
 // Use of this source code is governed by a MIT-style

+ 30 - 21
modules/auth/user_form.go

@@ -12,27 +12,36 @@ import (
 )
 )
 
 
 type InstallForm struct {
 type InstallForm struct {
-	DbType             string `binding:"Required"`
-	DbHost             string
-	DbUser             string
-	DbPasswd           string
-	DbName             string
-	SSLMode            string
-	DbPath             string
-	RepoRootPath       string `binding:"Required"`
-	RunUser            string `binding:"Required"`
-	Domain             string `binding:"Required"`
-	HTTPPort           string `binding:"Required"`
-	AppUrl             string `binding:"Required"`
-	SMTPHost           string
-	SMTPEmail          string
-	SMTPPasswd         string
-	RegisterConfirm    string
-	MailNotify         string
-	AdminName          string `binding:"Required;AlphaDashDot;MaxSize(30)"`
-	AdminPasswd        string `binding:"Required;MinSize(6);MaxSize(255)"`
-	AdminConfirmPasswd string `binding:"Required;MinSize(6);MaxSize(255)"`
-	AdminEmail         string `binding:"Required;Email;MaxSize(50)"`
+	DbType   string `binding:"Required"`
+	DbHost   string
+	DbUser   string
+	DbPasswd string
+	DbName   string
+	SSLMode  string `form:"ssl_mode"`
+	DbPath   string
+
+	AppName      string `binding:"Required" locale:"install.app_name"`
+	RepoRootPath string `binding:"Required"`
+	RunUser      string `binding:"Required"`
+	Domain       string `binding:"Required"`
+	HTTPPort     string `form:"http_port" binding:"Required"`
+	AppUrl       string `binding:"Required"`
+
+	SMTPHost        string `form:"smtp_host"`
+	SMTPFrom        string `form:"smtp_from"`
+	SMTPEmail       string `form:"smtp_user" binding:"OmitEmpty;Email;MaxSize(50)" locale:"install.mailer_user"`
+	SMTPPasswd      string `form:"smtp_passwd"`
+	RegisterConfirm bool
+	MailNotify      bool
+
+	OfflineMode         bool
+	DisableRegistration bool
+	RequireSignInView   bool
+
+	AdminName          string `binding:"OmitEmpty;AlphaDashDot;MaxSize(30)" locale:"install.admin_name"`
+	AdminPasswd        string `binding:"OmitEmpty;MinSize(6);MaxSize(255)" locale:"install.admin_password"`
+	AdminConfirmPasswd string
+	AdminEmail         string `binding:"OmitEmpty;Email;MaxSize(50)" locale:"install.admin_email"`
 }
 }
 
 
 func (f *InstallForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 func (f *InstallForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {

文件差异内容过多而无法显示
+ 60 - 10
modules/bindata/bindata.go


+ 7 - 1
modules/middleware/context.go

@@ -106,6 +106,12 @@ func (ctx *Context) HasError() bool {
 	return hasErr.(bool)
 	return hasErr.(bool)
 }
 }
 
 
+// HasValue returns true if value of given name exists.
+func (ctx *Context) HasValue(name string) bool {
+	_, ok := ctx.Data[name]
+	return ok
+}
+
 // HTML calls Context.HTML and converts template name to string.
 // HTML calls Context.HTML and converts template name to string.
 func (ctx *Context) HTML(status int, name base.TplName) {
 func (ctx *Context) HTML(status int, name base.TplName) {
 	ctx.Context.HTML(status, string(name))
 	ctx.Context.HTML(status, string(name))
@@ -140,7 +146,7 @@ func (ctx *Context) Handle(status int, title string, err error) {
 }
 }
 
 
 func (ctx *Context) HandleText(status int, title string) {
 func (ctx *Context) HandleText(status int, title string) {
-	if (status / 100 == 4) || (status / 100 == 5) {
+	if (status/100 == 4) || (status/100 == 5) {
 		log.Error(4, "%s", title)
 		log.Error(4, "%s", title)
 	}
 	}
 	ctx.RenderData(status, []byte(title))
 	ctx.RenderData(status, []byte(title))

文件差异内容过多而无法显示
+ 0 - 0
public/css/gogs.min.css


文件差异内容过多而无法显示
+ 1 - 1
public/css/semantic.min.css


+ 42 - 2
public/js/gogs.js

@@ -1,6 +1,46 @@
+function initInstall() {
+    if ($('.install').length == 0) {
+        return;
+    }
+
+    // Database type change detection.
+    $("#db_type").change(function () {
+        var db_type = $('#db_type').val();
+        if (db_type === "SQLite3") {
+            $('#sql_settings').hide();
+            $('#pgsql_settings').hide();
+            $('#sqlite_settings').show();
+            return;
+        }
+
+        var mysql_default = '127.0.0.1:3306';
+        var postgres_default = '127.0.0.1:5432';
+
+        $('#sqlite_settings').hide();
+        $('#sql_settings').show();
+        if (db_type === "PostgreSQL") {
+            $('#pgsql_settings').show();
+            if ($('#db_host').val() == mysql_default) {
+                $('#db_host').val(postgres_default);
+            }
+        } else {
+            $('#pgsql_settings').hide();
+            if ($('#db_host').val() == postgres_default) {
+                $('#db_host').val(mysql_default);
+            }
+        }
+    });
+};
+
 $(document).ready(function () {
 $(document).ready(function () {
-	// Semantic UI modules.
-    $('.dropdown').dropdown({
+    // Semantic UI modules.
+    $('.dropdown').dropdown();
+    $('.slide.up.dropdown').dropdown({
         transition: 'slide up'
         transition: 'slide up'
     });
     });
+    $('.ui.accordion').accordion();
+    $('.ui.checkbox').checkbox();
+    $('.poping.up').popup();
+
+    initInstall();
 });
 });

文件差异内容过多而无法显示
+ 0 - 3
public/js/jquery-1.10.1.min.js


文件差异内容过多而无法显示
+ 0 - 0
public/js/jquery-1.10.1.min.map


文件差异内容过多而无法显示
+ 0 - 1
public/js/jquery-1.11.2.min.js


文件差异内容过多而无法显示
+ 1 - 0
public/js/jquery-1.11.3.min.js


文件差异内容过多而无法显示
+ 1 - 1
public/js/semantic.min.js


+ 12 - 0
public/less/_base.less

@@ -62,6 +62,18 @@ footer {
 		}
 		}
 	}
 	}
 }
 }
+
+.hide {
+	display: none;
+}
+.center {
+	text-align: center;
+}
+
+.text-error {
+	color: #d95c5c !important;
+}
+
 .generate-img(16);
 .generate-img(16);
 .generate-img(@n, @i: 1) when (@i =< @n) {
 .generate-img(@n, @i: 1) when (@i =< @n) {
   .img-@{i} {
   .img-@{i} {

+ 8 - 0
public/less/_form.less

@@ -0,0 +1,8 @@
+.form {
+	.help {
+		color: #999999;
+	  padding-top: .6em;
+	  padding-bottom: .6em;
+	  display: inline-block;
+	}
+}

+ 33 - 0
public/less/_install.less

@@ -0,0 +1,33 @@
+.install {
+	padding-top: 45px;
+	padding-bottom: @footer-margin * 3;
+	.attached.header {
+		background: #f0f0f0;
+	}
+	form {
+		label {
+			text-align: right;
+			width: 40% !important;
+		}
+		input {
+			width: 35% !important;
+		}
+		.field {
+			text-align: left;
+			.help {
+				margin-left: 41%;
+			}
+			&.optional .title {
+				margin-left: 38%;
+			}
+		}
+	}
+	.ui {
+		.checkbox {
+			margin-left: 40% !important;
+			label {
+				width: auto !important;
+			}
+		}
+	}
+}

+ 3 - 1
public/less/gogs.less

@@ -1,3 +1,5 @@
 @import "_octicons";
 @import "_octicons";
 @import "_base";
 @import "_base";
-@import "_home";
+@import "_home";
+@import "_install";
+@import "_form";

+ 64 - 16
routers/install.go

@@ -90,11 +90,20 @@ func InstallInit(ctx *middleware.Context) {
 func Install(ctx *middleware.Context) {
 func Install(ctx *middleware.Context) {
 	form := auth.InstallForm{}
 	form := auth.InstallForm{}
 
 
+	// Database settings
 	form.DbHost = models.DbCfg.Host
 	form.DbHost = models.DbCfg.Host
 	form.DbUser = models.DbCfg.User
 	form.DbUser = models.DbCfg.User
 	form.DbName = models.DbCfg.Name
 	form.DbName = models.DbCfg.Name
 	form.DbPath = models.DbCfg.Path
 	form.DbPath = models.DbCfg.Path
 
 
+	curDbOp := ""
+	if models.EnableSQLite3 {
+		curDbOp = "SQLite3" // Default when enabled.
+	}
+	ctx.Data["CurDbOption"] = curDbOp
+
+	// Application general settings
+	form.AppName = setting.AppName
 	form.RepoRootPath = setting.RepoRootPath
 	form.RepoRootPath = setting.RepoRootPath
 
 
 	// Note(unknwon): it's hard for Windows users change a running user,
 	// Note(unknwon): it's hard for Windows users change a running user,
@@ -112,11 +121,19 @@ func Install(ctx *middleware.Context) {
 	form.HTTPPort = setting.HttpPort
 	form.HTTPPort = setting.HttpPort
 	form.AppUrl = setting.AppUrl
 	form.AppUrl = setting.AppUrl
 
 
-	curDbOp := ""
-	if models.EnableSQLite3 {
-		curDbOp = "SQLite3" // Default when enabled.
+	// E-mail service settings
+	if setting.MailService != nil {
+		form.SMTPHost = setting.MailService.Host
+		form.SMTPFrom = setting.MailService.From
+		form.SMTPEmail = setting.MailService.User
 	}
 	}
-	ctx.Data["CurDbOption"] = curDbOp
+	form.RegisterConfirm = setting.Service.RegisterEmailConfirm
+	form.MailNotify = setting.Service.EnableNotifyMail
+
+	// Server and other services settings
+	form.OfflineMode = setting.OfflineMode
+	form.DisableRegistration = setting.Service.DisableRegistration
+	form.RequireSignInView = setting.Service.RequireSignInView
 
 
 	auth.AssignForm(form, ctx.Data)
 	auth.AssignForm(form, ctx.Data)
 	ctx.HTML(200, INSTALL)
 	ctx.HTML(200, INSTALL)
@@ -126,6 +143,15 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
 	ctx.Data["CurDbOption"] = form.DbType
 	ctx.Data["CurDbOption"] = form.DbType
 
 
 	if ctx.HasError() {
 	if ctx.HasError() {
+		if ctx.HasValue("Err_SMTPEmail") {
+			ctx.Data["Err_SMTP"] = true
+		}
+		if ctx.HasValue("Err_AdminName") ||
+			ctx.HasValue("Err_AdminPasswd") ||
+			ctx.HasValue("Err_AdminEmail") {
+			ctx.Data["Err_Admin"] = true
+		}
+
 		ctx.HTML(200, INSTALL)
 		ctx.HTML(200, INSTALL)
 		return
 		return
 	}
 	}
@@ -146,12 +172,20 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
 	models.DbCfg.SSLMode = form.SSLMode
 	models.DbCfg.SSLMode = form.SSLMode
 	models.DbCfg.Path = form.DbPath
 	models.DbCfg.Path = form.DbPath
 
 
+	if models.DbCfg.Type == "sqlite3" && len(models.DbCfg.Path) == 0 {
+		ctx.Data["Err_DbPath"] = true
+		ctx.RenderWithErr(ctx.Tr("install.err_empty_sqlite_path"), INSTALL, &form)
+		return
+	}
+
 	// Set test engine.
 	// Set test engine.
 	var x *xorm.Engine
 	var x *xorm.Engine
 	if err := models.NewTestEngine(x); err != nil {
 	if err := models.NewTestEngine(x); err != nil {
 		if strings.Contains(err.Error(), `Unknown database type: sqlite3`) {
 		if strings.Contains(err.Error(), `Unknown database type: sqlite3`) {
+			ctx.Data["Err_DbType"] = true
 			ctx.RenderWithErr(ctx.Tr("install.sqlite3_not_available", "http://gogs.io/docs/installation/install_from_binary.html"), INSTALL, &form)
 			ctx.RenderWithErr(ctx.Tr("install.sqlite3_not_available", "http://gogs.io/docs/installation/install_from_binary.html"), INSTALL, &form)
 		} else {
 		} else {
+			ctx.Data["Err_DbSetting"] = true
 			ctx.RenderWithErr(ctx.Tr("install.invalid_db_setting", err), INSTALL, &form)
 			ctx.RenderWithErr(ctx.Tr("install.invalid_db_setting", err), INSTALL, &form)
 		}
 		}
 		return
 		return
@@ -202,6 +236,7 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
 	cfg.Section("database").Key("SSL_MODE").SetValue(models.DbCfg.SSLMode)
 	cfg.Section("database").Key("SSL_MODE").SetValue(models.DbCfg.SSLMode)
 	cfg.Section("database").Key("PATH").SetValue(models.DbCfg.Path)
 	cfg.Section("database").Key("PATH").SetValue(models.DbCfg.Path)
 
 
+	cfg.Section("").Key("APP_NAME").SetValue(form.AppName)
 	cfg.Section("repository").Key("ROOT").SetValue(form.RepoRootPath)
 	cfg.Section("repository").Key("ROOT").SetValue(form.RepoRootPath)
 	cfg.Section("").Key("RUN_USER").SetValue(form.RunUser)
 	cfg.Section("").Key("RUN_USER").SetValue(form.RunUser)
 	cfg.Section("server").Key("DOMAIN").SetValue(form.Domain)
 	cfg.Section("server").Key("DOMAIN").SetValue(form.Domain)
@@ -211,12 +246,18 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
 	if len(strings.TrimSpace(form.SMTPHost)) > 0 {
 	if len(strings.TrimSpace(form.SMTPHost)) > 0 {
 		cfg.Section("mailer").Key("ENABLED").SetValue("true")
 		cfg.Section("mailer").Key("ENABLED").SetValue("true")
 		cfg.Section("mailer").Key("HOST").SetValue(form.SMTPHost)
 		cfg.Section("mailer").Key("HOST").SetValue(form.SMTPHost)
+		cfg.Section("mailer").Key("FROM").SetValue(form.SMTPFrom)
 		cfg.Section("mailer").Key("USER").SetValue(form.SMTPEmail)
 		cfg.Section("mailer").Key("USER").SetValue(form.SMTPEmail)
 		cfg.Section("mailer").Key("PASSWD").SetValue(form.SMTPPasswd)
 		cfg.Section("mailer").Key("PASSWD").SetValue(form.SMTPPasswd)
-
-		cfg.Section("service").Key("REGISTER_EMAIL_CONFIRM").SetValue(com.ToStr(form.RegisterConfirm == "on"))
-		cfg.Section("service").Key("ENABLE_NOTIFY_MAIL").SetValue(com.ToStr(form.MailNotify == "on"))
+	} else {
+		cfg.Section("mailer").Key("ENABLED").SetValue("false")
 	}
 	}
+	cfg.Section("service").Key("REGISTER_EMAIL_CONFIRM").SetValue(com.ToStr(form.RegisterConfirm))
+	cfg.Section("service").Key("ENABLE_NOTIFY_MAIL").SetValue(com.ToStr(form.MailNotify))
+
+	cfg.Section("server").Key("OFFLINE_MODE").SetValue(com.ToStr(form.OfflineMode))
+	cfg.Section("service").Key("DISABLE_REGISTRATION").SetValue(com.ToStr(form.DisableRegistration))
+	cfg.Section("service").Key("REQUIRE_SIGNIN_VIEW").SetValue(com.ToStr(form.RequireSignInView))
 
 
 	cfg.Section("").Key("RUN_MODE").SetValue("prod")
 	cfg.Section("").Key("RUN_MODE").SetValue("prod")
 
 
@@ -237,16 +278,23 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
 	GlobalInit()
 	GlobalInit()
 
 
 	// Create admin account.
 	// Create admin account.
-	if err := models.CreateUser(&models.User{Name: form.AdminName, Email: form.AdminEmail, Passwd: form.AdminPasswd,
-		IsAdmin: true, IsActive: true}); err != nil {
-		if !models.IsErrUserAlreadyExist(err) {
-			setting.InstallLock = false
-			ctx.Data["Err_AdminName"] = true
-			ctx.Data["Err_AdminEmail"] = true
-			ctx.RenderWithErr(ctx.Tr("install.invalid_admin_setting", err), INSTALL, &form)
-			return
+	if len(form.AdminName) > 0 {
+		if err := models.CreateUser(&models.User{
+			Name:     form.AdminName,
+			Email:    form.AdminEmail,
+			Passwd:   form.AdminPasswd,
+			IsAdmin:  true,
+			IsActive: true,
+		}); err != nil {
+			if !models.IsErrUserAlreadyExist(err) {
+				setting.InstallLock = false
+				ctx.Data["Err_AdminName"] = true
+				ctx.Data["Err_AdminEmail"] = true
+				ctx.RenderWithErr(ctx.Tr("install.invalid_admin_setting", err), INSTALL, &form)
+				return
+			}
+			log.Info("Admin account already exist")
 		}
 		}
-		log.Info("Admin account already exist")
 	}
 	}
 
 
 	log.Info("First-time run install finished!")
 	log.Info("First-time run install finished!")

+ 1 - 0
routers/repo/issue.go

@@ -853,6 +853,7 @@ func Comment(ctx *middleware.Context) {
 		RepoID:       ctx.Repo.Repository.Id,
 		RepoID:       ctx.Repo.Repository.Id,
 		RepoUserName: ctx.Repo.Owner.LowerName,
 		RepoUserName: ctx.Repo.Owner.LowerName,
 		RepoName:     ctx.Repo.Repository.LowerName,
 		RepoName:     ctx.Repo.Repository.LowerName,
+		IsPrivate:    ctx.Repo.Repository.IsPrivate,
 	}
 	}
 	if err = models.NotifyWatchers(act); err != nil {
 	if err = models.NotifyWatchers(act); err != nil {
 		send(500, nil, err)
 		send(500, nil, err)

+ 14 - 7
routers/repo/setting.go

@@ -282,6 +282,7 @@ func WebHooksNew(ctx *middleware.Context) {
 	ctx.Data["PageIsSettingsHooksNew"] = true
 	ctx.Data["PageIsSettingsHooksNew"] = true
 	ctx.Data["Webhook"] = models.Webhook{HookEvent: &models.HookEvent{}}
 	ctx.Data["Webhook"] = models.Webhook{HookEvent: &models.HookEvent{}}
 	renderHookTypes(ctx)
 	renderHookTypes(ctx)
+
 	orCtx, err := getOrgRepoCtx(ctx)
 	orCtx, err := getOrgRepoCtx(ctx)
 	if err != nil {
 	if err != nil {
 		ctx.Handle(500, "WebHooksNew(getOrgRepoCtx)", err)
 		ctx.Handle(500, "WebHooksNew(getOrgRepoCtx)", err)
@@ -296,6 +297,7 @@ func WebHooksNewPost(ctx *middleware.Context, form auth.NewWebhookForm) {
 	ctx.Data["PageIsSettingsHooks"] = true
 	ctx.Data["PageIsSettingsHooks"] = true
 	ctx.Data["PageIsSettingsHooksNew"] = true
 	ctx.Data["PageIsSettingsHooksNew"] = true
 	ctx.Data["Webhook"] = models.Webhook{HookEvent: &models.HookEvent{}}
 	ctx.Data["Webhook"] = models.Webhook{HookEvent: &models.HookEvent{}}
+	renderHookTypes(ctx)
 
 
 	orCtx, err := getOrgRepoCtx(ctx)
 	orCtx, err := getOrgRepoCtx(ctx)
 	if err != nil {
 	if err != nil {
@@ -364,14 +366,10 @@ func WebHooksEdit(ctx *middleware.Context) {
 	// set data per HookTaskType
 	// set data per HookTaskType
 	switch w.HookTaskType {
 	switch w.HookTaskType {
 	case models.SLACK:
 	case models.SLACK:
-		{
-			ctx.Data["SlackHook"] = w.GetSlackHook()
-			ctx.Data["HookType"] = "Slack"
-		}
+		ctx.Data["SlackHook"] = w.GetSlackHook()
+		ctx.Data["HookType"] = "Slack"
 	default:
 	default:
-		{
-			ctx.Data["HookType"] = "Gogs"
-		}
+		ctx.Data["HookType"] = "Gogs"
 	}
 	}
 	w.GetEvent()
 	w.GetEvent()
 	ctx.Data["Webhook"] = w
 	ctx.Data["Webhook"] = w
@@ -403,6 +401,15 @@ func WebHooksEditPost(ctx *middleware.Context, form auth.NewWebhookForm) {
 		}
 		}
 		return
 		return
 	}
 	}
+
+	// set data per HookTaskType
+	switch w.HookTaskType {
+	case models.SLACK:
+		ctx.Data["SlackHook"] = w.GetSlackHook()
+		ctx.Data["HookType"] = "Slack"
+	default:
+		ctx.Data["HookType"] = "Gogs"
+	}
 	w.GetEvent()
 	w.GetEvent()
 	ctx.Data["Webhook"] = w
 	ctx.Data["Webhook"] = w
 
 

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.6.1.0703 Beta
+0.6.1.0714 Beta

+ 5 - 2
templates/base/alert.tmpl

@@ -1,2 +1,5 @@
-{{if .Flash.ErrorMsg}}<div class="alert alert-danger form-error">{{.Flash.ErrorMsg}}</div>{{end}}
-{{if .Flash.SuccessMsg}}<div class="alert alert-success">{{.Flash.SuccessMsg}}</div>{{end}}
+{{if .Flash.ErrorMsg}}
+<div class="ui negative message">
+  <p>{{.Flash.ErrorMsg}}</p>
+</div>
+{{end}}

+ 2 - 0
templates/base/alert_old.tmpl

@@ -0,0 +1,2 @@
+{{if .Flash.ErrorMsg}}<div class="alert alert-danger form-error">{{.Flash.ErrorMsg}}</div>{{end}}
+{{if .Flash.SuccessMsg}}<div class="alert alert-success">{{.Flash.SuccessMsg}}</div>{{end}}

+ 1 - 1
templates/base/footer.tmpl

@@ -11,7 +11,7 @@
 				<a target="_blank" href="https://plus.google.com/communities/115599856376145964459"><i class="fa fa-google-plus"></i><span class="sr-only">Google Plus</span></a>
 				<a target="_blank" href="https://plus.google.com/communities/115599856376145964459"><i class="fa fa-google-plus"></i><span class="sr-only">Google Plus</span></a>
 				<a target="_blank" href="http://weibo.com/gogschina"><i class="fa fa-weibo"></i><span class="sr-only">Sina Weibo</span></a>
 				<a target="_blank" href="http://weibo.com/gogschina"><i class="fa fa-weibo"></i><span class="sr-only">Sina Weibo</span></a>
 				{{end}}
 				{{end}}
-				<div class="ui language bottom pointing dropdown link item">
+				<div class="ui language bottom pointing slide up dropdown link item">
           <i class="world icon"></i>
           <i class="world icon"></i>
           <div class="text">{{.LangName}}</div>
           <div class="text">{{.LangName}}</div>
           	<div class="menu">
           	<div class="menu">

+ 8 - 6
templates/base/head.tmpl

@@ -14,26 +14,27 @@
 	<link rel="shortcut icon" href="{{AppSubUrl}}/img/favicon.png" />
 	<link rel="shortcut icon" href="{{AppSubUrl}}/img/favicon.png" />
 
 
 	{{if CdnMode}}
 	{{if CdnMode}}
-	<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
+	<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
 	<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
 	<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
 	{{else}}
 	{{else}}
-	<script src="{{AppSubUrl}}/js/jquery-1.11.2.min.js"></script>
+	<script src="{{AppSubUrl}}/js/jquery-1.11.3.min.js"></script>
 	<link rel="stylesheet" href="{{AppSubUrl}}/css/font-awesome.min.css">
 	<link rel="stylesheet" href="{{AppSubUrl}}/css/font-awesome.min.css">
 	{{end}}
 	{{end}}
 
 
 	<!-- Stylesheet -->
 	<!-- Stylesheet -->
-	<link rel="stylesheet" href="{{AppSubUrl}}/css/semantic.min.css">
-	<link rel="stylesheet" href="{{AppSubUrl}}/css/gogs.min.css">
+	<link rel="stylesheet" href="{{AppSubUrl}}/css/semantic.min.css?v={{AppVer}}">
+	<link rel="stylesheet" href="{{AppSubUrl}}/css/gogs.min.css?v={{AppVer}}">
 
 
 	<!-- JavaScript -->
 	<!-- JavaScript -->
-	<script src="{{AppSubUrl}}/js/semantic.min.js"></script>
-	<script src="{{AppSubUrl}}/js/gogs.js"></script>
+	<script src="{{AppSubUrl}}/js/semantic.min.js?v={{AppVer}}"></script>
+	<script src="{{AppSubUrl}}/js/gogs.js?v={{AppVer}}"></script>
 
 
 	<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
 	<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
 </head>
 </head>
 <body>
 <body>
 	<div class="full height">
 	<div class="full height">
 		<noscript>Please enable JavaScript in your browser!</noscript>
 		<noscript>Please enable JavaScript in your browser!</noscript>
+		{{if not .PageIsInstall}}
 		<div class="following bar light">
 		<div class="following bar light">
 		  <div class="ui page grid">
 		  <div class="ui page grid">
 		    <div class="column">
 		    <div class="column">
@@ -58,3 +59,4 @@
 		    </div>
 		    </div>
 		  </div>
 		  </div>
 		</div>
 		</div>
+		{{end}}

+ 2 - 2
templates/base/head_old.tmpl

@@ -16,13 +16,13 @@
 		<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
 		<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
 		<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
 		<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
 
 
-		<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
+		<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
 		<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
 		<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
 		{{else}}
 		{{else}}
 		<link href="{{AppSubUrl}}/css/bootstrap.min.css" rel="stylesheet" />
 		<link href="{{AppSubUrl}}/css/bootstrap.min.css" rel="stylesheet" />
 		<link href="{{AppSubUrl}}/css/font-awesome.min.css" rel="stylesheet" />
 		<link href="{{AppSubUrl}}/css/font-awesome.min.css" rel="stylesheet" />
 
 
-		<script src="{{AppSubUrl}}/js/jquery-1.10.1.min.js"></script>
+		<script src="{{AppSubUrl}}/js/jquery-1.11.3.min.js"></script>
 		<script src="{{AppSubUrl}}/js/bootstrap.min.js"></script>
 		<script src="{{AppSubUrl}}/js/bootstrap.min.js"></script>
 		{{end}}
 		{{end}}
 
 

+ 203 - 145
templates/install.tmpl

@@ -1,155 +1,213 @@
-{{template "ng/base/head" .}}
-<div id="setting-wrapper" class="main-wrapper">
-    <div class="container clear">
-        <div class="setting-content">
-            {{template "ng/base/alert" .}}
-            <div id="setting-content">
-                <div class="panel panel-radius">
-                    <div class="panel-header">
-                        <strong>{{.i18n.Tr "install.title"}}</strong>
-                    </div>
-                    <form class="form form-align panel-body" id="install-form" action="{{AppSubUrl}}/install" method="post">
-                        {{.CsrfTokenHtml}}
-                        <div class="text-center panel-desc">{{.i18n.Tr "install.requite_db_desc"}}</div>
-                        <div class="field">
-                            <label class="req">{{.i18n.Tr "install.db_type"}}</label>
-                            <select name="db_type" id="install-database" class="form-control">
-                                {{range .DbOptions}}
-                                <option value="{{.}}"{{if eq $.CurDbOption .}}selected{{end}}>{{.}}</option>
-                                {{end}}
-                            </select>
-                        </div>
+{{template "base/head" .}}
+<div class="install">
+	<div class="ui middle very relaxed page grid">
+		<div class="sixteen wide center aligned centered column">
+      
 
 
-                        <div class="server-sql {{if eq .CurDbOption "SQLite3"}}hide{{end}}">
-                            <div class="field">
-                                <label class="req" for="db_host">{{.i18n.Tr "install.host"}}</label>
-                                <input class="ipt ipt-large ipt-radius {{if .Err_DbHost}}ipt-error{{end}}" id="db_host" name="db_host" value="{{.db_host}}" />
-                            </div>
-                            <div class="field">
-                                <label class="req" for="db_user">{{.i18n.Tr "install.user"}}</label>
-                                <input class="ipt ipt-large ipt-radius {{if .Err_DbUser}}ipt-error{{end}}" id="db_user" name="db_user" value="{{.db_user}}" />
-                            </div>
-                            <div class="field">
-                                <label class="req" for="db_passwd">{{.i18n.Tr "install.password"}}</label>
-                                <input class="ipt ipt-large ipt-radius {{if .Err_DbPasswd}}ipt-error{{end}}" id="db_passwd" name="db_passwd" type="password" value="{{.db_passwd}}" />
-                            </div>
-                            <div class="field">
-                                <label class="req" for="db_name">{{.i18n.Tr "install.db_name"}}</label>
-                                <input class="ipt ipt-large ipt-radius {{if .Err_DbName}}ipt-error{{end}}" id="db_name" name="db_name" value="{{.db_name}}" />
-                                <label></label>
-                                <span class="help">{{.i18n.Tr "install.db_helper"}}</span>
-                            </div>
-                        </div>
+			<h3 class="ui top attached header">
+			  {{.i18n.Tr "install.title"}}
+			</h3>
+			<div class="ui attached segment">
+        {{template "base/alert" .}}
+        
+			  <form class="ui form" action="{{AppSubUrl}}/install" method="post">
+			  	{{.CsrfTokenHtml}}
 
 
-                        <div class="field pgsql-setting {{if not (eq .CurDbOption "PostgreSQL")}}hide{{end}}">
-                            <label class="req">{{.i18n.Tr "install.ssl_mode"}}</label>
-                            <select name="ssl_mode" class="form-control">
-                                <option value="disable">Disable</option>
-                                <option value="require">Require</option>
-                                <option value="verify-full">Verify Full</option>
-                            </select>
-                        </div>
+			  	<!-- Dtabase Settings -->
+			  	<h4 class="ui dividing header">{{.i18n.Tr "install.db_title"}}</h4>
+			  	<p>{{.i18n.Tr "install.requite_db_desc"}}</p>
+			  	<div class="inline required field {{if .Err_DbType}}error{{end}}">
+	  	      <label>{{.i18n.Tr "install.db_type"}}</label>
+			      <div class="ui selection database type dropdown">
+			        <input type="hidden" id="db_type" name="db_type" value="{{.CurDbOption}}">
+			        <div class="default text">{{.CurDbOption}}</div>
+			        <i class="dropdown icon"></i>
+			        <div class="menu">
+                {{range .DbOptions}}
+			          <div class="item" data-value="{{.}}">{{.}}</div>
+                {{end}}
+			        </div>
+			      </div>
+	  	    </div>
 
 
-                        <div class="field sqlite-setting {{if not (eq .CurDbOption "SQLite3")}}hide{{end}}">
-                            <label class="req" for="db_path">{{.i18n.Tr "install.path"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_DbPath}}ipt-error{{end}}" id="db_path" name="db_path" value="{{.db_path}}" />
-                            <label></label>
-                            <span class="help">{{.i18n.Tr "install.sqlite_helper"}}</span>
-                        </div>
-
-                        <hr>
-
-                        <div class="text-center panel-desc">{{.i18n.Tr "install.general_title"}}</div>
-                        <div class="field">
-                            <label class="req" for="repo_root_path">{{.i18n.Tr "install.repo_path"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_RepoRootPath}}ipt-error{{end}}" id="repo_root_path" name="repo_root_path" value="{{.repo_root_path}}" required />
-                            <label></label>
-                            <span class="help">{{.i18n.Tr "install.repo_path_helper"}}</span>
-                        </div>
-                        <div class="field">
-                            <label class="req" for="run_user">{{.i18n.Tr "install.run_user"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_RunUser}}ipt-error{{end}}" id="run_user" name="run_user" value="{{.run_user}}" required />
-                            <label></label>
-                            <span class="help">{{.i18n.Tr "install.run_user_helper"}}</span>
-                        </div>
-                        <div class="field">
-                            <label class="req" for="domain">{{.i18n.Tr "install.domain"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_Domain}}ipt-error{{end}}" id="domain" name="domain" value="{{.domain}}" required />
-                            <label></label>
-                            <span class="help">{{.i18n.Tr "install.domain_helper"}}</span>
-                        </div>
-                        <div class="field">
-                            <label class="req" for="http_port">{{.i18n.Tr "install.http_port"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_HttpPort}}ipt-error{{end}}" id="http_port" name="http_port" value="{{.http_port}}" required />
-                            <label></label>
-                            <span class="help">{{.i18n.Tr "install.http_port_helper"}}</span>
-                        </div>
-                        <div class="field">
-                            <label class="req" for="app_url">{{.i18n.Tr "install.app_url"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_AppUrl}}ipt-error{{end}}" id="app_url" name="app_url" value="{{.app_url}}" required />
-                            <label></label>
-                            <span class="help">{{.i18n.Tr "install.app_url_helper"}}</span>
-                        </div>
-
-                        <hr>
-
-                        <div class="text-center panel-desc">{{.i18n.Tr "install.email_title"}}</div>
-                        <div class="field">
-                            <label for="smtp_host">{{.i18n.Tr "install.smtp_host"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_SmtpHost}}ipt-error{{end}}" id="smtp_host" name="smtp_host" value="{{.smtp_host}}" />
-                        </div>
-                        <div class="field">
-                            <label for="smtp_user">{{.i18n.Tr "install.mailer_user"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_SMTPEmail}}ipt-error{{end}}" id="smtp_user" name="smtp_user" value="{{.smtp_user}}" />
-                        </div>
-                        <div class="field">
-                            <label for="smtp_pwd">{{.i18n.Tr "install.mailer_password"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_SMTPPasswd}}ipt-error{{end}}" id="smtp_pwd" name="smtp_pwd" type="password" value="{{.smtp_pwd}}" />
-                        </div>
-
-                        <hr>
-
-                        <div class="text-center panel-desc">{{.i18n.Tr "install.notify_title"}}</div>
-                        <div class="field">
-                            <label></label>
-                            <input name="register_confirm" type="checkbox" {{if .register_confirm}}checked{{end}}>
-                            <strong>{{.i18n.Tr "install.register_confirm"}}</strong>
-                            <br>
-                            <label></label>
-                            <input name="mail_notify" type="checkbox" {{if .mail_notify}}checked{{end}}>
-                            <strong>{{.i18n.Tr "install.mail_notify"}}</strong>
-                        </div>
+          <div id="sql_settings" class="{{if eq .CurDbOption "SQLite3"}}hide{{end}}">
+            <div class="inline required field {{if .Err_DbSetting}}error{{end}}">
+              <label for="db_host">{{.i18n.Tr "install.host"}}</label>
+              <input id="db_host" name="db_host" value="{{.db_host}}">
+            </div>
+            <div class="inline required field {{if .Err_DbSetting}}error{{end}}">
+              <label for="db_user">{{.i18n.Tr "install.user"}}</label>
+              <input id="db_user" name="db_user" value="{{.db_user}}">
+            </div>
+            <div class="inline required field {{if .Err_DbSetting}}error{{end}}">
+              <label for="db_passwd">{{.i18n.Tr "install.password"}}</label>
+              <input id="db_passwd" name="db_passwd" type="password" value="{{.db_passwd}}">
+            </div>
+            <div class="inline required field {{if .Err_DbSetting}}error{{end}}">
+              <label for="db_name">{{.i18n.Tr "install.db_name"}}</label>
+              <input id="db_name" name="db_name" value="{{.db_name}}">
+              <span class="help">{{.i18n.Tr "install.db_helper"}}</span>
+            </div>
+          </div>
 
 
-                        <hr>
+          <div id="pgsql_settings" class="{{if not (eq .CurDbOption "PostgreSQL")}}hide{{end}}">
+            <div class="inline required field">
+              <label>{{.i18n.Tr "install.ssl_mode"}}</label>
+              <div class="ui selection database type dropdown">
+                <input type="hidden" name="ssl_mode" value="{{if .ssl_mode}}{{.ssl_mode}}{{else}}disable{{end}}">
+                <div class="default text">disable</div>
+                <i class="dropdown icon"></i>
+                <div class="menu">
+                  <div class="item" data-value="disable">Disable</div>
+                  <div class="item" data-value="require">Require</div>
+                  <div class="item" data-value="verify-full">Verify Full</div>
+                </div>
+              </div>
+            </div>
+          </div>
 
 
-                        <div class="text-center panel-desc">{{.i18n.Tr "install.admin_title"}}</div>
-                        <div class="field">
-                            <label class="req" for="admin_name">{{.i18n.Tr "install.admin_name"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_AdminName}}ipt-error{{end}}" id="admin_name" name="admin_name" value="{{.admin_name}}" required />
-                        </div>
-                        <div class="field">
-                            <label class="req" for="admin_passwd">{{.i18n.Tr "install.admin_password"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_AdminPasswd}}ipt-error{{end}}" id="admin_passwd" name="admin_passwd" type="password" value="{{.admin_passwd}}" required />
-                        </div>
-                        <div class="field">
-                            <label class="req" for="admin_confirm_passwd">{{.i18n.Tr "install.confirm_password"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_AdminPasswd}}ipt-error{{end}}" id="admin_confirm_passwd" name="admin_confirm_passwd" type="password" required />
-                        </div>
-                        <div class="field">
-                            <label class="req" for="admin_email">{{.i18n.Tr "install.admin_email"}}</label>
-                            <input class="ipt ipt-large ipt-radius {{if .Err_AdminEmail}}ipt-error{{end}}" id="admin_email" name="admin_email" value="{{.admin_email}}" required />
-                        </div>
+          <div id="sqlite_settings" class="{{if not (eq .CurDbOption "SQLite3")}}hide{{end}}">
+            <div class="inline required field {{if .Err_DbPath}}error{{end}}">
+              <label for="db_path">{{.i18n.Tr "install.path"}}</label>
+              <input id="db_path" name="db_path" value="{{.db_path}}">
+              <span class="help">{{.i18n.Tr "install.sqlite_helper"}}</span>
+            </div>
+          </div>
 
 
-                        <hr>
+					<!-- General Settings -->
+					<h4 class="ui dividing header">{{.i18n.Tr "install.general_title"}}</h4>
+          <div class="inline required field {{if .Err_AppName}}error{{end}}">
+            <label for="app_name">{{.i18n.Tr "install.app_name"}}</label>
+            <input id="app_name" name="app_name" value="{{.app_name}}" required>
+            <span class="help">{{.i18n.Tr "install.app_name_helper"}}</span>
+          </div>
+          <div class="inline required field {{if .Err_RepoRootPath}}error{{end}}">
+            <label for="repo_root_path">{{.i18n.Tr "install.repo_path"}}</label>
+            <input id="repo_root_path" name="repo_root_path" value="{{.repo_root_path}}" required>
+            <span class="help">{{.i18n.Tr "install.repo_path_helper"}}</span>
+          </div>
+          <div class="inline required field {{if .Err_RunUser}}error{{end}}">
+            <label for="run_user">{{.i18n.Tr "install.run_user"}}</label>
+            <input id="run_user" name="run_user" value="{{.run_user}}" required>
+            <span class="help">{{.i18n.Tr "install.run_user_helper"}}</span>
+          </div>
+          <div class="inline required field">
+            <label for="domain">{{.i18n.Tr "install.domain"}}</label>
+            <input id="domain" name="domain" value="{{.domain}}" required>
+            <span class="help">{{.i18n.Tr "install.domain_helper"}}</span>
+          </div>
+          <div class="inline required field">
+            <label for="http_port">{{.i18n.Tr "install.http_port"}}</label>
+            <input id="http_port" name="http_port" value="{{.http_port}}" required>
+            <span class="help">{{.i18n.Tr "install.http_port_helper"}}</span>
+          </div>
+          <div class="inline required field">
+            <label for="app_url">{{.i18n.Tr "install.app_url"}}</label>
+            <input id="app_url" name="app_url" value="{{.app_url}}" required>
+            <span class="help">{{.i18n.Tr "install.app_url_helper"}}</span>
+          </div>
 
 
-                        <div class="field">
-                            <label></label>
-                            <button class="btn btn-blue btn-large btn-radius">{{.i18n.Tr "install.install_gogs"}}</button>
-                        </div>
-                    </form>
+          <!-- Optional Settings -->
+          <h4 class="ui dividing header">{{.i18n.Tr "install.optional_title"}}</h4>
+          <div class="ui accordion optional field">
+            <div class="title {{if .Err_SMTP}}text-error{{end}}">
+              <i class="icon dropdown"></i>
+              {{.i18n.Tr "install.email_title"}}
+            </div>
+            <div class="content">
+              <div class="inline field">
+                <label for="smtp_host">{{.i18n.Tr "install.smtp_host"}}</label>
+                <input id="smtp_host" name="smtp_host" value="{{.smtp_host}}">
+              </div>
+              <div class="inline field {{if .Err_SMTPFrom}}error{{end}}">
+                <label for="smtp_from">{{.i18n.Tr "install.smtp_from"}}</label>
+                <input id="smtp_from" name="smtp_from" value="{{.smtp_from}}">
+                <span class="help">{{.i18n.Tr "install.smtp_from_helper"}}</span>
+              </div>
+              <div class="inline field {{if .Err_SMTPEmail}}error{{end}}">
+                <label for="smtp_user">{{.i18n.Tr "install.mailer_user"}}</label>
+                <input id="smtp_user" name="smtp_user" value="{{.smtp_user}}">
+              </div>
+              <div class="inline field">
+                <label for="smtp_passwd">{{.i18n.Tr "install.mailer_password"}}</label>
+                <input id="smtp_passwd" name="smtp_passwd" type="password" value="{{.smtp_passwd}}">
+              </div>
+              <div class="inline field">
+                <div class="ui checkbox">
+                  <label><strong>{{.i18n.Tr "install.register_confirm"}}</strong></label>
+                  <input name="register_confirm" type="checkbox" {{if .register_confirm}}checked{{end}}>
+                </div>
+              </div>
+              <div class="inline field">
+                <div class="ui checkbox">
+                  <label><strong>{{.i18n.Tr "install.mail_notify"}}</strong></label>
+                  <input name="mail_notify" type="checkbox" {{if .mail_notify}}checked{{end}}>
+                </div>
+              </div>
+            </div>
+          </div>
+          
+          <div class="ui accordion optional field">
+            <div class="title">
+              <i class="icon dropdown"></i>
+              {{.i18n.Tr "install.server_service_title"}}
+            </div>
+            <div class="content">
+              <div class="inline field">
+                <div class="ui checkbox">
+                  <label class="poping up" data-content="{{.i18n.Tr "install.offline_mode_popup"}}"><strong>{{.i18n.Tr "install.offline_mode"}}</strong></label>
+                  <input name="offline_mode" type="checkbox" {{if .offline_mode}}checked{{end}}>
                 </div>
                 </div>
+              </div>
+              <div class="inline field">
+                <div class="ui checkbox">
+                  <label class="poping up" data-content="{{.i18n.Tr "install.disable_registration_popup"}}"><strong>{{.i18n.Tr "install.disable_registration"}}</strong></label>
+                  <input name="disable_registration" type="checkbox" {{if .disable_registration}}checked{{end}}>
+                </div>
+              </div>
+              <div class="inline field">
+                <div class="ui checkbox">
+                  <label class="poping up" data-content="{{.i18n.Tr "install.require_sign_in_view_popup"}}"><strong>{{.i18n.Tr "install.require_sign_in_view"}}</strong></label>
+                  <input name="require_sign_in_view" type="checkbox" {{if .require_sign_in_view}}checked{{end}}>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <div class="ui accordion optional field">
+            <div class="title {{if .Err_Admin}}text-error{{end}}">
+              <i class="icon dropdown"></i>
+              {{.i18n.Tr "install.admin_title"}}
+            </div>
+            <div class="content">
+              <p class="center">{{.i18n.Tr "install.admin_setting_desc"}}</p>
+              <div class="inline field {{if .Err_AdminName}}error{{end}}">
+                <label for="admin_name">{{.i18n.Tr "install.admin_name"}}</label>
+                <input id="admin_name" name="admin_name" value="{{.admin_name}}">
+              </div>
+              <div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
+                <label for="admin_passwd">{{.i18n.Tr "install.admin_password"}}</label>
+                <input id="admin_passwd" name="admin_passwd" value="{{.admin_passwd}}">
+              </div>
+              <div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
+                <label for="admin_confirm_passwd">{{.i18n.Tr "install.confirm_password"}}</label>
+                <input id="admin_confirm_passwd" name="admin_confirm_passwd" type="password" value="{{.admin_confirm_passwd}}">
+              </div>
+              <div class="inline field {{if .Err_AdminEmail}}error{{end}}">
+                <label for="admin_email">{{.i18n.Tr "install.admin_email"}}</label>
+                <input id="admin_email" name="admin_email" value="{{.admin_email}}">
+              </div>
             </div>
             </div>
-        </div>
-    </div>
+          </div>
+
+          <div class="ui divider"></div>
+          <div class="inline field">
+            <label></label>
+            <button class="ui primary button">{{.i18n.Tr "install.install_gogs"}}</button>
+          </div>
+			  </form>
+			</div>
+		</div>
+	</div>
 </div>
 </div>
-{{template "ng/base/footer" .}}
+{{template "base/footer" .}}

部分文件因为文件数量过多而无法显示