index.js 1.2 KB

123456789101112131415161718192021222324252627
  1. Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
  2. const require_en = require("../../locale/lang/en.js");
  3. let lodash_unified = require("lodash-unified");
  4. let vue = require("vue");
  5. //#region ../../packages/hooks/use-locale/index.ts
  6. const buildTranslator = (locale) => (path, option) => translate(path, option, (0, vue.unref)(locale));
  7. const translate = (path, option, locale) => (0, lodash_unified.get)(locale, path, path).replace(/\{(\w+)\}/g, (_, key) => `${option?.[key] ?? `{${key}}`}`);
  8. const buildLocaleContext = (locale) => {
  9. return {
  10. lang: (0, vue.computed)(() => (0, vue.unref)(locale).name),
  11. locale: (0, vue.isRef)(locale) ? locale : (0, vue.ref)(locale),
  12. t: buildTranslator(locale)
  13. };
  14. };
  15. const localeContextKey = Symbol("localeContextKey");
  16. const useLocale = (localeOverrides) => {
  17. const locale = localeOverrides || (0, vue.inject)(localeContextKey, (0, vue.ref)());
  18. return buildLocaleContext((0, vue.computed)(() => locale.value || require_en.default));
  19. };
  20. //#endregion
  21. exports.buildLocaleContext = buildLocaleContext;
  22. exports.buildTranslator = buildTranslator;
  23. exports.localeContextKey = localeContextKey;
  24. exports.translate = translate;
  25. exports.useLocale = useLocale;
  26. //# sourceMappingURL=index.js.map