Skip to content

Commit 934ebb3

Browse files
committed
feat: change lang attribute when switching languages
improve a11y
1 parent e690478 commit 934ebb3

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
2-
<html lang="en">
2+
<html lang="zh-CN">
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"/>

src/utils/i18n.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,19 @@ export const languageColumns: PickerColumn = [
2020

2121
/** 获取当前语言对应的语言包名称 */
2222
function getI18nLocale() {
23-
const locale = localStorage.getItem('language') || navigator.language
23+
const storedLocale = localStorage.getItem('language') || navigator.language
24+
let locale = FALLBACK_LOCALE // 默认语言包
2425
for (const l of languageColumns) {
2526
const value = l.value as string
26-
if (value === locale)
27-
return locale // 存在当前语言的语言包
28-
else if (value.indexOf(locale) === 0)
29-
return value // 存在当前语言的任意地区的语言包
27+
if (value === storedLocale // 存在当前语言的语言包
28+
|| value.indexOf(storedLocale) === 0 // 存在当前语言的任意地区的语言包
29+
) {
30+
locale = value
31+
break
32+
}
3033
}
31-
return FALLBACK_LOCALE // 使用默认语言包
34+
document.querySelector('html').setAttribute('lang', locale)
35+
return locale
3236
}
3337

3438
export const i18n = createI18n({
@@ -43,6 +47,7 @@ export const locale = computed({
4347
return i18n.global.locale.value
4448
},
4549
set(language: string) {
50+
document.querySelector('html').setAttribute('lang', language)
4651
localStorage.setItem('language', language)
4752
i18n.global.locale.value = language
4853
Locale.use(language)

0 commit comments

Comments
 (0)