mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-16 12:05:30 +09:00
#1511 Allow local import only for admin users
This commit is contained in:
1 parent
25ec20d525
commit
6f0a41b8b2
18 files changed
+152
-79
No files matched your search
@@ -5,7 +5,7 @@ Gogs - Go Git Service [
|
||||
|
||||
##### Current version: 0.6.23 Beta
|
||||
##### Current version: 0.6.24 Beta
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
@@ -360,6 +360,7 @@ migrate_type_helper=Diese Repository wird ein <span class="text blue">Spiegel</s
|
||||
migrate_repo=Repository migrieren
|
||||
migrate.clone_address=Adresse kopieren
|
||||
migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT URL oder ein lokaler Serverpfad sein.
|
||||
migrate.permission_denied=You are not allowed to import local repositories.
|
||||
migrate.invalid_local_path=Lokaler Pfad ist ungültig, er existiert nicht oder ist kein Ordner.
|
||||
|
||||
forked_from=Geforkt von
|
||||
@@ -651,7 +652,7 @@ release.tag_name_already_exist=Ein Release mit diesem Tag existiert bereits.
|
||||
|
||||
[org]
|
||||
org_name_holder=Name der Organisation
|
||||
org_full_name_holder=Organization Full Name
|
||||
org_full_name_holder=Vollständiger Name der Organisation
|
||||
org_name_helper=Gute Namen von Organisationen sind kurz und einprägsam.
|
||||
create_org=Organisation erstellen
|
||||
repo_updated=Aktualisiert
|
||||
@@ -808,6 +809,7 @@ users.edit_account=Konto bearbeiten
|
||||
users.is_activated=Dieses Konto ist aktiviert
|
||||
users.is_admin=Dieses Konto hat Administratorrechte
|
||||
users.allow_git_hook=Dieses Konto ist berechtigt, Git-Hooks zu erstellen
|
||||
users.allow_import_local=This account has permissions to import local repositories
|
||||
users.update_profile=Kontoprofil aktualisieren
|
||||
users.delete_account=Dieses Konto löschen
|
||||
users.still_own_repo=Dieses Konto besitzt noch Repositories. Diese müssen zuerst gelöscht oder übertragen werden.
|
||||
|
||||
@@ -360,6 +360,7 @@ migrate_type_helper = This repository will be a <span class="text blue">mirror</
|
||||
migrate_repo = Migrate Repository
|
||||
migrate.clone_address = Clone Address
|
||||
migrate.clone_address_desc = This can be a HTTP/HTTPS/GIT URL or local server path.
|
||||
migrate.permission_denied = You are not allowed to import local repositories.
|
||||
migrate.invalid_local_path = Invalid local path, it does not exist or not a directory.
|
||||
|
||||
forked_from = forked from
|
||||
@@ -808,6 +809,7 @@ users.edit_account = Edit Account
|
||||
users.is_activated = This account is activated
|
||||
users.is_admin = This account has administrator permissions
|
||||
users.allow_git_hook = This account has permissions to create Git hooks
|
||||
users.allow_import_local = This account has permissions to import local repositories
|
||||
users.update_profile = Update Account Profile
|
||||
users.delete_account = Delete This Account
|
||||
users.still_own_repo = This account still has ownership over at least one repository, you have to delete or transfer them first.
|
||||
|
||||
@@ -360,6 +360,7 @@ migrate_type_helper=该仓库将是一个 <span class="text blue">镜像</span>
|
||||
migrate_repo=迁移仓库
|
||||
migrate.clone_address=克隆地址
|
||||
migrate.clone_address_desc=该地址可以是 HTTP/HTTPS/GIT URL 或本地服务器路径。
|
||||
migrate.permission_denied=您没有获得导入本地仓库的权限。
|
||||
migrate.invalid_local_path=无效的本地路径,不存在或不是一个目录!
|
||||
|
||||
forked_from=派生自
|
||||
@@ -807,7 +808,8 @@ users.update_profile_success=该用户信息更新成功!
|
||||
users.edit_account=编辑用户信息
|
||||
users.is_activated=该用户已被激活
|
||||
users.is_admin=该用户具有管理员权限
|
||||
users.allow_git_hook=该帐户具有创建 Git 钩子的权限
|
||||
users.allow_git_hook=该用户具有创建 Git 钩子的权限
|
||||
users.allow_import_local=该用户具有导入本地仓库的权限
|
||||
users.update_profile=更新用户信息
|
||||
users.delete_account=删除该用户
|
||||
users.still_own_repo=该帐户仍然是某些仓库的拥有者,您必须先转移或删除它们才能执行删除帐户操作!
|
||||
|
||||
@@ -360,6 +360,7 @@ migrate_type_helper=該倉庫將是一個 <span class="text blue">鏡像</span>
|
||||
migrate_repo=遷移倉庫
|
||||
migrate.clone_address=複製地址
|
||||
migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT URL 或本地服務器路徑。
|
||||
migrate.permission_denied=You are not allowed to import local repositories.
|
||||
migrate.invalid_local_path=無效的本地路徑,該路徑不存在或不是一個目錄!
|
||||
|
||||
forked_from=派生自
|
||||
@@ -808,6 +809,7 @@ users.edit_account=編輯用戶信息
|
||||
users.is_activated=該用戶已被激活
|
||||
users.is_admin=該用戶具有管理員權限
|
||||
users.allow_git_hook=該帳戶具有創建 Git 鉤子的權限
|
||||
users.allow_import_local=This account has permissions to import local repositories
|
||||
users.update_profile=更新用戶信息
|
||||
users.delete_account=刪除該用戶
|
||||
users.still_own_repo=該帳戶仍然是某些倉庫的擁有者,您必須先轉移或刪除它們才能執行刪除帳戶操作!
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
"github.com/gogits/gogs/modules/setting"
|
||||
)
|
||||
|
||||
const APP_VER = "0.6.23.1103 Beta"
|
||||
const APP_VER = "0.6.24.1103 Beta"
|
||||
|
||||
func init() {
|
||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||
|
||||
+30
-14
@@ -18,7 +18,7 @@ func IsErrNameReserved(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrNameReserved) Error() string {
|
||||
return fmt.Sprintf("name is reserved: [name: %s]", err.Name)
|
||||
return fmt.Sprintf("name is reserved [name: %s]", err.Name)
|
||||
}
|
||||
|
||||
type ErrNamePatternNotAllowed struct {
|
||||
@@ -31,7 +31,7 @@ func IsErrNamePatternNotAllowed(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrNamePatternNotAllowed) Error() string {
|
||||
return fmt.Sprintf("name pattern is not allowed: [pattern: %s]", err.Pattern)
|
||||
return fmt.Sprintf("name pattern is not allowed [pattern: %s]", err.Pattern)
|
||||
}
|
||||
|
||||
// ____ ___
|
||||
@@ -51,7 +51,7 @@ func IsErrUserAlreadyExist(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrUserAlreadyExist) Error() string {
|
||||
return fmt.Sprintf("user already exists: [name: %s]", err.Name)
|
||||
return fmt.Sprintf("user already exists [name: %s]", err.Name)
|
||||
}
|
||||
|
||||
type ErrUserNotExist struct {
|
||||
@@ -65,7 +65,7 @@ func IsErrUserNotExist(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrUserNotExist) Error() string {
|
||||
return fmt.Sprintf("user does not exist: [uid: %d, name: %s]", err.UID, err.Name)
|
||||
return fmt.Sprintf("user does not exist [uid: %d, name: %s]", err.UID, err.Name)
|
||||
}
|
||||
|
||||
type ErrEmailAlreadyUsed struct {
|
||||
@@ -78,7 +78,7 @@ func IsErrEmailAlreadyUsed(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrEmailAlreadyUsed) Error() string {
|
||||
return fmt.Sprintf("e-mail has been used: [email: %s]", err.Email)
|
||||
return fmt.Sprintf("e-mail has been used [email: %s]", err.Email)
|
||||
}
|
||||
|
||||
type ErrUserOwnRepos struct {
|
||||
@@ -91,7 +91,7 @@ func IsErrUserOwnRepos(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrUserOwnRepos) Error() string {
|
||||
return fmt.Sprintf("user still has ownership of repositories: [uid: %d]", err.UID)
|
||||
return fmt.Sprintf("user still has ownership of repositories [uid: %d]", err.UID)
|
||||
}
|
||||
|
||||
type ErrUserHasOrgs struct {
|
||||
@@ -104,7 +104,7 @@ func IsErrUserHasOrgs(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrUserHasOrgs) Error() string {
|
||||
return fmt.Sprintf("user still has membership of organizations: [uid: %d]", err.UID)
|
||||
return fmt.Sprintf("user still has membership of organizations [uid: %d]", err.UID)
|
||||
}
|
||||
|
||||
// __________ ___. .__ .__ ____ __.
|
||||
@@ -124,7 +124,7 @@ func IsErrKeyNotExist(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrKeyNotExist) Error() string {
|
||||
return fmt.Sprintf("public key does not exist: [id: %d]", err.ID)
|
||||
return fmt.Sprintf("public key does not exist [id: %d]", err.ID)
|
||||
}
|
||||
|
||||
type ErrKeyAlreadyExist struct {
|
||||
@@ -138,7 +138,7 @@ func IsErrKeyAlreadyExist(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrKeyAlreadyExist) Error() string {
|
||||
return fmt.Sprintf("public key already exists: [owner_id: %d, content: %s]", err.OwnerID, err.Content)
|
||||
return fmt.Sprintf("public key already exists [owner_id: %d, content: %s]", err.OwnerID, err.Content)
|
||||
}
|
||||
|
||||
type ErrKeyNameAlreadyUsed struct {
|
||||
@@ -152,7 +152,7 @@ func IsErrKeyNameAlreadyUsed(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrKeyNameAlreadyUsed) Error() string {
|
||||
return fmt.Sprintf("public key already exists: [owner_id: %d, name: %s]", err.OwnerID, err.Name)
|
||||
return fmt.Sprintf("public key already exists [owner_id: %d, name: %s]", err.OwnerID, err.Name)
|
||||
}
|
||||
|
||||
type ErrDeployKeyAlreadyExist struct {
|
||||
@@ -166,7 +166,7 @@ func IsErrDeployKeyAlreadyExist(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrDeployKeyAlreadyExist) Error() string {
|
||||
return fmt.Sprintf("public key already exists: [key_id: %d, repo_id: %d]", err.KeyID, err.RepoID)
|
||||
return fmt.Sprintf("public key already exists [key_id: %d, repo_id: %d]", err.KeyID, err.RepoID)
|
||||
}
|
||||
|
||||
type ErrDeployKeyNameAlreadyUsed struct {
|
||||
@@ -180,7 +180,7 @@ func IsErrDeployKeyNameAlreadyUsed(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrDeployKeyNameAlreadyUsed) Error() string {
|
||||
return fmt.Sprintf("public key already exists: [repo_id: %d, name: %s]", err.RepoID, err.Name)
|
||||
return fmt.Sprintf("public key already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
|
||||
}
|
||||
|
||||
// _____ ___________ __
|
||||
@@ -200,7 +200,7 @@ func IsErrAccessTokenNotExist(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrAccessTokenNotExist) Error() string {
|
||||
return fmt.Sprintf("access token does not exist: [sha: %s]", err.SHA)
|
||||
return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA)
|
||||
}
|
||||
|
||||
// ________ .__ __ .__
|
||||
@@ -220,7 +220,7 @@ func IsErrLastOrgOwner(err error) bool {
|
||||
}
|
||||
|
||||
func (err ErrLastOrgOwner) Error() string {
|
||||
return fmt.Sprintf("user is the last member of owner team: [uid: %d]", err.UID)
|
||||
return fmt.Sprintf("user is the last member of owner team [uid: %d]", err.UID)
|
||||
}
|
||||
|
||||
// __________ .__ __
|
||||
@@ -259,6 +259,22 @@ func (err ErrRepoAlreadyExist) Error() string {
|
||||
return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
|
||||
}
|
||||
|
||||
type ErrInvalidCloneAddr struct {
|
||||
IsURLError bool
|
||||
IsInvalidPath bool
|
||||
IsPermissionDenied bool
|
||||
}
|
||||
|
||||
func IsErrInvalidCloneAddr(err error) bool {
|
||||
_, ok := err.(ErrInvalidCloneAddr)
|
||||
return ok
|
||||
}
|
||||
|
||||
func (err ErrInvalidCloneAddr) Error() string {
|
||||
return fmt.Sprintf("invalid clone address [is_url_error: %v, is_invalid_path: %v, is_permission_denied: %v]",
|
||||
err.IsURLError, err.IsInvalidPath, err.IsPermissionDenied)
|
||||
}
|
||||
|
||||
// __ __ ___. .__ __
|
||||
// / \ / \ ____\_ |__ | |__ ____ ____ | | __
|
||||
// \ \/\/ // __ \| __ \| | \ / _ \ / _ \| |/ /
|
||||
|
||||
+14
-3
@@ -75,9 +75,10 @@ type User struct {
|
||||
LastRepoVisibility bool
|
||||
|
||||
// Permissions.
|
||||
IsActive bool
|
||||
IsAdmin bool
|
||||
AllowGitHook bool
|
||||
IsActive bool
|
||||
IsAdmin bool
|
||||
AllowGitHook bool
|
||||
AllowImportLocal bool // Allow migrate repository by local path
|
||||
|
||||
// Avatar.
|
||||
Avatar string `xorm:"VARCHAR(2048) NOT NULL"`
|
||||
@@ -107,6 +108,16 @@ func (u *User) AfterSet(colName string, _ xorm.Cell) {
|
||||
}
|
||||
}
|
||||
|
||||
// CanEditGitHook returns true if user can edit Git hooks.
|
||||
func (u *User) CanEditGitHook() bool {
|
||||
return u.IsAdmin || u.AllowGitHook
|
||||
}
|
||||
|
||||
// CanImportLocal returns true if user can migrate repository by local path.
|
||||
func (u *User) CanImportLocal() bool {
|
||||
return u.IsAdmin || u.AllowImportLocal
|
||||
}
|
||||
|
||||
// EmailAdresses is the list of all email addresses of a user. Can contain the
|
||||
// primary email address, but is not obligatory
|
||||
type EmailAddress struct {
|
||||
|
||||
+11
-10
@@ -24,16 +24,17 @@ func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors)
|
||||
}
|
||||
|
||||
type AdminEditUserForm struct {
|
||||
LoginType string `binding:"Required"`
|
||||
LoginName string
|
||||
FullName string `binding:"MaxSize(100)"`
|
||||
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||
Password string `binding:"MaxSize(255)"`
|
||||
Website string `binding:"MaxSize(50)"`
|
||||
Location string `binding:"MaxSize(50)"`
|
||||
Active bool
|
||||
Admin bool
|
||||
AllowGitHook bool
|
||||
LoginType string `binding:"Required"`
|
||||
LoginName string
|
||||
FullName string `binding:"MaxSize(100)"`
|
||||
Email string `binding:"Required;Email;MaxSize(254)"`
|
||||
Password string `binding:"MaxSize(255)"`
|
||||
Website string `binding:"MaxSize(50)"`
|
||||
Location string `binding:"MaxSize(50)"`
|
||||
Active bool
|
||||
Admin bool
|
||||
AllowGitHook bool
|
||||
AllowImportLocal bool
|
||||
}
|
||||
|
||||
func (f *AdminEditUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
|
||||
|
||||
@@ -5,8 +5,14 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"strings"
|
||||
|
||||
"github.com/Unknwon/com"
|
||||
"github.com/go-macaron/binding"
|
||||
"gopkg.in/macaron.v1"
|
||||
|
||||
"github.com/gogits/gogs/models"
|
||||
)
|
||||
|
||||
// _______________________________________ _________.______________________ _______________.___.
|
||||
@@ -46,6 +52,34 @@ func (f *MigrateRepoForm) Validate(ctx *macaron.Context, errs binding.Errors) bi
|
||||
return validate(errs, ctx.Data, f, ctx.Locale)
|
||||
}
|
||||
|
||||
// ParseRemoteAddr checks if given remote address is valid,
|
||||
// and returns composed URL with needed username and passowrd.
|
||||
// It also checks if given user has permission when remote address
|
||||
// is actually a local path.
|
||||
func (f MigrateRepoForm) ParseRemoteAddr(user *models.User) (string, error) {
|
||||
remoteAddr := f.CloneAddr
|
||||
|
||||
// Remote address can be HTTP/HTTPS/Git URL or local path.
|
||||
if strings.HasPrefix(remoteAddr, "http://") ||
|
||||
strings.HasPrefix(remoteAddr, "https://") ||
|
||||
strings.HasPrefix(remoteAddr, "git://") {
|
||||
u, err := url.Parse(remoteAddr)
|
||||
if err != nil {
|
||||
return "", models.ErrInvalidCloneAddr{IsURLError: true}
|
||||
}
|
||||
if len(f.AuthUsername)+len(f.AuthPassword) > 0 {
|
||||
u.User = url.UserPassword(f.AuthUsername, f.AuthPassword)
|
||||
}
|
||||
remoteAddr = u.String()
|
||||
} else if !user.CanImportLocal() {
|
||||
return "", models.ErrInvalidCloneAddr{IsPermissionDenied: true}
|
||||
} else if !com.IsDir(remoteAddr) {
|
||||
return "", models.ErrInvalidCloneAddr{IsInvalidPath: true}
|
||||
}
|
||||
|
||||
return remoteAddr, nil
|
||||
}
|
||||
|
||||
type RepoSettingForm struct {
|
||||
RepoName string `binding:"Required;AlphaDashDot;MaxSize(100)"`
|
||||
Description string `binding:"MaxSize(255)"`
|
||||
|
||||
@@ -4344,7 +4344,7 @@ func confLocaleLocale_bgBgIni() (*asset, error) {
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _confLocaleLocale_deDeIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\xbd\xdb\x8e\xe4\x46\x92\x26\x7c\x5f\x40\xbd\x03\x55\x83\xfa\x25\x01\x19\x21\xa8\xf5\xff\xff\x2e\x04\x85\xb4\x59\xe7\x6a\xd5\x69\x94\x25\x09\x90\x20\x84\x18\x41\x8f\x08\x4e\x32\xc8\x68\x3a\x99\xa9\xcc\xc1\x00\x73\x31\x97\x7b\xbd\x18\x2c\x16\x98\x1b\x61\x1f\x41\x57\xba\xcb\x37\xe9\x27\x59\xfb\xcc\xcc\x4f\x24\x23\xab\xba\xb5\xd3\x40\xab\x32\xe8\x67\x73\x73\x73\x3b\x7b\x7e\x38\x2c\x0b\x63\xd7\x8b\xc7\x65\x9d\x99\xb2\xde\xe4\xeb\x9d\x69\x4f\x32\x6b\xaa\x95\xed\xb2\xad\xd9\x35\xb6\x33\x9d\x69\xb3\xa7\x65\x37\x3b\x33\xed\x45\xb9\x36\x27\xf4\xdd\xae\x77\x6d\x69\x56\xa6\xce\xa8\xe1\xd3\xe6\xee\x9d\xbb\x77\x76\xcd\xde\x2c\x9e\xd1\x7f\xee\xde\x29\x72\xbb\x5b\x35\x79\x5b\x2c\x6e\xfe\xd7\xca\xb4\xb6\x5c\xef\xba\xbb\x77\xcc\x2f\x87\xaa\x69\xcd\xe2\x71\x7b\xde\xd7\x85\xa9\xa9\x89\xa9\x0e\x8b\x67\x65\xb5\xa1\x36\xb6\xdc\xd6\xcb\xb2\x5e\x9c\xd6\x7b\x53\x71\x29\x7f\x69\xfa\x6e\x71\xba\x4a\x3e\xf5\x87\xc5\x37\x66\x5b\xda\x8e\x66\xd0\xe2\x6b\xcb\xbf\x4c\x3b\xf8\x7c\x69\x56\xb6\xec\xcc\xe2\x7b\xfa\xd7\xd0\x1f\x77\xef\x5c\x60\x2e\x4d\xbd\xf8\x4e\xfe\xbd\x7b\xe7\x90\x6f\xcd\xe2\x4c\x0a\x3b\xb3\x3f\x54\x39\xd5\xff\xae\x69\x2b\xfa\x7e\xf7\x4e\x95\xd7\xdb\x9e\x6b\x1c\x5a\x00\xe6\xee\x9d\x75\x6b\xa8\xc6\xb2\x36\x97\xb4\x0a\x1a\xb2\xaa\x4c\x3d\x9f\xcf\xef\xde\xe9\xad\x69\x97\x87\xb6\xd9\x94\x95\x59\xe6\x75\xb1\xdc\x63\xa5\x0f\x4c\xdd\x77\xd7\xa6\x95\x82\x8c\x56\x9d\xed\xcd\xae\x95\x75\x98\x82\x96\xbb\xcc\x2d\x60\xbf\x35\x55\xb3\xdd\x76\x59\x5e\x59\x80\x12\xbd\xd5\xf9\x3e\x74\x80\x1f\x04\xc0\x7d\x5e\x56\x8b\xc7\xb3\x97\xf4\x0f\xe6\x6e\xed\x65\x43\x30\x7e\x23\x7f\x74\x00\xc4\xb2\xbb\x3a\x18\xff\x25\x5b\x19\xdb\xdd\xfc\xda\x95\x5b\xc0\x63\x9d\x1f\xba\xf5\x2e\x5f\x3c\x94\x7f\x31\x50\x6b\x0e\x0d\xc1\xa8\x69\xaf\x08\x76\xee\xcf\xbb\x77\x9a\x76\x9b\xd7\xe5\x75\xde\x01\x58\xaf\xf9\x87\xe5\x1f\x77\xef\xec\xcb\xb6\x6d\x5a\x82\x48\x69\x68\xd2\x77\xef\x10\x28\x96\xe8\x65\xf1\xca\xf4\xc6\x66\x71\x2f\x28\xda\x97\xdb\x16\x30\x45\x69\xf6\x92\x7f\x70\x37\x28\xdb\x34\xed\xb9\x36\xcb\x57\x84\x52\x87\xbc\x02\xae\x8d\x3b\xa1\xe9\x48\x07\x83\xa9\xe4\x35\x6d\x0e\x97\xc6\x05\x84\x93\xb4\xcf\x97\xe8\x8c\x2a\xe5\xc5\x9e\xa0\x7c\xc8\x6b\x53\x2d\x4e\xf1\xf7\xec\x0d\xfe\xa6\x82\xf5\xba\xe9\xeb\x6e\x69\x4d\xd7\xd1\x06\xd8\xc5\xd7\x4d\xdd\x35\x74\x06\x78\x5b\xfb\x9a\x41\xe6\x0b\x1f\xa7\xdf\xaf\x9a\xde\x6f\xf7\xe2\x11\x35\xca\xde\xf0\x0f\x2d\xf1\xcd\x50\x64\xb2\x41\x63\x5e\x94\x5d\x6e\x8c\x29\xb0\xac\x72\x7b\x0e\x04\x04\x36\xf6\x55\x45\xc0\xfc\x0b\x41\xa4\xb3\x8b\x37\xf4\x8b\x40\x21\xbf\xee\xde\x29\xad\xa5\xbf\x16\xcf\xf9\x1f\x74\xb2\xce\xeb\x35\x16\xb5\x5a\xb5\x86\x90\x93\x3b\xfe\xd1\x9a\xbc\x5d\xef\x7e\xc2\xcc\xf1\xc7\xe2\xac\x47\x11\xa3\xe8\x91\xbd\x06\xae\x79\x3c\xd3\x61\x16\xb4\x9a\x55\x65\xf6\x34\x48\x53\x98\xc5\x43\xfa\x0f\xf7\x8e\x75\xe4\x55\x45\xdd\xeb\x5f\x8b\xe7\xf2\xaf\xee\x48\x57\x76\x04\x8f\xf8\x5b\xb6\xb9\xf9\xbd\xcd\xe8\xb8\x75\xfb\xbc\x02\x1a\x66\x67\x5d\x0e\x54\x2d\x9a\xf5\x39\x1d\x19\x50\x00\x1a\xff\x7b\x53\x83\x8c\x6c\x2d\x91\x93\xda\xb4\xbb\xbc\x5a\x65\x8f\xb8\x46\x56\xdd\xfc\xda\x6f\xba\x93\xac\x2a\x09\x33\x8a\xb2\xcd\x56\x65\xd7\x19\xfa\xcb\x64\x5f\xe4\x19\x75\xb6\x35\xdd\xe2\xde\x72\x45\x87\xf5\xfc\x5e\xb6\x6b\xcd\x66\x71\xef\xbe\xbd\xf7\xe5\xd3\xbe\x2c\x4c\x45\xe0\xb7\x5f\x7c\x92\x7f\x49\x24\xab\xce\xfb\xac\xe8\x09\x28\x27\x74\x2c\x2e\x9a\x96\x7e\x64\x25\xb5\xae\x8b\xcb\x9c\x30\xb0\xdf\xa0\x4f\x02\x46\xc6\xf4\x20\xbb\xf9\x95\x68\x14\xcd\xfb\x03\x40\xee\x2f\x3d\x7d\x5a\x16\x2b\x21\x96\x3c\x51\xa2\x7d\x37\xbf\xd1\xc9\xea\xb2\x97\x57\x67\xff\xf8\xe2\x24\x7b\x43\xa4\x72\xdb\x1a\xfe\x9b\xfe\x43\x0d\x3e\xcb\x08\x70\x6d\xf6\xb6\x7c\xf4\x80\xe0\x4f\xad\x05\x3e\x8f\xe8\x40\xd4\x2b\x9a\xee\x00\xd9\x50\x01\xa7\xd7\x97\xd3\x2f\x90\x55\xdb\x11\x59\xb5\xdd\x68\xab\x26\x08\x00\x75\xc1\x74\xc3\x77\x21\x84\x83\x3e\x2b\xa0\x1f\x30\xf0\x70\x3e\x0c\x48\x70\x66\x4b\x01\xe5\xf3\xba\x6e\x1e\x3d\x98\x3d\xae\xb7\x40\xd8\x7d\xd9\x65\x7d\xb7\xf9\xaf\x4b\x9a\x97\x69\xf3\x6a\xb9\x2e\xb3\x1f\x4c\x09\x54\xa2\x33\x76\x2d\x9b\xca\xcb\xa6\x75\x59\x5b\x11\xb5\x23\x34\x39\x3b\x7b\x31\x7b\xd9\x14\xbd\xc5\xd4\xba\xdd\xe2\xcd\x26\x2f\xa8\xf8\x2f\x15\x60\xa7\xe3\x3f\x22\x78\x60\x72\xe5\x81\x0a\xb3\xeb\xbe\x1d\x83\x2a\xf3\x93\xa7\xce\x4d\xdb\x2e\x89\x2e\x77\x57\x00\x3e\xf7\x7a\x4b\x7d\xee\xb3\xc8\xdb\x4d\x56\xe3\xc6\xc9\x2a\x43\x55\x88\xf4\xd7\xda\x51\x59\x5f\x10\x12\x16\xb4\x0d\x1e\x4e\xa3\x3e\xf0\x59\xfa\xc0\xf6\x64\xf7\xe6\xf7\x98\x6c\xcb\x8f\xd9\xbd\xcc\xd4\xdd\x8e\x49\x0b\xf5\x59\x37\x4b\x21\x2f\x20\xf8\x05\x91\x1f\x3a\x33\x4b\xb9\x8c\x84\xce\x2d\x1e\xf5\xd9\x79\x5e\xd3\x2e\x33\x90\xc3\xf5\x44\x3b\xae\x73\x2c\x4c\x7e\xde\x95\x17\x7c\x65\x9d\x64\xcd\x8e\xa0\x8f\xa1\x98\x54\x49\x3f\x44\x25\x41\x99\x08\x58\x7c\x8e\xe4\xce\x89\x21\xe3\x48\x9c\x62\xc3\x23\xc2\xe6\xa4\xf9\xcc\x5f\x07\x47\x60\x73\xf7\x8e\xdb\x67\x41\xd0\xd3\xaa\xda\x9a\xfd\x14\xe9\x02\xbf\xc0\x80\x3b\xad\x81\x40\xf4\xd5\x0a\x86\xb9\x02\xb7\xcf\xcf\x68\x41\x19\x10\x2c\xa6\xcc\x5c\x57\xf8\x8c\x9b\xdf\xb7\xbc\x0a\x10\x25\xd9\xd7\x40\x9Line truncated
|
||||
var _confLocaleLocale_deDeIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\xbd\x4b\x8f\xe4\x46\x92\x27\x7e\x2f\xa0\xbe\x03\x55\x83\xfa\x4b\x02\x32\x42\x50\xeb\xff\x82\xa0\x90\x36\xeb\x5d\xad\x7a\x8d\xb2\x24\x61\x25\x08\x21\x46\xd0\x23\x82\x93\x0c\x32\x9a\x4e\x66\x2a\x73\x30\xc0\x1c\xe6\xb8\xe7\xc5\x60\xb1\xc0\x5c\x84\xfd\x08\x3a\xe9\x96\xdf\xa4\x3f\xc9\xda\xcf\xcc\xfc\x45\x32\xb2\xaa\x5b\x3b\x0d\xb4\x2a\x83\xfe\x36\x37\x37\xb7\xb7\xe7\x87\xc3\xb2\x30\x76\xbd\x78\x5c\xd6\x99\x29\xeb\x4d\xbe\xde\x99\xf6\x24\xb3\xa6\x5a\xd9\x2e\xdb\x9a\x5d\x63\x3b\xd3\x99\x36\x7b\x5a\x76\xb3\x33\xd3\x5e\x94\x6b\x73\x42\xdf\xed\x7a\xd7\x96\x66\x65\xea\x8c\x1a\x3e\x6d\xee\xde\xb9\x7b\x67\xd7\xec\xcd\xe2\x19\xfd\xe7\xee\x9d\x22\xb7\xbb\x55\x93\xb7\xc5\xe2\xe6\x7f\xae\x4c\x6b\xcb\xf5\xae\xbb\x7b\xc7\xfc\x72\xa8\x9a\xd6\x2c\x1e\xb7\xe7\x7d\x5d\x98\x9a\x9a\x98\xea\xb0\x78\x56\x56\x1b\x6a\x63\xcb\x6d\xbd\x2c\xeb\xc5\x69\xbd\x37\x15\x97\xf2\x97\xa6\xef\x16\xa7\xab\xe4\x53\x7f\x58\x7c\x63\xb6\xa5\xed\x68\x06\x2d\xbe\xb6\xfc\xcb\xb4\x83\xcf\x97\x66\x65\xcb\xce\x2c\xbe\xa7\x7f\x0d\xfd\x71\xf7\xce\x05\xe6\xd2\xd4\x8b\xef\xe4\xdf\xbb\x77\x0e\xf9\xd6\x2c\xce\xa4\xb0\x33\xfb\x43\x95\x53\xfd\xef\x9a\xb6\xa2\xef\x77\xef\x54\x79\xbd\xed\xb9\xc6\xa1\x05\x60\xee\xde\x59\xb7\x86\x6a\x2c\x6b\x73\x49\xab\xa0\x21\xab\xca\xd4\xf3\xf9\xfc\xee\x9d\xde\x9a\x76\x79\x68\x9b\x4d\x59\x99\x65\x5e\x17\xcb\x3d\x56\xfa\xc0\xd4\x7d\x77\x6d\x5a\x29\xc8\x68\xd5\xd9\xde\xec\x5a\x59\x87\x29\x68\xb9\xcb\xdc\x02\xf6\x5b\x53\x35\xdb\x6d\x97\xe5\x95\x05\x28\xd1\x5b\x9d\xef\x43\x07\xf8\x41\x00\xdc\xe7\x65\xb5\x78\x3c\x7b\x49\xff\x60\xee\xd6\x5e\x36\x04\xe3\x37\xf2\x47\x07\x40\x2c\xbb\xab\x83\xf1\x5f\xb2\x95\xb1\xdd\xcd\xaf\x5d\xb9\x05\x3c\xd6\xf9\xa1\x5b\xef\xf2\xc5\x43\xf9\x17\x03\xb5\xe6\xd0\x10\x8c\x9a\xf6\x8a\x60\xe7\xfe\xbc\x7b\xa7\x69\xb7\x79\x5d\x5e\xe7\x1d\x80\xf5\x9a\x7f\x58\xfe\x71\xf7\xce\xbe\x6c\xdb\xa6\x25\x88\x94\x86\x26\x7d\xf7\x0e\x81\x62\x89\x5e\x16\xaf\x4c\x6f\x6c\x16\xf7\x82\xa2\x7d\xb9\x6d\x01\x53\x94\x66\x2f\xf9\x07\x77\x83\xb2\x4d\xd3\x9e\x6b\xb3\x7c\x45\x28\x75\xc8\x2b\xe0\xda\xb8\x13\x9a\x8e\x74\x30\x98\x4a\x5e\xd3\xe6\x70\x69\x5c\x40\x38\x49\xfb\x7c\x89\xce\xa8\x52\x5e\xec\x09\xca\x87\xbc\x36\xd5\xe2\x14\x7f\xcf\xde\xe0\x6f\x2a\x58\xaf\x9b\xbe\xee\x96\xd6\x74\x1d\x6d\x80\x5d\x7c\xdd\xd4\x5d\x43\x67\x80\xb7\xb5\xaf\x19\x64\xbe\xf0\x71\xfa\xfd\xaa\xe9\xfd\x76\x2f\x1e\x51\xa3\xec\x0d\xff\xd0\x12\xdf\x0c\x45\x26\x1b\x34\xe6\x45\xd9\xe5\xc6\x98\x02\xcb\x2a\xb7\xe7\x40\x40\x60\x63\x5f\x55\x04\xcc\xbf\x10\x44\x3a\xbb\x78\x43\xbf\x08\x14\xf2\xeb\xee\x9d\xd2\x5a\xfa\x6b\xf1\x9c\xff\x41\x27\xeb\xbc\x5e\x63\x51\xab\x55\x6b\x08\x39\xb9\xe3\x1f\xad\xc9\xdb\xf5\xee\x27\xcc\x1c\x7f\x2c\xce\x7a\x14\x31\x8a\x1e\xd9\x6b\xe0\x9a\xc7\x33\x1d\x66\x41\xab\x59\x55\x66\x4f\x83\x34\x85\x59\x3c\xa4\xff\x70\xef\x58\x47\x5e\x55\xd4\xbd\xfe\xb5\x78\x2e\xff\xea\x8e\x74\x65\x47\xf0\x88\xbf\x65\x9b\x9b\xdf\xdb\x8c\x8e\x5b\xb7\xcf\x2b\xa0\x61\x76\xd6\xe5\x40\xd5\xa2\x59\x9f\xd3\x91\x01\x05\xa0\xf1\xbf\x37\x35\xc8\xc8\xd6\x12\x39\xa9\x4d\xbb\xcb\xab\x55\xf6\x88\x6b\x64\xd5\xcd\xaf\xfd\xa6\x3b\xc9\xaa\x92\x30\xa3\x28\xdb\x6c\x55\x76\x9d\xa1\xbf\x4c\xf6\x45\x9e\x51\x67\x5b\xd3\x2d\xee\x2d\x57\x74\x58\xcf\xef\x65\xbb\xd6\x6c\x16\xf7\xee\xdb\x7b\x5f\x3e\xed\xcb\xc2\x54\x04\x7e\xfb\xc5\x27\xf9\x97\x44\xb2\xea\xbc\xcf\x8a\x9e\x80\x72\x42\xc7\xe2\xa2\x69\xe9\x47\x56\x52\xeb\xba\xb8\xcc\x09\x03\xfb\x0d\xfa\x24\x60\x64\x4c\x0f\xb2\x9b\x5f\x89\x46\xd1\xbc\x3f\x00\xe4\xfe\xd2\xd3\xa7\x65\xb1\x12\x62\xc9\x13\x25\xda\x77\xf3\x1b\x9d\xac\x2e\x7b\x79\x75\xf6\x8f\x2f\x4e\xb2\x37\x44\x2a\xb7\xad\xe1\xbf\xe9\x3f\xd4\xe0\xb3\x8c\x00\xd7\x66\x6f\xcb\x47\x0f\x08\xfe\xd4\x5a\xe0\xf3\x88\x0e\x44\xbd\xa2\xe9\x0e\x90\x0d\x15\x70\x7a\x7d\x39\xfd\x02\x59\xb5\x1d\x91\x55\xdb\x8d\xb6\x6a\x82\x00\x50\x17\x4c\x37\x7c\x17\x42\x38\xe8\xb3\x02\xfa\x01\x03\x0f\xe7\xc3\x80\x04\x67\xb6\x14\x50\x3e\xaf\xeb\xe6\xd1\x83\xd9\xe3\x7a\x0b\x84\xdd\x97\x5d\xd6\x77\x9b\xff\x7f\x49\xf3\x32\x6d\x5e\x2d\xd7\x65\xf6\x83\x29\x81\x4a\x74\xc6\xae\x65\x53\x79\xd9\xb4\x2e\x6b\x2b\xa2\x76\x84\x26\x67\x67\x2f\x66\x2f\x9b\xa2\xb7\x98\x5a\xb7\x5b\xbc\xd9\xe4\x05\x15\xff\xa5\x02\xec\x74\xfc\x47\x04\x0f\x4c\xae\x3c\x50\x61\x76\xdd\xb7\x63\x50\x65\x7e\xf2\xd4\xb9\x69\xdb\x25\xd1\xe5\xee\x0a\xc0\xe7\x5e\x6f\xa9\xcf\x7d\x16\x79\xbb\xc9\x6a\xdc\x38\x59\x65\xa8\x0a\x91\xfe\x5a\x3b\x2a\xeb\x0b\x42\xc2\x82\xb6\xc1\xc3\x69\xd4\x07\x3e\x4b\x1f\xd8\x9e\xec\xde\xfc\x1e\x93\x6d\xf9\x31\xbb\x97\x99\xba\xdb\x31\x69\xa1\x3e\xeb\x66\x29\xe4\x05\x04\xbf\x20\xf2\x43\x67\x66\x29\x97\x91\xd0\xb9\xc5\xa3\x3e\x3b\xcf\x6b\xda\x65\x06\x72\xb8\x9e\x68\xc7\x75\x8e\x85\xc9\xcf\xbb\xf2\x82\xaf\xac\x93\xac\xd9\x11\xf4\x31\x14\x93\x2a\xe9\x87\xa8\x24\x28\x13\x01\x8b\xcf\x91\xdc\x39\x31\x64\x1c\x89\x53\x6c\x78\x44\xd8\x9c\x34\x9f\xf9\xeb\xe0\x08\x6c\xee\xde\x71\xfb\x2c\x08\x7a\x5a\x55\x5b\xb3\x9f\x22\x5d\xe0\x17\x18\x70\xa7\x35\x10\x88\xbe\x5a\xc1\x30\x57\xe0\xf6\xf9\x19\x2d\x28\x03\x82\xc5\x94\x99\xeb\x0a\x9f\x71\xf3\xfb\x96\x57\x01\xa2\x24\xfb\x1a\x68\x52\xfLine truncated
|
||||
|
||||
func confLocaleLocale_deDeIniBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -4359,12 +4359,12 @@ func confLocaleLocale_deDeIni() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "conf/locale/locale_de-DE.ini", size: 48092, mode: os.FileMode(493), modTime: time.Unix(1446597104, 0)}
|
||||
info := bindataFileInfo{name: "conf/locale/locale_de-DE.ini", size: 48267, mode: os.FileMode(493), modTime: time.Unix(1446611818, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xeb\x72\xdc\x48\xae\xe6\x7f\x3e\x05\xdb\x13\x5e\xdb\x11\x72\x39\xba\x7b\x6f\xd1\xd1\x76\xaf\x2c\xb5\x2f\x73\x2c\x4b\x63\xa9\x67\x76\xd6\xe1\x60\xb3\x8a\xac\x2a\x8e\xab\xc8\x6a\x92\x65\x59\x73\xe2\x44\xec\x03\xec\x03\xec\xbe\xde\x79\x92\x05\x3e\x00\x79\x21\x59\x92\xdd\x33\x71\xfc\xc3\x62\x65\x22\x6f\x48\x24\x12\x89\x04\x90\xf9\x6e\x97\x15\x65\xb7\x48\x9f\xa6\xc7\xe9\x2e\xaf\xea\x4d\xd9\x75\x69\x57\x6e\x96\x8f\xd7\x4d\xd7\x97\x45\xfa\xb2\xea\xe9\x77\xfb\xa9\x5a\x94\x49\xb2\x6e\xb6\x25\x81\xbe\xa2\x3f\x49\x91\x77\xeb\x79\x93\xb7\x05\x25\x9c\xda\x77\x52\x7e\xde\x6d\x9a\x96\x81\x7e\x96\xaf\x64\x5d\x6e\x76\x5c\x86\xfe\x24\x5d\xb5\xaa\xb3\xaa\xa6\x9f\x97\xf4\x95\xbe\xae\x25\xa5\xd9\xf7\x96\x74\xbe\xef\x25\x6d\xbf\xb3\xa4\x5f\x76\x49\x5b\xae\x2a\xea\x4d\x4b\x49\xef\xf4\x33\xb9\x2e\xe7\x5d\xd5\x73\x4b\x7f\x91\xaf\xe4\x53\xd9\x76\x55\xc3\xb5\xff\x59\xbe\x92\x5d\xbe\x62\x80\x0b\xfa\x93\xf4\xe5\x76\xb7\xc9\x51\xe0\x4a\x3f\x93\x4d\x5e\xaf\xf6\x02\xf3\x46\x3f\x93\x45\x5b\x52\x56\x56\x97\xd7\x94\x7a\x82\x1f\xb3\xd9\x2c\xd9\x13\x12\xb2\x5d\xdb\x2c\xab\x4d\x99\xe5\x75\x91\x6d\x65\x98\xbf\x50\x7a\xaa\xe9\x29\xa5\xa7\x9c\x8e\x21\x94\x05\x0d\x35\xcb\x3b\x1d\x07\xe1\x92\x46\x9e\x77\x09\xaa\xaa\xf3\xad\x95\xe6\xcf\xa4\xdc\xe6\xd5\x86\xb1\xf6\x98\x3f\xa8\xe3\x5d\x77\xdd\x00\xb7\x17\xfa\x49\x48\xc8\xfa\x9b\x5d\x09\x1c\x3c\xbe\xa2\xaf\x64\x91\xef\xfa\xc5\x3a\xe7\x7e\xca\x57\x42\x40\xbb\x86\x90\xd1\xb4\x37\x80\xb3\x1f\x49\xd3\xae\xf2\xba\xfa\x7b\xde\x0b\x82\xce\x83\x9f\xc9\xb6\x6a\xdb\x86\x71\x7b\x86\x8f\x84\x86\x9e\x71\x3d\x94\xf2\x96\xb0\x10\xd4\xc2\x39\xdb\x6a\xd5\x0a\x1a\x39\xf3\x0c\xbf\xb8\x16\xce\x5b\x36\xed\x47\xcd\x78\xc1\x9f\x83\xa2\xd4\x09\xcd\x8d\xdb\xcf\x6b\x42\xbc\xe6\x9e\xe1\x47\x04\xd0\x25\x79\xb1\x25\x54\xee\xf2\xba\x64\x1c\x1d\xf3\x2f\xc2\x0b\xfd\x4a\xf2\xc5\xa2\xd9\xd7\x7d\xd6\x95\x7d\x5f\xd5\x2b\x46\xf6\xb1\x24\xa5\x97\x9a\x94\x04\x79\x2e\xed\xa6\xd9\xbb\xe9\xa4\xf4\xbf\xd2\xcf\xf4\x42\x7e\x4a\x5e\x50\x08\x99\xae\x24\x8f\xa4\xcb\x96\x65\x59\xc8\x58\xba\xf4\x05\x7d\x27\xbb\xfd\x66\x43\x58\xfb\x6d\x5f\x76\x3d\x17\xba\xa0\xdf\x34\x7e\xf9\x9d\x54\x5d\x47\x1f\x94\xfc\x1a\x1f\x09\x4d\x5d\xbd\xc0\x60\x4e\xf0\x91\x24\xef\xbb\x32\x6f\x17\xeb\x0f\x89\xfc\x45\x5f\xf9\x83\x69\xef\xd0\xa4\x32\x21\x29\x11\x49\x0b\xd6\x40\xb2\x68\x0a\xfe\x71\x42\x7f\xa8\xea\xaa\xee\xfa\x7c\xb3\xf9\x90\xe8\x07\x83\xc9\x97\x4c\x40\x5f\xf5\xc0\x82\x26\xa6\x97\x7d\xb9\xeb\x78\x06\xd3\x17\x55\xdb\xf5\x8f\xfb\x8a\x88\xf5\xdd\xbe\x4e\x8a\x66\xf1\x91\x96\x01\x2f\x69\xb4\xfc\x7a\x99\x12\xb2\x1e\xd0\x42\x68\xf7\x75\x4d\xe8\x49\x5f\x36\x84\x32\x6a\xa6\xa2\xf6\x4f\x01\x7d\x94\xee\x36\x65\xde\x11\x48\x99\x17\xe9\x8f\x79\xda\xe7\xed\xaa\xec\x9f\xde\xcb\xe6\xb4\xfc\x3e\xde\x4b\xd7\x6d\xb9\x7c\x7a\xef\x7e\x77\xef\xd9\xcb\x3d\x15\xdb\x54\x75\xd9\xfd\xf8\x24\x7f\x96\x2e\x72\xca\x21\x34\xde\xa4\xf3\x72\xc9\xab\x8d\xda\x4a\x89\xca\xeb\x15\xaf\xb4\x9b\x7e\xcd\x0d\x12\x25\xd0\x47\x97\xf2\x52\xff\x26\xe1\x09\x20\x56\x90\x15\x73\x63\x6b\xe8\x10\x92\x5b\x9a\x80\xb3\x9b\xcb\x3f\xbd\x39\x4a\x2f\x88\xb7\xad\xda\x12\xdf\xf4\x1f\x95\xf8\x3e\xa5\xd1\x5e\x55\xa7\xcf\x67\x09\x95\x35\x84\x9c\xe6\x7d\x3e\xe7\xbe\xbb\xd9\xe7\x4c\x59\x84\x2e\x0f\x4b\x91\xb9\x25\x38\x63\xd7\x47\xd3\x32\xb5\x90\xa9\x0e\x5d\xfe\xae\x8e\xb7\xcc\x03\x28\xdd\x61\xf6\x42\x70\x46\x55\xa5\xaf\xdf\xbe\x3d\x3f\x7d\x9e\x96\xf5\x8a\x30\x93\x5e\x57\xfd\x3a\xdd\xf7\xcb\xff\x9e\xad\xca\xba\x6c\xf3\x4d\xb6\xa8\x18\x29\x2d\x11\x6c\x4a\x58\x92\x21\xce\x92\xae\xdb\x10\x8b\x02\x15\x5c\x5e\xbe\x49\xcf\x98\x12\x76\x79\xbf\x46\x47\xfa\x75\xd2\xfd\xb6\x61\x44\xb9\x06\xaf\xd6\x65\x8a\xc5\x00\xa0\x66\x39\xc4\x4b\x5a\x68\x5f\x67\x49\xd9\xb6\x19\x71\xd0\xfe\x86\xd1\xac\x75\x1e\x82\x96\xea\x88\xda\xeb\xa6\xa7\x69\x4c\x51\x4e\xaa\xa8\xea\x4f\xf9\xa6\x2a\x08\xd9\x1e\x21\x71\x59\x24\x16\x0d\xcd\x1b\x97\x26\xca\x6c\xae\x31\xd4\x7c\x41\x1b\x40\x97\xde\x9b\xdd\x03\xc7\xbd\xf7\xf8\xde\x2c\xa9\x9b\x4c\xb8\x04\xf3\xe6\xa2\xea\xf2\x39\xf1\x69\xd9\x37\x5a\xe3\x7a\x7f\x65\xfa\x91\xae\x28\x44\x1a\x41\x30\x6e\x79\x2f\xc2\x16\xc0\xc4\x95\x13\xc3\x06\xb3\x51\x36\x13\x8e\xdd\x78\x92\x9b\x5f\x61\x4b\x2e\x61\x34\xe6\xc4\x26\xcc\xa8\xeb\x78\xb7\xdb\x54\x0b\x69\xfa\xa5\xe4\x79\x42\xe3\x9d\x59\x91\x12\xc2\x81\x50\x2c\x2f\x20\x17\xea\x35\xb3\xad\x34\xe2\xf3\x28\xbf\x2e\x69\xe5\xac\xf7\x2b\xd9\x9d\x36\xcd\xbe\xf8\x06\x0c\xc5\x66\xce\xf3\x93\xf4\x5d\x43\x1d\x06\x75\x38\x00\xdf\xc4\x31\x31\x06\x16\x06\xda\x72\xdb\xf4\x8c\x38\x2d\x56\xd1\xf4\x5c\x57\x94\x49\x23\xed\xf2\x4f\xc4\x16\xfb\x46\x96\x64\x41\x4b\x6e\xc1\x15\x13\x07\xdb\xd3\x8e\x2e\xcb\x82\xf8\x88\x2c\x0d\x4b\x8b\x69\x10\x50\xdb\x3d\xad\xa6\x35\x55\xc6\x88\x67\x89\x84\xaa\x9c\xea\x27\x86\x44\xf5\x60\x95\xd3\xca\x6d\x68\xf3\xe4\x89\x3e\xc5\x87\xfe\x0e\xeb\xa7\x5e\xe5\xcb\x25\xf5\xaa\xa3\x55\xf1\x2a\x5d\x6c\x1a\x5a\x52\xbf\xbc\x7b\xd3\xf1\x82\x59\x67\xbb\xa6\x85\x24\x42\x59\x17\xf4\xe9\xd2\x02\x44\x33\x44\xbd\xdf\xce\xe9\xd7\xf5\xba\x22\x46\x0d\xb4\x73\x09\x96\x92\x28\x95\x9a\xd8\x77\x34\x85\x47\x29\x2d\x61\x1Line truncated
|
||||
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xeb\x72\xdc\x48\xae\xe6\x7f\x3e\x05\xdb\x13\x5e\xdb\x11\x72\x39\xba\x7b\x6f\xd1\xd1\x76\xaf\x2c\xb5\x2f\x73\x2c\x4b\x63\xa9\x67\x76\xd6\xe1\x60\xb3\x8a\xac\x2a\x8e\xab\xc8\x6a\x92\x65\x59\x73\xe2\x44\xec\x03\xec\x03\xec\xbe\xde\x79\x92\x05\x3e\x00\x79\x21\x59\x92\xdd\x33\x71\xfc\xc3\x62\x65\x22\x6f\x48\x24\x12\x89\x04\x90\xf9\x6e\x97\x15\x65\xb7\x48\x9f\xa6\xc7\xe9\x2e\xaf\xea\x4d\xd9\x75\x69\x57\x6e\x96\x8f\xd7\x4d\xd7\x97\x45\xfa\xb2\xea\xe9\x77\xfb\xa9\x5a\x94\x49\xb2\x6e\xb6\x25\x81\xbe\xa2\x3f\x49\x91\x77\xeb\x79\x93\xb7\x05\x25\x9c\xda\x77\x52\x7e\xde\x6d\x9a\x96\x81\x7e\x96\xaf\x64\x5d\x6e\x76\x5c\x86\xfe\x24\x5d\xb5\xaa\xb3\xaa\xa6\x9f\x97\xf4\x95\xbe\xae\x25\xa5\xd9\xf7\x96\x74\xbe\xef\x25\x6d\xbf\xb3\xa4\x5f\x76\x49\x5b\xae\x2a\xea\x4d\x4b\x49\xef\xf4\x33\xb9\x2e\xe7\x5d\xd5\x73\x4b\x7f\x91\xaf\xe4\x53\xd9\x76\x55\xc3\xb5\xff\x59\xbe\x92\x5d\xbe\x62\x80\x0b\xfa\x93\xf4\xe5\x76\xb7\xc9\x51\xe0\x4a\x3f\x93\x4d\x5e\xaf\xf6\x02\xf3\x46\x3f\x93\x45\x5b\x52\x56\x56\x97\xd7\x94\x7a\x82\x1f\xb3\xd9\x2c\xd9\x13\x12\xb2\x5d\xdb\x2c\xab\x4d\x99\xe5\x75\x91\x6d\x65\x98\xbf\x50\x7a\xaa\xe9\x29\xa5\xa7\x9c\x8e\x21\x94\x05\x0d\x35\xcb\x3b\x1d\x07\xe1\x92\x46\x9e\x77\x09\xaa\xaa\xf3\xad\x95\xe6\xcf\xa4\xdc\xe6\xd5\x86\xb1\xf6\x98\x3f\xa8\xe3\x5d\x77\xdd\x00\xb7\x17\xfa\x49\x48\xc8\xfa\x9b\x5d\x09\x1c\x3c\xbe\xa2\xaf\x64\x91\xef\xfa\xc5\x3a\xe7\x7e\xca\x57\x42\x40\xbb\x86\x90\xd1\xb4\x37\x80\xb3\x1f\x49\xd3\xae\xf2\xba\xfa\x7b\xde\x0b\x82\xce\x83\x9f\xc9\xb6\x6a\xdb\x86\x71\x7b\x86\x8f\x84\x86\x9e\x71\x3d\x94\xf2\x96\xb0\x10\xd4\xc2\x39\xdb\x6a\xd5\x0a\x1a\x39\xf3\x0c\xbf\xb8\x16\xce\x5b\x36\xed\x47\xcd\x78\xc1\x9f\x83\xa2\xd4\x09\xcd\x8d\xdb\xcf\x6b\x42\xbc\xe6\x9e\xe1\x47\x04\xd0\x25\x79\xb1\x25\x54\xee\xf2\xba\x64\x1c\x1d\xf3\x2f\xc2\x0b\xfd\x4a\xf2\xc5\xa2\xd9\xd7\x7d\xd6\x95\x7d\x5f\xd5\x2b\x46\xf6\xb1\x24\xa5\x97\x9a\x94\x04\x79\x2e\xed\xa6\xd9\xbb\xe9\xa4\xf4\xbf\xd2\xcf\xf4\x42\x7e\x4a\x5e\x50\x08\x99\xae\x24\x8f\xa4\xcb\x96\x65\x59\xc8\x58\xba\xf4\x05\x7d\x27\xbb\xfd\x66\x43\x58\xfb\x6d\x5f\x76\x3d\x17\xba\xa0\xdf\x34\x7e\xf9\x9d\x54\x5d\x47\x1f\x94\xfc\x1a\x1f\x09\x4d\x5d\xbd\xc0\x60\x4e\xf0\x91\x24\xef\xbb\x32\x6f\x17\xeb\x0f\x89\xfc\x45\x5f\xf9\x83\x69\xef\xd0\xa4\x32\x21\x29\x11\x49\x0b\xd6\x40\xb2\x68\x0a\xfe\x71\x42\x7f\xa8\xea\xaa\xee\xfa\x7c\xb3\xf9\x90\xe8\x07\x83\xc9\x97\x4c\x40\x5f\xf5\xc0\x82\x26\xa6\x97\x7d\xb9\xeb\x78\x06\xd3\x17\x55\xdb\xf5\x8f\xfb\x8a\x88\xf5\xdd\xbe\x4e\x8a\x66\xf1\x91\x96\x01\x2f\x69\xb4\xfc\x7a\x99\x12\xb2\x1e\xd0\x42\x68\xf7\x75\x4d\xe8\x49\x5f\x36\x84\x32\x6a\xa6\xa2\xf6\x4f\x01\x7d\x94\xee\x36\x65\xde\x11\x48\x99\x17\xe9\x8f\x79\xda\xe7\xed\xaa\xec\x9f\xde\xcb\xe6\xb4\xfc\x3e\xde\x4b\xd7\x6d\xb9\x7c\x7a\xef\x7e\x77\xef\xd9\xcb\x3d\x15\xdb\x54\x75\xd9\xfd\xf8\x24\x7f\x96\x2e\x72\xca\x21\x34\xde\xa4\xf3\x72\xc9\xab\x8d\xda\x4a\x89\xca\xeb\x15\xaf\xb4\x9b\x7e\xcd\x0d\x12\x25\xd0\x47\x97\xf2\x52\xff\x26\xe1\x09\x20\x56\x90\x15\x73\x63\x6b\xe8\x10\x92\x5b\x9a\x80\xb3\x9b\xcb\x3f\xbd\x39\x4a\x2f\x88\xb7\xad\xda\x12\xdf\xf4\x1f\x95\xf8\x3e\xa5\xd1\x5e\x55\xa7\xcf\x67\x09\x95\x35\x84\x9c\xe6\x7d\x3e\xe7\xbe\xbb\xd9\xe7\x4c\x59\x84\x2e\x0f\x4b\x91\xb9\x25\x38\x63\xd7\x47\xd3\x32\xb5\x90\xa9\x0e\x5d\xfe\xae\x8e\xb7\xcc\x03\x28\xdd\x61\xf6\x42\x70\x46\x55\xa5\xaf\xdf\xbe\x3d\x3f\x7d\x9e\x96\xf5\x8a\x30\x93\x5e\x57\xfd\x3a\xdd\xf7\xcb\xff\x9e\xad\xca\xba\x6c\xf3\x4d\xb6\xa8\x18\x29\x2d\x11\x6c\x4a\x58\x92\x21\xce\x92\xae\xdb\x10\x8b\x02\x15\x5c\x5e\xbe\x49\xcf\x98\x12\x76\x79\xbf\x46\x47\xfa\x75\xd2\xfd\xb6\x61\x44\xb9\x06\xaf\xd6\x65\x8a\xc5\x00\xa0\x66\x39\xc4\x4b\x5a\x68\x5f\x67\x49\xd9\xb6\x19\x71\xd0\xfe\x86\xd1\xac\x75\x1e\x82\x96\xea\x88\xda\xeb\xa6\xa7\x69\x4c\x51\x4e\xaa\xa8\xea\x4f\xf9\xa6\x2a\x08\xd9\x1e\x21\x71\x59\x24\x16\x0d\xcd\x1b\x97\x26\xca\x6c\xae\x31\xd4\x7c\x41\x1b\x40\x97\xde\x9b\xdd\x03\xc7\xbd\xf7\xf8\xde\x2c\xa9\x9b\x4c\xb8\x04\xf3\xe6\xa2\xea\xf2\x39\xf1\x69\xd9\x37\x5a\xe3\x7a\x7f\x65\xfa\x91\xae\x28\x44\x1a\x41\x30\x6e\x79\x2f\xc2\x16\xc0\xc4\x95\x13\xc3\x06\xb3\x51\x36\x13\x8e\xdd\x78\x92\x9b\x5f\x61\x4b\x2e\x61\x34\xe6\xc4\x26\xcc\xa8\xeb\x78\xb7\xdb\x54\x0b\x69\xfa\xa5\xe4\x79\x42\xe3\x9d\x59\x91\x12\xc2\x81\x50\x2c\x2f\x20\x17\xea\x35\xb3\xad\x34\xe2\xf3\x28\xbf\x2e\x69\xe5\xac\xf7\x2b\xd9\x9d\x36\xcd\xbe\xf8\x06\x0c\xc5\x66\xce\xf3\x93\xf4\x5d\x43\x1d\x06\x75\x38\x00\xdf\xc4\x31\x31\x06\x16\x06\xda\x72\xdb\xf4\x8c\x38\x2d\x56\xd1\xf4\x5c\x57\x94\x49\x23\xed\xf2\x4f\xc4\x16\xfb\x46\x96\x64\x41\x4b\x6e\xc1\x15\x13\x07\xdb\xd3\x8e\x2e\xcb\x82\xf8\x88\x2c\x0d\x4b\x8b\x69\x10\x50\xdb\x3d\xad\xa6\x35\x55\xc6\x88\x67\x89\x84\xaa\x9c\xea\x27\x86\x44\xf5\x60\x95\xd3\xca\x6d\x68\xf3\xe4\x89\x3e\xc5\x87\xfe\x0e\xeb\xa7\x5e\xe5\xcb\x25\xf5\xaa\xa3\x55\xf1\x2a\x5d\x6c\x1a\x5a\x52\xbf\xbc\x7b\xd3\xf1\x82\x59\x67\xbb\xa6\x85\x24\x42\x59\x17\xf4\xe9\xd2\x02\x44\x33\x44\xbd\xdf\xce\xe9\xd7\xf5\xba\x22\x46\x0d\xb4\x73\x09\x96\x92\x28\x95\x9a\xd8\x77\x34\x85\x47\x29\x2d\x61\x1Line truncated
|
||||
|
||||
func confLocaleLocale_enUsIniBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -4379,7 +4379,7 @@ func confLocaleLocale_enUsIni() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 44507, mode: os.FileMode(420), modTime: time.Unix(1446579003, 0)}
|
||||
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 44670, mode: os.FileMode(420), modTime: time.Unix(1446593396, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
@@ -4564,7 +4564,7 @@ func confLocaleLocale_ruRuIni() (*asset, error) {
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _confLocaleLocale_zhCnIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\x69\x73\x1b\x47\x96\xe0\x77\x45\xe8\x3f\x54\x68\x42\xd1\x5f\xd6\x74\xd8\xde\x2b\x36\x0c\xef\x76\xdb\x33\xdd\xbd\x61\xbb\xbd\x2d\x77\xcc\x07\x87\x03\x06\x81\x22\x89\x11\x88\x42\xa3\x00\xc9\xec\x89\x89\x20\x25\x91\x04\xc5\x5b\xa2\x44\x51\x22\x45\x91\x26\x45\x8a\x12\x0f\xdd\x24\xc1\xe3\xbf\xac\x51\x05\xe0\x93\xfe\xc2\xbe\x2b\xb3\xb2\x0e\x50\x76\xef\xec\xfa\x83\x4c\x54\xbe\xbc\x5e\xbe\x7c\xf9\xae\x7c\x99\x29\x95\xd2\x39\xdb\xcd\xa6\xbc\xe5\xc3\xc6\xe1\x94\xf5\x7b\xc7\x6a\xed\x6e\xb7\x36\x07\x9b\xf7\x6f\xb4\x46\xb7\xbc\x9b\x4f\xac\xdf\xe7\x2b\x96\xbf\x38\xe9\xdd\x5c\x39\x7f\xee\xfc\xb9\x3e\xa7\xdf\x4e\xb5\x1f\xdf\x6d\xaf\xbc\x3e\x7f\x2e\x97\x71\xfb\xba\x9d\x4c\x39\x97\xf2\xa7\x36\xbc\xda\x9b\xf6\xd2\xaa\xbf\x74\x7a\xfe\x9c\xfd\x63\xa9\xe0\x94\x6d\xf8\xba\xda\x7c\xb5\x0a\x95\xec\x42\x29\xe5\xed\xef\x40\x73\xe7\xcf\xb9\xf9\xde\x62\x3a\x5f\x4c\x35\x17\xea\xde\xf1\x1d\xf9\xed\x54\x2b\xa9\xf6\xe0\xa0\x37\x7a\x28\x1f\xaa\xa5\x94\xff\x72\xd3\x1b\x99\x38\x7f\xae\x6c\xf7\xe6\xdd\x8a\x5d\xd6\x1f\xae\xda\xdd\x6e\xbe\x62\xa7\xbc\x9d\x7b\xfe\xdd\x83\xe6\xf1\x6c\xf3\xe9\xc2\xf9\x73\x57\xec\xb2\x9b\x77\x8a\x29\xef\xf8\xb6\x37\x36\xd9\x1c\xab\xf9\x8b\xcf\xce\x9f\x2b\x65\x7a\x61\xbc\x2b\xaf\x61\x68\xe7\xcf\x55\xec\xfe\x52\x21\x03\x35\xfd\xcd\x15\x1a\x68\x21\x53\xec\xad\x22\x04\x4f\xba\x3d\x38\xd6\x5e\x39\x38\x7f\x2e\x5b\xb6\x01\x2a\x5d\xb4\xaf\xa6\xbc\xda\x03\xaf\x7e\xd8\xd5\xd5\x75\xfe\x5c\xd5\xb5\xcb\xe9\x52\xd9\xe9\xc9\x17\xec\x74\xa6\x98\x4b\xf7\xe3\x1c\x9b\x73\x9b\x7e\xed\x6d\xe3\x74\xc5\x1f\xda\xf5\xa6\x6f\xfa\x0f\x5e\x79\x6b\xf7\x79\x12\x76\x0e\xe6\x99\xce\xb8\x29\xef\xed\x0b\x9e\x2d\x03\x23\x1e\xb1\xb1\x62\xa6\x5f\xd5\xf7\x66\x26\x01\x6d\xfd\x99\x7c\x21\xd5\xbe\xb6\xd3\xdc\x79\x8e\x23\x77\xdd\xab\x0e\xe0\xd6\xdb\x1d\x69\x3e\x1a\x42\x3c\xa4\x2b\x03\x25\xa8\xb1\xb2\xd3\xda\x59\x53\x5f\xb3\x99\x52\x25\xdb\x97\x49\xb5\xb7\x26\x5a\xbb\x43\xf4\x09\x41\x4b\x0e\xa0\xc8\x29\x0f\xa4\x1a\xf5\xdb\xde\xe1\xed\xf3\xe7\x9c\x72\x6f\xa6\x98\xff\x5b\xa6\x82\x38\x6a\xd6\x6f\x34\xeb\xa3\xe7\xcf\xf5\xe7\xcb\x65\xa7\x9c\x6a\xdf\x59\xf4\xae\x4f\x9f\x3f\x07\x13\x4e\x63\x55\x99\xb5\x7f\x77\x0f\xc8\x40\x35\x80\x85\xfd\xf9\xde\x32\xe2\xaf\x75\x3a\xd4\xdc\xa8\x7b\x6b\x77\xdb\xd7\x37\xcd\xf2\x1e\xa7\x7c\x39\x54\xd9\x7f\x75\xd2\x9c\x5b\x36\x41\x60\x1c\x21\x08\x3d\x94\x4c\x11\x16\x82\x8a\x9b\x3b\x2b\xcd\x99\x11\xbf\x36\x6b\x14\x67\x72\xfd\x80\xcb\x52\xa6\x68\x17\xa4\x5c\x11\x5b\x26\x9b\x75\xaa\xc5\x4a\xda\xb5\x2b\x95\x7c\xb1\x17\xb0\xbd\x3f\x03\x18\x6d\xed\x9c\x34\x8f\x77\x60\x21\x92\x3f\x0f\x38\x55\xbd\x98\xa9\xc6\xfe\x56\xe3\xf0\x90\xd7\x50\x8a\x74\x35\x5e\x1f\x55\x8d\xe6\xe0\xa6\x7b\x6c\x1b\x68\x7e\x71\x10\xa6\xe0\xbf\xaa\x7b\x37\x37\x61\xb9\xaa\x85\x02\x20\xef\xaf\x55\xdb\xad\x40\x67\x33\x35\xef\xe0\x4d\x6b\xf7\xad\xff\xfc\xda\xf9\x73\x79\xd7\x85\xcf\x40\x06\xeb\xde\xe4\x1d\x1e\x3d\x36\x95\xcd\x14\xb3\x30\x1d\x6f\xfa\xae\xff\xa6\x86\x1f\xbe\x73\xed\x4c\x39\xdb\xf7\x3d\x8e\x1a\xff\x48\xf9\x33\x8b\xb0\x81\x88\xfa\x12\x96\x14\x69\x28\xa5\x48\x8a\xfa\x90\x2e\xa0\x69\x27\x07\xd3\xaa\xff\x24\xf4\xf0\x5d\xbe\xe8\x56\x32\x85\x02\xb4\x2c\x7f\xc1\xe6\x19\x6b\xfd\x34\xac\x77\x46\xbe\x52\xa0\x7d\xed\x3f\x5b\x69\x9d\xce\xb4\x56\x26\xb8\xbc\xb9\x39\xee\x1d\x02\x65\xe4\x9c\xec\x65\xa0\x7e\xdc\xc8\xd0\xa7\xf7\xf8\x9a\xff\x70\xd1\xbf\xb6\xe9\x6f\xff\xe4\x2d\x6e\x36\x8e\x4f\x61\x14\xd6\x17\x04\x63\x79\x3b\x07\xde\xc2\x26\x37\x02\xfc\xa4\xd7\x7d\x77\x04\x94\xf9\x16\xf8\x87\x77\x3a\xec\x0d\xd7\x1a\xf5\xb9\x66\x7d\xa4\x7d\x6f\xb8\xb5\x5b\xb7\x3e\xcd\x58\x95\x4c\xb9\xd7\xae\xa4\x2e\xa4\xbb\x61\x37\x5e\xbe\x60\xf5\x95\xed\x9e\xd4\x85\x8b\xee\x85\xcf\x78\x7f\xfb\x77\x47\xfd\x95\x9f\x3e\xfd\x30\xf3\x99\xe5\xcd\x4c\x79\x23\x93\xde\xee\x01\x6c\x6d\x1e\x79\xeb\xf4\x01\x8e\x75\xe5\xa9\x37\xb2\xf0\xf3\xe0\x35\x44\xd3\x5f\xab\xc0\x1b\xd2\xb9\x6e\xe6\x6b\x38\x00\xab\xf5\x78\x08\xd6\x81\x67\x64\x7d\x35\x70\xe9\x7f\x7d\xf9\xf3\xe0\xd0\x37\x8e\x5b\xe9\x2d\xdb\xfc\x03\xfe\x85\x5a\x9f\x58\x7e\xed\xae\xf5\x6d\xfe\x8b\xdf\x51\x5b\xd0\x06\xe3\xc5\xbf\xb3\xe7\x4f\xee\x00\xce\x15\x19\x60\x09\x6e\x45\x5d\xd0\x7c\x5e\xf7\x1e\x8e\x23\x7b\x74\x2b\xc1\xd7\xc6\x7e\xdd\x5f\x3c\x94\x85\x0a\x60\x65\xc5\xf4\x06\x8f\x94\xa8\x9d\x0d\x9d\x10\x87\xd0\xc5\xc0\x24\x9a\x1b\x7b\x54\x10\x5d\x08\x59\x02\x9a\x1b\xe3\x5b\xbe\xfc\xf1\xeb\xaf\xff\xf4\xc5\xef\x2c\xef\xe8\x8e\x7f\x7b\xaa\x51\x5f\x07\x16\x65\x55\x2b\x3d\xff\x35\xdd\x6b\x17\xed\x72\xa6\x90\xce\xe6\x2d\x6f\x7b\xbe\xf9\xec\x71\xfb\xc1\x08\xcd\xda\x75\x0b\xc0\xd9\x80\x7c\x2e\x5d\xfa\xd2\x02\x46\xe9\x1d\x4d\xe3\x58\x2b\x7d\xc1\x40\x60\x49\x1a\xf5\x37\xad\xb7\xbb\xde\xc9\x0d\xa8\xf0\xd7\x02\x62\x5c\x86\x14\xc5\xa4\x85\x5c\x40\xe3\x8f\xaa\x50\x37\x76\xb9\x9c\x06\x76\x5c\x19\xc0\xa5\xa2\xe6\x7f\x41\xcd\xc6\xfe\x64\xeb\xfa\x71\x63\xff\xb0\xf9\xe4\x50\xb7\x92\x2f\x5e\xc9\x14\xf2\x39\x58\x2b\x85\x31\xaa\x1d\x41\x1b\x54\xf5\x86\x87\x5a\x3b\xfb\xde\xc4\xb0\x37\xf3\x94\xe7\x6c\x5d\xe8\xba\x40\xfd\x5d\xf8\xe0\x82\x45\x0d\x16\x9d\x34\xb3\x1a\x64\xf0\xb9\xbc\x9b\xe9\x06\x66\xcLine truncated
|
||||
var _confLocaleLocale_zhCnIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xd9\x72\x1b\x47\xb6\xe0\xbb\x22\xf4\x0f\x15\xea\x50\xf8\x65\x4c\x87\xed\xd9\x62\xc2\xf0\x4c\xb7\xdd\xd7\xee\x09\xdb\xed\x69\xd9\x71\x1f\x1c\x0e\x18\x04\x8a\x24\xae\x40\x14\x8c\x02\x24\xb3\x6f\xdc\x08\x52\x12\x49\x50\xdc\x25\x4a\x14\x25\x52\x14\x69\x51\xa4\x28\x71\x91\xb5\x91\x04\x97\x7f\x19\xa3\x0a\xc0\x93\x7e\x61\xce\x96\x59\x59\x0b\x28\xbb\xe7\xce\xf8\x41\x26\x2a\x4f\x6e\x27\x33\xcf\x9e\x27\x33\xa5\x52\x3a\x67\xbb\xd9\x94\xb7\x7c\xd0\x38\x98\xb2\x3e\x73\xac\xd6\xce\x56\x6b\x63\xb0\x79\xf7\x5a\x6b\x74\xd3\xbb\xfe\xd8\xfa\x2c\x5f\xb1\xfc\xc5\x49\xef\xfa\xca\xd9\x33\x67\xcf\xf4\x39\xfd\x76\xaa\xfd\xe8\x76\x7b\xe5\xe5\xd9\x33\xb9\x8c\xdb\xd7\xed\x64\xca\xb9\x94\x3f\xb5\xee\xd5\x5e\xb5\x97\x56\xfd\xa5\x93\xb3\x67\xec\x9f\x4a\x05\xa7\x6c\xc3\xd7\xd5\xe6\x8b\x55\xa8\x64\x17\x4a\x29\x6f\x6f\x1b\x9a\x3b\x7b\xc6\xcd\xf7\x16\xd3\xf9\x62\xaa\xb9\x50\xf7\x8e\x6e\xc9\x6f\xa7\x5a\x49\xb5\x07\x07\xbd\xd1\x03\xf9\x50\x2d\xa5\xfc\xe7\x1b\xde\xc8\xc4\xd9\x33\x65\xbb\x37\xef\x56\xec\xb2\xfe\x70\xd9\xee\x76\xf3\x15\x3b\xe5\x6d\xdf\xf1\x6f\xef\x37\x8f\x66\x9b\x4f\x16\xce\x9e\xb9\x64\x97\xdd\xbc\x53\x4c\x79\x47\x37\xbd\xb1\xc9\xe6\x58\xcd\x5f\x7c\x7a\xf6\x4c\x29\xd3\x0b\xe3\x5d\x79\x09\x43\x3b\x7b\xa6\x62\xf7\x97\x0a\x19\xa8\xe9\x6f\xac\xd0\x40\x0b\x99\x62\x6f\x15\x21\x78\xd2\xed\xc1\xb1\xf6\xca\xfe\xd9\x33\xd9\xb2\x0d\x50\xe9\xa2\x7d\x39\xe5\xd5\xee\x79\xf5\x83\xae\xae\xae\xb3\x67\xaa\xae\x5d\x4e\x97\xca\x4e\x4f\xbe\x60\xa7\x33\xc5\x5c\xba\x1f\xe7\xd8\x9c\xdb\xf0\x6b\xaf\x1b\x27\x2b\xfe\xd0\x8e\x37\x7d\xdd\xbf\xf7\xc2\x7b\x78\x97\x27\x61\xe7\x60\x9e\xe9\x8c\x9b\xf2\x5e\xff\xc2\xb3\x65\x60\xc4\x23\x36\x56\xcc\xf4\xab\xfa\xde\xcc\x24\xa0\xad\x3f\x93\x2f\xa4\xda\x57\xb6\x9b\xdb\xcf\x70\xe4\xae\x7b\xd9\x01\xdc\x7a\x3b\x23\xcd\x07\x43\x88\x87\x74\x65\xa0\x04\x35\x56\xb6\x5b\xdb\x0f\xd5\xd7\x6c\xa6\x54\xc9\xf6\x65\x52\xed\xcd\x89\xd6\xce\x10\x7d\x42\xd0\x92\x03\x28\x72\xca\x03\xa9\x46\xfd\xa6\x77\x70\xf3\xec\x19\xa7\xdc\x9b\x29\xe6\xff\x9e\xa9\x20\x8e\x9a\xf5\x6b\xcd\xfa\xe8\xd9\x33\xfd\xf9\x72\xd9\x29\xa7\xda\xb7\x16\xbd\xab\xd3\x67\xcf\xc0\x84\xd3\x58\x55\x66\xed\xdf\xde\x85\x6d\xa0\x1a\xc0\xc2\xfe\x7c\x6f\x19\xf1\xd7\x3a\x19\x6a\xae\xd7\xbd\x87\xb7\xdb\x57\x37\xcc\xf2\x1e\xa7\x7c\x31\x54\xd9\x7f\x71\xdc\x9c\x5b\x36\x41\x60\x1c\x21\x08\x3d\x94\x4c\x11\x16\x82\x8a\x9b\xdb\x2b\xcd\x99\x11\xbf\x36\x6b\x14\x67\x72\xfd\x80\xcb\x52\xa6\x68\x17\xa4\x5c\x6d\xb6\x4c\x36\xeb\x54\x8b\x95\xb4\x6b\x57\x2a\xf9\x62\x2f\x60\x7b\x6f\x06\x30\xda\xda\x3e\x6e\x1e\x6d\xc3\x42\x24\x7f\x1e\x70\xaa\x7a\x31\x53\x8d\xbd\xcd\xc6\xc1\x01\xaf\xa1\x14\xe9\x6a\xbc\x3e\xaa\x1a\xcd\xc1\x4d\xf7\xd8\x36\xec\xf9\xc5\x41\x98\x82\xff\xa2\xee\x5d\xdf\x80\xe5\xaa\x16\x0a\x80\xbc\x1f\xab\xb6\x5b\x81\xce\x66\x6a\xde\xfe\xab\xd6\xce\x6b\xff\xd9\x95\xb3\x67\xf2\xae\x0b\x9f\x61\x1b\xac\x79\x93\xb7\x78\xf4\xd8\x54\x36\x53\xcc\xc2\x74\xbc\xe9\xdb\xfe\xab\x1a\x7e\xf8\xce\xb5\x33\xe5\x6c\xdf\xf7\x38\x6a\xfc\x23\xe5\xcf\x2c\xc2\x01\xa2\xdd\x97\xb0\xa4\xb8\x87\x52\x6a\x4b\x51\x1f\xd2\x05\x34\xed\xe4\x60\x5a\xf5\x9f\x65\x3f\x7c\x97\x2f\xba\x95\x4c\xa1\x00\x2d\xcb\x5f\x70\x78\xc6\x5a\x3f\x0f\xeb\x93\x91\xaf\x14\xe8\x5c\xfb\x4f\x57\x5a\x27\x33\xad\x95\x09\x2e\x6f\x6e\x8c\x7b\x07\xb0\x33\x72\x4e\xf6\x22\xec\x7e\x3c\xc8\xd0\xa7\xf7\xe8\x8a\x7f\x7f\xd1\xbf\xb2\xe1\x6f\xfd\xec\x2d\x6e\x34\x8e\x4e\x60\x14\xd6\xa7\x04\x63\x79\xdb\xfb\xde\xc2\x06\x37\x02\xf4\xa4\xd7\x7d\x73\x08\x3b\xf3\x35\xd0\x0f\xef\x64\xd8\x1b\xae\x35\xea\x73\xcd\xfa\x48\xfb\xce\x70\x6b\xa7\x6e\x7d\x94\xb1\x2a\x99\x72\xaf\x5d\x49\x9d\x4b\x77\xc3\x69\xbc\x78\xce\xea\x2b\xdb\x3d\xa9\x73\xe7\xdd\x73\x1f\xf3\xf9\xf6\x6f\x8f\xfa\x2b\x3f\x7f\xf4\x5e\xe6\x63\xcb\x9b\x99\xf2\x46\x26\xbd\x9d\x7d\x38\xda\x3c\xf2\xd6\xc9\x3d\x1c\xeb\xca\x13\x6f\x64\xe1\xd7\xc1\x2b\x88\xa6\x1f\xab\x40\x1b\xd2\xb9\x6e\xa6\x6b\x38\x00\xab\xf5\x68\x08\xd6\x81\x67\x64\x7d\x39\x70\xe1\x7f\x7d\xf1\xeb\xe0\xd0\xd7\x8e\x5b\xe9\x2d\xdb\xfc\x03\xfe\x85\x5a\x1f\x5a\x7e\xed\xb6\xf5\x4d\xfe\xd3\x3f\x51\x5b\xd0\x06\xe3\xc5\xbf\xb5\xeb\x4f\x6e\x03\xce\xd5\x36\xc0\x12\x3c\x8a\xba\xa0\xf9\xac\xee\xdd\x1f\x47\xf2\xe8\x56\x82\xaf\x8d\xbd\xba\xbf\x78\x20\x0b\x15\xc0\xca\x8a\xe9\x03\x1e\x29\x51\x27\x1b\x3a\x21\x0a\xa1\x8b\x81\x48\x34\xd7\x77\xa9\x20\xba\x10\xb2\x04\x34\x37\xc6\xb7\x7c\xf9\xcb\x57\x5f\xfd\xf5\xd3\x3f\x59\xde\xe1\x2d\xff\xe6\x54\xa3\xbe\x06\x24\xca\xaa\x56\x7a\xfe\x6b\xba\xd7\x2e\xda\xe5\x4c\x21\x9d\xcd\x5b\xde\xd6\x7c\xf3\xe9\xa3\xf6\xbd\x11\x9a\xb5\xeb\x16\x80\xb2\xc1\xf6\xb9\x70\xe1\x0b\x0b\x08\xa5\x77\x38\x8d\x63\xad\xf4\x05\x03\x81\x25\x69\xd4\x5f\xb5\x5e\xef\x78\xc7\xd7\xa0\xc2\x8f\x05\xc4\xb8\x0c\x29\x8a\x49\x0b\xa9\x80\xc6\x1f\x55\xa1\x6e\xec\x72\x39\x0d\xe4\xb8\x32\x80\x4b\x45\xcd\xff\x86\x9a\x8d\xbd\xc9\xd6\xd5\xa3\xc6\xde\x41\xf3\xf1\x81\x6e\x25\x5f\xbc\x94\x29\xe4\x73\xb0\x56\x0a\x63\x54\x3b\x82\x36\xa8\xea\x0d\x0f\xb5\xb6\xf7\xbc\x89\x61\x6f\xe6\x09\xcf\xd9\x3a\xd7\x75\x8e\xfa\x3b\xf7\xee\x39\x8b\x1a\x2c\x3a\x69\x26\x35\x48\xe0\x73\x79\x37\xd3\x0d\xc4\x9Line truncated
|
||||
|
||||
func confLocaleLocale_zhCnIniBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -4579,12 +4579,12 @@ func confLocaleLocale_zhCnIni() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "conf/locale/locale_zh-CN.ini", size: 43658, mode: os.FileMode(493), modTime: time.Unix(1446597116, 0)}
|
||||
info := bindataFileInfo{name: "conf/locale/locale_zh-CN.ini", size: 43800, mode: os.FileMode(493), modTime: time.Unix(1446611908, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _confLocaleLocale_zhHkIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfb\x73\x13\x57\xba\xe0\xef\x54\xf1\x3f\xf4\x70\x8b\xca\xbd\x55\xc1\xa9\x24\xfb\xaa\xa9\x28\x77\x13\x32\x33\xc9\x6e\x92\x61\x63\xb2\x53\x5b\xa9\x94\x22\x4b\x6d\xbb\x2f\x92\x5a\xa3\x6e\xe1\x38\xb7\x6e\x95\x0d\x31\x96\x5f\xd8\x80\x6d\x30\x18\x0c\x84\x87\x0d\x18\x6c\x12\xc0\xf8\xc5\xff\xb2\xa3\x6e\x49\x3f\xe5\x5f\xd8\xef\x75\x4e\x9f\x6e\xb5\x0c\x99\xbb\xbb\x53\x53\xc4\xea\xf3\x9d\xf7\x77\xbe\xf3\xbd\x4f\xae\x52\xc9\x16\x6c\x2f\x9f\x09\x56\xb6\xc3\xc5\x5d\xeb\x4f\xae\xd5\x7a\x70\xa3\xb5\x3a\xd2\xbc\xfa\x63\x6b\xfc\x41\x30\xb9\x66\xfd\xc9\xf1\xad\x70\x79\x26\x98\x5a\x3a\x7c\xe8\xf0\xa1\x41\xb7\x64\x67\xda\xf7\x16\xdb\x37\x47\x0f\x1f\x2a\xe4\xbc\xc1\x3e\x37\x57\x2d\x64\xc2\xf3\xf7\x83\xfa\xf3\xf6\xf5\xdb\xcd\x89\xfa\xe1\x43\xf6\xf7\x95\xa2\x5b\xb5\xe1\xeb\xed\xe6\x2f\xb7\xa1\x92\x5d\xac\x64\x82\x97\x0f\xa1\xb9\xc3\x87\x3c\x67\xa0\x9c\x75\xca\x99\xe6\xd2\x4e\x7b\xfa\x47\xf9\xed\xd6\xfc\x4c\x7b\x64\x24\x18\xdf\x96\x0f\xb5\x4a\xa6\xb5\xba\x13\x9c\x9b\x3c\x7c\xa8\x6a\x0f\x38\x9e\x6f\x57\xf5\x87\x21\xbb\xcf\x73\x7c\x3b\x13\x3c\xbe\x12\x2e\xbe\x6c\x3e\x7f\xda\x7c\x08\x63\x3b\x6d\x57\x3d\xc7\x85\x76\x17\x9e\x07\x13\x33\x30\x8e\x70\xf9\xd1\xe1\x43\x95\xdc\x00\x8c\xf7\xe6\x28\x0c\xed\xf0\x21\xdf\x2e\x55\x8a\x39\xa8\x19\xae\xde\xa2\x81\x16\x73\xe5\x81\x1a\x42\xf0\xa4\xdb\xa3\x5b\xed\x9b\x63\x87\x0f\xe5\xab\x36\x40\x65\xcb\xf6\x50\xe6\x38\xfd\xd9\xd3\xd3\x73\xf8\x50\xcd\xb3\xab\xd9\x4a\xd5\xed\x77\x8a\x76\x36\x57\x2e\x64\x4b\x38\xc7\xe6\xfc\x6a\x58\x7f\xde\x78\x75\x2b\x1c\x7d\x12\xcc\x4e\x86\xd7\x7e\x09\xee\x5c\xe5\x49\xd8\x05\x98\x67\x36\xe7\x65\x82\x17\x4f\x79\xb6\x0c\x8c\xeb\x88\x8d\x95\x73\x25\x55\x3f\x98\x9b\x81\x65\x2b\xe5\x9c\x62\xa6\x7d\xf6\x59\xf3\xf1\x26\x8e\xdc\xf3\x86\x5c\x58\xdb\xe0\xc9\xb9\xe6\xed\x5d\x5c\x87\xac\x3f\x5c\x81\x1a\xb7\xb7\x5b\x0f\x66\xd4\xd7\x7c\xae\xe2\xe7\x07\x73\x99\xf6\xda\xe5\xd6\xfa\x04\x7d\x42\xd0\x8a\x0b\x4b\xe4\x56\x87\x33\xc1\xc8\x44\xb0\xfd\xf0\xf0\x21\xb7\x3a\x90\x2b\x3b\x3f\xe4\x7c\x5a\xa3\x67\x3f\x36\x5f\xce\x1f\x3e\x54\x72\xaa\x55\xb7\x9a\x69\xcf\xde\x0a\xce\xce\x1e\x3e\x04\x13\xce\x62\xd5\x4c\x30\xf1\x2c\xd8\x01\x84\xd8\x00\x34\x50\x0d\x60\x61\xc9\x19\xa8\xe2\xfa\xb5\x47\x5f\x34\xef\xef\x04\x77\x16\xdb\x67\x57\xcd\xf2\x7e\xb7\x7a\x2a\xc3\xd5\xc2\x5f\xf6\x9b\xf3\x2b\x66\x21\x8c\x20\xd6\xb0\x1e\x44\xae\x0c\x5b\x40\xc5\xcd\xc7\xb7\x9a\x73\xe7\xc2\xfa\x05\xa3\x38\x57\x28\xc1\x2a\x56\x72\x65\xbb\x28\xe5\x0a\xcd\x72\xf9\xbc\x5b\x2b\xfb\x59\xcf\xf6\x7d\xa7\x3c\x00\xeb\xbc\xf5\x33\xac\x65\x6b\x75\xbd\xb9\xf7\x18\xb6\x20\xfd\xf3\xb0\x5b\xd3\xdb\x08\xab\x33\xd5\xd8\xde\xe6\xdd\x93\x22\x5d\x8d\x77\x46\x55\xa3\x39\x78\xd9\x7e\xdb\x06\x6c\x5f\x1e\x81\x29\x84\xbf\xec\x04\x53\x0b\xb0\x51\xb5\x62\x11\x96\xed\xaf\x35\xdb\xf3\xa1\xb3\xb9\x7a\x63\xef\x59\xeb\xe1\x54\xb8\x79\xe6\xf0\x21\xc7\xf3\xe0\x73\x26\x58\x98\x6d\xdf\x9a\xe6\xd1\x63\x53\xf9\x5c\x39\x0f\xd3\x09\x66\x17\xc3\xe7\x75\xfc\xf0\x8d\x67\xe7\xaa\xf9\xc1\x6f\x71\xd4\xf8\x47\x26\x9c\x5b\x0e\x36\xa6\x08\xef\x52\x36\x13\xb1\x27\xa3\x90\x89\xfa\x00\x1c\xbb\x1b\x2c\xc2\x38\xf3\x6e\x01\x50\x64\x75\x2a\xd8\x9d\x15\x64\xf8\xc6\x29\x7b\x7e\xae\x58\x84\xc6\xe5\x2f\x38\x39\x13\xad\x9f\xae\xeb\x63\xe1\xf8\x45\x3a\xd4\xe1\xa3\x5b\xc1\xca\x8b\xd6\xad\x69\x2e\xc7\x56\xb6\x01\x2d\x0a\x6e\xfe\x14\xa0\x3e\x9e\x62\xe8\xf6\xb3\x7e\x0b\xd6\xe9\xad\xaa\x6d\x55\x6b\xe5\x32\xac\x14\x10\x8d\x01\xcf\x82\xa6\x9d\x82\x6d\x7d\x42\xb0\x6f\x5b\x95\xa2\x9d\xf3\x00\xc4\xce\x15\xac\x0f\x72\x96\x9f\xab\x0e\xd8\x7e\xe6\x48\xb6\x0f\x8e\xdc\xa9\x23\xd6\x60\xd5\xee\xcf\x1c\x39\xea\x1d\xf9\xf0\x4f\x35\xa8\x56\x74\xca\xb6\xf7\xc1\x3b\xb9\x0f\xad\x7c\x0e\x4a\x60\x41\x87\xad\x3e\x1b\xb0\xc9\xc6\xbe\x2c\xc0\xef\xf2\x80\x6d\xe5\xca\xc3\xfe\x20\x76\xe8\x94\x2d\xf8\xc3\xb3\xf0\x70\xff\x0e\x17\xe8\xaf\x35\xa0\x07\xd9\x42\x1f\xd3\x32\x1a\x0f\x7d\xac\xda\x9e\xf5\xc5\x70\xef\xff\xf8\xfc\x6d\xeb\x84\xeb\xf9\x03\x55\x9b\xfe\x86\x7f\x00\xfe\x7d\xcb\xad\x5a\x27\x9d\x4f\x3e\x86\x35\x86\xaa\xbc\x0a\xe1\xc2\x56\x78\xe9\x2a\x2c\xb2\xda\x77\x2c\xc1\x53\xa7\x0b\xda\xb7\x6e\x04\x37\xa6\x90\x12\x7a\x7e\xf4\xb5\xb1\xb5\x13\xae\xad\xc8\xce\xe8\xaf\x6a\x8b\xf4\x59\x4e\x94\xa8\x43\x0c\x9d\x10\x31\xd0\xc5\x40\x0f\x9a\xab\x9b\x54\x20\xcb\x1e\xdc\x3b\x13\xde\x58\x0e\xcf\xac\x36\xf6\x5e\x41\x65\x9e\xd6\xaf\xbb\xd3\x80\x69\xf2\xe5\xb3\x2f\xbf\xfc\xf3\x27\x1f\x5b\xc1\xee\x42\x78\xe9\x7c\x63\xe7\x2e\x50\x23\xab\xe6\xf7\xff\x97\xec\x80\x5d\xb6\xab\xb9\x62\x36\xef\x58\xc1\xfa\xe5\xe6\xa3\x7b\xed\x6b\xe7\xfe\x36\x02\xd8\xe9\x79\x45\x20\x62\x80\x2f\xbd\xbd\x9f\x5b\x40\x13\x01\x67\x70\xac\xfe\x60\x34\x90\x70\x71\xbc\xb1\xf3\xbc\xf5\xe2\x49\xb0\x7f\x01\x2a\xfc\xb5\x88\x0b\x2d\x43\x3a\x39\x68\x5b\x78\x8a\x2c\xac\x62\xb9\xfd\xc9\x75\xb5\x0a\x39\x3f\xd7\x07\x68\x00\x0b\x6c\x57\xab\x59\xa0\xbe\xfe\x30\xee\x12\x75\xd1\x0d\x98\x5b\x83\x13\x52\x76\x7d\x40\x02\x8b\x6a\x49\x0b\x4e\xf9\x74\xae\xe8\x14\x60\xaf\xd4\x8a\xc5\xab\xe2\x27\xab\xe0\xc2\xae\x63\x65\xc0\x74\x77\x08\x91\xa7\x9a\xcb\xc3\xfd\xe1\x59\x47\x7a\x8e\x00\x12\x15\xac\x23\xcLine truncated
|
||||
var _confLocaleLocale_zhHkIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfb\x73\x13\x57\xba\xe0\xef\x54\xf1\x3f\xf4\x70\x8b\xca\xbd\x55\xc1\xa9\x24\xfb\xaa\xa9\x28\x77\x13\x32\x33\xc9\x6e\x92\x61\x63\xb2\x53\x5b\xa9\x94\x22\x4b\x6d\xbb\x2f\x92\x5a\xa3\x6e\xe1\x38\xb7\x6e\x95\x0d\x31\x96\x5f\xd8\x80\x6d\x30\x18\x0c\x84\x87\x0d\x18\x6c\x12\xc0\xf8\xc5\xff\xb2\xa3\x6e\x49\x3f\xe5\x5f\xd8\xef\x75\x4e\x9f\x6e\xb5\x0c\x99\xbb\xbb\x53\x53\xc4\xea\xf3\x9d\xf7\x77\xbe\xf3\xbd\x4f\xae\x52\xc9\x16\x6c\x2f\x9f\x09\x56\xb6\xc3\xc5\x5d\xeb\x4f\xae\xd5\x7a\x70\xa3\xb5\x3a\xd2\xbc\xfa\x63\x6b\xfc\x41\x30\xb9\x66\xfd\xc9\xf1\xad\x70\x79\x26\x98\x5a\x3a\x7c\xe8\xf0\xa1\x41\xb7\x64\x67\xda\xf7\x16\xdb\x37\x47\x0f\x1f\x2a\xe4\xbc\xc1\x3e\x37\x57\x2d\x64\xc2\xf3\xf7\x83\xfa\xf3\xf6\xf5\xdb\xcd\x89\xfa\xe1\x43\xf6\xf7\x95\xa2\x5b\xb5\xe1\xeb\xed\xe6\x2f\xb7\xa1\x92\x5d\xac\x64\x82\x97\x0f\xa1\xb9\xc3\x87\x3c\x67\xa0\x9c\x75\xca\x99\xe6\xd2\x4e\x7b\xfa\x47\xf9\xed\xd6\xfc\x4c\x7b\x64\x24\x18\xdf\x96\x0f\xb5\x4a\xa6\xb5\xba\x13\x9c\x9b\x3c\x7c\xa8\x6a\x0f\x38\x9e\x6f\x57\xf5\x87\x21\xbb\xcf\x73\x7c\x3b\x13\x3c\xbe\x12\x2e\xbe\x6c\x3e\x7f\xda\x7c\x08\x63\x3b\x6d\x57\x3d\xc7\x85\x76\x17\x9e\x07\x13\x33\x30\x8e\x70\xf9\xd1\xe1\x43\x95\xdc\x00\x8c\xf7\xe6\x28\x0c\xed\xf0\x21\xdf\x2e\x55\x8a\x39\xa8\x19\xae\xde\xa2\x81\x16\x73\xe5\x81\x1a\x42\xf0\xa4\xdb\xa3\x5b\xed\x9b\x63\x87\x0f\xe5\xab\x36\x40\x65\xcb\xf6\x50\xe6\x38\xfd\xd9\xd3\xd3\x73\xf8\x50\xcd\xb3\xab\xd9\x4a\xd5\xed\x77\x8a\x76\x36\x57\x2e\x64\x4b\x38\xc7\xe6\xfc\x6a\x58\x7f\xde\x78\x75\x2b\x1c\x7d\x12\xcc\x4e\x86\xd7\x7e\x09\xee\x5c\xe5\x49\xd8\x05\x98\x67\x36\xe7\x65\x82\x17\x4f\x79\xb6\x0c\x8c\xeb\x88\x8d\x95\x73\x25\x55\x3f\x98\x9b\x81\x65\x2b\xe5\x9c\x62\xa6\x7d\xf6\x59\xf3\xf1\x26\x8e\xdc\xf3\x86\x5c\x58\xdb\xe0\xc9\xb9\xe6\xed\x5d\x5c\x87\xac\x3f\x5c\x81\x1a\xb7\xb7\x5b\x0f\x66\xd4\xd7\x7c\xae\xe2\xe7\x07\x73\x99\xf6\xda\xe5\xd6\xfa\x04\x7d\x42\xd0\x8a\x0b\x4b\xe4\x56\x87\x33\xc1\xc8\x44\xb0\xfd\xf0\xf0\x21\xb7\x3a\x90\x2b\x3b\x3f\xe4\x7c\x5a\xa3\x67\x3f\x36\x5f\xce\x1f\x3e\x54\x72\xaa\x55\xb7\x9a\x69\xcf\xde\x0a\xce\xce\x1e\x3e\x04\x13\xce\x62\xd5\x4c\x30\xf1\x2c\xd8\x01\x84\xd8\x00\x34\x50\x0d\x60\x61\xc9\x19\xa8\xe2\xfa\xb5\x47\x5f\x34\xef\xef\x04\x77\x16\xdb\x67\x57\xcd\xf2\x7e\xb7\x7a\x2a\xc3\xd5\xc2\x5f\xf6\x9b\xf3\x2b\x66\x21\x8c\x20\xd6\xb0\x1e\x44\xae\x0c\x5b\x40\xc5\xcd\xc7\xb7\x9a\x73\xe7\xc2\xfa\x05\xa3\x38\x57\x28\xc1\x2a\x56\x72\x65\xbb\x28\xe5\x0a\xcd\x72\xf9\xbc\x5b\x2b\xfb\x59\xcf\xf6\x7d\xa7\x3c\x00\xeb\xbc\xf5\x33\xac\x65\x6b\x75\xbd\xb9\xf7\x18\xb6\x20\xfd\xf3\xb0\x5b\xd3\xdb\x08\xab\x33\xd5\xd8\xde\xe6\xdd\x93\x22\x5d\x8d\x77\x46\x55\xa3\x39\x78\xd9\x7e\xdb\x06\x6c\x5f\x1e\x81\x29\x84\xbf\xec\x04\x53\x0b\xb0\x51\xb5\x62\x11\x96\xed\xaf\x35\xdb\xf3\xa1\xb3\xb9\x7a\x63\xef\x59\xeb\xe1\x54\xb8\x79\xe6\xf0\x21\xc7\xf3\xe0\x73\x26\x58\x98\x6d\xdf\x9a\xe6\xd1\x63\x53\xf9\x5c\x39\x0f\xd3\x09\x66\x17\xc3\xe7\x75\xfc\xf0\x8d\x67\xe7\xaa\xf9\xc1\x6f\x71\xd4\xf8\x47\x26\x9c\x5b\x0e\x36\xa6\x08\xef\x52\x36\x13\xb1\x27\xa3\x90\x89\xfa\x00\x1c\xbb\x1b\x2c\xc2\x38\xf3\x6e\x01\x50\x64\x75\x2a\xd8\x9d\x15\x64\xf8\xc6\x29\x7b\x7e\xae\x58\x84\xc6\xe5\x2f\x38\x39\x13\xad\x9f\xae\xeb\x63\xe1\xf8\x45\x3a\xd4\xe1\xa3\x5b\xc1\xca\x8b\xd6\xad\x69\x2e\xc7\x56\xb6\x01\x2d\x0a\x6e\xfe\x14\xa0\x3e\x9e\x62\xe8\xf6\xb3\x7e\x0b\xd6\xe9\xad\xaa\x6d\x55\x6b\xe5\x32\xac\x14\x10\x8d\x01\xcf\x82\xa6\x9d\x82\x6d\x7d\x42\xb0\x6f\x5b\x95\xa2\x9d\xf3\x00\xc4\xce\x15\xac\x0f\x72\x96\x9f\xab\x0e\xd8\x7e\xe6\x48\xb6\x0f\x8e\xdc\xa9\x23\xd6\x60\xd5\xee\xcf\x1c\x39\xea\x1d\xf9\xf0\x4f\x35\xa8\x56\x74\xca\xb6\xf7\xc1\x3b\xb9\x0f\xad\x7c\x0e\x4a\x60\x41\x87\xad\x3e\x1b\xb0\xc9\xc6\xbe\x2c\xc0\xef\xf2\x80\x6d\xe5\xca\xc3\xfe\x20\x76\xe8\x94\x2d\xf8\xc3\xb3\xf0\x70\xff\x0e\x17\xe8\xaf\x35\xa0\x07\xd9\x42\x1f\xd3\x32\x1a\x0f\x7d\xac\xda\x9e\xf5\xc5\x70\xef\xff\xf8\xfc\x6d\xeb\x84\xeb\xf9\x03\x55\x9b\xfe\x86\x7f\x00\xfe\x7d\xcb\xad\x5a\x27\x9d\x4f\x3e\x86\x35\x86\xaa\xbc\x0a\xe1\xc2\x56\x78\xe9\x2a\x2c\xb2\xda\x77\x2c\xc1\x53\xa7\x0b\xda\xb7\x6e\x04\x37\xa6\x90\x12\x7a\x7e\xf4\xb5\xb1\xb5\x13\xae\xad\xc8\xce\xe8\xaf\x6a\x8b\xf4\x59\x4e\x94\xa8\x43\x0c\x9d\x10\x31\xd0\xc5\x40\x0f\x9a\xab\x9b\x54\x20\xcb\x1e\xdc\x3b\x13\xde\x58\x0e\xcf\xac\x36\xf6\x5e\x41\x65\x9e\xd6\xaf\xbb\xd3\x80\x69\xf2\xe5\xb3\x2f\xbf\xfc\xf3\x27\x1f\x5b\xc1\xee\x42\x78\xe9\x7c\x63\xe7\x2e\x50\x23\xab\xe6\xf7\xff\x97\xec\x80\x5d\xb6\xab\xb9\x62\x36\xef\x58\xc1\xfa\xe5\xe6\xa3\x7b\xed\x6b\xe7\xfe\x36\x02\xd8\xe9\x79\x45\x20\x62\x80\x2f\xbd\xbd\x9f\x5b\x40\x13\x01\x67\x70\xac\xfe\x60\x34\x90\x70\x71\xbc\xb1\xf3\xbc\xf5\xe2\x49\xb0\x7f\x01\x2a\xfc\xb5\x88\x0b\x2d\x43\x3a\x39\x68\x5b\x78\x8a\x2c\xac\x62\xb9\xfd\xc9\x75\xb5\x0a\x39\x3f\xd7\x07\x68\x00\x0b\x6c\x57\xab\x59\xa0\xbe\xfe\x30\xee\x12\x75\xd1\x0d\x98\x5b\x83\x13\x52\x76\x7d\x40\x02\x8b\x6a\x49\x0b\x4e\xf9\x74\xae\xe8\x14\x60\xaf\xd4\x8a\xc5\xab\xe2\x27\xab\xe0\xc2\xae\x63\x65\xc0\x74\x77\x08\x91\xa7\x9a\xcb\xc3\xfd\xe1\x59\x47\x7a\x8e\x00\x12\x15\xac\x23\xcLine truncated
|
||||
|
||||
func confLocaleLocale_zhHkIniBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
@@ -4599,7 +4599,7 @@ func confLocaleLocale_zhHkIni() (*asset, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "conf/locale/locale_zh-HK.ini", size: 44005, mode: os.FileMode(493), modTime: time.Unix(1446597116, 0)}
|
||||
info := bindataFileInfo{name: "conf/locale/locale_zh-HK.ini", size: 44166, mode: os.FileMode(493), modTime: time.Unix(1446611908, 0)}
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
@@ -420,7 +420,7 @@ func RequireRepoAdmin() macaron.Handler {
|
||||
// GitHookService checks if repository Git hooks service has been enabled.
|
||||
func GitHookService() macaron.Handler {
|
||||
return func(ctx *Context) {
|
||||
if !ctx.User.AllowGitHook && !ctx.User.IsAdmin {
|
||||
if !ctx.User.CanEditGitHook() {
|
||||
ctx.Handle(404, "GitHookService", nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -213,6 +213,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
|
||||
u.IsActive = form.Active
|
||||
u.IsAdmin = form.Admin
|
||||
u.AllowGitHook = form.AllowGitHook
|
||||
u.AllowImportLocal = form.AllowImportLocal
|
||||
|
||||
if err := models.UpdateUser(u); err != nil {
|
||||
if models.IsErrEmailAlreadyUsed(err) {
|
||||
|
||||
+16
-17
@@ -5,9 +5,7 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/Unknwon/com"
|
||||
|
||||
@@ -218,22 +216,23 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) {
|
||||
}
|
||||
}
|
||||
|
||||
// Remote address can be HTTP/HTTPS/Git URL or local path.
|
||||
remoteAddr := form.CloneAddr
|
||||
if strings.HasPrefix(form.CloneAddr, "http://") ||
|
||||
strings.HasPrefix(form.CloneAddr, "https://") ||
|
||||
strings.HasPrefix(form.CloneAddr, "git://") {
|
||||
u, err := url.Parse(form.CloneAddr)
|
||||
if err != nil {
|
||||
ctx.APIError(422, "", err)
|
||||
return
|
||||
remoteAddr, err := form.ParseRemoteAddr(ctx.User)
|
||||
if err != nil {
|
||||
if models.IsErrInvalidCloneAddr(err) {
|
||||
addrErr := err.(models.ErrInvalidCloneAddr)
|
||||
switch {
|
||||
case addrErr.IsURLError:
|
||||
ctx.APIError(422, "", err)
|
||||
case addrErr.IsPermissionDenied:
|
||||
ctx.APIError(422, "", "You are not allowed to import local repositories.")
|
||||
case addrErr.IsInvalidPath:
|
||||
ctx.APIError(422, "", "Invalid local path, it does not exist or not a directory.")
|
||||
default:
|
||||
ctx.APIError(500, "ParseRemoteAddr", "Unknown error type (ErrInvalidCloneAddr): "+err.Error())
|
||||
}
|
||||
} else {
|
||||
ctx.APIError(500, "ParseRemoteAddr", err)
|
||||
}
|
||||
if len(form.AuthUsername) > 0 || len(form.AuthPassword) > 0 {
|
||||
u.User = url.UserPassword(form.AuthUsername, form.AuthPassword)
|
||||
}
|
||||
remoteAddr = u.String()
|
||||
} else if !com.IsDir(remoteAddr) {
|
||||
ctx.APIError(422, "", "Invalid local path, it does not exist or not a directory.")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
+16
-19
@@ -6,7 +6,6 @@ package repo
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
@@ -164,26 +163,24 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
|
||||
return
|
||||
}
|
||||
|
||||
// Remote address can be HTTP/HTTPS/Git URL or local path.
|
||||
// Note: remember to change api/v1/repo.go: MigrateRepo
|
||||
// FIXME: merge these two functions with better error handling
|
||||
remoteAddr := form.CloneAddr
|
||||
if strings.HasPrefix(form.CloneAddr, "http://") ||
|
||||
strings.HasPrefix(form.CloneAddr, "https://") ||
|
||||
strings.HasPrefix(form.CloneAddr, "git://") {
|
||||
u, err := url.Parse(form.CloneAddr)
|
||||
if err != nil {
|
||||
remoteAddr, err := form.ParseRemoteAddr(ctx.User)
|
||||
if err != nil {
|
||||
if models.IsErrInvalidCloneAddr(err) {
|
||||
ctx.Data["Err_CloneAddr"] = true
|
||||
ctx.RenderWithErr(ctx.Tr("form.url_error"), MIGRATE, &form)
|
||||
return
|
||||
addrErr := err.(models.ErrInvalidCloneAddr)
|
||||
switch {
|
||||
case addrErr.IsURLError:
|
||||
ctx.RenderWithErr(ctx.Tr("form.url_error"), MIGRATE, &form)
|
||||
case addrErr.IsPermissionDenied:
|
||||
ctx.RenderWithErr(ctx.Tr("repo.migrate.permission_denied"), MIGRATE, &form)
|
||||
case addrErr.IsInvalidPath:
|
||||
ctx.RenderWithErr(ctx.Tr("repo.migrate.invalid_local_path"), MIGRATE, &form)
|
||||
default:
|
||||
ctx.Handle(500, "Unknown error", err)
|
||||
}
|
||||
} else {
|
||||
ctx.Handle(500, "ParseRemoteAddr", err)
|
||||
}
|
||||
if len(form.AuthUsername) > 0 || len(form.AuthPassword) > 0 {
|
||||
u.User = url.UserPassword(form.AuthUsername, form.AuthPassword)
|
||||
}
|
||||
remoteAddr = u.String()
|
||||
} else if !com.IsDir(remoteAddr) {
|
||||
ctx.Data["Err_CloneAddr"] = true
|
||||
ctx.RenderWithErr(ctx.Tr("repo.migrate.invalid_local_path"), MIGRATE, &form)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
0.6.23.1103 Beta
|
||||
0.6.24.1103 Beta
|
||||
@@ -72,7 +72,13 @@
|
||||
<div class="inline field">
|
||||
<div class="ui checkbox">
|
||||
<label><strong>{{.i18n.Tr "admin.users.allow_git_hook"}}</strong></label>
|
||||
<input name="allow_git_hook" type="checkbox" {{if or .User.IsAdmin .User.AllowGitHook}}checked{{end}}>
|
||||
<input name="allow_git_hook" type="checkbox" {{if .User.CanEditGitHook}}checked{{end}}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inline field">
|
||||
<div class="ui checkbox">
|
||||
<label><strong>{{.i18n.Tr "admin.users.allow_import_local"}}</strong></label>
|
||||
<input name="allow_import_local" type="checkbox" {{if .User.CanImportLocal}}checked{{end}}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<a class="{{if .PageIsSettingsHooks}}active{{end}} item" href="{{.RepoLink}}/settings/hooks">
|
||||
{{.i18n.Tr "repo.settings.hooks"}}
|
||||
</a>
|
||||
{{if or .SignedUser.AllowGitHook .SignedUser.IsAdmin}}
|
||||
{{if .SignedUser.CanEditGitHook}}
|
||||
<a class="{{if .PageIsSettingsGitHooks}}active{{end}} item" href="{{.RepoLink}}/settings/hooks/git">
|
||||
{{.i18n.Tr "repo.settings.githooks"}}
|
||||
</a>
|
||||
|
||||
Reference in new issue
Block a user