UNPKG

@jay-js/system

Version:

A powerful and flexible TypeScript library for UI, state management, lazy loading, routing and managing draggable elements in modern web applications.

30 lines (29 loc) 1.18 kB
import { i18nOptions } from "../modules/i18nDefineOptions.js"; import { i18nContext } from "../modules/i18nContext.js"; export function useI18n() { return (path, data, options)=>{ let result = i18nContext.get().data; if (!result) { return (options === null || options === void 0 ? void 0 : options.default) || path; } if (!i18nOptions.nestedKeys) { let translation = result[path] || (options === null || options === void 0 ? void 0 : options.default) || path; if (data) { translation = String(translation).replace(/{{(.*?)}}/g, (match, p1)=>{ return data[p1.trim()] || match; }); } return translation; } const pathArray = path.split("."); for (const key of pathArray){ result = result[key] || (options === null || options === void 0 ? void 0 : options.default) || key; if (data) { result = String(result).replace(/{{(.*?)}}/g, (match, p1)=>{ return data[p1.trim()] || match; }); } } return result; }; }