vue整合vue-i18n最新版本實現國際化
1安裝vue-i18n
npm install vue-i18n --save-dev
2.語言包檔案
en.js
//英語
const en = {
//切換語言
language: {
ar: 'Arabic',
en: 'English',
es: 'Spain',
pt: 'Arabic',
},
//路由
router: {
title: {
dashboard: 'Account',
product: 'Product',
order: 'Order',
setting: 'Setting',
logout: 'Logout'
},
},
//所有卡片標題
card: {
title: {
account: 'Account',
events: 'Pending Events',
devices: 'Devices',
order: 'Order',
password: 'Set password',
renewal: 'Set Automatic renewal',
information: 'Order Information',
method: 'Payment Method',
},
},
//使用者介面
account: {
info: {
name: "Name",
email: "Email",
service: "Service",
remaining: "Remaining days",
renewal: "Continue renewal status",
createTime: "Create Time",
},
events: {
remark1: "You have",
remark2: "To be paid Order"
},
devices: {
browser: "Browser",
system: "System",
language: "Language",
loginTime: "Login Time"
},
buttom: {
value: "PayNow"
}
}
}
export default en;
ar.js
// 阿拉伯語
const ar = {
language: {
ar: ' عربي ، ',
en: 'الإنجليزية ،',
es: 'أسبانيا',
pt: ' عربي ،',
},
router: {
title: {
dashboard: 'حساب',
product: 'برودكشن',
order: 'أمر',
setting: 'إعداد',
logout: 'شطب'
},
},
card: {
title: {
account: 'حساب',
events: 'حدث غير محدد',
devices: 'معدّات',
order: 'أمر',
password: 'تعيين كلمة المرور',
renewal: 'مجموعة التجديد التلقائي',
information: 'معلومات النظام',
method: 'شروط الدفع',
},
},
//使用者介面
account: {
info: {
name: "الاسم الكامل",
email: "الايميل",
service: "الايميل",
remaining: "الأيام المتبقية",
renewal: "استمرار حالة الاشتراك",
createTime: "خلق الوقت",
},
events: {
remark1: "لديك",
remark2: "أمر الدفع"
},
devices: {
browser: "براوزر",
system: "نظم",
language: "لغوي",
loginTime: "وقت الدخول"
},
buttom: {
value: "نقد"
}
}
}
export default ar;
3.main.js詳細配置檔案
import Vue from 'vue'
// 移動端適配
import 'lib-flexible/flexible'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
//引入i180
import VueI18n from 'vue-i18n'
//引入cookie
import Cookies from 'js-cookie'
//引入各個語言的配置
import en from './i18n/config/en';
import es from './i18n/config/es';
import ar from './i18n/config/ar';
import pt from './i18n/config/pt';
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import 'element-ui/lib/theme-chalk/display.css';
//引入各個elementui的語言包
import arLocale from 'element-ui/lib/locale/lang/ar' //葡萄牙
import enLocale from 'element-ui/lib/locale/lang/en' //英語
import esLocale from 'element-ui/lib/locale/lang/es' //西班牙
import ptLocale from 'element-ui/lib/locale/lang/pt' // 阿拉伯語
import locale from 'element-ui/lib/locale'
//引入jquery的愛心js
// import love from "@/api/love";
import '@/styles/index.scss' // global css
import './assets/icon/iconfont.css'
import App from './App'
import router from './router'
import store from './store'
import '@/icons' // icon
import '@/permission' // permission control
//掛載
Vue.use(VueI18n)
//掛載elementui語言包
Vue.use(ElementUI, {
locale
})
//例項化物件
const i18n = new VueI18n({
locale: Cookies.get('locale') || 'en', // 語言標識
messages: {
en: Object.assign(en, enLocale), //英語
es: Object.assign(es, esLocale), //西班牙
ar: Object.assign(ar, arLocale), // 阿拉伯語
pt: Object.assign(pt, ptLocale) //葡萄牙
}
})
//ui元件的語言自動切換
locale.i18n((key, value) => i18n.t(key, value))
Vue.config.productionTip = false
new Vue({
el: '#app',
i18n,
router,
store,
template: '<App/>',
components: {
App
}
})
//暴露i180
export default i18n;
4.語法
//vue元件模板的使用
<div>{{$t('language.en')}}</div>
//vue元件模板資料繫結的使用
<input :placeholder="$t('language.en')"></input>
//vue元件data中賦值的使用
data:{
msg:this.$t('language.en');
}
5.效果
相關文章
- 使用vue-i18n實現國際化Vue
- vue專案國際化 vue-i18n 使用Vue
- VUE 實現 Studio 管理後臺(三):支援多語言國際化(vue-I18N)Vue
- vue2升級vue3:vue-i18n國際化非同步按需載入Vue非同步
- Vue國際化處理 vue-i18n 以及專案自動切換中英文Vue
- vue中如何使用i18n實現國際化Vue
- 初識ABP vNext(6):vue+ABP實現國際化Vue
- 小程式國際化實現方式
- Java模組化的國際化實現- GunnarJava
- 在Spring Boot實現國際化的案例Spring Boot
- vue3國際化、vue3實現多語言切換、vue3使用i18nVue
- SpringBoot整合ElasticSearch實現多版本的相容Spring BootElasticsearch
- 現代 Vue 工程之「國際化 i18n 開發」Vue
- Android國際化(多語言)實現,支援8.0Android
- Webnovel 國際化實踐Web
- 【SpringBoot學習(四) 使用 thymeleaf實現國際化功能】Spring Boot
- Abp Vnext Vue3 的版本實現Vue
- Spring Boot 整合 Flyway 實現資料庫版本控制Spring Boot資料庫
- Vue 中英文轉換 vue-i18n 的使用Vue
- vue整合pdfjs,實現pdf檔案預覽VueJS
- 基於react-intl實現手動國際化切換React
- Flutter 國際化適配實戰Flutter
- 實用的 Flutter 國際化指南Flutter
- springboot整合jetcache實際操作Spring Boot
- 國際化
- vue+VueI18n 專案國際化 筆記Vue筆記
- vue-i18n的9以上的版本中@被用作特殊字元處理,直接用會報錯Vue字元
- 完美國際單機debug版本
- Flutter實戰之主題、國際化篇Flutter
- Java最新發布版本有哪些變化?Java
- SpringBoot2.1版本的個人應用開發框架 - 整合vue實現前後端分離Spring Boot框架Vue後端
- 分散式RPC框架Dubbo實現服務治理:整合Kryo實現高速序列化,整合Hystrix實現熔斷器分散式RPC框架
- 使用jquery.i18n實現國際化多語言顯示jQuery
- Android國際化Android
- 國際化思考
- 【spring 國際化】springMVC、springboot國際化處理詳解SpringMVCSpring Boot
- Gitlab Runner實現NetCore自動化持續整合GitlabNetCore
- jquery/vue/react前端多語言國際化翻譯方案指南jQueryVueReact前端