Здравтсвуйте, создав проект Vue 3 CLI + i18n я обнаружил что i18n не смортит переводы находящиеся в папке locales, а добавленые в виде тега работают исправно. К примеру
//en.json
{
"message": "hello i18n !!"
}
<template>
<p>{{ t("message") }}</p>
<p>{{ t("hello") }}</p>
</template>
<script>
//HelloWorld component
import { defineComponent } from "vue";
import { useI18n } from "vue-i18n";
export default defineComponent({
name: "HelloWorld",
setup() {
const { t } = useI18n({
inheritLocale: true,
useScope: "local",
localStorage: true,
});
alert(t("message"));
// Something todo ..
return { t };
},
});
</script>
<i18n>
{
"en": {
"hello": "Hello i18n in SFC!"
}
}
</i18n>
//i18n.js
import { createI18n } from "vue-i18n";
function loadLocaleMessages() {
const locales = require.context(
"./locales",
true,
/[A-Za-z0-9-_,\s]+\.json$/i
);
const messages = {};
locales.keys().forEach((key) => {
const matched = key.match(/([A-Za-z0-9-_]+)\./i);
if (matched && matched.length > 1) {
const locale = matched[1];
messages[locale] = locales(key);
}
});
return messages;
}
export default createI18n({
legacy: false,
locale: process.env.VUE_APP_I18N_LOCALE || "en",
fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || "en",
messages: loadLocaleMessages(),
});
Тоэсть у меня успешно переведётся hello, но не переведётся messages, почему это происходит, и как это исправить