使用来自 locale.json 的密钥覆盖 store.js

Overriding store.js with key from locale.json

我需要将数据从当前语言环境动态传递到 store.js 中的数组。 该数组如下所示:

skills: [
      {
        id: "1",
        type: "hard",
        title: "Technical Skills",
        mastery: "low",
      },
        ]
});

所以我需要用语言环境 json 文件中的数据替换此 title: "Technical skills",

所以如果我这样做: store.js:

import en from "../src/locales/en.json";
import fr from "../src/locales/fr.json";
import it from "../src/locales/it.json";
skills: [
      {
        id: "1",
        type: "hard",
        title: `${en.hardSkills.TechnicalSkills}`,
        mastery: "low",
      },
export { store };

它确实有点用。如果我将 en 更改为 frit,它将更改显示的语言。但当然我需要从网站而不是代码更改语言。

也许它必须是这样的:

title: `${$i18n.locale.hardSkills.TechnicalSkills}`,

但在这种情况下 $i18n 未定义。

想不通

locales/fr.json

中的对象
"hardSkills" : {
  "TechnicalSkills" : "Compétences techniques"
}

locales/it.json

"hardSkills" : {
  "TechnicalSkills" : "Abilità tecniche"
}

当然还有locales/en.json

"hardSkills" : {
  "TechnicalSkills" : "Technical skills"
}

好的,完成了。这是解决方案。

store.js:

skills: [
     {
       id: "1",
       type: "hard",    
     },
     {
       id: "2",
       type: "hard",        
     },

fr.json: //保持结构不变,其他语言都一样。

 "hardSkills": {
    "Technical skills":  "Compétences techniques",
    "Computer skills": "Compétences informatiques",
}

*.vue

   <v-col
              v-for="hardSkill in hardSkills"
              :key="hardSkill.id"
              cols="auto"
              
            >
              {{ $t(`hardSkills.${hardSkill.title}`) }}
            
   </v-col>