首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改lang时不更新组件脚本部分的Vue-i18n翻译

更改lang时不更新组件脚本部分的Vue-i18n翻译
EN

Stack Overflow用户
提问于 2020-06-02 10:05:20
回答 2查看 2.1K关注 0票数 0

我在Vue.js和Bootstrap中有一个非常简单的登陆页面,我设法使i18n在整个页面上运行得相当好,但是,在联系人表单的主题部分,我有一些选项可供选择(默认值为"Select“),我也希望它们被翻译。

代码语言:javascript
复制
import i18n from "@/i18n";

export default {
data() {
return {
  errors: [],
  form: {
    email: "",
    subject: null,
    message: "",
  },
  subject: [
    { text: i18n.t("contact.subjectoption"), value: null },
    this.$t("contact.subjectoption1"),
    "Business Inquiry",
    "Social Media",
    "Other",
  ],
  msg: "",
  show: true,
};}}

然而,当我改变语言,整个登陆页面更新的语言,但选项不!

我错过了什么吗?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-02 10:36:09

数据不够聪明,无法知道您的区域设置发生了变化。

相反,您可以创建一个计算属性,与数据不同的是,该属性可以在语言更改时检测和重新计算。

代码语言:javascript
复制
export default {
  computed: {
    subject() {
      return [
        { text: this.$t("contact.subjectoption"), value: null },
        this.$t("contact.subjectoption1"),
        "Business Inquiry",
        "Social Media",
        "Other"
      ]
    }
  }
  data() {
    return {
      errors: [],
      form: {
        email: "",
        subject: null,
        message: ""
      },
      msg: "",
      show: true
    }
  }
}
票数 2
EN

Stack Overflow用户

发布于 2020-06-02 11:00:37

来自Hiws的答案完成了这一工作,但如果有人想要类似的东西,我会在下面留下模板的样子:

代码语言:javascript
复制
<section class="contact">
  <b-container>
    <b-row class="my-md-5">
      <b-col
        id="contact-us"
        class="my-3 d-flex align-items-center justify-content-center"
        md="6"
      >
        <h1 class="mb-5 contact-title">{{ $t("contact.title") }}</h1>
      </b-col>
      <b-col class="contact-form" md="6">
        <b-form @submit="checkForm">
          <div class="form">{{ $t("contact.emailtitle") }}</div>
          <b-form-input
            id="email"
            v-model.trim="form.email"
            type="email"
            required
            placeholder="Email"
          ></b-form-input>
          <div class="form">{{ $t("contact.subjecttitle") }}</div>
          <b-form-select
            id="subject"
            v-model="form.subject"
            :options="subject"
            required
          ></b-form-select>

          <div class="form">{{ $t("contact.messagetitle") }}</div>
          <b-form-textarea
            id="message"
            v-model.trim="form.message"
            required
            placeholder="Message"
          ></b-form-textarea>
          <b-button
            class="form"
            style="margin-right: 10px;"
            type="submit"
            variant="success"
            >{{ $t("contact.submit") }}</b-button
          >
        </b-form>
      </b-col>
    </b-row>
  </b-container>
</section>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62149538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档