Я использую laravel и в настоящее время пытаюсь сделать многоязычные страницы, поэтому я нашел этот довольно удобный плагин VueI18N для переводов и заставил его работать (каким-то образом), установив его через npm, а затем вставив следующее код в моем приложении. js
//app.js
window.Vue = require('vue');
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
//tons of more components here
Vue.component('vue-test', require('./components/VueTestFileForLocalization.vue').default);
const messages = {
en: {
message: {
hello: 'Hello, {name}!'
}
},
de: {
message: {
hello: 'Guten Tag, {name}!'
}
}
};
const i18n = new VueI18n({
locale: 'de',
messages
});
const app = new Vue({
el: '#vue-app',
i18n
});
Затем в моем vue -тесте я попытался успешно вывести это:
<template>
<div>{{ $t('message.hello', { name: 'John' }) }}</div>
</template>
<script>
export default {
data() {
return {};
},
created() {
this.$i18n.locale = 'en';
}
};
</script>
и, изменив локаль, я также могу отобразить другой язык. Отлично. Теперь я думаю, что с таким количеством компонентов у меня может возникнуть проблема с определением всей локализации внутри приложения. js, и это тоже не красиво. Поэтому я попытался найти Эта ссылка здесь на документы для отдельных файловых компонентов , но, к сожалению, безуспешно. Я скопировал и вставил код (vue -i18n-loader также должен быть установлен по умолчанию laravel) и изменил файл webpack. Ошибка, которую я получаю, кажется довольно распространенной после исследования, но я не могу ее исправить.
Value of key 'hello' is not a string!
Cannot translate the value of keypath 'hello'. Use the value of keypath as default
Он просто выводит тот ключ, который я указал в сообщении.
Есть ли у кого-нибудь из вас идея, что я мог сделать неправильно или забыл настроить? Любые намеки будут оценены очень и очень. Спасибо за ваше время С уважением, Десори