Vue-i18n踩坑记录

因为最近的一个Vue项目要上线国际版了,需要在中文版的基础上增加一个英文版。i18n虽然很方便,但还是有不少坑,记录在这里。

  1. 现在Vue-i18n12+版本还没有太好的支持,建议使用9+版本。
text 复制代码
npm install vue-i18n@9
  1. Vue-i18n是支持插值文本的,但插值用单括号。使用时用对象传入
js 复制代码
// en.ts
const en = {
    hint: "{ count } files in total, { selected } selected"
}
html 复制代码
<div class="selected-count">{{ t('upload.uploadTable.hint', {
        count: rows.length,
        selected: selectedFiles.length
    }) }}
</div>
  1. 列表渲染的中文文本在添加国际化后,不能用ref,ref也不能响应。必须用computed
js 复制代码
const headers = computed(() => [
    { label: t('upload.table.selected'), key: '已选择', width: '60px' },
    { label: t('upload.table.id'), key: 'id', width: '130px' },
    { label: t('upload.table.filename'), key: '文件名', width: '160px' },
    { label: t('upload.table.expireTime'), key: '过期时间', width: '130px' },
    { label: t('upload.table.operation'), key: '操作', width: '160px' }
])
  1. 大部分中文转英文后文本会变长,需要换行或改元素宽度
html 复制代码
<Button :width="locale === 'en' ? '130px' : '140px'" @click="handleConfirmUpload">
    {{t('upload.buttons.confirm')}}
</Button>
  1. 中文不需要考虑复数,英文还要加一层if判断,多于一个需要加复数

遇到问题再更新

相关推荐
爱学习的程序媛4 分钟前
【Web前端】优化Core Web Vitals提升用户体验
前端·ui·web·ux·用户体验
zabr5 分钟前
花了 100+ 篇笔记,我整理出 了一套 AI Agent 工程完全指南
前端·后端·agent
软弹17 分钟前
深入理解 React Ref 机制:useRef 与 forwardRef 的协作原理
前端·javascript·react.js
YaHuiLiang21 分钟前
Ai Coding浪潮下的前端:“AI在左,裁员在右”
前端
雪碧聊技术29 分钟前
前端vue代码架子搭建
前端·javascript·vue.js·前端项目代码框架搭建
爱学习的程序媛29 分钟前
【Web前端】前端用户体验优化全攻略
前端·ui·交互·web·ux·用户体验
han_32 分钟前
JavaScript设计模式(二):策略模式实现与应用
前端·javascript·设计模式
x***r15136 分钟前
Notepad++ 8.6 安装教程:详细步骤+自定义安装路径(附注意事项)
linux·前端·javascript
Hilaku39 分钟前
为什么很多工作 5 年的前端,身价反而卡住了?🤷‍♂️
前端·javascript·面试
ai超级个体39 分钟前
前端下午茶:这 3 个网页特效建议收藏(送源码)
前端·three.js·threejs·网页设计·vibe coding·网页灵感·网页分享