Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
fj-captcha-vue
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
郑磊
fj-captcha-vue
Commits
30740d73
Commit
30740d73
authored
Jul 02, 2024
by
郑磊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新语言判断逻辑
parent
fb6c9380
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
231 additions
and
225 deletions
+231
-225
fj-captcha-web.js
browser/fj-captcha-web.js
+13
-13
index.js
esm/index.js
+191
-188
package.json
package.json
+1
-1
index.ts
src/core/locales/index.ts
+26
-23
No files found.
browser/fj-captcha-web.js
View file @
30740d73
This source diff could not be displayed because it is too large. You can
view the blob
instead.
esm/index.js
View file @
30740d73
This diff is collapsed.
Click to expand it.
package.json
View file @
30740d73
{
"name"
:
"fj-captcha-vue"
,
"version"
:
"1.0.
4
"
,
"version"
:
"1.0.
5
"
,
"type"
:
"module"
,
"main"
:
"./esm/index.js"
,
"typings"
:
"./esm/index.d.ts"
,
...
...
src/core/locales/index.ts
View file @
30740d73
...
...
@@ -11,11 +11,6 @@ const translations: Record<string, Record<string, string>> = {
'zh-tw'
:
zhTw
,
}
/**
* 可用的语言标识
*/
const
availableLanguages
=
Object
.
keys
(
translations
)
/**
* 默认的语言标识
*/
...
...
@@ -25,12 +20,16 @@ const DEFAULT_LANGUAGE = 'zh-cn'
* 标准化语言标识
* @param language
*/
function
normalizeLanguage
(
language
:
string
):
string
{
const
parts
=
language
.
split
(
/_|-/
)
if
(
parts
.
length
>
2
)
{
parts
.
splice
(
1
,
parts
.
length
-
2
)
function
normalizeLanguage
(
language
:
string
)
{
const
parts
=
language
.
toLowerCase
().
split
(
/_|-/
)
const
lang
=
parts
[
0
]
const
country
=
parts
.
length
>
1
?
parts
[
parts
.
length
-
1
]
:
undefined
const
variant
=
parts
.
length
>
2
?
parts
[
1
]
:
undefined
return
{
lang
,
country
,
variant
,
}
return
parts
.
map
((
t
)
=>
t
.
toLowerCase
()).
join
(
'-'
)
}
/**
...
...
@@ -45,28 +44,32 @@ export function getLanguage(language?: string): string {
?
navigator
.
languages
:
[
DEFAULT_LANGUAGE
]
language
s
=
languages
.
map
((
t
)
=>
normalizeLanguage
(
t
))
const
lang
s
=
languages
.
map
((
t
)
=>
normalizeLanguage
(
t
))
for
(
let
lang
uage
of
language
s
)
{
for
(
let
lang
of
lang
s
)
{
//如果是英文那就返回英文
if
(
language
===
'en'
||
language
.
startsWith
(
'en-'
))
{
return
'en'
}
if
(
lang
.
lang
===
'en'
)
return
'en'
if
(
lang
.
lang
===
'zh'
)
{
//有变体优先判断变体
if
(
lang
.
variant
===
'hans'
)
{
return
'zh-cn'
}
else
if
(
lang
.
variant
===
'hant'
)
{
return
'zh-tw'
}
//如果是中文那就判断是简体还是繁体
if
(
language
===
'zh'
||
language
.
startsWith
(
'zh-'
))
{
if
(
availableLanguages
.
includes
(
language
))
{
return
language
//没有变体判断国家标识
if
(
lang
.
country
===
'cn'
)
{
return
'zh-cn'
}
else
if
(
lang
.
country
===
'tw'
)
{
return
'zh-tw'
}
//中文就默认用简体
//没有变体也没有国家标识就用简体中文
return
'zh-cn'
}
//都不是就继续循环
}
//到这里表示既不是英文,也不包含任何中文标识,那就用英文
return
'en'
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment