| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /**
- * 国际化帮助类
- * <pre>
- * 作者:hugh zhuang
- * 邮箱:3378340995@qq.com
- * 日期:2018-07-02-下午3:29:34
- * 版权:广州流辰信息技术有限公司
- * </pre>
- */
- import lang from '@/i18n' // Internationalization 国际化
- const i18n = {
- /**
- * 设置标题
- */
- setTitle: (name, title) => {
- title = i18n.generateTitle(name, title)
- i18n.setBrowserTitle((title ? title + '-' : '') + i18n.t('common.platform') + '-' + i18n.t('common.company'))
- },
- /**
- * 设置标题
- * 单页应用在iOS系统下部分APP的webview中 标题不能通过 document.title = xxx 的方式修改 该插件只为解决该问题而生(兼容安卓)
- * @param {*} title
- * @param {*} img
- */
- setBrowserTitle: (title, img) => {
- if (title === undefined || window.document.title === title) {
- return
- }
- document.title = title
- const userAgent = navigator.userAgent.toLowerCase()
- if (/iphone|ipad|ipod/.test(userAgent)) {
- const iframe = document.createElement('iframe')
- iframe.style.display = 'none'
- // 替换成站标favicon路径或者任意存在的较小的图片即可
- iframe.setAttribute('src', img || '/favicon.ico')
- const iframeCallback = function() {
- setTimeout(function() {
- iframe.removeEventListener('load', iframeCallback)
- document.body.removeChild(iframe)
- }, 0)
- }
- iframe.addEventListener('load', iframeCallback)
- document.body.appendChild(iframe)
- }
- },
- /**
- * 翻译router.meta.title,用于面包屑(breadcrumb)、侧边栏(sidebar)、tagsview
- * @param {*} path
- * @param {*} title
- */
- generateTitle: (name, title, ...values) => {
- if (!name && !title) return
- const hasKey = lang.te('route.' + name)
- if (hasKey) {
- return lang.t('route.' + name, ...values) // $t :this method from vue-i18n, inject in @/lang/index.js
- }
- if (title) { return title }
- name = name.substring(name.lastIndexOf('.') + 1, name.length)
- return name
- },
- /**
- * 跟vue-i8n的 t 类似
- * 如果不存在则取最后一个 值
- * @param {*} path
- * @param {*} values
- */
- t: (path, ...values) => {
- const hasKey = lang.te(path)
- if (hasKey) {
- return lang.t(path, ...values)
- }
- path = path.substring(path.lastIndexOf('.') + 1, path.length)
- return path
- },
- /**
- * 跟vue-i8n的 te 一致
- * @param {*} path
- */
- te: (path) => {
- return lang.te(path)
- },
- getLanguage: () => {
- return lang.locale || 'zh-CN'
- }
- }
- export default i18n
|