लेबल और वास्तविक परिस्थितियों की जांच करें। पूर्वानुमान लेगिंग की जलरोधकता या थर्मल क्षमता को साबित नहीं करता।
मौसम का विस्तार से अन्वेषण करें
घंटा-दर-घंटा पूर्वानुमान, उपयोगी कपड़ों की सूची और अमेरिकी आधिकारिक अलर्ट देखें। हम केवल आपकी मांग के अनुसार डेटा लोड करते हैं।
📈 अगले 7 दिन और घंटे
तापमान, आर्द्रता, बारिश, यूवी, साफ आसमान और हवा।
🎒 मौसम के अनुसार बाहर जाने की सूची
सहेजे गए पूर्वानुमान का उपयोग करके बिना अतिरिक्त खरीदारी या कॉल के सूची तैयार करें।
⚠️ अमेरिकी आधिकारिक अलर्ट
राष्ट्रीय मौसम सेवा के वर्तमान अलर्ट अमेरिकी स्थानों के लिए।
स्रोत: MET Norway, PlaceDB (CC0) और NWS। सूची कैश्ड पूर्वानुमान पर आधारित है, कपड़ों के परीक्षण पर नहीं।
सलाह कैसे तैयार की जाती है
हम पूर्वानुमान को आपकी पसंद के साथ जोड़ते हैं, कपड़ों की विशेषताओं का अनुमान नहीं लगाते।
वास्तविक पूर्वानुमान
MET Norway से उपलब्ध तापमान, वास्तविक तापमान, हवा और वर्षा।
आपके लेगिंग्स
आप बताएं कि वे हल्के, सामान्य या थर्मल हैं। यह कोई प्रयोगशाला परीक्षण नहीं है।
आपकी गतिविधि
शहरी यात्रा और लंबी पैदल यात्रा के लिए अलग-अलग परतों की आवश्यकता होती है।
ठंड, बारिश या हवा होने पर लेगिंग्स के साथ क्या पहनें
सबसे पहले वास्तविक पूर्वानुमान देखें। तापमान, बारिश, हवा और बाहरी मौसम के अनुसार परतों को अनुकूलित करें। फाइबर का प्रतिशत यह नहीं बताता कि वे कितनी गर्माहट देते हैं।
❄️
ठंड के लिए लेगिंग्स के सेट
छोटी यात्रा के लिए सामान्य लेगिंग्स, स्वेटर और जैकेट काम कर सकते हैं। लगभग शून्य डिग्री या लंबी पैदल यात्रा के दौरान, वास्तविक इन्सुलेशन और बाहरी परत पर विचार करें। अच्छी पकड़ वाले बंद जूते पहनें।
🌧️
बारिश में लेगिंग्स के साथ क्या पहनें
अधिकांश लेगिंग्स जलरोधक नहीं होते। एक जलरोधक बाहरी परत, अच्छी सोल वाले बंद जूते और ऐसी कपड़े पहनें जिन्हें आप छत के नीचे उतार सकें।
🌬️
हवा वाले या मध्यम मौसम वाले दिन
हवा में फाइबर के नाम से ज्यादा विंडप्रूफ जैकेट मायने रखती है। हल्के मौसम में आरामदायक टॉप और आसानी से उतारने वाली हल्की परतें पहनें।
वास्तविक परिस्थितियों के लिए छह सेट
पूर्वानुमान एक संदर्भ है, यूनिफॉर्म नहीं। अपनी यात्रा, गतिविधि और पहले से मौजूद कपड़ों के अनुसार परतें समायोजित करें।
🌧️
शहर में बारिश
अस्पष्ट लेगिंग्स को स्वेटर, जलरोधक जैकेट और अच्छी पकड़ वाले जूतों के साथ मिलाएं।
बाहर निकलने से पहले: गीली सड़क और गर्म अंदरूनी जगहों के लिए अलग-अलग परतों की जरूरत होती है।
अतिरिक्त स्थान और अनुमानित निर्देशांक: GeoNames, CC BY 4.0; संपादकीय चयन। GeoNames।
(function(){
"use strict";
var root=document.querySelector('[data-tool=weather]');if(!root)return;
var L={"find":"और शहर खोजें","hint":"क्या आपका स्थान नहीं मिल रहा? चुने हुए देश में खोजें या और देश लोड करें। कोई GPS या IP खोज नहीं।","lookup":"स्थान का नाम","search":"स्थान खोजें","countries":"और देश","empty":"कोई परिणाम नहीं।","loading":"स्थान खोज रहे हैं…","choose":"इस स्थान को चुनें","intro":"मौसम का विस्तार से पता लगाएं","lead":"घंटा-दर-घंटा पूर्वानुमान, व्यावहारिक कपड़ों की सूची और आधिकारिक अमेरिकी अलर्ट देखें। हम केवल आपकी मांग के अनुसार डेटा लोड करते हैं।","forecast":"घंटे और अगले 7 दिन","forecastDesc":"तापमान, आर्द्रता, बारिश, UV, साफ़ आसमान और हवा।","alerts":"अमेरिकी आधिकारिक अलर्ट","alertsDesc":"राष्ट्रीय मौसम सेवा के वर्तमान अलर्ट अमेरिकी स्थानों के लिए।","go":"जांचें","hour":"आगामी घंटे (UTC)","days":"आगामी दिन (UTC तिथियाँ)","unavailable":"स्रोत अस्थायी रूप से उपलब्ध नहीं।","nothing":"कोई संगत मान नहीं।","notUS":"NWS अलर्ट केवल संयुक्त राज्य अमेरिका में उपलब्ध हैं।","noAlerts":"कोई सक्रिय आधिकारिक सूचनाएं नहीं हैं।","countryReady":"देशों की सूची लोड हो गई है।","source":"स्रोत: MET Norway, PlaceDB (CC0) और NWS। सूची कैश की गई पूर्वानुमान का उपयोग करती है, कपड़ों के परीक्षण का नहीं।","pack":"मौसम के अनुसार बाहर जाने की सूची","packDesc":"सहेजे गए पूर्वानुमान का उपयोग करके सूची तैयार करें, बिना अतिरिक्त खरीदारी या कॉल के।","packItems":["आपकी लेगिंग्स","गर्म कपड़ा या कोट","बारिश से बचाने वाली बाहरी परत","विंडप्रूफ जैकेट","गर्म मोज़े और बंद जूते","आरामदायक, पकड़ वाले जूते"],"packCopy":"सूची कॉपी करें","packSaved":"सूची कॉपी की गई"},country=root.querySelector('#wa-country'),city=root.querySelector('#wa-city');
var input=root.querySelector('#wa-place-query'),matches=root.querySelector('.wa-place-matches'),status=root.querySelector('.wa-place-status-text');
function item(tag,value){var e=document.createElement(tag);e.textContent=String(value);return e;}
function query(){
var opt=city.selectedOptions[0],p=new URLSearchParams();
if(opt&&opt.dataset.placeId){p.set('country',country.value);p.set('place',opt.dataset.placeId);p.set('q',opt.dataset.query);}
else if(city.value)p.set('city',city.value);
return p;
}
var placeEpoch=0,panelEpoch={forecast:0,pack:0,alerts:0};
function clear(){placeEpoch++;for(var mode in panelEpoch)panelEpoch[mode]++;matches.replaceChildren();status.textContent='';for(var e of root.querySelectorAll('.wa-deep-output'))e.replaceChildren();}
country.addEventListener('change',clear);city.addEventListener('change',clear);
var find=root.querySelector('.wa-place-find');
find.addEventListener('click',async function(){
var value=input.value.trim();if(value.length<2){input.focus();return;}
var findIntent=++placeEpoch,chosenCountry=country.value;
status.textContent=L.loading;matches.replaceChildren();find.disabled=true;
try{
var r=await fetch('/api/weather-places?country='+encodeURIComponent(country.value)+'&q='+encodeURIComponent(value));
if(!r.ok)throw Error('places');var d=await r.json();if(findIntent!==placeEpoch||country.value!==chosenCountry)return;if(!d.places||!d.places.length)status.textContent=L.empty;
else status.textContent=d.places.length+' · '+L.choose;
for(const p of d.places||[]){
var li=item('li',''),b=item('button',p.name);
b.type='button';b.addEventListener('click',function(){
if(findIntent!==placeEpoch||country.value!==chosenCountry)return;
var opt=document.createElement('option');opt.value='p-'+p.country+'-'+p.id;opt.textContent=p.name;
opt.dataset.placeId=String(p.id);opt.dataset.query=value;city.append(opt);city.disabled=false;city.value=opt.value;
city.dispatchEvent(new Event('change',{bubbles:true}));status.textContent=p.name+' ✓';matches.replaceChildren();
});li.append(b);matches.append(li);
}
}catch{if(findIntent===placeEpoch)status.textContent=L.unavailable;}finally{find.disabled=false;}
});
input.addEventListener('keydown',function(e){if(e.key==='Enter'){e.preventDefault();find.click();}});
root.querySelector('.wa-all-countries').addEventListener('click',async function(){
var button=this;button.disabled=true;status.textContent=L.loading;
try{
var r=await fetch('/api/weather-countries');if(!r.ok)throw Error('countries');
var d=await r.json(),already=new Set(Array.from(country.options,x=>x.value)),extra=[];
var fmt=new Intl.DisplayNames([document.documentElement.lang||'en'],{type:'region'});
for(var c of d.countries||[]){if(!/^[A-Z]{2}$/.test(c.code)||already.has(c.code))continue;
var o=document.createElement('option');o.value=c.code;o.textContent=fmt.of(c.code)||c.name;
country.append(o);extra.push(c.code);}
window.__leggicMoreCountries=[...new Set([...(window.__leggicMoreCountries||[]),...extra])];
status.textContent=L.countryReady;button.hidden=true;
}catch{status.textContent=L.unavailable;button.disabled=false;}
});
function line(box,name,value){var row=item('div','');row.className='wa-deep-line';row.append(item('span',name),item('strong',value));box.append(row);}
for(const btn of root.querySelectorAll('.wa-deep-fetch')){
btn.addEventListener('click',async function(){
var mode=btn.dataset.mode,box=root.querySelector('.wa-deep-output[data-mode="'+mode+'"]');
var intent=++panelEpoch[mode],selectedCountry=country.value,selectedCity=city.value;
if(!city.value){box.textContent=L.empty;return;}
box.textContent=L.loading;btn.disabled=true;
var p=query(),url=mode==='alerts'?'/api/weather-alerts':'/api/weather-advice';
if(mode==='forecast'||mode==='pack')p.set('view','extended');
try{
var r=await fetch(url+'?'+p.toString());if(!r.ok)throw Error('source');
var d=await r.json();if(intent!==panelEpoch[mode]||city.value!==selectedCity||country.value!==selectedCountry)return;box.replaceChildren();
if(mode==='forecast'){
var a=item('div','');a.className='wa-deep-lines';
if(Number.isFinite(d.humidity))line(a,'💧',d.humidity+'%');
if(Number.isFinite(d.uvClearSky))line(a,'UV (clear sky)',d.uvClearSky);
if(Number.isFinite(d.windGustMs))line(a,'Wind gust',d.windGustMs+' m/s');
for(var h of (d.hourly||[]).slice(0,18))line(a,h.time.slice(5,16).replace('T',' ')+' UTC',h.temperatureC+' °C'+(Number.isFinite(h.precipChance)?' · '+h.precipChance+'%':''));
box.append(a);
var b=item('div','');b.className='wa-deep-lines';
for(var day of d.daily||[])line(b,day.dayUTC,day.lowC+' / '+day.highC+' °C');
box.append(item('h4',L.days),b);
}else if(mode==='pack'){
if(!Number.isFinite(d.temperatureC))throw Error('missing temperature');
var items=[L.packItems[0]];
if(d.temperatureC<10)items.push(L.packItems[1]);
if((Number.isFinite(d.precipMm)&&d.precipMm>=0.2)||/rain|snow|sleet/i.test(d.symbol||''))items.push(L.packItems[2]);
if(d.windMs>=8)items.push(L.packItems[3]);
items.push(d.temperatureC<5?L.packItems[4]:L.packItems[5]);
var list=item('ul','');list.className='wa-packing-list';
for(const label of [...new Set(items)]){var li=item('li',label);list.append(li);}
box.append(list);
var copy=item('button',L.packCopy);copy.type='button';copy.className='wa-pack-copy';
copy.addEventListener('click',async function(){try{
await navigator.clipboard.writeText(items.join('\n'));copy.textContent=L.packSaved;
}catch{copy.textContent=L.unavailable;}});
box.append(copy);
}else{
if(!d.supported){box.textContent=L.notUS;return;}
if(!d.alerts?.length){box.textContent=L.noAlerts;return;}
for(var a of d.alerts)line(box,a.severity,a.event+': '+a.headline);
var link=item('a','National Weather Service');link.href='https://www.weather.gov/';link.rel='noopener noreferrer';box.append(link);
}
}catch{if(intent===panelEpoch[mode])box.textContent=L.unavailable;}finally{btn.disabled=false;}
});
}
})();document.addEventListener('DOMContentLoaded',()=>{setTimeout(()=>{
// The deferred app.js initializes its tool on DOMContentLoaded; run just after it.
const button=document.getElementById('buildLook');if(!button)return;
const labels={it:'Abbinamento',de:'Outfit',es:'Conjunto',fr:'Tenue',en:'Look'};
const enhance=()=>{
const result=document.querySelector('#lookResult .result');
if(!result||result.querySelector('.style-look-grid'))return;
const items=[...result.querySelectorAll('ol li')].slice(0,3);
if(!items.length)return;
const selectedText=id=>{
const element=document.getElementById(id);
return element?.selectedOptions?.[0]?.textContent?.trim()||element?.value||'';
};
const metaText=[selectedText('color'),selectedText('season'),selectedText('shoes')].filter(Boolean).join(' · ');
const grid=document.createElement('div');grid.className='style-look-grid';
items.forEach((item,index)=>{
const card=document.createElement('article');card.className='style-look';
const meta=document.createElement('span');meta.className='style-look-meta';meta.textContent=metaText;
const content=document.createElement('div'),title=document.createElement('b'),copy=document.createElement('p');
title.textContent=(labels[document.documentElement.lang]||labels.en)+' '+(index+1);
copy.innerHTML=item.innerHTML;
content.append(title,copy);card.append(meta,content);grid.append(card);
});
result.querySelector('ol')?.replaceWith(grid);
};
const next=()=>setTimeout(enhance,0);
button.addEventListener('click',next);
for(const id of ['color','season','occasion','shoes','finish'])document.getElementById(id)?.addEventListener('change',next);
next();
},0);});(()=>{const root=document.querySelector('header.site-header [data-lp]');if(!root)return;const t=root.querySelector('.lp-trigger'),d=root.querySelector('.lp-dialog');if(!d||typeof d.showModal!=='function')return;const f=d.querySelector('.lp-filter'),items=[...d.querySelectorAll('.lp-item')],groups=[...d.querySelectorAll('.lp-group')],empty=d.querySelector('.lp-empty');const norm=s=>s.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g,'');const apply=()=>{const q=norm(f.value.trim());let shown=0;items.forEach(a=>{const ok=!q||norm(a.dataset.names+' '+a.textContent).includes(q);a.parentElement.hidden=!ok;if(ok)shown++;});groups.forEach(g=>{g.hidden=![...g.querySelectorAll('li')].some(li=>!li.hidden)});empty.hidden=shown>0;};t.addEventListener('click',e=>{if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;e.preventDefault();d.showModal();f.value='';apply();if(window.matchMedia('(pointer:fine)').matches)f.focus();else d.querySelector('.lp-item.is-current')?.scrollIntoView({block:'center'});});d.querySelector('.lp-close').addEventListener('click',()=>d.close());d.addEventListener('click',e=>{if(e.target===d)d.close()});f.addEventListener('input',apply);f.addEventListener('keydown',e=>{if(e.key==='Enter'){const first=items.find(a=>!a.parentElement.hidden);if(first){e.preventDefault();first.click();}}});d.addEventListener('close',()=>t.focus());})();