language-management-lib
Version:
A TypeScript library for managing language translations in applications with URL parameter support.
32 lines (31 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setLanguageInURL = exports.getLanguageFromURL = exports.formatTranslation = exports.validateLanguageKey = exports.isValidLanguageKey = void 0;
const isValidLanguageKey = (key, languages) => {
return key in languages;
};
exports.isValidLanguageKey = isValidLanguageKey;
const validateLanguageKey = (key, languages) => {
return key in languages;
};
exports.validateLanguageKey = validateLanguageKey;
const formatTranslation = (translation, params = {}) => {
return translation.replace(/\{(\w+)\}/g, (_, key) => params[key] || "");
};
exports.formatTranslation = formatTranslation;
const getLanguageFromURL = () => {
if (typeof window !== "undefined") {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get("lng") || urlParams.get("language");
}
return null;
};
exports.getLanguageFromURL = getLanguageFromURL;
const setLanguageInURL = (language) => {
if (typeof window !== "undefined") {
const url = new URL(window.location.href);
url.searchParams.set("lng", language);
window.history.replaceState({}, "", url.toString());
}
};
exports.setLanguageInURL = setLanguageInURL;