← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~raoul-snyman/openlp/movements into lp:openlp

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/movements into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)


Just move all the Windows specific stuff into one directory, update the build script, and get the resultant setup file to live in "dist" like it should.
-- 
https://code.launchpad.net/~raoul-snyman/openlp/movements/+merge/36669
Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/movements into lp:openlp.
=== removed file 'OpenLP.spec'
--- OpenLP.spec	2010-05-24 20:46:45 +0000
+++ OpenLP.spec	1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
-# -*- mode: python -*-
-a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'openlp.pyw'],
-             pathex=[os.path.abspath('.')])
-pyz = PYZ(a.pure)
-exe = EXE(pyz,
-          a.scripts,
-          exclude_binaries=1,
-          name=os.path.join('build\\pyi.win32\\OpenLP', 'OpenLP.exe'),
-          debug=False,
-          strip=False,
-          upx=True,
-          console=False , icon='resources\\images\\OpenLP.ico')
-coll = COLLECT( exe,
-               a.binaries,
-               a.zipfiles,
-               a.datas,
-               strip=False,
-               upx=True,
-               name=os.path.join('dist', 'OpenLP'))

=== modified file 'resources/i18n/af.ts'
--- resources/i18n/af.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/af.ts	2010-09-26 21:38:39 +0000
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="af">
+<!DOCTYPE TS><TS version="1.1">
 <context>
     <name>AlertsPlugin</name>
     <message>
@@ -166,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation>Fout</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation>Enkel en dubbel bybel verse kan nie gekombineer word nie. Wis soek resultate uit en begin &apos;n nuwe soektog?</translation>
     </message>
@@ -521,7 +520,7 @@
     <message>
         <location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
         <source>Empty Copyright</source>
-        <translation>Kopiereg Leeg</translation>
+        <translation>Kopiereg is leeg.</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
@@ -667,17 +666,17 @@
         <translation>Behou</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>Geen Boek Gevind nie</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>Geen bypassende boek kon in dié Bybel gevind word nie.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>Bybel nie ten volle gelaai nie.</translation>
     </message>
@@ -854,7 +853,7 @@
     <message>
         <location filename="openlp/plugins/custom/lib/mediaitem.py" line="123"/>
         <source>You haven&apos;t selected an item to edit.</source>
-        <translation>Daar is nie &apos;n item geselekteer om te redigeer nie.</translation>
+        <translation>Daar is nie &apos;n item geselekteer om te redigeer nie</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/lib/mediaitem.py" line="136"/>
@@ -1082,8 +1081,8 @@
     </message>
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="173"/>
-        <source>Copyright © 2004-2010 Raoul Snyman
-Portions copyright © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
+        <source>Copyright &#xa9; 2004-2010 Raoul Snyman
+Portions copyright &#xa9; 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
 
 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 
@@ -1402,7 +1401,7 @@
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="640"/>
         <source>Theme &amp;name:</source>
-        <translation>Tema &amp;naam:</translation>
+        <translation>Tema &amp;naam</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="642"/>
@@ -1465,7 +1464,7 @@
         <translation>Skrif:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Kleur:</translation>
     </message>
@@ -1675,17 +1674,17 @@
         <translation>Selekteer beeld</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>Eerste kleur:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Tweede kleur:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation>Skyfie hoogte is %s rye.</translation>
     </message>
@@ -1704,6 +1703,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2259,7 +2271,7 @@
         <location filename="openlp/core/utils/languagemanager.py" line="85"/>
         <source>English</source>
         <comment>Please add the name of your language here</comment>
-        <translation>Afrikaans</translation>
+        <translation type="unfinished">Afrikaans</translation>
     </message>
 </context>
 <context>
@@ -2678,7 +2690,7 @@
     <message>
         <location filename="openlp/core/ui/servicemanager.py" line="886"/>
         <source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
-        <translation>Die item kan nie vertoon word nie omdat die mini-program wat dit moet vertoon vermis of onaktief is</translation>
+        <translation>Die item kan nie vertoon word nie omdat die mini-program wat dit moet vertoon vermis of onaktief is.</translation>
     </message>
 </context>
 <context>
@@ -2781,182 +2793,192 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>Nuwe Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Skep &apos;n nuwe tema.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Redigeer Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation>Redigeer &apos;n tema.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Wis Tema Uit</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation>Wis &apos;n tema uit.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Voer Tema In</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation>Voer &apos;n tema in.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Voer Tema Uit</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation>Voer &apos;n tema uit.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation>R&amp;edigeer Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>&amp;Wis Tema uit</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation>Stel in As &amp;Globale Standaard</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation>Voer Tema &amp;Uit</translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation>%s (standaard)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation>Kies &apos;n tema om te redigeer.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation>Kies &apos;n tema om uit te wis.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation>Uitwis Bevestiging</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation>Wis tema uit?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Fout</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation>Die standaard tema kan nie uitgewis word nie.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>Geen tema is geselekteer nie.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Stoor Tema - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation>Tema Uitvoer</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation>Die tema was suksesvol uitgevoer.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation>Tema Uitvoer het Misluk</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>Die tema kon nie uitgevoer word nie weens &apos;n fout.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Kies Tema Invoer Lêer</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation>Tema (*.*)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>Lêer is nie &apos;n geldige tema nie.
 Die inhoud enkodering is nie UTF-8 nie.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>Lêer is nie &apos;n geldige tema nie.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>Tema Bestaan Reeds</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation>&apos;n Tema met hierdie naam bestaan alreeds. Kan dit oorskryf word?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation>Tema %s is in gebruik deur die %s mini-program.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation>Tema %s is in gebruik deur die diens bestuurder.</translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3390,7 +3412,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/editsongdialog.py" line="462"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
     <message>
@@ -3414,97 +3436,97 @@
         <translation>Stoor &amp;&amp; Voorskou</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Voeg Skrywer By</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>Hierdie skrywer bestaan nie, moet die skrywer bygevoeg word?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Fout</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation>Hierdie skrywer is alreeds in die lys.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation>Geen Skrywer Geselekteer nie</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation>Die geselekteerde skrywer is ongeldig. Kies &apos;n skrywer vanaf die lys of voer &apos;n nuwe skrywer in en kliek op die &quot;Voeg Skrywer by Lied&quot; knoppie om die skrywer by te voeg.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation>Voeg Onderwerp by</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>Die onderwerp bestaan nie. Voeg dit by?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation>Die onderwerp is reeds in die lys.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation>Geen Onderwep Geselekteer nie</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>Geselekteerde onderwerp is ongeldig. Kies &apos;n onderwerp vanaf die lys of voer &apos;n nuwe onderwerp in en kliek die &quot;Voeg Onderwerp by Lied&quot; knoppie om die onderwerp by te voeg.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation>Tik &apos;n lied titel in.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation>Ten minste een vers moet ingevoer word.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation>Waarskuwing</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation>Die lied het nog geen skrywer nie. Voeg nou &apos;n skrywer by?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation>Die vers orde is ongeldig. Daar is geen vers wat ooreenstem met %s nie. Geldige opsies is %s.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation>In die vers orde is %s nie gebruik nie. Kan die lied so gestoor word?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation>Voeg Boek by</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation>Die lied boek bestaan nie. Voeg dit by?</translation>
     </message>
@@ -3802,7 +3824,7 @@
     <message>
         <location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
         <source>Administered by %s</source>
-        <translation>Toegedien deur %s</translation>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -3925,7 +3947,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
 </context>

=== modified file 'resources/i18n/de.ts'
--- resources/i18n/de.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/de.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished">Fehler</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -661,12 +661,12 @@
         <translation>Behalten</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>Kein Buch gefunden</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>Das Buch wurde in dieser Bibelausgabe nicht gefunden.</translation>
     </message>
@@ -676,7 +676,7 @@
         <translation>Art der Suche:</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>Bibel wurde nicht vollständig geladen.</translation>
     </message>
@@ -1474,7 +1474,7 @@
         <translation>Schriftart:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Farbe:</translation>
     </message>
@@ -1684,17 +1684,17 @@
         <translation>Bild auswählen</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>Erste Farbe:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Zweite Farbe:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation>Folienhöhe %s Reihen.</translation>
     </message>
@@ -1714,6 +1714,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2791,182 +2804,192 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>Neues Design</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Erzeuge ein neues Design.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Design bearbeiten</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation>Bearbeite ein Design.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Design löschen</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation>Lösche ein Design.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Design importieren</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation>Importiere ein Design.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Design exportieren</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation>Exportiere ein Design.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation>B&amp;earbeite Design</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>Lösche &amp;Design</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation>Setze als &amp;globalen Standard</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation>E&amp;xport Design</translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation>%s (Standard)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation>Bitte wählen Sie ein Design zum Bearbeiten aus.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation>Bitte wählen Sie ein Design zum Löschen aus.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation>Löschen Bestätigen</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation>Design löschen?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation>Es ist nicht möglich das Standard Design zu entfernen.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>Sie haben kein Design ausgewählt.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Speichere Design - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation>Design exportiert</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation>Das Design wurde erfolgreich exportiert.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation>Design Export fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>Dieses Design konnte aufgrund eines Fehlers nicht exportiert werden.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Wähle Datei für Design Import</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation>Design (*.*)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>Dies ist kein gültiges Design.
 Die Datei ist nicht in UTF-8 kodiert.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>Diese Datei beinhaltet kein gültiges Design.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>Design existiert</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation>Ein Design mit diesem Namen existiert bereits. Soll es überschrieben werden?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation>Design %s wird in der %s Erweiterung benutzt.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation>Design %s wird in der Ablaufverwaltung benutzt.</translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3389,87 +3412,87 @@
         <translation>Speichern &amp;&amp; Vorschau</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Autor Hinzufügen</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>Dieser Autor existiert nicht. Soll er hinzu gefügt werden?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation>Kein Autor ausgewählt</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation>Es wurde kein gültiger Autor ausgewählt. Bitte wählen Sie einen Autor aus der Liste oder geben Sie einen neuen Author ein und drücken die Schaltfläche &quot;Author zum Lied hinzufügen&quot;,</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation>Thema hinzufügen</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>Dieses Thema existiert nicht. Soll es hinzugefügt werden?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation>Kein Thema gewählt</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>Es wurde kein gültiges Thema ausgewählt. Bitte wählen Sie ein Thema aus der Liste oder geben Sie ein neues Thema ein und drücken die Schaltfläche &quot;Thema zum Lied hinzufügen&quot;.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation>Buch hinzufügen</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3499,12 +3522,12 @@
         <translation type="unfinished">CCLI Nummer:</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>

=== modified file 'resources/i18n/en.ts'
--- resources/i18n/en.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/en.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -657,17 +657,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1284,7 +1284,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,17 +1494,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1523,6 +1523,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2597,178 +2610,188 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3229,97 +3252,97 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>

=== modified file 'resources/i18n/en_GB.ts'
--- resources/i18n/en_GB.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/en_GB.ts	2010-09-26 21:38:39 +0000
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="en_GB">
+<!DOCTYPE TS><TS version="1.1">
 <context>
     <name>AlertsPlugin</name>
     <message>
@@ -166,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</translation>
     </message>
@@ -667,17 +666,17 @@
         <translation>Keep</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>No Book Found</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>No matching book could be found in this Bible.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>Bible not fully loaded.</translation>
     </message>
@@ -1082,8 +1081,8 @@
     </message>
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="173"/>
-        <source>Copyright © 2004-2010 Raoul Snyman
-Portions copyright © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
+        <source>Copyright &#xa9; 2004-2010 Raoul Snyman
+Portions copyright &#xa9; 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
 
 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 
@@ -1467,7 +1466,7 @@
         <translation>Font:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Colour:</translation>
     </message>
@@ -1677,17 +1676,17 @@
         <translation>Select Image</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>First colour:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Second colour:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation>Slide height is %s rows.</translation>
     </message>
@@ -1706,6 +1705,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2260,7 +2272,7 @@
         <location filename="openlp/core/utils/languagemanager.py" line="85"/>
         <source>English</source>
         <comment>Please add the name of your language here</comment>
-        <translation>English (United Kingdom)</translation>
+        <translation type="unfinished">English</translation>
     </message>
 </context>
 <context>
@@ -2782,182 +2794,192 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>New Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Create a new theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Edit Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation>Edit a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Delete Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation>Delete a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Import Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation>Import a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Export Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation>Export a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation>&amp;Edit Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>&amp;Delete Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation>Set As &amp;Global Default</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation>E&amp;xport Theme</translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation>%s (default)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation>You must select a theme to edit.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation>You must select a theme to delete.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation>Delete Confirmation</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation>Delete theme?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation>You are unable to delete the default theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>You have not selected a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Save Theme - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation>Theme Exported</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation>Your theme has been successfully exported.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation>Theme Export Failed</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>Your theme could not be exported due to an error.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Select Theme Import File</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation>Theme (*.*)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>File is not a valid theme.
 The content encoding is not UTF-8.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>File is not a valid theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>Theme Exists</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation>A theme with this name already exists. Would you like to overwrite it?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation>Theme %s is used in the %s plugin.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation>Theme %s is used by the service manager.</translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3391,7 +3413,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/editsongdialog.py" line="462"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
     <message>
@@ -3415,97 +3437,97 @@
         <translation>Save &amp;&amp; Preview</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Add Author</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>This author does not exist, do you want to add them?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation>This author is already in the list.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation>No Author Selected</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation>Add Topic</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>This topic does not exist, do you want to add it?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation>This topic is already in the list.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation>No Topic Selected</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation>You need to type in a song title.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation>You need to type in at least one verse.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation>Warning</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation>You have not added any authors for this song. Do you want to add an author now?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation>Add Book</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation>This song book does not exist, do you want to add it?</translation>
     </message>
@@ -3803,7 +3825,7 @@
     <message>
         <location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
         <source>Administered by %s</source>
-        <translation>Administered by %s</translation>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -3926,7 +3948,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
 </context>

=== modified file 'resources/i18n/en_ZA.ts'
--- resources/i18n/en_ZA.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/en_ZA.ts	2010-09-26 21:38:39 +0000
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="en_ZA">
+<!DOCTYPE TS><TS version="1.1" language="en_ZA">
 <context>
     <name>AlertsPlugin</name>
     <message>
@@ -166,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</translation>
     </message>
@@ -667,17 +666,17 @@
         <translation>Keep</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>No Book Found</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>No matching book could be found in this Bible.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>Bible not fully loaded.</translation>
     </message>
@@ -1102,8 +1101,8 @@
     </message>
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="173"/>
-        <source>Copyright © 2004-2010 Raoul Snyman
-Portions copyright © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
+        <source>Copyright &#xa9; 2004-2010 Raoul Snyman
+Portions copyright &#xa9; 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
 
 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 
@@ -1467,7 +1466,7 @@
         <translation>Font:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Color:</translation>
     </message>
@@ -1677,17 +1676,17 @@
         <translation>Select Image</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>First color:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Second color:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation>Slide height is %s rows.</translation>
     </message>
@@ -1706,6 +1705,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2261,7 +2273,7 @@
         <location filename="openlp/core/utils/languagemanager.py" line="85"/>
         <source>English</source>
         <comment>Please add the name of your language here</comment>
-        <translation>English (South Africa)</translation>
+        <translation type="unfinished">English (South Africa)</translation>
     </message>
 </context>
 <context>
@@ -2783,182 +2795,192 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>New Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Create a new theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Edit Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation>Edit a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Delete Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation>Delete a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Import Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation>Import a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Export Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation>Export a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation>&amp;Edit Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>&amp;Delete Theme</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation>Set As &amp;Global Default</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation>E&amp;xport Theme</translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation>%s (default)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation>You must select a theme to edit.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation>You must select a theme to delete.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation>Delete Confirmation</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation>Delete theme?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation>You are unable to delete the default theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>You have not selected a theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Save Theme - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation>Theme Exported</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation>Your theme has been successfully exported.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation>Theme Export Failed</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>Your theme could not be exported due to an error.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Select Theme Import File</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation>Theme (*.*)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>File is not a valid theme.
 The content encoding is not UTF-8.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>File is not a valid theme.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>Theme Exists</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation>A theme with this name already exists. Would you like to overwrite it?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation>Theme %s is used in the %s plugin.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation>Theme %s is used by the service manager.</translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3372,7 +3394,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/editsongdialog.py" line="462"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
     <message>
@@ -3391,97 +3413,97 @@
         <translation>Save &amp;&amp; Preview</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Add Author</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>This author does not exist, do you want to add them?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation>This author is already in the list.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation>No Author Selected</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation>Add Topic</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>This topic does not exist, do you want to add it?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation>This topic is already in the list.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation>No Topic Selected</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation>You need to type in a song title.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation>You need to type in at least one verse.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation>Warning</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation>You have not added any authors for this song. Do you want to add an author now?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation>Add Book</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation>This song book does not exist, do you want to add it?</translation>
     </message>
@@ -3804,7 +3826,7 @@
     <message>
         <location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
         <source>Administered by %s</source>
-        <translation>Administered by %s</translation>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -3927,7 +3949,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
 </context>

=== modified file 'resources/i18n/es.ts'
--- resources/i18n/es.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/es.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -657,17 +657,17 @@
         <translation type="unfinished">Conservar</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation type="unfinished">No se encontró el libro</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation type="unfinished">No se encuentra un libro que concuerde, en esta Biblia.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1284,7 +1284,7 @@
         <translation type="unfinished">Fuente:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,17 +1494,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1523,6 +1523,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2597,178 +2610,188 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation type="unfinished">Tema Nuevo</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation type="unfinished">Editar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation type="unfinished">Eliminar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation type="unfinished">Importar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation type="unfinished">Exportar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation type="unfinished">Error</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation type="unfinished">Guardar Tema - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation type="unfinished">Seleccione el Archivo de Tema a Importar</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation type="unfinished">Ya existe el Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3229,97 +3252,97 @@
         <translation type="unfinished">Guardar &amp;&amp; Vista Previa</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation type="unfinished">Error</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>

=== modified file 'resources/i18n/et.ts'
--- resources/i18n/et.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/et.ts	2010-09-26 21:38:39 +0000
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="et_EE">
+<!DOCTYPE TS><TS version="1.1">
 <context>
     <name>AlertsPlugin</name>
     <message>
@@ -166,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation>Viga</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation>Ühe piiblitõlkega ja mitme piiblitõlkega salme pole võimalik kombineerida. Kas tahad kustutada otsitulemuse ja alustada uut otsingut?</translation>
     </message>
@@ -667,17 +666,17 @@
         <translation>Säilita</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>Ãœhtegi raamatut ei leitud</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>Sellest Piiblist ei leitud seda raamatut.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>Piibel ei ole täielikult laaditud.</translation>
     </message>
@@ -1101,8 +1100,8 @@
     </message>
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="173"/>
-        <source>Copyright © 2004-2010 Raoul Snyman
-Portions copyright © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
+        <source>Copyright &#xa9; 2004-2010 Raoul Snyman
+Portions copyright &#xa9; 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
 
 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 
@@ -1466,7 +1465,7 @@
         <translation>Kirjastiil:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Värvus:</translation>
     </message>
@@ -1676,17 +1675,17 @@
         <translation>Pildi valimine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>Esimene värvus:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Teine värvus:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation>Slaidi kõrgus on %s rida.</translation>
     </message>
@@ -1705,6 +1704,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2215,7 +2227,7 @@
     <message>
         <location filename="openlp/core/ui/mainwindow.py" line="487"/>
         <source>Set the view mode to Live.</source>
-        <translation>Vaate režiimiks ekraanivaate valimine.</translation>
+        <translation>Vaate režiimiks ekraanivaate valimine </translation>
     </message>
     <message>
         <location filename="openlp/core/ui/mainwindow.py" line="655"/>
@@ -2260,7 +2272,7 @@
         <location filename="openlp/core/utils/languagemanager.py" line="85"/>
         <source>English</source>
         <comment>Please add the name of your language here</comment>
-        <translation>Eesti</translation>
+        <translation type="unfinished">Eesti</translation>
     </message>
 </context>
 <context>
@@ -2782,182 +2794,192 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>Uus kujundus</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Uue kujunduse loomine.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Kujunduse muutmine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation>Kujunduse muutmine.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Kujunduse kustutamine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation>Kujunduse kustutamine.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Kujunduse importimine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation>Kujunduse importimine.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Kujunduse eksportimine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation>Kujunduse eksportimine.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation>Kujunduse &amp;muutmine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>Kujunduse &amp;kustutamine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation>Määra &amp;globaalseks vaikeväärtuseks</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation>&amp;Ekspordi kujundus</translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation>%s (vaikimisi)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation>Pead valima kujunduse, mida muuta.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation>Pead valima kujunduse, mida tahad kustutada.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation>Kustutamise kinnitus</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation>Kas kustutada kujundus?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Viga</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation>Vaikimisi kujundust pole võimalik kustutada.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation>Kujundust %s kasutatakse pluginas %s.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation>Teenistuse halduri nähtavuse ümberlülitamine.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>Sa ei ole kujundust valinud.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Salvesta kujundus - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation>Kujundus eksporditud</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation>Sinu kujunduse on edukalt eksporditud.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation>Kujunduse eksportimine nurjus</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>Sinu kujundust polnud võimalik eksportida, kuna esines viga.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Importimiseks kujunduse faili valimine</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation>Kujundus (*.*)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>See fail ei ole korrektne kujundus.
 Sisu kodeering ei ole UTF-8.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>See fail ei ole sobilik kujundus.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>Kujundus on juba olemas</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation>Sellenimeline kujundus on juba olemas. Kas tahad selle üle kirjutada?</translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3091,7 +3113,7 @@
     <message>
         <location filename="openlp/plugins/remotes/remoteplugin.py" line="74"/>
         <source>&lt;strong&gt;Remote Plugin&lt;/strong&gt;&lt;br /&gt;The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API.</source>
-        <translation>&lt;b&gt;Kaugjuhtimisplugin&lt;/b&gt;&lt;br&gt;See plugin võimaldab töötavale openlp programmile teadete saatmise teisest arvutist veebilehitseja või mõne muu rakenduse kaudu.&lt;br&gt;Selle peamine rakendus on teadete saatmine lastehoiust.</translation>
+        <translation>&lt;b&gt;Kaugjuhtimisplugin&lt;/b&gt;&lt;br&gt;See plugin võimaldab töötavale openlp programmile teadete saatmise teisest arvutist veebilehitseja või mõne muu rakenduse kaudu.&lt;br&gt;Selle peamine rakendus on teadete saatmine lastehoiust</translation>
     </message>
 </context>
 <context>
@@ -3391,7 +3413,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/editsongdialog.py" line="462"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
     <message>
@@ -3415,97 +3437,97 @@
         <translation>Salvesta &amp;&amp; eelvaatle</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Autori lisamine</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>Seda autorit veel pole, kas tahad autori lisada?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Viga</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation>See autor juba on loendis.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation>Autorit pole valitud</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation>Sa ei ole valinud ühtegi sobilikku autorit. Vali autor loendist või sisesta uue autori nimi ja klõpsa uue nupul &quot;Lisa laulule autor&quot;.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation>Teema lisamine</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>Sellist teemat pole. Kas tahad selle lisada?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation>See teema juba on loendis.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation>Ãœhtegi teemat pole valitud</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>Sa pole valinud sobivat teemat. Vali teema kas loendist või sisesta uus teema ja selle lisamiseks klõpsa nupule &quot;Lisa laulule teema&quot;.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation>Pead sisestama laulu pealkirja.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation>Pead sisestama vähemalt ühe salmi.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation>Hoiatus</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation>Sa pole sellele laulule lisanud mitte ühtegi autorit. Kas sa tahad laulule nüüd autori lisada?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation>Salmide järjekord pole sobiv. Mitte ükski valm ei vasta %s-le. Sobivad salmid on %s.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation>Sa pole kasutanud %s mitte kusagil salmide järjekorras. Kas sa oled kindel, et tahad laulu selliselt salvestada?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation>Lauliku lisamine</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation>Sellist laulikut pole. Kas tahad selle lisada?</translation>
     </message>
@@ -3926,7 +3948,7 @@
     </message>
     <message>
         <location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
-        <source>©</source>
+        <source>&#xa9;</source>
         <translation>©</translation>
     </message>
 </context>
@@ -4008,7 +4030,7 @@
     <message>
         <location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="268"/>
         <source>Could not add your book.</source>
-        <translation>Lauliku lisamine pole võimalik.</translation>
+        <translation>Lauliku lisamine pole võimalik</translation>
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="273"/>
@@ -4134,7 +4156,7 @@
     <message>
         <location filename="openlp/plugins/songs/forms/topicsform.py" line="51"/>
         <source>You need to type in a topic name.</source>
-        <translation>Pead sisestama teema nime.</translation>
+        <translation>Pead sisestama teema nime!</translation>
     </message>
 </context>
 <context>

=== modified file 'resources/i18n/hu.ts'
--- resources/i18n/hu.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/hu.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished">Hiba</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -666,17 +666,17 @@
         <translation>Megtartása</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>Nincs ilyen könyv</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>Nem található ilyen könyv ebben a Bibliában.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>A Biblia nem töltődött be teljesen.</translation>
     </message>
@@ -1463,7 +1463,7 @@
         <translation>Betűkészlet:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Szín:</translation>
     </message>
@@ -1673,17 +1673,17 @@
         <translation>Kép kiválasztása</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>Első szín:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Második szín:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation>A dia magassága %s sor.</translation>
     </message>
@@ -1702,6 +1702,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2779,182 +2792,192 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>Új téma</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Új téma létrehozása.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Téma szerkesztése</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation>Egy téma szerkesztése.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Téma törlése</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation>Egy téma törlése.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Téma importálása</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation>Egy téma importálása.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Téma exportálása</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation>Egy téma exportálása.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation>Téma sz&amp;erkesztése</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>Téma &amp;törlése</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation>Beállítás &amp;globális alapértelmezetté</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation>Téma e&amp;xportálása</translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation>%s (alapértelmezett)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation>Ki kell választani témát a szerkesztéshez.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation>Ki kell választani témát a törléshez.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation>Törlés megerősítése</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation>Törölhető a téma?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Hiba</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation>Az alapértelmezett témát nem lehet törölni.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>Nincs kiválasztva egy téma sem.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Téma mentése – (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation>Téma exportálva</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation>A téma sikeresen exportálásra került.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation>A téma exportálása nem sikerült</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>A témát nem sikerült exportálni egy hiba miatt.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Importálandó téma fájl kiválasztása</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation>Témák (*.*)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>Nem érvényes témafájl.
 A tartalom kódolása nem UTF-8.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>Nem érvényes témafájl.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>A téma már létezik</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation>Egy ilyen nevű téma már létezik. Szeretnéd felülírni?</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation>A(z) %s témát a(z) %s bővítmény használja.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation>A(z) %s témát a szolgálatkezelő használja.</translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3412,97 +3435,97 @@
         <translation>Mentés és előnézet</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Szerző hozzáadása</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>Ez a szerző még nem létezik, valóban hozzá kívánja adni?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Hiba</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation>A szerző már benne van a listában.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation>Nincs kiválasztott szerző</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation>Nincs kiválasztva egyetlen szerző sem. Vagy válassz egy szerzőt a listából, vagy írj az új szerző mezőbe és kattints az „Szerző hozzáadása a dalhoz” gombon a szerző megjelöléséhez.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation>Témakör hozzáadása</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>Ez a témakör még nem létezik, szeretnéd hozzáadni?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation>A témakör már benne van a listában.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation>Nincs kiválasztott témakör</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>Nincs kiválasztva egyetlen témakör sem. Vagy válassz egy témakört a listából, vagy írj az új témakör mezőbe és kattints a Témakör hozzáadása a dalhoz gombon a témakör megjelöléséhez.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation>Add meg a dal címét.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation>Legalább egy versszakot meg kell adnod.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation>Figyelmeztetés</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation>Még nincs hozzáadva egyetlen szerző sem. Szeretnél most egyet megjelölni?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation>A versszaksorrend hibás. Nincs ilyen versszak: %s. Az érvényes elemek ezek: %s.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation>Ez a versszak sehol nem lett megadva a sorrendben: %s. Biztosan így kívánod elmenteni a dalt?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation>Könyv hozzáadása</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation>Ez az énekeskönyv még nem létezik, szeretnéd hozzáadni a listához?</translation>
     </message>

=== modified file 'resources/i18n/ja.ts'
--- resources/i18n/ja.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/ja.ts	2010-09-26 21:38:39 +0000
@@ -28,7 +28,7 @@
     <message>
         <location filename="openlp/plugins/alerts/forms/alertdialog.py" line="128"/>
         <source>Alert &amp;text:</source>
-        <translation>警告文(&amp;T)</translation>
+        <translation>警告文(&amp;T):</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/forms/alertdialog.py" line="130"/>
@@ -139,7 +139,7 @@
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="209"/>
         <source>Preview</source>
-        <translation type="unfinished"></translation>
+        <translation>プレビュー</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="211"/>
@@ -149,28 +149,28 @@
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="213"/>
         <source>Top</source>
-        <translation type="unfinished"></translation>
+        <translation>上</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="215"/>
         <source>Middle</source>
-        <translation type="unfinished"></translation>
+        <translation>中</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="217"/>
         <source>Bottom</source>
-        <translation type="unfinished"></translation>
+        <translation>下</translation>
     </message>
 </context>
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -180,7 +180,7 @@
     <message>
         <location filename="openlp/plugins/bibles/bibleplugin.py" line="82"/>
         <source>&amp;Bible</source>
-        <translation type="unfinished"></translation>
+        <translation>聖書(&amp;B)</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/bibleplugin.py" line="91"/>
@@ -242,7 +242,7 @@
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="158"/>
         <source>Layout style:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">レイアウトスタイル:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="160"/>
@@ -257,12 +257,12 @@
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="164"/>
         <source>Verse Per Slide</source>
-        <translation type="unfinished"></translation>
+        <translation>1ページに1節</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="166"/>
         <source>Verse Per Line</source>
-        <translation type="unfinished"></translation>
+        <translation>1行に1節</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="168"/>
@@ -272,22 +272,22 @@
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="170"/>
         <source>No Brackets</source>
-        <translation type="unfinished"></translation>
+        <translation>括弧なし</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="172"/>
         <source>( And )</source>
-        <translation type="unfinished"></translation>
+        <translation>( と )</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="174"/>
         <source>{ And }</source>
-        <translation type="unfinished"></translation>
+        <translation>{ と }</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="176"/>
         <source>[ And ]</source>
-        <translation type="unfinished"></translation>
+        <translation>[ と ]</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/biblestab.py" line="178"/>
@@ -306,17 +306,17 @@
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="311"/>
         <source>Bible Import Wizard</source>
-        <translation type="unfinished"></translation>
+        <translation>聖書インポートウィザード</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="313"/>
         <source>Welcome to the Bible Import Wizard</source>
-        <translation type="unfinished"></translation>
+        <translation>聖書インポートウィザードへようこそ</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="317"/>
         <source>This wizard will help you to import Bibles from a variety of formats. Click the next button below to start the process by selecting a format to import from.</source>
-        <translation type="unfinished"></translation>
+        <translation>このウィザードで、様々なフォーマットの聖書をインポートできます。次へをクリックし、フォーマットを選択してインポートを進めてください。</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="322"/>
@@ -331,7 +331,7 @@
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="327"/>
         <source>Format:</source>
-        <translation type="unfinished"></translation>
+        <translation>フォーマット:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="329"/>
@@ -401,22 +401,22 @@
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="356"/>
         <source>Server:</source>
-        <translation type="unfinished"></translation>
+        <translation>サーバ:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="358"/>
         <source>Username:</source>
-        <translation type="unfinished"></translation>
+        <translation>ユーザ名:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="360"/>
         <source>Password:</source>
-        <translation type="unfinished"></translation>
+        <translation>パスワード:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="362"/>
         <source>Proxy Server (Optional)</source>
-        <translation type="unfinished"></translation>
+        <translation>プロキシサーバ (オプション)</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="366"/>
@@ -451,12 +451,12 @@
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="379"/>
         <source>Please wait while your Bible is imported.</source>
-        <translation type="unfinished"></translation>
+        <translation>聖書のインポートが終了するまでお待ちください。</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="382"/>
         <source>Ready.</source>
-        <translation type="unfinished"></translation>
+        <translation>完了</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/forms/importwizardform.py" line="127"/>
@@ -649,7 +649,7 @@
     <message>
         <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">消去</translation>
     </message>
     <message>
         <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
@@ -657,17 +657,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -731,7 +731,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="152"/>
         <source>Add New</source>
-        <translation type="unfinished"></translation>
+        <translation>新規</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="154"/>
@@ -741,7 +741,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="157"/>
         <source>Edit</source>
-        <translation type="unfinished"></translation>
+        <translation>編集</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="159"/>
@@ -751,7 +751,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="162"/>
         <source>Edit All</source>
-        <translation type="unfinished"></translation>
+        <translation>全て編集</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="164"/>
@@ -761,7 +761,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="167"/>
         <source>Save</source>
-        <translation type="unfinished">保存</translation>
+        <translation>保存</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="169"/>
@@ -771,7 +771,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="172"/>
         <source>Delete</source>
-        <translation type="unfinished"></translation>
+        <translation>削除</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="174"/>
@@ -781,7 +781,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="177"/>
         <source>Clear</source>
-        <translation type="unfinished">消去</translation>
+        <translation>消去</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="179"/>
@@ -801,7 +801,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="186"/>
         <source>The&amp;me:</source>
-        <translation type="unfinished"></translation>
+        <translation>テーマ(&amp;M):</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="188"/>
@@ -811,7 +811,7 @@
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomform.py" line="90"/>
         <source>Save &amp;&amp; Preview</source>
-        <translation type="unfinished"></translation>
+        <translation>保存しプレビュー</translation>
     </message>
     <message>
         <location filename="openlp/plugins/custom/forms/editcustomform.py" line="153"/>
@@ -962,7 +962,7 @@
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="109"/>
         <source>About OpenLP</source>
-        <translation type="unfinished"></translation>
+        <translation>OpenLP について</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="111"/>
@@ -1175,7 +1175,7 @@
     <message>
         <location filename="openlp/core/ui/aboutdialog.py" line="567"/>
         <source>Close</source>
-        <translation type="unfinished"></translation>
+        <translation>閉じる</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/aboutform.py" line="48"/>
@@ -1284,7 +1284,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1451,17 +1451,17 @@
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="785"/>
         <source>Top</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">上</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="787"/>
         <source>Middle</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">中</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="789"/>
         <source>Bottom</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">下</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="791"/>
@@ -1481,7 +1481,7 @@
     <message>
         <location filename="openlp/core/ui/amendthemedialog.py" line="798"/>
         <source>Preview</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">プレビュー</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/amendthemeform.py" line="211"/>
@@ -1494,17 +1494,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1523,6 +1523,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2300,17 +2313,17 @@
     <message>
         <location filename="openlp/core/ui/serviceitemeditdialog.py" line="73"/>
         <source>Up</source>
-        <translation type="unfinished"></translation>
+        <translation>上へ</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/serviceitemeditdialog.py" line="74"/>
         <source>Delete</source>
-        <translation type="unfinished"></translation>
+        <translation>削除</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/serviceitemeditdialog.py" line="76"/>
         <source>Down</source>
-        <translation type="unfinished"></translation>
+        <translation>下へ</translation>
     </message>
 </context>
 <context>
@@ -2523,7 +2536,7 @@
     <message>
         <location filename="openlp/core/ui/slidecontroller.py" line="120"/>
         <source>Preview</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">プレビュー</translation>
     </message>
     <message>
         <location filename="openlp/core/ui/slidecontroller.py" line="165"/>
@@ -2597,181 +2610,191 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>OpenLP.ThemesTab</name>
@@ -3226,100 +3249,100 @@
     <message>
         <location filename="openlp/plugins/songs/forms/editsongform.py" line="96"/>
         <source>Save &amp;&amp; Preview</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">保存しプレビュー</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3482,7 +3505,7 @@
     <message>
         <location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
         <source>Format:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">フォーマット:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
@@ -3577,7 +3600,7 @@
     <message>
         <location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
         <source>Ready.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">完了</translation>
     </message>
     <message>
         <location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
@@ -3650,7 +3673,7 @@
     <message>
         <location filename="openlp/plugins/songs/lib/mediaitem.py" line="148"/>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">消去</translation>
     </message>
     <message>
         <location filename="openlp/plugins/songs/lib/mediaitem.py" line="150"/>

=== modified file 'resources/i18n/ko.ts'
--- resources/i18n/ko.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/ko.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -657,17 +657,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1284,7 +1284,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,17 +1494,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1523,6 +1523,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2597,178 +2610,188 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3229,97 +3252,97 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>

=== modified file 'resources/i18n/nb.ts'
--- resources/i18n/nb.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/nb.ts	2010-09-26 21:38:39 +0000
@@ -23,12 +23,12 @@
     <message>
         <location filename="openlp/plugins/alerts/forms/alertdialog.py" line="126"/>
         <source>Alert Message</source>
-        <translation>Varsel-melding</translation>
+        <translation>Varselmelding</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/forms/alertdialog.py" line="128"/>
         <source>Alert &amp;text:</source>
-        <translation>Varsel &amp;tekst:</translation>
+        <translation>Varsel&amp;tekst:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/forms/alertdialog.py" line="130"/>
@@ -81,7 +81,7 @@
     <message>
         <location filename="openlp/plugins/alerts/lib/alertsmanager.py" line="72"/>
         <source>Alert message created and displayed.</source>
-        <translation>Varsel beskjed er laget og vist</translation>
+        <translation>Varselmelding er opprettet og vist.</translation>
     </message>
 </context>
 <context>
@@ -89,32 +89,32 @@
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="42"/>
         <source>Alerts</source>
-        <translation>Varsel</translation>
+        <translation>Varsler</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="191"/>
         <source>Font</source>
-        <translation>Skrifttype </translation>
+        <translation>Skrift</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="193"/>
         <source>Font name:</source>
-        <translation>Skrift navn:</translation>
+        <translation>Skriftnavn:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="195"/>
         <source>Font color:</source>
-        <translation>Skrift farge</translation>
+        <translation>Skriftfarge:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="197"/>
         <source>Background color:</source>
-        <translation>Bakgrunns farge:</translation>
+        <translation>Bakgrunnsfarge:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="199"/>
         <source>Font size:</source>
-        <translation>Skrift størrelse</translation>
+        <translation>Skriftstørrelse:</translation>
     </message>
     <message>
         <location filename="openlp/plugins/alerts/lib/alertstab.py" line="201"/>
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -657,17 +657,17 @@
         <translation type="unfinished">Behold</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation type="unfinished">Ingen bøker funnet</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation type="unfinished">Finner ingen matchende bøker i denne Bibelen.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>Bibelen ble ikke lastet.</translation>
     </message>
@@ -1284,7 +1284,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,17 +1494,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1523,6 +1523,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2597,178 +2610,188 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation type="unfinished">Endre tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation type="unfinished">Slett tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation type="unfinished">Importer tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation type="unfinished">Eksporter tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished">Du kan ikke slette det globale temaet </translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation type="unfinished">Filen er ikke et gyldig tema. </translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation type="unfinished">Temaet eksisterer</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3229,97 +3252,97 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>

=== modified file 'resources/i18n/pt_BR.ts'
--- resources/i18n/pt_BR.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/pt_BR.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished">Erro</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -658,17 +658,17 @@
         <translation>Manter</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation>Nenhum Livro Encontrado</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation>O livro não foi encontrado nesta Bíblia.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation>A Bíblia não foi completamente carregada.</translation>
     </message>
@@ -1322,7 +1322,7 @@
         <translation>Fonte:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation>Cor:</translation>
     </message>
@@ -1532,17 +1532,17 @@
         <translation>Selecionar Imagem</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation>Primeira cor:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation>Segunda cor:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1561,6 +1561,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2635,179 +2648,189 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation>Novo Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation>Criar um novo tema.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation>Editar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation>Deletar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation>Importar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation>Exportar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation>&amp;Apagar Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation>Você não selecionou um tema.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation>Salvar Tema - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation>O tema não pôde ser exportado devido a um erro.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation>Selecionar Arquivo de Importação de Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation>O arquivo não é um tema válido.
 A codificação do conteúdo não é UTF-8.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation>O arquivo não é um tema válido.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation>Tema Existe</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3268,97 +3291,97 @@
         <translation>Salvar &amp;&amp; Pré-Visualizar</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation>Adicionar Autor</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation>Este autor não existe, deseja adicioná-lo?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation>Este tópico não existe, deseja adicioná-lo?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation>Este tópico já está na lista.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation>Não há nenhum tópico válido selecionado. Selecione um tópico da lista ou digite um novo tópico e clique em &quot;Adicionar Tópico à Música&quot; para adicionar o novo tópico.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation>Você não adicionou nenhum autor a esta música. Deseja adicionar um autor agora?</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation>Este hinário não existe, deseja adicioná-lo?</translation>
     </message>

=== modified file 'resources/i18n/sv.ts'
--- resources/i18n/sv.ts	2010-09-25 13:37:16 +0000
+++ resources/i18n/sv.ts	2010-09-26 21:38:39 +0000
@@ -165,12 +165,12 @@
 <context>
     <name>BiblePlugin.MediaItem</name>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="529"/>
         <source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -657,17 +657,17 @@
         <translation type="unfinished">Behåll</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No Book Found</source>
         <translation type="unfinished">Ingen bok hittades</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="357"/>
         <source>No matching book could be found in this Bible.</source>
         <translation type="unfinished">Ingen matchande bok kunde hittas i den här Bibeln.</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
+        <location filename="openlp/plugins/bibles/lib/mediaitem.py" line="416"/>
         <source>Bible not fully loaded.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1284,7 +1284,7 @@
         <translation type="unfinished">Font:</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="615"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="610"/>
         <source>Color:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,17 +1494,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="631"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="626"/>
         <source>First color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="633"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="628"/>
         <source>Second color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/amendthemeform.py" line="702"/>
+        <location filename="openlp/core/ui/amendthemeform.py" line="697"/>
         <source>Slide height is %s rows.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1523,6 +1523,19 @@
     </message>
 </context>
 <context>
+    <name>OpenLP.FileRenameForm</name>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
+        <source>File Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/filerenamedialog.py" line="57"/>
+        <source>New File Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>OpenLP.GeneralTab</name>
     <message>
         <location filename="openlp/core/ui/generaltab.py" line="65"/>
@@ -2597,178 +2610,188 @@
 <context>
     <name>OpenLP.ThemeManager</name>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="682"/>
+        <location filename="openlp/core/ui/thememanager.py" line="795"/>
         <source>New Theme</source>
         <translation type="unfinished">Nytt Tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="58"/>
+        <location filename="openlp/core/ui/thememanager.py" line="59"/>
         <source>Create a new theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit Theme</source>
         <translation type="unfinished">Redigera tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="63"/>
+        <location filename="openlp/core/ui/thememanager.py" line="64"/>
         <source>Edit a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete Theme</source>
         <translation type="unfinished">Ta bort tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="68"/>
+        <location filename="openlp/core/ui/thememanager.py" line="69"/>
         <source>Delete a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import Theme</source>
         <translation type="unfinished">Importera tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="74"/>
+        <location filename="openlp/core/ui/thememanager.py" line="75"/>
         <source>Import a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export Theme</source>
         <translation type="unfinished">Exportera tema</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="79"/>
+        <location filename="openlp/core/ui/thememanager.py" line="80"/>
         <source>Export a theme.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="91"/>
+        <location filename="openlp/core/ui/thememanager.py" line="97"/>
         <source>&amp;Edit Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="98"/>
+        <location filename="openlp/core/ui/thememanager.py" line="106"/>
         <source>&amp;Delete Theme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <location filename="openlp/core/ui/thememanager.py" line="111"/>
         <source>Set As &amp;Global Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="108"/>
-        <source>E&amp;xport Theme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="openlp/core/ui/thememanager.py" line="629"/>
+        <location filename="openlp/core/ui/thememanager.py" line="742"/>
         <source>%s (default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="197"/>
+        <location filename="openlp/core/ui/thememanager.py" line="313"/>
         <source>You must select a theme to edit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="220"/>
+        <location filename="openlp/core/ui/thememanager.py" line="336"/>
         <source>You must select a theme to delete.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete Confirmation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="226"/>
+        <location filename="openlp/core/ui/thememanager.py" line="342"/>
         <source>Delete theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>Error</source>
         <translation type="unfinished">Fel</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="235"/>
+        <location filename="openlp/core/ui/thememanager.py" line="351"/>
         <source>You are unable to delete the default theme.</source>
         <translation type="unfinished">Du kan inte ta bort standardtemat.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="285"/>
+        <location filename="openlp/core/ui/thememanager.py" line="401"/>
         <source>You have not selected a theme.</source>
         <translation type="unfinished">Du har inte valt ett tema.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="291"/>
+        <location filename="openlp/core/ui/thememanager.py" line="407"/>
         <source>Save Theme - (%s)</source>
         <translation type="unfinished">Spara tema - (%s)</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Theme Exported</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="308"/>
+        <location filename="openlp/core/ui/thememanager.py" line="424"/>
         <source>Your theme has been successfully exported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Theme Export Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="314"/>
+        <location filename="openlp/core/ui/thememanager.py" line="430"/>
         <source>Your theme could not be exported due to an error.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Select Theme Import File</source>
         <translation type="unfinished">Välj tema importfil</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="328"/>
+        <location filename="openlp/core/ui/thememanager.py" line="444"/>
         <source>Theme (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="432"/>
+        <location filename="openlp/core/ui/thememanager.py" line="548"/>
         <source>File is not a valid theme.
 The content encoding is not UTF-8.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="485"/>
+        <location filename="openlp/core/ui/thememanager.py" line="597"/>
         <source>File is not a valid theme.</source>
         <translation type="unfinished">Filen är inte ett giltigt tema.</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>Theme Exists</source>
         <translation type="unfinished">Temat finns</translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="575"/>
+        <location filename="openlp/core/ui/thememanager.py" line="688"/>
         <source>A theme with this name already exists. Would you like to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="242"/>
+        <location filename="openlp/core/ui/thememanager.py" line="100"/>
+        <source>&amp;Copy Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="103"/>
+        <source>&amp;Rename Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="114"/>
+        <source>&amp;Export Theme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="openlp/core/ui/thememanager.py" line="358"/>
         <source>Theme %s is used in the %s plugin.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/core/ui/thememanager.py" line="249"/>
+        <location filename="openlp/core/ui/thememanager.py" line="365"/>
         <source>Theme %s is used by the service manager.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3229,97 +3252,97 @@
         <translation type="unfinished">Spara &amp;&amp; förhandsgranska</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>Add Author</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="285"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="290"/>
         <source>This author does not exist, do you want to add them?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>Error</source>
         <translation type="unfinished">Fel</translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="312"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="317"/>
         <source>This author is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>No Author Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="324"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="329"/>
         <source>You have not selected a valid author. Either select an author from the list, or type in a new author and click the &quot;Add Author to Song&quot; button to add the new author.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>Add Topic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="345"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="350"/>
         <source>This topic does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="366"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="371"/>
         <source>This topic is already in the list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>No Topic Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="377"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="382"/>
         <source>You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the &quot;Add Topic to Song&quot; button to add the new topic.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="497"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="502"/>
         <source>You need to type in a song title.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="505"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="510"/>
         <source>You need to type in at least one verse.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="513"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="518"/>
         <source>You have not added any authors for this song. Do you want to add an author now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="545"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="550"/>
         <source>The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="556"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="561"/>
         <source>You have not used %s anywhere in the verse order. Are you sure you want to save the song like this?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>Add Book</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="openlp/plugins/songs/forms/editsongform.py" line="608"/>
+        <location filename="openlp/plugins/songs/forms/editsongform.py" line="613"/>
         <source>This song book does not exist, do you want to add it?</source>
         <translation type="unfinished"></translation>
     </message>

=== removed directory 'resources/innosetup'
=== removed file 'resources/innosetup/LICENSE.txt'
--- resources/innosetup/LICENSE.txt	2010-03-01 18:37:10 +0000
+++ resources/innosetup/LICENSE.txt	1970-01-01 00:00:00 +0000
@@ -1,339 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.

=== removed file 'resources/innosetup/OpenLP-2.0.iss'
--- resources/innosetup/OpenLP-2.0.iss	2010-05-23 15:49:34 +0000
+++ resources/innosetup/OpenLP-2.0.iss	1970-01-01 00:00:00 +0000
@@ -1,87 +0,0 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-#define AppName "OpenLP"
-#define AppVerName "OpenLP 2.0"
-#define AppPublisher "OpenLP Developers"
-#define AppURL "http://openlp.org/";
-#define AppExeName "OpenLP.exe"
-
-#define FileHandle FileOpen("..\..\dist\OpenLP\.version")
-#define FileLine FileRead(FileHandle)
-#define RealVersion FileLine
-#expr FileClose(FileHandle)
-
-[Setup]
-; NOTE: The value of AppId uniquely identifies this application.
-; Do not use the same AppId value in installers for other applications.
-; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
-AppId={{AA7699FA-B2D2-43F4-8A70-D497D03C9485}
-AppName={#AppName}
-AppVerName={#AppVerName}
-AppPublisher={#AppPublisher}
-AppPublisherURL={#AppURL}
-AppSupportURL={#AppURL}
-AppUpdatesURL={#AppURL}
-DefaultDirName={pf}\{#AppName}
-DefaultGroupName={#AppVerName}
-AllowNoIcons=true
-LicenseFile=LICENSE.txt
-OutputBaseFilename=OpenLP-{#RealVersion}-setup
-Compression=lzma
-SolidCompression=true
-SetupIconFile=C:\Program Files\Inno Setup 5\Examples\Setup.ico
-WizardImageFile=C:\Program Files\Inno Setup 5\WizModernImage-IS.bmp
-WizardSmallImageFile=C:\Program Files\Inno Setup 5\WizModernSmallImage-IS.bmp
-
-[Languages]
-Name: english; MessagesFile: compiler:Default.isl
-Name: basque; MessagesFile: compiler:Languages\Basque.isl
-Name: brazilianportuguese; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
-Name: catalan; MessagesFile: compiler:Languages\Catalan.isl
-Name: czech; MessagesFile: compiler:Languages\Czech.isl
-Name: danish; MessagesFile: compiler:Languages\Danish.isl
-Name: dutch; MessagesFile: compiler:Languages\Dutch.isl
-Name: finnish; MessagesFile: compiler:Languages\Finnish.isl
-Name: french; MessagesFile: compiler:Languages\French.isl
-Name: german; MessagesFile: compiler:Languages\German.isl
-Name: hebrew; MessagesFile: compiler:Languages\Hebrew.isl
-Name: hungarian; MessagesFile: compiler:Languages\Hungarian.isl
-Name: italian; MessagesFile: compiler:Languages\Italian.isl
-Name: japanese; MessagesFile: compiler:Languages\Japanese.isl
-Name: norwegian; MessagesFile: compiler:Languages\Norwegian.isl
-Name: polish; MessagesFile: compiler:Languages\Polish.isl
-Name: portuguese; MessagesFile: compiler:Languages\Portuguese.isl
-Name: russian; MessagesFile: compiler:Languages\Russian.isl
-Name: slovak; MessagesFile: compiler:Languages\Slovak.isl
-Name: slovenian; MessagesFile: compiler:Languages\Slovenian.isl
-Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
-
-[Tasks]
-Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
-Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}
-
-[Files]
-Source: ..\..\dist\OpenLP\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-
-[Icons]
-Name: {group}\{#AppName}; Filename: {app}\{#AppExeName}
-Name: {group}\{cm:ProgramOnTheWeb,{#AppName}}; Filename: {#AppURL}
-Name: {group}\{cm:UninstallProgram,{#AppName}}; Filename: {uninstallexe}
-Name: {commondesktop}\{#AppName}; Filename: {app}\{#AppExeName}; Tasks: desktopicon
-Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#AppExeName}; Tasks: quicklaunchicon
-
-[Run]
-Filename: {app}\{#AppExeName}; Description: {cm:LaunchProgram,{#AppName}}; Flags: nowait postinstall skipifsilent
-
-[Registry]
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\alerts; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\bibles; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\custom; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\images; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\media; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\presentations; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\remotes; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\songs; ValueType: dword; ValueName: status; ValueData: $00000001
-Root: HKCU; SubKey: Software\OpenLP\OpenLP\songusage; ValueType: dword; ValueName: status; ValueData: $00000001

=== removed file 'resources/innosetup/OpenLP.ico'
Binary files resources/innosetup/OpenLP.ico	2010-03-01 18:37:10 +0000 and resources/innosetup/OpenLP.ico	1970-01-01 00:00:00 +0000 differ
=== removed file 'resources/innosetup/OpenLP.reg'
Binary files resources/innosetup/OpenLP.reg	2010-05-23 15:49:34 +0000 and resources/innosetup/OpenLP.reg	1970-01-01 00:00:00 +0000 differ
=== removed file 'resources/innosetup/openlp.conf'
--- resources/innosetup/openlp.conf	2010-03-12 23:10:21 +0000
+++ resources/innosetup/openlp.conf	1970-01-01 00:00:00 +0000
@@ -1,26 +0,0 @@
-[bibles]
-status = 1
-
-[media]
-status = 1
-
-[alerts]
-status = 1
-
-[presentations]
-status = 1
-
-[custom]
-status = 1
-
-[remotes]
-status = 0
-
-[images]
-status = 1
-
-[songusage]
-status = 1
-
-[songs]
-status = 1

=== added directory 'resources/windows'
=== added file 'resources/windows/LICENSE.txt'
--- resources/windows/LICENSE.txt	1970-01-01 00:00:00 +0000
+++ resources/windows/LICENSE.txt	2010-09-26 21:38:39 +0000
@@ -0,0 +1,339 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.

=== added file 'resources/windows/OpenLP-2.0.iss'
--- resources/windows/OpenLP-2.0.iss	1970-01-01 00:00:00 +0000
+++ resources/windows/OpenLP-2.0.iss	2010-09-26 21:38:39 +0000
@@ -0,0 +1,88 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+#define AppName "OpenLP"
+#define AppVerName "OpenLP 2.0"
+#define AppPublisher "OpenLP Developers"
+#define AppURL "http://openlp.org/";
+#define AppExeName "OpenLP.exe"
+
+#define FileHandle FileOpen("..\..\dist\OpenLP\.version")
+#define FileLine FileRead(FileHandle)
+#define RealVersion FileLine
+#expr FileClose(FileHandle)
+
+[Setup]
+; NOTE: The value of AppId uniquely identifies this application.
+; Do not use the same AppId value in installers for other applications.
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+AppId={{AA7699FA-B2D2-43F4-8A70-D497D03C9485}
+AppName={#AppName}
+AppVerName={#AppVerName}
+AppPublisher={#AppPublisher}
+AppPublisherURL={#AppURL}
+AppSupportURL={#AppURL}
+AppUpdatesURL={#AppURL}
+DefaultDirName={pf}\{#AppName}
+DefaultGroupName={#AppVerName}
+AllowNoIcons=true
+LicenseFile=LICENSE.txt
+OutputDir=..\..\dist
+OutputBaseFilename=OpenLP-{#RealVersion}-setup
+Compression=lzma
+SolidCompression=true
+SetupIconFile=C:\Program Files\Inno Setup 5\Examples\Setup.ico
+WizardImageFile=C:\Program Files\Inno Setup 5\WizModernImage-IS.bmp
+WizardSmallImageFile=C:\Program Files\Inno Setup 5\WizModernSmallImage-IS.bmp
+
+[Languages]
+Name: english; MessagesFile: compiler:Default.isl
+Name: basque; MessagesFile: compiler:Languages\Basque.isl
+Name: brazilianportuguese; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
+Name: catalan; MessagesFile: compiler:Languages\Catalan.isl
+Name: czech; MessagesFile: compiler:Languages\Czech.isl
+Name: danish; MessagesFile: compiler:Languages\Danish.isl
+Name: dutch; MessagesFile: compiler:Languages\Dutch.isl
+Name: finnish; MessagesFile: compiler:Languages\Finnish.isl
+Name: french; MessagesFile: compiler:Languages\French.isl
+Name: german; MessagesFile: compiler:Languages\German.isl
+Name: hebrew; MessagesFile: compiler:Languages\Hebrew.isl
+Name: hungarian; MessagesFile: compiler:Languages\Hungarian.isl
+Name: italian; MessagesFile: compiler:Languages\Italian.isl
+Name: japanese; MessagesFile: compiler:Languages\Japanese.isl
+Name: norwegian; MessagesFile: compiler:Languages\Norwegian.isl
+Name: polish; MessagesFile: compiler:Languages\Polish.isl
+Name: portuguese; MessagesFile: compiler:Languages\Portuguese.isl
+Name: russian; MessagesFile: compiler:Languages\Russian.isl
+Name: slovak; MessagesFile: compiler:Languages\Slovak.isl
+Name: slovenian; MessagesFile: compiler:Languages\Slovenian.isl
+Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
+
+[Tasks]
+Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
+Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}
+
+[Files]
+Source: ..\..\dist\OpenLP\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: {group}\{#AppName}; Filename: {app}\{#AppExeName}
+Name: {group}\{cm:ProgramOnTheWeb,{#AppName}}; Filename: {#AppURL}
+Name: {group}\{cm:UninstallProgram,{#AppName}}; Filename: {uninstallexe}
+Name: {commondesktop}\{#AppName}; Filename: {app}\{#AppExeName}; Tasks: desktopicon
+Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#AppExeName}; Tasks: quicklaunchicon
+
+[Run]
+Filename: {app}\{#AppExeName}; Description: {cm:LaunchProgram,{#AppName}}; Flags: nowait postinstall skipifsilent
+
+[Registry]
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\alerts; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\bibles; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\custom; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\images; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\media; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\presentations; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\remotes; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\songs; ValueType: dword; ValueName: status; ValueData: $00000001
+Root: HKCU; SubKey: Software\OpenLP\OpenLP\songusage; ValueType: dword; ValueName: status; ValueData: $00000001

=== added file 'resources/windows/OpenLP.ico'
Binary files resources/windows/OpenLP.ico	1970-01-01 00:00:00 +0000 and resources/windows/OpenLP.ico	2010-09-26 21:38:39 +0000 differ
=== added file 'resources/windows/OpenLP.reg'
Binary files resources/windows/OpenLP.reg	1970-01-01 00:00:00 +0000 and resources/windows/OpenLP.reg	2010-09-26 21:38:39 +0000 differ
=== added file 'resources/windows/OpenLP.spec'
--- resources/windows/OpenLP.spec	1970-01-01 00:00:00 +0000
+++ resources/windows/OpenLP.spec	2010-09-26 21:38:39 +0000
@@ -0,0 +1,14 @@
+# -*- mode: python -*-
+a = Analysis([
+    os.path.join(HOMEPATH, 'support\\_mountzlib.py'),
+    os.path.join(HOMEPATH, 'support\\useUnicode.py'),
+    os.path.abspath('openlp.pyw')],
+    pathex=[os.path.abspath('.')])
+pyz = PYZ(a.pure)
+exe = EXE(pyz, a.scripts, exclude_binaries=1,
+    name=os.path.abspath(os.path.join('build', 'pyi.win32', 'OpenLP',
+        'OpenLP.exe')),
+    debug=False, strip=False, upx=True, console=False,
+    icon=os.path.abspath(os.path.join('resources', 'images', 'OpenLP.ico')))
+coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True,
+    name=os.path.abspath(os.path.join('dist', 'OpenLP')))

=== added file 'resources/windows/openlp.conf'
--- resources/windows/openlp.conf	1970-01-01 00:00:00 +0000
+++ resources/windows/openlp.conf	2010-09-26 21:38:39 +0000
@@ -0,0 +1,26 @@
+[bibles]
+status = 1
+
+[media]
+status = 1
+
+[alerts]
+status = 1
+
+[presentations]
+status = 1
+
+[custom]
+status = 1
+
+[remotes]
+status = 0
+
+[images]
+status = 1
+
+[songusage]
+status = 1
+
+[songs]
+status = 1

=== added file 'resources/windows/warnOpenLP.txt'
--- resources/windows/warnOpenLP.txt	1970-01-01 00:00:00 +0000
+++ resources/windows/warnOpenLP.txt	2010-09-26 21:38:39 +0000
@@ -0,0 +1,611 @@
+W: no module named openlp.core.lib.build_html (top-level import by openlp.core.ui.maindisplay)
+W: no module named mx (top-level import by sqlite.main)
+W: no module named ctypes.create_string_buffer (delayed import by urllib)
+W: no module named openlp.core.ui.ServiceNoteForm (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named email.Iterators (delayed import by email.message)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named sqlalchemy.sql.join (top-level import by sqlalchemy)
+W: no module named java (conditional import by xml.sax._exceptions)
+W: no module named openlp.plugins.images.lib.ImageMediaItem (top-level import by openlp.plugins.images.imageplugin)
+W: no module named sqlalchemy.SMALLINT (top-level import by sqlalchemy.databases.sybase)
+W: no module named sqlalchemy.engine.create_engine (top-level import by sqlalchemy)
+W: no module named sqlalchemy.sql.asc (top-level import by sqlalchemy)
+W: no module named openlp.plugins.bibles.lib.BiblesTab (top-level import by openlp.plugins.bibles.bibleplugin)
+W: no module named PyQt4._qt (top-level import by PyQt4.QtCore)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.lib.alertstab)
+W: no module named sqlalchemy.Column (top-level import by openlp.plugins.custom.lib.db)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songusage.songusageplugin)
+W: no module named openlp.plugins.alerts.lib.AlertsManager (top-level import by openlp.plugins.alerts.alertsplugin)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.generaltab)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.forms.alertdialog)
+W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named sqlalchemy.orm.MapperExtension (top-level import by sqlalchemy.orm.scoping)
+W: no module named pyodbc (delayed import by sqlalchemy.databases.access)
+W: no module named openlp.core.lib.expand_tags (top-level import by openlp.core.lib.renderer)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.servicemanager)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.dynamic)
+W: no module named ctypes._SimpleCData (top-level import by ctypes.wintypes)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.generaltab)
+W: no module named simplejson (conditional import by openlp.plugins.remotes.lib.httpserver)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.alerts.forms.alertdialog)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.collections)
+W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.lib.serviceitem)
+W: no module named openlp.plugins.songs.lib.SongXMLParser (top-level import by openlp.plugins.songs.forms.editsongform)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.bibleplugin)
+W: no module named xml.dom.XMLNS_NAMESPACE (top-level import by xml.dom.minidom)
+W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.lib.songimport)
+W: no module named openlp.plugins.songs.lib.SongXMLBuilder (top-level import by openlp.plugins.songs.forms.editsongform)
+W: no module named openlp.core.ui.GeneralTab (top-level import by openlp.core.ui.settingsform)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named informixdb (delayed import by sqlalchemy.databases.informix)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.custom.customplugin)
+W: no module named cjkcodecs (top-level import by BeautifulSoup)
+W: no module named readline (delayed, conditional import by cmd)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.songimport)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.media.mediaplugin)
+W: no module named openlp.core.lib.ThemeXML (top-level import by openlp.core.ui.amendthemeform)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.manager)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.ui.maindisplay)
+W: no module named openlp.plugins.songs.forms.EditVerseForm (top-level import by openlp.plugins.songs.forms.editsongform)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.ewimport)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.songs.lib.songstab)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.ui.HideMode (top-level import by openlp.core.ui.maindisplay)
+W: no module named sqlalchemy.Column (top-level import by sqlalchemy.databases.sybase)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.slidecontroller)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.songimportform)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.aboutdialog)
+W: no module named sqlalchemy.sql.insert (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.str_to_bool (top-level import by openlp.core.ui.thememanager)
+W: no module named sqlalchemy.MetaData (top-level import by sqlalchemy.databases.sybase)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.biblestab)
+W: no module named openlp.plugins.bibles.lib.BibleManager (top-level import by openlp.plugins.bibles.bibleplugin)
+W: no module named openlp.core.ui.SlideController (top-level import by openlp.core.ui.mainwindow)
+W: no module named MacOS (delayed import by platform)
+W: no module named openlp.core.lib.ThemeXML (top-level import by openlp.core.ui.thememanager)
+W: no module named cx_Oracle (delayed import by sqlalchemy.databases.oracle)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.slidecontroller)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.servicenotedialog)
+W: no module named sqlalchemy.sql.except_ (top-level import by sqlalchemy)
+W: no module named openlp.core.ui.AboutForm (top-level import by openlp.core.ui.mainwindow)
+W: no module named EasyDialogs (conditional import by getpass)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named sqlalchemy.orm.SessionExtension (top-level import by sqlalchemy.orm.session)
+W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editsongform)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.http)
+W: no module named sqlalchemy.sql.func (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.utils.languagemanager)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.mainwindow)
+W: no module named uno (conditional import by openlp.plugins.songs.lib.oooimport)
+W: no module named kinterbasdb (delayed import by sqlalchemy.databases.firebird)
+W: no module named multiprocessing.RLock (top-level import by multiprocessing.sharedctypes)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.filerenameform)
+W: no module named sqlalchemy.ForeignKey (top-level import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.lib.Renderer (top-level import by openlp.core.lib.rendermanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songmaintenancedialog)
+W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named openlp.core.ui.FileRenameForm (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.songsplugin)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.bibles.bibleplugin)
+W: no module named vms_lib (delayed, conditional import by platform)
+W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.ui.slidecontroller)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.alerts.lib.alertsmanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedetaildialog)
+W: no module named openlp.plugins.remotes.lib.RemoteTab (top-level import by openlp.plugins.remotes.remoteplugin)
+W: no module named openlp.core.ui.ServiceManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.songusage.forms.songusagedetailform)
+W: no module named openlp.core.ui.SettingsForm (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.plugins.alerts.lib.AlertsTab (top-level import by openlp.plugins.alerts.alertsplugin)
+W: no module named xdg (delayed, conditional import by openlp.core.utils)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.custom.customplugin)
+W: no module named openlp.core.ui.AmendThemeForm (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named posix (delayed, conditional import by iu)
+W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editversedialog)
+W: no module named multiprocessing.dummy.Process (delayed import by __main__)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named sqlalchemy.String (top-level import by sqlalchemy.databases.mssql)
+W: no module named xml.dom.EMPTY_PREFIX (top-level import by xml.dom.expatbuilder)
+W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named openlp.core.lib.PluginManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named multiprocessing.current_process (top-level import by multiprocessing.reduction)
+W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songbookform)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named xmltok (top-level import by pyexpat)
+W: no module named openlp.plugins.bibles.lib.SearchResults (top-level import by openlp.plugins.bibles.lib.http)
+W: no module named sqlalchemy.sql.delete (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.oooimport)
+W: no module named _emx_link (conditional import by os)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.aboutdialog)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.bibles.forms.bibleimportwizard)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.core.lib.pluginmanager)
+W: no module named openlp.plugins.songs.lib.SongsTab (top-level import by openlp.plugins.songs.songsplugin)
+W: no module named sqlalchemy.CHAR (top-level import by sqlalchemy.databases.sybase)
+W: no module named sqlalchemy.sql.collate (top-level import by sqlalchemy)
+W: no module named sqlalchemy.sql.outparam (top-level import by sqlalchemy)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.lib.db)
+W: no module named openlp.core.ui.PluginForm (top-level import by openlp.core.ui.mainwindow)
+W: no module named gobject (top-level import by enchant.checker.GtkSpellCheckerDialog)
+W: no module named openlp.core.utils.VersionThread (top-level import by __main__)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.topicsform)
+W: no module named sqlalchemy.Integer (top-level import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.exceptiondialog)
+W: no module named pwd (delayed, conditional import by distutils.util)
+W: no module named uno (conditional import by openlp.plugins.presentations.lib.impresscontroller)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.utils)
+W: no module named sqlalchemy.orm.class_mapper (top-level import by openlp.plugins.songs.lib.olpimport)
+W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.songs.lib.olpimport)
+W: no module named readline (delayed import by pdb)
+W: no module named openlp.core.ui.MainDisplay (top-level import by openlp.core.lib.rendermanager)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named sqlalchemy.Table (top-level import by openlp.plugins.songusage.lib.db)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.alertsplugin)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.forms.importwizardform)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.remotes.remoteplugin)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.images.imageplugin)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.alerts.lib.alertstab)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editversedialog)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songusage.songusageplugin)
+W: no module named openlp.core.ui.HideMode (top-level import by openlp.core.ui.slidecontroller)
+W: no module named sqlalchemy.sql.between (top-level import by sqlalchemy)
+W: no module named xml.dom.EMPTY_PREFIX (top-level import by xml.dom.minidom)
+W: no module named pysqlite2 (delayed import by sqlalchemy.databases.sqlite)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.lib.customtab)
+W: no module named gtk (top-level import by enchant.checker.GtkSpellCheckerDialog)
+W: no module named xml.dom.EMPTY_NAMESPACE (top-level import by xml.dom.expatbuilder)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.remotes.lib.httpserver)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedeleteform)
+W: no module named sqlalchemy.orm.scoped_session (top-level import by openlp.core.lib.db)
+W: no module named openlp.core.lib.clean_tags (top-level import by openlp.core.lib.serviceitem)
+W: no module named openlp.core.utils.get_filesystem_encoding (top-level import by openlp.core.ui.thememanager)
+W: no module named xml.dom.EMPTY_NAMESPACE (top-level import by xml.dom.minidom)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.toolbar)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.remotes.remoteplugin)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.attributes)
+W: no module named sqlalchemy.ForeignKey (top-level import by sqlalchemy.databases.sybase)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.servicemanager)
+W: no module named sqlalchemy.Column (top-level import by openlp.plugins.alerts.lib.db)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.advancedtab)
+W: no module named AES (delayed, conditional import by archive)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.songmaintenanceform)
+W: no module named openlp.core.lib.context_menu_separator (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named fcntl (top-level import by tempfile)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.thememanager)
+W: no module named mx (top-level import by sqlalchemy.databases.mxODBC)
+W: no module named sqlalchemy.sql.union (top-level import by sqlalchemy)
+W: no module named openlp.plugins.songs.forms.TopicsForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named MacOS (delayed import by distutils.sysconfig)
+W: no module named openlp.core.lib.SpellTextEdit (top-level import by openlp.plugins.custom.forms.editcustomdialog)
+W: no module named ic (top-level import by webbrowser)
+W: no module named com (conditional import by openlp.plugins.presentations.lib.impresscontroller)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.media.mediaplugin)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.forms.editcustomform)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.lib.spelltextedit)
+W: no module named openlp.core.lib.html_expands (top-level import by openlp.core.lib.spelltextedit)
+W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named sqlalchemy.Column (top-level import by openlp.plugins.songs.lib.db)
+W: no module named py2exe (delayed import by enchant.tests)
+W: no module named openlp.plugins.songs.forms.AuthorsForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.authorsform)
+W: no module named openlp.plugins.remotes.lib.HttpServer (top-level import by openlp.plugins.remotes.remoteplugin)
+W: no module named sqlalchemy.Table (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.remotes.remoteplugin)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.filerenamedialog)
+W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named sapdb (delayed import by sqlalchemy.databases.maxdb)
+W: no module named ctypes.cdll (delayed import by ctypes.util)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.lib.presentationtab)
+W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named sqlalchemy.sql.text (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.image_to_byte (top-level import by openlp.core.lib.renderer)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.forms.importwizardform)
+W: no module named openlp.core.lib.image_to_byte (top-level import by openlp.core.ui.maindisplay)
+W: no module named iconv_codec (top-level import by BeautifulSoup)
+W: no module named openlp.plugins.songs.forms.SongBookForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform)
+W: no module named sqlalchemy.sql.not_ (top-level import by sqlalchemy)
+W: no module named multiprocessing.Pipe (top-level import by multiprocessing.queues)
+W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedetailform)
+W: no module named sqlalchemy.sql.subquery (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.songsplugin)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editsongdialog)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.bibles.bibleplugin)
+W: no module named openlp.plugins.songs.forms.SongMaintenanceForm (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named xmlparse (top-level import by pyexpat)
+W: no module named sqlalchemy.sql.exists (top-level import by sqlalchemy)
+W: no module named sqlalchemy.sql.and_ (top-level import by openlp.plugins.songs.forms.songmaintenanceform)
+W: no module named multiprocessing.Process (top-level import by multiprocessing.pool)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.settingsdialog)
+W: no module named sqlalchemy.exceptions (top-level import by openlp.core.lib.db)
+W: no module named sqlalchemy.sql.outerjoin (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.editsongdialog)
+W: no module named openlp.plugins.custom.lib.CustomXMLParser (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.custom.forms.editcustomdialog)
+W: no module named sqlalchemy.Integer (top-level import by sqlalchemy.databases.sybase)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.properties)
+W: no module named multiprocessing.current_process (top-level import by multiprocessing.managers)
+W: no module named openlp.core.ui.SplashScreen (top-level import by __main__)
+W: no module named multiprocessing.TimeoutError (top-level import by multiprocessing.dummy)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.songs.forms.songimportform)
+W: no module named xml.dom.XMLNS_NAMESPACE (top-level import by xml.dom.expatbuilder)
+W: no module named ctypes.c_int32 (delayed import by urllib)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.amendthemedialog)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.serviceitem)
+W: no module named openlp.core.utils.LanguageManager (top-level import by __main__)
+W: no module named sqlalchemy.orm.object_mapper (top-level import by sqlalchemy.orm.properties)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.utils.languagemanager)
+W: no module named sqlalchemy.sql.literal_column (top-level import by sqlalchemy)
+W: no module named openlp.plugins.songs.lib.SongXMLParser (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named ctypes.c_char_p (delayed import by urllib)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.images.imageplugin)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.remotes.lib.remotetab)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.opensong)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songimportform)
+W: no module named sqlalchemy.sql.select (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songbookdialog)
+W: no module named openlp.plugins.bibles.lib.BibleMediaItem (top-level import by openlp.plugins.bibles.bibleplugin)
+W: no module named PyQt4._qt (top-level import by PyQt4.QtNetwork)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.songs.songsplugin)
+W: no module named sqlalchemy.sql.case (top-level import by sqlalchemy)
+W: no module named wx (top-level import by enchant.checker.wxSpellCheckerDialog)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.alerts.alertsplugin)
+W: no module named com (conditional import by openlp.plugins.songs.lib.sofimport)
+W: no module named PyQt4._qt (top-level import by PyQt4)
+W: no module named SOCKS (top-level import by ftplib)
+W: no module named openlp.plugins.songusage.forms.SongUsageDetailForm (top-level import by openlp.plugins.songusage.songusageplugin)
+W: no module named sqlalchemy.sql.null (top-level import by sqlalchemy)
+W: no module named sqlalchemy.MetaData (top-level import by openlp.core.lib.db)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.plugins.custom.forms.EditCustomForm (top-level import by openlp.plugins.custom.customplugin)
+W: no module named org (delayed import by xml.sax)
+W: no module named openlp.core.lib.SpellTextEdit (top-level import by openlp.plugins.songs.forms.editversedialog)
+W: no module named sqlalchemy.orm.EXT_CONTINUE (top-level import by sqlalchemy.orm.scoping)
+W: no module named openlp.core.lib.build_lyrics_outline_css (top-level import by openlp.core.lib.renderer)
+W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editverseform)
+W: no module named com (conditional import by openlp.plugins.songs.lib.oooimport)
+W: no module named openlp.core.lib.str_to_bool (top-level import by openlp.core.lib.theme)
+W: no module named sqlalchemy.sql.literal (top-level import by sqlalchemy)
+W: no module named termios (top-level import by getpass)
+W: no module named openlp.core.lib.build_lyrics_format_css (top-level import by openlp.core.lib.renderer)
+W: no module named ctypes.byref (delayed import by urllib)
+W: no module named openlp.plugins.custom.lib.CustomTab (top-level import by openlp.plugins.custom.customplugin)
+W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named openlp.plugins.bibles.lib.parse_reference (top-level import by openlp.plugins.bibles.lib.manager)
+W: no module named java (delayed import by platform)
+W: no module named openlp.core.ui.ServiceItemEditForm (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.customplugin)
+W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.lib.rendermanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named _xmlrpclib (top-level import by xmlrpclib)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named openlp.plugins.media.lib.MediaMediaItem (top-level import by openlp.plugins.media.mediaplugin)
+W: no module named openlp.plugins.custom.lib.CustomXMLBuilder (top-level import by openlp.plugins.custom.forms.editcustomform)
+W: no module named rourl2path (conditional import by urllib)
+W: no module named pwd (delayed import by webbrowser)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.themestab)
+W: no module named PyQt4._qt (top-level import by PyQt4.QtWebKit)
+W: no module named sqlalchemy.orm.class_mapper (delayed, conditional import by sqlalchemy.orm.interfaces)
+W: no module named PyQt4._qt (top-level import by PyQt4.phonon)
+W: no module named openlp.core.ui.HideMode (top-level import by openlp.plugins.presentations.lib.messagelistener)
+W: no module named openlp.plugins.songusage.forms.SongUsageDeleteForm (top-level import by openlp.plugins.songusage.songusageplugin)
+W: no module named openlp.core.lib.context_menu_separator (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.plugindialog)
+W: no module named fcntl (conditional import by subprocess)
+W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.bibles.lib.mediaitem)
+W: no module named openlp.core.lib.PluginStatus (top-level import by openlp.core.lib.pluginmanager)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.editsongform)
+W: no module named openlp.core.ui.ScreenList (top-level import by __main__)
+W: no module named sqlalchemy.or_ (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editsongform)
+W: no module named openlp.plugins.songs.forms.ImportWizardForm (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.ui.ThemeManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named pyodbc (delayed, conditional import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.biblestab)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.songusageplugin)
+W: no module named multiprocessing.active_children (top-level import by multiprocessing.managers)
+W: no module named openlp.plugins.songs.forms.EditSongForm (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named email.Generator (delayed import by email.message)
+W: no module named mx (delayed import by sqlalchemy.databases.mxODBC)
+W: no module named sqlalchemy.sql.or_ (top-level import by sqlalchemy)
+W: no module named sqlalchemy.Table (top-level import by openlp.plugins.custom.lib.db)
+W: no module named sqlalchemy.Table (top-level import by sqlalchemy.databases.sybase)
+W: no module named openlp.core.lib.get_text_file_string (top-level import by openlp.core.ui.thememanager)
+W: no module named sqlalchemy.orm.object_session (top-level import by sqlalchemy.orm.scoping)
+W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.bibles.lib.mediaitem)
+W: no module named sqlalchemy.Table (top-level import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.forms.bibleimportwizard)
+W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.lib.renderer)
+W: no module named pymssql (delayed import by sqlalchemy.databases.mssql)
+W: no module named sqlalchemy.orm.sessionmaker (top-level import by openlp.plugins.songs.lib.olpimport)
+W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.expand_tags (top-level import by openlp.core.lib.serviceitem)
+W: no module named gestalt (delayed import by platform)
+W: no module named enchant.checker.SpellChecker (top-level import by enchant.checker.CmdLineChecker)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.themestab)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.olp1import)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.messagelistener)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.interfaces)
+W: no module named sqlalchemy.orm.object_mapper (top-level import by sqlalchemy.orm.query)
+W: no module named sqlalchemy.sql.distinct (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named sqlalchemy.sql.extract (top-level import by sqlalchemy)
+W: no module named sqlalchemy.Column (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named psycopg2 (delayed import by sqlalchemy.databases.postgres)
+W: no module named enchant.checker.SpellChecker (delayed import by enchant.checker.GtkSpellCheckerDialog)
+W: no module named clr (conditional import by adodbapi.adodbapi)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named openlp.plugins.custom.lib.CustomXMLParser (top-level import by openlp.plugins.custom.forms.editcustomform)
+W: no module named openlp.core.theme.Theme (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.custom.forms.editcustomform)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.lib.settingsmanager)
+W: no module named openlp.core.lib.Receiver (top-level import by __main__)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.bibles.lib.manager)
+W: no module named org (top-level import by pickle)
+W: no module named enchant.DictNotFoundError (top-level import by openlp.core.lib.spelltextedit)
+W: no module named sqlalchemy.sql.except_all (top-level import by sqlalchemy)
+W: no module named openlp.plugins.presentations.lib.PresentationTab (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named sqlalchemy.sql.cast (top-level import by sqlalchemy)
+W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.songs.lib.db)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.settingsdialog)
+W: no module named openlp.core.utils.LanguageManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named sqlalchemy.sql.intersect (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.songimport)
+W: no module named sqlalchemy.orm.class_mapper (top-level import by sqlalchemy.orm.scoping)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.util)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.opensongimport)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.bibles.lib.biblestab)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.aboutform)
+W: no module named openlp.plugins.custom.lib.CustomMediaItem (top-level import by openlp.plugins.custom.customplugin)
+W: no module named sqlalchemy.orm.scoped_session (top-level import by openlp.plugins.songs.lib.olpimport)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.amendthemeform)
+W: no module named sqlalchemy.engine.engine_from_config (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.themestab)
+W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.maindisplay)
+W: no module named openlp.core.lib.PluginStatus (top-level import by openlp.core.ui.pluginform)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.http)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.remotes.lib.httpserver)
+W: no module named sqlalchemy.Table (top-level import by openlp.plugins.songs.lib.db)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.utils)
+W: no module named openlp.core.lib.RenderManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.alerts.alertsplugin)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.lib.plugin)
+W: no module named sqlalchemy.ForeignKey (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named openlp.plugins.songs.lib.SongMediaItem (top-level import by openlp.plugins.songs.songsplugin)
+W: no module named sqlalchemy.Index (top-level import by openlp.plugins.songs.lib.db)
+W: no module named multiprocessing.TimeoutError (top-level import by multiprocessing.pool)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songusage.forms.songusagedetaildialog)
+W: no module named enchant.DictWithPWL (delayed import by enchant.checker.tests)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.songstab)
+W: no module named openlp.core.ui.AdvancedTab (top-level import by openlp.core.ui.settingsform)
+W: no module named MySQLdb (delayed import by sqlalchemy.databases.mysql)
+W: no module named openlp.plugins.presentations.lib.PresentationMediaItem (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named openlp.plugins.alerts.forms.AlertForm (top-level import by openlp.plugins.alerts.alertsplugin)
+W: no module named ctypes.c_int (delayed import by urllib)
+W: no module named xml.dom.XML_NAMESPACE (delayed import by xml.dom.pulldom)
+W: no module named ctypes.c_void_p (delayed import by urllib)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.osis)
+W: no module named sqlalchemy.create_engine (top-level import by openlp.core.lib.db)
+W: no module named win32com.client._get_good_object_ (top-level import by win32com.client.util)
+W: no module named openlp.core.ui.MainDisplay (top-level import by openlp.core.ui.slidecontroller)
+W: no module named openlp.core.lib.resize_image (top-level import by openlp.plugins.presentations.lib.presentationcontroller)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.remotes.lib.remotetab)
+W: no module named openlp.core.ui.MediaDockManager (top-level import by openlp.core.ui.mainwindow)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.session)
+W: no module named sqlalchemy.Column (top-level import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.editversedialog)
+W: no module named multiprocessing.Process (top-level import by multiprocessing.managers)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.presentationcontroller)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.forms.editcustomdialog)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.lib.alertsmanager)
+W: no module named sgmlop (top-level import by xmlrpclib)
+W: no module named MacOS (conditional import by py_compile)
+W: no module named multiprocessing.cpu_count (top-level import by multiprocessing.dummy)
+W: no module named _dummy_threading (top-level import by dummy_threading)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songmaintenanceform)
+W: no module named openlp.plugins.presentations.lib.PresentationController (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named sqlalchemy.sql.union_all (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.opensong)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.bibles.lib.mediaitem)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.osis)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.settingsform)
+W: no module named enchant.tokenize.get_tokenizer (top-level import by enchant.checker)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.manager)
+W: no module named org (top-level import by copy)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.servicemanager)
+W: no module named sqlalchemy.MetaData (top-level import by openlp.plugins.songs.lib.olpimport)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.songmaintenancedialog)
+W: no module named sqlalchemy.sql.select (top-level import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.bibles.forms.importwizardform)
+W: no module named multiprocessing.current_process (top-level import by multiprocessing.connection)
+W: no module named sqlalchemy.orm.sessionmaker (top-level import by openlp.core.lib.db)
+W: no module named sqlalchemy.sql.desc (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedeletedialog)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.mediaitem)
+W: no module named ctypes.cdll (delayed import by urllib)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.media.mediaplugin)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.presentations.lib.presentationtab)
+W: no module named MySQLdb (delayed, conditional import by sqlalchemy.databases.mysql)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named sqlalchemy.orm.object_session (top-level import by sqlalchemy.orm.dynamic)
+W: no module named sqlalchemy.sql.modifier (top-level import by sqlalchemy)
+W: no module named _xmlplus (top-level import by xml)
+W: no module named sqlalchemy.Column (top-level import by openlp.plugins.songusage.lib.db)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.advancedtab)
+W: no module named sqlalchemy.sql.and_ (top-level import by sqlalchemy)
+W: no module named sqlalchemy.MetaData (top-level import by sqlalchemy.databases.mssql)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.dependency)
+W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.ui.themestab)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.presentationtab)
+W: no module named openlp.core.utils.get_images_filter (top-level import by openlp.core.ui.amendthemeform)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.presentations.presentationplugin)
+W: no module named openlp.plugins.presentations.lib.MessageListener (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named openlp.plugins.bibles.forms.ImportWizardForm (top-level import by openlp.plugins.bibles.lib.mediaitem)
+W: no module named openlp.core.utils.AppLocation (top-level import by __main__)
+W: no module named sqlalchemy.ForeignKey (top-level import by openlp.plugins.songs.lib.db)
+W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.thememanager)
+W: no module named ctypes.cdll (conditional import by openlp.plugins.presentations.lib.pptviewcontroller)
+W: no module named pwd (delayed import by getpass)
+W: no module named sqlalchemy.sql.and_ (top-level import by openlp.plugins.songusage.forms.songusagedetailform)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.amendthemedialog)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.songimportwizard)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.serviceitemeditdialog)
+W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.ui.maindisplay)
+W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.custom.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.topicsdialog)
+W: no module named PyQt4._qt (top-level import by PyQt4.QtGui)
+W: no module named sqlalchemy.sql.update (top-level import by sqlalchemy)
+W: no module named multiprocessing.current_process (delayed, conditional import by logging)
+W: no module named multiprocessing.Pool (top-level import by multiprocessing.managers)
+W: no module named sqlalchemy.create_engine (delayed, conditional import by sqlalchemy.schema)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.forms.importwizardform)
+W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.lib.mediamanageritem)
+W: no module named posix (conditional import by os)
+W: no module named sqlalchemy.sql.bindparam (top-level import by sqlalchemy)
+W: no module named xml.dom.DOMImplementation (top-level import by xml.dom.domreg)
+W: no module named openlp.core.utils.add_actions (top-level import by openlp.core.ui.mainwindow)
+W: no module named sqlalchemy.create_engine (top-level import by openlp.plugins.songs.lib.olpimport)
+W: no module named multiprocessing.cpu_count (top-level import by multiprocessing.pool)
+W: no module named multiprocessing.AuthenticationError (top-level import by multiprocessing.connection)
+W: no module named openlp.core.ui.ThemesTab (top-level import by openlp.core.ui.settingsform)
+W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.media.lib.mediaitem)
+W: no module named sqlalchemy.orm.class_mapper (top-level import by openlp.plugins.bibles.lib.db)
+W: no module named sqlalchemy.String (top-level import by sqlalchemy.databases.sybase)
+W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named pwd (delayed, conditional import by posixpath)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.strategies)
+W: no module named mx (top-level import by adodbapi.adodbapi)
+W: no module named sqlalchemy.sql.alias (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.authorsdialog)
+W: no module named sqlalchemy.Table (top-level import by openlp.plugins.alerts.lib.db)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.images.imageplugin)
+W: no module named sqlalchemy.orm.mapperlib (delayed import by sqlalchemy.orm.util)
+W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.lib.rendermanager)
+W: no module named openlp.core.lib.OpenLPDockWidget (top-level import by openlp.core.ui.mainwindow)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songimportwizard)
+W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.songusage.songusageplugin)
+W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.presentations.lib.presentationcontroller)
+W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.lib.spelltextedit)
+W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.thememanager)
+W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.pluginform)
+W: no module named enchant.checker.SpellChecker (delayed import by enchant.checker.wxSpellCheckerDialog)
+W: no module named sqlalchemy.DefaultClause (top-level import by sqlalchemy.databases.sqlite)
+W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.ui.servicemanager)
+W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.core.ui.slidecontroller)
+W: no module named openlp.core.utils.get_images_filter (top-level import by openlp.plugins.images.lib.mediaitem)
+W: no module named pyodbc (delayed import by sqlalchemy.databases.mssql)
+W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.slidecontroller)
+W: no module named System (conditional import by adodbapi.adodbapi)
+W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.custom.lib.customtab)
+W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.csvbible)
+W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.generaltab)
+W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.ui.servicemanager)
+W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.scoping)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.forms.alertform)
+W: no module named mypyodbc (delayed import by sqlalchemy.databases.sybase)
+W: no module named sqlalchemy.sql.intersect_all (top-level import by sqlalchemy)
+W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.lib.mediaitem)
+W: __all__ is built strangely at line 0 - dummy_threading (C:\Python26\lib\dummy_threading.pyc)
+W: delayed  exec statement detected at line 0 - bdb (C:\Python26\lib\bdb.pyc)
+W: delayed  eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc)
+W: delayed  eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc)
+W: delayed  __import__ hack detected at line 0 - optparse (C:\Python26\lib\optparse.pyc)
+W: delayed conditional __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc)
+W: delayed conditional exec statement detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc)
+W: delayed conditional __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc)
+W: delayed  __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc)
+W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc)
+W: delayed  exec statement detected at line 0 - doctest (C:\Python26\lib\doctest.pyc)
+W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.orm.interfaces (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\interfaces.pyc)
+W: __all__ is built strangely at line 0 - tokenize (C:\Python26\lib\tokenize.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.engine (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\engine\__init__.pyc)
+W: delayed  __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc)
+W: delayed  __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc)
+W: top-level conditional exec statement detected at line 0 - sqlalchemy.sql.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\util.pyc)
+W: top-level conditional exec statement detected at line 0 - sqlalchemy.sql.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\util.pyc)
+W: delayed conditional __import__ hack detected at line 0 - openlp.core.lib.pluginmanager (c:\Documents and Settings\raoul\My Documents\My Projects\openlp\movements\openlp\core\lib\pluginmanager.pyc)
+W: delayed conditional exec statement detected at line 0 - multiprocessing.sharedctypes (C:\Python26\lib\multiprocessing\sharedctypes.pyc)
+W: delayed  __import__ hack detected at line 0 - encodings (C:\Python26\lib\encodings\__init__.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.databases.mysql (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\databases\mysql.pyc)
+W: delayed  exec statement detected at line 0 - sqlalchemy.orm.attributes (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\attributes.pyc)
+W: delayed conditional __import__ hack detected at line 0 - openlp.plugins.presentations.presentationplugin (c:\Documents and Settings\raoul\My Documents\My Projects\openlp\movements\openlp\plugins\presentations\presentationplugin.pyc)
+W: delayed  __import__ hack detected at line 0 - enchant.tokenize (C:\Python26\lib\site-packages\enchant\tokenize\__init__.pyc)
+W: __all__ is built strangely at line 0 - multiprocessing (C:\Python26\lib\multiprocessing\__init__.pyc)
+W: __all__ is built strangely at line 0 - dis (C:\Python26\lib\dis.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.databases (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\databases\__init__.pyc)
+W: delayed  __import__ hack detected at line 0 - win32com.server.policy (C:\Python26\lib\site-packages\win32com\server\policy.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.orm.mapper (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\mapper.pyc)
+W: top-level  exec statement detected at line 0 - hashlib (C:\Python26\lib\hashlib.pyc)
+W: top-level conditional exec statement detected at line 0 - hashlib (C:\Python26\lib\hashlib.pyc)
+W: delayed conditional eval hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc)
+W: delayed conditional __import__ hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc)
+W: delayed  exec statement detected at line 0 - cgi (C:\Python26\lib\cgi.pyc)
+W: delayed  __import__ hack detected at line 0 - email (C:\Python26\lib\email\__init__.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.orm (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\__init__.pyc)
+W: delayed  __import__ hack detected at line 0 - ctypes (C:\Python26\lib\ctypes\__init__.pyc)
+W: delayed  __import__ hack detected at line 0 - ctypes (C:\Python26\lib\ctypes\__init__.pyc)
+W: delayed conditional __import__ hack detected at line 0 - xml.dom.domreg (C:\Python26\lib\xml\dom\domreg.pyc)
+W: delayed  exec statement detected at line 0 - pdb (C:\Python26\lib\pdb.pyc)
+W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc)
+W: delayed  eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc)
+W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc)
+W: delayed  eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc)
+W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc)
+W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc)
+W: delayed conditional __import__ hack detected at line 0 - pkgutil (C:\Python26\lib\pkgutil.pyc)
+W: delayed conditional __import__ hack detected at line 0 - pkgutil (C:\Python26\lib\pkgutil.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.orm.properties (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\properties.pyc)
+W: delayed conditional exec statement detected at line 0 - iu (c:\Documents and Settings\raoul\My Documents\My Projects\pyinstaller\iu.pyc)
+W: delayed conditional exec statement detected at line 0 - iu (c:\Documents and Settings\raoul\My Documents\My Projects\pyinstaller\iu.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy.sql (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\__init__.pyc)
+W: __all__ is built strangely at line 0 - collections (C:\Python26\lib\collections.pyc)
+W: delayed  exec statement detected at line 0 - collections (C:\Python26\lib\collections.pyc)
+W: delayed  __import__ hack detected at line 0 - sqlalchemy.engine.url (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\engine\url.pyc)
+W: delayed  exec statement detected at line 0 - multiprocessing.managers (C:\Python26\lib\multiprocessing\managers.pyc)
+W: delayed  exec statement detected at line 0 - socket (C:\Python26\lib\socket.pyc)
+W: delayed conditional __import__ hack detected at line 0 - win32com.client.gencache (C:\Python26\lib\site-packages\win32com\client\gencache.pyc)
+W: delayed  __import__ hack detected at line 0 - win32com.client.gencache (C:\Python26\lib\site-packages\win32com\client\gencache.pyc)
+W: delayed  eval hack detected at line 0 - os (C:\Python26\lib\os.pyc)
+W: __all__ is built strangely at line 0 - __future__ (C:\Python26\lib\__future__.pyc)
+W: delayed  __import__ hack detected at line 0 - win32com.client.makepy (C:\Python26\lib\site-packages\win32com\client\makepy.pyc)
+W: delayed  exec statement detected at line 0 - win32com.client.dynamic (C:\Python26\lib\site-packages\win32com\client\dynamic.pyc)
+W: __all__ is built strangely at line 0 - sqlalchemy (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\__init__.pyc)
+W: delayed  __import__ hack detected at line 0 - xml.sax (C:\Python26\lib\xml\sax\__init__.pyc)
+W: delayed  eval hack detected at line 0 - gettext (C:\Python26\lib\gettext.pyc)
+W: delayed  eval hack detected at line 0 - sqlalchemy.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\util.pyc)
+W: delayed  exec statement detected at line 0 - sqlalchemy.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\util.pyc)

=== modified file 'scripts/translation_utils.py'
--- scripts/translation_utils.py	2010-09-22 18:07:09 +0000
+++ scripts/translation_utils.py	2010-09-26 21:38:39 +0000
@@ -63,6 +63,7 @@
 IGNORED_FILES = [u'setup.py']
 
 verbose_mode = False
+quiet_mode = False
 
 class Command(object):
     """
@@ -128,6 +129,20 @@
                 results.append(str((item[u'command'], )))
         return u'[%s]' % u', '.join(results)
 
+def print_quiet(text, linefeed=True):
+    """
+    This method checks to see if we are in quiet mode, and if not prints
+    ``text`` out.
+
+    ``text``
+        The text to print.
+    """
+    global quiet_mode
+    if not quiet_mode:
+        if linefeed:
+            print text
+        else:
+            print text,
 
 def print_verbose(text):
     """
@@ -137,8 +152,8 @@
     ``text``
         The text to print.
     """
-    global verbose_mode
-    if verbose_mode:
+    global verbose_mode, quiet_mode
+    if not quiet_mode and verbose_mode:
         print u'    %s' % text
 
 def run(command):
@@ -155,7 +170,6 @@
         print_verbose(u'ReadyRead: %s' % QtCore.QString(process.readAll()))
     print_verbose(u'Error(s):\n%s' % process.readAllStandardError())
     print_verbose(u'Output:\n%s' % process.readAllStandardOutput())
-    print u'   Done.'
 
 def update_export_at_pootle(source_filename):
     """
@@ -170,7 +184,7 @@
     print_verbose(u'Accessing: %s' % (REVIEW_URL))
     page = urllib.urlopen(REVIEW_URL)
     page.close()
-    
+
 
 def download_file(source_filename, dest_filename):
     """
@@ -194,7 +208,7 @@
     """
     This method downloads the translation files from the Pootle server.
     """
-    print 'Download translation files from Pootle'
+    print_quiet(u'Download translation files from Pootle')
     page = urllib.urlopen(SERVER_URL)
     soup = BeautifulSoup(page)
     languages = soup.findAll(text=re.compile(r'.*\.ts'))
@@ -205,14 +219,14 @@
             language_file)
         print_verbose(u'Get Translation File: %s' % filename)
         download_file(language_file, filename)
-    print u'   Done.'
+    print_quiet(u'   Done.')
 
 def prepare_project():
     """
     This method creates the project file needed to update the translation files
     and compile them into .qm files.
     """
-    print u'Generating the openlp.pro file'
+    print_quiet(u'Generating the openlp.pro file')
     lines = []
     start_dir = os.path.abspath(u'..')
     start_dir = start_dir + os.sep
@@ -251,10 +265,10 @@
     file = open(os.path.join(start_dir, u'openlp.pro'), u'w')
     file.write(u'\n'.join(lines).encode('utf8'))
     file.close()
-    print u'   Done.'
+    print_quiet(u'   Done.')
 
 def update_translations():
-    print u'Update the translation files'
+    print_quiet(u'Update the translation files')
     if not os.path.exists(os.path.join(os.path.abspath(u'..'), u'openlp.pro')):
         print u'You have no generated a project file yet, please run this ' + \
             u'script with the -p option.'
@@ -265,7 +279,7 @@
         os.chdir(os.path.abspath(u'scripts'))
 
 def generate_binaries():
-    print u'Generate the related *.qm files'
+    print_quiet(u'Generate the related *.qm files')
     if not os.path.exists(os.path.join(os.path.abspath(u'..'), u'openlp.pro')):
         print u'You have not generated a project file yet, please run this ' + \
             u'script with the -p option. It is also recommended that you ' + \
@@ -283,8 +297,9 @@
         src_list = os.listdir(src_path)
         for file in src_list:
             if re.search('.qm$', file):
-                copy(os.path.join(src_path, u'%s' % file), 
+                copy(os.path.join(src_path, u'%s' % file),
                     os.path.join(dest_path, u'%s' % file))
+        print_quiet(u'   Done.')
 
 
 def create_translation(language):
@@ -294,17 +309,17 @@
     ``language``
         The language file to create.
     """
-    print "Create new Translation File"
+    print_quiet(u'Create new Translation File')
     if not language.endswith(u'.ts'):
         language += u'.ts'
     filename = os.path.join(os.path.abspath(u'..'), u'resources', u'i18n', language)
     download_file(u'en.ts', filename)
-    print u'   ** Please Note **'
-    print u'   In order to get this file into OpenLP and onto the Pootle ' + \
-        u'translation server you will need to subscribe to the OpenLP' + \
-        u'Translators mailing list, and request that your language file ' + \
-        u'be added to the project.'
-    print u'   Done'
+    print_quiet(u'   ** Please Note **')
+    print_quiet(u'   In order to get this file into OpenLP and onto the '
+        u'Pootle translation server you will need to subscribe to the '
+        u'OpenLP Translators mailing list, and request that your language '
+        u'file be added to the project.')
+    print_quiet(u'   Done.')
 
 def process_stack(command_stack):
     """
@@ -315,9 +330,9 @@
         The command stack to process.
     """
     if command_stack:
-        print u'Processing %d commands...' % len(command_stack)
+        print_quiet(u'Processing %d commands...' % len(command_stack))
         for command in command_stack:
-            print u'%d.' % (command_stack.current_index),
+            print_quiet(u'%d.' % (command_stack.current_index), False)
             if command == Command.Download:
                 download_translations()
             elif command == Command.Prepare:
@@ -329,12 +344,12 @@
             elif command == Command.Create:
                 arguments = command_stack.arguments()
                 create_translation(*arguments)
-        print u'Finished processing commands.'
+        print_quiet(u'Finished processing commands.')
     else:
-        print u'No commands to process.'
+        print_quiet(u'No commands to process.')
 
 def main():
-    global verbose_mode
+    global verbose_mode, quiet_mode
     # Set up command line options.
     usage = u'%prog [options]\nOptions are parsed in the order they are ' + \
         u'listed below. If no options are given, "-dpug" will be used.\n\n' + \
@@ -352,6 +367,8 @@
         help='compile .ts files into .qm files')
     parser.add_option('-v', '--verbose', dest='verbose', action='store_true',
         help='show extra information while processing translations')
+    parser.add_option('-q', '--quiet', dest='quiet', action='store_true',
+        help='suppress all output other than errors')
     (options, args) = parser.parse_args()
     # Create and populate the command stack
     command_stack = CommandStack()
@@ -366,6 +383,7 @@
     if options.generate:
         command_stack.append(Command.Generate)
     verbose_mode = options.verbose
+    quiet_mode = options.quiet
     if not command_stack:
         command_stack.append(Command.Download)
         command_stack.append(Command.Prepare)

=== modified file 'scripts/windows-builder.py'
--- scripts/windows-builder.py	2010-09-19 17:31:59 +0000
+++ scripts/windows-builder.py	2010-09-26 21:38:39 +0000
@@ -87,20 +87,33 @@
 """
 
 import os
+import sys
 from shutil import copy
 from subprocess import Popen, PIPE
 
+python_exe = sys.executable
+innosetup_exe = os.path.join(os.getenv(u'PROGRAMFILES'), 'Inno Setup 5',
+    u'ISCC.exe')
+
+# Base paths
 script_path = os.path.split(os.path.abspath(__file__))[0]
 branch_path = os.path.abspath(os.path.join(script_path, u'..'))
+site_packages = os.path.join(os.path.split(python_exe)[0], u'Lib',
+    u'site-packages')
+
+# Files and executables
+pyi_build = os.path.abspath(os.path.join(branch_path, u'..', u'..',
+    u'pyinstaller', u'Build.py'))
+lrelease_exe = os.path.join(site_packages, u'PyQt4', u'bin', u'lrelease.exe')
+i18n_utils = os.path.join(script_path, u'translation_utils.py')
+
+# Paths
 source_path = os.path.join(branch_path, u'openlp')
 i18n_path = os.path.join(branch_path, u'resources', u'i18n')
+winres_path = os.path.join(branch_path, u'resources', u'windows')
 build_path = os.path.join(branch_path, u'build', u'pyi.win32', u'OpenLP')
 dist_path = os.path.join(branch_path, u'dist', u'OpenLP')
-pyinstaller_path = os.path.abspath(os.path.join(branch_path, u'..', u'..', u'pyinstaller'))
-innosetup_path = os.path.join(os.getenv(u'PROGRAMFILES'), 'Inno Setup 5')
-iss_path = os.path.join(branch_path, u'resources', u'innosetup')
-lrelease_path = u'C:\\Python26\\Lib\\site-packages\\PyQt4\\bin\\lrelease.exe'
-enchant_path = u'C:\\Python26\\Lib\\site-packages\\enchant'
+enchant_path = os.path.join(site_packages, u'enchant')
 
 def clean_build_directories():
     #if not os.path.exists(build_path)
@@ -117,11 +130,13 @@
 def run_pyinstaller():
     print u'Running PyInstaller...'
     os.chdir(branch_path)
-    pyinstaller = Popen((u'python', os.path.join(pyinstaller_path, u'Build.py'),
-        u'-y', u'OpenLP.spec'))
+    pyinstaller = Popen((python_exe, pyi_build, u'-y', u'-o', build_path,
+        os.path.join(winres_path, u'OpenLP.spec')), stdout=PIPE)
+    output, error = pyinstaller.communicate()
     code = pyinstaller.wait()
     if code != 0:
-        raise Exception(u'Error running PyInstaller Build.py')
+        print output
+        raise Exception(u'Error running PyInstaller')
 
 def write_version_file():
     print u'Writing version file...'
@@ -155,7 +170,7 @@
     for root, dirs, files in os.walk(source):
         for filename in files:
             if not filename.endswith(u'.pyc') and not filename.endswith(u'.pyo'):
-                dest_path = os.path.join(dest, root[len(source)+1:])
+                dest_path = os.path.join(dest, root[len(source) + 1:])
                 if not os.path.exists(dest_path):
                     os.makedirs(dest_path)
                 copy(os.path.join(root, filename),
@@ -176,16 +191,18 @@
 
 def copy_windows_files():
     print u'Copying extra files for Windows...'
-    copy(os.path.join(iss_path, u'OpenLP.ico'), os.path.join(dist_path, u'OpenLP.ico'))
-    copy(os.path.join(iss_path, u'LICENSE.txt'), os.path.join(dist_path, u'LICENSE.txt'))
+    copy(os.path.join(winres_path, u'OpenLP.ico'),
+        os.path.join(dist_path, u'OpenLP.ico'))
+    copy(os.path.join(winres_path, u'LICENSE.txt'),
+        os.path.join(dist_path, u'LICENSE.txt'))
 
 def update_translations():
     print u'Updating translations...'
     os.chdir(script_path)
-    translation_utils = Popen(u'python translation_utils.py -dpu')
+    translation_utils = Popen((python_exe, i18n_utils, u'-qdpu'))
     code = translation_utils.wait()
     if code != 0:
-        print u'Error running translation_utils.py'
+        raise Exception(u'Error running translation_utils.py')
 
 def compile_translations():
     print u'Compiling translations...'
@@ -197,19 +214,17 @@
             source_path = os.path.join(i18n_path, file)
             dest_path = os.path.join(dist_path, u'i18n',
                 file.replace(u'.ts', u'.qm'))
-            lconvert = Popen(u'"%s" "%s" -qm "%s"' % (lrelease_path, \
-                source_path, dest_path))
+            lconvert = Popen((lrelease_exe, u'-compress', u'-silent',
+                source_path, u'-qm', dest_path))
             code = lconvert.wait()
             if code != 0:
-                print 'Error running lconvert on %s' % source_path
+                raise Exception('Error running lconvert on %s' % source_path)
 
 def run_innosetup():
     print u'Running Inno Setup...'
-    os.chdir(iss_path)
-    run_command = u'"%s" "%s"' % (os.path.join(innosetup_path, u'ISCC.exe'),
-        os.path.join(iss_path, u'OpenLP-2.0.iss'))
-    print run_command
-    innosetup = Popen(run_command)
+    os.chdir(winres_path)
+    innosetup = Popen((innosetup_exe,
+        os.path.join(winres_path, u'OpenLP-2.0.iss'), u'/q'))
     code = innosetup.wait()
     if code != 0:
         raise Exception(u'Error running Inno Setup')
@@ -221,9 +236,9 @@
        print "Branch path:", branch_path
        print "Source path:", source_path
        print "\"dist\" path:", dist_path
-       print "PyInstaller path:", pyinstaller_path
+       print "PyInstaller:", pyi_build
        print "Inno Setup path:", innosetup_path
-       print "ISS file path:", iss_path
+       print "Windows resources:", winres_path
     #clean_build_directories()
     run_pyinstaller()
     write_version_file()