mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-22 21:33:36 +08:00
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
05830b9ff6 | |||
347b25676f | |||
2417ff84e6 | |||
468631e654 | |||
e1dea9f697 | |||
c0f22bae43 | |||
c9635d9e2b | |||
3bd52172ea | |||
bf730050d5 | |||
5b733b7f15 | |||
034f28def9 | |||
c86ac8e6ad |
@ -23,6 +23,7 @@ isDemoMode = false
|
||||
batchSize = 100
|
||||
enableErrorMask = false
|
||||
enableGzip = true
|
||||
inactiveTimeoutMinutes =
|
||||
ldapServerPort = 389
|
||||
radiusServerPort = 1812
|
||||
radiusSecret = "secret"
|
||||
|
@ -238,6 +238,10 @@ func (c *ApiController) Signup() {
|
||||
}
|
||||
}
|
||||
|
||||
if invitation != nil && invitation.SignupGroup != "" {
|
||||
user.Groups = []string{invitation.SignupGroup}
|
||||
}
|
||||
|
||||
affected, err := object.AddUser(user)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
|
@ -463,6 +463,15 @@ func (c *ApiController) Login() {
|
||||
}
|
||||
|
||||
password := authForm.Password
|
||||
|
||||
if application.OrganizationObj != nil {
|
||||
password, err = util.GetUnobfuscatedPassword(application.OrganizationObj.PasswordObfuscatorType, application.OrganizationObj.PasswordObfuscatorKey, authForm.Password)
|
||||
if err != nil {
|
||||
c.ResponseError(err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
isSigninViaLdap := authForm.SigninMethod == "LDAP"
|
||||
var isPasswordWithLdapEnabled bool
|
||||
if authForm.SigninMethod == "Password" {
|
||||
|
2
go.mod
2
go.mod
@ -11,6 +11,7 @@ require (
|
||||
github.com/casbin/casbin/v2 v2.77.2
|
||||
github.com/casdoor/go-sms-sender v0.24.0
|
||||
github.com/casdoor/gomail/v2 v2.0.1
|
||||
github.com/casdoor/ldapserver v1.2.0
|
||||
github.com/casdoor/notify v0.45.0
|
||||
github.com/casdoor/oss v1.8.0
|
||||
github.com/casdoor/xorm-adapter/v3 v3.1.0
|
||||
@ -20,7 +21,6 @@ require (
|
||||
github.com/elazarl/go-bindata-assetfs v1.0.1 // indirect
|
||||
github.com/elimity-com/scim v0.0.0-20230426070224-941a5eac92f3
|
||||
github.com/fogleman/gg v1.3.0
|
||||
github.com/forestmgy/ldapserver v1.1.0
|
||||
github.com/go-asn1-ber/asn1-ber v1.5.5
|
||||
github.com/go-git/go-git/v5 v5.11.0
|
||||
github.com/go-ldap/ldap/v3 v3.4.6
|
||||
|
4
go.sum
4
go.sum
@ -1091,6 +1091,8 @@ github.com/casdoor/go-sms-sender v0.24.0 h1:LNLsce3EG/87I3JS6UiajF3LlQmdIiCgebEu
|
||||
github.com/casdoor/go-sms-sender v0.24.0/go.mod h1:bOm4H8/YfJmEHjBatEVQFOnAf0OOn1B0Wi5B7zDhws0=
|
||||
github.com/casdoor/gomail/v2 v2.0.1 h1:J+FG6x80s9e5lBHUn8Sv0Y56mud34KiWih5YdmudR/w=
|
||||
github.com/casdoor/gomail/v2 v2.0.1/go.mod h1:VnGPslEAtpix5FjHisR/WKB1qvZDBaujbikxDe9d+2Q=
|
||||
github.com/casdoor/ldapserver v1.2.0 h1:HdSYe+ULU6z9K+2BqgTrJKQRR4//ERAXB64ttOun6Ow=
|
||||
github.com/casdoor/ldapserver v1.2.0/go.mod h1:VwYU2vqQ2pA8sa00PRekH71R2XmgfzMKhmp1XrrDu2s=
|
||||
github.com/casdoor/notify v0.45.0 h1:OlaFvcQFjGOgA4mRx07M8AH1gvb5xNo21mcqrVGlLgk=
|
||||
github.com/casdoor/notify v0.45.0/go.mod h1:wNHQu0tiDROMBIvz0j3Om3Lhd5yZ+AIfnFb8MYb8OLQ=
|
||||
github.com/casdoor/oss v1.8.0 h1:uuyKhDIp7ydOtV4lpqhAY23Ban2Ln8La8+QT36CwylM=
|
||||
@ -1237,8 +1239,6 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga
|
||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
||||
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||
github.com/forestmgy/ldapserver v1.1.0 h1:gvil4nuLhqPEL8SugCkFhRyA0/lIvRdwZSqlrw63ll4=
|
||||
github.com/forestmgy/ldapserver v1.1.0/go.mod h1:1RZ8lox1QSY7rmbjdmy+sYQXY4Lp7SpGzpdE3+j3IyM=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
|
||||
|
@ -200,7 +200,7 @@ func (idp *AlipayIdProvider) postWithBody(body interface{}, targetUrl string) ([
|
||||
|
||||
formData.Set("sign", sign)
|
||||
|
||||
resp, err := idp.Client.PostForm(targetUrl, formData)
|
||||
resp, err := idp.Client.Post(targetUrl, "application/x-www-form-urlencoded;charset=utf-8", strings.NewReader(formData.Encode()))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ import (
|
||||
|
||||
"github.com/casdoor/casdoor/conf"
|
||||
"github.com/casdoor/casdoor/object"
|
||||
ldap "github.com/forestmgy/ldapserver"
|
||||
ldap "github.com/casdoor/ldapserver"
|
||||
"github.com/lor00x/goldap/message"
|
||||
)
|
||||
|
||||
|
@ -23,7 +23,7 @@ import (
|
||||
"github.com/casdoor/casdoor/util"
|
||||
"github.com/lor00x/goldap/message"
|
||||
|
||||
ldap "github.com/forestmgy/ldapserver"
|
||||
ldap "github.com/casdoor/ldapserver"
|
||||
|
||||
"github.com/xorm-io/builder"
|
||||
)
|
||||
|
1
main.go
1
main.go
@ -56,6 +56,7 @@ func main() {
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.StaticFilter)
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.AutoSigninFilter)
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.CorsFilter)
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.TimeoutFilter)
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.ApiFilter)
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.PrometheusFilter)
|
||||
beego.InsertFilter("*", beego.BeforeRouter, routers.RecordMessage)
|
||||
|
@ -182,6 +182,9 @@ func readInitDataFromFile(filePath string) (*InitData, error) {
|
||||
if organization.Tags == nil {
|
||||
organization.Tags = []string{}
|
||||
}
|
||||
if organization.AccountItems == nil {
|
||||
organization.AccountItems = []*AccountItem{}
|
||||
}
|
||||
}
|
||||
for _, application := range data.Applications {
|
||||
if application.Providers == nil {
|
||||
@ -275,7 +278,9 @@ func initDefinedOrganization(organization *Organization) {
|
||||
}
|
||||
}
|
||||
organization.CreatedTime = util.GetCurrentTime()
|
||||
organization.AccountItems = getBuiltInAccountItems()
|
||||
if len(organization.AccountItems) == 0 {
|
||||
organization.AccountItems = getBuiltInAccountItems()
|
||||
}
|
||||
|
||||
_, err = AddOrganization(organization)
|
||||
if err != nil {
|
||||
|
@ -56,10 +56,12 @@ type Organization struct {
|
||||
WebsiteUrl string `xorm:"varchar(100)" json:"websiteUrl"`
|
||||
Logo string `xorm:"varchar(200)" json:"logo"`
|
||||
LogoDark string `xorm:"varchar(200)" json:"logoDark"`
|
||||
Favicon string `xorm:"varchar(100)" json:"favicon"`
|
||||
Favicon string `xorm:"varchar(200)" json:"favicon"`
|
||||
PasswordType string `xorm:"varchar(100)" json:"passwordType"`
|
||||
PasswordSalt string `xorm:"varchar(100)" json:"passwordSalt"`
|
||||
PasswordOptions []string `xorm:"varchar(100)" json:"passwordOptions"`
|
||||
PasswordObfuscatorType string `xorm:"varchar(100)" json:"passwordObfuscatorType"`
|
||||
PasswordObfuscatorKey string `xorm:"varchar(100)" json:"passwordObfuscatorKey"`
|
||||
CountryCodes []string `xorm:"varchar(200)" json:"countryCodes"`
|
||||
DefaultAvatar string `xorm:"varchar(200)" json:"defaultAvatar"`
|
||||
DefaultApplication string `xorm:"varchar(100)" json:"defaultApplication"`
|
||||
|
@ -166,19 +166,76 @@ func AddToVerificationRecord(user *User, provider *Provider, remoteAddr, recordT
|
||||
return nil
|
||||
}
|
||||
|
||||
func filterRecordIn24Hours(record *VerificationRecord) *VerificationRecord {
|
||||
if record == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
now := time.Now().Unix()
|
||||
if now-record.Time > 60*60*24 {
|
||||
return nil
|
||||
}
|
||||
|
||||
return record
|
||||
}
|
||||
|
||||
func getVerificationRecord(dest string) (*VerificationRecord, error) {
|
||||
var record VerificationRecord
|
||||
record := &VerificationRecord{}
|
||||
record.Receiver = dest
|
||||
|
||||
has, err := ormer.Engine.Desc("time").Where("is_used = false").Get(&record)
|
||||
has, err := ormer.Engine.Desc("time").Where("is_used = false").Get(record)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
record = filterRecordIn24Hours(record)
|
||||
if record == nil {
|
||||
has = false
|
||||
}
|
||||
|
||||
if !has {
|
||||
record = &VerificationRecord{}
|
||||
record.Receiver = dest
|
||||
|
||||
has, err = ormer.Engine.Desc("time").Get(record)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
record = filterRecordIn24Hours(record)
|
||||
if record == nil {
|
||||
has = false
|
||||
}
|
||||
|
||||
if !has {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return record, nil
|
||||
}
|
||||
|
||||
return record, nil
|
||||
}
|
||||
|
||||
func getUnusedVerificationRecord(dest string) (*VerificationRecord, error) {
|
||||
record := &VerificationRecord{}
|
||||
record.Receiver = dest
|
||||
|
||||
has, err := ormer.Engine.Desc("time").Where("is_used = false").Get(record)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
record = filterRecordIn24Hours(record)
|
||||
if record == nil {
|
||||
has = false
|
||||
}
|
||||
|
||||
if !has {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return &record, nil
|
||||
return record, nil
|
||||
}
|
||||
|
||||
func CheckVerificationCode(dest string, code string, lang string) (*VerifyResult, error) {
|
||||
@ -187,7 +244,9 @@ func CheckVerificationCode(dest string, code string, lang string) (*VerifyResult
|
||||
return nil, err
|
||||
}
|
||||
if record == nil {
|
||||
return &VerifyResult{noRecordError, i18n.Translate(lang, "verification:The verification code has not been sent yet, or has already been used!")}, nil
|
||||
return &VerifyResult{noRecordError, i18n.Translate(lang, "verification:The verification code has not been sent yet!")}, nil
|
||||
} else if record.IsUsed {
|
||||
return &VerifyResult{noRecordError, i18n.Translate(lang, "verification:The verification code has already been used!")}, nil
|
||||
}
|
||||
|
||||
timeoutInMinutes, err := conf.GetConfigInt64("verificationCodeTimeout")
|
||||
@ -196,9 +255,6 @@ func CheckVerificationCode(dest string, code string, lang string) (*VerifyResult
|
||||
}
|
||||
|
||||
now := time.Now().Unix()
|
||||
if now-record.Time > timeoutInMinutes*60*10 {
|
||||
return &VerifyResult{noRecordError, i18n.Translate(lang, "verification:The verification code has not been sent yet!")}, nil
|
||||
}
|
||||
if now-record.Time > timeoutInMinutes*60 {
|
||||
return &VerifyResult{timeoutError, fmt.Sprintf(i18n.Translate(lang, "verification:You should verify your code in %d min!"), timeoutInMinutes)}, nil
|
||||
}
|
||||
@ -211,7 +267,7 @@ func CheckVerificationCode(dest string, code string, lang string) (*VerifyResult
|
||||
}
|
||||
|
||||
func DisableVerificationCode(dest string) error {
|
||||
record, err := getVerificationRecord(dest)
|
||||
record, err := getUnusedVerificationRecord(dest)
|
||||
if record == nil || err != nil {
|
||||
return nil
|
||||
}
|
||||
|
64
routers/timeout_filter.go
Normal file
64
routers/timeout_filter.go
Normal file
@ -0,0 +1,64 @@
|
||||
// Copyright 2024 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.
|
||||
|
||||
package routers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/beego/beego/context"
|
||||
"github.com/casdoor/casdoor/conf"
|
||||
)
|
||||
|
||||
var (
|
||||
inactiveTimeoutMinutes int64
|
||||
requestTimeMap sync.Map
|
||||
)
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
inactiveTimeoutMinutes, err = conf.GetConfigInt64("inactiveTimeoutMinutes")
|
||||
if err != nil {
|
||||
inactiveTimeoutMinutes = 0
|
||||
}
|
||||
}
|
||||
|
||||
func timeoutLogout(ctx *context.Context, sessionId string) {
|
||||
requestTimeMap.Delete(sessionId)
|
||||
ctx.Input.CruSession.Set("username", "")
|
||||
ctx.Input.CruSession.Set("accessToken", "")
|
||||
ctx.Input.CruSession.Delete("SessionData")
|
||||
responseError(ctx, fmt.Sprintf(T(ctx, "auth:Timeout for inactivity of %d minutes"), inactiveTimeoutMinutes))
|
||||
}
|
||||
|
||||
func TimeoutFilter(ctx *context.Context) {
|
||||
if inactiveTimeoutMinutes <= 0 {
|
||||
return
|
||||
}
|
||||
|
||||
owner, name := getSubject(ctx)
|
||||
if owner == "anonymous" || name == "anonymous" {
|
||||
return
|
||||
}
|
||||
|
||||
sessionId := ctx.Input.CruSession.SessionID()
|
||||
currentTime := time.Now()
|
||||
preRequestTime, has := requestTimeMap.Load(sessionId)
|
||||
requestTimeMap.Store(sessionId, currentTime)
|
||||
if has && preRequestTime.(time.Time).Add(time.Minute*time.Duration(inactiveTimeoutMinutes)).Before(currentTime) {
|
||||
timeoutLogout(ctx, sessionId)
|
||||
}
|
||||
}
|
76
util/obfuscator.go
Normal file
76
util/obfuscator.go
Normal file
@ -0,0 +1,76 @@
|
||||
// Copyright 2024 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.
|
||||
|
||||
package util
|
||||
|
||||
import (
|
||||
"crypto/aes"
|
||||
"crypto/cipher"
|
||||
"crypto/des"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func unPaddingPkcs7(s []byte) []byte {
|
||||
length := len(s)
|
||||
if length == 0 {
|
||||
return s
|
||||
}
|
||||
unPadding := int(s[length-1])
|
||||
return s[:(length - unPadding)]
|
||||
}
|
||||
|
||||
func decryptDesOrAes(passwordCipher string, block cipher.Block) (string, error) {
|
||||
passwordCipherBytes, err := hex.DecodeString(passwordCipher)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if len(passwordCipherBytes) < block.BlockSize() {
|
||||
return "", fmt.Errorf("the password ciphertext should contain a random hexadecimal string of length %d at the beginning", block.BlockSize()*2)
|
||||
}
|
||||
|
||||
iv := passwordCipherBytes[:block.BlockSize()]
|
||||
password := make([]byte, len(passwordCipherBytes)-block.BlockSize())
|
||||
|
||||
mode := cipher.NewCBCDecrypter(block, iv)
|
||||
mode.CryptBlocks(password, passwordCipherBytes[block.BlockSize():])
|
||||
|
||||
return string(unPaddingPkcs7(password)), nil
|
||||
}
|
||||
|
||||
func GetUnobfuscatedPassword(passwordObfuscatorType string, passwordObfuscatorKey string, passwordCipher string) (string, error) {
|
||||
if passwordObfuscatorType == "Plain" || passwordObfuscatorType == "" {
|
||||
return passwordCipher, nil
|
||||
} else if passwordObfuscatorType == "DES" || passwordObfuscatorType == "AES" {
|
||||
key, err := hex.DecodeString(passwordObfuscatorKey)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
var block cipher.Block
|
||||
if passwordObfuscatorType == "DES" {
|
||||
block, err = des.NewCipher(key)
|
||||
} else {
|
||||
block, err = aes.NewCipher(key)
|
||||
}
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return decryptDesOrAes(passwordCipher, block)
|
||||
} else {
|
||||
return "", fmt.Errorf("unsupported password obfuscator type: %s", passwordObfuscatorType)
|
||||
}
|
||||
}
|
@ -51,6 +51,9 @@ func IsPhoneValid(phone string, countryCode string) bool {
|
||||
}
|
||||
|
||||
func IsPhoneAllowInRegin(countryCode string, allowRegions []string) bool {
|
||||
if ContainsString(allowRegions, "All") {
|
||||
return true
|
||||
}
|
||||
return ContainsString(allowRegions, countryCode)
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
"copy-to-clipboard": "^3.3.1",
|
||||
"core-js": "^3.25.0",
|
||||
"craco-less": "^2.0.0",
|
||||
"crypto-js": "^4.2.0",
|
||||
"echarts": "^5.4.3",
|
||||
"ethers": "5.6.9",
|
||||
"face-api.js": "^0.22.2",
|
||||
|
@ -362,7 +362,11 @@ class App extends Component {
|
||||
if (this.isDoorPages()) {
|
||||
return (
|
||||
<ConfigProvider theme={{
|
||||
algorithm: Setting.getAlgorithm(["default"]),
|
||||
token: {
|
||||
colorPrimary: this.state.themeData.colorPrimary,
|
||||
borderRadius: this.state.themeData.borderRadius,
|
||||
},
|
||||
algorithm: Setting.getAlgorithm(this.state.themeAlgorithm),
|
||||
}}>
|
||||
<StyleProvider hashPriority="high" transformers={[legacyLogicalPropertiesTransformer]}>
|
||||
<Layout id="parent-area">
|
||||
@ -372,6 +376,7 @@ class App extends Component {
|
||||
<EntryPage
|
||||
account={this.state.account}
|
||||
theme={this.state.themeData}
|
||||
themeAlgorithm={this.state.themeAlgorithm}
|
||||
updateApplication={(application) => {
|
||||
this.setState({
|
||||
application: application,
|
||||
@ -446,7 +451,6 @@ class App extends Component {
|
||||
setLogoutState={() => {
|
||||
this.setState({
|
||||
account: null,
|
||||
themeAlgorithm: ["default"],
|
||||
});
|
||||
}}
|
||||
/>
|
||||
|
@ -129,6 +129,15 @@ img {
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.loginBackgroundDark {
|
||||
flex: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #000 no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.ant-menu-horizontal {
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
@ -977,6 +977,7 @@ class ApplicationEditPage extends React.Component {
|
||||
<SigninTable
|
||||
title={i18next.t("application:Signin items")}
|
||||
table={this.state.application.signinItems}
|
||||
themeAlgorithm={this.state.themeAlgorithm}
|
||||
onUpdateTable={(value) => {
|
||||
this.updateApplicationField("signinItems", value);
|
||||
}}
|
||||
|
@ -94,10 +94,12 @@ class EntryPage extends React.Component {
|
||||
});
|
||||
};
|
||||
|
||||
const isDarkMode = this.props.themeAlgorithm.includes("dark");
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
<CustomHead headerHtml={this.state.application?.headerHtml} />
|
||||
<div className="loginBackground"
|
||||
<div className={`${isDarkMode ? "loginBackgroundDark" : "loginBackground"}`}
|
||||
style={{backgroundImage: Setting.inIframe() || Setting.isMobile() ? null : `url(${this.state.application?.formBackgroundUrl})`}}>
|
||||
<Spin size="large" spinning={this.state.application === undefined && this.state.pricing === undefined} tip={i18next.t("login:Loading")}
|
||||
style={{margin: "0 auto"}} />
|
||||
@ -124,6 +126,7 @@ class EntryPage extends React.Component {
|
||||
<Route exact path="/captcha" render={(props) => <CaptchaPage {...props} />} />
|
||||
</Switch>
|
||||
</div>
|
||||
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import * as ApplicationBackend from "./backend/ApplicationBackend";
|
||||
import * as Setting from "./Setting";
|
||||
import i18next from "i18next";
|
||||
import copy from "copy-to-clipboard";
|
||||
import * as GroupBackend from "./backend/GroupBackend";
|
||||
|
||||
const {Option} = Select;
|
||||
|
||||
@ -33,6 +34,7 @@ class InvitationEditPage extends React.Component {
|
||||
invitation: null,
|
||||
organizations: [],
|
||||
applications: [],
|
||||
groups: [],
|
||||
mode: props.location.mode !== undefined ? props.location.mode : "edit",
|
||||
};
|
||||
}
|
||||
@ -41,6 +43,7 @@ class InvitationEditPage extends React.Component {
|
||||
this.getInvitation();
|
||||
this.getOrganizations();
|
||||
this.getApplicationsByOrganization(this.state.organizationName);
|
||||
this.getGroupsByOrganization(this.state.organizationName);
|
||||
}
|
||||
|
||||
getInvitation() {
|
||||
@ -75,6 +78,17 @@ class InvitationEditPage extends React.Component {
|
||||
});
|
||||
}
|
||||
|
||||
getGroupsByOrganization(organizationName) {
|
||||
GroupBackend.getGroups(organizationName)
|
||||
.then((res) => {
|
||||
if (res.status === "ok") {
|
||||
this.setState({
|
||||
groups: res.data,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
parseInvitationField(key, value) {
|
||||
if ([""].includes(key)) {
|
||||
value = Setting.myParseInt(value);
|
||||
@ -120,7 +134,7 @@ class InvitationEditPage extends React.Component {
|
||||
{Setting.getLabel(i18next.t("general:Organization"), i18next.t("general:Organization - Tooltip"))} :
|
||||
</Col>
|
||||
<Col span={22} >
|
||||
<Select virtual={false} style={{width: "100%"}} disabled={!Setting.isAdminUser(this.props.account) || isCreatedByPlan} value={this.state.invitation.owner} onChange={(value => {this.updateInvitationField("owner", value); this.getApplicationsByOrganization(value);})}>
|
||||
<Select virtual={false} style={{width: "100%"}} disabled={!Setting.isAdminUser(this.props.account) || isCreatedByPlan} value={this.state.invitation.owner} onChange={(value => {this.updateInvitationField("owner", value); this.getApplicationsByOrganization(value);this.getGroupsByOrganization(value);})}>
|
||||
{
|
||||
this.state.organizations.map((organization, index) => <Option key={index} value={organization.name}>{organization.name}</Option>)
|
||||
}
|
||||
@ -204,6 +218,21 @@ class InvitationEditPage extends React.Component {
|
||||
]} />
|
||||
</Col>
|
||||
</Row>
|
||||
<Row style={{marginTop: "20px"}} >
|
||||
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
||||
{Setting.getLabel(i18next.t("provider:Signup group"), i18next.t("provider:Signup group - Tooltip"))} :
|
||||
</Col>
|
||||
<Col span={22} >
|
||||
<Select virtual={false} style={{width: "100%"}} value={this.state.invitation.signupGroup} onChange={(value => {this.updateInvitationField("signupGroup", value);})}>
|
||||
<Option key={""} value={""}>
|
||||
{i18next.t("general:Default")}
|
||||
</Option>
|
||||
{
|
||||
this.state.groups.map((group, index) => <Option key={index} value={`${group.owner}/${group.name}`}>{group.name}</Option>)
|
||||
}
|
||||
</Select>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row style={{marginTop: "20px"}} >
|
||||
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
||||
{Setting.getLabel(i18next.t("signup:Username"), i18next.t("signup:Username - Tooltip"))} :
|
||||
|
@ -19,6 +19,7 @@ import * as ApplicationBackend from "./backend/ApplicationBackend";
|
||||
import * as LdapBackend from "./backend/LdapBackend";
|
||||
import * as Setting from "./Setting";
|
||||
import * as Conf from "./Conf";
|
||||
import * as Obfuscator from "./auth/Obfuscator";
|
||||
import i18next from "i18next";
|
||||
import {LinkOutlined} from "@ant-design/icons";
|
||||
import LdapTable from "./table/LdapTable";
|
||||
@ -112,6 +113,22 @@ class OrganizationEditPage extends React.Component {
|
||||
});
|
||||
}
|
||||
|
||||
updatePasswordObfuscator(key, value) {
|
||||
const organization = this.state.organization;
|
||||
if (organization.passwordObfuscatorType === "") {
|
||||
organization.passwordObfuscatorType = "Plain";
|
||||
}
|
||||
if (key === "type") {
|
||||
organization.passwordObfuscatorType = value;
|
||||
organization.passwordObfuscatorKey = Obfuscator.getRandomKeyForObfuscator(value);
|
||||
} else if (key === "key") {
|
||||
organization.passwordObfuscatorKey = value;
|
||||
}
|
||||
this.setState({
|
||||
organization: organization,
|
||||
});
|
||||
}
|
||||
|
||||
renderOrganization() {
|
||||
return (
|
||||
<Card size="small" title={
|
||||
@ -294,6 +311,34 @@ class OrganizationEditPage extends React.Component {
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row style={{marginTop: "20px"}} >
|
||||
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
||||
{Setting.getLabel(i18next.t("general:Password obfuscator"), i18next.t("general:Password obfuscator - Tooltip"))} :
|
||||
</Col>
|
||||
<Col span={22} >
|
||||
<Select virtual={false} style={{width: "100%"}}
|
||||
value={this.state.organization.passwordObfuscatorType}
|
||||
onChange={(value => {this.updatePasswordObfuscator("type", value);})}>
|
||||
{
|
||||
[
|
||||
{id: "Plain", name: "Plain"},
|
||||
{id: "AES", name: "AES"},
|
||||
{id: "DES", name: "DES"},
|
||||
].map((obfuscatorType, index) => <Option key={index} value={obfuscatorType.id}>{obfuscatorType.name}</Option>)
|
||||
}
|
||||
</Select>
|
||||
</Col>
|
||||
</Row>
|
||||
{
|
||||
(this.state.organization.passwordObfuscatorType === "Plain" || this.state.organization.passwordObfuscatorType === "") ? null : (<Row style={{marginTop: "20px"}} >
|
||||
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
||||
{Setting.getLabel(i18next.t("general:Password obf key"), i18next.t("general:Password obf key - Tooltip"))} :
|
||||
</Col>
|
||||
<Col span={22} >
|
||||
<Input value={this.state.organization.passwordObfuscatorKey} onChange={(e) => {this.updatePasswordObfuscator("key", e.target.value);}} />
|
||||
</Col>
|
||||
</Row>)
|
||||
}
|
||||
<Row style={{marginTop: "20px"}} >
|
||||
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
|
||||
{Setting.getLabel(i18next.t("general:Supported country codes"), i18next.t("general:Supported country codes - Tooltip"))} :
|
||||
@ -305,6 +350,7 @@ class OrganizationEditPage extends React.Component {
|
||||
}}
|
||||
filterOption={(input, option) => (option?.text ?? "").toLowerCase().includes(input.toLowerCase())}
|
||||
>
|
||||
{Setting.getCountryCodeOption({name: i18next.t("organization:All"), code: "All", phone: 0})}
|
||||
{
|
||||
Setting.getCountryCodeData().map((country) => Setting.getCountryCodeOption(country))
|
||||
}
|
||||
@ -528,6 +574,12 @@ class OrganizationEditPage extends React.Component {
|
||||
const organization = Setting.deepCopy(this.state.organization);
|
||||
organization.accountItems = organization.accountItems?.filter(accountItem => accountItem.name !== "Please select an account item");
|
||||
|
||||
const passwordObfuscatorErrorMessage = Obfuscator.checkPasswordObfuscator(organization.passwordObfuscatorType, organization.passwordObfuscatorKey);
|
||||
if (passwordObfuscatorErrorMessage.length > 0) {
|
||||
Setting.showMessage("error", passwordObfuscatorErrorMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
OrganizationBackend.updateOrganization(this.state.organization.owner, this.state.organizationName, organization)
|
||||
.then((res) => {
|
||||
if (res.status === "ok") {
|
||||
|
@ -35,6 +35,8 @@ class OrganizationListPage extends BaseListPage {
|
||||
passwordType: "plain",
|
||||
PasswordSalt: "",
|
||||
passwordOptions: [],
|
||||
passwordObfuscatorType: "Plain",
|
||||
passwordObfuscatorKey: "",
|
||||
countryCodes: ["US"],
|
||||
defaultAvatar: `${Setting.StaticBaseUrl}/img/casbin.svg`,
|
||||
defaultApplication: "",
|
||||
|
@ -418,6 +418,9 @@ export function getCountryCode(country) {
|
||||
}
|
||||
|
||||
export function getCountryCodeData(countryCodes = phoneNumber.getCountries()) {
|
||||
if (countryCodes?.includes("All")) {
|
||||
countryCodes = phoneNumber.getCountries();
|
||||
}
|
||||
return countryCodes?.map((countryCode) => {
|
||||
if (phoneNumber.isSupportedCountry(countryCode)) {
|
||||
const name = initCountries().getName(countryCode, getLanguage());
|
||||
@ -436,10 +439,10 @@ export function getCountryCodeOption(country) {
|
||||
<Option key={country.code} value={country.code} label={`+${country.phone}`} text={`${country.name}, ${country.code}, ${country.phone}`} >
|
||||
<div style={{display: "flex", justifyContent: "space-between", marginRight: "10px"}}>
|
||||
<div>
|
||||
{getCountryImage(country)}
|
||||
{country.code === "All" ? null : getCountryImage(country)}
|
||||
{`${country.name}`}
|
||||
</div>
|
||||
{`+${country.phone}`}
|
||||
{country.code === "All" ? null : `+${country.phone}`}
|
||||
</div>
|
||||
</Option>
|
||||
);
|
||||
@ -1168,7 +1171,7 @@ export function renderLogo(application) {
|
||||
|
||||
function isSigninMethodEnabled(application, signinMethod) {
|
||||
if (application && application.signinMethods) {
|
||||
return application.signinMethods.filter(item => item.name === signinMethod).length > 0;
|
||||
return application.signinMethods.filter(item => item.name === signinMethod && item.rule !== "Hide-Password").length > 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ import {withRouter} from "react-router-dom";
|
||||
import * as UserWebauthnBackend from "../backend/UserWebauthnBackend";
|
||||
import OrganizationSelect from "../common/select/OrganizationSelect";
|
||||
import * as Conf from "../Conf";
|
||||
import * as Obfuscator from "./Obfuscator";
|
||||
import * as AuthBackend from "./AuthBackend";
|
||||
import * as OrganizationBackend from "../backend/OrganizationBackend";
|
||||
import * as ApplicationBackend from "../backend/ApplicationBackend";
|
||||
@ -379,6 +380,14 @@ class LoginPage extends React.Component {
|
||||
return;
|
||||
}
|
||||
if (this.state.loginMethod === "password" || this.state.loginMethod === "ldap") {
|
||||
const organization = this.getApplicationObj()?.organizationObj;
|
||||
const [passwordCipher, errorMessage] = Obfuscator.encryptByPasswordObfuscator(organization?.passwordObfuscatorType, organization?.passwordObfuscatorKey, values["password"]);
|
||||
if (errorMessage.length > 0) {
|
||||
Setting.showMessage("error", errorMessage);
|
||||
return;
|
||||
} else {
|
||||
values["password"] = passwordCipher;
|
||||
}
|
||||
if (this.state.enableCaptchaModal === CaptchaRule.Always) {
|
||||
this.setState({
|
||||
openCaptchaModal: true,
|
||||
@ -1125,6 +1134,9 @@ class LoginPage extends React.Component {
|
||||
]);
|
||||
|
||||
application?.signinMethods?.forEach((signinMethod) => {
|
||||
if (signinMethod.rule === "Hide-Password") {
|
||||
return;
|
||||
}
|
||||
const item = itemsMap.get(generateItemKey(signinMethod.name, signinMethod.rule));
|
||||
if (item) {
|
||||
let label = signinMethod.name === signinMethod.displayName ? item.label : signinMethod.displayName;
|
||||
|
95
web/src/auth/Obfuscator.js
Normal file
95
web/src/auth/Obfuscator.js
Normal file
@ -0,0 +1,95 @@
|
||||
// Copyright 2024 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 CryptoJS from "crypto-js";
|
||||
import i18next from "i18next";
|
||||
|
||||
export function getRandomKeyForObfuscator(obfuscatorType) {
|
||||
if (obfuscatorType === "DES") {
|
||||
return getRandomHexKey(16);
|
||||
} else if (obfuscatorType === "AES") {
|
||||
return getRandomHexKey(32);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
export const passwordObfuscatorKeyRegexes = {
|
||||
"DES": /^[1-9a-f]{16}$/,
|
||||
"AES": /^[1-9a-f]{32}$/,
|
||||
};
|
||||
|
||||
function encrypt(cipher, key, iv, password) {
|
||||
const encrypted = cipher.encrypt(
|
||||
CryptoJS.enc.Hex.parse(Buffer.from(password, "utf-8").toString("hex")),
|
||||
CryptoJS.enc.Hex.parse(key),
|
||||
{
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
pad: CryptoJS.pad.Pkcs7,
|
||||
}
|
||||
);
|
||||
return iv.concat(encrypted.ciphertext).toString(CryptoJS.enc.Hex);
|
||||
}
|
||||
|
||||
export function checkPasswordObfuscator(passwordObfuscatorType, passwordObfuscatorKey) {
|
||||
if (passwordObfuscatorType === undefined) {
|
||||
return i18next.t("organization:failed to get password obfuscator");
|
||||
} else if (passwordObfuscatorType === "Plain" || passwordObfuscatorType === "") {
|
||||
return "";
|
||||
} else if (passwordObfuscatorType === "AES" || passwordObfuscatorType === "DES") {
|
||||
if (passwordObfuscatorKeyRegexes[passwordObfuscatorType].test(passwordObfuscatorKey)) {
|
||||
return "";
|
||||
} else {
|
||||
return `${i18next.t("organization:The password obfuscator key doesn't match the regex")}: ${passwordObfuscatorKeyRegexes[passwordObfuscatorType].source}`;
|
||||
}
|
||||
} else {
|
||||
return `${i18next.t("organization:unsupported password obfuscator type")}: ${passwordObfuscatorType}`;
|
||||
}
|
||||
}
|
||||
|
||||
export function encryptByPasswordObfuscator(passwordObfuscatorType, passwordObfuscatorKey, password) {
|
||||
const passwordObfuscatorErrorMessage = checkPasswordObfuscator(passwordObfuscatorType, passwordObfuscatorKey);
|
||||
if (passwordObfuscatorErrorMessage.length > 0) {
|
||||
return ["", passwordObfuscatorErrorMessage];
|
||||
} else {
|
||||
if (passwordObfuscatorType === "Plain" || passwordObfuscatorType === "") {
|
||||
return [password, ""];
|
||||
} else if (passwordObfuscatorType === "AES") {
|
||||
return [encryptByAes(passwordObfuscatorKey, password), ""];
|
||||
} else if (passwordObfuscatorType === "DES") {
|
||||
return [encryptByDes(passwordObfuscatorKey, password), ""];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function encryptByDes(key, password) {
|
||||
const iv = CryptoJS.lib.WordArray.random(8);
|
||||
return encrypt(CryptoJS.DES, key, iv, password);
|
||||
}
|
||||
|
||||
function encryptByAes(key, password) {
|
||||
const iv = CryptoJS.lib.WordArray.random(16);
|
||||
return encrypt(CryptoJS.AES, key, iv, password);
|
||||
}
|
||||
|
||||
function getRandomHexKey(length) {
|
||||
const characters = "123456789abcdef";
|
||||
let key = "";
|
||||
for (let i = 0; i < length; i++) {
|
||||
const randomIndex = Math.floor(Math.random() * characters.length);
|
||||
key += characters[randomIndex];
|
||||
}
|
||||
return key;
|
||||
}
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Vlevo",
|
||||
"Logged in successfully": "Úspěšně přihlášen",
|
||||
"Logged out successfully": "Úspěšně odhlášen",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Nová aplikace",
|
||||
"No verification": "Bez ověření",
|
||||
"Normal": "Normální",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Přihlašovací relace",
|
||||
"Signup items": "Položky registrace",
|
||||
"Signup items - Tooltip": "Položky, které uživatelé vyplňují při registraci nových účtů",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Malá ikona",
|
||||
"Tags - Tooltip": "Pouze uživatelé s tagem uvedeným v tazích aplikace se mohou přihlásit",
|
||||
"The application does not allow to sign up new account": "Aplikace neumožňuje registraci nového účtu",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Formát přístupového tokenu",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Nečekali jste, že uvidíte tuto výzvu"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Přístupový klíč - Tooltip",
|
||||
"Access secret": "Přístupové tajemství",
|
||||
"Access secret - Tooltip": "Přístupové tajemství - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Akce",
|
||||
"Adapter": "Adaptér",
|
||||
"Adapter - Tooltip": "Název tabulky úložiště politiky",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Poskytovatelé plateb, které mají být nakonfigurovány, včetně PayPal, Alipay, WeChat Pay, atd.",
|
||||
"Providers": "Poskytovatelé",
|
||||
"Providers - Tooltip": "Poskytovatelé, kteří mají být nakonfigurováni, včetně přihlášení třetích stran, objektového úložiště, ověřovacího kódu, atd.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Skutečné jméno",
|
||||
"Records": "Záznamy",
|
||||
"Request URI": "Požadavek URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Rozpoznávání obličeje",
|
||||
"Face recognition failed": "Rozpoznávání obličeje selhalo",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Nepodařilo se získat autorizaci MetaMask",
|
||||
"Failed to obtain Web3-Onboard authorization": "Nepodařilo se získat autorizaci Web3-Onboard",
|
||||
"Forgot password?": "Zapomněli jste heslo?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "ID projektu",
|
||||
"Project Id - Tooltip": "Nápověda k ID projektu",
|
||||
"Prompted": "Vyzván",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL poskytovatele",
|
||||
"Provider URL - Tooltip": "URL pro konfiguraci poskytovatele služby, toto pole je pouze pro referenci a není použito v Casdoor",
|
||||
"Public key": "Veřejný klíč",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Máte účet?",
|
||||
"Label": "Štítek",
|
||||
"Label HTML": "HTML štítek",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Zástupný text",
|
||||
"Please accept the agreement!": "Prosím přijměte smlouvu!",
|
||||
"Please click the below button to sign in": "Prosím klikněte na tlačítko níže pro přihlášení",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Links",
|
||||
"Logged in successfully": "Erfolgreich eingeloggt",
|
||||
"Logged out successfully": "Erfolgreich ausgeloggt",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Neue Anwendung",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Anmeldesession",
|
||||
"Signup items": "Registrierungs Items",
|
||||
"Signup items - Tooltip": "Items, die Benutzer ausfüllen müssen, wenn sie neue Konten registrieren",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "Die Anwendung erlaubt es nicht, ein neues Konto zu registrieren",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Das Format des Access-Tokens",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Sie sind unerwartet auf diese Aufforderungsseite gelangt"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Aktion",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Tabellenname des Policy Stores",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Zahlungsprovider, die konfiguriert werden müssen, inkl. PayPal, Alipay, WeChat Pay usw.",
|
||||
"Providers": "Provider",
|
||||
"Providers - Tooltip": "Provider, die konfiguriert werden müssen, einschließlich Drittanbieter-Logins, Objektspeicherung, Verifizierungscode usw.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Echter Name",
|
||||
"Records": "Datensätze",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Passwort vergessen?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "ausgelöst",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Anbieter-URL",
|
||||
"Provider URL - Tooltip": "URL zur Konfiguration des Dienstanbieters, dieses Feld dient nur als Referenz und wird in Casdoor nicht verwendet",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Haben Sie ein Konto?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Bitte akzeptieren Sie die Vereinbarung!",
|
||||
"Please click the below button to sign in": "Bitte klicken Sie auf den untenstehenden Button, um sich anzumelden",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Izquierda",
|
||||
"Logged in successfully": "Acceso satisfactorio",
|
||||
"Logged out successfully": "Cerró sesión exitosamente",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Nueva aplicación",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Sesión de inicio de sesión",
|
||||
"Signup items": "Artículos de registro",
|
||||
"Signup items - Tooltip": "Elementos para que los usuarios los completen al registrar nuevas cuentas",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "La aplicación no permite registrarse una cuenta nueva",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "El formato del token de acceso",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Es inesperado ver esta página de inicio"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Acción",
|
||||
"Adapter": "Adaptador",
|
||||
"Adapter - Tooltip": "Nombre de la tabla de la tienda de políticas",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Proveedores de pago a configurar, incluyendo PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Proveedores",
|
||||
"Providers - Tooltip": "Proveedores a configurar, incluyendo inicio de sesión de terceros, almacenamiento de objetos, código de verificación, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Nombre real",
|
||||
"Records": "Registros",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "¿Olvidaste tu contraseña?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Estimulado",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL del proveedor",
|
||||
"Provider URL - Tooltip": "Dirección URL para configurar el proveedor de servicios, este campo sólo se utiliza como referencia y no se utiliza en Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "¿Tiene una cuenta?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "¡Por favor, acepta el acuerdo!",
|
||||
"Please click the below button to sign in": "Por favor, haga clic en el botón de abajo para iniciar sesión",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Gauche",
|
||||
"Logged in successfully": "Connexion réussie",
|
||||
"Logged out successfully": "Déconnexion réussie",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Nouvelle application",
|
||||
"No verification": "Aucune vérification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Session de connexion",
|
||||
"Signup items": "Champs d'inscription",
|
||||
"Signup items - Tooltip": "Champs à remplir lors de l'enregistrement de nouveaux comptes",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Seuls les comptes ayant leur étiquette listée dans les étiquettes de l'application peuvent se connecter",
|
||||
"The application does not allow to sign up new account": "L'application ne permet pas de créer un nouveau compte",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Le format du jeton d'accès",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Il n'était pas prévu que vous voyez cette page de saisie"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Clé d'accès - Infobulle",
|
||||
"Access secret": "Clé secrète",
|
||||
"Access secret - Tooltip": "Clé secrète - Info-bulle",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adaptateur",
|
||||
"Adapter - Tooltip": "Nom de la table du magasin de règle",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Les fournisseurs de paiement à configurer, tels que PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Fournisseurs",
|
||||
"Providers - Tooltip": "Les fournisseurs à configurer, tels que la connexion via un service tiers, le stockage d'objets, le code de vérification, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Nom complet",
|
||||
"Records": "Enregistrements",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Échec de l'obtention de l'autorisation MetaMask",
|
||||
"Failed to obtain Web3-Onboard authorization": "Échec de l'obtention de l'autorisation MetaMask",
|
||||
"Forgot password?": "Mot de passe oublié ?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "ID du projet",
|
||||
"Project Id - Tooltip": "ID du projet - Infobulle",
|
||||
"Prompted": "Incité",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL du fournisseur",
|
||||
"Provider URL - Tooltip": "URL pour configurer le fournisseur de services, ce champ est uniquement utilisé à titre de référence et n'est pas utilisé dans Casdoor",
|
||||
"Public key": "Clé publique",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Avez-vous un compte ?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Veuillez accepter l'accord !",
|
||||
"Please click the below button to sign in": "Veuillez cliquer sur le bouton ci-dessous pour vous connecter",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Kiri",
|
||||
"Logged in successfully": "Berhasil masuk",
|
||||
"Logged out successfully": "Berhasil keluar dari sistem",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Aplikasi Baru",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Sesi masuk",
|
||||
"Signup items": "Item pendaftaran",
|
||||
"Signup items - Tooltip": "Item-item yang harus diisi pengguna saat mendaftar untuk akun baru",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "Aplikasi tidak memperbolehkan untuk mendaftar akun baru",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Format dari token akses",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Anda tidak mengharapkan untuk melihat halaman prompt ini"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Aksi",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Nama tabel dari penyimpanan kebijakan",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Penyedia pembayaran harus dikonfigurasi, termasuk PayPal, Alipay, WeChat Pay, dan sebagainya.",
|
||||
"Providers": "Penyedia-penyedia",
|
||||
"Providers - Tooltip": "Penyedia harus dikonfigurasi, termasuk login pihak ketiga, penyimpanan objek, kode verifikasi, dan lain-lain.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Nama asli",
|
||||
"Records": "Catatan",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Lupa kata sandi?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Mendorong",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL penyedia",
|
||||
"Provider URL - Tooltip": "URL untuk melakukan konfigurasi service provider, kolom ini hanya digunakan sebagai referensi dan tidak digunakan dalam Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Punya akun?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Tolong terima perjanjian ini!",
|
||||
"Please click the below button to sign in": "Silakan klik tombol di bawah ini untuk masuk",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "左",
|
||||
"Logged in successfully": "正常にログインしました",
|
||||
"Logged out successfully": "正常にログアウトしました",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "新しいアプリケーション",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "サインインセッション",
|
||||
"Signup items": "サインアップアイテム",
|
||||
"Signup items - Tooltip": "新しいアカウントを登録する際にユーザーが入力するアイテム",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "アプリケーションでは新しいアカウントの登録ができません",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "アクセストークンのフォーマット",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "このプロンプトページを見ることは予期せぬことである"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "アクション",
|
||||
"Adapter": "アダプター",
|
||||
"Adapter - Tooltip": "ポリシー・ストアのテーブル名",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "支払いプロバイダーを設定する必要があります。これには、PayPal、Alipay、WeChat Payなどが含まれます。",
|
||||
"Providers": "プロバイダー",
|
||||
"Providers - Tooltip": "設定するプロバイダーには、サードパーティのログイン、オブジェクトストレージ、検証コードなどが含まれます。",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "本名",
|
||||
"Records": "記録",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "パスワードを忘れましたか?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "促された",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "プロバイダーURL",
|
||||
"Provider URL - Tooltip": "サービスプロバイダーの設定用URL。このフィールドは参照用にのみ使用され、Casdoorでは使用されません",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "アカウントはありますか?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "合意に同意してください!",
|
||||
"Please click the below button to sign in": "以下のボタンをクリックしてログインしてください",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "왼쪽",
|
||||
"Logged in successfully": "성공적으로 로그인했습니다",
|
||||
"Logged out successfully": "로그아웃이 성공적으로 되었습니다",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "새로운 응용 프로그램",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "로그인 세션",
|
||||
"Signup items": "가입 항목",
|
||||
"Signup items - Tooltip": "새로운 계정 등록시 사용자가 작성해야하는 항목들",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "이 어플리케이션은 새 계정 등록을 허용하지 않습니다",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "접근 토큰의 형식",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "당신은 이 프롬프트 페이지를 볼 것을 예상하지 못했습니다"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "동작",
|
||||
"Adapter": "어댑터",
|
||||
"Adapter - Tooltip": "정책 저장소의 테이블 이름",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "지불 공급자를 구성해야합니다. PayPal, Alipay, WeChat Pay 등이 포함됩니다.",
|
||||
"Providers": "제공자들",
|
||||
"Providers - Tooltip": "공급 업체는 구성되어야합니다. 3rd-party 로그인, 객체 저장소, 검증 코드 등을 포함합니다.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "실명",
|
||||
"Records": "기록",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "비밀번호를 잊으셨나요?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "자극 받은",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "제공자 URL",
|
||||
"Provider URL - Tooltip": "서비스 제공 업체 구성을 위한 URL이며, 이 필드는 참조 용도로만 사용되며 Casdoor에서 사용되지 않습니다",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "계정이 있나요?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "계약서를 승인해주세요!",
|
||||
"Please click the below button to sign in": "아래 버튼을 클릭하여 로그인하세요",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Esquerda",
|
||||
"Logged in successfully": "Login realizado com sucesso",
|
||||
"Logged out successfully": "Logout realizado com sucesso",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Nova Aplicação",
|
||||
"No verification": "Sem verificação",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Sessão de login",
|
||||
"Signup items": "Itens de registro",
|
||||
"Signup items - Tooltip": "Itens para os usuários preencherem ao registrar novas contas",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Apenas usuários com a tag listada nas tags do aplicativo podem acessar",
|
||||
"The application does not allow to sign up new account": "A aplicação não permite o registro de novas contas",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "O formato do token de acesso",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Você não deveria ver esta página de prompt"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Ação",
|
||||
"Adapter": "Adaptador",
|
||||
"Adapter - Tooltip": "Nome da tabela do armazenamento de políticas",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Provedores de pagamento a serem configurados, incluindo PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Provedores",
|
||||
"Providers - Tooltip": "Provedores a serem configurados, incluindo login de terceiros, armazenamento de objetos, código de verificação, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Nome real",
|
||||
"Records": "Registros",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Esqueceu a senha?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Solicitado",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL do Provedor",
|
||||
"Provider URL - Tooltip": "URL para configurar o provedor de serviço, este campo é apenas usado para referência e não é usado no Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Já possui uma conta?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Por favor, aceite o acordo!",
|
||||
"Please click the below button to sign in": "Por favor, clique no botão abaixo para fazer login",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Левый",
|
||||
"Logged in successfully": "Успешный вход в систему",
|
||||
"Logged out successfully": "Успешный выход из системы",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Новое приложение",
|
||||
"No verification": "Нет верификации",
|
||||
"Normal": "Обычный",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Сессия входа в систему",
|
||||
"Signup items": "Элементы регистрации",
|
||||
"Signup items - Tooltip": "Элементы, которые пользователи должны заполнить при регистрации новых аккаунтов",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Только пользователи с тегом, указанным в тегах приложения могут войти в систему",
|
||||
"The application does not allow to sign up new account": "Приложение не позволяет зарегистрироваться новому аккаунту",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Формат токена доступа",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Вы не ожидали увидеть эту страницу-подсказку"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Действие",
|
||||
"Adapter": "Адаптер",
|
||||
"Adapter - Tooltip": "Имя таблицы хранилища политик",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Провайдеры платежей должны быть настроены, включая PayPal, Alipay, WeChat Pay и т.д.",
|
||||
"Providers": "Провайдеры",
|
||||
"Providers - Tooltip": "Провайдеры должны быть настроены, включая вход с помощью сторонних сервисов, объектное хранилище, код подтверждения и т.д.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Реальное имя",
|
||||
"Records": "Записи",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Не удалось получить авторизацию MetaMask",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Забыли пароль?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Побудил",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL поставщика",
|
||||
"Provider URL - Tooltip": "URL для настройки поставщика услуг, это поле используется только для ссылки и не используется в Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "У вас есть аккаунт?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Пожалуйста, примите соглашение!",
|
||||
"Please click the below button to sign in": "Пожалуйста, нажмите на кнопку ниже, чтобы авторизоваться",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Vľavo",
|
||||
"Logged in successfully": "Úspešne prihlásený",
|
||||
"Logged out successfully": "Úspešne odhlásený",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Nová aplikácia",
|
||||
"No verification": "Bez overenia",
|
||||
"Normal": "Normálny",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Relácia prihlásenia",
|
||||
"Signup items": "Položky registrácie",
|
||||
"Signup items - Tooltip": "Položky, ktoré majú používatelia vyplniť pri registrácii nových účtov",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Malá ikona",
|
||||
"Tags - Tooltip": "Prihlásiť sa môžu iba používatelia s tagom uvedeným v tagoch aplikácie",
|
||||
"The application does not allow to sign up new account": "Aplikácia neumožňuje vytvoriť nový účet",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Formát prístupového tokenu",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Neočekávali ste, že uvidíte túto výzvu"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Prístupový kľúč",
|
||||
"Access secret": "Prístupové tajomstvo",
|
||||
"Access secret - Tooltip": "Prístupové tajomstvo",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Akcia",
|
||||
"Adapter": "Adaptér",
|
||||
"Adapter - Tooltip": "Názov tabuľky úložiska pravidiel",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Poskytovatelia platieb na konfiguráciu, vrátane PayPal, Alipay, WeChat Pay atď.",
|
||||
"Providers": "Poskytovatelia",
|
||||
"Providers - Tooltip": "Poskytovatelia na konfiguráciu, vrátane prihlásenia cez tretie strany, ukladania objektov, overovacích kódov atď.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Skutočné meno",
|
||||
"Records": "Záznamy",
|
||||
"Request URI": "URI požiadavky",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Rozpoznávanie tváre",
|
||||
"Face recognition failed": "Zlyhalo rozpoznávanie tváre",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Nepodarilo sa získať autorizáciu MetaMask",
|
||||
"Failed to obtain Web3-Onboard authorization": "Nepodarilo sa získať autorizáciu Web3-Onboard",
|
||||
"Forgot password?": "Zabudli ste heslo?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "ID projektu",
|
||||
"Project Id - Tooltip": "ID projektu",
|
||||
"Prompted": "Vyžiadané",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL poskytovateľa",
|
||||
"Provider URL - Tooltip": "URL na konfiguráciu poskytovateľa služby, toto pole sa používa len na referenciu a v Casdoor sa nepoužíva",
|
||||
"Public key": "Verejný kľúč",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Máte účet?",
|
||||
"Label": "Štítok",
|
||||
"Label HTML": "HTML štítok",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Miesto na vyplnenie",
|
||||
"Please accept the agreement!": "Prosím, akceptujte dohodu!",
|
||||
"Please click the below button to sign in": "Prosím, kliknite na nižšie uvedené tlačidlo na prihlásenie",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Left",
|
||||
"Logged in successfully": "Logged in successfully",
|
||||
"Logged out successfully": "Logged out successfully",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Real name",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Forgot password?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Have account?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Please accept the agreement!",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Sol",
|
||||
"Logged in successfully": "Başarıyla giriş yapıldı",
|
||||
"Logged out successfully": "Başarıyla çıkış yapıldı",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "New Application",
|
||||
"No verification": "No verification",
|
||||
"Normal": "Normal",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Signin session",
|
||||
"Signup items": "Signup items",
|
||||
"Signup items - Tooltip": "Items for users to fill in when registering new accounts",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "The application does not allow to sign up new account",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "The format of access token",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "You are unexpected to see this prompt page"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Action",
|
||||
"Adapter": "Adapter",
|
||||
"Adapter - Tooltip": "Table name of the policy store",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Payment providers to be configured, including PayPal, Alipay, WeChat Pay, etc.",
|
||||
"Providers": "Providers",
|
||||
"Providers - Tooltip": "Providers to be configured, including 3rd-party login, object storage, verification code, etc.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Gerçek isim",
|
||||
"Records": "Records",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Metamask yetkilendirmesi başarısız",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Şifrenizi mi unuttunuz?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Prompted",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Provider URL",
|
||||
"Provider URL - Tooltip": "URL for configuring the service provider, this field is only used for reference and is not used in Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Zaten bir hesabınız var mı?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Lütfen, kullanım koşullarını kabul ediniz",
|
||||
"Please click the below button to sign in": "Please click the below button to sign in",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Ліворуч",
|
||||
"Logged in successfully": "Успішно ввійшли",
|
||||
"Logged out successfully": "Успішно вийшов",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Нова заявка",
|
||||
"No verification": "Без підтвердження",
|
||||
"Normal": "нормальний",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Сеанс входу",
|
||||
"Signup items": "Пункти реєстрації",
|
||||
"Signup items - Tooltip": "Пункти, які користувачі повинні заповнити під час реєстрації нових облікових записів",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Маленький значок",
|
||||
"Tags - Tooltip": "Увійти можуть лише користувачі з тегом, указаним у тегах програми",
|
||||
"The application does not allow to sign up new account": "Програма не дозволяє зареєструвати новий обліковий запис",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Формат маркера доступу",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Ви неочікувано побачите цю сторінку запиту"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Ключ доступу - підказка",
|
||||
"Access secret": "Секрет доступу",
|
||||
"Access secret - Tooltip": "Секрет доступу - підказка",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Дія",
|
||||
"Adapter": "Перехідник",
|
||||
"Adapter - Tooltip": "Назва таблиці сховища полісів",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Платіжні постачальники, які потрібно налаштувати, зокрема PayPal, Alipay, WeChat Pay тощо.",
|
||||
"Providers": "Провайдери",
|
||||
"Providers - Tooltip": "Постачальники, які потрібно налаштувати, включаючи вхід сторонніх розробників, зберігання об’єктів, код підтвердження тощо.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Справжнє ім'я",
|
||||
"Records": "Записи",
|
||||
"Request URI": "URI запиту",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Розпізнавання обличчя",
|
||||
"Face recognition failed": "Помилка розпізнавання обличчя",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Не вдалося отримати авторизацію MetaMask",
|
||||
"Failed to obtain Web3-Onboard authorization": "Не вдалося отримати авторизацію Web3-Onboard",
|
||||
"Forgot password?": "Забули пароль?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Ідентифікатор проекту",
|
||||
"Project Id - Tooltip": "Ідентифікатор проекту – підказка",
|
||||
"Prompted": "Запропоновано",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "URL-адреса постачальника",
|
||||
"Provider URL - Tooltip": "URL-адреса для налаштування постачальника послуг, це поле використовується лише для довідки та не використовується в Casdoor",
|
||||
"Public key": "Відкритий ключ",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Є акаунт?",
|
||||
"Label": "Мітка",
|
||||
"Label HTML": "Мітка HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Заповнювач",
|
||||
"Please accept the agreement!": "Будь ласка, прийміть угоду!",
|
||||
"Please click the below button to sign in": "Натисніть кнопку нижче, щоб увійти",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "Trái",
|
||||
"Logged in successfully": "Đăng nhập thành công",
|
||||
"Logged out successfully": "Đã đăng xuất thành công",
|
||||
"Multiple Choices": "Multiple Choices",
|
||||
"New Application": "Ứng dụng mới",
|
||||
"No verification": "Không xác minh",
|
||||
"Normal": "Bình thường",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "Phiên đăng nhập",
|
||||
"Signup items": "Các mục đăng ký",
|
||||
"Signup items - Tooltip": "Các thông tin cần được người dùng điền khi đăng ký tài khoản mới",
|
||||
"Single Choice": "Single Choice",
|
||||
"Small icon": "Small icon",
|
||||
"Tags - Tooltip": "Only users with the tag that is listed in the application tags can login",
|
||||
"The application does not allow to sign up new account": "Ứng dụng không cho phép đăng ký tài khoản mới",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Định dạng của mã thông báo truy cập",
|
||||
"Token signing method": "Token signing method",
|
||||
"Token signing method - Tooltip": "Signing method of JWT token, needs to be the same algorithm as the certificate",
|
||||
"Use Email as NameID": "Use Email as NameID",
|
||||
"Use Email as NameID - Tooltip": "Use Email as NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "Bạn không mong đợi thấy trang này hiện lên"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "Access key - Tooltip",
|
||||
"Access secret": "Access secret",
|
||||
"Access secret - Tooltip": "Access secret - Tooltip",
|
||||
"Access token is empty": "Access token is empty",
|
||||
"Action": "Hành động",
|
||||
"Adapter": "Bộ chuyển đổi",
|
||||
"Adapter - Tooltip": "Tên bảng của kho lưu trữ chính sách",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "Cung cấp thanh toán được cấu hình, bao gồm PayPal, Alipay, WeChat Pay, vv.",
|
||||
"Providers": "Nhà cung cấp",
|
||||
"Providers - Tooltip": "Các nhà cung cấp phải được cấu hình, bao gồm đăng nhập bên thứ ba, lưu trữ đối tượng, mã xác minh, v.v.",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "QR code is too large",
|
||||
"Real name": "Tên thật",
|
||||
"Records": "Hồ sơ",
|
||||
"Request URI": "Request URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "Face Recognition",
|
||||
"Face recognition failed": "Face recognition failed",
|
||||
"Failed to log out": "Failed to log out",
|
||||
"Failed to obtain MetaMask authorization": "Failed to obtain MetaMask authorization",
|
||||
"Failed to obtain Web3-Onboard authorization": "Failed to obtain Web3-Onboard authorization",
|
||||
"Forgot password?": "Quên mật khẩu?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "Project Id",
|
||||
"Project Id - Tooltip": "Project Id - Tooltip",
|
||||
"Prompted": "Thúc đẩy",
|
||||
"Provider - Tooltip": "Provider - Tooltip",
|
||||
"Provider URL": "Địa chỉ URL nhà cung cấp",
|
||||
"Provider URL - Tooltip": "URL để cấu hình nhà cung cấp dịch vụ, trường này chỉ được sử dụng để tham khảo và không được sử dụng trong Casdoor",
|
||||
"Public key": "Public key",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "Có tài khoản không?",
|
||||
"Label": "Label",
|
||||
"Label HTML": "Label HTML",
|
||||
"Options": "Options",
|
||||
"Placeholder": "Placeholder",
|
||||
"Please accept the agreement!": "Vui lòng chấp nhận thỏa thuận!",
|
||||
"Please click the below button to sign in": "Xin vui lòng nhấn vào nút bên dưới để đăng nhập",
|
||||
|
@ -74,6 +74,7 @@
|
||||
"Left": "居左",
|
||||
"Logged in successfully": "登录成功",
|
||||
"Logged out successfully": "登出成功",
|
||||
"Multiple Choices": "多选",
|
||||
"New Application": "添加应用",
|
||||
"No verification": "不校验",
|
||||
"Normal": "标准",
|
||||
@ -112,6 +113,7 @@
|
||||
"Signin session": "保持登录会话",
|
||||
"Signup items": "注册项",
|
||||
"Signup items - Tooltip": "注册用户注册时需要填写的项目",
|
||||
"Single Choice": "单选",
|
||||
"Small icon": "小图标",
|
||||
"Tags - Tooltip": "用户的标签在应用的标签集合中时,用户才可以登录该应用",
|
||||
"The application does not allow to sign up new account": "该应用不允许注册新账户",
|
||||
@ -123,6 +125,8 @@
|
||||
"Token format - Tooltip": "Access Token格式",
|
||||
"Token signing method": "Token签名算法",
|
||||
"Token signing method - Tooltip": "JWT token的签名算法,需要与证书算法相匹配",
|
||||
"Use Email as NameID": "使用邮箱作为NameID",
|
||||
"Use Email as NameID - Tooltip": "使用邮箱作为NameID - Tooltip",
|
||||
"You are unexpected to see this prompt page": "错误:该提醒页面不应出现"
|
||||
},
|
||||
"cert": {
|
||||
@ -179,6 +183,7 @@
|
||||
"Access key - Tooltip": "访问密钥",
|
||||
"Access secret": "访问密码",
|
||||
"Access secret - Tooltip": "访问密码",
|
||||
"Access token is empty": "Access token为空",
|
||||
"Action": "操作",
|
||||
"Adapter": "适配器",
|
||||
"Adapter - Tooltip": "策略存储的表名",
|
||||
@ -334,6 +339,8 @@
|
||||
"Provider - Tooltip": "需要配置的支付提供商,包括PayPal、支付宝、微信支付等",
|
||||
"Providers": "提供商",
|
||||
"Providers - Tooltip": "需要配置的提供商,包括第三方登录、对象存储、验证码等",
|
||||
"QR Code": "QR Code",
|
||||
"QR code is too large": "二维码过大",
|
||||
"Real name": "姓名",
|
||||
"Records": "日志",
|
||||
"Request URI": "请求URI",
|
||||
@ -478,6 +485,7 @@
|
||||
"Face ID": "Face ID",
|
||||
"Face Recognition": "人脸识别",
|
||||
"Face recognition failed": "人脸识别失败",
|
||||
"Failed to log out": "注销失败",
|
||||
"Failed to obtain MetaMask authorization": "获取MetaMask授权失败",
|
||||
"Failed to obtain Web3-Onboard authorization": "获取 Web3-Onboard 授权失败",
|
||||
"Forgot password?": "忘记密码?",
|
||||
@ -831,6 +839,7 @@
|
||||
"Project Id": "项目 Id",
|
||||
"Project Id - Tooltip": "项目 Id - 工具提示",
|
||||
"Prompted": "注册后提醒绑定",
|
||||
"Provider - Tooltip": "提供商 - Tooltip",
|
||||
"Provider URL": "提供商URL",
|
||||
"Provider URL - Tooltip": "提供商网址配置对应的URL,该字段仅用来方便跳转,在Casdoor平台中未使用",
|
||||
"Public key": "公钥",
|
||||
@ -950,6 +959,7 @@
|
||||
"Have account?": "已有账号?",
|
||||
"Label": "标签",
|
||||
"Label HTML": "标签HTML",
|
||||
"Options": "选项",
|
||||
"Placeholder": "占位符",
|
||||
"Please accept the agreement!": "请先同意用户协议!",
|
||||
"Please click the below button to sign in": "请点击下方按钮登录",
|
||||
|
@ -136,6 +136,7 @@ class SigninMethodTable extends React.Component {
|
||||
options = [
|
||||
{id: "All", name: i18next.t("general:All")},
|
||||
{id: "Non-LDAP", name: i18next.t("general:Non-LDAP")},
|
||||
{id: "Hide-Password", name: i18next.t("general:Hide-Password")},
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -6101,6 +6101,11 @@ crypto-es@^1.2.2:
|
||||
resolved "https://registry.yarnpkg.com/crypto-es/-/crypto-es-1.2.7.tgz#754a6d52319a94fb4eb1f119297f17196b360f88"
|
||||
integrity sha512-UUqiVJ2gUuZFmbFsKmud3uuLcNP2+Opt+5ysmljycFCyhA0+T16XJmo1ev/t5kMChMqWh7IEvURNCqsg+SjZGQ==
|
||||
|
||||
crypto-js@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631"
|
||||
integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==
|
||||
|
||||
crypto-random-string@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
|
||||
|
Reference in New Issue
Block a user