搜索

首页  >  问答  >  正文

Vue 3 vue-i18n。如何在应用程序(.vue 文件)之外使用 $t(t)?合成API

<p>我想在组件外部格式化我的日期时间。</p> <pre class="brush:js;toolbar:false;">function transformDatetime(config, value) { if (value) { return $d(new Date(value), config); } return $t('-'); } </pre> <p>我正在尝试从应用程序实例获取 $t。但它只在组件上下文中起作用,就像 useI18n 一样。</p> <pre class="brush:js;toolbar:false;">import { getCurrentInstance } from 'vue' export default function useGlobal() { const instance = getCurrentInstance() if (!instance) return return instance.appContext.config.globalProperties } </pre> <p><br /></p>
P粉032649413P粉032649413504 天前471

全部回复(1)我来回复

  • P粉143640496

    P粉1436404962023-08-27 00:25:26

    我找到了解决方案。只需将您的 i18n 导入到应用程序外部的文件中,然后使用 i18n.global.t

    import { createI18n } from "vue-i18n"
    
    export const i18n = createI18n({
        legacy: false,
        locale: 'ja',
        fallbackLocale: 'en',
        messages,
    })
    
    import { i18n } from '@/i18n'
    
    const { t: $t, d: $d, n: $n } = i18n.global
    
    const expample = $t('some-text')
    

    回复
    0
  • 取消回复