资讯详情

资讯详情

让轮播的前后按钮跟着用户说话:vue-awesome-swiper 国际化落地手记

让轮播的前后按钮跟着用户说话vue-awesome-swiper 国际化落地手记【免费下载链接】vue-awesome-swiper Swiper component for vuejs项目地址: https://gitcode.com/gh_mirrors/vu/vue-awesome-swiper多语言站点上线后用户把站点语言切成英文轮播上的“上一页 / 下一页”却还停在中文字样上。这不是文案问题——vue-awesome-swiper 本身没有 i18n 能力语言逻辑得你自己补。这篇文章把整套活拆给你看三种实现思路按改动成本对比直接给推荐路线推荐路线分四步走完代码贴出来就能跑切换语言后容易踩的 5 个坑及处理办法已弃用 v5 的迁移对照表先查版本vue-awesome-swiper v5 是个已弃用的桥接层一句话定位它是 Vue 里包 Swiper 的组件库。但动手前必须知道它的现状——官方已弃用最后一个版本是v5.0.0见 CHANGELOG.md2022-03-19 发布README.md 开头第一段就是 DEPRECATED 声明官方建议迁移到 Swiper 官方提供的 Vue 组件。v5 里装了什么看源码就知道index.js 全部内容就是把swiper/vue重新导出外加几行全局注册逻辑。它只支持 Vue 3package.json 的peerDependencies把 swiper 锁在 7.x / 8.x、vue 锁在 3.x。为什么说这对做国际化反而是好消息因为这一层不写任何语言逻辑——全仓库源码检索i18n、locale、international均无命中语言问题完全留给使用者。官方不加 i18n 也有它的道理Swiper 本身是语言中立的库导航文案交给使用方传入把语言包塞进封装层反而限制用法。桥接层足够薄意味着你补国际化时不用碰 Swiper 内部外面包一层就行工作量可控。 先选国际化路线三种方案按改动成本对比方案改动成本灵活性维护成本适用场景A 封装组件⭐⭐☆☆☆⭐⭐⭐⭐⭐⭐⭐⭐⭐☆多处轮播、长期维护B 模板串直传⭐☆☆☆☆⭐⭐☆☆☆⭐⭐☆☆☆单页一锤子买卖C 手动 DOM 同步⭐⭐⭐☆☆⭐⭐☆☆☆⭐⭐☆☆☆老项目动不了轮播结构三个方案的差别在于语言逻辑放在哪A 把国际化收进一个可复用的轮播组件B 直接把语言串写进 Swiper 的导航配置里C 用 watcher 在语言切换后改写 DOM 文本。结论不用你纠结除非你只在一处页面放一个轮播、且不想新增文件否则推荐 AB 和 C 都是权宜之计语言一多你就会想重写。分步落地 vue-awesome-swiper 国际化从安装到切换语言本节目标很明确一个带语言切换按钮的页面轮播文本随站点语言实时变化且轮播位置不丢。第 1 步一条命令装好 swiper、封装层与 vue-i18n三个依赖缺一不可swiper 是本体vue-awesome-swiper 是薄封装vue-i18n 负责语言包。用 yarn 或 pnpm 的话把npm i换成对应命令即可。npm i swiper vue-awesome-swiper vue-i18n第 2 步把轮播文案收进 vue-i18n 语言包文案进项目级语言包站点切换语言时轮播自动跟着变不用单独维护一份。这里只定义轮播用到的三个键参数化文案用{n}占位。// src/i18n/index.js import { createI18n } from vue-i18n const messages { zh: { sw: { prev: 上一页, next: 下一页, goto: 前往第 {n} 页 } }, en: { sw: { prev: Prev, next: Next, goto: Go to slide {n} } } } export default createI18n({ legacy: false, globalInjection: true, locale: zh, fallbackLocale: en, messages })第 3 步封装一个跟着语言走的轮播组件分工是这一步的核心前后按钮的文本交给 Vue 模板渲染语言切换自动跟随响应式系统零 DOM 操作分页圆点则由 Swiper 的renderBullet拼 DOM 字符串语言切换后必须调一次updatePagination()才会重画。!-- src/components/I18nSwiper.vue -- template Swiper :modulesmodules :navigationnavigation :paginationpagination swiperonSwiper slot / !-- 按钮文本由 Vue 渲染语言切换自动生效 -- button typebutton classswiper-button-prev{{ t(sw.prev) }}/button button typebutton classswiper-button-next{{ t(sw.next) }}/button /Swiper /template script setup import { ref, computed, watch } from vue import { Swiper } from vue-awesome-swiper import { Navigation, Pagination } from swiper import { useI18n【免费下载链接】vue-awesome-swiper Swiper component for vuejs项目地址: https://gitcode.com/gh_mirrors/vu/vue-awesome-swiper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →