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
- Android實現國際化Android
- 小程式國際化實現方式
- 初識ABP vNext(6):vue+ABP實現國際化Vue
- Java模組化的國際化實現- GunnarJava
- winForm 國際化的簡單實現ORM
- 使用spring實現資源國際化Spring
- 現代 Vue 工程之「國際化 i18n 開發」Vue
- Webnovel 國際化實踐Web
- 在Spring Boot實現國際化的案例Spring Boot
- iOS (相容Storyboard)優雅地實現國際化(Localization)iOS
- Android國際化(多語言)實現,支援8.0Android
- 中文轉換成unicode字元,實現國際化Unicode字元
- Flutter 國際化適配實戰Flutter
- 實用的 Flutter 國際化指南Flutter
- 基於react-intl實現手動國際化切換React
- 【SpringBoot學習(四) 使用 thymeleaf實現國際化功能】Spring Boot
- springMVC專案國際化(i18n)實現方法SpringMVC
- vue+VueI18n 專案國際化 筆記Vue筆記
- Vue 中英文轉換 vue-i18n 的使用Vue
- 國際化思考
- ios國際化iOS
- Flutter實戰之主題、國際化篇Flutter
- SpringBoot整合ElasticSearch實現多版本的相容Spring BootElasticsearch
- 使用jquery.i18n實現國際化多語言顯示jQuery
- Java 國際化(一)Java
- Android國際化Android
- Jsf國際化JS
- jquery/vue/react前端多語言國際化翻譯方案指南jQueryVueReact前端
- iOS 國際化 && 本地化iOS
- iOS國際化(本地化)iOS
- vue整合pdfjs,實現pdf檔案預覽VueJS
- iOS語言國際化/本地化-實踐總結iOS