npm install vue-i18n@11
创建 i18n 实例并全局挂载:
// src/locales/index.js import { createI18n } from ‘vue-i18n’
const i18n = createI18n({ locale: ‘zh-CN’, fallbackLocale: ‘zh-CN’, messages: {} })
export default i18n // main.js import { createApp } from ‘vue’ import App from ’./App.vue’ import i18n from ’./locales’
createApp(App).use(i18n).mount(’#app’)
locale 当前语言,如
'zh-CN'
fallbackLocale 当前语言不存在翻译时的回退语言
legacy 是否开启兼容模式,默认开启。vue3使用组合式api建议关闭;
globalInjection 是否全局注入 i18n 实例
messages 多语言文件对象
missingWarn 是否开启缺失翻译警告
missingFallback 是否开启回退警告
模板中的使用
{{ $t(‘menu.home’) }}
脚本中的使用
import { useI18n } from ‘vue-i18n’ const { t, locale } = useI18n() t(‘common.save’)
- vue-i18n v11 (Vue 3)
- vue-i18n (Vue 2)
// en.js { comonn: { greeting: 'Welcome to our website, {name}!' },apple:"No apple | 1 apple | {count} apples" } // zh-CN.js { common: { greeting: '{name},欢迎你来到我们的网站!' },apple:"没有苹果 | 1个苹果 | {count}个苹果", }`{{ $t('common.greeting', { name: '张三' }) }}
{{ $t('common.apple', { count: 0 }) }}
{{ $t('common.apple', { count: 1 }) }}
{{ $t('common.apple', { count: 2 }) }}
首屏加载多语言包可能导致性能问题,探讨优化方案。
全局配置
import zhCn from 'element-plus/dist/locale/zh-cn.mjs' app.use(ElementPlus, { locale: zhCn })
ConfigProvider 组件:动态切换语言包
文档引用:https://cn.element-plus.org/zh-CN/guide/i18n
文档引用:https://uniapp.dcloud.net.cn/tutorial/i18n.html
i18n 提供了时间格式化功能,实际项目中更推荐引入 dayjs、momentjs 等时间处理库,它们都有相应的国际化支持。
文档引用:
- dayjs 国际化
- momentjs 国际化
VS Code 插件,提供以下功能:
- 内联显示翻译结果
- 缺失翻译提醒
- 一键提取未翻译文案
- 多语言同步编辑
创建 i18n 相关 Skills 提升国际化开发效率。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/269755.html