Vue@3 및 Vue-i18n@9에서 웹사이트를 국제화하는 방법
23902 단어 javascriptvuevuei18nwebdev
이 문서에서 보여 주는 내용
I18n (Internationalization) 브라우저의 언어 설정에 따라
addEventListener
(Javascript) 사용 소스 코드 및 결과
이 기사의 모든 소스 코드는 정적 웹 페이지에서 작동합니다.
환경
브라우저의 언어 설정에 따른 I18n
이 소스코드는 Vue I18n official Guide과 Issues on its Github repository을 기반으로 구현되었습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Vue I18n Test</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
<script src="https://unpkg.com/vue-i18n@9"></script>
</head>
<body>
<div id="yokan">
<span> {{ $t("message.hello") }} </span>
</div>
</body>
<script>
/**
* Get the language setting in your browser
*/
const langBrowser = navigator.language.split("-")[0];
console.log("Language setting in your browser is " + langBrowser + ".");
const messages = {
en: {
message: {
hello: "Hi!",
},
},
ja: {
message: {
hello: "やあ!",
},
},
};
const i18n = VueI18n.createI18n({
locale: langBrowser,
fallbackLocale: "en",
messages,
});
const app = Vue.createApp({});
app.use(i18n);
app.mount("#yokan");
</script>
</html>
결과는 다음과 같습니다.
사용자가 선택한 언어에 따른 I18n
이 섹션은 사용자가
<select>
태그를 사용하여 선택한 언어로 된 웹사이트를 보여줍니다. 이 문서는 "양방향 바인딩 사용(Vue.js)"및 "addEventListener
(Javascript) 사용"의 두 가지 소스 코드를 나타냅니다.양방향 바인딩 사용(Vue.js)
이 소스코드는 Vue I18n official Guide과 two-way binding in Vue.js을 기반으로 구현되었습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Vue I18n Test</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
<script src="https://unpkg.com/vue-i18n@9"></script>
</head>
<body>
<div id="yokan">
<span> {{ $t("message.hello") }} </span>
<select
v-model="selected"
name="lang"
class="legal-item"
id="select-lang"
v-on:change="switchLang"
>
<option value="en">English</option>
<option value="ja">Japanese</option>
</select>
</div>
</body>
<script>
/**
* Get the language setting in your browser
*/
const langBrowser = navigator.language.split("-")[0];
console.log("The language setting in your browser is " + langBrowser + ".");
const binding = {
data() {
return {
selected: langBrowser,
};
},
methods: {
switchLang() {
this.$i18n.locale = this.selected;
},
},
};
const messages = {
en: {
message: {
hello: "Hi!",
},
},
ja: {
message: {
hello: "やあ!",
},
},
};
const i18n = VueI18n.createI18n({
locale: langBrowser,
fallbackLocale: "en",
messages,
});
const app = Vue.createApp(binding);
app.use(i18n);
const vm = app.mount("#yokan");
</script>
</html>
결과는 다음과 같습니다.
addEventListener 사용(Javascript)
이 섹션의 소스 코드는 Vue I18n official Guide 및 the question in stack overflow을 기반으로 작성되었습니다.
다음 소스 코드에서 Vue.js와 Vue I18n의 동일한 설정이라도 경우에 따라 이 줄이 필요합니다.
vm.$forceUpdate(); // Some cases need it.
이 줄이 npm을 사용하여 설치한
*.prod.js
를 사용하는 내 환경에 필요한 경우입니다. 아마도 이것은 사양에 있을 수 있습니다. 전체 소스 코드는 다음과 같습니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Vue I18n Test</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
<script src="https://unpkg.com/vue-i18n@9"></script>
</head>
<body>
<div id="yokan">
<span> {{ $t("message.hello") }} </span>
</div>
<select name="lang" class="legal-item" id="select-lang">
<option value="en">English</option>
<option value="ja">Japanese</option>
</select>
</body>
<script>
/**
* Get the language setting in your browser.
*/
const langBrowser = navigator.language.split("-")[0];
if (langBrowser === "en" || langBrowser === "ja")
document.getElementById("select-lang").value = langBrowser;
else document.getElementById("select-lang").value = "en";
console.log("The language setting in your browser is " + langBrowser + ".");
const messages = {
en: {
message: {
hello: "Hi!",
},
},
ja: {
message: {
hello: "やあ!",
},
},
};
const i18n = VueI18n.createI18n({
locale: langBrowser,
fallbackLocale: "en",
messages,
});
const app = Vue.createApp({});
app.use(i18n);
const vm = app.mount("#yokan");
/**
* The event handler of <select>
*/
document.getElementById("select-lang").addEventListener("change", () => {
vm.$i18n.locale = document.getElementById("select-lang").value;
vm.$forceUpdate(); // Some cases need it.
console.log(
"You change the language setting to " +
document.getElementById("select-lang").value +
"."
);
});
</script>
</html>
결과는 이것입니다.
알아채다
이 기사는 일본어로 작성된 다음 기사를 번역한 것입니다.
Vue@3&Vue-i18n@9로<select>を使って言語切り替えをする方法
zenn.dev
Reference
이 문제에 관하여(Vue@3 및 Vue-i18n@9에서 웹사이트를 국제화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/akirakashihara/how-to-make-internationalization-your-website-on-vue3-and-vue-i18n9-58oc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Vue@3 및 Vue-i18n@9에서 웹사이트를 국제화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/akirakashihara/how-to-make-internationalization-your-website-on-vue3-and-vue-i18n9-58oc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)