UNPKG

slanted-gamedev-toolz

Version:

A slanted mix of tools for your brilliant ideas in game design.

49 lines (48 loc) 1.57 kB
import { useCallback, useMemo } from "react"; import { getMenuText } from "./LocalizationSelect"; export const getLangCode = () => { const langCode = localStorage.getItem("langCode"); return langCode || ""; }; export const useLocalization = () => { const setLanguage = useCallback((code) => { // when a flag is clicked localStorage.setItem("langCode", code); window.location.reload(); }, []); const langCode = useMemo(() => { return getLangCode(); }, []); const getLocalizedText = useCallback((text) => { return getMenuText(text, langCode); }, [langCode]); return { setLanguage, langCode, getLocalizedText }; }; export const getLocalizedTextRaw = (localizedLine) => { if (!localizedLine) { return ""; } const langCode = (localStorage.getItem("langCode") || ""); if (langCode) return localizedLine?.[langCode]; return localizedLine._en; }; export const getLocalizedDynamicTextRaw = (localizedLine, val, val2, val3) => { if (!localizedLine) { return ""; } const langCode = (localStorage.getItem("langCode") || ""); if (langCode) { const res = localizedLine?.[langCode](val, val2, val3); if (!res) console.error(val, val2, val3); if (typeof res !== "string") { console.error(`getLocalizedDynamicTextRaw must return a string`); } return res; } if (!localizedLine) { console.error(`localizedLine`); } return localizedLine._en(val, val2, val3); };