电商翻译

This commit is contained in:
Linzm committed 2025-11-13 16:21:57 +08:00
1 parent 6938e12196
commit 75e04a4de3
12 files changed
+854 -891

No files matched your search

+29 -68
View File
@@ -12,89 +12,50 @@ import ko from 'vant/es/locale/lang/ko-KR';
const { i18next, t } = useTranslation();
i18n.set(t);
watch(
() => i18next.language,
(val: any) => {
console.log("val", val);
},
{ immediate: true }
);
// function getLocaleName() {
// switch (i18next.language) {
// case 'zh':
// case "zh-CN":
// return 'zh-CN';
// case "en-US":
// case "en":
// return 'en-US';
// case "es":
// case "es-AR":
// case "es-BO":
// case "es-CL":
// case "es-ES":
// case "es-MX":
// case "es-AR":
// return 'es';
// case "zh-TW":
// case "zh-HK":
// return 'zh-TW';
// default:
// return 'en';
// }
// }
function getLocale() {
switch (i18next.language) {
// 根据 i18next 语言获取对应的 Vant Locale
function getVantLocale() {
const lang = i18next.language || "zh-CN";
switch (lang) {
case "zh-CN":
return zhCN;
case "en":
return enUS;
case "es":
case "es-AR":
case "es-BO":
case "es-CL":
case "es-ES":
case "es-MX":
case "es-AR":
case "en-US":
return enUS;
case "zh-TW":
case "zh-HK":
return zhTW;
case "ko":
case "ko-KR":
return ko;
default:
return enUS;
return zhCN; // 默认使用简体中文
}
}
// 更新 Vant Locale
function updateVantLocale() {
const lang = i18next.language || "zh-CN";
const vantLocale = getVantLocale();
Locale.use(lang, vantLocale);
console.log("语言已切换为:", lang);
}
onMounted(() => {
let obj = filterUrl(window.location.href)
// console.log(obj)
let urlLan = obj.lang;
// 浏览器缓存判断
let cookieLan = localStorage.getItem("i18nextLng")
// 浏览器语言判断
let userLan = navigator.language;
let lang = urlLan || cookieLan || userLan || "zh-CN";
Locale.use(lang || i18next.language, getLocale())
})
function filterUrl(url) {
let filter = url.split("?")[1]?.split("&");
var obj = {};
for (var i = 0; i < filter?.length; i++) {
var item = filter[i].split('=');
var key = item[0];
var value = item[1];
obj[key] = value;
// 监听 i18next 语言变化,自动更新 Vant Locale
watch(
() => i18next.language,
(newLang: string) => {
if (newLang) {
updateVantLocale();
}
return obj
}
},
{ immediate: true }
);
// 组件挂载时初始化 Vant Locale
onMounted(() => {
// i18next 会自动检测浏览器语言,这里只需要确保 Vant Locale 同步
updateVantLocale();
});
</script>