useI18.js 363 B

12345678910111213141516
  1. import { reactive, toRefs, watchEffect } from 'vue'
  2. import { useI18n } from 'vue-i18n'
  3. export function useStoreI18n(options) {
  4. const { t, locale } = useI18n(options)
  5. const keyMap = reactive({})
  6. function $$t(...key) {
  7. watchEffect(() => {
  8. if (locale.value) keyMap[key] = t(...key)
  9. })
  10. return toRefs(keyMap)[key]
  11. }
  12. return {
  13. $$t
  14. }
  15. }