首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

初识ABP vNext(6):vue+ABP实现国际化

语言选项 语言切换 注意 前言 上一篇介绍了ABP扩展实体,并且在前端部分新增了身份认证管理和租户管理的菜单,实现这两个功能模块前,先来解决一下界面文字国际化的问题。...vue-i18n,就可以使用了。...这跟直接在前端做国际化有一点区别就是,后者的文本信息是写在前端,vue-i18n可以直接使用。而这里只是把文本信息改到后端,从后端获取后再设置到i18n,本质是一样的。...接下来只需要把界面上对应的文本使用vue-i18n的$t()方法渲染就好了,比如: ? 前端需要改动的地方比较多,但都是类似的修改。。。直接看效果: ? ? ?...其实还是有点繁琐的,要配置的比较多,不知道有没有更好的方法,欢迎评论交流。。。

1.2K10

Vue项目实战05:18n实现多语言自动切换-浏览器语言设置「建议收藏」

安装vue-i18n 直接在项目中执行安装命令:npm install vue-i18n --save ​全局引入vue-i18n 项目中引入vue-i18n,实例化vue-i18n将需要加载的语言包通过...步骤 1.src下新建locale文件夹 locale下建lang文件夹—-用来存放自己设置的多语言文件 index.js 入口文件 index.js里放置内容如下 import Vue...lib/locale/lang/en-US' import jaJP from 'vant/lib/locale/lang/ja-JP' Vue.use(VueI18n) // 自动根据浏览器系统语言设置语言...页面渲染 静态渲染时,用双大括号包裹,把数据当成变量引入,$t用来调用语言包中键对应的值。如果用的是element-ui动态绑定值,双引号即可。...$t('nav') } } ---- ---- 以上是根据浏览器自动切换语言 点击切换 //手动切换语言 change(){ if (this.

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

vue国际化vue-i18n简单使用

当然是直接用插件了,并不是自己实现 vue-i18n使用很简单: 安装依赖:npm i vue-i18n -S 引入、调用: import VueI18n from 'vue-i18n'; Vue.use...$mount('#app') 内部会把i18n通过mixin合并到vue实例上,新加属性i18n、t等属性方法。 直接使用: {{$t('lang.login')}} 切换语言: this....实现起来很简单,你可以打印$t看看,其实就是一个方法,返回对应的内容: ? 难的是内容对应的zh.js和en.js,更别说其他语言了。...当然,vue-i18n还提供了其他属性和方法,只是官网我打不开,没办法多说一些。 element-ui也是通过切换语言文件实现的。...另外就是如果要切换过程页面整体布局不会很明显,对每一个内容高度宽度要稍微注意一下,毕竟不同语言宽高比例不一样。至于vue官网的,我看见是直接地址都变了,也不知道是不是采用这种思路,直接替换文本内容。

86610

vite新建vue3项目及安装插件笔记

安装 vue-i18n 国际化 安装依赖: npm i vue-i18n 新建文件夹 i18n: //新建index.ts import { createI18n } from 'vue-i18n...`common.test`) }} import i18n from '@/i18n'; i18n.global.t('common.test'); //修改语言 i18n.global.locale.value...import { ElMessage } from 'element-plus' 使用 unplugin-element-plus 自动导入,使用 ElMessage、ElLoading 等组件,需要手动导入样式...tailwind.config.js 把缺失的补全,可能会好一点,还有一种生效了,但是不知道有没有另外的问题: // tailwind.config.js plugins: [ function...,看了很久,也试了很多次,发现全部替换都不生效,一直 additionalData:这个配置里面引入,看 sass 变量混合之类的问题,忽略了一句:然后在你的项目入口文件,导入这个样式文件以替换 Element

45820

vue-test-utils mock 全局对象

> export default { name: "Bilingual" } 你先在另一个文件弄好翻译,然后通过 $t 引用,这就是 vue-i18n 的工作方式...$t is not a function" 这是因为我们并未安装 vue-i18n,所以全局的 $t 方法并不存在。...(译注:通过这种方式就不能在单元测试耦合与特定语言相关的内容了,因为翻译功能实际上已失效,也更无法处理可选参数等) 使用配置设置默认的 mocks 有时需要一个 mock 的默认值,这样就不用为每个测试用例都设置一遍了...Mock Value" 这个示例中用到了 Jest,所以我将把默认 mock 描述 jest.init.js 文件 -- 该文件会在测试运行前被自动加载。... (译注:依然无法应付复杂的翻译) 总结 本文论述了: 测试用例中使用 mocks 以 mock 一个全局对象 用 config.mocks 设置默认的 mock

1.6K10

Vue-i18n 国际化

基本使用 安装 npm install –save vue-i18n 创建lang 文件夹 index.js引入 i18n并使用 import Vue from 'vue' import VueI18n...from 'vue-i18n' Vue.use(VueI18n) const i18n = new VueI18n({ // 设置当前语言 locale: 'zh', messages...,比如默认的是中文,无论你后期改成什么状态,最后重新加载时一定是中文 此时需要设置系统的语言环境 使用localStorage去辅助完成国际化的语言环境设置 比如目前只支持中英文 此时需要获取当前的语言状态.../en' Vue.use(VueI18n) //设置语言环境 //获取浏览器的语言 //console.log(navigator.language) //浏览器的语言 const navLang =...== 'en-US'){ localLang = en } //console.log(localLang) //获取localStorage(本地存储)的语言状态,如果没有设置为默认的语言环境

66410

【源码】Vue-i18n: 你知道国际化是怎么实现的么?

// 准备翻译的语言环境信息 // 设置地区信息 messages: { en: { message...的 $t 方法的实现,揭开国际化翻译的神秘面纱 extent.js ,我们看到 Vue 的原型挂载 $t 方法,这是我们为什么能够直接在模板中使用的原因。...// Vue 的原型挂载 $t 方法,这是我们为什么能够直接在模板中使用的原因 // 把 VueI18n 对象实例的方法都注入到 Vue 实例上 Vue.prototype....现在要做的就是去监听这些 data 的变化 Vue-i18n 的这一块的逻辑主要是 mixin.js 文件 beforeCreate 调用 watchI18nData 方法,这个方法的实现如下...-- `preserve` 修饰符 --> directive.js ,我们看到实际上是调用了 t 方法和 tc 方法,并给 textContent

2.8K40

【源码】Vue-i18n: 你知道国际化是怎么实现的么?

// 准备翻译的语言环境信息 // 设置地区信息 messages: { en: { message...其中左侧是 Vue-i18n 提供的一些方法、组件、自定义指令等能力,右侧是 Vue-i18n 对数据的管理 入口文件为 index.js, VueI18n 类的 constructor 先调用...的 $t 方法的实现,揭开国际化翻译的神秘面纱 extent.js ,我们看到 Vue 的原型挂载 $t 方法,这是我们为什么能够直接在模板中使用的原因。...// Vue 的原型挂载 $t 方法,这是我们为什么能够直接在模板中使用的原因 // 把 VueI18n 对象实例的方法都注入到 Vue 实例上 Vue.prototype....现在要做的就是去监听这些 data 的变化 Vue-i18n 的这一块的逻辑主要是 mixin.js 文件 beforeCreate 调用 watchI18nData 方法,这个方法的实现如下

1.9K10

Ant-design-vue+vue-i18n实现前端国际化

安装vue-i18n yarn add vue-i18n public文件夹下新建languages文件夹,新建langs文件夹和i18n.js,langs文件夹下新建index.js、cn.js、...,接下来我们写切换多语言功能,src下的app.vue文件引入多语言文件和我们写切换的方法: created内容如下: created() { // 默认中文 localStorage.lang...,别的组件我们只要调用这个方法就可以切换多语言。...页面适配多语言分为view中使用和js view我们用 :label="$t('logistics.search')" 或者 {{$t('logistics.search')}} js我们用 this...$t("logistics.search") 简单测试下切换多语言login.vue(你可以是任意组件)写调用方法 显示效果 多语言适配完成,但是,如果我们系统文字多,那一个文件会很大,加载很慢

3.2K1813

vue 项目中英文切换

最近vue项目需要中英文切换,查了资料,发现大部分都是采用 vue-i18n,但是写的比较简单,大部分都是全局引入语言包,遇到的几个问题 1、如何结合element-ui 实现中英文切换 2、如何在组件中使用各自的语言包...3、中英文切换如何刷新页面,特别是中英文切换时根据当前语言调用中文或者英文接口 全局引入语言包实现中英文切换 一、安装vue-i18n,我安装的版本是 "vue-i18n": "^8.22.0",...} } 关于如果实现中英文切换时根据当前语言调用中文或者英文接口 ( 通过provide inject 实现 ),假如中英切换按钮Home.vue上,Home.vue含有 <el-button @click="changeLanage...console.log(res.data.info); this.info = res.data.info; }); }, }, }; 发现在子组件<em>中</em>同时使用全局的<em>语言</em>包和局部<em>语言</em>包

2.8K30

Vite+Vue3+Typescript后台管理项目 i18n国际化

vite 天生支持 typescript 使用ts更加友好 vite 带有css 预处理器,包括less scss 使用都可以不用安装loader,(webpack需要安装loader) vite修改...创建i18n文件 使用方法如下 import { App } from 'vue' import { createI18n } from 'vue-i18n' import { zh } from '...({ legacy: false, locale: localStorage.getItem('lang') || language, // 优先从本地存储获取语言设置,如果没有则使用浏览器默认语言...fallbackLocale: 'en', // 当前语言无法找到匹配的翻译时,使用的备选语言 messages: { en, zh } }) // 封装i18n方法 export...as any)[name]) 做了这些工作,页面内修改path就可以进行页面切换了, 切换语言 封装切换项目语言组件,可以写在项目公用组件库里 components文件夹里 changeLang组件内容

975143

vue2升级vue3:vue-i18n国际化异步按需加载

vue2异步加载之前说过,vue3还是之前的方法,只是把 i18n.setLocaleMessage改为i18n.global.setLocaleMessage但是本文还是详细说一遍:为什么需要异步加载语言包主要还是缩小提代码包...dayjs.locale('zh-cn');}const i18n = createI18n({  locale: currentLang,  fallbackLocale: 'zh-cn', // 设置备用语言...{ ...chineseJson },};*/const i18n = createI18n({  locale: currentLang,  fallbackLocale: 'zh-cn', // 设置备用语言...,比如初始化只加载 fallbackLocale ,代码中注释的部分vue3使用vue-i18n 9.x ,相关方法i18n.global.xxx但是这个加载包还是有些打,需要进一步拆分按模块或路由加载语言包这个优化有很多措施拆分模块之前的语言包全部是一个...然后路由钩子里面,按需注入。

1.5K10

如何在vue项目中支持多种语言

' } }, zh: { message: { hello: '世界' } } } 从上面的代码可以看出,hello是一个公众变量,中文网站显示为“世界”,英文网站为“...如何加载到全局呢,Vue的项目中,就需要用到Vue-i18n这个模块。代码如下: main.js import Vue from 'vue' import App from '....$t("message.hello")) } } 打印结果为世界,因为创建vue-i18n实例的过程我们传入了两个参数,local和messages...然后实例化组件的过程中将i18n传入,这样组件中就可以访问$t这个函数了,通过这个函数,我们可以取出messages的属性值,将其渲染到页面。...核心是实例化的过程通过local这个参数来实现实现语言的切换,message来实现语言包的加载,开发者只需将需要翻译的公共部分抽离出来放到message即可。

1.1K40
领券