const interfaceTranslations=new Map([ ['Apne business ki identity, users, roles aur form access yahan manage karein.','Manage your business identity, users, roles and form access here.'], ['Yeh naam dashboard, sidebar aur browser title par show hoga.','This name will appear on the dashboard, sidebar and browser title.'], ['Logo optional hai. Save karne ke baad sidebar aur dashboard branding update ho jayegi.','Logo is optional. Save the profile to update sidebar and dashboard branding.'], ['Har user ke liye role, visible pages aur create/edit/delete rights define karein.','Define each user role, visible pages and create/edit/delete rights.'], ['Role defaults apply jab user ke liye custom permissions select na ki jayein.','Role defaults apply when custom permissions are not selected for a user.'], ['Role pages ko visible rakhta hai aur rights se forms/actions control hote hain.','The role controls visible pages, while rights control forms and actions.'], ['Kam az kam 12 characters.','At least 12 characters.'], ['Password minimum 12 characters ka hona chahiye.','The password must contain at least 12 characters.'], ['Password reset ho gaya.','Password reset successfully.'], ['Logo file 800 KB se choti honi chahiye.','The logo file must be smaller than 800 KB.'], ['Business profile save ho gaya.','Business profile saved successfully.'], ['Vendor costs, movement history, office allocation aur asset condition ek jagah.','Vendor costs, movement history, office allocation and asset condition in one place.'], ['kis ko aur kab diya','who received it and when'], ['Row select karein taa-ke complete custody trail, receiver aur dates nazar aayen.','Select a row to view the complete custody trail, receiver and dates.'], ['No issue, transfer ya return history recorded.','No issue, transfer or return history recorded.'] ]); function translateInterfaceText(root=document.body){const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT);const nodes=[];while(walker.nextNode())nodes.push(walker.currentNode);nodes.forEach(node=>{let value=node.nodeValue;interfaceTranslations.forEach((to,from)=>{if(value.includes(from))value=value.replaceAll(from,to)});if(value!==node.nodeValue)node.nodeValue=value;});} const originalAlert=window.alert;window.alert=message=>originalAlert(interfaceText(message)); const originalConfirm=window.confirm;window.confirm=message=>originalConfirm(interfaceText(message)); function interfaceText(value){let text=String(value??'');interfaceTranslations.forEach((to,from)=>{text=text.replaceAll(from,to)});return text;} const interfaceObserver=new MutationObserver(records=>records.forEach(record=>{if(record.type==='characterData')translateInterfaceText(record.target.parentElement||document.body);record.addedNodes.forEach(node=>{if(node.nodeType===Node.TEXT_NODE){translateInterfaceText(node.parentElement||document.body)}else if(node.nodeType===Node.ELEMENT_NODE)translateInterfaceText(node);});})); interfaceObserver.observe(document.body,{childList:true,subtree:true,characterData:true}); translateInterfaceText();