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判断,多于一个需要加复数

遇到问题再更新

相关推荐
Vuji1 天前
Pi 插件解剖|ssh.ts:只用 221 行,让 Agent 直接在远程机器干活
前端·人工智能·agent
漏刻有时1 天前
Three.js 3D地图开发实录:从GeoJSON到流光飞线,一个纯前端SPA可视化引擎的12个坑
前端
clawdashi1 天前
2026 办公 Agent 选型指南:按场景分五类,一次讲清
前端·人工智能
无糖可可果1 天前
从零看懂 JWT 登录鉴权:一个 React Demo 的完整拆解
前端·javascript
驳是1 天前
代码洁癖患者会喜欢的几款 CLI 小工具
前端
Csvn1 天前
🛋️ requestIdleCallback:把非关键任务塞进浏览器的"空闲时间",告别卡顿
前端
江华森1 天前
从 fork 到协程:一次完整的操作系统并发编程实操
前端·程序员
四千岁1 天前
稀疏向量BM25Retriever不支持中文怎么办?jieba来帮忙
前端·javascript·后端
这是个栗子1 天前
【JS代码分析】前端鉴权基础:Token 的本地存储与状态重置实践
开发语言·前端·javascript
颜进强1 天前
14 - OpenSpec 老页面改造骨架:定位 + 增量 + 回归三件套
前端·后端·ai编程