Я использую файл NotFound.vue
, чтобы убедиться, что страница 404 оформлена так же, как и остальная часть сайта. Но this.$lang
на странице 404 всегда en-EN, независимо от пути, начинающегося с /de/
. Он отлично работает для остальной части сайта, который использует Layout.vue
.
Тексты фактически переводимы и извлекаются из файла translations.js
.
<template>
<div id="wrapper" :class="pageClasses">
<Header/>
<main :class="contentClasses">
<h1>{{content['page-404-title']}}</h1>
{{content['page-404-text']}} <router-link to="/">{{content['page-404-home-link-text']}}</router-link>.
</main>
<Footer/>
</div>
</template>
computed: {
// TODO there must be a better way...
// How to use translate() within Vue component template??
content() {
return {
'page-404-title': translate('page-404-title', this.$lang),
'page-404-text': translate('page-404-text', this.$lang),
'page-404-home-link-text': translate('page-404-home-link-text', this.$lang),
}
},