index.ts 620 B

123456789101112131415161718192021222324252627
  1. import type { Locale } from './messages';
  2. import { computed, ref } from 'vue';
  3. import { createSharedComposable } from '@vueuse/core';
  4. import { getMessages } from './messages';
  5. export const useSimpleLocale = createSharedComposable(() => {
  6. const currentLocale = ref<Locale>('zh-CN');
  7. const setSimpleLocale = (locale: Locale) => {
  8. currentLocale.value = locale;
  9. };
  10. const $t = computed(() => {
  11. const localeMessages = getMessages(currentLocale.value);
  12. return (key: string) => {
  13. return localeMessages[key] || key;
  14. };
  15. });
  16. return {
  17. $t,
  18. currentLocale,
  19. setSimpleLocale,
  20. };
  21. });