mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-25 08:20:30 +08:00
Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5f702ca418 | ||
![]() |
0495d17a07 | ||
![]() |
c6a2d59aa4 | ||
![]() |
d867afdd70 | ||
![]() |
a92430e8fd | ||
![]() |
447cb70553 | ||
![]() |
e05fbec739 | ||
![]() |
65ab36f073 | ||
![]() |
d027e07383 | ||
![]() |
d3c718b577 | ||
![]() |
ea68e6c2dc | ||
![]() |
7aa0b2e63f | ||
![]() |
a39b121280 | ||
![]() |
feef4cc242 | ||
![]() |
1b5ef53655 | ||
![]() |
18d639cca2 | ||
![]() |
3ac5aad648 | ||
![]() |
2a53241128 | ||
![]() |
835273576b | ||
![]() |
7fdc264ff6 |
@@ -286,8 +286,7 @@ func (c *ApiController) Signup() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if application.HasPromptPage() && user.Type == "normal-user" {
|
if user.Type == "normal-user" {
|
||||||
// The prompt page needs the user to be signed in
|
|
||||||
c.SetSessionUsername(user.GetId())
|
c.SetSessionUsername(user.GetId())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -54,13 +54,6 @@ func (c *ApiController) ResponseError(error string, data ...interface{}) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
enableErrorMask := conf.GetConfigBool("enableErrorMask")
|
|
||||||
if enableErrorMask {
|
|
||||||
if strings.HasPrefix(error, "The user: ") && strings.HasSuffix(error, " doesn't exist") || strings.HasPrefix(error, "用户: ") && strings.HasSuffix(error, "不存在") {
|
|
||||||
error = c.T("check:password or code is incorrect")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resp := &Response{Status: "error", Msg: error}
|
resp := &Response{Status: "error", Msg: error}
|
||||||
c.ResponseJsonData(resp, data...)
|
c.ResponseJsonData(resp, data...)
|
||||||
}
|
}
|
||||||
|
@@ -38,9 +38,20 @@ func NewMd5UserSaltCredManager() *Md5UserSaltCredManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cm *Md5UserSaltCredManager) GetHashedPassword(password string, salt string) string {
|
func (cm *Md5UserSaltCredManager) GetHashedPassword(password string, salt string) string {
|
||||||
|
if salt == "" {
|
||||||
|
return getMd5HexDigest(password)
|
||||||
|
}
|
||||||
|
|
||||||
return getMd5HexDigest(getMd5HexDigest(password) + salt)
|
return getMd5HexDigest(getMd5HexDigest(password) + salt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cm *Md5UserSaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool {
|
func (cm *Md5UserSaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool {
|
||||||
|
// For backward-compatibility
|
||||||
|
if salt == "" {
|
||||||
|
if hashedPwd == cm.GetHashedPassword(getMd5HexDigest(plainPwd), salt) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return hashedPwd == cm.GetHashedPassword(plainPwd, salt)
|
return hashedPwd == cm.GetHashedPassword(plainPwd, salt)
|
||||||
}
|
}
|
||||||
|
@@ -38,9 +38,20 @@ func NewSha256SaltCredManager() *Sha256SaltCredManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cm *Sha256SaltCredManager) GetHashedPassword(password string, salt string) string {
|
func (cm *Sha256SaltCredManager) GetHashedPassword(password string, salt string) string {
|
||||||
|
if salt == "" {
|
||||||
|
return getSha256HexDigest(password)
|
||||||
|
}
|
||||||
|
|
||||||
return getSha256HexDigest(getSha256HexDigest(password) + salt)
|
return getSha256HexDigest(getSha256HexDigest(password) + salt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cm *Sha256SaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool {
|
func (cm *Sha256SaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool {
|
||||||
|
// For backward-compatibility
|
||||||
|
if salt == "" {
|
||||||
|
if hashedPwd == cm.GetHashedPassword(getSha256HexDigest(plainPwd), salt) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return hashedPwd == cm.GetHashedPassword(plainPwd, salt)
|
return hashedPwd == cm.GetHashedPassword(plainPwd, salt)
|
||||||
}
|
}
|
||||||
|
@@ -38,9 +38,20 @@ func NewSha512SaltCredManager() *Sha512SaltCredManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cm *Sha512SaltCredManager) GetHashedPassword(password string, salt string) string {
|
func (cm *Sha512SaltCredManager) GetHashedPassword(password string, salt string) string {
|
||||||
|
if salt == "" {
|
||||||
|
return getSha512HexDigest(password)
|
||||||
|
}
|
||||||
|
|
||||||
return getSha512HexDigest(getSha512HexDigest(password) + salt)
|
return getSha512HexDigest(getSha512HexDigest(password) + salt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cm *Sha512SaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool {
|
func (cm *Sha512SaltCredManager) IsPasswordCorrect(plainPwd string, hashedPwd string, salt string) bool {
|
||||||
|
// For backward-compatibility
|
||||||
|
if salt == "" {
|
||||||
|
if hashedPwd == cm.GetHashedPassword(getSha512HexDigest(plainPwd), salt) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return hashedPwd == cm.GetHashedPassword(plainPwd, salt)
|
return hashedPwd == cm.GetHashedPassword(plainPwd, salt)
|
||||||
}
|
}
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Vaše oblast neumožňuje registraci pomocí telefonu",
|
"Your region is not allow to signup by phone": "Vaše oblast neumožňuje registraci pomocí telefonu",
|
||||||
"password or code is incorrect": "heslo nebo kód je nesprávné",
|
"password or code is incorrect": "heslo nebo kód je nesprávné",
|
||||||
"password or code is incorrect, you have %d remaining chances": "heslo nebo kód je nesprávné, máte %d zbývajících pokusů",
|
"password or code is incorrect, you have %s remaining chances": "heslo nebo kód je nesprávné, máte %s zbývajících pokusů",
|
||||||
"unsupported password type: %s": "nepodporovaný typ hesla: %s"
|
"unsupported password type: %s": "nepodporovaný typ hesla: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Ihre Region ist nicht berechtigt, sich telefonisch anzumelden",
|
"Your region is not allow to signup by phone": "Ihre Region ist nicht berechtigt, sich telefonisch anzumelden",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "Das Passwort oder der Code ist falsch. Du hast noch %d Versuche übrig",
|
"password or code is incorrect, you have %s remaining chances": "Das Passwort oder der Code ist falsch. Du hast noch %s Versuche übrig",
|
||||||
"unsupported password type: %s": "Nicht unterstützter Passworttyp: %s"
|
"unsupported password type: %s": "Nicht unterstützter Passworttyp: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Tu región no está permitida para registrarse por teléfono",
|
"Your region is not allow to signup by phone": "Tu región no está permitida para registrarse por teléfono",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "Contraseña o código incorrecto, tienes %d intentos restantes",
|
"password or code is incorrect, you have %s remaining chances": "Contraseña o código incorrecto, tienes %s intentos restantes",
|
||||||
"unsupported password type: %s": "Tipo de contraseña no compatible: %s"
|
"unsupported password type: %s": "Tipo de contraseña no compatible: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "منطقه شما اجازه ثبتنام با تلفن را ندارد",
|
"Your region is not allow to signup by phone": "منطقه شما اجازه ثبتنام با تلفن را ندارد",
|
||||||
"password or code is incorrect": "رمز عبور یا کد نادرست است",
|
"password or code is incorrect": "رمز عبور یا کد نادرست است",
|
||||||
"password or code is incorrect, you have %d remaining chances": "رمز عبور یا کد نادرست است، شما %d فرصت باقیمانده دارید",
|
"password or code is incorrect, you have %s remaining chances": "رمز عبور یا کد نادرست است، شما %s فرصت باقیمانده دارید",
|
||||||
"unsupported password type: %s": "نوع رمز عبور پشتیبانی نشده: %s"
|
"unsupported password type: %s": "نوع رمز عبور پشتیبانی نشده: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Votre région n'est pas autorisée à s'inscrire par téléphone",
|
"Your region is not allow to signup by phone": "Votre région n'est pas autorisée à s'inscrire par téléphone",
|
||||||
"password or code is incorrect": "mot de passe ou code invalide",
|
"password or code is incorrect": "mot de passe ou code invalide",
|
||||||
"password or code is incorrect, you have %d remaining chances": "Le mot de passe ou le code est incorrect, il vous reste %d chances",
|
"password or code is incorrect, you have %s remaining chances": "Le mot de passe ou le code est incorrect, il vous reste %s chances",
|
||||||
"unsupported password type: %s": "Type de mot de passe non pris en charge : %s"
|
"unsupported password type: %s": "Type de mot de passe non pris en charge : %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Wilayah Anda tidak diizinkan untuk mendaftar melalui telepon",
|
"Your region is not allow to signup by phone": "Wilayah Anda tidak diizinkan untuk mendaftar melalui telepon",
|
||||||
"password or code is incorrect": "kata sandi atau kode salah",
|
"password or code is incorrect": "kata sandi atau kode salah",
|
||||||
"password or code is incorrect, you have %d remaining chances": "Sandi atau kode salah, Anda memiliki %d kesempatan tersisa",
|
"password or code is incorrect, you have %s remaining chances": "Sandi atau kode salah, Anda memiliki %s kesempatan tersisa",
|
||||||
"unsupported password type: %s": "jenis sandi tidak didukung: %s"
|
"unsupported password type: %s": "jenis sandi tidak didukung: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "あなたの地域は電話でサインアップすることができません",
|
"Your region is not allow to signup by phone": "あなたの地域は電話でサインアップすることができません",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "パスワードまたはコードが間違っています。あと%d回の試行機会があります",
|
"password or code is incorrect, you have %s remaining chances": "パスワードまたはコードが間違っています。あと%s回の試行機会があります",
|
||||||
"unsupported password type: %s": "サポートされていないパスワードタイプ:%s"
|
"unsupported password type: %s": "サポートされていないパスワードタイプ:%s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "당신의 지역은 전화로 가입할 수 없습니다",
|
"Your region is not allow to signup by phone": "당신의 지역은 전화로 가입할 수 없습니다",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "암호 또는 코드가 올바르지 않습니다. %d번의 기회가 남아 있습니다",
|
"password or code is incorrect, you have %s remaining chances": "암호 또는 코드가 올바르지 않습니다. %s번의 기회가 남아 있습니다",
|
||||||
"unsupported password type: %s": "지원되지 않는 암호 유형: %s"
|
"unsupported password type: %s": "지원되지 않는 암호 유형: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "senha ou código incorreto",
|
"password or code is incorrect": "senha ou código incorreto",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Ваш регион не разрешает регистрацию по телефону",
|
"Your region is not allow to signup by phone": "Ваш регион не разрешает регистрацию по телефону",
|
||||||
"password or code is incorrect": "неправильный пароль или код",
|
"password or code is incorrect": "неправильный пароль или код",
|
||||||
"password or code is incorrect, you have %d remaining chances": "Неправильный пароль или код, у вас осталось %d попыток",
|
"password or code is incorrect, you have %s remaining chances": "Неправильный пароль или код, у вас осталось %s попыток",
|
||||||
"unsupported password type: %s": "неподдерживаемый тип пароля: %s"
|
"unsupported password type: %s": "неподдерживаемый тип пароля: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Váš región neumožňuje registráciu cez telefón",
|
"Your region is not allow to signup by phone": "Váš región neumožňuje registráciu cez telefón",
|
||||||
"password or code is incorrect": "heslo alebo kód je nesprávne",
|
"password or code is incorrect": "heslo alebo kód je nesprávne",
|
||||||
"password or code is incorrect, you have %d remaining chances": "heslo alebo kód je nesprávne, máte %d zostávajúcich pokusov",
|
"password or code is incorrect, you have %s remaining chances": "heslo alebo kód je nesprávne, máte %s zostávajúcich pokusov",
|
||||||
"unsupported password type: %s": "nepodporovaný typ hesla: %s"
|
"unsupported password type: %s": "nepodporovaný typ hesla: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "şifre veya kod hatalı",
|
"password or code is incorrect": "şifre veya kod hatalı",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
"Your region is not allow to signup by phone": "Your region is not allow to signup by phone",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "password or code is incorrect, you have %d remaining chances",
|
"password or code is incorrect, you have %s remaining chances": "password or code is incorrect, you have %s remaining chances",
|
||||||
"unsupported password type: %s": "unsupported password type: %s"
|
"unsupported password type: %s": "unsupported password type: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"",
|
||||||
"Your region is not allow to signup by phone": "Vùng của bạn không được phép đăng ký bằng điện thoại",
|
"Your region is not allow to signup by phone": "Vùng của bạn không được phép đăng ký bằng điện thoại",
|
||||||
"password or code is incorrect": "password or code is incorrect",
|
"password or code is incorrect": "password or code is incorrect",
|
||||||
"password or code is incorrect, you have %d remaining chances": "Mật khẩu hoặc mã không chính xác, bạn còn %d lần cơ hội",
|
"password or code is incorrect, you have %s remaining chances": "Mật khẩu hoặc mã không chính xác, bạn còn %s lần cơ hội",
|
||||||
"unsupported password type: %s": "Loại mật khẩu không được hỗ trợ: %s"
|
"unsupported password type: %s": "Loại mật khẩu không được hỗ trợ: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "您的密码已过期。请点击 \\\"忘记密码\\\" 以重置密码",
|
"Your password has expired. Please reset your password by clicking \\\"Forgot password\\\"": "您的密码已过期。请点击 \\\"忘记密码\\\" 以重置密码",
|
||||||
"Your region is not allow to signup by phone": "所在地区不支持手机号注册",
|
"Your region is not allow to signup by phone": "所在地区不支持手机号注册",
|
||||||
"password or code is incorrect": "密码错误",
|
"password or code is incorrect": "密码错误",
|
||||||
"password or code is incorrect, you have %d remaining chances": "密码错误,您还有 %d 次尝试的机会",
|
"password or code is incorrect, you have %s remaining chances": "密码错误,您还有 %s 次尝试的机会",
|
||||||
"unsupported password type: %s": "不支持的密码类型: %s"
|
"unsupported password type: %s": "不支持的密码类型: %s"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
|
20
i18n/util.go
20
i18n/util.go
@@ -19,14 +19,21 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/casdoor/casdoor/conf"
|
||||||
"github.com/casdoor/casdoor/util"
|
"github.com/casdoor/casdoor/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var enableErrorMask = false
|
||||||
|
|
||||||
//go:embed locales/*/data.json
|
//go:embed locales/*/data.json
|
||||||
var f embed.FS
|
var f embed.FS
|
||||||
|
|
||||||
var langMap = make(map[string]map[string]map[string]string) // for example : langMap[en][account][Invalid information] = Invalid information
|
var langMap = make(map[string]map[string]map[string]string) // for example : langMap[en][account][Invalid information] = Invalid information
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
enableErrorMask = conf.GetConfigBool("enableErrorMask")
|
||||||
|
}
|
||||||
|
|
||||||
func getI18nFilePath(category string, language string) string {
|
func getI18nFilePath(category string, language string) string {
|
||||||
if category == "backend" {
|
if category == "backend" {
|
||||||
return fmt.Sprintf("../i18n/locales/%s/data.json", language)
|
return fmt.Sprintf("../i18n/locales/%s/data.json", language)
|
||||||
@@ -74,6 +81,15 @@ func applyData(data1 *I18nData, data2 *I18nData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Translate(language string, errorText string) string {
|
func Translate(language string, errorText string) string {
|
||||||
|
modified := false
|
||||||
|
if enableErrorMask {
|
||||||
|
if errorText == "general:The user: %s doesn't exist" ||
|
||||||
|
errorText == "check:password or code is incorrect, you have %s remaining chances" {
|
||||||
|
modified = true
|
||||||
|
errorText = "check:password or code is incorrect"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tokens := strings.SplitN(errorText, ":", 2)
|
tokens := strings.SplitN(errorText, ":", 2)
|
||||||
if !strings.Contains(errorText, ":") || len(tokens) != 2 {
|
if !strings.Contains(errorText, ":") || len(tokens) != 2 {
|
||||||
return fmt.Sprintf("Translate error: the error text doesn't contain \":\", errorText = %s", errorText)
|
return fmt.Sprintf("Translate error: the error text doesn't contain \":\", errorText = %s", errorText)
|
||||||
@@ -97,5 +113,9 @@ func Translate(language string, errorText string) string {
|
|||||||
if res == "" {
|
if res == "" {
|
||||||
res = tokens[1]
|
res = tokens[1]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if modified {
|
||||||
|
res += "%.s"
|
||||||
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
15
idp/lark.go
15
idp/lark.go
@@ -29,14 +29,20 @@ import (
|
|||||||
type LarkIdProvider struct {
|
type LarkIdProvider struct {
|
||||||
Client *http.Client
|
Client *http.Client
|
||||||
Config *oauth2.Config
|
Config *oauth2.Config
|
||||||
|
LarkDomain string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLarkIdProvider(clientId string, clientSecret string, redirectUrl string) *LarkIdProvider {
|
func NewLarkIdProvider(clientId string, clientSecret string, redirectUrl string, useGlobalEndpoint bool) *LarkIdProvider {
|
||||||
idp := &LarkIdProvider{}
|
idp := &LarkIdProvider{}
|
||||||
|
|
||||||
|
if useGlobalEndpoint {
|
||||||
|
idp.LarkDomain = "https://open.larksuite.com"
|
||||||
|
} else {
|
||||||
|
idp.LarkDomain = "https://open.feishu.cn"
|
||||||
|
}
|
||||||
|
|
||||||
config := idp.getConfig(clientId, clientSecret, redirectUrl)
|
config := idp.getConfig(clientId, clientSecret, redirectUrl)
|
||||||
idp.Config = config
|
idp.Config = config
|
||||||
|
|
||||||
return idp
|
return idp
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,7 +53,7 @@ func (idp *LarkIdProvider) SetHttpClient(client *http.Client) {
|
|||||||
// getConfig return a point of Config, which describes a typical 3-legged OAuth2 flow
|
// getConfig return a point of Config, which describes a typical 3-legged OAuth2 flow
|
||||||
func (idp *LarkIdProvider) getConfig(clientId string, clientSecret string, redirectUrl string) *oauth2.Config {
|
func (idp *LarkIdProvider) getConfig(clientId string, clientSecret string, redirectUrl string) *oauth2.Config {
|
||||||
endpoint := oauth2.Endpoint{
|
endpoint := oauth2.Endpoint{
|
||||||
TokenURL: "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
|
TokenURL: idp.LarkDomain + "/open-apis/auth/v3/tenant_access_token/internal",
|
||||||
}
|
}
|
||||||
|
|
||||||
config := &oauth2.Config{
|
config := &oauth2.Config{
|
||||||
@@ -162,6 +168,7 @@ type LarkUserInfo struct {
|
|||||||
} `json:"data"`
|
} `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUserInfo use LarkAccessToken gotten before return LinkedInUserInf
|
||||||
// GetUserInfo use LarkAccessToken gotten before return LinkedInUserInfo
|
// GetUserInfo use LarkAccessToken gotten before return LinkedInUserInfo
|
||||||
// get more detail via: https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin?context=linkedin/consumer/context
|
// get more detail via: https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin?context=linkedin/consumer/context
|
||||||
func (idp *LarkIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
|
func (idp *LarkIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
|
||||||
@@ -175,7 +182,7 @@ func (idp *LarkIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", "https://open.feishu.cn/open-apis/authen/v1/access_token", strings.NewReader(string(data)))
|
req, err := http.NewRequest("POST", idp.LarkDomain+"/open-apis/authen/v1/access_token", strings.NewReader(string(data)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@@ -87,7 +87,7 @@ func GetIdProvider(idpInfo *ProviderInfo, redirectUrl string) (IdProvider, error
|
|||||||
return nil, fmt.Errorf("WeCom provider subType: %s is not supported", idpInfo.SubType)
|
return nil, fmt.Errorf("WeCom provider subType: %s is not supported", idpInfo.SubType)
|
||||||
}
|
}
|
||||||
case "Lark":
|
case "Lark":
|
||||||
return NewLarkIdProvider(idpInfo.ClientId, idpInfo.ClientSecret, redirectUrl), nil
|
return NewLarkIdProvider(idpInfo.ClientId, idpInfo.ClientSecret, redirectUrl, idpInfo.DisableSsl), nil
|
||||||
case "GitLab":
|
case "GitLab":
|
||||||
return NewGitlabIdProvider(idpInfo.ClientId, idpInfo.ClientSecret, redirectUrl), nil
|
return NewGitlabIdProvider(idpInfo.ClientId, idpInfo.ClientSecret, redirectUrl), nil
|
||||||
case "ADFS":
|
case "ADFS":
|
||||||
|
@@ -17,6 +17,7 @@ package object
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/casdoor/casdoor/i18n"
|
"github.com/casdoor/casdoor/i18n"
|
||||||
@@ -100,7 +101,7 @@ func recordSigninErrorInfo(user *User, lang string, options ...bool) error {
|
|||||||
if leftChances == 0 && enableCaptcha {
|
if leftChances == 0 && enableCaptcha {
|
||||||
return fmt.Errorf(i18n.Translate(lang, "check:password or code is incorrect"))
|
return fmt.Errorf(i18n.Translate(lang, "check:password or code is incorrect"))
|
||||||
} else if leftChances >= 0 {
|
} else if leftChances >= 0 {
|
||||||
return fmt.Errorf(i18n.Translate(lang, "check:password or code is incorrect, you have %d remaining chances"), leftChances)
|
return fmt.Errorf(i18n.Translate(lang, "check:password or code is incorrect, you have %s remaining chances"), strconv.Itoa(leftChances))
|
||||||
}
|
}
|
||||||
|
|
||||||
// don't show the chance error message if the user has no chance left
|
// don't show the chance error message if the user has no chance left
|
||||||
|
@@ -124,7 +124,7 @@ func GetOidcDiscovery(host string) OidcDiscovery {
|
|||||||
JwksUri: fmt.Sprintf("%s/.well-known/jwks", originBackend),
|
JwksUri: fmt.Sprintf("%s/.well-known/jwks", originBackend),
|
||||||
IntrospectionEndpoint: fmt.Sprintf("%s/api/login/oauth/introspect", originBackend),
|
IntrospectionEndpoint: fmt.Sprintf("%s/api/login/oauth/introspect", originBackend),
|
||||||
ResponseTypesSupported: []string{"code", "token", "id_token", "code token", "code id_token", "token id_token", "code token id_token", "none"},
|
ResponseTypesSupported: []string{"code", "token", "id_token", "code token", "code id_token", "token id_token", "code token id_token", "none"},
|
||||||
ResponseModesSupported: []string{"query", "fragment", "login", "code", "link"},
|
ResponseModesSupported: []string{"query", "fragment", "form_post"},
|
||||||
GrantTypesSupported: []string{"password", "authorization_code"},
|
GrantTypesSupported: []string{"password", "authorization_code"},
|
||||||
SubjectTypesSupported: []string{"public"},
|
SubjectTypesSupported: []string{"public"},
|
||||||
IdTokenSigningAlgValuesSupported: []string{"RS256", "RS512", "ES256", "ES384", "ES512"},
|
IdTokenSigningAlgValuesSupported: []string{"RS256", "RS512", "ES256", "ES384", "ES512"},
|
||||||
|
@@ -81,12 +81,12 @@ type Organization struct {
|
|||||||
UseEmailAsUsername bool `json:"useEmailAsUsername"`
|
UseEmailAsUsername bool `json:"useEmailAsUsername"`
|
||||||
EnableTour bool `json:"enableTour"`
|
EnableTour bool `json:"enableTour"`
|
||||||
IpRestriction string `json:"ipRestriction"`
|
IpRestriction string `json:"ipRestriction"`
|
||||||
NavItems []string `xorm:"varchar(1000)" json:"navItems"`
|
NavItems []string `xorm:"mediumtext" json:"navItems"`
|
||||||
WidgetItems []string `xorm:"varchar(1000)" json:"widgetItems"`
|
WidgetItems []string `xorm:"mediumtext" json:"widgetItems"`
|
||||||
|
|
||||||
MfaItems []*MfaItem `xorm:"varchar(300)" json:"mfaItems"`
|
MfaItems []*MfaItem `xorm:"varchar(300)" json:"mfaItems"`
|
||||||
MfaRememberInHours int `json:"mfaRememberInHours"`
|
MfaRememberInHours int `json:"mfaRememberInHours"`
|
||||||
AccountItems []*AccountItem `xorm:"varchar(5000)" json:"accountItems"`
|
AccountItems []*AccountItem `xorm:"mediumtext" json:"accountItems"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetOrganizationCount(owner, name, field, value string) (int64, error) {
|
func GetOrganizationCount(owner, name, field, value string) (int64, error) {
|
||||||
|
@@ -190,7 +190,7 @@ type User struct {
|
|||||||
|
|
||||||
WebauthnCredentials []webauthn.Credential `xorm:"webauthnCredentials blob" json:"webauthnCredentials"`
|
WebauthnCredentials []webauthn.Credential `xorm:"webauthnCredentials blob" json:"webauthnCredentials"`
|
||||||
PreferredMfaType string `xorm:"varchar(100)" json:"preferredMfaType"`
|
PreferredMfaType string `xorm:"varchar(100)" json:"preferredMfaType"`
|
||||||
RecoveryCodes []string `xorm:"varchar(1000)" json:"recoveryCodes"`
|
RecoveryCodes []string `xorm:"mediumtext" json:"recoveryCodes"`
|
||||||
TotpSecret string `xorm:"varchar(100)" json:"totpSecret"`
|
TotpSecret string `xorm:"varchar(100)" json:"totpSecret"`
|
||||||
MfaPhoneEnabled bool `json:"mfaPhoneEnabled"`
|
MfaPhoneEnabled bool `json:"mfaPhoneEnabled"`
|
||||||
MfaEmailEnabled bool `json:"mfaEmailEnabled"`
|
MfaEmailEnabled bool `json:"mfaEmailEnabled"`
|
||||||
@@ -204,7 +204,7 @@ type User struct {
|
|||||||
|
|
||||||
Roles []*Role `json:"roles"`
|
Roles []*Role `json:"roles"`
|
||||||
Permissions []*Permission `json:"permissions"`
|
Permissions []*Permission `json:"permissions"`
|
||||||
Groups []string `xorm:"groups varchar(1000)" json:"groups"`
|
Groups []string `xorm:"mediumtext" json:"groups"`
|
||||||
|
|
||||||
LastChangePasswordTime string `xorm:"varchar(100)" json:"lastChangePasswordTime"`
|
LastChangePasswordTime string `xorm:"varchar(100)" json:"lastChangePasswordTime"`
|
||||||
LastSigninWrongTime string `xorm:"varchar(100)" json:"lastSigninWrongTime"`
|
LastSigninWrongTime string `xorm:"varchar(100)" json:"lastSigninWrongTime"`
|
||||||
|
@@ -247,7 +247,9 @@ class App extends Component {
|
|||||||
account.organization = res.data2;
|
account.organization = res.data2;
|
||||||
accessToken = res.data.accessToken;
|
accessToken = res.data.accessToken;
|
||||||
|
|
||||||
|
if (!localStorage.getItem("language")) {
|
||||||
this.setLanguage(account);
|
this.setLanguage(account);
|
||||||
|
}
|
||||||
this.setTheme(Setting.getThemeData(account.organization), Conf.InitThemeAlgorithm);
|
this.setTheme(Setting.getThemeData(account.organization), Conf.InitThemeAlgorithm);
|
||||||
setTourLogo(account.organization.logo);
|
setTourLogo(account.organization.logo);
|
||||||
setOrgIsTourVisible(account.organization.enableTour);
|
setOrgIsTourVisible(account.organization.enableTour);
|
||||||
@@ -404,6 +406,7 @@ class App extends Component {
|
|||||||
account={this.state.account}
|
account={this.state.account}
|
||||||
theme={this.state.themeData}
|
theme={this.state.themeData}
|
||||||
themeAlgorithm={this.state.themeAlgorithm}
|
themeAlgorithm={this.state.themeAlgorithm}
|
||||||
|
requiredEnableMfa={this.state.requiredEnableMfa}
|
||||||
updateApplication={(application) => {
|
updateApplication={(application) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
application: application,
|
application: application,
|
||||||
|
@@ -1237,7 +1237,7 @@ class ApplicationEditPage extends React.Component {
|
|||||||
submitApplicationEdit(exitAfterSave) {
|
submitApplicationEdit(exitAfterSave) {
|
||||||
const application = Setting.deepCopy(this.state.application);
|
const application = Setting.deepCopy(this.state.application);
|
||||||
application.providers = application.providers?.filter(provider => this.state.providers.map(provider => provider.name).includes(provider.name));
|
application.providers = application.providers?.filter(provider => this.state.providers.map(provider => provider.name).includes(provider.name));
|
||||||
application.signinMethods = application.signinMethods?.filter(signinMethod => ["Password", "Verification code", "WebAuthn", "LDAP", "Face ID"].includes(signinMethod.name));
|
application.signinMethods = application.signinMethods?.filter(signinMethod => ["Password", "Verification code", "WebAuthn", "LDAP", "Face ID", "WeChat"].includes(signinMethod.name));
|
||||||
|
|
||||||
ApplicationBackend.updateApplication("admin", this.state.applicationName, application)
|
ApplicationBackend.updateApplication("admin", this.state.applicationName, application)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
@@ -241,6 +241,21 @@ class PlanEditPage extends React.Component {
|
|||||||
{id: "HKD", name: "HKD"},
|
{id: "HKD", name: "HKD"},
|
||||||
{id: "SGD", name: "SGD"},
|
{id: "SGD", name: "SGD"},
|
||||||
{id: "BRL", name: "BRL"},
|
{id: "BRL", name: "BRL"},
|
||||||
|
{id: "PLN", name: "PLN"},
|
||||||
|
{id: "KRW", name: "KRW"},
|
||||||
|
{id: "INR", name: "INR"},
|
||||||
|
{id: "RUB", name: "RUB"},
|
||||||
|
{id: "MXN", name: "MXN"},
|
||||||
|
{id: "ZAR", name: "ZAR"},
|
||||||
|
{id: "TRY", name: "TRY"},
|
||||||
|
{id: "SEK", name: "SEK"},
|
||||||
|
{id: "NOK", name: "NOK"},
|
||||||
|
{id: "DKK", name: "DKK"},
|
||||||
|
{id: "THB", name: "THB"},
|
||||||
|
{id: "MYR", name: "MYR"},
|
||||||
|
{id: "TWD", name: "TWD"},
|
||||||
|
{id: "CZK", name: "CZK"},
|
||||||
|
{id: "HUF", name: "HUF"},
|
||||||
].map((item, index) => <Option key={index} value={item.id}>{item.name}</Option>)
|
].map((item, index) => <Option key={index} value={item.id}>{item.name}</Option>)
|
||||||
}
|
}
|
||||||
</Select>
|
</Select>
|
||||||
|
@@ -141,6 +141,36 @@ class ProductBuyPage extends React.Component {
|
|||||||
return "S$";
|
return "S$";
|
||||||
} else if (product?.currency === "BRL") {
|
} else if (product?.currency === "BRL") {
|
||||||
return "R$";
|
return "R$";
|
||||||
|
} else if (product?.currency === "PLN") {
|
||||||
|
return "zł";
|
||||||
|
} else if (product?.currency === "KRW") {
|
||||||
|
return "₩";
|
||||||
|
} else if (product?.currency === "INR") {
|
||||||
|
return "₹";
|
||||||
|
} else if (product?.currency === "RUB") {
|
||||||
|
return "₽";
|
||||||
|
} else if (product?.currency === "MXN") {
|
||||||
|
return "$";
|
||||||
|
} else if (product?.currency === "ZAR") {
|
||||||
|
return "R";
|
||||||
|
} else if (product?.currency === "TRY") {
|
||||||
|
return "₺";
|
||||||
|
} else if (product?.currency === "SEK") {
|
||||||
|
return "kr";
|
||||||
|
} else if (product?.currency === "NOK") {
|
||||||
|
return "kr";
|
||||||
|
} else if (product?.currency === "DKK") {
|
||||||
|
return "kr";
|
||||||
|
} else if (product?.currency === "THB") {
|
||||||
|
return "฿";
|
||||||
|
} else if (product?.currency === "MYR") {
|
||||||
|
return "RM";
|
||||||
|
} else if (product?.currency === "TWD") {
|
||||||
|
return "NT$";
|
||||||
|
} else if (product?.currency === "CZK") {
|
||||||
|
return "Kč";
|
||||||
|
} else if (product?.currency === "HUF") {
|
||||||
|
return "Ft";
|
||||||
} else {
|
} else {
|
||||||
return "(Unknown currency)";
|
return "(Unknown currency)";
|
||||||
}
|
}
|
||||||
|
@@ -218,6 +218,21 @@ class ProductEditPage extends React.Component {
|
|||||||
{id: "HKD", name: "HKD"},
|
{id: "HKD", name: "HKD"},
|
||||||
{id: "SGD", name: "SGD"},
|
{id: "SGD", name: "SGD"},
|
||||||
{id: "BRL", name: "BRL"},
|
{id: "BRL", name: "BRL"},
|
||||||
|
{id: "PLN", name: "PLN"},
|
||||||
|
{id: "KRW", name: "KRW"},
|
||||||
|
{id: "INR", name: "INR"},
|
||||||
|
{id: "RUB", name: "RUB"},
|
||||||
|
{id: "MXN", name: "MXN"},
|
||||||
|
{id: "ZAR", name: "ZAR"},
|
||||||
|
{id: "TRY", name: "TRY"},
|
||||||
|
{id: "SEK", name: "SEK"},
|
||||||
|
{id: "NOK", name: "NOK"},
|
||||||
|
{id: "DKK", name: "DKK"},
|
||||||
|
{id: "THB", name: "THB"},
|
||||||
|
{id: "MYR", name: "MYR"},
|
||||||
|
{id: "TWD", name: "TWD"},
|
||||||
|
{id: "CZK", name: "CZK"},
|
||||||
|
{id: "HUF", name: "HUF"},
|
||||||
].map((item, index) => <Option key={index} value={item.id}>{item.name}</Option>)
|
].map((item, index) => <Option key={index} value={item.id}>{item.name}</Option>)
|
||||||
}
|
}
|
||||||
</Select>
|
</Select>
|
||||||
|
@@ -931,10 +931,12 @@ class ProviderEditPage extends React.Component {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
this.state.provider.type !== "Google" ? null : (
|
this.state.provider.type !== "Google" && this.state.provider.type !== "Lark" ? null : (
|
||||||
<Row style={{marginTop: "20px"}} >
|
<Row style={{marginTop: "20px"}} >
|
||||||
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
||||||
{Setting.getLabel(i18next.t("provider:Get phone number"), i18next.t("provider:Get phone number - Tooltip"))} :
|
{this.state.provider.type === "Google" ?
|
||||||
|
Setting.getLabel(i18next.t("provider:Get phone number"), i18next.t("provider:Get phone number - Tooltip"))
|
||||||
|
: Setting.getLabel(i18next.t("provider:Use global endpoint"), i18next.t("provider:Use global endpoint - Tooltip"))} :
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={1} >
|
<Col span={1} >
|
||||||
<Switch disabled={!this.state.provider.clientId} checked={this.state.provider.disableSsl} onChange={checked => {
|
<Switch disabled={!this.state.provider.clientId} checked={this.state.provider.disableSsl} onChange={checked => {
|
||||||
|
@@ -1516,6 +1516,54 @@ export function getCurrencySymbol(currency) {
|
|||||||
return "$";
|
return "$";
|
||||||
} else if (currency === "CNY" || currency === "cny") {
|
} else if (currency === "CNY" || currency === "cny") {
|
||||||
return "¥";
|
return "¥";
|
||||||
|
} else if (currency === "EUR" || currency === "eur") {
|
||||||
|
return "€";
|
||||||
|
} else if (currency === "JPY" || currency === "jpy") {
|
||||||
|
return "¥";
|
||||||
|
} else if (currency === "GBP" || currency === "gbp") {
|
||||||
|
return "£";
|
||||||
|
} else if (currency === "AUD" || currency === "aud") {
|
||||||
|
return "A$";
|
||||||
|
} else if (currency === "CAD" || currency === "cad") {
|
||||||
|
return "C$";
|
||||||
|
} else if (currency === "CHF" || currency === "chf") {
|
||||||
|
return "CHF";
|
||||||
|
} else if (currency === "HKD" || currency === "hkd") {
|
||||||
|
return "HK$";
|
||||||
|
} else if (currency === "SGD" || currency === "sgd") {
|
||||||
|
return "S$";
|
||||||
|
} else if (currency === "BRL" || currency === "brl") {
|
||||||
|
return "R$";
|
||||||
|
} else if (currency === "PLN" || currency === "pln") {
|
||||||
|
return "zł";
|
||||||
|
} else if (currency === "KRW" || currency === "krw") {
|
||||||
|
return "₩";
|
||||||
|
} else if (currency === "INR" || currency === "inr") {
|
||||||
|
return "₹";
|
||||||
|
} else if (currency === "RUB" || currency === "rub") {
|
||||||
|
return "₽";
|
||||||
|
} else if (currency === "MXN" || currency === "mxn") {
|
||||||
|
return "$";
|
||||||
|
} else if (currency === "ZAR" || currency === "zar") {
|
||||||
|
return "R";
|
||||||
|
} else if (currency === "TRY" || currency === "try") {
|
||||||
|
return "₺";
|
||||||
|
} else if (currency === "SEK" || currency === "sek") {
|
||||||
|
return "kr";
|
||||||
|
} else if (currency === "NOK" || currency === "nok") {
|
||||||
|
return "kr";
|
||||||
|
} else if (currency === "DKK" || currency === "dkk") {
|
||||||
|
return "kr";
|
||||||
|
} else if (currency === "THB" || currency === "thb") {
|
||||||
|
return "฿";
|
||||||
|
} else if (currency === "MYR" || currency === "myr") {
|
||||||
|
return "RM";
|
||||||
|
} else if (currency === "TWD" || currency === "twd") {
|
||||||
|
return "NT$";
|
||||||
|
} else if (currency === "CZK" || currency === "czk") {
|
||||||
|
return "Kč";
|
||||||
|
} else if (currency === "HUF" || currency === "huf") {
|
||||||
|
return "Ft";
|
||||||
} else {
|
} else {
|
||||||
return currency;
|
return currency;
|
||||||
}
|
}
|
||||||
@@ -1619,6 +1667,36 @@ export function getCurrencyText(product) {
|
|||||||
return i18next.t("currency:SGD");
|
return i18next.t("currency:SGD");
|
||||||
} else if (product?.currency === "BRL") {
|
} else if (product?.currency === "BRL") {
|
||||||
return i18next.t("currency:BRL");
|
return i18next.t("currency:BRL");
|
||||||
|
} else if (product?.currency === "PLN") {
|
||||||
|
return i18next.t("currency:PLN");
|
||||||
|
} else if (product?.currency === "KRW") {
|
||||||
|
return i18next.t("currency:KRW");
|
||||||
|
} else if (product?.currency === "INR") {
|
||||||
|
return i18next.t("currency:INR");
|
||||||
|
} else if (product?.currency === "RUB") {
|
||||||
|
return i18next.t("currency:RUB");
|
||||||
|
} else if (product?.currency === "MXN") {
|
||||||
|
return i18next.t("currency:MXN");
|
||||||
|
} else if (product?.currency === "ZAR") {
|
||||||
|
return i18next.t("currency:ZAR");
|
||||||
|
} else if (product?.currency === "TRY") {
|
||||||
|
return i18next.t("currency:TRY");
|
||||||
|
} else if (product?.currency === "SEK") {
|
||||||
|
return i18next.t("currency:SEK");
|
||||||
|
} else if (product?.currency === "NOK") {
|
||||||
|
return i18next.t("currency:NOK");
|
||||||
|
} else if (product?.currency === "DKK") {
|
||||||
|
return i18next.t("currency:DKK");
|
||||||
|
} else if (product?.currency === "THB") {
|
||||||
|
return i18next.t("currency:THB");
|
||||||
|
} else if (product?.currency === "MYR") {
|
||||||
|
return i18next.t("currency:MYR");
|
||||||
|
} else if (product?.currency === "TWD") {
|
||||||
|
return i18next.t("currency:TWD");
|
||||||
|
} else if (product?.currency === "CZK") {
|
||||||
|
return i18next.t("currency:CZK");
|
||||||
|
} else if (product?.currency === "HUF") {
|
||||||
|
return i18next.t("currency:HUF");
|
||||||
} else {
|
} else {
|
||||||
return "(Unknown currency)";
|
return "(Unknown currency)";
|
||||||
}
|
}
|
||||||
|
@@ -208,10 +208,14 @@ let orgIsTourVisible = true;
|
|||||||
|
|
||||||
export function setOrgIsTourVisible(visible) {
|
export function setOrgIsTourVisible(visible) {
|
||||||
orgIsTourVisible = visible;
|
orgIsTourVisible = visible;
|
||||||
|
if (orgIsTourVisible === false) {
|
||||||
|
setIsTourVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setIsTourVisible(visible) {
|
export function setIsTourVisible(visible) {
|
||||||
localStorage.setItem("isTourVisible", visible);
|
localStorage.setItem("isTourVisible", visible);
|
||||||
|
window.dispatchEvent(new Event("storageTourChanged"));
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setTourLogo(tourLogoSrc) {
|
export function setTourLogo(tourLogoSrc) {
|
||||||
@@ -221,7 +225,7 @@ export function setTourLogo(tourLogoSrc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getTourVisible() {
|
export function getTourVisible() {
|
||||||
return localStorage.getItem("isTourVisible") !== "false" && orgIsTourVisible;
|
return localStorage.getItem("isTourVisible") !== "false";
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getNextButtonChild(nextPathName) {
|
export function getNextButtonChild(nextPathName) {
|
||||||
|
@@ -35,6 +35,30 @@ class AuthCallback extends React.Component {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
submitFormPost(redirectUri, code, state) {
|
||||||
|
const form = document.createElement("form");
|
||||||
|
form.method = "post";
|
||||||
|
form.action = redirectUri;
|
||||||
|
|
||||||
|
const codeInput = document.createElement("input");
|
||||||
|
codeInput.type = "hidden";
|
||||||
|
codeInput.name = "code";
|
||||||
|
codeInput.value = code;
|
||||||
|
form.appendChild(codeInput);
|
||||||
|
|
||||||
|
if (state) {
|
||||||
|
const stateInput = document.createElement("input");
|
||||||
|
stateInput.type = "hidden";
|
||||||
|
stateInput.name = "state";
|
||||||
|
stateInput.value = state;
|
||||||
|
form.appendChild(stateInput);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.appendChild(form);
|
||||||
|
form.submit();
|
||||||
|
setTimeout(() => form.remove(), 1000);
|
||||||
|
}
|
||||||
|
|
||||||
getInnerParams() {
|
getInnerParams() {
|
||||||
// For example, for Casbin-OA, realRedirectUri = "http://localhost:9000/login"
|
// For example, for Casbin-OA, realRedirectUri = "http://localhost:9000/login"
|
||||||
// realRedirectUrl = "http://localhost:9000"
|
// realRedirectUrl = "http://localhost:9000"
|
||||||
@@ -158,6 +182,7 @@ class AuthCallback extends React.Component {
|
|||||||
// OAuth
|
// OAuth
|
||||||
const oAuthParams = Util.getOAuthGetParameters(innerParams);
|
const oAuthParams = Util.getOAuthGetParameters(innerParams);
|
||||||
const concatChar = oAuthParams?.redirectUri?.includes("?") ? "&" : "?";
|
const concatChar = oAuthParams?.redirectUri?.includes("?") ? "&" : "?";
|
||||||
|
const responseMode = oAuthParams?.responseMode || "query"; // Default to "query" if not specified
|
||||||
const signinUrl = localStorage.getItem("signinUrl");
|
const signinUrl = localStorage.getItem("signinUrl");
|
||||||
|
|
||||||
AuthBackend.login(body, oAuthParams)
|
AuthBackend.login(body, oAuthParams)
|
||||||
@@ -181,8 +206,13 @@ class AuthCallback extends React.Component {
|
|||||||
Setting.goToLinkSoft(this, `/forget/${applicationName}`);
|
Setting.goToLinkSoft(this, `/forget/${applicationName}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (responseMode === "form_post") {
|
||||||
|
this.submitFormPost(oAuthParams?.redirectUri, res.data, oAuthParams?.state);
|
||||||
|
} else {
|
||||||
const code = res.data;
|
const code = res.data;
|
||||||
Setting.goToLink(`${oAuthParams.redirectUri}${concatChar}code=${code}&state=${oAuthParams.state}`);
|
Setting.goToLink(`${oAuthParams.redirectUri}${concatChar}code=${code}&state=${oAuthParams.state}`);
|
||||||
|
}
|
||||||
// Setting.showMessage("success", `Authorization code: ${res.data}`);
|
// Setting.showMessage("success", `Authorization code: ${res.data}`);
|
||||||
} else if (responseType === "token" || responseType === "id_token") {
|
} else if (responseType === "token" || responseType === "id_token") {
|
||||||
if (res.data3) {
|
if (res.data3) {
|
||||||
|
@@ -38,6 +38,7 @@ import {RequiredMfa} from "./mfa/MfaAuthVerifyForm";
|
|||||||
import {GoogleOneTapLoginVirtualButton} from "./GoogleLoginButton";
|
import {GoogleOneTapLoginVirtualButton} from "./GoogleLoginButton";
|
||||||
import * as ProviderButton from "./ProviderButton";
|
import * as ProviderButton from "./ProviderButton";
|
||||||
import {goToLink} from "../Setting";
|
import {goToLink} from "../Setting";
|
||||||
|
import WeChatLoginPanel from "./WeChatLoginPanel";
|
||||||
const FaceRecognitionCommonModal = lazy(() => import("../common/modal/FaceRecognitionCommonModal"));
|
const FaceRecognitionCommonModal = lazy(() => import("../common/modal/FaceRecognitionCommonModal"));
|
||||||
const FaceRecognitionModal = lazy(() => import("../common/modal/FaceRecognitionModal"));
|
const FaceRecognitionModal = lazy(() => import("../common/modal/FaceRecognitionModal"));
|
||||||
|
|
||||||
@@ -346,7 +347,7 @@ class LoginPage extends React.Component {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resp.data2) {
|
if (resp.data3) {
|
||||||
sessionStorage.setItem("signinUrl", window.location.pathname + window.location.search);
|
sessionStorage.setItem("signinUrl", window.location.pathname + window.location.search);
|
||||||
Setting.goToLinkSoft(ths, `/forget/${application.name}`);
|
Setting.goToLinkSoft(ths, `/forget/${application.name}`);
|
||||||
return;
|
return;
|
||||||
@@ -436,6 +437,9 @@ class LoginPage extends React.Component {
|
|||||||
values["password"] = passwordCipher;
|
values["password"] = passwordCipher;
|
||||||
}
|
}
|
||||||
const captchaRule = this.getCaptchaRule(this.getApplicationObj());
|
const captchaRule = this.getCaptchaRule(this.getApplicationObj());
|
||||||
|
const application = this.getApplicationObj();
|
||||||
|
const noModal = application?.signinItems.map(signinItem => signinItem.name === "Captcha" && signinItem.rule === "inline").includes(true);
|
||||||
|
if (!noModal) {
|
||||||
if (captchaRule === CaptchaRule.Always) {
|
if (captchaRule === CaptchaRule.Always) {
|
||||||
this.setState({
|
this.setState({
|
||||||
openCaptchaModal: true,
|
openCaptchaModal: true,
|
||||||
@@ -449,6 +453,11 @@ class LoginPage extends React.Component {
|
|||||||
this.checkCaptchaStatus(values);
|
this.checkCaptchaStatus(values);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
values["captchaType"] = this.state?.captchaValues?.captchaType;
|
||||||
|
values["captchaToken"] = this.state?.captchaValues?.captchaToken;
|
||||||
|
values["clientSecret"] = this.state?.captchaValues?.clientSecret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.login(values);
|
this.login(values);
|
||||||
}
|
}
|
||||||
@@ -774,7 +783,7 @@ class LoginPage extends React.Component {
|
|||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
this.renderCaptchaModal(application)
|
application?.signinItems.map(signinItem => signinItem.name === "Captcha" && signinItem.rule === "inline").includes(true) ? null : this.renderCaptchaModal(application, false)
|
||||||
}
|
}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
);
|
);
|
||||||
@@ -818,6 +827,8 @@ class LoginPage extends React.Component {
|
|||||||
</Form.Item>
|
</Form.Item>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
} else if (signinItem.name === "Captcha" && signinItem.rule === "inline") {
|
||||||
|
return this.renderCaptchaModal(application, true);
|
||||||
} else if (signinItem.name.startsWith("Text ") || signinItem?.isCustom) {
|
} else if (signinItem.name.startsWith("Text ") || signinItem?.isCustom) {
|
||||||
return (
|
return (
|
||||||
<div key={resultItemKey} dangerouslySetInnerHTML={{__html: signinItem.customCss}} />
|
<div key={resultItemKey} dangerouslySetInnerHTML={{__html: signinItem.customCss}} />
|
||||||
@@ -877,13 +888,17 @@ class LoginPage extends React.Component {
|
|||||||
loginWidth += 10;
|
loginWidth += 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.state.loginMethod === "wechat") {
|
||||||
|
return (<WeChatLoginPanel application={application} renderFormItem={this.renderFormItem.bind(this)} loginMethod={this.state.loginMethod} loginWidth={loginWidth} renderMethodChoiceBox={this.renderMethodChoiceBox.bind(this)} />);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form
|
<Form
|
||||||
name="normal_login"
|
name="normal_login"
|
||||||
initialValues={{
|
initialValues={{
|
||||||
organization: application.organization,
|
organization: application.organization,
|
||||||
application: application.name,
|
application: application.name,
|
||||||
autoSignin: true,
|
autoSignin: !application?.signinItems.map(signinItem => signinItem.name === "Forgot password?" && signinItem.rule === "Auto sign in - False")?.includes(true),
|
||||||
username: Conf.ShowGithubCorner ? "admin" : "",
|
username: Conf.ShowGithubCorner ? "admin" : "",
|
||||||
password: Conf.ShowGithubCorner ? "123" : "",
|
password: Conf.ShowGithubCorner ? "123" : "",
|
||||||
}}
|
}}
|
||||||
@@ -959,7 +974,7 @@ class LoginPage extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
renderCaptchaModal(application) {
|
renderCaptchaModal(application, noModal) {
|
||||||
if (this.getCaptchaRule(this.getApplicationObj()) === CaptchaRule.Never) {
|
if (this.getCaptchaRule(this.getApplicationObj()) === CaptchaRule.Never) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -988,6 +1003,12 @@ class LoginPage extends React.Component {
|
|||||||
owner={provider.owner}
|
owner={provider.owner}
|
||||||
name={provider.name}
|
name={provider.name}
|
||||||
visible={this.state.openCaptchaModal}
|
visible={this.state.openCaptchaModal}
|
||||||
|
noModal={noModal}
|
||||||
|
onUpdateToken={(captchaType, captchaToken, clientSecret) => {
|
||||||
|
this.setState({captchaValues: {
|
||||||
|
captchaType, captchaToken, clientSecret,
|
||||||
|
}});
|
||||||
|
}}
|
||||||
onOk={(captchaType, captchaToken, clientSecret) => {
|
onOk={(captchaType, captchaToken, clientSecret) => {
|
||||||
const values = this.state.values;
|
const values = this.state.values;
|
||||||
values["captchaType"] = captchaType;
|
values["captchaType"] = captchaType;
|
||||||
@@ -1040,6 +1061,10 @@ class LoginPage extends React.Component {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.props.requiredEnableMfa) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.state.userCode && this.state.userCodeStatus === "success") {
|
if (this.state.userCode && this.state.userCodeStatus === "success") {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -1200,6 +1225,7 @@ class LoginPage extends React.Component {
|
|||||||
[generateItemKey("WebAuthn", "None"), {label: i18next.t("login:WebAuthn"), key: "webAuthn"}],
|
[generateItemKey("WebAuthn", "None"), {label: i18next.t("login:WebAuthn"), key: "webAuthn"}],
|
||||||
[generateItemKey("LDAP", "None"), {label: i18next.t("login:LDAP"), key: "ldap"}],
|
[generateItemKey("LDAP", "None"), {label: i18next.t("login:LDAP"), key: "ldap"}],
|
||||||
[generateItemKey("Face ID", "None"), {label: i18next.t("login:Face ID"), key: "faceId"}],
|
[generateItemKey("Face ID", "None"), {label: i18next.t("login:Face ID"), key: "faceId"}],
|
||||||
|
[generateItemKey("WeChat", "None"), {label: i18next.t("login:WeChat"), key: "wechat"}],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
application?.signinMethods?.forEach((signinMethod) => {
|
application?.signinMethods?.forEach((signinMethod) => {
|
||||||
@@ -1221,7 +1247,7 @@ class LoginPage extends React.Component {
|
|||||||
if (items.length > 1) {
|
if (items.length > 1) {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Tabs className="signin-methods" items={items} size={"small"} defaultActiveKey={this.getDefaultLoginMethod(application)} onChange={(key) => {
|
<Tabs className="signin-methods" items={items} size={"small"} activeKey={this.state.loginMethod} onChange={(key) => {
|
||||||
this.setState({loginMethod: key});
|
this.setState({loginMethod: key});
|
||||||
}} centered>
|
}} centered>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
@@ -68,6 +68,7 @@ const authInfo = {
|
|||||||
Lark: {
|
Lark: {
|
||||||
// scope: "email",
|
// scope: "email",
|
||||||
endpoint: "https://open.feishu.cn/open-apis/authen/v1/index",
|
endpoint: "https://open.feishu.cn/open-apis/authen/v1/index",
|
||||||
|
endpoint2: "https://accounts.larksuite.com/open-apis/authen/v1/authorize",
|
||||||
},
|
},
|
||||||
GitLab: {
|
GitLab: {
|
||||||
scope: "read_user+profile",
|
scope: "read_user+profile",
|
||||||
@@ -406,6 +407,8 @@ export function getAuthUrl(application, provider, method, code) {
|
|||||||
if (provider.domain) {
|
if (provider.domain) {
|
||||||
endpoint = `${provider.domain}/apps/oauth2/authorize`;
|
endpoint = `${provider.domain}/apps/oauth2/authorize`;
|
||||||
}
|
}
|
||||||
|
} else if (provider.type === "Lark" && provider.disableSsl) {
|
||||||
|
endpoint = authInfo[provider.type].endpoint2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (provider.type === "Google" || provider.type === "GitHub" || provider.type === "Facebook"
|
if (provider.type === "Google" || provider.type === "GitHub" || provider.type === "Facebook"
|
||||||
@@ -460,6 +463,9 @@ export function getAuthUrl(application, provider, method, code) {
|
|||||||
return `https://error:not-supported-provider-sub-type:${provider.subType}`;
|
return `https://error:not-supported-provider-sub-type:${provider.subType}`;
|
||||||
}
|
}
|
||||||
} else if (provider.type === "Lark") {
|
} else if (provider.type === "Lark") {
|
||||||
|
if (provider.disableSsl) {
|
||||||
|
redirectUri = encodeURIComponent(redirectUri);
|
||||||
|
}
|
||||||
return `${endpoint}?app_id=${provider.clientId}&redirect_uri=${redirectUri}&state=${state}`;
|
return `${endpoint}?app_id=${provider.clientId}&redirect_uri=${redirectUri}&state=${state}`;
|
||||||
} else if (provider.type === "ADFS") {
|
} else if (provider.type === "ADFS") {
|
||||||
return `${provider.domain}/adfs/oauth2/authorize?client_id=${provider.clientId}&redirect_uri=${redirectUri}&state=${state}&response_type=code&nonce=casdoor&scope=openid`;
|
return `${provider.domain}/adfs/oauth2/authorize?client_id=${provider.clientId}&redirect_uri=${redirectUri}&state=${state}&response_type=code&nonce=casdoor&scope=openid`;
|
||||||
|
@@ -18,6 +18,7 @@ import i18next from "i18next";
|
|||||||
import {authConfig} from "./Auth";
|
import {authConfig} from "./Auth";
|
||||||
import * as ApplicationBackend from "../backend/ApplicationBackend";
|
import * as ApplicationBackend from "../backend/ApplicationBackend";
|
||||||
import * as Setting from "../Setting";
|
import * as Setting from "../Setting";
|
||||||
|
import * as AuthBackend from "./AuthBackend";
|
||||||
|
|
||||||
class ResultPage extends React.Component {
|
class ResultPage extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -60,6 +61,22 @@ class ResultPage extends React.Component {
|
|||||||
this.props.onUpdateApplication(application);
|
this.props.onUpdateApplication(application);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleSignIn = () => {
|
||||||
|
AuthBackend.getAccount()
|
||||||
|
.then((res) => {
|
||||||
|
if (res.status === "ok" && res.data) {
|
||||||
|
const linkInStorage = sessionStorage.getItem("signinUrl");
|
||||||
|
if (linkInStorage !== null && linkInStorage !== "") {
|
||||||
|
window.location.href = linkInStorage;
|
||||||
|
} else {
|
||||||
|
Setting.goToLink("/");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Setting.redirectToLoginPage(this.state.application, this.props.history);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const application = this.state.application;
|
const application = this.state.application;
|
||||||
|
|
||||||
@@ -89,14 +106,7 @@ class ResultPage extends React.Component {
|
|||||||
title={i18next.t("signup:Your account has been created!")}
|
title={i18next.t("signup:Your account has been created!")}
|
||||||
subTitle={i18next.t("signup:Please click the below button to sign in")}
|
subTitle={i18next.t("signup:Please click the below button to sign in")}
|
||||||
extra={[
|
extra={[
|
||||||
<Button type="primary" key="login" onClick={() => {
|
<Button type="primary" key="login" onClick={this.handleSignIn}>
|
||||||
const linkInStorage = sessionStorage.getItem("signinUrl");
|
|
||||||
if (linkInStorage !== null && linkInStorage !== "") {
|
|
||||||
Setting.goToLinkSoft(this, linkInStorage);
|
|
||||||
} else {
|
|
||||||
Setting.redirectToLoginPage(application, this.props.history);
|
|
||||||
}
|
|
||||||
}}>
|
|
||||||
{i18next.t("login:Sign In")}
|
{i18next.t("login:Sign In")}
|
||||||
</Button>,
|
</Button>,
|
||||||
]}
|
]}
|
||||||
|
@@ -141,6 +141,7 @@ export function getOAuthGetParameters(params) {
|
|||||||
const nonce = getRefinedValue(queries.get("nonce"));
|
const nonce = getRefinedValue(queries.get("nonce"));
|
||||||
const challengeMethod = getRefinedValue(queries.get("code_challenge_method"));
|
const challengeMethod = getRefinedValue(queries.get("code_challenge_method"));
|
||||||
const codeChallenge = getRefinedValue(queries.get("code_challenge"));
|
const codeChallenge = getRefinedValue(queries.get("code_challenge"));
|
||||||
|
const responseMode = getRefinedValue(queries.get("response_mode"));
|
||||||
const samlRequest = getRefinedValue(lowercaseQueries["samlRequest".toLowerCase()]);
|
const samlRequest = getRefinedValue(lowercaseQueries["samlRequest".toLowerCase()]);
|
||||||
const relayState = getRefinedValue(lowercaseQueries["RelayState".toLowerCase()]);
|
const relayState = getRefinedValue(lowercaseQueries["RelayState".toLowerCase()]);
|
||||||
const noRedirect = getRefinedValue(lowercaseQueries["noRedirect".toLowerCase()]);
|
const noRedirect = getRefinedValue(lowercaseQueries["noRedirect".toLowerCase()]);
|
||||||
@@ -159,6 +160,7 @@ export function getOAuthGetParameters(params) {
|
|||||||
nonce: nonce,
|
nonce: nonce,
|
||||||
challengeMethod: challengeMethod,
|
challengeMethod: challengeMethod,
|
||||||
codeChallenge: codeChallenge,
|
codeChallenge: codeChallenge,
|
||||||
|
responseMode: responseMode,
|
||||||
samlRequest: samlRequest,
|
samlRequest: samlRequest,
|
||||||
relayState: relayState,
|
relayState: relayState,
|
||||||
noRedirect: noRedirect,
|
noRedirect: noRedirect,
|
||||||
|
106
web/src/auth/WeChatLoginPanel.js
Normal file
106
web/src/auth/WeChatLoginPanel.js
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
// Copyright 2025 The Casdoor Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import React from "react";
|
||||||
|
import * as AuthBackend from "./AuthBackend";
|
||||||
|
import i18next from "i18next";
|
||||||
|
import * as Util from "./Util";
|
||||||
|
|
||||||
|
class WeChatLoginPanel extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
qrCode: null,
|
||||||
|
loading: false,
|
||||||
|
ticket: null,
|
||||||
|
};
|
||||||
|
this.pollingTimer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillMount() {
|
||||||
|
this.fetchQrCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps) {
|
||||||
|
if (this.props.loginMethod === "wechat" && prevProps.loginMethod !== "wechat") {
|
||||||
|
this.fetchQrCode();
|
||||||
|
}
|
||||||
|
if (prevProps.loginMethod === "wechat" && this.props.loginMethod !== "wechat") {
|
||||||
|
this.setState({qrCode: null, loading: false, ticket: null});
|
||||||
|
this.clearPolling();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
this.clearPolling();
|
||||||
|
}
|
||||||
|
|
||||||
|
clearPolling() {
|
||||||
|
if (this.pollingTimer) {
|
||||||
|
clearInterval(this.pollingTimer);
|
||||||
|
this.pollingTimer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchQrCode() {
|
||||||
|
const {application} = this.props;
|
||||||
|
const wechatProviderItem = application?.providers?.find(p => p.provider?.type === "WeChat");
|
||||||
|
if (wechatProviderItem) {
|
||||||
|
this.setState({loading: true, qrCode: null, ticket: null});
|
||||||
|
AuthBackend.getWechatQRCode(`${wechatProviderItem.provider.owner}/${wechatProviderItem.provider.name}`).then(res => {
|
||||||
|
if (res.status === "ok" && res.data) {
|
||||||
|
this.setState({qrCode: res.data, loading: false, ticket: res.data2});
|
||||||
|
this.clearPolling();
|
||||||
|
this.pollingTimer = setInterval(() => {
|
||||||
|
Util.getEvent(application, wechatProviderItem.provider, res.data2, "signup");
|
||||||
|
}, 1000);
|
||||||
|
} else {
|
||||||
|
this.setState({qrCode: null, loading: false, ticket: null});
|
||||||
|
this.clearPolling();
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.setState({qrCode: null, loading: false, ticket: null});
|
||||||
|
this.clearPolling();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const {application, loginWidth = 320} = this.props;
|
||||||
|
const {loading, qrCode} = this.state;
|
||||||
|
return (
|
||||||
|
<div style={{width: loginWidth, margin: "0 auto", textAlign: "center", marginTop: 16}}>
|
||||||
|
{application.signinItems?.filter(item => item.name === "Logo").map(signinItem => this.props.renderFormItem(application, signinItem))}
|
||||||
|
{this.props.renderMethodChoiceBox()}
|
||||||
|
{application.signinItems?.filter(item => item.name === "Languages").map(signinItem => this.props.renderFormItem(application, signinItem))}
|
||||||
|
{loading ? (
|
||||||
|
<div style={{marginTop: 16}}>
|
||||||
|
<span>{i18next.t("login:Loading")}</span>
|
||||||
|
</div>
|
||||||
|
) : qrCode ? (
|
||||||
|
<div style={{marginTop: 2}}>
|
||||||
|
<img src={`data:image/png;base64,${qrCode}`} alt="WeChat QR code" style={{width: 250, height: 250}} />
|
||||||
|
<div style={{marginTop: 8}}>
|
||||||
|
<a onClick={e => {e.preventDefault(); this.fetchQrCode();}}>
|
||||||
|
{i18next.t("login:Refresh")}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
) : null}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default WeChatLoginPanel;
|
@@ -82,7 +82,7 @@ export function renderPasswordPopover(options, password) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function checkPasswordComplexity(password, options) {
|
export function checkPasswordComplexity(password, options) {
|
||||||
if (password.length === 0) {
|
if (!password?.length) {
|
||||||
return i18next.t("login:Please input your password!");
|
return i18next.t("login:Please input your password!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -20,7 +20,7 @@ import {CaptchaWidget} from "../CaptchaWidget";
|
|||||||
import {SafetyOutlined} from "@ant-design/icons";
|
import {SafetyOutlined} from "@ant-design/icons";
|
||||||
|
|
||||||
export const CaptchaModal = (props) => {
|
export const CaptchaModal = (props) => {
|
||||||
const {owner, name, visible, onOk, onCancel, isCurrentProvider} = props;
|
const {owner, name, visible, onOk, onUpdateToken, onCancel, isCurrentProvider, noModal} = props;
|
||||||
|
|
||||||
const [captchaType, setCaptchaType] = React.useState("none");
|
const [captchaType, setCaptchaType] = React.useState("none");
|
||||||
const [clientId, setClientId] = React.useState("");
|
const [clientId, setClientId] = React.useState("");
|
||||||
@@ -36,16 +36,16 @@ export const CaptchaModal = (props) => {
|
|||||||
const defaultInputRef = React.useRef(null);
|
const defaultInputRef = React.useRef(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (visible) {
|
if (visible || noModal) {
|
||||||
loadCaptcha();
|
loadCaptcha();
|
||||||
} else {
|
} else {
|
||||||
handleCancel();
|
handleCancel();
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
}
|
}
|
||||||
}, [visible]);
|
}, [visible, noModal]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (captchaToken !== "" && captchaType !== "Default") {
|
if (captchaToken !== "" && captchaType !== "Default" && !noModal) {
|
||||||
handleOk();
|
handleOk();
|
||||||
}
|
}
|
||||||
}, [captchaToken]);
|
}, [captchaToken]);
|
||||||
@@ -81,6 +81,36 @@ export const CaptchaModal = (props) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const renderDefaultCaptcha = () => {
|
const renderDefaultCaptcha = () => {
|
||||||
|
if (noModal) {
|
||||||
|
return (
|
||||||
|
<Row style={{textAlign: "center"}}>
|
||||||
|
<Col
|
||||||
|
style={{flex: noModal ? "70%" : "100%"}}>
|
||||||
|
<Input
|
||||||
|
ref={defaultInputRef}
|
||||||
|
value={captchaToken}
|
||||||
|
prefix={<SafetyOutlined />}
|
||||||
|
placeholder={i18next.t("general:Captcha")}
|
||||||
|
onChange={(e) => onChange(e.target.value)}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col
|
||||||
|
style={{
|
||||||
|
flex: noModal ? "30%" : "100%",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<img src={`data:image/png;base64,${captchaImg}`}
|
||||||
|
onClick={loadCaptcha}
|
||||||
|
style={{
|
||||||
|
borderRadius: "5px",
|
||||||
|
border: "1px solid #ccc",
|
||||||
|
marginBottom: "20px",
|
||||||
|
width: "100%",
|
||||||
|
}} alt="captcha" />
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
);
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<Col style={{textAlign: "center"}}>
|
<Col style={{textAlign: "center"}}>
|
||||||
<div style={{display: "inline-block"}}>
|
<div style={{display: "inline-block"}}>
|
||||||
@@ -113,6 +143,9 @@ export const CaptchaModal = (props) => {
|
|||||||
|
|
||||||
const onChange = (token) => {
|
const onChange = (token) => {
|
||||||
setCaptchaToken(token);
|
setCaptchaToken(token);
|
||||||
|
if (noModal) {
|
||||||
|
onUpdateToken?.(captchaType, token, clientSecret);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const renderCaptcha = () => {
|
const renderCaptcha = () => {
|
||||||
@@ -153,6 +186,10 @@ export const CaptchaModal = (props) => {
|
|||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (noModal) {
|
||||||
|
return renderCaptcha();
|
||||||
|
|
||||||
|
} else {
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
closable={true}
|
closable={true}
|
||||||
@@ -175,6 +212,7 @@ export const CaptchaModal = (props) => {
|
|||||||
</div>
|
</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CaptchaRule = {
|
export const CaptchaRule = {
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Upravit HTML hlavičky",
|
"Header HTML - Edit": "Upravit HTML hlavičky",
|
||||||
"Header HTML - Tooltip": "Přizpůsobit hlavičku vstupní stránky vaší aplikace",
|
"Header HTML - Tooltip": "Přizpůsobit hlavičku vstupní stránky vaší aplikace",
|
||||||
"Incremental": "Inkrementální",
|
"Incremental": "Inkrementální",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Vstup",
|
"Input": "Vstup",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Zadejte svou aplikaci!",
|
"Please input your application!": "Zadejte svou aplikaci!",
|
||||||
"Please input your organization!": "Zadejte svou organizaci!",
|
"Please input your organization!": "Zadejte svou organizaci!",
|
||||||
"Please select a HTML file": "Vyberte HTML soubor",
|
"Please select a HTML file": "Vyberte HTML soubor",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Náhodný",
|
"Random": "Náhodný",
|
||||||
"Real name": "Skutečné jméno",
|
"Real name": "Skutečné jméno",
|
||||||
"Redirect URL": "Přesměrovací URL",
|
"Redirect URL": "Přesměrovací URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Upravit Enforcer",
|
"Edit Enforcer": "Upravit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Nepodařilo se uložit",
|
"Failed to save": "Nepodařilo se uložit",
|
||||||
"Failed to sync": "Nepodařilo se synchronizovat",
|
"Failed to sync": "Nepodařilo se synchronizovat",
|
||||||
"Failed to verify": "Nepodařilo se ověřit",
|
"Failed to verify": "Nepodařilo se ověřit",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "URL ikony favicon použité na všech stránkách Casdoor organizace",
|
"Favicon - Tooltip": "URL ikony favicon použité na všech stránkách Casdoor organizace",
|
||||||
"First name": "Křestní jméno",
|
"First name": "Křestní jméno",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokeny",
|
"Tokens": "Tokeny",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transakce",
|
"Transactions": "Transakce",
|
||||||
|
"True": "True",
|
||||||
"Type": "Typ",
|
"Type": "Typ",
|
||||||
"Type - Tooltip": "Typ - Tooltip",
|
"Type - Tooltip": "Typ - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Vyberte organizaci pro přihlášení",
|
"Please select an organization to sign in": "Vyberte organizaci pro přihlášení",
|
||||||
"Please type an organization to sign in": "Zadejte organizaci pro přihlášení",
|
"Please type an organization to sign in": "Zadejte organizaci pro přihlášení",
|
||||||
"Redirecting, please wait.": "Přesměrování, prosím čekejte.",
|
"Redirecting, please wait.": "Přesměrování, prosím čekejte.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Přihlásit se",
|
"Sign In": "Přihlásit se",
|
||||||
"Sign in with Face ID": "Přihlásit se pomocí Face ID",
|
"Sign in with Face ID": "Přihlásit se pomocí Face ID",
|
||||||
"Sign in with WebAuthn": "Přihlásit se pomocí WebAuthn",
|
"Sign in with WebAuthn": "Přihlásit se pomocí WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "Zadaný údaj není platné telefonní číslo!",
|
"The input is not valid phone number!": "Zadaný údaj není platné telefonní číslo!",
|
||||||
"To access": "Pro přístup",
|
"To access": "Pro přístup",
|
||||||
"Verification code": "Ověřovací kód",
|
"Verification code": "Ověřovací kód",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "zaregistrujte se nyní",
|
"sign up now": "zaregistrujte se nyní",
|
||||||
"username, Email or phone": "uživatelské jméno, Email nebo telefon"
|
"username, Email or phone": "uživatelské jméno, Email nebo telefon"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Povolit skenování QR kódu WeChat Media Platform pro přihlášení",
|
"Use WeChat Media Platform in PC - Tooltip": "Povolit skenování QR kódu WeChat Media Platform pro přihlášení",
|
||||||
"Use WeChat Media Platform to login": "Použít WeChat Media Platform pro přihlášení",
|
"Use WeChat Media Platform to login": "Použít WeChat Media Platform pro přihlášení",
|
||||||
"Use WeChat Open Platform to login": "Použít WeChat Open Platform pro přihlášení",
|
"Use WeChat Open Platform to login": "Použít WeChat Open Platform pro přihlášení",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "Tok uživatele",
|
"User flow": "Tok uživatele",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Bitte geben Sie Ihre Anwendung ein!",
|
"Please input your application!": "Bitte geben Sie Ihre Anwendung ein!",
|
||||||
"Please input your organization!": "Bitte geben Sie Ihre Organisation ein!",
|
"Please input your organization!": "Bitte geben Sie Ihre Organisation ein!",
|
||||||
"Please select a HTML file": "Bitte wählen Sie eine HTML-Datei aus",
|
"Please select a HTML file": "Bitte wählen Sie eine HTML-Datei aus",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Weiterleitungs-URL",
|
"Redirect URL": "Weiterleitungs-URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Konnte nicht gespeichert werden",
|
"Failed to save": "Konnte nicht gespeichert werden",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon-URL, die auf allen Casdoor-Seiten der Organisation verwendet wird",
|
"Favicon - Tooltip": "Favicon-URL, die auf allen Casdoor-Seiten der Organisation verwendet wird",
|
||||||
"First name": "Vorname",
|
"First name": "Vorname",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Token",
|
"Tokens": "Token",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Umleitung, bitte warten.",
|
"Redirecting, please wait.": "Umleitung, bitte warten.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Anmelden",
|
"Sign In": "Anmelden",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Melden Sie sich mit WebAuthn an",
|
"Sign in with WebAuthn": "Melden Sie sich mit WebAuthn an",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "Zum Zugriff",
|
"To access": "Zum Zugriff",
|
||||||
"Verification code": "Verifizierungscode",
|
"Verification code": "Verifizierungscode",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Melde dich jetzt an",
|
"sign up now": "Melde dich jetzt an",
|
||||||
"username, Email or phone": "Benutzername, E-Mail oder Telefon"
|
"username, Email or phone": "Benutzername, E-Mail oder Telefon"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "¡Por favor, ingrese su solicitud!",
|
"Please input your application!": "¡Por favor, ingrese su solicitud!",
|
||||||
"Please input your organization!": "¡Por favor, ingrese su organización!",
|
"Please input your organization!": "¡Por favor, ingrese su organización!",
|
||||||
"Please select a HTML file": "Por favor, seleccione un archivo HTML",
|
"Please select a HTML file": "Por favor, seleccione un archivo HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redireccionar URL",
|
"Redirect URL": "Redireccionar URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "No se pudo guardar",
|
"Failed to save": "No se pudo guardar",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon (ícono de favoritos)",
|
"Favicon": "Favicon (ícono de favoritos)",
|
||||||
"Favicon - Tooltip": "URL del icono Favicon utilizado en todas las páginas de Casdoor de la organización",
|
"Favicon - Tooltip": "URL del icono Favicon utilizado en todas las páginas de Casdoor de la organización",
|
||||||
"First name": "Nombre de pila",
|
"First name": "Nombre de pila",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "Dirección URL",
|
"URL": "Dirección URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirigiendo, por favor espera.",
|
"Redirecting, please wait.": "Redirigiendo, por favor espera.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Iniciar sesión",
|
"Sign In": "Iniciar sesión",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Iniciar sesión con WebAuthn",
|
"Sign in with WebAuthn": "Iniciar sesión con WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "para acceder",
|
"To access": "para acceder",
|
||||||
"Verification code": "Código de verificación",
|
"Verification code": "Código de verificación",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn (Autenticación Web)",
|
"WebAuthn": "WebAuthn (Autenticación Web)",
|
||||||
"sign up now": "Regístrate ahora",
|
"sign up now": "Regístrate ahora",
|
||||||
"username, Email or phone": "Nombre de usuario, correo electrónico o teléfono"
|
"username, Email or phone": "Nombre de usuario, correo electrónico o teléfono"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "ویرایش HTML سربرگ",
|
"Header HTML - Edit": "ویرایش HTML سربرگ",
|
||||||
"Header HTML - Tooltip": "کد head صفحه ورود برنامه خود را سفارشی کنید",
|
"Header HTML - Tooltip": "کد head صفحه ورود برنامه خود را سفارشی کنید",
|
||||||
"Incremental": "افزایشی",
|
"Incremental": "افزایشی",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "ورودی",
|
"Input": "ورودی",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "لطفاً برنامه خود را وارد کنید!",
|
"Please input your application!": "لطفاً برنامه خود را وارد کنید!",
|
||||||
"Please input your organization!": "لطفاً سازمان خود را وارد کنید!",
|
"Please input your organization!": "لطفاً سازمان خود را وارد کنید!",
|
||||||
"Please select a HTML file": "لطفاً یک فایل HTML انتخاب کنید",
|
"Please select a HTML file": "لطفاً یک فایل HTML انتخاب کنید",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "تصادفی",
|
"Random": "تصادفی",
|
||||||
"Real name": "نام واقعی",
|
"Real name": "نام واقعی",
|
||||||
"Redirect URL": "آدرس بازگشت",
|
"Redirect URL": "آدرس بازگشت",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "ویرایش Enforcer",
|
"Edit Enforcer": "ویرایش Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "عدم موفقیت در ذخیره",
|
"Failed to save": "عدم موفقیت در ذخیره",
|
||||||
"Failed to sync": "عدم موفقیت در همگامسازی",
|
"Failed to sync": "عدم موفقیت در همگامسازی",
|
||||||
"Failed to verify": "عدم موفقیت در تأیید",
|
"Failed to verify": "عدم موفقیت در تأیید",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "آدرس آیکون Favicon استفاده شده در تمام صفحات Casdoor سازمان",
|
"Favicon - Tooltip": "آدرس آیکون Favicon استفاده شده در تمام صفحات Casdoor سازمان",
|
||||||
"First name": "نام",
|
"First name": "نام",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "توکنها",
|
"Tokens": "توکنها",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "تراکنشها",
|
"Transactions": "تراکنشها",
|
||||||
|
"True": "True",
|
||||||
"Type": "نوع",
|
"Type": "نوع",
|
||||||
"Type - Tooltip": "نوع - راهنمای ابزار",
|
"Type - Tooltip": "نوع - راهنمای ابزار",
|
||||||
"URL": "آدرس",
|
"URL": "آدرس",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "لطفاً یک سازمان برای ورود انتخاب کنید",
|
"Please select an organization to sign in": "لطفاً یک سازمان برای ورود انتخاب کنید",
|
||||||
"Please type an organization to sign in": "لطفاً یک سازمان برای ورود تایپ کنید",
|
"Please type an organization to sign in": "لطفاً یک سازمان برای ورود تایپ کنید",
|
||||||
"Redirecting, please wait.": "در حال هدایت، لطفاً صبر کنید.",
|
"Redirecting, please wait.": "در حال هدایت، لطفاً صبر کنید.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "ورود",
|
"Sign In": "ورود",
|
||||||
"Sign in with Face ID": "ورود با شناسه چهره",
|
"Sign in with Face ID": "ورود با شناسه چهره",
|
||||||
"Sign in with WebAuthn": "ورود با WebAuthn",
|
"Sign in with WebAuthn": "ورود با WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "ورودی شماره تلفن معتبر نیست!",
|
"The input is not valid phone number!": "ورودی شماره تلفن معتبر نیست!",
|
||||||
"To access": "برای دسترسی",
|
"To access": "برای دسترسی",
|
||||||
"Verification code": "کد تأیید",
|
"Verification code": "کد تأیید",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "ثبتنام کنید",
|
"sign up now": "ثبتنام کنید",
|
||||||
"username, Email or phone": "نام کاربری، ایمیل یا تلفن"
|
"username, Email or phone": "نام کاربری، ایمیل یا تلفن"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "آیا اجازه اسکن کد QR پلتفرم رسانه WeChat برای ورود داده شود",
|
"Use WeChat Media Platform in PC - Tooltip": "آیا اجازه اسکن کد QR پلتفرم رسانه WeChat برای ورود داده شود",
|
||||||
"Use WeChat Media Platform to login": "استفاده از پلتفرم رسانه WeChat برای ورود",
|
"Use WeChat Media Platform to login": "استفاده از پلتفرم رسانه WeChat برای ورود",
|
||||||
"Use WeChat Open Platform to login": "استفاده از پلتفرم باز WeChat برای ورود",
|
"Use WeChat Open Platform to login": "استفاده از پلتفرم باز WeChat برای ورود",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "جریان کاربر",
|
"User flow": "جریان کاربر",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incrémentale",
|
"Incremental": "Incrémentale",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Saisie",
|
"Input": "Saisie",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Veuillez saisir votre application !",
|
"Please input your application!": "Veuillez saisir votre application !",
|
||||||
"Please input your organization!": "Veuillez saisir votre organisation !",
|
"Please input your organization!": "Veuillez saisir votre organisation !",
|
||||||
"Please select a HTML file": "Veuillez sélectionner un fichier HTML",
|
"Please select a HTML file": "Veuillez sélectionner un fichier HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Aléatoire",
|
"Random": "Aléatoire",
|
||||||
"Real name": "Nom complet",
|
"Real name": "Nom complet",
|
||||||
"Redirect URL": "URL de redirection",
|
"Redirect URL": "URL de redirection",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Éditer l'exécuteur",
|
"Edit Enforcer": "Éditer l'exécuteur",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Échec de sauvegarde",
|
"Failed to save": "Échec de sauvegarde",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Échec de la vérification",
|
"Failed to verify": "Échec de la vérification",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Icône du site",
|
"Favicon": "Icône du site",
|
||||||
"Favicon - Tooltip": "L'URL de l'icône « favicon » utilisée dans toutes les pages Casdoor de l'organisation",
|
"Favicon - Tooltip": "L'URL de l'icône « favicon » utilisée dans toutes les pages Casdoor de l'organisation",
|
||||||
"First name": "Prénom",
|
"First name": "Prénom",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Jetons",
|
"Tokens": "Jetons",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Infobulle",
|
"Type - Tooltip": "Type - Infobulle",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Veuillez choisir une organisation pour vous connecter",
|
"Please select an organization to sign in": "Veuillez choisir une organisation pour vous connecter",
|
||||||
"Please type an organization to sign in": "Veuillez entrer une organisation pour vous connecter",
|
"Please type an organization to sign in": "Veuillez entrer une organisation pour vous connecter",
|
||||||
"Redirecting, please wait.": "Redirection en cours, veuillez patienter.",
|
"Redirecting, please wait.": "Redirection en cours, veuillez patienter.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Se connecter",
|
"Sign In": "Se connecter",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Connectez-vous avec WebAuthn",
|
"Sign in with WebAuthn": "Connectez-vous avec WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "Pour accéder à",
|
"To access": "Pour accéder à",
|
||||||
"Verification code": "Code de vérification",
|
"Verification code": "Code de vérification",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Inscrivez-vous maintenant",
|
"sign up now": "Inscrivez-vous maintenant",
|
||||||
"username, Email or phone": "identifiant, adresse e-mail ou téléphone"
|
"username, Email or phone": "identifiant, adresse e-mail ou téléphone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Silakan masukkan aplikasi Anda!",
|
"Please input your application!": "Silakan masukkan aplikasi Anda!",
|
||||||
"Please input your organization!": "Silakan masukkan organisasi Anda!",
|
"Please input your organization!": "Silakan masukkan organisasi Anda!",
|
||||||
"Please select a HTML file": "Silahkan pilih file HTML",
|
"Please select a HTML file": "Silahkan pilih file HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Mengalihkan URL",
|
"Redirect URL": "Mengalihkan URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Gagal menyimpan",
|
"Failed to save": "Gagal menyimpan",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "URL ikon Favicon yang digunakan di semua halaman Casdoor organisasi",
|
"Favicon - Tooltip": "URL ikon Favicon yang digunakan di semua halaman Casdoor organisasi",
|
||||||
"First name": "Nama depan",
|
"First name": "Nama depan",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Token-token",
|
"Tokens": "Token-token",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Mengalihkan, harap tunggu.",
|
"Redirecting, please wait.": "Mengalihkan, harap tunggu.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Masuk",
|
"Sign In": "Masuk",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Masuk dengan WebAuthn",
|
"Sign in with WebAuthn": "Masuk dengan WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "Untuk mengakses",
|
"To access": "Untuk mengakses",
|
||||||
"Verification code": "Kode verifikasi",
|
"Verification code": "Kode verifikasi",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Daftar sekarang",
|
"sign up now": "Daftar sekarang",
|
||||||
"username, Email or phone": "nama pengguna, Email atau nomor telepon"
|
"username, Email or phone": "nama pengguna, Email atau nomor telepon"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "あなたの申請を入力してください!",
|
"Please input your application!": "あなたの申請を入力してください!",
|
||||||
"Please input your organization!": "あなたの組織を入力してください!",
|
"Please input your organization!": "あなたの組織を入力してください!",
|
||||||
"Please select a HTML file": "HTMLファイルを選択してください",
|
"Please select a HTML file": "HTMLファイルを選択してください",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "リダイレクトURL",
|
"Redirect URL": "リダイレクトURL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "保存に失敗しました",
|
"Failed to save": "保存に失敗しました",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "ファビコン",
|
"Favicon": "ファビコン",
|
||||||
"Favicon - Tooltip": "組織のすべてのCasdoorページに使用されるFaviconアイコンのURL",
|
"Favicon - Tooltip": "組織のすべてのCasdoorページに使用されるFaviconアイコンのURL",
|
||||||
"First name": "名前",
|
"First name": "名前",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "トークン",
|
"Tokens": "トークン",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "リダイレクト中、お待ちください。",
|
"Redirecting, please wait.": "リダイレクト中、お待ちください。",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "サインイン",
|
"Sign In": "サインイン",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "WebAuthnでサインインしてください",
|
"Sign in with WebAuthn": "WebAuthnでサインインしてください",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "アクセスする",
|
"To access": "アクセスする",
|
||||||
"Verification code": "確認コード",
|
"Verification code": "確認コード",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "今すぐサインアップ",
|
"sign up now": "今すぐサインアップ",
|
||||||
"username, Email or phone": "ユーザー名、メールアドレス、または電話番号"
|
"username, Email or phone": "ユーザー名、メールアドレス、または電話番号"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "당신의 신청서를 입력해주세요!",
|
"Please input your application!": "당신의 신청서를 입력해주세요!",
|
||||||
"Please input your organization!": "귀하의 조직을 입력해 주세요!",
|
"Please input your organization!": "귀하의 조직을 입력해 주세요!",
|
||||||
"Please select a HTML file": "HTML 파일을 선택해 주세요",
|
"Please select a HTML file": "HTML 파일을 선택해 주세요",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "리디렉트 URL",
|
"Redirect URL": "리디렉트 URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "저장에 실패했습니다",
|
"Failed to save": "저장에 실패했습니다",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "파비콘",
|
"Favicon": "파비콘",
|
||||||
"Favicon - Tooltip": "조직의 모든 Casdoor 페이지에서 사용되는 Favicon 아이콘 URL",
|
"Favicon - Tooltip": "조직의 모든 Casdoor 페이지에서 사용되는 Favicon 아이콘 URL",
|
||||||
"First name": "이름",
|
"First name": "이름",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "토큰",
|
"Tokens": "토큰",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "리디렉팅 중입니다. 잠시 기다려주세요.",
|
"Redirecting, please wait.": "리디렉팅 중입니다. 잠시 기다려주세요.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "로그인",
|
"Sign In": "로그인",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "WebAuthn으로 로그인하세요",
|
"Sign in with WebAuthn": "WebAuthn으로 로그인하세요",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "접근하다",
|
"To access": "접근하다",
|
||||||
"Verification code": "인증 코드",
|
"Verification code": "인증 코드",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "지금 가입하세요",
|
"sign up now": "지금 가입하세요",
|
||||||
"username, Email or phone": "유저명, 이메일 또는 전화번호"
|
"username, Email or phone": "유저명, 이메일 또는 전화번호"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Por favor, insira o nome da sua aplicação!",
|
"Please input your application!": "Por favor, insira o nome da sua aplicação!",
|
||||||
"Please input your organization!": "Por favor, insira o nome da sua organização!",
|
"Please input your organization!": "Por favor, insira o nome da sua organização!",
|
||||||
"Please select a HTML file": "Por favor, selecione um arquivo HTML",
|
"Please select a HTML file": "Por favor, selecione um arquivo HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Aleatório",
|
"Random": "Aleatório",
|
||||||
"Real name": "Nome real",
|
"Real name": "Nome real",
|
||||||
"Redirect URL": "URL de redirecionamento",
|
"Redirect URL": "URL de redirecionamento",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Editar Executor",
|
"Edit Enforcer": "Editar Executor",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Falha ao salvar",
|
"Failed to save": "Falha ao salvar",
|
||||||
"Failed to sync": "Falha ao sincronizar",
|
"Failed to sync": "Falha ao sincronizar",
|
||||||
"Failed to verify": "Falha ao verificar",
|
"Failed to verify": "Falha ao verificar",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "URL do ícone de favicon usado em todas as páginas do Casdoor da organização",
|
"Favicon - Tooltip": "URL do ícone de favicon usado em todas as páginas do Casdoor da organização",
|
||||||
"First name": "Nome",
|
"First name": "Nome",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Tipo",
|
"Type": "Tipo",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecionando, por favor aguarde.",
|
"Redirecting, please wait.": "Redirecionando, por favor aguarde.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Entrar",
|
"Sign In": "Entrar",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Entrar com WebAuthn",
|
"Sign in with WebAuthn": "Entrar com WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "Para acessar",
|
"To access": "Para acessar",
|
||||||
"Verification code": "Código de verificação",
|
"Verification code": "Código de verificação",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Inscreva-se agora",
|
"sign up now": "Inscreva-se agora",
|
||||||
"username, Email or phone": "Nome de usuário, email ou telefone"
|
"username, Email or phone": "Nome de usuário, email ou telefone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Последовательный",
|
"Incremental": "Последовательный",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Пожалуйста, введите свою заявку!",
|
"Please input your application!": "Пожалуйста, введите свою заявку!",
|
||||||
"Please input your organization!": "Пожалуйста, введите название вашей организации!",
|
"Please input your organization!": "Пожалуйста, введите название вашей организации!",
|
||||||
"Please select a HTML file": "Пожалуйста, выберите файл HTML",
|
"Please select a HTML file": "Пожалуйста, выберите файл HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Случайный",
|
"Random": "Случайный",
|
||||||
"Real name": "Полное имя",
|
"Real name": "Полное имя",
|
||||||
"Redirect URL": "Перенаправление URL",
|
"Redirect URL": "Перенаправление URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Редактировать контролёра доступа",
|
"Edit Enforcer": "Редактировать контролёра доступа",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Не удалось сохранить",
|
"Failed to save": "Не удалось сохранить",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Фавикон",
|
"Favicon": "Фавикон",
|
||||||
"Favicon - Tooltip": "URL иконки Favicon, используемый на всех страницах организации Casdoor",
|
"Favicon - Tooltip": "URL иконки Favicon, используемый на всех страницах организации Casdoor",
|
||||||
"First name": "Имя",
|
"First name": "Имя",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Токены",
|
"Tokens": "Токены",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Перенаправление, пожалуйста, подождите.",
|
"Redirecting, please wait.": "Перенаправление, пожалуйста, подождите.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Войти",
|
"Sign In": "Войти",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Войти с помощью WebAuthn",
|
"Sign in with WebAuthn": "Войти с помощью WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "Для доступа",
|
"To access": "Для доступа",
|
||||||
"Verification code": "Код подтверждения",
|
"Verification code": "Код подтверждения",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Зарегистрируйтесь сейчас",
|
"sign up now": "Зарегистрируйтесь сейчас",
|
||||||
"username, Email or phone": "имя пользователя, электронная почта или телефон"
|
"username, Email or phone": "имя пользователя, электронная почта или телефон"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "HTML hlavičky - Upraviť",
|
"Header HTML - Edit": "HTML hlavičky - Upraviť",
|
||||||
"Header HTML - Tooltip": "Vlastný HTML kód pre hlavičku vašej vstupnej stránky aplikácie",
|
"Header HTML - Tooltip": "Vlastný HTML kód pre hlavičku vašej vstupnej stránky aplikácie",
|
||||||
"Incremental": "Postupný",
|
"Incremental": "Postupný",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Vstup",
|
"Input": "Vstup",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Zadajte svoju aplikáciu!",
|
"Please input your application!": "Zadajte svoju aplikáciu!",
|
||||||
"Please input your organization!": "Zadajte svoju organizáciu!",
|
"Please input your organization!": "Zadajte svoju organizáciu!",
|
||||||
"Please select a HTML file": "Vyberte HTML súbor",
|
"Please select a HTML file": "Vyberte HTML súbor",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Náhodný",
|
"Random": "Náhodný",
|
||||||
"Real name": "Skutočné meno",
|
"Real name": "Skutočné meno",
|
||||||
"Redirect URL": "URL presmerovania",
|
"Redirect URL": "URL presmerovania",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Upraviť vynútiteľa",
|
"Edit Enforcer": "Upraviť vynútiteľa",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Nepodarilo sa uložiť",
|
"Failed to save": "Nepodarilo sa uložiť",
|
||||||
"Failed to sync": "Nepodarilo sa synchronizovať",
|
"Failed to sync": "Nepodarilo sa synchronizovať",
|
||||||
"Failed to verify": "Nepodarilo sa overiť",
|
"Failed to verify": "Nepodarilo sa overiť",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "URL ikony favicon používaná na všetkých stránkach Casdoor organizácie",
|
"Favicon - Tooltip": "URL ikony favicon používaná na všetkých stránkach Casdoor organizácie",
|
||||||
"First name": "Meno",
|
"First name": "Meno",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokeny",
|
"Tokens": "Tokeny",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transakcie",
|
"Transactions": "Transakcie",
|
||||||
|
"True": "True",
|
||||||
"Type": "Typ",
|
"Type": "Typ",
|
||||||
"Type - Tooltip": "Typ",
|
"Type - Tooltip": "Typ",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Vyberte organizáciu na prihlásenie",
|
"Please select an organization to sign in": "Vyberte organizáciu na prihlásenie",
|
||||||
"Please type an organization to sign in": "Zadajte organizáciu na prihlásenie",
|
"Please type an organization to sign in": "Zadajte organizáciu na prihlásenie",
|
||||||
"Redirecting, please wait.": "Prebieha presmerovanie, prosím čakajte.",
|
"Redirecting, please wait.": "Prebieha presmerovanie, prosím čakajte.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Prihlásiť sa",
|
"Sign In": "Prihlásiť sa",
|
||||||
"Sign in with Face ID": "Prihlásiť sa pomocou Face ID",
|
"Sign in with Face ID": "Prihlásiť sa pomocou Face ID",
|
||||||
"Sign in with WebAuthn": "Prihlásiť sa pomocou WebAuthn",
|
"Sign in with WebAuthn": "Prihlásiť sa pomocou WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "Zadaný údaj nie je platné telefónne číslo!",
|
"The input is not valid phone number!": "Zadaný údaj nie je platné telefónne číslo!",
|
||||||
"To access": "Na prístup",
|
"To access": "Na prístup",
|
||||||
"Verification code": "Overovací kód",
|
"Verification code": "Overovací kód",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "zaregistrujte sa teraz",
|
"sign up now": "zaregistrujte sa teraz",
|
||||||
"username, Email or phone": "meno používateľa, Email alebo telefón"
|
"username, Email or phone": "meno používateľa, Email alebo telefón"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Či povoliť skenovanie QR kódu WeChat Media Platform na prihlásenie",
|
"Use WeChat Media Platform in PC - Tooltip": "Či povoliť skenovanie QR kódu WeChat Media Platform na prihlásenie",
|
||||||
"Use WeChat Media Platform to login": "Použiť WeChat Media Platform na prihlásenie",
|
"Use WeChat Media Platform to login": "Použiť WeChat Media Platform na prihlásenie",
|
||||||
"Use WeChat Open Platform to login": "Použiť WeChat Open Platform na prihlásenie",
|
"Use WeChat Open Platform to login": "Použiť WeChat Open Platform na prihlásenie",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "Tok používateľa",
|
"User flow": "Tok používateľa",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Real name",
|
"Real name": "Real name",
|
||||||
"Redirect URL": "Redirect URL",
|
"Redirect URL": "Redirect URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Redirecting, please wait.",
|
"Redirecting, please wait.": "Redirecting, please wait.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Sign In",
|
"Sign In": "Sign In",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "sign up now",
|
"sign up now": "sign up now",
|
||||||
"username, Email or phone": "username, Email or phone"
|
"username, Email or phone": "username, Email or phone"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Incremental",
|
"Incremental": "Incremental",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Please input your application!",
|
"Please input your application!": "Please input your application!",
|
||||||
"Please input your organization!": "Please input your organization!",
|
"Please input your organization!": "Please input your organization!",
|
||||||
"Please select a HTML file": "Please select a HTML file",
|
"Please select a HTML file": "Please select a HTML file",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Random",
|
"Random": "Random",
|
||||||
"Real name": "Gerçek isim",
|
"Real name": "Gerçek isim",
|
||||||
"Redirect URL": "Yönlendirme URL'si",
|
"Redirect URL": "Yönlendirme URL'si",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Failed to save",
|
"Failed to save": "Failed to save",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Doğrulama başarısız oldu",
|
"Failed to verify": "Doğrulama başarısız oldu",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
"Favicon - Tooltip": "Favicon icon URL used in all Casdoor pages of the organization",
|
||||||
"First name": "İsim",
|
"First name": "İsim",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Tokens",
|
"Tokens": "Tokens",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Yönlendiriliyor, lütfen bekleyiniz.",
|
"Redirecting, please wait.": "Yönlendiriliyor, lütfen bekleyiniz.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Oturum aç",
|
"Sign In": "Oturum aç",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
"Sign in with WebAuthn": "Sign in with WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "To access",
|
"To access": "To access",
|
||||||
"Verification code": "Verification code",
|
"Verification code": "Verification code",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "hemen kaydolun",
|
"sign up now": "hemen kaydolun",
|
||||||
"username, Email or phone": "kullanıcı adınız, Eposta adresiniz ve telefon numaranız"
|
"username, Email or phone": "kullanıcı adınız, Eposta adresiniz ve telefon numaranız"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "HTML-код заголовка – Редагувати",
|
"Header HTML - Edit": "HTML-код заголовка – Редагувати",
|
||||||
"Header HTML - Tooltip": "Налаштуйте тег head на сторінці входу до програми",
|
"Header HTML - Tooltip": "Налаштуйте тег head на сторінці входу до програми",
|
||||||
"Incremental": "Інкрементний",
|
"Incremental": "Інкрементний",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Введення",
|
"Input": "Введення",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Будь ласка, введіть свою заявку!",
|
"Please input your application!": "Будь ласка, введіть свою заявку!",
|
||||||
"Please input your organization!": "Будь ласка, введіть вашу організацію!",
|
"Please input your organization!": "Будь ласка, введіть вашу організацію!",
|
||||||
"Please select a HTML file": "Виберіть файл HTML",
|
"Please select a HTML file": "Виберіть файл HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Випадковий",
|
"Random": "Випадковий",
|
||||||
"Real name": "Справжнє ім'я",
|
"Real name": "Справжнє ім'я",
|
||||||
"Redirect URL": "URL-адреса перенаправлення",
|
"Redirect URL": "URL-адреса перенаправлення",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Редагувати Enforcer",
|
"Edit Enforcer": "Редагувати Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Не вдалося зберегти",
|
"Failed to save": "Не вдалося зберегти",
|
||||||
"Failed to sync": "Не вдалося синхронізувати",
|
"Failed to sync": "Не вдалося синхронізувати",
|
||||||
"Failed to verify": "Не вдалося перевірити",
|
"Failed to verify": "Не вдалося перевірити",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "URL-адреса піктограми Favicon, яка використовується на всіх сторінках Casdoor організації",
|
"Favicon - Tooltip": "URL-адреса піктограми Favicon, яка використовується на всіх сторінках Casdoor організації",
|
||||||
"First name": "Ім'я",
|
"First name": "Ім'я",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Жетони",
|
"Tokens": "Жетони",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "транзакції",
|
"Transactions": "транзакції",
|
||||||
|
"True": "True",
|
||||||
"Type": "Тип",
|
"Type": "Тип",
|
||||||
"Type - Tooltip": "Тип - підказка",
|
"Type - Tooltip": "Тип - підказка",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Виберіть організацію для входу",
|
"Please select an organization to sign in": "Виберіть організацію для входу",
|
||||||
"Please type an organization to sign in": "Будь ласка, введіть організацію, щоб увійти",
|
"Please type an organization to sign in": "Будь ласка, введіть організацію, щоб увійти",
|
||||||
"Redirecting, please wait.": "Перенаправлення, будь ласка, зачекайте.",
|
"Redirecting, please wait.": "Перенаправлення, будь ласка, зачекайте.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Увійти",
|
"Sign In": "Увійти",
|
||||||
"Sign in with Face ID": "Увійдіть за допомогою Face ID",
|
"Sign in with Face ID": "Увійдіть за допомогою Face ID",
|
||||||
"Sign in with WebAuthn": "Увійдіть за допомогою WebAuthn",
|
"Sign in with WebAuthn": "Увійдіть за допомогою WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "Введений недійсний номер телефону!",
|
"The input is not valid phone number!": "Введений недійсний номер телефону!",
|
||||||
"To access": "Доступу",
|
"To access": "Доступу",
|
||||||
"Verification code": "Код підтвердження",
|
"Verification code": "Код підтвердження",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Зареєструйся зараз",
|
"sign up now": "Зареєструйся зараз",
|
||||||
"username, Email or phone": "ім'я користувача, електронну пошту або телефон"
|
"username, Email or phone": "ім'я користувача, електронну пошту або телефон"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Чи дозволяти сканування QR-коду WeChat Media Platform для входу",
|
"Use WeChat Media Platform in PC - Tooltip": "Чи дозволяти сканування QR-коду WeChat Media Platform для входу",
|
||||||
"Use WeChat Media Platform to login": "Використовуйте медіаплатформу WeChat для входу",
|
"Use WeChat Media Platform to login": "Використовуйте медіаплатформу WeChat для входу",
|
||||||
"Use WeChat Open Platform to login": "Використовуйте відкриту платформу WeChat для входу",
|
"Use WeChat Open Platform to login": "Використовуйте відкриту платформу WeChat для входу",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "Потік користувачів",
|
"User flow": "Потік користувачів",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - Edit",
|
"Header HTML - Edit": "Header HTML - Edit",
|
||||||
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
"Header HTML - Tooltip": "Custom the head tag of your application entry page",
|
||||||
"Incremental": "Tăng",
|
"Incremental": "Tăng",
|
||||||
|
"Inline": "Inline",
|
||||||
"Input": "Input",
|
"Input": "Input",
|
||||||
"Internet-Only": "Internet-Only",
|
"Internet-Only": "Internet-Only",
|
||||||
"Invalid characters in application name": "Invalid characters in application name",
|
"Invalid characters in application name": "Invalid characters in application name",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "Vui lòng nhập ứng dụng của bạn!",
|
"Please input your application!": "Vui lòng nhập ứng dụng của bạn!",
|
||||||
"Please input your organization!": "Vui lòng nhập tổ chức của bạn!",
|
"Please input your organization!": "Vui lòng nhập tổ chức của bạn!",
|
||||||
"Please select a HTML file": "Vui lòng chọn tệp HTML",
|
"Please select a HTML file": "Vui lòng chọn tệp HTML",
|
||||||
|
"Pop up": "Pop up",
|
||||||
"Random": "Ngẫu nhiên",
|
"Random": "Ngẫu nhiên",
|
||||||
"Real name": "Tên thật",
|
"Real name": "Tên thật",
|
||||||
"Redirect URL": "Chuyển hướng URL",
|
"Redirect URL": "Chuyển hướng URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "CAD",
|
"CAD": "CAD",
|
||||||
"CHF": "CHF",
|
"CHF": "CHF",
|
||||||
"CNY": "CNY",
|
"CNY": "CNY",
|
||||||
|
"CZK": "CZK",
|
||||||
|
"DKK": "DKK",
|
||||||
"EUR": "EUR",
|
"EUR": "EUR",
|
||||||
"GBP": "GBP",
|
"GBP": "GBP",
|
||||||
"HKD": "HKD",
|
"HKD": "HKD",
|
||||||
|
"HUF": "HUF",
|
||||||
|
"INR": "INR",
|
||||||
"JPY": "JPY",
|
"JPY": "JPY",
|
||||||
|
"KRW": "KRW",
|
||||||
|
"MXN": "MXN",
|
||||||
|
"MYR": "MYR",
|
||||||
|
"NOK": "NOK",
|
||||||
|
"PLN": "PLN",
|
||||||
|
"RUB": "RUB",
|
||||||
|
"SEK": "SEK",
|
||||||
"SGD": "SGD",
|
"SGD": "SGD",
|
||||||
"USD": "USD"
|
"THB": "THB",
|
||||||
|
"TRY": "TRY",
|
||||||
|
"TWD": "TWD",
|
||||||
|
"USD": "USD",
|
||||||
|
"ZAR": "ZAR"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "Edit Enforcer",
|
"Edit Enforcer": "Edit Enforcer",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "Không thể lưu lại",
|
"Failed to save": "Không thể lưu lại",
|
||||||
"Failed to sync": "Failed to sync",
|
"Failed to sync": "Failed to sync",
|
||||||
"Failed to verify": "Failed to verify",
|
"Failed to verify": "Failed to verify",
|
||||||
|
"False": "False",
|
||||||
"Favicon": "Favicon",
|
"Favicon": "Favicon",
|
||||||
"Favicon - Tooltip": "URL biểu tượng Favicon được sử dụng trong tất cả các trang của tổ chức Casdoor",
|
"Favicon - Tooltip": "URL biểu tượng Favicon được sử dụng trong tất cả các trang của tổ chức Casdoor",
|
||||||
"First name": "Tên",
|
"First name": "Tên",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "Mã thông báo",
|
"Tokens": "Mã thông báo",
|
||||||
"Tour": "Tour",
|
"Tour": "Tour",
|
||||||
"Transactions": "Transactions",
|
"Transactions": "Transactions",
|
||||||
|
"True": "True",
|
||||||
"Type": "Type",
|
"Type": "Type",
|
||||||
"Type - Tooltip": "Type - Tooltip",
|
"Type - Tooltip": "Type - Tooltip",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "Please select an organization to sign in",
|
"Please select an organization to sign in": "Please select an organization to sign in",
|
||||||
"Please type an organization to sign in": "Please type an organization to sign in",
|
"Please type an organization to sign in": "Please type an organization to sign in",
|
||||||
"Redirecting, please wait.": "Đang chuyển hướng, vui lòng đợi.",
|
"Redirecting, please wait.": "Đang chuyển hướng, vui lòng đợi.",
|
||||||
|
"Refresh": "Refresh",
|
||||||
"Sign In": "Đăng nhập",
|
"Sign In": "Đăng nhập",
|
||||||
"Sign in with Face ID": "Sign in with Face ID",
|
"Sign in with Face ID": "Sign in with Face ID",
|
||||||
"Sign in with WebAuthn": "Đăng nhập với WebAuthn",
|
"Sign in with WebAuthn": "Đăng nhập với WebAuthn",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "The input is not valid phone number!",
|
"The input is not valid phone number!": "The input is not valid phone number!",
|
||||||
"To access": "Để truy cập",
|
"To access": "Để truy cập",
|
||||||
"Verification code": "Mã xác thực",
|
"Verification code": "Mã xác thực",
|
||||||
|
"WeChat": "WeChat",
|
||||||
"WebAuthn": "WebAuthn",
|
"WebAuthn": "WebAuthn",
|
||||||
"sign up now": "Đăng ký ngay bây giờ",
|
"sign up now": "Đăng ký ngay bây giờ",
|
||||||
"username, Email or phone": "Tên đăng nhập, Email hoặc điện thoại"
|
"username, Email or phone": "Tên đăng nhập, Email hoặc điện thoại"
|
||||||
@@ -973,6 +994,8 @@
|
|||||||
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
"Use WeChat Media Platform in PC - Tooltip": "Whether to allow scanning WeChat Media Platform QR code to login",
|
||||||
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
"Use WeChat Media Platform to login": "Use WeChat Media Platform to login",
|
||||||
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
"Use WeChat Open Platform to login": "Use WeChat Open Platform to login",
|
||||||
|
"Use global endpoint": "Use global endpoint",
|
||||||
|
"Use global endpoint - Tooltip": "Use global endpoint - Tooltip",
|
||||||
"Use id as name": "Use id as name",
|
"Use id as name": "Use id as name",
|
||||||
"Use id as name - Tooltip": "Use id as user's name",
|
"Use id as name - Tooltip": "Use id as user's name",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
"Header HTML - Edit": "Header HTML - 编辑",
|
"Header HTML - Edit": "Header HTML - 编辑",
|
||||||
"Header HTML - Tooltip": "自定义应用页面的head标签",
|
"Header HTML - Tooltip": "自定义应用页面的head标签",
|
||||||
"Incremental": "递增",
|
"Incremental": "递增",
|
||||||
|
"Inline": "内嵌",
|
||||||
"Input": "输入",
|
"Input": "输入",
|
||||||
"Internet-Only": "外网启用",
|
"Internet-Only": "外网启用",
|
||||||
"Invalid characters in application name": "应用名称内有非法字符",
|
"Invalid characters in application name": "应用名称内有非法字符",
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
"Please input your application!": "请输入你的应用",
|
"Please input your application!": "请输入你的应用",
|
||||||
"Please input your organization!": "请输入你的组织",
|
"Please input your organization!": "请输入你的组织",
|
||||||
"Please select a HTML file": "请选择一个HTML文件",
|
"Please select a HTML file": "请选择一个HTML文件",
|
||||||
|
"Pop up": "弹框",
|
||||||
"Random": "随机",
|
"Random": "随机",
|
||||||
"Real name": "真实姓名",
|
"Real name": "真实姓名",
|
||||||
"Redirect URL": "重定向 URL",
|
"Redirect URL": "重定向 URL",
|
||||||
@@ -177,12 +179,27 @@
|
|||||||
"CAD": "加拿大元",
|
"CAD": "加拿大元",
|
||||||
"CHF": "瑞士法郎",
|
"CHF": "瑞士法郎",
|
||||||
"CNY": "人民币",
|
"CNY": "人民币",
|
||||||
|
"CZK": "捷克克朗",
|
||||||
|
"DKK": "丹麦克朗",
|
||||||
"EUR": "欧元",
|
"EUR": "欧元",
|
||||||
"GBP": "英镑",
|
"GBP": "英镑",
|
||||||
"HKD": "港币",
|
"HKD": "港币",
|
||||||
|
"HUF": "匈牙利福林",
|
||||||
|
"INR": "印度卢比",
|
||||||
"JPY": "日元",
|
"JPY": "日元",
|
||||||
|
"KRW": "韩元",
|
||||||
|
"MXN": "墨西哥比索",
|
||||||
|
"MYR": "马来西亚林吉特",
|
||||||
|
"NOK": "挪威克朗",
|
||||||
|
"PLN": "波兰兹罗提",
|
||||||
|
"RUB": "俄罗斯卢布",
|
||||||
|
"SEK": "瑞典克朗",
|
||||||
"SGD": "新加坡元",
|
"SGD": "新加坡元",
|
||||||
"USD": "美元"
|
"THB": "泰铢",
|
||||||
|
"TRY": "土耳其里拉",
|
||||||
|
"TWD": "新台币",
|
||||||
|
"USD": "美元",
|
||||||
|
"ZAR": "南非兰特"
|
||||||
},
|
},
|
||||||
"enforcer": {
|
"enforcer": {
|
||||||
"Edit Enforcer": "编辑Casbin执行器",
|
"Edit Enforcer": "编辑Casbin执行器",
|
||||||
@@ -280,6 +297,7 @@
|
|||||||
"Failed to save": "保存失败",
|
"Failed to save": "保存失败",
|
||||||
"Failed to sync": "同步失败",
|
"Failed to sync": "同步失败",
|
||||||
"Failed to verify": "验证失败",
|
"Failed to verify": "验证失败",
|
||||||
|
"False": "假",
|
||||||
"Favicon": "组织Favicon",
|
"Favicon": "组织Favicon",
|
||||||
"Favicon - Tooltip": "该组织所有Casdoor页面中所使用的Favicon图标URL",
|
"Favicon - Tooltip": "该组织所有Casdoor页面中所使用的Favicon图标URL",
|
||||||
"First name": "名字",
|
"First name": "名字",
|
||||||
@@ -429,6 +447,7 @@
|
|||||||
"Tokens": "令牌",
|
"Tokens": "令牌",
|
||||||
"Tour": "引导",
|
"Tour": "引导",
|
||||||
"Transactions": "交易",
|
"Transactions": "交易",
|
||||||
|
"True": "真",
|
||||||
"Type": "类型",
|
"Type": "类型",
|
||||||
"Type - Tooltip": "类型",
|
"Type - Tooltip": "类型",
|
||||||
"URL": "链接",
|
"URL": "链接",
|
||||||
@@ -553,6 +572,7 @@
|
|||||||
"Please select an organization to sign in": "请选择要登录的组织",
|
"Please select an organization to sign in": "请选择要登录的组织",
|
||||||
"Please type an organization to sign in": "请输入要登录的组织",
|
"Please type an organization to sign in": "请输入要登录的组织",
|
||||||
"Redirecting, please wait.": "正在跳转, 请稍等.",
|
"Redirecting, please wait.": "正在跳转, 请稍等.",
|
||||||
|
"Refresh": "刷新",
|
||||||
"Sign In": "登录",
|
"Sign In": "登录",
|
||||||
"Sign in with Face ID": "人脸登录",
|
"Sign in with Face ID": "人脸登录",
|
||||||
"Sign in with WebAuthn": "WebAuthn登录",
|
"Sign in with WebAuthn": "WebAuthn登录",
|
||||||
@@ -566,6 +586,7 @@
|
|||||||
"The input is not valid phone number!": "您输入的手机号有误!",
|
"The input is not valid phone number!": "您输入的手机号有误!",
|
||||||
"To access": "访问",
|
"To access": "访问",
|
||||||
"Verification code": "验证码",
|
"Verification code": "验证码",
|
||||||
|
"WeChat": "微信",
|
||||||
"WebAuthn": "Web身份验证",
|
"WebAuthn": "Web身份验证",
|
||||||
"sign up now": "立即注册",
|
"sign up now": "立即注册",
|
||||||
"username, Email or phone": "用户名、Email或手机号"
|
"username, Email or phone": "用户名、Email或手机号"
|
||||||
@@ -948,7 +969,7 @@
|
|||||||
"Signup HTML - Edit": "注册页面HTML - 编辑",
|
"Signup HTML - Edit": "注册页面HTML - 编辑",
|
||||||
"Signup HTML - Tooltip": "自定义HTML,用于替换默认的注册页面样式",
|
"Signup HTML - Tooltip": "自定义HTML,用于替换默认的注册页面样式",
|
||||||
"Signup group": "注册后的群组",
|
"Signup group": "注册后的群组",
|
||||||
"Signup group - Tooltip": "Signup group - Tooltip",
|
"Signup group - Tooltip": "注册后自动加入的群组",
|
||||||
"Silent": "静默",
|
"Silent": "静默",
|
||||||
"Site key": "Site key",
|
"Site key": "Site key",
|
||||||
"Site key - Tooltip": "站点密钥",
|
"Site key - Tooltip": "站点密钥",
|
||||||
@@ -965,22 +986,24 @@
|
|||||||
"Test SMTP Connection": "测试SMTP连接",
|
"Test SMTP Connection": "测试SMTP连接",
|
||||||
"Third-party": "第三方",
|
"Third-party": "第三方",
|
||||||
"This field is required": "此字段是必需的",
|
"This field is required": "此字段是必需的",
|
||||||
"Token URL": "Token URL",
|
"Token URL": "Token链接",
|
||||||
"Token URL - Tooltip": "自定义OAuth的Token URL",
|
"Token URL - Tooltip": "自定义OAuth的Token链接",
|
||||||
"Type": "类型",
|
"Type": "类型",
|
||||||
"Type - Tooltip": "类型",
|
"Type - Tooltip": "类型",
|
||||||
"Use WeChat Media Platform in PC": "在PC端使用微信公众平台",
|
"Use WeChat Media Platform in PC": "在PC端使用微信公众平台",
|
||||||
"Use WeChat Media Platform in PC - Tooltip": "是否使用微信公众平台的二维码进行登录",
|
"Use WeChat Media Platform in PC - Tooltip": "是否使用微信公众平台的二维码进行登录",
|
||||||
"Use WeChat Media Platform to login": "使用微信公众平台进行登录",
|
"Use WeChat Media Platform to login": "使用微信公众平台进行登录",
|
||||||
"Use WeChat Open Platform to login": "使用微信开放平台进行登录",
|
"Use WeChat Open Platform to login": "使用微信开放平台进行登录",
|
||||||
|
"Use global endpoint": "启用全局地址",
|
||||||
|
"Use global endpoint - Tooltip": "启用全局地址",
|
||||||
"Use id as name": "使用id作为用户名",
|
"Use id as name": "使用id作为用户名",
|
||||||
"Use id as name - Tooltip": "使用id作为用户的名字",
|
"Use id as name - Tooltip": "使用id作为用户的名字",
|
||||||
"User flow": "User flow",
|
"User flow": "User flow",
|
||||||
"User flow - Tooltip": "User flow",
|
"User flow - Tooltip": "User flow",
|
||||||
"User mapping": "用户映射",
|
"User mapping": "用户映射",
|
||||||
"User mapping - Tooltip": "用户映射 - 工具提示",
|
"User mapping - Tooltip": "用户映射 - 工具提示",
|
||||||
"UserInfo URL": "UserInfo URL",
|
"UserInfo URL": "UserInfo链接",
|
||||||
"UserInfo URL - Tooltip": "自定义OAuth的UserInfo URL",
|
"UserInfo URL - Tooltip": "自定义OAuth的UserInfo链接",
|
||||||
"Wallets": "钱包",
|
"Wallets": "钱包",
|
||||||
"Wallets - Tooltip": "钱包 - 工具提示",
|
"Wallets - Tooltip": "钱包 - 工具提示",
|
||||||
"admin (Shared)": "admin(共享)"
|
"admin (Shared)": "admin(共享)"
|
||||||
@@ -1216,7 +1239,7 @@
|
|||||||
"Keys": "键",
|
"Keys": "键",
|
||||||
"Language": "语言",
|
"Language": "语言",
|
||||||
"Language - Tooltip": "语言 - Tooltip",
|
"Language - Tooltip": "语言 - Tooltip",
|
||||||
"Last change password time": "Last change password time",
|
"Last change password time": "上次修改密码时间",
|
||||||
"Link": "绑定",
|
"Link": "绑定",
|
||||||
"Location": "城市",
|
"Location": "城市",
|
||||||
"Location - Tooltip": "居住地址所在的城市",
|
"Location - Tooltip": "居住地址所在的城市",
|
||||||
|
@@ -72,6 +72,7 @@ class SigninMethodTable extends React.Component {
|
|||||||
{name: "WebAuthn", displayName: i18next.t("login:WebAuthn")},
|
{name: "WebAuthn", displayName: i18next.t("login:WebAuthn")},
|
||||||
{name: "LDAP", displayName: i18next.t("login:LDAP")},
|
{name: "LDAP", displayName: i18next.t("login:LDAP")},
|
||||||
{name: "Face ID", displayName: i18next.t("login:Face ID")},
|
{name: "Face ID", displayName: i18next.t("login:Face ID")},
|
||||||
|
{name: "WeChat", displayName: i18next.t("login:WeChat")},
|
||||||
];
|
];
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
|
@@ -49,6 +49,9 @@ class SigninTable extends React.Component {
|
|||||||
|
|
||||||
updateField(table, index, key, value) {
|
updateField(table, index, key, value) {
|
||||||
table[index][key] = value;
|
table[index][key] = value;
|
||||||
|
if (key === "name" && value === "Captcha") {
|
||||||
|
table[index]["rule"] = "pop up";
|
||||||
|
}
|
||||||
this.updateTable(table);
|
this.updateTable(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,6 +117,8 @@ class SigninTable extends React.Component {
|
|||||||
{name: "Forgot password?", displayName: i18next.t("login:Forgot password?")},
|
{name: "Forgot password?", displayName: i18next.t("login:Forgot password?")},
|
||||||
{name: "Login button", displayName: i18next.t("login:Signin button")},
|
{name: "Login button", displayName: i18next.t("login:Signin button")},
|
||||||
{name: "Signup link", displayName: i18next.t("general:Signup link")},
|
{name: "Signup link", displayName: i18next.t("general:Signup link")},
|
||||||
|
{name: "Captcha", displayName: i18next.t("general:Captcha")},
|
||||||
|
{name: "Auto sign in", displayName: i18next.t("login:Auto sign in")},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getItemDisplayName = (text) => {
|
const getItemDisplayName = (text) => {
|
||||||
@@ -249,6 +254,19 @@ class SigninTable extends React.Component {
|
|||||||
{id: "small", name: i18next.t("application:Small icon")},
|
{id: "small", name: i18next.t("application:Small icon")},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
if (record.name === "Captcha") {
|
||||||
|
options = [
|
||||||
|
{id: "pop up", name: i18next.t("application:Pop up")},
|
||||||
|
{id: "inline", name: i18next.t("application:Inline")},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if (record.name === "Forgot password?") {
|
||||||
|
options = [
|
||||||
|
{id: "None", name: `${i18next.t("login:Auto sign in")} - ${i18next.t("general:True")}`},
|
||||||
|
{id: "Auto sign in - False", name: `${i18next.t("login:Auto sign in")} - ${i18next.t("general:False")}`},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
if (options.length === 0) {
|
if (options.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user