Current.FeelsLike
Current.UVIndex
Current.DewPoint
-Current.OutlookIcon
+Current.ConditionIcon
Current.FanartCode
CURRENT
-------
Current.IsFetched
+Current.LocalTime
+Current.LocalDate
Current.WindDegree
Current.SolarRadiation
Current.Pressure
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="weather.wunderground" name="Weather Underground" version="1.0.9" provider-name="Team XBMC">
+<addon id="weather.wunderground" name="Weather Underground" version="1.0.15" provider-name="Team XBMC">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.simplejson" version="2.0.10"/>
<extension point="xbmc.python.module" library="resources/lib/wunderground"/>
<extension point="xbmc.addon.metadata">
<summary lang="af">Weer voorspelling vanaf wunderground.com</summary>
+ <summary lang="am">የአየር ንብረት ከ wunderground.com</summary>
<summary lang="ar">توقعات الطقس من wunderground.com</summary>
<summary lang="be">Прагноз надвор'я з wunderground.com</summary>
<summary lang="bg">Синоптична прогноза от wunderground.com</summary>
- <summary lang="ca">Previsió del temps des de wunderground.com</summary>
+ <summary lang="ca">Previsió del temps de wunderground.com</summary>
<summary lang="cs">Předpověď počasí z wunderground.com</summary>
+ <summary lang="cy">Rhagolygon tywydd gan wunderground.com</summary>
<summary lang="da">Vejrudsigt fra wunderground.com</summary>
<summary lang="de">Wettervorhersage von wunderground.com</summary>
<summary lang="el">Πρόγνωση καιρού από το wunderground.com</summary>
<summary lang="et">Ilmaennustus portaalist wunderground.com</summary>
<summary lang="eu">Eguraldi iragarpena wunderground.com-etik</summary>
<summary lang="fi">Sääennusteet wunderground.com-sivustolta</summary>
+ <summary lang="fo">Veðurlíkindi frá wunderground.com</summary>
<summary lang="fr">Prévisions météo fournies par wunderground.com</summary>
<summary lang="gl">Predición meteorolóxica de wunderground.com</summary>
<summary lang="he">תחזית מזג האויר מאת wunderground.com</summary>
- <summary lang="hr">Prognoza vremena od wunderground.com</summary>
+ <summary lang="hr">Prognoza vremena s wunderground.com</summary>
<summary lang="hu">Időjárás előrejelzés a wunderground.com-tól</summary>
<summary lang="is">Veðurspár frá wunderground.com</summary>
<summary lang="it">Meteo fornito da wunderground.com</summary>
<summary lang="ko">wunderground.com 날씨예보</summary>
<summary lang="lt">Orų prognozė nuo/iš wunderground.com</summary>
<summary lang="mk">Временска прогноза од wunderground.com</summary>
+ <summary lang="my">wunderground.com မှ ရာသီဥတုခန့်မှန်းချက်</summary>
<summary lang="nl">Weersvoorspelling van wunderground.com</summary>
<summary lang="no">Værvarsel fra wunderground.com</summary>
<summary lang="pl">Prognoza pogody ze strony wunderground.com</summary>
<summary lang="ru">Прогноз погоды с сайта wunderground.com</summary>
<summary lang="sk">Predpoveď počasia z wunderground.com</summary>
<summary lang="sl">Vremenska napoved, ki jo zagotavlja wunderground.com</summary>
+ <summary lang="sq">Parashikimi i motit nga wunderground.com</summary>
<summary lang="sv">Väderprognos från wunderground.com</summary>
+ <summary lang="ta_IN">Wunderground.com இருந்து வானிலை முன்னறிவிப்பு</summary>
<summary lang="th">พยากรณ์อากาศจาก wunderground.com</summary>
<summary lang="tr">Hava durumu wunderground.com sitesinden alınır</summary>
<summary lang="uk">Прогноз погоди з wunderground.com</summary>
+ <summary lang="uz">wunderground.com dan ob-havo ma'lumoti</summary>
+ <summary lang="vi">Dự báo thời tiết từ wunderground.com</summary>
<summary lang="zh">来自wunderground.com的天气预报</summary>
<summary lang="zh_TW">weatherground.com 上的天氣預報</summary>
<description lang="af">Weer voorspelling verskaf deur Weather Underground (http://www.wunderground.com/)</description>
+ <description lang="am">የአየር ንብረት የሚቀርበው በ Weather Underground (http://www.wunderground.com/)</description>
<description lang="ar">توقعات الطقس من تقديم Weather Underground (http://www.wunderground.com/)</description>
<description lang="be">Прагноз надвор'я створаны Weather Underground (http://www.wunderground.com/)</description>
<description lang="bg">Синоптична прогноза с данните от Weather Underground (http://www.wunderground.com/)</description>
<description lang="ca">Previsió del temps proporcionada per Weather Underground (http://www.wunderground.com/)</description>
<description lang="cs">Předpověď počasí poskytnuta stránkou Weather Underground (http://www.wunderground.com/)</description>
+ <description lang="cy">Rhagolygon tywydd gan Weather Underground (http://www.wunderground.com/)</description>
<description lang="da">Vejrudsigten leveres af Weather Underground (http://www.wunderground.com/)</description>
<description lang="de">Wettervorhersage bereitgestellt durch Weather Underground (http://www.wunderground.com/)</description>
<description lang="el">Η πρόγνωση καιρού παρέχεται από το Weather Underground (http://www.wunderground.com/)</description>
<description lang="es_MX">Pronóstico del tiempo por Weather Underground (http://www.wunderground.com/)</description>
<description lang="et">Ilma ennustab Weather Underground (http://www.wunderground.com/)</description>
<description lang="fi">Sääennusteet Weather Underground -sivuston tarjoamina (http://www.wunderground.com/)</description>
+ <description lang="fo">Veðurlíkindi eru veitt av Weather Underground (http://www.wunderground.com)</description>
<description lang="fr">Prévisions météo fournies par Weather Underground (http://www.wunderground.com/)</description>
<description lang="gl">Predición meteorolóxica provista por Weather Underground (http://www.wunderground.com/)</description>
<description lang="he">תחזית מזג האויר ניתנת ע"י Weather Underground (http://www.wunderground.com</description>
<description lang="ko">Weather Underground (http://www.wunderground.com/)가 제공하는 날씨예보</description>
<description lang="lt">Orų prognozė teikiama (pateikiama) iš Weather Underground (http://www.wunderground.com/)</description>
<description lang="mk">Временска прогноза обезбедена од Weather Underground (http://www.wunderground.com/)</description>
+ <description lang="my">ရာသီဥတုခန့်မှန်းချက်ကို Weather Underground (http://www.wunderground.com/) မှထောက်ပံ့ပေးထားပါသည်။</description>
<description lang="nl">Weersvoorspelling voorzien door Weather Underground (http://www.wunderground.com/)</description>
<description lang="no">Værvarsel fra Weather Underground (http://www.wunderground.com)</description>
<description lang="pl">Prognoza pogody jest dostarczona dzięki uprzejmości serwisu: (http://www.wunderground.com/)</description>
<description lang="ru">Прогноз погоды предоставлен компанией Weather Underground (http://www.wunderground.com/)</description>
<description lang="sk">Predpoveď počasia poskytovaná od Weather Underground (http://www.wunderground.com/)</description>
<description lang="sl">Vremenska napoved, ki jo zagotavlja Weather Underground (http://www.wunderground.com/)</description>
+ <description lang="sq">Parashikimi i motit i pajisur nga Weahter Underground (http://www.wunderground.com/)</description>
<description lang="sv">Väderprognos tillhandahållen av Weather Underground (http://www.wunderground.com/)</description>
+ <description lang="ta_IN">வானிலை முன்னறிவிப்பு வழங்குபவர் வானிலை அண்டர்கிரவுண்டு (http://www.wunderground.com/)</description>
<description lang="th">พยากรณ์อากาศโดย Weather Underground (http://www.wunderground.com/)</description>
<description lang="tr">Hava Durumu Weather Underground tarafından sağlanır (http://www.wunderground.com/)</description>
<description lang="uk">Прогноз погоди надано Weather Underground (http://www.wunderground.com/)</description>
+ <description lang="uz">Ob-havo ma'lumoti Weather Underground (http://www.wunderground.com/) tomonidan taqdim etilgan</description>
+ <description lang="vi">Dự báo thời tiết từ Weather Underground (http://www.wunderground.com/)</description>
<description lang="zh">由Weather Underground(http://www.wunderground.com/)提供的天气预报</description>
<description lang="zh_TW">天氣預報由 Weather Underground (http://www.wunderground.com/) 所提供</description>
<disclaimer lang="af">Die gebruik van hierdie byvoegsel impliseer dat U saamstem met die Terme van Diens uiteengesit op http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="bg">Употребявайки добавката Вие се съгласявате с условията за ползване на услугата, които се намират на http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="ca">L'ús d'aquest complement implica que vostè ha acceptat els termes de servei ubicats a http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="cs">Používáním tohoto rozšíření schvalujete podmínky užívání umístěné na http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
- <disclaimer lang="da">Brug af denne add-on indebærer, at du har erklæret dig enig i vilkårene for tjenesten, der findes på http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="cy">Mae defnyddio'r ategyn yma'n awgrymu eich bod yn cytuno i'r Amodau Gwasanaeth sydd yn http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="da">Brug af denne addon indebærer, at du har erklæret dig enig i vilkårene for tjenesten, der findes på http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="de">Mit Benutzung dieses Addons bestätigen Sie, dass Sie den Nutzungsbedingungen auf http://www.wunderground.com/weather/api/d/terms.html zustimmen.</disclaimer>
<disclaimer lang="el">Χρήση αυτού του πρόσθετου συνεπάγεται την αποδοχή των Όρων Χρήσης της Υπηρεσίας (Terms of Service) οι οποίοι βρίσκονται στο http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="en">Use of this add-on implies that you have agreed to the Terms of Service located at http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="et">Selle lisamooduli kasutamine viitab sellele, et te olete nõustunud kasutajatingimustega aadressil http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="eu">Gehigarri hau erabiltzeak http://www.wunderground.com/weather/api/d/terms.html -en aurkitzen diren zerbitzu baldintzak onartzen inplikatzen du.</disclaimer>
<disclaimer lang="fi">Tämän lisäosan käyttäminen tarkoittaa, että olet hyväksynyt osoitteessa http://www.wunderground.com/weather/api/d/terms.html sijaitsevat käyttöehdot</disclaimer>
+ <disclaimer lang="fo">Nýtsla av hesi víðkan merkir at tú góðtekur treytirnar sum finnast á http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="fr">L'utilisation de cette extension implique votre acceptation des Conditions Générales d'Utilisation disponibles sur http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="gl">Empregar este Engadido implica que vostede aceptou os termos de servizo localizados en http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="he">שימוש בתוסף זה משתמע שאישרת את תנאי השימוש אשר ממוקמים בכתובת הבאה http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
- <disclaimer lang="hr">Upotreba ovog add-ona podrazumjeva da se slažete sa Pravilima korištenja koja se nalaze na http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="hr">Upotreba ovog dodatka podrazumijeva da se slažete s Pravilima korištenja koja se nalaze na http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="hu">A kiegészítő használatával elfogadod a következő feltételeket: http://www.wunderground.com/weather/api/d/terms.html </disclaimer>
<disclaimer lang="is">Notkun á þessari viðbót gefur til kynna að þú hafir samþykkt skilmálana sem finna má á http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="it">Usando questo add-on accetti i Termini di Servizio consultabili su http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="ko">이 애드온을 사용하는 것은 http://www.wunderground.com/weather/api/d/terms.html 에 있는 서비스 약관에 동의함을 의미합니다</disclaimer>
<disclaimer lang="lt">Naudodami šį priedą jūs sutinate(-kote) su paslaugų teikimo sąlygomis esančiomis http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="mk">Користење на овој додаток имплицира дека се согласувате со условите за користење кои се наоѓаат на http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="my">ဒီ add-on ကိုသုံးခြင်းသည် http://www.wunderground.com/weather/api/d/terms.html တွင်ရှိသော Terms of Service ကိုသဘောတူညီဟု သတ်မှတ်သည်</disclaimer>
<disclaimer lang="nl">Het gebruik van deze add-on impliceert dat je akkoord gaat met de service-voorwaarden op http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="no">Bruken av dette tillegget betinger at du har godkjent brukervilkårene på http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="pl">Korzystanie z tego dodatku jest równoważne z akceptacją regulaminu dostępnego pod adresem: http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="ru">Используя это дополнение, вы соглашаетесь с условиями предоставления услуг, доступными по адресу http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="sk">Používaním tohto doplnku súhlasíte s podmienkami používania služby umiestnenými na http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="sl">Z uporabo vtičnika se strinjate s Pogoji uporabe, ki se nahajajo na http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="sq">Përdorimi i kësaj shtesës nënkupton që ke lexuar Termat e Shërbimit të lokalizuar tek http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="sv">Användning av detta tillägg innebär att ni har accepterat användarvillkoren som går att hitta på http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="ta_IN">விதிமுறைகள் ஒப்பு கொண்டீர் என்று தெரிகிறது http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="th">ในการใช้บริการโปรแกรมเสริมนี้หมายความว่าคุณได้ยอมรับเงื่อนไขในการให้บริการโดย http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="tr">Bu eklentinin kullanımı aynı zamanda http://www.wunderground.com/weather/api/d/terms.html adresindeki Kullanım koşullarını da kabul ettiğiniz anlamına gelir.</disclaimer>
<disclaimer lang="uk">Скориставшись цією надбудовою, ви тим самим погоджуєтеся з умовами використання: http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
+ <disclaimer lang="vi">Khi sử dụng add-on này đồng nghĩa với việc bạn đồng ý với các điều khoản sử dụng dịch vụ của nhà cung cấp tại địa chỉ http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="zh">使用此扩展功能意味着你同意此连接下的服务条款:http://www.wunderground.com/weather/api/d/terms.html</disclaimer>
<disclaimer lang="zh_TW">使用這個附加元件代表你同意 http://www.wunderground.com/weather/api/d/terms.html 所載之使用者條款</disclaimer>
+ <language></language>
<platform>all</platform>
+ <forum>http://forum.xbmc.org/showthread.php?tid=116668</forum>
+ <source>https://code.google.com/p/ronie/source/</source>
</extension>
</addon>
+v1.0.15
+- fix animated radar images
+- added gzip compression for image retrieval
+
+v1.0.14
+- add support for 5 locations
+- fix possible incorrect display of location name
+- remove old backward compatibility code
+
+v1.0.13
+- added localtime and localdate infolabels
+
+v1.0.12
+- added yyyy-mm-dd format for regions that use this format
+- fixed strip returns in rss label
+
+v1.0.11
+- fix corrupted alert message
+
+v1.0.10
+- fix potential crash on invalid json response
+- fix api error response check
+- added gzip compression support
+
v1.0.9
- updated language files from Transifex
# * http://www.gnu.org/copyleft/gpl.html
-import os, sys, socket, unicodedata, urllib2, time, base64
+import os, sys, socket, unicodedata, urllib2, time, base64, gzip
from datetime import date
+from StringIO import StringIO
import xbmc, xbmcgui, xbmcaddon, xbmcvfs
if sys.version_info < (2, 7):
import simplejson
socket.setdefaulttimeout(10)
+def recode(alert): # workaround: wunderground provides a corrupt alerts message
+ try:
+ alert = alert.encode("latin-1").rstrip(' )').decode("utf-8")
+ except:
+ pass
+ return alert
+
def log(txt):
if DEBUG == 'true':
if isinstance (txt,str):
def refresh_locations():
locations = 0
- for count in range(1, 4):
+ for count in range(1, 6):
loc_name = __addon__.getSetting('Location%s' % count)
if loc_name != '':
locations += 1
__addon__.setSetting('Location1id', locationid)
log('geoip location: %s' % location)
else:
+ location = ''
locationid = ''
- return locationid
+ return location, locationid
-def forecast(loc):
+def forecast(loc,locid):
try:
lang = LANG[LANGUAGE]
except:
lang = 'EN'
opt = 'lang:' + lang
- log('weather location: %s' % loc)
+ log('weather location: %s' % locid)
retry = 0
while (retry < 6) and (not xbmc.abortRequested):
- query = wundergroundapi(WEATHER_FEATURES, opt, loc, FORMAT)
+ query = wundergroundapi(WEATHER_FEATURES, opt, locid, FORMAT)
if query != '':
retry = 6
else:
log('weather download failed')
log('forecast data: %s' % query)
data = parse_data(query)
- if data != '' and not data.has_key('error'):
- properties(data,loc)
+ if data != '' and data.has_key('response') and not data['response'].has_key('error'):
+ properties(data,loc,locid)
else:
clear()
data = ''
return data
-def properties(data,loc):
+def properties(data,loc,locid):
# standard properties
weathercode = WEATHER_CODES[data['current_observation']['icon_url'][31:-4]]
- location = __addon__.getSetting('Location%s' % sys.argv[1])
- if (location == '') and (sys.argv[1] != '1'):
- location = __addon__.getSetting('Location1')
- set_property('Current.Location' , location)
+ set_property('Current.Location' , loc)
set_property('Current.Condition' , data['current_observation']['weather'])
set_property('Current.Temperature' , str(data['current_observation']['temp_c']))
set_property('Current.Wind' , str(data['current_observation']['wind_kph']))
set_property('Current.FeelsLike' , data['current_observation']['feelslike_c'])
set_property('Current.UVIndex' , data['current_observation']['UV'])
set_property('Current.DewPoint' , str(data['current_observation']['dewpoint_c']))
- set_property('Current.OutlookIcon' , '%s.png' % weathercode)
+ set_property('Current.OutlookIcon' , '%s.png' % weathercode) # xbmc translates it to Current.ConditionIcon
set_property('Current.FanartCode' , weathercode)
for count, item in enumerate(data['forecast']['simpleforecast']['forecastday']):
weathercode = WEATHER_CODES[item['icon_url'][31:-4]]
set_property('Forecast.State' , data['current_observation']['display_location']['state_name'])
set_property('Forecast.Country' , data['current_observation']['display_location']['country'])
update = time.localtime(float(data['current_observation']['observation_epoch']))
- if DATEFORMAT[1] == 'm':
- localdate = WEEKDAY[update[6]] + ' ' + MONTH[update[1]] + ' ' + str(update[2]) + ', ' + str(update[0])
+ local = time.localtime(float(data['current_observation']['local_epoch']))
+ if DATEFORMAT[1] == 'd':
+ updatedate = WEEKDAY[update[6]] + ' ' + str(update[2]) + ' ' + MONTH[update[1]] + ' ' + str(update[0])
+ localdate = WEEKDAY[local[6]] + ' ' + str(local[2]) + ' ' + MONTH[local[1]] + ' ' + str(local[0])
+ elif DATEFORMAT[1] == 'm':
+ updatedate = WEEKDAY[update[6]] + ' ' + MONTH[update[1]] + ' ' + str(update[2]) + ', ' + str(update[0])
+ localdate = WEEKDAY[local[6]] + ' ' + str(local[2]) + ' ' + MONTH[local[1]] + ' ' + str(local[0])
else:
- localdate = WEEKDAY[update[6]] + ' ' + str(update[2]) + ' ' + MONTH[update[1]] + ' ' + str(update[0])
+ updatedate = WEEKDAY[update[6]] + ' ' + str(update[0]) + ' ' + MONTH[update[1]] + ' ' + str(update[2])
+ localdate = WEEKDAY[local[6]] + ' ' + str(local[0]) + ' ' + MONTH[local[1]] + ' ' + str(local[2])
if TIMEFORMAT != '/':
- localtime = time.strftime('%I:%M%p', update)
+ updatetime = time.strftime('%I:%M%p', update)
+ localtime = time.strftime('%I:%M%p', local)
else:
- localtime = time.strftime('%H:%M', update)
- set_property('Forecast.Updated' , localdate + ' - ' + localtime)
+ updatetime = time.strftime('%H:%M', update)
+ localtime = time.strftime('%H:%M', local)
+ set_property('Forecast.Updated' , updatedate + ' - ' + updatetime)
# current properties
set_property('Current.IsFetched' , 'true')
+ set_property('Current.LocalTime' , localtime)
+ set_property('Current.LocalDate' , localdate)
set_property('Current.WindDegree' , str(data['current_observation']['wind_degrees']) + u'°')
set_property('Current.SolarRadiation' , str(data['current_observation']['solarradiation']))
if 'F' in TEMPUNIT:
weathercode = WEATHER_CODES[item['icon_url'][31:-4]]
set_property('Daily.%i.LongDay' % (count+1), item['date']['weekday'])
set_property('Daily.%i.ShortDay' % (count+1), item['date']['weekday_short'])
- if DATEFORMAT[1] == 'm':
- set_property('Daily.%i.LongDate' % (count+1), item['date']['monthname'] + ' ' + str(item['date']['day']))
- set_property('Daily.%i.ShortDate' % (count+1), MONTH[item['date']['month']] + ' ' + str(item['date']['day']))
- else:
+ if DATEFORMAT[1] == 'd':
set_property('Daily.%i.LongDate' % (count+1), str(item['date']['day']) + ' ' + item['date']['monthname'])
set_property('Daily.%i.ShortDate' % (count+1), str(item['date']['day']) + ' ' + MONTH[item['date']['month']])
+ else:
+ set_property('Daily.%i.LongDate' % (count+1), item['date']['monthname'] + ' ' + str(item['date']['day']))
+ set_property('Daily.%i.ShortDate' % (count+1), MONTH[item['date']['month']] + ' ' + str(item['date']['day']))
set_property('Daily.%i.Outlook' % (count+1), item['conditions'])
set_property('Daily.%i.OutlookIcon' % (count+1), WEATHER_ICON % weathercode)
set_property('Daily.%i.FanartCode' % (count+1), weathercode)
weathercode = WEATHER_CODES[item['icon_url'][31:-4]]
set_property('Weekend.%i.LongDay' % (count+1), item['date']['weekday'])
set_property('Weekend.%i.ShortDay' % (count+1), item['date']['weekday_short'])
- if DATEFORMAT[1] == 'm':
- set_property('Weekend.%i.LongDate' % (count+1), item['date']['monthname'] + ' ' + str(item['date']['day']))
- set_property('Weekend.%i.ShortDate' % (count+1), MONTH[item['date']['month']] + ' ' + str(item['date']['day']))
- else:
+ if DATEFORMAT[1] == 'd':
set_property('Weekend.%i.LongDate' % (count+1), str(item['date']['day']) + ' ' + item['date']['monthname'])
set_property('Weekend.%i.ShortDate' % (count+1), str(item['date']['day']) + ' ' + MONTH[item['date']['month']])
+ else:
+ set_property('Weekend.%i.LongDate' % (count+1), item['date']['monthname'] + ' ' + str(item['date']['day']))
+ set_property('Weekend.%i.ShortDate' % (count+1), MONTH[item['date']['month']] + ' ' + str(item['date']['day']))
set_property('Weekend.%i.Outlook' % (count+1), item['conditions'])
set_property('Weekend.%i.OutlookIcon' % (count+1), WEATHER_ICON % weathercode)
set_property('Weekend.%i.FanartCode' % (count+1), weathercode)
set_property('Hourly.%i.Time' % (count+1), item['FCTTIME']['civil'])
else:
set_property('Hourly.%i.Time' % (count+1), item['FCTTIME']['hour_padded'] + ':' + item['FCTTIME']['min'])
- if DATEFORMAT[1] == 'm':
- set_property('Hourly.%i.ShortDate' % (count+1), item['FCTTIME']['month_name_abbrev'] + ' ' + item['FCTTIME']['mday_padded'])
- set_property('Hourly.%i.LongDate' % (count+1), item['FCTTIME']['month_name'] + ' ' + item['FCTTIME']['mday_padded'])
- else:
+ if DATEFORMAT[1] == 'd':
set_property('Hourly.%i.ShortDate' % (count+1), item['FCTTIME']['mday_padded'] + ' ' + item['FCTTIME']['month_name_abbrev'])
set_property('Hourly.%i.LongDate' % (count+1), item['FCTTIME']['mday_padded'] + ' ' + item['FCTTIME']['month_name'])
+ else:
+ set_property('Hourly.%i.ShortDate' % (count+1), item['FCTTIME']['month_name_abbrev'] + ' ' + item['FCTTIME']['mday_padded'])
+ set_property('Hourly.%i.LongDate' % (count+1), item['FCTTIME']['month_name'] + ' ' + item['FCTTIME']['mday_padded'])
if 'F' in TEMPUNIT:
set_property('Hourly.%i.Temperature' % (count+1), item['temp']['english'] + TEMPUNIT)
set_property('Hourly.%i.DewPoint' % (count+1), item['dewpoint']['english'] + TEMPUNIT)
set_property('Hourly.%i.Outlook' % (count+1), item['condition'])
set_property('Hourly.%i.OutlookIcon' % (count+1), WEATHER_ICON % weathercode)
set_property('Hourly.%i.FanartCode' % (count+1), weathercode)
- if count == 35: # workaround: wunderground provides a 10day hourly forecast
- break
# alert properties
set_property('Alerts.IsFetched', 'true')
if str(data['alerts']) != '[]':
rss = ''
alerts = ''
for count, item in enumerate(data['alerts']):
- set_property('Alerts.%i.Description' % (count+1), item['description'])
- set_property('Alerts.%i.Message' % (count+1), item['message'])
+ description = recode(item['description']) # workaround: wunderground provides a corrupt alerts message
+ message = recode(item['message']) # workaround: wunderground provides a corrupt alerts message
+ set_property('Alerts.%i.Description' % (count+1), description)
+ set_property('Alerts.%i.Message' % (count+1), message)
set_property('Alerts.%i.StartDate' % (count+1), item['date'])
set_property('Alerts.%i.EndDate' % (count+1), item['expires'])
set_property('Alerts.%i.Significance' % (count+1), SEVERITY[item['significance']])
- rss = rss + item['description'] + ' - '
- alerts = alerts + item['message']
+ rss = rss + description.replace('\n','') + ' - '
+ alerts = alerts + message + '[CR][CR]'
set_property('Alerts.RSS' , rss.rstrip(' - '))
- set_property('Alerts' , alerts)
+ set_property('Alerts' , alerts.rstrip('[CR][CR]'))
set_property('Alerts.Count' , str(count+1))
else:
set_property('Alerts.RSS' , '')
# map properties
set_property('Map.IsFetched', 'true')
filelist = []
- locid = base64.b16encode(loc)
+ locid = base64.b16encode(locid)
addondir = os.path.join(__cwd__, 'resources', 'logo')
mapdir = xbmc.translatePath('special://profile/addon_data/%s/map' % __addonid__)
set_property('MapPath', addondir)
if not xbmcvfs.exists(mapdir):
xbmcvfs.mkdir(mapdir)
- json_query = xbmc.executeJSONRPC('{ "jsonrpc" : "2.0" , "method" : "Files.GetDirectory" , "params" : { "directory" : "%s" , "sort" : { "method" : "file" } } , "id" : 1 }' % mapdir.replace('\\', '\\\\'))
- json_query = unicode(json_query, 'utf-8', errors='ignore')
- json_response = simplejson.loads(json_query)
- if (json_response['result'] != None) and (json_response['result'].has_key('files')) and (json_response['result']['files'] != None):
- for item in json_response['result']['files']:
- if item['filetype'] == 'file':
- filelist.append(item['file'])
+ dirs, filelist = xbmcvfs.listdir(mapdir)
animate = __addon__.getSetting('Animate')
- for item in filelist:
+ for img in filelist:
+ item = xbmc.translatePath('special://profile/addon_data/%s/map/%s' % (__addonid__,img)).decode("utf-8")
if animate == 'true':
if (time.time() - os.path.getmtime(item) > 14400) or (not locid in item):
xbmcvfs.delete(item)
url = data['satellite']['image_url_ir4'].replace('width=300&height=300','width=640&height=360').replace('radius=75','radius=%i' % int(1000/int(zoom.rstrip('0').rstrip('.,'))))
log('map url: %s' % url)
try:
- req = urllib2.urlopen(url)
- response = req.read()
- req.close()
+ req = urllib2.Request(url)
+ req.add_header('Accept-encoding', 'gzip')
+ response = urllib2.urlopen(req)
+ if response.info().get('Content-Encoding') == 'gzip':
+ buf = StringIO(response.read())
+ compr = gzip.GzipFile(fileobj=buf)
+ data = compr.read()
+ else:
+ data = response.read()
+ response.close()
log('satellite image downloaded')
except:
- response = ''
+ data = ''
log('satellite image downloaded failed')
- if response != '':
+ if data != '':
timestamp = time.strftime('%Y%m%d%H%M%S')
mapfile = xbmc.translatePath('special://profile/addon_data/%s/map/%s-%s.png' % (__addonid__,locid,timestamp)).decode("utf-8")
try:
tmpmap = open(mapfile, 'wb')
- tmpmap.write(response)
+ tmpmap.write(data)
tmpmap.close()
set_property('MapPath', mapdir)
except:
log('selected location id: %s' % locationids[selected])
else:
dialog.ok(__addonname__, xbmc.getLocalizedString(284))
-
else:
- location = __addon__.getSetting('Location%sid' % sys.argv[1])
- if (location == '') and (sys.argv[1] != '1'):
- location = __addon__.getSetting('Location1id')
+ location = __addon__.getSetting('Location%s' % sys.argv[1])
+ locationid = __addon__.getSetting('Location%sid' % sys.argv[1])
+ if (locationid == '') and (sys.argv[1] != '1'):
+ location = __addon__.getSetting('Location1')
+ locationid = __addon__.getSetting('Location1id')
log('trying location 1 instead')
- if location == '':
+ if locationid == '':
log('fallback to geoip')
- location = geoip()
- if not location == '':
- if location.startswith('/q/'): # backwards compatibility
- location = location[3:]
- forecast(location)
+ location, locationid = geoip()
+ if not locationid == '':
+ forecast(location, locationid)
else:
log('no location found')
clear()
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Albanian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/sq/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sq\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "Cilësime të vendi"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Cilësime të shtuara"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "Vendi 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "Vendi 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "Vendi 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "Vendi 1 trego emrin"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "Vendi 2 trego emrin"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "Vendi 3 trego emrin"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "Vendi 1 id"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "Vendi 2 id"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "Vendi 3 id"
+
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "Aktivo logging"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "Fundjavë"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "E Shtunë/E Diel "
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "E Premte/E Shtunë"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "E Ejnte/E Premte"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Niveli i zoom'it i hartës"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "Hart e gjallëruar"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Hëna e re"
+
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "Hëna e gjysme duke plotësuar"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Hëna e plotësuar 1/4"
+
+msgctxt "#32504"
+msgid "Waxing Gibbous"
+msgstr "Hëna duke plotësuar"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "Hëna e plotë"
+
+msgctxt "#32506"
+msgid "Waning Gibbous"
+msgstr "Hëna e plotësuar 3/4"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Hëna e plotësuar 3/4"
+
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "Hëna e plotësuar 3/4"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Kujdësi"
+
+msgctxt "#32511"
+msgid "Watch"
+msgstr "Shikimi"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "Këshillë"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "Caktimi"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "Pikëpamje"
+
+msgctxt "#32515"
+msgid "Forecast"
+msgstr "Parashikimi"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "Synopsis"
msgid "Location 3 id"
msgstr "አካባቢ 3 መለያ"
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "መግቢያ ማስቻያ"
+
msgctxt "#32121"
msgid "Weekend"
msgstr "የሳምንቱ መጨረሻ"
msgctxt "#32122"
msgid "Saturday/Sunday"
-msgstr "ቅዳሜ / እሑድ "
+msgstr "ቅዳሜ/እሑድ "
msgctxt "#32123"
msgid "Friday/Saturday"
-msgstr "አርብ / ቅዳሜ "
+msgstr "አርብ/ቅዳሜ "
msgctxt "#32124"
msgid "Thursday/Friday"
-msgstr "ሐሙስ / አርብ "
+msgstr "ሐሙስ/አርብ "
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "የካርታ ማሳያ መጠን"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "ተንቀሳቃሽ ካርታ"
+
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "አካባቢ 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "አካባቢ 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "አካባቢ 4 ስም ማሳያ"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "አካባቢ 5 ስም ማሳያ"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "አካባቢ 4 መለያ"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "አካባቢ 5 መለያ"
msgctxt "#32501"
msgid "New Moon"
msgstr "አዲስ ጨረቃ "
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "እየጨመረ የሚሄድ ከ ግማሽ በታች"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "የመጀመሪያው ሩብ"
+
+msgctxt "#32504"
+msgid "Waxing Gibbous"
+msgstr "እየጨመረ የሚሄድ ከ ግማሽ በላይ "
+
msgctxt "#32505"
msgid "Full Moon"
msgstr "ሙሉ ጨረቃ "
+msgctxt "#32506"
+msgid "Waning Gibbous"
+msgstr "እየቀነሰ የሚሄድ ከ ግማሽ በላይ በላይ "
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "የመጨረሻው ሩብ"
+
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "እየቀነሰ የሚሄድ ከ ግማሽ በታች"
+
msgctxt "#32510"
msgid "Warning"
msgstr "ማስጠንቀቂያ "
+msgctxt "#32511"
+msgid "Watch"
+msgstr "ይጠንቀቁ"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "ይመከራሉ "
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "ባጠቃላይ "
+
msgctxt "#32515"
msgid "Forecast"
-msgstr "á\8c\8dá\88\9dá\89µ "
+msgstr "á\8b°á\88\98á\8a\93á\88\9b "
msgctxt "#32117"
msgid "Location 1 id"
-msgstr "Идентификато на място 1"
+msgstr "Идентификатор на място 1"
msgctxt "#32118"
msgid "Location 2 id"
msgctxt "#32119"
msgid "Location 3 id"
-msgstr "Идентификато на място 3"
+msgstr "Идентификатор на място 3"
msgctxt "#32120"
msgid "Enable logging"
msgid "Animated map"
msgstr "Анимиране на картата"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Място 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Място 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Име за място 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Име за място 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Идентификатор на място 4"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Идентификатор на място 5"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Новолуние"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Burmese (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/my/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: my\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "တည်နေရာ setup"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "တည်နေရာ ၁"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "တည်နေရာ ၂"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "တည်နေရာ ၃"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "တည်နေရာ ၁ ဖော်ပြထားသောအမည်"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "တည်နေရာ ၂ ဖော်ပြထားသောအမည်"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "တည်နေရာ ၃ ဖော်ပြထားသောအမည်"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "တည်နေရာ ၁ id"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "တည်နေရာ ၂ id"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "တည်နေရာ ၃ id"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "စနေနှင့်တနင်္ဂနွေ"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "စနေ၊တနင်္ဂနွေ"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "သောကြာ၊စနေ"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "ကြာသပတေး၊သောကြာ"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Map zoom level"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "လ အသစ်"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "လပြည့်"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "သတိပေးချက်"
+
+msgctxt "#32511"
+msgid "Watch"
+msgstr "စောင့်ကြည့်မည်"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "ဖော်ပြချက်"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "Outlook"
+
+msgctxt "#32515"
+msgid "Forecast"
+msgstr "ခန့်မှန်းချက်"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "Configuració de la ubicació"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Opcions avançades"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "Ubicació 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "Ubicació 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "Ubicació 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "Nom a mostrar de la ubicació 1"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "Nom a mostrar de la ubicació 2"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "Nom a mostrar de la ubicació 3"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "Id de la ubicació 1"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "Id de la ubicació 2"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "Id de la ubicació 3"
+
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "Habilita el registre"
+
msgctxt "#32121"
msgid "Weekend"
msgstr "Cap de setmana"
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "Dissabte/Diumenge"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "Divendres/Dissabte"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "Dijous/Divendres"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Nivell de zoom del mapa"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "Mapa animat"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Lluna nova"
+
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "Lluna nova visible"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Quart creixent"
+
+msgctxt "#32504"
+msgid "Waxing Gibbous"
+msgstr "Lluna gibosa creixent"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "Lluna plena"
+
+msgctxt "#32506"
+msgid "Waning Gibbous"
+msgstr "Lluna gibosa minvant"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Quart minvant"
+
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "Lluna minvant"
+
msgctxt "#32510"
msgid "Warning"
msgstr "Advertència"
+msgctxt "#32511"
+msgid "Watch"
+msgstr "Veure"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "Advertència"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "Declaració"
+
msgctxt "#32514"
msgid "Outlook"
msgstr "Outlook"
msgctxt "#32515"
msgid "Forecast"
msgstr "Predicció"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "Sinopsi"
msgid "Animated map"
msgstr "动态地图"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "地点4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "地点5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "地点4显示名称"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "地点5显示名称"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "地点4 ID"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "地点5 ID"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "新月"
msgctxt "#32101"
msgid "Location setup"
-msgstr "Namjesti lokaciju"
+msgstr "Podešavanje lokacije"
msgctxt "#32102"
msgid "Advanced options"
-msgstr "Dodatne opcije"
+msgstr "Napredne mogućnosti"
msgctxt "#32111"
msgid "Location 1"
msgctxt "#32114"
msgid "Location 1 display name"
-msgstr "Lokacija 1 ime ekrana"
+msgstr "Naziv 1. lokacije"
msgctxt "#32115"
msgid "Location 2 display name"
-msgstr "Lokacija 2 ime ekrana"
+msgstr "Naziv 2. lokacije"
msgctxt "#32116"
msgid "Location 3 display name"
-msgstr "Lokacija 3 ime ekrana"
+msgstr "Naziv 3. lokacije"
msgctxt "#32117"
msgid "Location 1 id"
-msgstr "Lokacija 1 id"
+msgstr "ID lokacije 1"
msgctxt "#32118"
msgid "Location 2 id"
-msgstr "Lokacija 2 id"
+msgstr "ID lokacije 2"
msgctxt "#32119"
msgid "Location 3 id"
-msgstr "Lokacija 3 id"
+msgstr "ID lokacije 3"
msgctxt "#32120"
msgid "Enable logging"
-msgstr "Omogućiti prijave"
+msgstr "Omogući prijave"
msgctxt "#32121"
msgid "Weekend"
msgctxt "#32126"
msgid "Animated map"
-msgstr "Animirane mape"
+msgstr "Animirana karta"
+
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Lokacija 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Lokacija 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Lokacija 4 prikaži naziv"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Lokacija 5 prikaži naziv"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Lokacija 4 ID"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Lokacija 5 ID"
msgctxt "#32501"
msgid "New Moon"
msgctxt "#32510"
msgid "Warning"
-msgstr "Obavjesti"
+msgstr "Upozorenje"
msgctxt "#32511"
msgid "Watch"
msgctxt "#32514"
msgid "Outlook"
-msgstr "Izgledi"
+msgstr "Prognoza"
msgctxt "#32515"
msgid "Forecast"
msgid "Animated map"
msgstr "Animovaná mapa"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Umístění 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Umístění 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Zobrazovaný název umístění 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Zobrazovaný název umístění 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "ID umístění 4"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "ID umístění 5"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Novoluní"
msgid "Animated map"
msgstr "Geanimeerde kaart"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Locatie 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Locatie 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Locatie 4 weergave naam"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Locatie 5 weergave naam"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Locatie 4 id"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Locatie 5 id"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Nieuwe maan"
+++ /dev/null
-# XBMC Media Center language file
-# Addon Name: Weather Underground
-# Addon id: weather.wunderground
-# Addon version: 0.0.9
-# Addon Provider: Team XBMC
-msgid ""
-msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
-"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
-"POT-Creation-Date: 2012-05-28 15:38+0000\n"
-"PO-Revision-Date: 2012-05-28 23:42+0000\n"
-"Last-Translator: XBMC Translation Team\n"
-"Language-Team: English (United States) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/en_US/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en_US\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-msgctxt "#30101"
-msgid "Location Setup"
-msgstr ""
-
-msgctxt "#30111"
-msgid "Change location 1"
-msgstr ""
-
-msgctxt "#30112"
-msgid "Change location 2"
-msgstr ""
-
-msgctxt "#30113"
-msgid "Change location 3"
-msgstr ""
msgid "Animated map"
msgstr ""
-#empty strings from id 32127 to 32500
+msgctxt "#32127"
+msgid "Location 4"
+msgstr ""
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr ""
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr ""
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr ""
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr ""
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr ""
+
+#empty strings from id 32133 to 32500
msgctxt "#32501"
msgid "New Moon"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Faroese (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/fo/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fo\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "Uppseting av stað"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Víðkaðar stillingar"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "Stað 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "Stað 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "Stað 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "Heiti á stað 1"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "Heiti á stað 2"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "Heiti á stað 3"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "Stað 1 id"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "Stað 2 id"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "Stað 3 id"
+
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "Tendra log"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "Vikuskifti"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "Leygardagur/Sunnudagur"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "Fríggjadagur/Leygardagur"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "Hósdagur/Fríggjadagur"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Stødd á korti"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "Livandi kort"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Nýmáni (tendring)"
+
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "Hálvmáni"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Fyrsti fjórðingur"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "Fullmáni (full sól)"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Seinni fjórðingur"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Ávarðing"
+
+msgctxt "#32511"
+msgid "Watch"
+msgstr "Hygg"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "Vegleiðing"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "Frágreiðing"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "Útlit"
+
+msgctxt "#32515"
+msgid "Forecast"
+msgstr "Forsøgn"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "Samandráttur"
msgid "Animated map"
msgstr "Carte animée"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Emplacement 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Emplacement 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Nom de l'emplacement 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Nom de l'emplacement 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Identifiant emplacement 4"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Identifiant emplacement 5"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Nouvelle Lune"
msgctxt "#32503"
msgid "First Quarter"
-msgstr "Erstes Quartal"
+msgstr "Zunehmender Halbmond"
msgctxt "#32504"
msgid "Waxing Gibbous"
-msgstr "Zweites Viertel"
+msgstr "Zunehmender Mond"
msgctxt "#32505"
msgid "Full Moon"
msgctxt "#32506"
msgid "Waning Gibbous"
-msgstr "Drittes Viertel"
+msgstr "Abnehmender Mond"
msgctxt "#32507"
msgid "Last Quarter"
-msgstr "Letztes Quartal"
+msgstr "Abnehmender Halbmond"
msgctxt "#32508"
msgid "Waning Crescent"
msgctxt "#32510"
msgid "Warning"
-msgstr "Achtung"
+msgstr "Warnung"
msgctxt "#32511"
msgid "Watch"
msgctxt "#32514"
msgid "Outlook"
-msgstr "Outlook"
+msgstr "Ausblick"
msgctxt "#32515"
msgid "Forecast"
msgid "Animated map"
msgstr "Εφέ χάρτη"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Τοποθεσία 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Τοποθεσία 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Ονομασία Τοποθεσίας 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Ονομασία Τοποθεσίας 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "ID Τοποθεσίας 4"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "ID Τοποθεσίας 5"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Νέα Σελήνη"
msgid "Weekend"
msgstr "Helgi"
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Athugið"
+
msgctxt "#32514"
msgid "Outlook"
msgstr "Veðurspá"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Indonesian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "Akhir Pekan"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Peringatan"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "Pandangan"
msgid "Animated map"
msgstr "Mappa animata"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Località 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Località 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Località 4 mostra nome"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Località 5 mostra nome"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Località 4 id"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Località 5 id"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Novilunio"
msgid "Animated map"
msgstr "Animowana mapa"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Lokalizacja 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Lokalizacja 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Wyświetlana nazwa lokalizacji 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Wyświetlana nazwa lokalizacji 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Lokalizacja 4 id"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Lokalizacja 5 id"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Księżyc w nowiu"
msgid "Animated map"
msgstr "Mapa animado"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Localização 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Localização 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Nome a exibir de localização 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Nome a exibir de localização 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Id de localização 4"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Id de localização 5"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Lua Nova"
msgid "Animated map"
msgstr "Mapa animado"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Ubicación 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Ubicación 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Nombre a mostrar para ubicación 4"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Nombre a mostrar para ubicación 5"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Id de ubicación 4"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Id de ubicación 5"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Luna nueva"
msgid "Animated map"
msgstr "Animerad karta"
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "Plats 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "Plats 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "Plats 4 visningsnamn"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "Plats 5 visningsnamn"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "Plats 4 id"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "Plats 5 id"
+
msgctxt "#32501"
msgid "New Moon"
msgstr "Nymåne"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Tamil (India) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ta_IN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ta_IN\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "இருப்பிடம் அமைப்பு"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "கூடுதல் விருப்பங்கள்"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "இருப்பிடம் 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "இருப்பிடம் 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "இருப்பிடம் 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "இருப்பிடம் 1 காட்சி பெயர்"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "இருப்பிடம் 2 காட்சி பெயர்"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "இருப்பிடம் 3 காட்சி பெயர்"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "இருப்பிடம் 1 எண்"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "இருப்பிடம் 2 எண்"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "இருப்பிடம் 3 எண்"
+
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "பதிவெடுத்தலை செயல்படுத்து"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "வார இறுதி"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "சனி/ஞாயிறு"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "வெள்ளி/சனி"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "வியாழன்/வெள்ளி"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "நிலப்படம் பெரிதாக்கு நிலை"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "அசைவூட்டபட்ட நிலப்படம்"
+
+msgctxt "#32127"
+msgid "Location 4"
+msgstr "இருப்பிடம் 4"
+
+msgctxt "#32128"
+msgid "Location 5"
+msgstr "இருப்பிடம் 5"
+
+msgctxt "#32129"
+msgid "Location 4 display name"
+msgstr "இருப்பிடம் 4 காட்சி பெயர்"
+
+msgctxt "#32130"
+msgid "Location 5 display name"
+msgstr "இருப்பிடம் 5 காட்சி பெயர்"
+
+msgctxt "#32131"
+msgid "Location 4 id"
+msgstr "இருப்பிடம் 4 எண்"
+
+msgctxt "#32132"
+msgid "Location 5 id"
+msgstr "இருப்பிடம் 5 எண்"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "அமாவாசை"
+
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "வளர்பிறை"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "முதல் கால்பகுதி"
+
+msgctxt "#32504"
+msgid "Waxing Gibbous"
+msgstr "வளர்பிறை"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "பௌர்ணமி"
+
+msgctxt "#32506"
+msgid "Waning Gibbous"
+msgstr "தேய்பிறை"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "கடைசி கால்பகுதி"
+
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "தேய்பிறை"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "எச்சரிக்கை"
+
+msgctxt "#32511"
+msgid "Watch"
+msgstr "கண்காணிப்பு"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "ஆலோசனை"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "கூற்று"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "கண்ணோட்டம்"
+
+msgctxt "#32515"
+msgid "Forecast"
+msgstr "முன் அறிவிப்பு"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "தொகுப்பு"
msgid "Last Quarter"
msgstr "Son Dördün"
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "Hilal"
+
msgctxt "#32510"
msgid "Warning"
msgstr "Uyarı"
msgid "Watch"
msgstr "İzle"
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "Öneri"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "Açıklama"
+
msgctxt "#32514"
msgid "Outlook"
msgstr "Outlook"
msgctxt "#32515"
msgid "Forecast"
msgstr "Hava Tahmini"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "Özet"
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "Налаштування місцевості"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Додаткові налаштування"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "Місцевість 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "Місцевість 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "Місцевість 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "Назва для показу Місцевості 1 "
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "Назва для показу Місцевості 2 "
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "Назва для показу Місцевості 3 "
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "Ідентифікація Місцевості 1 "
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "Ідентифікація Місцевості 2 "
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "Ідентифікація Місцевості 3 "
+
msgctxt "#32121"
msgid "Weekend"
msgstr "Вихідні"
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "Субота/Неділя"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "П’ятниця/Субота"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Ступінь збільшення мапи"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "Анімована мапа"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Новий місяць"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Перша чверть"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "Повний місяць"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Остання чверть"
+
msgctxt "#32510"
msgid "Warning"
msgstr "Увага"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Uzbek (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/uz/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uz\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "O'rnashgan joy moslamalari"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Qo'shimcha parametrlar"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "O'rnashgan joy 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "O'rnashgan joy 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "O'rnashgan joy 3"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "Dam olish kunlari"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "Shanba/Yakshanba"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "Juma/Shanba"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "Payshanba/Juma"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Yangi oy"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Birinchi chorak"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "To'lgan oy"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Oxirgi chorak"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Ogohlantirish"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Vietnamese (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "Thiết lập Chổ"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Các chức năng nâng cao"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "Chổ 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "Chổ 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "Chổ 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "Hiển thị tên của Chổ 1"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "Hiển thị tên của Chổ 2"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "Hiển thị tên của Chổ 3"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "Mã địa điểm 1"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "Mã địa điểm 2"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "Mã địa điểm 3"
+
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "Lưu lại báo cáo"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "Cuối tuần"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "Thứ bảy/Chủ Nhật"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "Thứ sáu/Thứ bảy"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "Thứ năm/Thứ sáu"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Bản đồ mức độ phóng"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "Bản đồ di chuyển"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Tuần trăng mới"
+
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "Trăng lưỡi liềm"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Quý đầu tiên"
+
+msgctxt "#32504"
+msgid "Waxing Gibbous"
+msgstr "Trăng khuyết"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "Trăng tròn"
+
+msgctxt "#32506"
+msgid "Waning Gibbous"
+msgstr "Trăng khuyết"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Quý cuối cùng"
+
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "Trăng lưỡi liềm"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Cảnh báo"
+
+msgctxt "#32511"
+msgid "Watch"
+msgstr "Xem"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "Lời khuyên"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "Báo cáo"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "Toàn cảnh"
+
+msgctxt "#32515"
+msgid "Forecast"
+msgstr "Dự báo"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "Tóm tắt"
--- /dev/null
+# XBMC Media Center language file
+# Addon Name: Weather Underground
+# Addon id: weather.wunderground
+# Addon Provider: Team XBMC
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Welsh (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/cy/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cy\n"
+"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"
+
+msgctxt "#32101"
+msgid "Location setup"
+msgstr "Gosod y lleoliad"
+
+msgctxt "#32102"
+msgid "Advanced options"
+msgstr "Dewisiadau uwch"
+
+msgctxt "#32111"
+msgid "Location 1"
+msgstr "Lleoliad 1"
+
+msgctxt "#32112"
+msgid "Location 2"
+msgstr "Lleoliad 2"
+
+msgctxt "#32113"
+msgid "Location 3"
+msgstr "Lleoliad 3"
+
+msgctxt "#32114"
+msgid "Location 1 display name"
+msgstr "Enw Dangos Lleoliad 1"
+
+msgctxt "#32115"
+msgid "Location 2 display name"
+msgstr "Enw Dangos Lleoliad 2"
+
+msgctxt "#32116"
+msgid "Location 3 display name"
+msgstr "Enw Dangos Lleoliad 3"
+
+msgctxt "#32117"
+msgid "Location 1 id"
+msgstr "Dynodiad Lleoliad 1"
+
+msgctxt "#32118"
+msgid "Location 2 id"
+msgstr "Dynodiad Lleoliad 2"
+
+msgctxt "#32119"
+msgid "Location 3 id"
+msgstr "Dynodiad Lleoliad 3"
+
+msgctxt "#32120"
+msgid "Enable logging"
+msgstr "Galluogi cofnodi"
+
+msgctxt "#32121"
+msgid "Weekend"
+msgstr "Penwythnos"
+
+msgctxt "#32122"
+msgid "Saturday/Sunday"
+msgstr "Sadwrn/Sul"
+
+msgctxt "#32123"
+msgid "Friday/Saturday"
+msgstr "Gwener/Sadwrn"
+
+msgctxt "#32124"
+msgid "Thursday/Friday"
+msgstr "Iau/Gwener"
+
+msgctxt "#32125"
+msgid "Map zoom level"
+msgstr "Lefel chwyddo map"
+
+msgctxt "#32126"
+msgid "Animated map"
+msgstr "Map wedi ei animeiddio"
+
+msgctxt "#32501"
+msgid "New Moon"
+msgstr "Lleuad Newydd"
+
+msgctxt "#32502"
+msgid "Waxing Crescent"
+msgstr "Lleuad ar ei Chynnydd"
+
+msgctxt "#32503"
+msgid "First Quarter"
+msgstr "Chwarter Cyntaf"
+
+msgctxt "#32504"
+msgid "Waxing Gibbous"
+msgstr "Cynnydd Lleuad Amgrwn"
+
+msgctxt "#32505"
+msgid "Full Moon"
+msgstr "Lleuad Llawn"
+
+msgctxt "#32506"
+msgid "Waning Gibbous"
+msgstr "Ciliad Lleuad Amgrwn"
+
+msgctxt "#32507"
+msgid "Last Quarter"
+msgstr "Chwarter Olaf"
+
+msgctxt "#32508"
+msgid "Waning Crescent"
+msgstr "Ciliad Cilgant Lleuad"
+
+msgctxt "#32510"
+msgid "Warning"
+msgstr "Rhybudd"
+
+msgctxt "#32511"
+msgid "Watch"
+msgstr "Gwylio"
+
+msgctxt "#32512"
+msgid "Advisory"
+msgstr "Awgrymiad"
+
+msgctxt "#32513"
+msgid "Statement"
+msgstr "Datganiad"
+
+msgctxt "#32514"
+msgid "Outlook"
+msgstr "Rhagolygon"
+
+msgctxt "#32515"
+msgid "Forecast"
+msgstr "Rhagolygon"
+
+msgctxt "#32516"
+msgid "Synopsis"
+msgstr "Crynodeb"
#http://www.wunderground.com/weather/api/d/docs?d=language-support
# xbmc lang name # wu code
LANG = { 'afrikaans' : 'AF',
+ 'albanian' : 'AL',
+ 'amharic' : 'EN', # AM is n/a, use AR or EN?
'arabic' : 'AR',
+ 'azerbaijani' : 'AZ',
'basque' : 'EU',
'belarusian' : 'BY',
'bosnian' : 'CR', # BS is n/a, use CR or SR?
'bulgarian' : 'BU',
+ 'burmese' : 'MY',
'catalan' : 'CA',
'chinese (simple)' : 'CN',
'chinese (traditional)' : 'TW',
'english (us)' : 'EN',
'esperanto' : 'EO',
'estonian' : 'ET',
+ 'faroese' : 'DK', # FO is n/a, use DK
'finnish' : 'FI',
'french' : 'FR',
'galician' : 'GZ',
'italian' : 'IT',
'japanese' : 'JP',
'korean' : 'KR',
+ 'latvian' : 'LV',
'lithuanian' : 'LT',
'macedonian' : 'MK',
+ 'malay' : 'EN', # MS is n/a, use EN
+ 'malayalam' : 'EN', # ML is n/a, use EN
'maltese' : 'MT',
'norwegian' : 'NO',
+ 'ossetic' : 'EN', # OS is n/a, use EN
+ 'persian' : 'FA',
+ 'persian (iran)' : 'FA',
'polish' : 'PL',
'portuguese' : 'BR',
'portuguese (brazil)' : 'BR',
'spanish (argentina)' : 'SP',
'spanish (mexico)' : 'SP',
'swedish' : 'SW',
+ 'tamil (india)' : 'EN', # TA is n/a, use EN
'thai' : 'TH',
'turkish' : 'TU',
- 'ukrainian' : 'UA'}
+ 'ukrainian' : 'UA',
+ 'uzbek' : 'UZ',
+ 'vietnamese' : 'VU',
+ 'vietnamese (viet nam)' : 'VU',
+ 'welsh' : 'CY'}
WEATHER_CODES = { 'chanceflurries' : '41',
'chancerain' : '39',
# -*- coding: utf-8 -*-
-import urllib2, base64
+import urllib2, gzip, base64
+from StringIO import StringIO
WAIK = 'NDEzNjBkMjFkZjFhMzczNg=='
-WUNDERGROUND_URL = 'http://api.wunderground.com/api/KEY/%s/%s/q/%s.%s'
+WUNDERGROUND_URL = 'http://api.wunderground.com/api/%s/%s/%s/q/%s.%s'
API_EXCLUDE = ['hourly10day', 'yesterday', 'planner', 'webcams', 'animatedradar', 'animatedsatellite', 'currenthurricane']
def wundergroundapi(features, settings, query, format):
return 'api access to %s restricted' % item
if not settings:
settings = 'lang:EN'
- query = WUNDERGROUND_URL % (features, settings, query, format)
- url = query.replace('KEY',(base64.b64decode(WAIK)[::-1]),1)
+ url = WUNDERGROUND_URL % (base64.b64decode(WAIK)[::-1], features, settings, query, format)
try:
- req = urllib2.urlopen(url)
- response = req.read()
- req.close()
+ req = urllib2.Request(url)
+ req.add_header('Accept-encoding', 'gzip')
+ response = urllib2.urlopen(req)
+ if response.info().get('Content-Encoding') == 'gzip':
+ buf = StringIO(response.read())
+ compr = gzip.GzipFile(fileobj=buf)
+ data = compr.read()
+ else:
+ data = response.read()
+ response.close()
except:
- response = ''
- return response
+ data = ''
+ return data
<setting id="Location1" label="32111" type="action" action="RunScript($ID,Location1)" default=""/>
<setting id="Location2" label="32112" type="action" action="RunScript($ID,Location2)" enable="!eq(-1,)" default=""/>
<setting id="Location3" label="32113" type="action" action="RunScript($ID,Location3)" enable="!eq(-1,)" default=""/>
+ <setting id="Location4" label="32127" type="action" action="RunScript($ID,Location4)" enable="!eq(-1,)" default=""/>
+ <setting id="Location5" label="32128" type="action" action="RunScript($ID,Location5)" enable="!eq(-1,)" default=""/>
<setting id="Location1id" type="text" visible="false" default=""/>
<setting id="Location2id" type="text" visible="false" default=""/>
<setting id="Location3id" type="text" visible="false" default=""/>
+ <setting id="Location4id" type="text" visible="false" default=""/>
+ <setting id="Location5id" type="text" visible="false" default=""/>
</category>
<category label="32102">
<setting id="Location1" label="32114" type="text" default=""/>
<setting id="Location3" label="32116" type="text" enable="!eq(-3,)" default=""/>
<setting id="Location3id" label="32119" type="text" subsetting="true" enable="!eq(-3,)" default=""/>
<setting type="sep"/>
+ <setting id="Location4" label="32129" type="text" enable="!eq(-3,)" default=""/>
+ <setting id="Location4id" label="32131" type="text" subsetting="true" enable="!eq(-3,)" default=""/>
+ <setting type="sep"/>
+ <setting id="Location5" label="32130" type="text" enable="!eq(-3,)" default=""/>
+ <setting id="Location5id" label="32132" type="text" subsetting="true" enable="!eq(-3,)" default=""/>
+ <setting type="sep"/>
<setting id="Zoom" label="32125" type="slider" option="int" range="1,100" default="10"/>
<setting id="Animate" label="32126" type="bool" default="false"/>
<setting id="Weekend" label="32121" type="enum" lvalues="32122|32123|32124" default="0"/>