UNPKG

@meleon/uni-ui

Version:

A uniapp components library written in vue3 and typescript

1 lines 624 B
import{inject,ref,reactive,computed}from"vue";import{configProviderInjectionKey}from"../lib/ml-config-provider/context";import zhCN from"./zhCN";import enUS from"./enUS";import{isString}from"../utils";const LOCALE=ref("zh-CN"),I18N_MESSAGE_MAP=reactive({"zh-CN":zhCN,"en-US":enUS});export const useI18n=()=>{const e=inject(configProviderInjectionKey,null),o=computed((()=>e&&e.locale?isString(e.locale)?I18N_MESSAGE_MAP[e.locale]:e.locale:I18N_MESSAGE_MAP[LOCALE.value])),t=computed((()=>o.value.locale));return{i18n:o,locale:t,t:e=>{const t=e.split(".");let r=o.value;for(const o of t){if(!r[o])return e;r=r[o]}return r}}};