ideaz-element
Version:
<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>
1 lines • 2.33 kB
Source Map (JSON)
{"version":3,"file":"useLocale.cjs","sources":["../../../packages/hooks/useLocale.ts"],"sourcesContent":["import { get } from 'lodash-unified'\nimport CN from '@ideaz/locale/lang/zh-cn'\nimport type { MaybeRef } from '@vueuse/core'\nimport type { Ref } from 'vue'\n\nexport interface TranslatePair {\n [key: string]: string | string[] | TranslatePair\n}\n\nexport interface Language {\n name: string\n el?: TranslatePair\n}\nexport type TranslatorOption = Record<string, string | number>\nexport type Translator = (path: string, option?: TranslatorOption) => string\nexport interface LocaleContext {\n locale: Ref<Language>\n lang: Ref<string>\n t: Translator\n}\n\nexport function translate(path: string, option: undefined | TranslatorOption, locale: Language): string {\n return (get(locale, path, path) as string).replace(\n /\\{(\\w+)\\}/g,\n (_, key) => `${option?.[key] ?? `{${key}}`}`,\n )\n}\n\nexport function buildTranslator(locale: MaybeRef<Language>): Translator {\n return (path, option) =>\n translate(path, option, unref(locale))\n}\n\nexport function buildLocaleContext(locale: MaybeRef<Language>): LocaleContext {\n const lang = computed(() => unref(locale).name)\n const localeRef = isRef(locale) ? locale : ref(locale)\n return {\n lang,\n locale: localeRef,\n t: buildTranslator(locale),\n }\n}\n\nexport function useLocale(localeOverrides?: Ref<Language | undefined>) {\n const locale = localeOverrides || inject('locale', ref())!\n return buildLocaleContext(computed(() => locale.value || CN))\n}\n"],"names":["translate","path","option","locale","get","_","key","buildTranslator","vue","buildLocaleContext","lang","localeRef","useLocale","localeOverrides","zhCn"],"mappings":"wXAqBgB,SAAAA,EAAAC,EAAAC,EAAAC,EAAA,CACd,OAAAC,EAAAD,EAAAF,EAAAA,CAAA,EAAA,QAA2C,aACzC,CAAAI,EAAAC,IAAA,IAAAJ,GAAA,YAAAA,EAAAI,KAAA,IAAAA,CAAA,GAAA,EAC0C,CAE9C,CAEO,SAAAC,EAAAJ,EAAA,CACL,MAAA,CAAAF,EAAAC,IAAAF,EAAAC,EAAAC,EAAAM,EAAA,MAAAL,CAAA,CAAA,CAEF,CAEO,SAAAM,EAAAN,EAAA,CACL,MAAAO,EAAAF,EAAA,SAAA,IAAAA,EAAA,MAAAL,CAAA,EAAA,IAAA,EACAQ,EAAAH,EAAA,MAAAL,CAAA,EAAAA,EAAAK,EAAA,IAAAL,CAAA,EACA,MAAA,CAAO,KAAAO,EACL,OAAAC,EACQ,EAAAJ,EAAAJ,CAAA,CACiB,CAE7B,CAEO,SAAAS,EAAAC,EAAA,CACL,MAAAV,EAAAU,GAAAL,EAAA,OAAA,SAAAA,EAAA,IAAA,CAAA,EACA,OAAAC,EAAAD,EAAA,SAAA,IAAAL,EAAA,OAAAW,CAAA,CAAA,CACF"}