본문으로 건너뛰기

O-h-y-o1분 미만I18nLanguagevue-i18n

현 날짜 기준으로 프로젝트 생성시, vite, vue, pinia 기타 등등 세팅을 할때 모두 가장 최신버전으로 세팅을 해두었을때를 가정

  • vue-i18n 사용시 개발서버에서는 변수 사용이 정상적으로 되는데 배포했을때 정상적으로 동작하지 않는 이슈
// en.json
{
  "word.person": "{person} person"
}
<template>
  {{ $t("word.person", { person: 1 }) }}
</template>

해당 코드처럼 사용했을시 개발 서버에서는 정상적으로 1 person 이 출력이 된다.

하지만 배포할때에는 {person} person 이렇게 출력되는 현상이 있다.

다국어를 지원하고 변수까지 사용하는 사례가 별로 없는지 찾는데 애를 먹었지만, vite.config 혹은 quasar.configruntimeOnly: false 이것을 추가해주면 된다는 것을 찾았다.

왜 runtimeOnly의 default 값이 true 인지는 정말 영 이해할 수 없지만 이것을 false 를 해줘야 배포를 했을때 정상적으로 변수가 잘 들어간다.