// i18n.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import en from '@/locales/en.json'
import ko from '@/locales/ko.json'

Vue.use(VueI18n)

export default new VueI18n({
  locale: 'ko', //기본설정 언어
  fallbackLocale: 'ko', //기본설정 언어를 불러오지 못할때 사용할 언어
  messages: { en, ko }
})

//ko.json
{
    "button": {
      "add": "추가",
      "delete": "삭제"
    }
}

//en.json
{
    "button": {
      "add": "Add",
      "delete": "Delete"
    }
}
//main.js
import i18n from './plugins/i18n'

/...

new Vue({
  router,
  store,
  vuetify,
  i18n,
  render: h => h(App),
}).$mount('#app')

{{$t('button.add')}}
<button @click="changeLocale"></button>

//scipt
changeLocale() {
if (this.$i18n.locale === 'en') return (this.$i18n.locale = 'ko')
      this.$i18n.locale = 'en'
},

// v-text-field 등의 label에 적용시

<v-text-field :label="$t("원하는 텍스트")">
// v-data-table의 header에 적용시
this.header =[
	{
		text: this.$t('원하는 텍스트')
	}
]

Untitled

Untitled

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import enMonitoring from '@/locales/en/Monitoring.json'
import enEvent from '@/locales/en/Event.json'
import enConfig from '@/locales/en/Config.json'
import enCommonDialog from '@/locales/en/CommonDialog.json'
import enTask from '@/locales/en/Task.json'
import enFlow from '@/locales/en/Flow.json'
import enTool from '@/locales/en/Tool.json'
import enPolicy from '@/locales/en/Policy.json'
import enHome from '@/locales/en/LoginSetting.json'
import enGrid from '@/locales/en/Grid.json';

import koMonitoring from '@/locales/ko/Monitoring.json'
import koEvent from '@/locales/ko/Event.json'
import koConfig from '@/locales/ko/Config.json'
import koCommonDialog from '@/locales/ko/CommonDialog.json'
import koTask from '@/locales/ko/Task.json'
import koFlow from '@/locales/ko/Flow.json'
import koTool from '@/locales/ko/Tool.json'
import koPolicy from '@/locales/ko/Policy.json'
import koHome from '@/locales/ko/LoginSetting.json'
import koGrid from '@/locales/ko/Grid.json';

Vue.use(VueI18n)

const messages = {
  en: {
    Monitoring: enMonitoring,
    Tool:enTool,
    Task: enTask,
    Config: enConfig,
    Event: enEvent,
    Dialog: enCommonDialog,
    Flow: enFlow,
    Policy: enPolicy,
    Home: enHome,
    Grid: enGrid
  },
  ko: {
    Monitoring: koMonitoring,
    Tool:koTool,
    Task: koTask,
    Config: koConfig,
    Event: koEvent,
    Dialog: koCommonDialog,
    Flow: koFlow,
    Policy: koPolicy,
    Home: koHome,
    Grid: koGrid
  },
  
};

const browserLanguage = navigator.language.split('-')[0] || navigator.userLanguage.split('-')[0]

// 기본 언어 설정
const defaultLocale = browserLanguage === 'ko' ? 'ko' : 'en'

export default new VueI18n({
  locale: defaultLocale,
  fallbackLocale: 'en',
  messages,
})

Untitled