神族九帝's blog 神族九帝's blog
首页
  • 神卡套餐 (opens new window)
  • 神族九帝 (opens new window)
  • 网盘资源 (opens new window)
  • 今日热点 (opens new window)
  • 在线PS (opens new window)
  • IT工具 (opens new window)
  • FC游戏 (opens new window)
  • 在线壁纸 (opens new window)
  • 面试突击
  • 复习指导
  • HTML
  • CSS
  • JavaScript
  • 设计模式
  • 浏览器
  • 手写系列
  • Vue
  • Webpack
  • Http
  • 前端优化
  • 项目
  • 面试真题
  • 算法
  • 精选文章
  • 八股文
  • 前端工程化
  • 工作笔记
  • 前端基础建设与架构 30 讲
  • vue2源码学习
  • 剖析vuejs内部运行机制
  • TypeScript 入门实战笔记
  • vue3源码学习
  • 2周刷完100道前端优质面试真题
  • 思维导图
  • npm发包
  • 重学node
  • 前端性能优化方法与实战
  • webpack原理与实战
  • webGl
  • 前端优化
  • Web3
  • React
  • 更多
  • 未来要做的事
  • Stirling-PDF
  • ComfyUI
  • 宝塔面板+青龙面板
  • 安卓手机当服务器使用
  • 京东自动评价代码
  • 搭建x-ui免流服务器(已失效)
  • 海外联盟
  • 好玩的docker
  • 收藏夹
  • 更多
GitHub (opens new window)

神族九帝,永不言弃

首页
  • 神卡套餐 (opens new window)
  • 神族九帝 (opens new window)
  • 网盘资源 (opens new window)
  • 今日热点 (opens new window)
  • 在线PS (opens new window)
  • IT工具 (opens new window)
  • FC游戏 (opens new window)
  • 在线壁纸 (opens new window)
  • 面试突击
  • 复习指导
  • HTML
  • CSS
  • JavaScript
  • 设计模式
  • 浏览器
  • 手写系列
  • Vue
  • Webpack
  • Http
  • 前端优化
  • 项目
  • 面试真题
  • 算法
  • 精选文章
  • 八股文
  • 前端工程化
  • 工作笔记
  • 前端基础建设与架构 30 讲
  • vue2源码学习
  • 剖析vuejs内部运行机制
  • TypeScript 入门实战笔记
  • vue3源码学习
  • 2周刷完100道前端优质面试真题
  • 思维导图
  • npm发包
  • 重学node
  • 前端性能优化方法与实战
  • webpack原理与实战
  • webGl
  • 前端优化
  • Web3
  • React
  • 更多
  • 未来要做的事
  • Stirling-PDF
  • ComfyUI
  • 宝塔面板+青龙面板
  • 安卓手机当服务器使用
  • 京东自动评价代码
  • 搭建x-ui免流服务器(已失效)
  • 海外联盟
  • 好玩的docker
  • 收藏夹
  • 更多
GitHub (opens new window)
  • 工作笔记

    • 国际化多语言一键替换,在线翻译
      • 安装插件
      • 配置
      • 安装vue-i18n依赖
        • vue2
        • vu3
    • 虚拟列表
    • vscode插件开发
    • Code Review
  • 前端基础建设与架构 30 讲

  • vue2源码学习

  • 剖析vuejs内部运行机制

  • TypeScript 入门实战笔记

  • vue3源码学习

  • 2周刷完100道前端优质面试真题

  • 思维导图

  • npm发包

  • 重学node

  • 前端性能优化方法与实战

  • webpack原理与实战

  • webGl

  • 前端优化

  • Web3

  • React

  • 更多

  • 笔记
  • 工作笔记
wu529778790
2024-08-18

国际化多语言一键替换,在线翻译

自动扫描项目全部汉字,一键在线翻译,意见拆分语言文件,分分钟实现国际化。

20240818214510

# 安装插件

https://marketplace.visualstudio.com/items?itemName=wu529778790.i18n-automatically (opens new window)

# 配置

右键国际化-设置,自动生成配置文件automatically-i18n-config.json

然后修改配置

{
  "i18nFilePath": "/src/i18n",
  "templateI18nCall": "$t",
  "scriptI18nCall": "i18n.t",
  "autoImportI18n": "import i18n from '@/i18n';",
  "keyFilePathLevel": 2,
  "excludedExtensions": [
    ".svg",
    ".png",
    ".jpg",
    ".jpeg",
    ".gif",
    ".bmp",
    ".ico",
    ".md",
    ".txt",
    ".json",
    ".css",
    ".scss",
    ".less",
    ".sass",
    ".styl"
  ],
  "debug": false,
  "baidu": {
    "appid": "",
    "secretKey": ""
  }
}

# 安装vue-i18n依赖

# vue2

yarn add [email protected]

然后新建src/client/i18n/index.js

import VueI18n from 'vue-i18n'
import Vue from 'vue'

Vue.use(VueI18n)

// 引入语言文件
function loadLocaleMessages() {
  const locales = require.context('./locale', true, /[a-z0-9-]+\.json$/i)
  const messages = {}
  locales.keys().forEach(key => {
    const matched = key.match(/([a-z0-9-]+)\./i)
    if (matched && matched.length > 1) {
      const locale = matched[1]
      messages[locale] = locales(key)
    }
  })
  return messages
}

const locale = window.navigator.language.split('-')[0] || localStorage.getItem('locale') || 'zh'

const i18n = new VueI18n({
  legacy: false, // 设置为 false,启用 composition API 模式
  locale, // set default locale
  messages: loadLocaleMessages(), // set locale messages
  globalInjection: true, // 全局注入
  silentTranslationWarn: false //隐藏这些报错
})

export default i18n

然后在src/client/main.js中引入

import i18n from '@/i18n'

new Vue({
  i18n,
  router,
  store,
  render: h => h(App)
}).$mount('#app')

# vu3

yarn add [email protected]

然后新建src/client/i18n/index.js

import { createI18n } from 'vue-i18n'

// 引入语言文件
function loadLocaleMessages() {
  const locales = require.context('./locale', true, /[a-z0-9-]+\.json$/i)
  const messages = {}
  locales.keys().forEach(key => {
    const matched = key.match(/([a-z0-9-]+)\./i)
    if (matched && matched.length > 1) {
      const locale = matched[1]
      messages[locale] = locales(key)
    }
  })
  return messages
}

const i18n = createI18n({
  legacy: false, // 设置为 false,启用 composition API 模式
  locale: navigator.language, // set default locale
  messages: loadLocaleMessages(), // set locale messages
  globalInjection: true, // 全局注入
  silentTranslationWarn: false //隐藏这些报错
})

export default i18n

然后在src/client/main.js中引入

import i18n from '@/i18n'
app.use(i18n)
编辑 (opens new window)
上次更新: 2025/03/11, 11:29:39
虚拟列表

虚拟列表→

最近更新
01
Code Review
10-14
02
ComfyUI
10-11
03
vscode插件开发
08-24
更多文章>
Power by vuepress | Copyright © 2015-2025 神族九帝
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×