The branch, frodo has been updated
       via  5d9d100a6ee888b7d3d4c5194a4d2c745341f345 (commit)
      from  6d672df8fc335ab85c2f6b1e18c134e08c88964e (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=5d9d100a6ee888b7d3d4c5194a4d2c745341f345

commit 5d9d100a6ee888b7d3d4c5194a4d2c745341f345
Author: M. Kaijser <[email protected]>
Date:   Thu May 2 10:06:01 2013 +0200

    [script.tvguide] 2.0.2

diff --git a/script.tvguide/addon.xml b/script.tvguide/addon.xml
index f1031dc..a81062c 100644
--- a/script.tvguide/addon.xml
+++ b/script.tvguide/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.tvguide" name="TV Guide" version="2.0.1" 
provider-name="twinther [[email protected]]">
+<addon id="script.tvguide" name="TV Guide" version="2.0.2" 
provider-name="twinther">
     <requires>
         <import addon="xbmc.python" version="2.1.0"/>
         <import addon="script.module.simplejson" version="2.0.10"/>
@@ -14,24 +14,34 @@
         <summary lang="el">Οδηγός Τηλεόρασης με XMLTV και 
υποστήριξη ροών</summary>
         <summary lang="en">TV Guide with XMLTV and streaming support</summary>
         <summary lang="es">TV Guide con XMLTV y soporte para 
streaming</summary>
+        <summary lang="gl">Guía de TV con soporte XMLTV e 
transmisións</summary>
         <summary lang="it">Guida TV con supporto XMLTV e streaming</summary>
+        <summary lang="ko">XMLTV와 스트리밍을 지원하는 TV 
Guide</summary>
         <summary lang="pl">TV Guide obsługujący XMLTV oraz transmisję 
strumieniową</summary>
         <summary lang="pt">Guia TV com suporte XMLTV e transmissões</summary>
         <summary lang="pt_BR">Guia de TV com XMLTV e suporte para transmissão 
online</summary>
         <summary lang="sk">TV Program s podporou XMLTV a streamovania</summary>
         <summary lang="sv">TV-guide med XML-TV och strömningsstöd</summary>
+        <summary lang="zh">支持XMLTV和流的电视指南</summary>
         <description lang="da">TV guiden giver dig et overblik over hvad der 
er på TV lige nu, så slipper du for at zappe væk fra XBMC![CR]EPG data kan 
indlæses fra YouSee.tv, DR.dk, TvTid.dk, XMLTV fil,  eller en ekstern JSON 
kilde.[CR][CR]Naviger med piletasterne og skift side med kanal + og 
-.[CR][CR]Har du kommentarer, ris eller ros til denne addon er du velkommen til 
at delta    ge i debatten på min blog på http://tommy.winther.nu</description>
         <description lang="de">Der TV-Guide gibt Dir einen Überblick, was 
gerade im TV läuft, so dass man nicht von XBMC wegschalten muss! [CR]EPG-Daten 
können von YouSee.tv, DR.dk, TvTid.dk, XMLTV-Dateien oder über eine woanders 
abgelegte JSON-Quelle eingebunden werden.[CR][CR] Navigiere mit den Pfeiltasten 
und wechsle die Seite mittels der Kanalwahltasten +/-. [CR][CR]Wenn Du 
Kommentare oder Vorschläge zu diesem addon hast, fühl Dich eingeladen, in der 
Debatte auf meinem Blog unter http://tommy.winther.nu 
teilzunehmen.</description>
         <description lang="el">Ο Οδηγός TV σας δίνει μια 
περίληψη του τι παίζει στην τηλεόραση αυτή 
τη στιγμή, ούτως ώστε να μη χρειαστεί να 
κλείσετε το XBMC![CR]Δεδομένα EPG μπορούν να 
ληφθούν μέσω των YouSee.tv, DR.dk, TvTid.dk, αρχείων XMLTV 
ή απομακρυσμένες πηγές JSON.[CR][CR]Π
εριηγηθείτε χρησιμοποιώντας τα βέλη 
κατεύθυνσης και αλλάξτε σελίδα μέσω των 
πλήκτρων Κανάλι + / -.[CR][CR]Αν έχετε σχόλια ή 
προτάσεις για αυτό το πρόσθετο μπορείτε να 
συμμετάσχετε ελεύθερα στη συζήτηση στο blog 
μου στο http://tommy.winther.nu</description>
         <description lang="en">The TV guide gives you an overview on whats on 
TV right now, so you don't have to change the channel away from XBMC![CR]EPG 
data can be retrieved from YouSee.tv, DR.dk, TvTid.dk, XMLTV file or remote 
JSON source.[CR][CR]Navigate using the arrow keys and change page using channel 
+ / -.[CR][CR]If you have comments or suggestions for this addon, please feel 
free to participate in the debate on my blog at 
http://tommy.winther.nu</description>
         <description lang="es">TV Guide ofrece una visión general de lo que 
hay en la televisión ahora mismo, así no tienes que cambiar el canal en 
XBMC![CR]Los datos EPG pueden ser obtenidos de YouSee.tv, DR.dk, TvTid.dk, 
archivo XMLTV o de una fuente remota de JSON.[CR][CR]Navegue usando las teclas 
de flecha y cambie de página mediante canal + / -.[CR][CR]Si usted tiene 
comentarios o sugerencias para este complemente, no dude en participar en el 
debate de mi blog en http://tommy.winther.nu</description>
+        <description lang="gl">A Guía de TV fornece dunha visión xeral do 
que está a acontecer na TV nestes intres, para que non teña que trocar de 
canle fóra do XBMC![CR]Os datos da Guía pódense obter de YouSee.tv, DR.dk, 
TvTid.dk, do ficheiro de XMLTV ou dunha fonte JSON remota.[CR][CR]Navegue 
usando as frechas e troque a página usando canle + / -.[CR][CR]Se ten 
comentarios ou suxestións, pode facelos no meu blogue en 
http://tommy.winther.nu</description>
         <description lang="it">La guida TV ti da un'idea di cosa c'è in TV 
ora, così non dovrai cambiare canale in XBMC![CR]I dati EPG possono essere 
recuperati da YouSee.tv, DR.dk, TvTid.dk, da file XMLTV o sorgenti JSON 
remote.[CR][CR]Naviga usando le freccie e cambia pagina usando Canale 
+/-.[CR][CR]Se hai commenti o suggerimenti per questo addon, sei libero di 
partecipare alla discussione sul mio blog su 
http://tommy.winther.nu</description>
         <description lang="pl">Program TV Guide pokazuje Ci co jest nadawane w 
telewizji, więc teraz już nie musisz zmieniać kanału z XBMC![CR]Dane EPG 
mogą być pobierane z YouSee.tv, DR.dk, TvTid.dk, pliku XMLTV lub 
zewnętrznego źródła JSON.[CR][CR]Aby poruszać się po interfejsie użyj 
klawiszy strzałek, możesz także zmieniać strony za pomocą klawiszy Program 
+ / -.[CR][CR]Jeśli masz komentarz lub sugestie dotyczące tego dodatku będę 
wdzięczny jeśli podzielisz się nimi ze mną na blogu 
http://tommy.winther.nu</description>
         <description lang="pt">O Guia TV dá-lhe uma visão geral do que está 
a passar na TV neste momento, para que não tenha de sair do XBMC![CR]Os dados 
de EPG podem ser obtidos de YouSee.tv, DR.dk, TvTid.dk, ficheiro XMLTV ou fonte 
remota JSON.[CR][CR]Navegue utilizando as setas e mude a página com as teclas 
de canal + / -.[CR][CR]Se tiver comentários ou sugestões para este addon, 
esteja à vontade para participar no debate acedendo ao blog 
http://tommy.winther.nu</description>
         <description lang="pt_BR">O TV Guide dá uma prévia do que está 
passando na TV, para que você não precise mudar de canal no XBMC![CR]Dados de 
EPG podem ser obtidos do YouSee.tv, DR.dk, TVTid.dk, arquivo XML ou fonte JSON 
remota.[CR][CR]Navegue usando as setas e mude de página usando canal 
+/-.[CR][CR]Se você tiver algum comentário ou sugestões para este addon, 
sinta-se livre para participar do debate no meu blog em 
http://tommy.winther.nu.</description>
         <description lang="sk">TV Program Vám dá prehľad čo sa práve v TV 
vysiela, aby ste nemuseli prepnúť preč z XBMC!&#10;EPG dáta sa môžu 
načítavať z YouSee.tv, DR.dk, TvTid.dk, XMLTV súboru alebo vzdialeného 
JSON zdroja.&#10;&#10;Navigujete šípkami a stránku zmeníte pomocou Kanál + 
/ -.&#10;&#10;Ak máte poznámky či pripomienky k tomuto doplnku, prosím 
prispejte do diskusie na blogu http://tommy.winther.nu.</description>
         <description lang="sv">TV-Guide ger dig en överblick av vad som visas 
på TV just nu, så du inte behöver ändra kanal från XBMC![CR]EPG-data kan 
hämtas från YouSee.tv, DR.dk, TvTid.dk, XMLTV-fil eller JSON 
fjärrkälla.[CR][CR]Navigera med hjälp av piltangenterna och ändra kanaler 
+/-.[CR][CR]Om du har kommentarer eller förslag för det här tillägget, var 
god och delta i debatten på min blogg http://tommy.winther.nu</description>
+        <description lang="zh">电视指南让你
不用退出XBMC频道就能知道电视台正播出什么节目![CR]电子节目单数据获取于YouSee.tv、DR.dk、TvTid.dk、XMLTV文件或远程JSON源。[CR][CR]用方向键导航,用频道+/-换页。[CR][CR]对本插件有何意见或建议,请到我的博客讨论http://tommy.winther.nu</description>
         <platform>all</platform>
         <language></language>
+        <license>GPLv2</license>
+        <email>[email protected]</email>
+        <website>http://tommy.winther.nu</website>
+        <forum>http://forum.xbmc.org/showthread.php?tid=120377</forum>
+        <source>https://github.com/twinther/script.tvguide</source>
     </extension>
 </addon>
diff --git a/script.tvguide/changelog.txt b/script.tvguide/changelog.txt
index fe82744..798af50 100644
--- a/script.tvguide/changelog.txt
+++ b/script.tvguide/changelog.txt
@@ -1,3 +1,7 @@
+[B]Version 2.0.2 - 2013-04-25[/B]
+- Improved handling of database initalization errors
+- Update language files from Transifex
+
 [B]Version 2.0.1 - 2013-03-06[/B]
 - Fixed minor problems with stream setup UI
 - Fixed problem with the hour being displayed twice in start/end times
diff --git a/script.tvguide/gui.py b/script.tvguide/gui.py
index 8167a0d..576077b 100644
--- a/script.tvguide/gui.py
+++ b/script.tvguide/gui.py
@@ -716,9 +716,10 @@ class TVGuide(xbmcgui.WindowXML):
     def isSourceInitializationCancelled(self):
         return xbmc.abortRequested or self.isClosing
 
-    def onSourceInitialized(self):
-        self.notification = Notification(self.database, 
ADDON.getAddonInfo('path'))
-        self.onRedrawEPG(0, self.viewStartDate)
+    def onSourceInitialized(self, success):
+        if success:
+            self.notification = Notification(self.database, 
ADDON.getAddonInfo('path'))
+            self.onRedrawEPG(0, self.viewStartDate)
 
     def onSourceProgressUpdate(self, percentageComplete):
         control = self.getControl(self.C_MAIN_LOADING_PROGRESS)
diff --git a/script.tvguide/notification.py b/script.tvguide/notification.py
index 1ecfbcb..ca31d86 100644
--- a/script.tvguide/notification.py
+++ b/script.tvguide/notification.py
@@ -78,8 +78,11 @@ if __name__ == '__main__':
     def onNotificationsCleared():
         xbmcgui.Dialog().ok(strings(CLEAR_NOTIFICATIONS), strings(DONE))
 
-    def onInitialized():
-        database.clearAllNotifications()
-        database.close(onNotificationsCleared)
-
-    database.initialize(onInitialized, None)
+    def onInitialized(success):
+        if success:
+            database.clearAllNotifications()
+            database.close(onNotificationsCleared)
+        else:
+            database.close()
+
+    database.initialize(onInitialized)
diff --git a/script.tvguide/resources/language/Albanian/strings.po 
b/script.tvguide/resources/language/Albanian/strings.po
index 7f14663..c832b34 100644
--- a/script.tvguide/resources/language/Albanian/strings.po
+++ b/script.tvguide/resources/language/Albanian/strings.po
@@ -16,6 +16,10 @@ msgstr ""
 "Language: sq\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgctxt "#30006"
+msgid "Now"
+msgstr "Tani"
+
 msgctxt "#30008"
 msgid "Cancel"
 msgstr "Anulo"
@@ -24,10 +28,22 @@ msgctxt "#30100"
 msgid "General"
 msgstr "I përgjithsëm"
 
+msgctxt "#30101"
+msgid "Source"
+msgstr "Burimi"
+
+msgctxt "#30112"
+msgid "Notifications"
+msgstr "Njoftimet"
+
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "Anulo"
 
+msgctxt "#30307"
+msgid "Channels"
+msgstr "Kanalet"
+
 msgctxt "#30308"
 msgid "Quit"
 msgstr "Mbarro"
diff --git a/script.tvguide/resources/language/Chinese (Simple)/strings.po 
b/script.tvguide/resources/language/Chinese (Simple)/strings.po
index 37a285e..f2df637 100644
--- a/script.tvguide/resources/language/Chinese (Simple)/strings.po     
+++ b/script.tvguide/resources/language/Chinese (Simple)/strings.po     
@@ -16,30 +16,206 @@ msgstr ""
 "Language: zh\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+msgctxt "#30000"
+msgid "No description"
+msgstr "无描述"
+
+msgctxt "#30001"
+msgid "[B]Loading data from external source...[/B]"
+msgstr "[B]从外部源读取数据...[/B]"
+
+msgctxt "#30002"
+msgid "Calculating remaning time..."
+msgstr "计算剩余时间..."
+
+msgctxt "#30003"
+msgid "Approximately %d seconds left..."
+msgstr "剩余约 %d 秒"
+
+msgctxt "#30004"
+msgid "Loading of data already in progress..."
+msgstr "读取数据已在进行中..."
+
+msgctxt "#30005"
+msgid "Mouse control"
+msgstr "鼠标控制"
+
 msgctxt "#30006"
 msgid "Now"
 msgstr "现在"
 
+msgctxt "#30007"
+msgid "[B]Tip![/B] You can also use the scroll wheel"
+msgstr "[B]提示![/ B]你还可以使用滚轮"
+
 msgctxt "#30008"
 msgid "Cancel"
 msgstr "取消"
 
 msgctxt "#30100"
 msgid "General"
-msgstr "菜单选项"
+msgstr "常用"
 
 msgctxt "#30101"
 msgid "Source"
 msgstr "来源"
 
+msgctxt "#30102"
+msgid "Show channels from category"
+msgstr "从分类显示频道"
+
+msgctxt "#30103"
+msgid "XMLTV file"
+msgstr "XMLTV文件"
+
+msgctxt "#30104"
+msgid "Clear cache..."
+msgstr "清除缓存..."
+
+msgctxt "#30105"
+msgid "Done!"
+msgstr "完成!"
+
+msgctxt "#30106"
+msgid "Show notification before selected programs start"
+msgstr "选定节目开始前显示通知"
+
+msgctxt "#30107"
+msgid "Use program image as background"
+msgstr "使用节目图片作背景"
+
+msgctxt "#30108"
+msgid "Clear all reminders..."
+msgstr "清除所有提醒..."
+
+msgctxt "#30109"
+msgid "Remember to clear the cache when you change source"
+msgstr "变更来源前请先清除缓存"
+
+msgctxt "#30110"
+msgid "Update program information on XBMC startup"
+msgstr "XBMC启动时更新节目信息"
+
+msgctxt "#30111"
+msgid "Play channels using the YouSee web-tv addon"
+msgstr "使用YouSee web-tv插件播放频道"
+
 msgctxt "#30112"
 msgid "Notifications"
-msgstr "提示信息"
+msgstr "通知"
+
+msgctxt "#30113"
+msgid "Play channels using the Danish Live TV addon"
+msgstr "使用Danish直播电视插件播放频道"
+
+msgctxt "#30114"
+msgid "Startup"
+msgstr "启动"
+
+msgctxt "#30115"
+msgid "- clear cache first"
+msgstr "- 先清除缓存"
+
+msgctxt "#30116"
+msgid "Search for channel logos in"
+msgstr "搜索频道logo"
+
+msgctxt "#30117"
+msgid "ONTV Pro URL"
+msgstr "ONTV Pro URL"
+
+msgctxt "#30118"
+msgid "Enable OSD menu"
+msgstr "启用OSD菜单"
+
+msgctxt "#30119"
+msgid "Disabling the OSD menu may fix video stuttering."
+msgstr "禁用OSD菜单可解决视频卡顿问题。"
+
+msgctxt "#30120"
+msgid "Use alternate streaming method (required for some addons)"
+msgstr "使用备用流方法(需要一些插件)"
+
+msgctxt "#30121"
+msgid "Alternative streaming is not compatible with OSD menu"
+msgstr "备用流与OSD菜单不兼容"
+
+msgctxt "#30150"
+msgid "Oops, sorry about that!"
+msgstr "哎呀,抱歉!"
+
+msgctxt "#30151"
+msgid "It was not possible to load program data,"
+msgstr "无法读取节目数据,"
+
+msgctxt "#30152"
+msgid "check settings or try again later..."
+msgstr "请检查设置或稍后再试..."
+
+msgctxt "#30153"
+msgid "because the settings are invalid!"
+msgstr "因设置无效!"
+
+msgctxt "#30154"
+msgid "It looks like your current skin has a special"
+msgstr "你的当前皮肤有一个特殊的"
+
+msgctxt "#30155"
+msgid "version of the TV Guide skin that is not up-to-date."
+msgstr "电视指南皮肤版本未更新。"
+
+msgctxt "#30156"
+msgid "Please try with a different skin..."
+msgstr "请试试其它皮肤..."
+
+msgctxt "#30157"
+msgid "It looks like the TV Guide database is broken."
+msgstr "电视指南数据库已损坏。"
+
+msgctxt "#30158"
+msgid "The database will be deleted and recreated."
+msgstr "数据库可删除并重建。"
+
+msgctxt "#30159"
+msgid "Channel configuration, etc. is unfortunately lost."
+msgstr "频道设置等已丢失。"
+
+msgctxt "#30200"
+msgid "on [B]%s[/B] in 5 minutes..."
+msgstr "对 [B]%s[/B] 于 5 分钟..."
+
+msgctxt "#30201"
+msgid "on [B]%s[/B] is starting now..."
+msgstr "对 [B]%s[/B] 正在启动..."
+
+msgctxt "#30300"
+msgid "Watch %s"
+msgstr "观看%s"
+
+msgctxt "#30301"
+msgid "Remind"
+msgstr "提醒"
+
+msgctxt "#30302"
+msgid "Don't remind"
+msgstr "不提醒"
 
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "取消"
 
+msgctxt "#30304"
+msgid "Choose stream"
+msgstr "选择流"
+
+msgctxt "#30305"
+msgid "You can choose your own .strm file to play, when you want to watch this 
channel."
+msgstr "当你
想观看此频道时,可以选择播放自己的.strm文件。"
+
+msgctxt "#30306"
+msgid "Remove stream file"
+msgstr "删除流文件"
+
 msgctxt "#30307"
 msgid "Channels"
 msgstr "频道"
@@ -48,6 +224,14 @@ msgctxt "#30308"
 msgid "Quit"
 msgstr "退出"
 
+msgctxt "#30500"
+msgid "[B]Edit channel order and visibility[/B]"
+msgstr "[B]编辑频道顺序和可见性[/B]"
+
+msgctxt "#30501"
+msgid "Move up and down to change the position of[CR]the channel. Select or 
navigate left to accept[CR]the position."
+msgstr "上下移动改变频道位置。[CR]选定或向左确定位置。"
+
 msgctxt "#30502"
 msgid "Save"
 msgstr "保存"
@@ -56,10 +240,26 @@ msgctxt "#30503"
 msgid "Cancel"
 msgstr "取消"
 
+msgctxt "#30600"
+msgid "[B]Setup stream[/B]"
+msgstr "[B]设置流[/B]"
+
+msgctxt "#30601"
+msgid ".strm file"
+msgstr ".strm文件"
+
 msgctxt "#30602"
 msgid "Favourites"
 msgstr "收藏夹"
 
+msgctxt "#30603"
+msgid "Addons"
+msgstr "扩展功能"
+
+msgctxt "#30604"
+msgid "Preview stream"
+msgstr "预览媒体流"
+
 msgctxt "#30605"
 msgid "Save"
 msgstr "保存"
@@ -68,6 +268,42 @@ msgctxt "#30606"
 msgid "Cancel"
 msgstr "取消"
 
+msgctxt "#30607"
+msgid "Stop preview"
+msgstr "停止预览"
+
 msgctxt "#30610"
 msgid "Browse..."
 msgstr "浏览..."
+
+msgctxt "#30611"
+msgid "Click Browse... below and navigate to your stream file. When you have 
chosen your file you can preview the stream to test if it works in XBMC."
+msgstr "点击浏览... 下面并找到你的流文件。当你
选定文件,可以预览流以测试是否能在XBMC中工作。"
+
+msgctxt "#30620"
+msgid "Choose a favourite below. Only [I]PlayMedia[/I] favourites are 
supported."
+msgstr "在下面选择。仅支持 [I]PlayMedia[/I]。"
+
+msgctxt "#30700"
+msgid "Multiple addons provide this channels.[CR]Choose one to watch the 
stream."
+msgstr "多个插件支持此频道。[CR]选择一个播放流。"
+
+msgctxt "#30800"
+msgid "JSON-EPG URL"
+msgstr "JSON-EPG URL"
+
+msgctxt "#30801"
+msgid "Play channels using the Weeb.Tv addon"
+msgstr "使用Weeb.Tv插件播放频道"
+
+msgctxt "#30802"
+msgid "TV Guide is configured to stream using Weeb.Tv"
+msgstr "电视指南设置用Weeb.Tv播放媒体流"
+
+msgctxt "#30803"
+msgid "addon which is not installed."
+msgstr "插件未安装。"
+
+msgctxt "#30804"
+msgid "Streaming using that addon is now disabled."
+msgstr "已禁用此插件播放流。"
diff --git a/script.tvguide/resources/language/Dutch/strings.po 
b/script.tvguide/resources/language/Dutch/strings.po
index 0160a57..eb56566 100644
--- a/script.tvguide/resources/language/Dutch/strings.po
+++ b/script.tvguide/resources/language/Dutch/strings.po
@@ -16,6 +16,22 @@ msgstr ""
 "Language: nl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgctxt "#30000"
+msgid "No description"
+msgstr "Geen beschrijving"
+
+msgctxt "#30002"
+msgid "Calculating remaning time..."
+msgstr "Bepalen van de resterende tijd..."
+
+msgctxt "#30003"
+msgid "Approximately %d seconds left..."
+msgstr "Nog ongeveer %d seconden..."
+
+msgctxt "#30005"
+msgid "Mouse control"
+msgstr "Muis besturing"
+
 msgctxt "#30006"
 msgid "Now"
 msgstr "Nu"
@@ -32,6 +48,22 @@ msgctxt "#30101"
 msgid "Source"
 msgstr "Bron"
 
+msgctxt "#30103"
+msgid "XMLTV file"
+msgstr "XMLTV bestand"
+
+msgctxt "#30104"
+msgid "Clear cache..."
+msgstr "Leeg cache..."
+
+msgctxt "#30105"
+msgid "Done!"
+msgstr "Klaar!"
+
+msgctxt "#30108"
+msgid "Clear all reminders..."
+msgstr "Wis alle herinneringen..."
+
 msgctxt "#30112"
 msgid "Notifications"
 msgstr "Mededelingen"
@@ -40,10 +72,26 @@ msgctxt "#30114"
 msgid "Startup"
 msgstr "Gebruik Scrollbar"
 
+msgctxt "#30150"
+msgid "Oops, sorry about that!"
+msgstr "Oeps, sorry voor dat!"
+
+msgctxt "#30301"
+msgid "Remind"
+msgstr "Herinder"
+
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "Afbreken"
 
+msgctxt "#30304"
+msgid "Choose stream"
+msgstr "Kies stream"
+
+msgctxt "#30306"
+msgid "Remove stream file"
+msgstr "Verwijder stream bestand"
+
 msgctxt "#30307"
 msgid "Channels"
 msgstr "Kanalen"
@@ -75,3 +123,7 @@ msgstr "Afbreken"
 msgctxt "#30610"
 msgid "Browse..."
 msgstr "Bladeren..."
+
+msgctxt "#30803"
+msgid "addon which is not installed."
+msgstr "addon die niet is geïnstalleerd."
diff --git a/script.tvguide/resources/language/French/strings.po 
b/script.tvguide/resources/language/French/strings.po
index cf0813a..8a6a73f 100644
--- a/script.tvguide/resources/language/French/strings.po
+++ b/script.tvguide/resources/language/French/strings.po
@@ -188,6 +188,10 @@ msgctxt "#30602"
 msgid "Favourites"
 msgstr "Favoris"
 
+msgctxt "#30603"
+msgid "Addons"
+msgstr "Extensions"
+
 msgctxt "#30605"
 msgid "Save"
 msgstr "Enregistrer"
diff --git a/script.tvguide/resources/language/Galician/strings.po 
b/script.tvguide/resources/language/Galician/strings.po
index 3d1dcba..9b1b71d 100644
--- a/script.tvguide/resources/language/Galician/strings.po
+++ b/script.tvguide/resources/language/Galician/strings.po
@@ -24,6 +24,18 @@ msgctxt "#30001"
 msgid "[B]Loading data from external source...[/B]"
 msgstr "[B]Cargando datos dende unha fonte externa...[/B]"
 
+msgctxt "#30002"
+msgid "Calculating remaning time..."
+msgstr "Calculando o tempo restante..."
+
+msgctxt "#30003"
+msgid "Approximately %d seconds left..."
+msgstr "Restan aproximadamente %d segundos..."
+
+msgctxt "#30004"
+msgid "Loading of data already in progress..."
+msgstr "Xa se están a cargar os datos..."
+
 msgctxt "#30005"
 msgid "Mouse control"
 msgstr "Control do rato"
@@ -32,6 +44,10 @@ msgctxt "#30006"
 msgid "Now"
 msgstr "Agora"
 
+msgctxt "#30007"
+msgid "[B]Tip![/B] You can also use the scroll wheel"
+msgstr "[B]Consello:[/B] Tamén pode usar a roda de desprazamento"
+
 msgctxt "#30008"
 msgid "Cancel"
 msgstr "Cancelar"
@@ -44,6 +60,10 @@ msgctxt "#30101"
 msgid "Source"
 msgstr "Fonte"
 
+msgctxt "#30102"
+msgid "Show channels from category"
+msgstr "Amosar canles da categoria"
+
 msgctxt "#30103"
 msgid "XMLTV file"
 msgstr "ficheiro XMLTV"
@@ -60,14 +80,34 @@ msgctxt "#30106"
 msgid "Show notification before selected programs start"
 msgstr "Amosar notificación antes de iniciar o programa seleccionado"
 
+msgctxt "#30107"
+msgid "Use program image as background"
+msgstr "Usar a imaxe do programa como fondo"
+
 msgctxt "#30108"
 msgid "Clear all reminders..."
 msgstr "Limpar tódolos recordatorios..."
 
+msgctxt "#30109"
+msgid "Remember to clear the cache when you change source"
+msgstr "Lembrar limpar a caché cando se troca a fonte"
+
+msgctxt "#30110"
+msgid "Update program information on XBMC startup"
+msgstr "Actualizar a información do programa no arranque de XBMC"
+
+msgctxt "#30111"
+msgid "Play channels using the YouSee web-tv addon"
+msgstr "Reproducir canles usando o complemento web-tv de YouSee"
+
 msgctxt "#30112"
 msgid "Notifications"
 msgstr "Notificacións"
 
+msgctxt "#30113"
+msgid "Play channels using the Danish Live TV addon"
+msgstr "Reproducir canles usando complemento da TV en directo Dinamarquesa"
+
 msgctxt "#30114"
 msgid "Startup"
 msgstr "Arrinque"
@@ -84,6 +124,62 @@ msgctxt "#30117"
 msgid "ONTV Pro URL"
 msgstr "ONTV Pro URL"
 
+msgctxt "#30118"
+msgid "Enable OSD menu"
+msgstr "Activar menú OSD"
+
+msgctxt "#30119"
+msgid "Disabling the OSD menu may fix video stuttering."
+msgstr "Desactivar o menú OSD pode corrixir o estremecemento de vídeo."
+
+msgctxt "#30120"
+msgid "Use alternate streaming method (required for some addons)"
+msgstr "Usar un método de transmisión alternativo (requirido por algúns 
complementos)"
+
+msgctxt "#30121"
+msgid "Alternative streaming is not compatible with OSD menu"
+msgstr "A transmisión alternativa non é compatíbel co menú OSD"
+
+msgctxt "#30150"
+msgid "Oops, sorry about that!"
+msgstr "Vaia, sentímolo moito!"
+
+msgctxt "#30151"
+msgid "It was not possible to load program data,"
+msgstr "Non foi posíbe cargar os datos do programa,"
+
+msgctxt "#30152"
+msgid "check settings or try again later..."
+msgstr "verifique a configuración ou ténteo máis tarde..."
+
+msgctxt "#30153"
+msgid "because the settings are invalid!"
+msgstr "xa que a configuración non é válida!"
+
+msgctxt "#30154"
+msgid "It looks like your current skin has a special"
+msgstr "Semella que o seu tema actual ten unha versión"
+
+msgctxt "#30155"
+msgid "version of the TV Guide skin that is not up-to-date."
+msgstr "especial do tema da Guía de TV que non se pode actualizar."
+
+msgctxt "#30156"
+msgid "Please try with a different skin..."
+msgstr "Por favor escolla outro tema..."
+
+msgctxt "#30157"
+msgid "It looks like the TV Guide database is broken."
+msgstr "Semella que a base de datos da Guía de TV está danada."
+
+msgctxt "#30158"
+msgid "The database will be deleted and recreated."
+msgstr "A base de datos eliminarase e volverase crear."
+
+msgctxt "#30159"
+msgid "Channel configuration, etc. is unfortunately lost."
+msgstr "Desafortunadamente a configuración da canle, etc, perdeuse."
+
 msgctxt "#30200"
 msgid "on [B]%s[/B] in 5 minutes..."
 msgstr "en [B]%s[/B] vai dar comezo en 5 minutos..."
@@ -112,6 +208,10 @@ msgctxt "#30304"
 msgid "Choose stream"
 msgstr "Escoller fluxo"
 
+msgctxt "#30305"
+msgid "You can choose your own .strm file to play, when you want to watch this 
channel."
+msgstr "Pode escoller o seu propio ficheiro .strm para reproducilo cando 
queira ver esta canle."
+
 msgctxt "#30306"
 msgid "Remove stream file"
 msgstr "Emilinar ficheiro de fluxo"
@@ -124,6 +224,14 @@ msgctxt "#30308"
 msgid "Quit"
 msgstr "Saír"
 
+msgctxt "#30500"
+msgid "[B]Edit channel order and visibility[/B]"
+msgstr "[B]Editar a orde da canle e visibilidade[/B]"
+
+msgctxt "#30501"
+msgid "Move up and down to change the position of[CR]the channel. Select or 
navigate left to accept[CR]the position."
+msgstr "Mover arriba e abaixo para trocar a posición da[CR]canle. Seleccione 
ou navegue a esquerda para[CR]aceptar a posición."
+
 msgctxt "#30502"
 msgid "Save"
 msgstr "Gardar"
@@ -168,6 +276,34 @@ msgctxt "#30610"
 msgid "Browse..."
 msgstr "Explorar..."
 
+msgctxt "#30611"
+msgid "Click Browse... below and navigate to your stream file. When you have 
chosen your file you can preview the stream to test if it works in XBMC."
+msgstr "Prema en Navegar... abaixo e navegue até o seu ficheiro de fluxo. 
Cando teña escollido o ficheiro poderá previsualizarlo para probar que é 
compatíbel con XBMC."
+
+msgctxt "#30620"
+msgid "Choose a favourite below. Only [I]PlayMedia[/I] favourites are 
supported."
+msgstr "Escolla un favorito dos de abaixo. Só os favoritos [I]PlayMedia[/I] 
son soportados."
+
+msgctxt "#30700"
+msgid "Multiple addons provide this channels.[CR]Choose one to watch the 
stream."
+msgstr "Canles providas por varios complementos.[CR]Escolla unha para ver a 
transmisión."
+
 msgctxt "#30800"
 msgid "JSON-EPG URL"
 msgstr "JSON-EPG URL"
+
+msgctxt "#30801"
+msgid "Play channels using the Weeb.Tv addon"
+msgstr "Reproducir canles usando os complementos de Weeb.Tv"
+
+msgctxt "#30802"
+msgid "TV Guide is configured to stream using Weeb.Tv"
+msgstr "A Guía de TV está configurada para transmitir usando Weeb.Tv"
+
+msgctxt "#30803"
+msgid "addon which is not installed."
+msgstr "complemento que non está instalado."
+
+msgctxt "#30804"
+msgid "Streaming using that addon is now disabled."
+msgstr "A transmisión usando este complemento está deshabilitada."
diff --git a/script.tvguide/resources/language/Hungarian/strings.po 
b/script.tvguide/resources/language/Hungarian/strings.po
index 307e229..cbbd6fa 100644
--- a/script.tvguide/resources/language/Hungarian/strings.po
+++ b/script.tvguide/resources/language/Hungarian/strings.po
@@ -36,6 +36,10 @@ msgctxt "#30112"
 msgid "Notifications"
 msgstr "Értesítések"
 
+msgctxt "#30114"
+msgid "Startup"
+msgstr "Indítás"
+
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "Mégsem"
diff --git a/script.tvguide/resources/language/Indonesian/strings.po 
b/script.tvguide/resources/language/Indonesian/strings.po
index d7c9e8a..3848e95 100644
--- a/script.tvguide/resources/language/Indonesian/strings.po
+++ b/script.tvguide/resources/language/Indonesian/strings.po
@@ -16,6 +16,10 @@ msgstr ""
 "Language: id\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+msgctxt "#30006"
+msgid "Now"
+msgstr "Sekarang"
+
 msgctxt "#30008"
 msgid "Cancel"
 msgstr "Batal"
@@ -24,10 +28,26 @@ msgctxt "#30100"
 msgid "General"
 msgstr "Umum"
 
+msgctxt "#30101"
+msgid "Source"
+msgstr "Sumber"
+
+msgctxt "#30112"
+msgid "Notifications"
+msgstr "Notifikasi"
+
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "Batal"
 
+msgctxt "#30307"
+msgid "Channels"
+msgstr "Saluran"
+
+msgctxt "#30308"
+msgid "Quit"
+msgstr "Keluar"
+
 msgctxt "#30502"
 msgid "Save"
 msgstr "Simpan"
@@ -36,6 +56,10 @@ msgctxt "#30503"
 msgid "Cancel"
 msgstr "Batal"
 
+msgctxt "#30602"
+msgid "Favourites"
+msgstr "Favorit"
+
 msgctxt "#30605"
 msgid "Save"
 msgstr "Simpan"
diff --git a/script.tvguide/resources/language/Italian/strings.po 
b/script.tvguide/resources/language/Italian/strings.po
index 6e46ceb..fa9b241 100644
--- a/script.tvguide/resources/language/Italian/strings.po
+++ b/script.tvguide/resources/language/Italian/strings.po
@@ -36,6 +36,10 @@ msgctxt "#30004"
 msgid "Loading of data already in progress..."
 msgstr "Caricamento dei dati già in corso..."
 
+msgctxt "#30005"
+msgid "Mouse control"
+msgstr "Controllo con il Mouse"
+
 msgctxt "#30006"
 msgid "Now"
 msgstr "Adesso"
@@ -128,6 +132,14 @@ msgctxt "#30119"
 msgid "Disabling the OSD menu may fix video stuttering."
 msgstr "La disabilitazione dei menu OSD può prevenire la riproduzione \"a 
scatti\""
 
+msgctxt "#30120"
+msgid "Use alternate streaming method (required for some addons)"
+msgstr "Usa ul metodo alternativo (richiesto da alcuni addon)"
+
+msgctxt "#30121"
+msgid "Alternative streaming is not compatible with OSD menu"
+msgstr "Il metodo alternativo non è compatibile con il menù OSD"
+
 msgctxt "#30150"
 msgid "Oops, sorry about that!"
 msgstr "Oops, ci scusiamo per il disagio!"
@@ -256,6 +268,42 @@ msgctxt "#30606"
 msgid "Cancel"
 msgstr "Annulla"
 
+msgctxt "#30607"
+msgid "Stop preview"
+msgstr "Ferma l'anteprima"
+
 msgctxt "#30610"
 msgid "Browse..."
 msgstr "Esplora..."
+
+msgctxt "#30611"
+msgid "Click Browse... below and navigate to your stream file. When you have 
chosen your file you can preview the stream to test if it works in XBMC."
+msgstr "Clicca Sfoglia.....sotto e naviga verso i tuoi flussi video. Quando 
hai scelto il file puoi vederne l'anteprima per testare se funziona in XBMC."
+
+msgctxt "#30620"
+msgid "Choose a favourite below. Only [I]PlayMedia[/I] favourites are 
supported."
+msgstr "Scegli un preferito. Solo i preferiti [I]PlayMedia[/I] sono 
supportati."
+
+msgctxt "#30700"
+msgid "Multiple addons provide this channels.[CR]Choose one to watch the 
stream."
+msgstr "Più add-on forniscono questi canali. [CR] Scegline uno per guardare 
il flusso."
+
+msgctxt "#30800"
+msgid "JSON-EPG URL"
+msgstr "JSON-EPG URL"
+
+msgctxt "#30801"
+msgid "Play channels using the Weeb.Tv addon"
+msgstr "Riproduci canali usando l'addon Weeb.Tv"
+
+msgctxt "#30802"
+msgid "TV Guide is configured to stream using Weeb.Tv"
+msgstr "LA guida TV è configurata per usare Weeb.TV"
+
+msgctxt "#30803"
+msgid "addon which is not installed."
+msgstr "addon che non è installato"
+
+msgctxt "#30804"
+msgid "Streaming using that addon is now disabled."
+msgstr "Rirpodurre usando quell'addon è ora disabilitato"
diff --git a/script.tvguide/resources/language/Korean/strings.po 
b/script.tvguide/resources/language/Korean/strings.po
index 0289764..d5479f5 100644
--- a/script.tvguide/resources/language/Korean/strings.po
+++ b/script.tvguide/resources/language/Korean/strings.po
@@ -16,10 +16,38 @@ msgstr ""
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+msgctxt "#30000"
+msgid "No description"
+msgstr "설명 없음"
+
+msgctxt "#30001"
+msgid "[B]Loading data from external source...[/B]"
+msgstr "[B]외부 소스에서 데이터를 불러오는중...[/B]"
+
+msgctxt "#30002"
+msgid "Calculating remaning time..."
+msgstr "남은 시간 계산중..."
+
+msgctxt "#30003"
+msgid "Approximately %d seconds left..."
+msgstr "약 %d초 남음..."
+
+msgctxt "#30004"
+msgid "Loading of data already in progress..."
+msgstr "데이터 가져오기가 진행중입니다..."
+
+msgctxt "#30005"
+msgid "Mouse control"
+msgstr "마우스 제어"
+
 msgctxt "#30006"
 msgid "Now"
 msgstr "현재 방송"
 
+msgctxt "#30007"
+msgid "[B]Tip![/B] You can also use the scroll wheel"
+msgstr "[B]팁![/B] 마우스 휠을 사용할 수 있습니다"
+
 msgctxt "#30008"
 msgid "Cancel"
 msgstr "취소"
@@ -32,14 +60,154 @@ msgctxt "#30101"
 msgid "Source"
 msgstr "소스"
 
+msgctxt "#30102"
+msgid "Show channels from category"
+msgstr "범주에서 채널 보기"
+
+msgctxt "#30103"
+msgid "XMLTV file"
+msgstr "XMLTV 파일"
+
+msgctxt "#30104"
+msgid "Clear cache..."
+msgstr "캐시 지우기..."
+
+msgctxt "#30105"
+msgid "Done!"
+msgstr "완료!"
+
+msgctxt "#30106"
+msgid "Show notification before selected programs start"
+msgstr "선택한 프로그램 시작 전 알림 보기"
+
+msgctxt "#30107"
+msgid "Use program image as background"
+msgstr "프로그램 이미지를 배경화면으로 사용"
+
+msgctxt "#30108"
+msgid "Clear all reminders..."
+msgstr "모든 알림 지우기..."
+
+msgctxt "#30109"
+msgid "Remember to clear the cache when you change source"
+msgstr "소스를 변경할 때 캐시 지우기 기억"
+
+msgctxt "#30110"
+msgid "Update program information on XBMC startup"
+msgstr "XBMC 시작시 프로그램 정보 업데이트"
+
+msgctxt "#30111"
+msgid "Play channels using the YouSee web-tv addon"
+msgstr "YouSee web-tv 애드온을 사용해서 채널 재생"
+
 msgctxt "#30112"
 msgid "Notifications"
 msgstr "알림"
 
+msgctxt "#30113"
+msgid "Play channels using the Danish Live TV addon"
+msgstr "Danish Live TV 애드온을 사용해서 채널 재생"
+
+msgctxt "#30114"
+msgid "Startup"
+msgstr "시작"
+
+msgctxt "#30115"
+msgid "- clear cache first"
+msgstr "- 먼저 캐시 지우기"
+
+msgctxt "#30116"
+msgid "Search for channel logos in"
+msgstr "채널로고 찾기"
+
+msgctxt "#30117"
+msgid "ONTV Pro URL"
+msgstr "ONTV Pro URL"
+
+msgctxt "#30118"
+msgid "Enable OSD menu"
+msgstr "OSD 메뉴 사용"
+
+msgctxt "#30119"
+msgid "Disabling the OSD menu may fix video stuttering."
+msgstr "OSD 메뉴를 사용하지 않으면 비디오 재생 문제를 
해결할 수도 있습니다."
+
+msgctxt "#30120"
+msgid "Use alternate streaming method (required for some addons)"
+msgstr "다른 스트리밍 방법 사용 (몇몇 애드온에 필요함)"
+
+msgctxt "#30121"
+msgid "Alternative streaming is not compatible with OSD menu"
+msgstr "다른 스트리밍은 OSD 메뉴와 호환되지 않음"
+
+msgctxt "#30151"
+msgid "It was not possible to load program data,"
+msgstr "프로그램 데이터를 불러올 수 없습니다,"
+
+msgctxt "#30152"
+msgid "check settings or try again later..."
+msgstr "설정을 확인하거나 다음에 다시 시도하세요..."
+
+msgctxt "#30153"
+msgid "because the settings are invalid!"
+msgstr "설정이 잘못되었습니다!"
+
+msgctxt "#30154"
+msgid "It looks like your current skin has a special"
+msgstr "현재 스킨이 최신 버전이 아닌"
+
+msgctxt "#30155"
+msgid "version of the TV Guide skin that is not up-to-date."
+msgstr "특별한 TV Guide 스킨인 것 같습니다."
+
+msgctxt "#30156"
+msgid "Please try with a different skin..."
+msgstr "다른 스킨을 선택하세요..."
+
+msgctxt "#30157"
+msgid "It looks like the TV Guide database is broken."
+msgstr "TV Guide 데이터베이스가 깨진 것 같습니다."
+
+msgctxt "#30158"
+msgid "The database will be deleted and recreated."
+msgstr "데이터베이스가 삭제되고 새로 만들어집니다."
+
+msgctxt "#30159"
+msgid "Channel configuration, etc. is unfortunately lost."
+msgstr "채널 설정 등이 손실됩니다."
+
+msgctxt "#30200"
+msgid "on [B]%s[/B] in 5 minutes..."
+msgstr "on [B]%s[/B] in 5 분..."
+
+msgctxt "#30300"
+msgid "Watch %s"
+msgstr "%s 보기"
+
+msgctxt "#30301"
+msgid "Remind"
+msgstr "알림"
+
+msgctxt "#30302"
+msgid "Don't remind"
+msgstr "알리지 않음"
+
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "취소"
 
+msgctxt "#30304"
+msgid "Choose stream"
+msgstr "스트림 선택"
+
+msgctxt "#30305"
+msgid "You can choose your own .strm file to play, when you want to watch this 
channel."
+msgstr "이 채널을 시청하려할 때 재생할 .strm 파일을 선택할 
수 있습니다."
+
+msgctxt "#30306"
+msgid "Remove stream file"
+msgstr "스트림 파일 제거"
+
 msgctxt "#30307"
 msgid "Channels"
 msgstr "채널"
@@ -48,6 +216,10 @@ msgctxt "#30308"
 msgid "Quit"
 msgstr "종료"
 
+msgctxt "#30500"
+msgid "[B]Edit channel order and visibility[/B]"
+msgstr "[B]채널 순서와 보이기 편집[/B]"
+
 msgctxt "#30502"
 msgid "Save"
 msgstr "저장"
@@ -56,10 +228,26 @@ msgctxt "#30503"
 msgid "Cancel"
 msgstr "취소"
 
+msgctxt "#30600"
+msgid "[B]Setup stream[/B]"
+msgstr "[B]스트림 설정[/B]"
+
+msgctxt "#30601"
+msgid ".strm file"
+msgstr ".strm 파일"
+
 msgctxt "#30602"
 msgid "Favourites"
 msgstr "즐겨찾기"
 
+msgctxt "#30603"
+msgid "Addons"
+msgstr "애드온"
+
+msgctxt "#30604"
+msgid "Preview stream"
+msgstr "스트림 미리보기"
+
 msgctxt "#30605"
 msgid "Save"
 msgstr "저장"
@@ -68,6 +256,22 @@ msgctxt "#30606"
 msgid "Cancel"
 msgstr "취소"
 
+msgctxt "#30607"
+msgid "Stop preview"
+msgstr "미리보기 정지"
+
 msgctxt "#30610"
 msgid "Browse..."
 msgstr "찾기..."
+
+msgctxt "#30800"
+msgid "JSON-EPG URL"
+msgstr "JSON-EPG URL"
+
+msgctxt "#30801"
+msgid "Play channels using the Weeb.Tv addon"
+msgstr "Weeb.Tv 애드온을 이용해서 채널 재생"
+
+msgctxt "#30802"
+msgid "TV Guide is configured to stream using Weeb.Tv"
+msgstr "Weeb.Tv를 이용해서 스트림하도록 설정됨"
diff --git a/script.tvguide/resources/language/Malay/strings.po 
b/script.tvguide/resources/language/Malay/strings.po
index 1ed1cf1..9c20109 100644
--- a/script.tvguide/resources/language/Malay/strings.po
+++ b/script.tvguide/resources/language/Malay/strings.po
@@ -20,6 +20,10 @@ msgctxt "#30008"
 msgid "Cancel"
 msgstr "Batal"
 
+msgctxt "#30100"
+msgid "General"
+msgstr "Am"
+
 msgctxt "#30303"
 msgid "Cancel"
 msgstr "Batal"
diff --git a/script.tvguide/resources/language/Persian (Iran)/strings.po 
b/script.tvguide/resources/language/Persian (Iran)/strings.po
index 3ee10f1..947946f 100644
--- a/script.tvguide/resources/language/Persian (Iran)/strings.po       
+++ b/script.tvguide/resources/language/Persian (Iran)/strings.po       
@@ -47,3 +47,7 @@ msgstr "ذخیره"
 msgctxt "#30606"
 msgid "Cancel"
 msgstr "لغو"
+
+msgctxt "#30610"
+msgid "Browse..."
+msgstr "مرور..."
diff --git a/script.tvguide/resources/language/Vietnamese/strings.po 
b/script.tvguide/resources/language/Vietnamese/strings.po
index 7d2bbd0..d66cdcc 100644
--- a/script.tvguide/resources/language/Vietnamese/strings.po
+++ b/script.tvguide/resources/language/Vietnamese/strings.po
@@ -32,6 +32,10 @@ msgctxt "#30307"
 msgid "Channels"
 msgstr "Kênh"
 
+msgctxt "#30308"
+msgid "Quit"
+msgstr "Thoát"
+
 msgctxt "#30502"
 msgid "Save"
 msgstr "Lưu"
@@ -40,6 +44,10 @@ msgctxt "#30503"
 msgid "Cancel"
 msgstr "Há»§y"
 
+msgctxt "#30602"
+msgid "Favourites"
+msgstr "Mục ưa thích"
+
 msgctxt "#30605"
 msgid "Save"
 msgstr "Lưu"
diff --git a/script.tvguide/service.py b/script.tvguide/service.py
index 8a8b1bd..31b88eb 100644
--- a/script.tvguide/service.py
+++ b/script.tvguide/service.py
@@ -22,13 +22,17 @@ import notification
 import xbmc
 import source
 
+
 class Service(object):
     def __init__(self):
         self.database = source.Database()
-        self.database.initialize(self.onInit, None)
+        self.database.initialize(self.onInit)
 
-    def onInit(self):
-        self.database.updateChannelAndProgramListCaches(self.onCachesUpdated)
+    def onInit(self, success):
+        if success:
+            
self.database.updateChannelAndProgramListCaches(self.onCachesUpdated)
+        else:
+            self.database.close()
 
     def onCachesUpdated(self):
 
@@ -42,6 +46,7 @@ try:
     ADDON = xbmcaddon.Addon(id = 'script.tvguide')
     if ADDON.getSetting('cache.data.on.xbmc.startup') == 'true':
         Service()
-
+except source.SourceNotConfiguredException:
+    pass  # ignore
 except Exception, ex:
     xbmc.log('[script.tvguide] Uncaugt exception in service.py: %s' % str(ex) 
, xbmc.LOGDEBUG)
diff --git a/script.tvguide/source.py b/script.tvguide/source.py
index ccc7eb9..8644b83 100644
--- a/script.tvguide/source.py
+++ b/script.tvguide/source.py
@@ -84,15 +84,19 @@ class Program(object):
 class SourceException(Exception):
     pass
 
+
 class SourceUpdateCanceledException(SourceException):
     pass
 
+
 class SourceNotConfiguredException(SourceException):
     pass
 
+
 class DatabaseSchemaException(sqlite3.DatabaseError):
     pass
 
+
 class Database(object):
     SOURCE_DB = 'source.db'
     CHANNELS_PER_PAGE = 9
@@ -107,7 +111,6 @@ class Database(object):
 
         self.updateInProgress = False
         self.updateFailed = False
-        self.sourceNotConfigured = False
         self.settingsChanged = None
 
         #buggalo.addExtraData('source', self.source.KEY)
@@ -141,7 +144,10 @@ class Database(object):
                 self.eventResults[command.__name__] = result
 
                 if callback:
-                    threading.Thread(name = 'Database callback', target = 
callback).start()
+                    if self._initialize == command:
+                        threading.Thread(name='Database callback', 
target=callback, args=[result]).start()
+                    else:
+                        threading.Thread(name='Database callback', 
target=callback).start()
 
                 if self._close == command:
                     del self.eventQueue[:]
@@ -167,7 +173,7 @@ class Database(object):
         del self.eventResults[method.__name__]
         return result
 
-    def initialize(self, callback, cancel_requested_callback):
+    def initialize(self, callback, cancel_requested_callback=None):
         self.eventQueue.append([self._initialize, callback, 
cancel_requested_callback])
         self.event.set()
 
@@ -175,7 +181,7 @@ class Database(object):
         sqlite3.register_adapter(datetime.datetime, self.adapt_datetime)
         sqlite3.register_converter('timestamp', self.convert_datetime)
 
-        self.sourceNotConfigured = False
+        self.alreadyTriedUnlinking = False
         while True:
             if cancel_requested_callback is not None and 
cancel_requested_callback():
                 break
@@ -199,22 +205,26 @@ class Database(object):
                 if cancel_requested_callback is None:
                     xbmc.log('[script.tvguide] Database is locked, bailing 
out...', xbmc.LOGDEBUG)
                     break
-                else: # ignore 'database is locked'
+                else:  # ignore 'database is locked'
                     xbmc.log('[script.tvguide] Database is locked, 
retrying...', xbmc.LOGDEBUG)
 
             except sqlite3.DatabaseError:
                 self.conn = None
-                try:
-                    os.unlink(self.databasePath)
-                except OSError:
-                    pass
-                xbmcgui.Dialog().ok(ADDON.getAddonInfo('name'), 
strings(DATABASE_SCHEMA_ERROR_1),
-                    strings(DATABASE_SCHEMA_ERROR_2), 
strings(DATABASE_SCHEMA_ERROR_3))
-
-        if self.conn is None:
-            self.sourceNotConfigured = True
-
-    def close(self, callback):
+                if self.alreadyTriedUnlinking:
+                    xbmc.log('[script.tvguide] Database is broken and unlink() 
failed', xbmc.LOGDEBUG)
+                    break
+                else:
+                    try:
+                        os.unlink(self.databasePath)
+                    except OSError:
+                        pass
+                    self.alreadyTriedUnlinking = True
+                    xbmcgui.Dialog().ok(ADDON.getAddonInfo('name'), 
strings(DATABASE_SCHEMA_ERROR_1),
+                                        strings(DATABASE_SCHEMA_ERROR_2), 
strings(DATABASE_SCHEMA_ERROR_3))
+
+        return self.conn is not None
+
+    def close(self, callback=None):
         self.eventQueue.append([self._close, callback])
         self.event.set()
 
@@ -224,8 +234,9 @@ class Database(object):
             if self.conn:
                 self.conn.rollback()
         except sqlite3.OperationalError:
-            pass # no transaction is active
-        self.conn.close()
+            pass  # no transaction is active
+        if self.conn:
+            self.conn.close()
 
     def _wasSettingsChanged(self, addon):
         settingsChanged = False
@@ -257,7 +268,6 @@ class Database(object):
         print 'Settings changed: ' + str(settingsChanged)
         return settingsChanged
 
-
     def _isCacheExpired(self, date):
         if self.settingsChanged:
             return True
@@ -293,7 +303,6 @@ class Database(object):
 
         return expired
 
-
     def updateChannelAndProgramListCaches(self, callback, date = 
datetime.datetime.now(), progress_callback = None, clearExistingProgramList = 
True):
         self.eventQueue.append([self._updateChannelAndProgramListCaches, 
callback, date, progress_callback, clearExistingProgramList])
         self.event.set()

-----------------------------------------------------------------------

Summary of changes:
 script.tvguide/addon.xml                           |   12 +-
 script.tvguide/changelog.txt                       |    4 +
 script.tvguide/gui.py                              |    7 +-
 script.tvguide/notification.py                     |   13 +-
 .../resources/language/Albanian/strings.po         |   16 ++
 .../resources/language/Chinese (Simple)/strings.po |  240 +++++++++++++++++++-
 script.tvguide/resources/language/Dutch/strings.po |   52 +++++
 .../resources/language/French/strings.po           |    4 +
 .../resources/language/Galician/strings.po         |  136 +++++++++++
 .../resources/language/Hungarian/strings.po        |    4 +
 .../resources/language/Indonesian/strings.po       |   24 ++
 .../resources/language/Italian/strings.po          |   48 ++++
 .../resources/language/Korean/strings.po           |  204 +++++++++++++++++
 .../language/{Indonesian => Latvian}/strings.po    |   24 +--
 script.tvguide/resources/language/Malay/strings.po |    4 +
 .../resources/language/Persian (Iran)/strings.po   |    4 +
 .../resources/language/Vietnamese/strings.po       |    8 +
 script.tvguide/service.py                          |   13 +-
 script.tvguide/source.py                           |   49 +++--
 19 files changed, 817 insertions(+), 49 deletions(-)
 copy script.tvguide/resources/language/{Indonesian => Latvian}/strings.po (68%)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to