LangSelect.vue 980 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <el-dropdown trigger="click" @command="handleSetLanguage">
  3. <div>{{ language }}</div>
  4. <el-dropdown-menu slot="dropdown">
  5. <el-dropdown-item :disabled="language === 'zh'" command="zh">
  6. 中文
  7. </el-dropdown-item>
  8. <el-dropdown-item :disabled="language === 'en'" command="en">
  9. English
  10. </el-dropdown-item>
  11. </el-dropdown-menu>
  12. </el-dropdown>
  13. </template>
  14. <script lang="ts">
  15. import { Component, Vue, Watch } from "vue-property-decorator";
  16. import { setLocale } from "@/lang";
  17. import { setPageTitle } from "@/utils";
  18. @Component
  19. export default class extends Vue {
  20. get language() {
  21. switch (this.$i18n.locale) {
  22. case "zh":
  23. return "中文";
  24. default:
  25. return "English";
  26. }
  27. }
  28. private handleSetLanguage(lang: string) {
  29. setLocale(lang);
  30. setPageTitle(this.$route.meta.title);
  31. this.$message({
  32. message: "Switch Language Success",
  33. type: "success"
  34. });
  35. }
  36. }
  37. </script>