index.ts 590 B

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