Heim > Web-Frontend > View.js > Hauptteil

Wie ist die Situation, wenn Vue3.0 VueI18n außerhalb der Komponente verwendet?

PHPz
Freigeben: 2023-05-17 17:01:06
nach vorne
1823 Leute haben es durchsucht

    vue3.0 verwendet VueI18n außerhalb der Komponente

    Wenn der im Setup geschriebene Code außerhalb geschrieben wird, wird normalerweise ein Fehler gemeldet

    Muss am Anfang eines „Setups“ aufgerufen werden

    Bedeutung Es muss geschrieben werden. Im Setup müssen Sie i18n mit der kombinierten API von Vue 3 verwenden, aber außerhalb des setup() der Komponente müssen Sie so schreiben:

    // locales/setupI18n.ts
    
    import { App } from 'vue';
    import { createI18n } from 'vue-i18n'; // 引入vue-i18n组件
    import { messages } from './config';
    import globalConfig from '@/config/index';
    
    const {
      setting: { lang: defaultLang },
    } = globalConfig;
    
    // 注册i8n实例并引入语言文件
    const localeData = {
      legacy: false, // 使用CompotitionAPI必须添加这条.
      locale: defaultLang,
      messages,
      globalInjection: true,
    };
    
    export const i18n = createI18n(localeData);
    
    // setup i18n instance with glob
    export const setupI18n = {
      install(app: App) {
        app.use(i18n);
      },
    };
    Nach dem Login kopieren

    Hier ist die wichtigste Schreibmethode, die

    //某个组合式js文件
    
    //报错写法 Uncaught SyntaxError: Must be called at the top of a `setup` 
    //import { useI18n } from 'vue-i18n'
    //const { t } = useI18n() 
    
    //正确写法
    import { i18n } from '@/locales/setupI18n';
    const { t } = i18n.global;
    Nach dem Login kopieren

    vue3 verwendet vue-i18n Internationalisierung (mehrsprachige Konvertierung)

    Erinnerung: Um vue-i18n in vue3 verwenden zu können, müssen Sie Version 9 oder höher haben. npm install vue-i18n@9.2.2

    Spezifische Vorgänge

    Erstellen Sie einen neuen Lang-Ordner unter der src-Datei und bauen Sie darin „cn.js“ auf. „, „en.js“ und „index.js“ speichern die drei Dateien

    cn.js und en.js die entsprechenden Übersetzungen, zum Beispiel:

    const messages = {
      home: {
        title: 'Book Store',
        hint: 'Computer Science And Software Engineering',
        guessYouLike: 'Guess You Like',
      }
    }
     
    export default messages
    const messages = {
      home: {
        title: '书城',
        hint: '计算机科学和软件工程',
        guessYouLike: '猜你喜欢'
      }
    }
     
    export default messages
    Nach dem Login kopieren

    index.js speichert die folgende Vorlage

    import { createI18n } from 'vue-i18n'
    import en from './en'
    import cn from './cn'
     
    const messages = {
      en, cn
    }
     
     
    const localeData = {
      legacy: false, // composition API
      globalInjection: true, //全局生效$t
      locale: cn, // 默认cn翻译
      messages
    }
     
    export function setupI18n (app) {
      const i18n = createI18n(localeData)
      app.use(i18n)
    }
    Nach dem Login kopieren

    und dann in main. Wenn Sie setupI18n

    import { createApp } from 'vue'
    import App from './App.vue'
    import router from './router'
    import store from './store'
    import { setupI18n } from './lang/index'
     
    const app = createApp(App)
    app.use(store).use(router).mount('#app')
     
    setupI18n(app)
    Nach dem Login kopieren

    in js verwenden, müssen Sie nur {{ $t("home.title") }} an die entsprechende Stelle schreiben Beachten Sie, dass es mit $t beginnen muss und nicht alleine verwendet werden kann. Wenn Sie t alleine verwenden müssen, ist es bequemer, $t direkt zu verwenden um es alleine zu verwenden

    <span class="ebook-popup-title-text">
        {{$t("home.title")}}
    </span>
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonWie ist die Situation, wenn Vue3.0 VueI18n außerhalb der Komponente verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!