vue-app-sdk
Version:
28 lines (27 loc) • 1.01 kB
JavaScript
import { logger } from "../../utils/index2.js";
import "../../vendors/nice-fns/dist/compactObject.js";
import "../../vendors/nice-fns/dist/pascalCase.js";
import { toValue } from "vue";
import isString from "../../vendors/lodash-es/isString.js";
import isObject from "../../vendors/lodash-es/isObject.js";
function createTranslator(localeGetter) {
return function translator(message = "", locale = "") {
if (isString(message) || !message)
return message;
if (!locale) {
let baseLocale = toValue(localeGetter);
if (isObject(baseLocale) && "global" in baseLocale) {
logger.warn("localeGetter 后续将不再支持 i18n 实例,请使用 MaybeRefOrGetter<string> 类型值替代!");
const i18n = baseLocale;
baseLocale = i18n.mode === "legacy" ? i18n.global.locale : i18n.global.locale.value;
}
locale = baseLocale;
}
return message[locale];
};
}
const createLocaleText = createTranslator;
export {
createLocaleText,
createTranslator
};