vue에서 다국어를 사용하기위해 i18n을 사용하는 방법에 대해서 정리해 보겠습니다.
vue i18n 사이트 https://kazupon.github.io/vue-i18n/
vue-cli 3버전이상을 사용하시는 분은 아래와 같이 쉽게 패키지 추가가 가능합니다.
> vue add i18n
명령어를 실행하면 몇가지 질문이 나옵니다.
The locale of project localization. en
? The fallback locale of project localization. en
? The directory where store localization messages of project. It's stored under `src` directory. locales
? Enable locale messages in Single file components ? No
모두 default로 설정한후 실행하면 아래와 같이 파일이 추가됩니다.
.env
src/i18n.js
src/locales/en.json
vue.config.js
package.json
src/main.js
yarn.lock
vue-cli를 이용해서 프로젝트를 생성하였기 떄문에 HelloWorld.vue 파일을 수정해 보겠습니다.
<template>
<div class="hello">
{{$t('message')}}
<button @click="$i18n.locale='ko'">한국어</button>
<button @click="$i18n.locale='en'">English</button>
</div>
</template>
vue에서 다국어는 $t(키) 형식으로 사용합니다.
locales 폴더에 추가로 ko.json이라는 파일을 추가해 봅니다.
en.json
{
"message": "hello i18n !!"
}
ko.json
{
"message": "안녕 i18n !!"
}
i18n에 locale정보가 ko일때는 ko.json파일에서 키를 찾아서 반환하고, en일 경우 en.json에서 파일을 찾아 반환합니다.
javascript에서 사용하고 싶을때는 아래와 같이 사용합니다.
this.$t('message')
'Programming > Vue-tip' 카테고리의 다른 글
[error] Could not find a declaration file for module 'vuetify/lib' (0) | 2020.03.28 |
---|---|
zsh: command not found: vue (0) | 2020.01.07 |
vue-cli ie11 적용 (0) | 2019.11.19 |
vue build mode 사용하기 (0) | 2019.02.26 |
vue prodcution으로 build시 sourcemap 삭제하기 (0) | 2018.12.18 |