From 906aa26bf84f2e6f57cd5aae683ef5311687804c Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 31 Mar 2010 11:43:52 +0200 Subject: [PATCH 01/22] add language selection --- openlp.pyw | 12 + resources/i18n/openlp_en.ts | 10498 +++++++++++++++++++--------------- scripts/generate_pro.py | 102 + 3 files changed, 5930 insertions(+), 4682 deletions(-) create mode 100755 scripts/generate_pro.py diff --git a/openlp.pyw b/openlp.pyw index f1b627940..4cf86a10c 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -195,6 +195,18 @@ def main(): qInitResources() # Now create and actually run the application. app = OpenLP(qt_args) + lang_Path = AppLocation.get_directory(AppLocation.AppDir) + if hasattr(sys, u'frozen'): + lang_Path = os.path.join(lang_Path, u'..') + lang_Path = os.path.join(lang_Path, u'resources', u'i18n') + locale = QtCore.QLocale.system().name() + qtTranslator = QtCore.QTranslator() + if qtTranslator.load("openlp_" + locale, lang_Path): + app.installTranslator(qtTranslator) + appTranslator = QtCore.QTranslator() + if appTranslator.load("openlp_" + locale, lang_Path): + app.installTranslator(appTranslator) + sys.exit(app.run()) if __name__ == u'__main__': diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index 1660428e2..b92f28c37 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -1,4848 +1,5982 @@ - - - - BibleMediaItem + + + AboutDialog - - Quick - + + About OpenLP + - - - Ui_customEditDialog - - Delete selected slide - + + About + - - - BiblesTab - - ( and ) - - - - - RemoteTab - - - Remotes - - - - - Ui_EditSongDialog - - - &Remove - - - - - Ui_AmendThemeDialog - - - Shadow Size: - - - - - Ui_OpenSongExportDialog - - - Close - - - - - ThemeManager - - - Import Theme - - - - - Ui_AmendThemeDialog - - - Slide Transition - - - - - SongMaintenanceForm - - - Are you sure you want to delete the selected book? - - - - - ThemesTab - - - Theme level - - - - - BibleMediaItem - - - Bible - - - - - ServiceManager - - - Save Changes to Service? - - - - - SongUsagePlugin - - - &Delete recorded data - - - - - Ui_OpenLPExportDialog - - - Song Title - - - - - Ui_customEditDialog - - - Edit selected slide - - - - - SongMediaItem - - - CCLI Licence: - - - - - Ui_BibleImportWizard - - - Bible Import Wizard - - - - - Ui_customEditDialog - - - Edit All - - - - - SongMaintenanceForm - - - Couldn't save your author. - - - - - Ui_ServiceNoteEdit - - - Service Item Notes - - - - - Ui_customEditDialog - - - Add new slide at bottom - - - - - Clear - - - - - ThemesTab - - - Global theme - - - - - PresentationPlugin - - - <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. - - - - - SongUsagePlugin - - - Start/Stop live song usage recording - - - - - MainWindow - - - The Main Display has been blanked out - - - - - Ui_OpenSongExportDialog - - - Lyrics - - - - - Ui_AlertDialog - - - Display - - - - - SongMaintenanceForm - - - This author can't be deleted, they are currently assigned to at least one song. - - - - - Ui_customEditDialog - - - Delete - - - - - Ui_EditVerseDialog - - - Verse - - - - - Ui_OpenSongImportDialog - - - OpenSong Folder: - - - - - ThemeManager - - - Create a new theme - - - - - Ui_MainWindow - - - Open an existing service - - - - - SlideController - - - Move to previous - - - - - SongsPlugin - - - &Song - - - - - Ui_PluginViewDialog - - - Plugin Details - - - - - ImportWizardForm - - - You need to specify a file with books of the Bible to use in the import. - - - - - AlertsTab - - - Edit History: - - - - - Ui_MainWindow - - - &File - - - - - BiblesTab - - - verse per line - - - - - Ui_customEditDialog - - - Theme: - - - - - SongMaintenanceForm - - - Couldn't add your book. - - - - - Error - - - - - Ui_BibleImportWizard - - - Bible: - - - - - ThemeManager - - - Delete Theme - - - - - SplashScreen - - - Splash Screen - - - - - SongMediaItem - - - Song - - - - - Ui_OpenSongExportDialog - - - Song Title - - - - - Ui_AmendThemeDialog - - - Bottom - - - - - Ui_MainWindow - - - List the Plugins - - - - - SongMaintenanceForm - - - No author selected! - - - - - SongUsageDeleteForm - - - Delete Selected Song Usage Events? - - - - - SongUsagePlugin - - - <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service - - - - - Ui_customEditDialog - - - Move slide Up 1 - - - - - SongsPlugin - - - OpenSong - - - - - AlertsManager - - - Alert message created and delayed - - - - - Ui_EditSongDialog - - - Alternative Title: - - - - - ServiceManager - - - Open Service - - - - - BiblesTab - - - Display Style: - - - - - Ui_AmendThemeDialog - - - Image - - - - - EditSongForm - - - You need to enter a song title. - - - - - ThemeManager - - - Error - - - - - Ui_SongUsageDeleteDialog - - - Song Usage Delete - - - - - ImportWizardForm - - - Invalid Bible Location - - - - - BibleMediaItem - - - Book: - - - - - ThemeManager - - - Make Global - - - - - Ui_MainWindow - - - &Service Manager - - - - - Ui_OpenLPImportDialog - - - Author - - - - - Ui_AmendThemeDialog - - - Height: - - - - - ThemeManager - - - Delete a theme - - - - - Ui_BibleImportWizard - - - Crosswalk - - - - - SongBookForm - - - Error - - - - - Ui_AuthorsDialog - - - Last name: - - - - - ThemesTab - - - Use the global theme, overriding any themes associated with either the service or the songs. - - - - - Ui_customEditDialog - - - Title: - - - - - ImportWizardForm - - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - - - SongMediaItem - - - Maintain the lists of authors, topics and books - - - - - Ui_AlertEditDialog - - - Save - - - - - EditCustomForm - - - You have unsaved data - - - - - Ui_AmendThemeDialog - - - Outline - - - - - BibleMediaItem - - - Text Search - - - - - Ui_BibleImportWizard - - - CSV - - - - - SongUsagePlugin - - - Delete song usage to specified date - - - - - Ui_SongUsageDetailDialog - - - Report Location - - - - - Ui_BibleImportWizard - - - OpenSong - - - - - Ui_MainWindow - - - Open Service - - - - - BibleMediaItem - - - Find: - - - - - ImageMediaItem - - - Select Image(s) - - - - - BibleMediaItem - - - Search Type: - - - - - Ui_MainWindow - - - Media Manager - - - - - Alt+F4 - - - - - MediaManagerItem - - - &Preview - - - - - GeneralTab - - - CCLI Details - - - - - BibleMediaItem - - - Bible not fully loaded - - - - - Ui_MainWindow - - - Toggle the visibility of the Preview Panel - - - - - ImportWizardForm - - - Bible Exists - - - - - Ui_MainWindow - - - &User Guide - - - - - AlertsTab - - - pt - - - - - Ui_MainWindow - - - Set the interface language to English - - - - - Ui_AmendThemeDialog - - - Main Font - - - - - ImportWizardForm - - - Empty Copyright - - - - - AuthorsForm - - - You need to type in the first name of the author. - - - - - SongsTab - - - Display Verses on Live Tool bar: - - - - - ServiceManager - - - Move to top - - - - - ImageMediaItem - - - Override background - - - - - Ui_SongMaintenanceDialog - - - Edit - - - - - Ui_OpenSongExportDialog - - - Select All - - - - - ThemesTab - - - Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. - - - - - PresentationMediaItem - - - Presentation - - - - - Ui_AmendThemeDialog - - - Solid Color - - - - - CustomTab - - - Custom - - - - - Ui_OpenLPImportDialog - - - Ready to import - - - - - MainWindow - - - OpenLP version %s has been updated to version %s - -You can obtain the latest version from http://openlp.org - - - - - Ui_BibleImportWizard - - - File Location: - - - - - SlideController - - - Go to Verse - - - - - SongMaintenanceForm - - - Couldn't add your topic. - - - - - Ui_MainWindow - - - &Import - - - - - Quit OpenLP - - - - - Ui_BibleImportWizard - - - 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. - - - - - Ui_OpenLPExportDialog - - - Title - - - - - ImportWizardForm - - - Empty Version Name - - - - - Ui_MainWindow - - - &Preview Panel - - - - - SlideController - - - Start continuous loop - - - - - GeneralTab - - - primary - - - - - Ui_EditSongDialog - - - Add a Theme - - - - - Ui_MainWindow - - - &New - - - - - Ui_customEditDialog - - - Credits: - - - - - Ui_EditSongDialog - - - R&emove - - - - - SlideController - - - Live - - - - - Ui_AmendThemeDialog - - - Font Main - - - - - BiblesTab - - - continuous - - - - - ThemeManager - - - File is not a valid theme. - - - - - GeneralTab - - - Application Startup - - - - - Ui_AmendThemeDialog - - - Use Default Location: - - - - - Ui_OpenSongImportDialog - - - Import - - - - - Ui_AmendThemeDialog - - - Other Options - - - - - Ui_EditSongDialog - - - Verse Order: - - - - - Ui_MainWindow - - - Default Theme: - - - - - Toggle Preview Panel - - - - - SongMediaItem - - - Lyrics - - - - - Ui_OpenLPImportDialog - - - Progress: - - - - - Ui_AmendThemeDialog - - - Shadow - - - - - GeneralTab - - - Select monitor for output display: - - - - - Ui_MainWindow - - - &Settings - - - - - EditSongForm - - - Invalid verse entry - values must be Numeric, I,B,C,T,P,E,O - - - - - Ui_AmendThemeDialog - - - Italics - - - - - ServiceManager - - - Create a new service - - - - - Ui_AmendThemeDialog - - - Background: - - - - - Ui_OpenLPImportDialog - - - openlp.org Song Importer - - - - - Ui_BibleImportWizard - - - Copyright: - - - - - ThemesTab - - - Service level - - - - - BiblesTab - - - [ and ] - - - - - Ui_BibleImportWizard - - - Verse Location: - - - - - MediaManagerItem - - - You must select one or more items - - - - - GeneralTab - - - Application Settings - - - - - ServiceManager - - - Save this service - - - - - ImportWizardForm - - - Open Books CSV file - - - - - GeneralTab - - - SongSelect Username: - - - - - Ui_AmendThemeDialog - - - X Position: - - - - - BibleMediaItem - - - No matching book could be found in this Bible. - - - - - Ui_BibleImportWizard - - - Server: - - - - - Ui_EditVerseDialog - - - Ending - - - - - CustomTab - - - Display Footer: - - - - - ImportWizardForm - - - Invalid OpenSong Bible - - - - - GeneralTab - - - CCLI Number: - - - - - Ui_AmendThemeDialog - - - Center - - - - - ServiceManager - - - Theme: - - - - - AlertEditForm - - - Please save or clear selected item - - - - - Ui_MainWindow - - - &Live - - - - - Ui_AmendThemeDialog - - - <Color2> - - - - - Ui_MainWindow - - - English - - - - - ImageMediaItem - - - You must select one or more items - - - - - Ui_AuthorsDialog - - - First name: - - - - - Ui_OpenLPExportDialog - - - Select openlp.org export filename: - - - - - Ui_BibleImportWizard - - - Permission: - - - - - Ui_OpenSongImportDialog - - - Close - - - - - Ui_SongUsageDetailDialog - - - Song Usage Extraction - - - - - Ui_AmendThemeDialog - - - Opaque - - - - - ImportWizardForm - - - Your Bible import failed. - - - - - SlideController - - - Start playing media - - - - - SongMediaItem - - - Type: - - - - - SongMaintenanceForm - - - This book can't be deleted, it is currently assigned to at least one song. - - - - - Ui_AboutDialog - - - Close - - - - - TopicsForm - - - You need to type in a topic name! - - - - - Ui_OpenSongExportDialog - - - Song Export List - - - - - BibleMediaItem - - - Dual: - - - - - ImageTab - - - sec - - - - - ServiceManager - - - Delete From Service - - - - - GeneralTab - - - Automatically open the last service - - - - - Ui_OpenLPImportDialog - - - Song Import List - - - - - Ui_OpenSongExportDialog - - - Author - - - - - Ui_AmendThemeDialog - - - Outline Color: - - - - - Ui_BibleImportWizard - - - Select Import Source - - - - - Ui_MainWindow - - - F9 - - - - - F8 - - - - - ServiceManager - - - &Change Item Theme - - - - - Ui_SongMaintenanceDialog - - - Topics - - - - - Ui_OpenLPImportDialog - - - Import File Song List - - - - - Ui_customEditDialog - - - Edit Custom Slides - - - - - Ui_BibleImportWizard - - - Set up the Bible's license details. - - - - - Ui_EditVerseDialog - - - Number - - - - - Ui_AmendThemeDialog - - - Alignment - - - - - SongMaintenanceForm - - - Delete Book - - - - - ThemeManager - - - Edit a theme - - - - - Ui_BibleImportWizard - - - BibleGateway - - - - - GeneralTab - - - Preview Next Song from Service Manager - - - - - Ui_EditSongDialog - - - Title && Lyrics - - - - - SongMaintenanceForm - - - No book selected! - - - - - SlideController - - - Move to live - - - - - Ui_EditVerseDialog - - - Other - - - - - Ui_EditSongDialog - - - Theme - - - - - ServiceManager - - - Save Service - - - - - Ui_SongUsageDetailDialog - - - Select Date Range - - - - - Ui_MainWindow - - - Save the current service to disk - - - - - BibleMediaItem - - - Chapter: - - - - - Search - - - - - PresentationTab - - - Available Controllers - - - - - Ui_MainWindow - - - Add &Tool... - - - - - TopicsForm - - - Error - - - - - RemoteTab - - - Remotes Receiver Port - - - - - Ui_MainWindow - - - &View - - - - - Ui_AmendThemeDialog - - - Normal - - - - - Ui_OpenLPExportDialog - - - Close - - - - - Ui_BibleImportWizard - - - Username: - - - - - ThemeManager - - - Edit Theme - - - - - SlideController - - - Preview - - - - - Ui_AlertDialog - - - Alert Message - - - - - ImportWizardForm - - - Finished import. - - - - - GeneralTab - - - Show blank screen warning - - - - - ImportWizardForm - - - You need to specify a file of Bible verses to import. - - - - - AlertsTab - - - Location: - - - - - Ui_EditSongDialog - - - Authors, Topics && Book - - - - - EditSongForm - - - You need to enter some verses. - - - - - Ui_BibleImportWizard - - - Download Options - - - - - BiblePlugin - - - <strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service. - - - - - Ui_EditSongDialog - - - Copyright Information - - - - - Ui_MainWindow - - - &Export - - - - - Ui_AmendThemeDialog - - - Bold - - - - - SongsPlugin - - - Export songs in OpenLP 2.0 format - - - - - MediaManagerItem - - - Load a new - - - - - AlertEditForm - - - Missing data - - - - - SongsPlugin - - - <b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br> - - - - - Ui_AmendThemeDialog - - - Footer Font - - - - - EditSongForm - - - Invalid verse entry - vX - - - - - ServiceManager - - - OpenLP Service Files (*.osz) - - - - - MediaManagerItem - - - Delete the selected item - - - - - Ui_OpenLPExportDialog - - - Export - - - - - Ui_BibleImportWizard - - - Location: - - - - - BibleMediaItem - - - Keep - - - - - SongUsagePlugin - - - Generate report on Song Usage - - - - - Ui_EditSongDialog - - - Topic - - - - - Ui_MainWindow - - - &Open - - - - - AuthorsForm - - - You haven't set a display name for the author, would you like me to combine the first and last names for you? - - - - - AmendThemeForm - - - Slide Height is %s rows - - - - - Ui_EditSongDialog - - - Lyrics: - - - - - Ui_AboutDialog - - - Project Lead - Raoul "superfly" Snyman - -Developers - Tim "TRB143" Bentley - Jonathan "gushie" Corwin - Michael "cocooncrash" Gorven - Scott "sguerrieri" Guerrieri - Raoul "superfly" Snyman - Maikel Stuivenberg - Martin "mijiti" Thompson - Jon "Meths" Tibble - Carsten "catini" Tingaard - -Testers - Wesley "wrst" Stout - - - - - SongMediaItem - - - Titles - - - - - Ui_OpenLPExportDialog - - - Lyrics - - - - - PresentationMediaItem - - - Present using: - - - - - SongMediaItem - - - Clear - - - - - ServiceManager - - - &Live Verse - - - - - Ui_OpenSongImportDialog - - - Progress: - - - - - Ui_MainWindow - - - Toggle Theme Manager - - - - - Ui_AlertDialog - - - Alert Text: - - - - - Ui_EditSongDialog - - - Edit - - - - - AlertsTab - - - Font Color: - - - - - Ui_AmendThemeDialog - - - Theme Maintenance - - - - - CustomTab - - - Custom Display - - - - - Ui_OpenSongExportDialog - - - Title - - - - - Ui_AmendThemeDialog - - - <Color1> - - - - - Ui_EditSongDialog - - - Authors - - - - - ThemeManager - - - Export Theme - - - - - ImageMediaItem - - - No items selected... - - - - - Ui_SongBookDialog - - - Name: - - - - - Ui_AuthorsDialog - - - Author Maintenance - - - - - Ui_AmendThemeDialog - - - Font Footer - - - - - BiblesTab - - - Verse Display - - - - - Ui_MainWindow - - - &Options - - - - - BibleMediaItem - - - Results: - - - - - Ui_OpenLPExportDialog - - - Full Song List - - - - - ServiceManager - - - Move to &top - - - - - SlideController - - - Move to last - - - - - Ui_OpenLPExportDialog - - - Progress: - - - - - Ui_SongMaintenanceDialog - - - Add - - - - - SongMaintenanceForm - - - Are you sure you want to delete the selected author? - - - - - SongUsagePlugin - - - Song Usage Status - - - - - BibleMediaItem - - - Verse Search - - - - - Ui_SongBookDialog - - - Edit Book - - - - - EditSongForm - - - Save && Preview - - - - - Ui_SongBookDialog - - - Publisher: - - - - - Ui_AmendThemeDialog - - - Font Weight: - - - - - Ui_BibleImportWizard - - - Bible Filename: - - - - - Ui_AmendThemeDialog - - - Transparent - - - - - SongMediaItem - - - Search - - - - - Ui_BibleImportWizard - - - Format: - - - - - Ui_AmendThemeDialog - - - Background - - - - - Ui_BibleImportWizard - - - Importing - - - - - Ui_customEditDialog - - - Edit all slides - - - - - SongsTab - - - Enable search as you type: - - - - - Ui_MainWindow - - - Ctrl+S - - - - - SongMediaItem - - - Authors - - - - - Ui_PluginViewDialog - - - Active - - - - - SongMaintenanceForm - - - Couldn't add your author. - - - - - Ui_MainWindow - - - Ctrl+O - - - - - Ctrl+N - - - - - Ui_AlertEditDialog - - - Edit - - - - - Ui_EditSongDialog - - - Song Editor - - - - - AlertsTab - - - Font - - - - - SlideController - - - Edit and re-preview Song - - - - - Delay between slides in seconds - - - - - MediaManagerItem - - - &Edit - - - - - Ui_AmendThemeDialog - - - Vertical - - - - - Width: - - - - - ThemesTab - - - Global level - - - - - ThemeManager - - - You are unable to delete the default theme. - - - - - BibleMediaItem - - - Version: - - - - - Ui_AboutDialog - - - OpenLP <version> build <revision> - Open Source Lyrics Projection + + OpenLP <version> - Open Source Lyrics Projection OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. Find out more about OpenLP: http://openlp.org/ OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. - + - - - SongsPlugin - - OpenLP 2.0 - + + Credits + - - - ServiceManager - - New Service - + + Project Lead + Raoul "superfly" Snyman + +Developers + Tim "TRB143" Bentley + Jonathan "gushie" Corwin + Scott "sguerrieri" Guerrieri + Raoul "superfly" Snyman + Maikel Stuivenberg + Martin "mijiti" Thompson + Carsten "catini" Tingaard + +Testers + Wesley "wrst" Stout + - - - Ui_TopicsDialog - - Topic name: - + + License + + + + + Copyright © 2004-2009 Raoul Snyman +Portions copyright © 2004-2009 Tim Bentley, Jonathan Corwin, Scott Guerrieri, Maikel Stuivenberg, Martin Thompson, Carsten Tinggaard, Jon Tibble + +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. + +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 below for more details. + + +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. + - - - Ui_BibleImportWizard - - License Details - + + Contribute + - - - Ui_AboutDialog - - License - + + Close + - - - OpenSongBible - - Importing - + + &Contribute + - - - Ui_AmendThemeDialog + + + AboutForm - - Middle - + + build + - - - Ui_customEditDialog + + + AlertEditDialog - - Save - + + Maintain Alerts + - - + + + Save + + + + + Clear + + + + + Add + + + + + Edit + + + + + Delete + + + + AlertEditForm + + + AlertForm - - Item selected to Edit - + + Alert Message + - - - BibleMediaItem - - From: - + + Alert Text: + - - - Ui_AmendThemeDialog - - Shadow Color: - + + Display + - - - ServiceManager - - &Notes - + + Cancel + - - - Ui_MainWindow - - - E&xit - - - - - Ui_OpenLPImportDialog - - - Close - - - - - MainWindow - - - OpenLP Version Updated - - - - - Ui_customEditDialog - - - Replace edited slide - - - - - EditCustomForm - - - You need to enter a title - - - - - ThemeManager - - - Theme Exists - - - - - Ui_MainWindow - - - &Help - - - - - Ui_EditVerseDialog - - - Bridge - - - - - Ui_OpenSongExportDialog - - - OpenSong Song Exporter - - - - - Ui_AmendThemeDialog - - - Vertical Align: - - - - - Ui_EditVerseDialog - - - Pre-Chorus - - - - - Ui_AmendThemeDialog - - - Top - - - - - BiblesTab - - - Display Dual Bible Verses - - - - - Ui_MainWindow - - - Toggle Service Manager - - - - - Ui_EditSongDialog - - - Delete - - - - - MediaManagerItem - - - &Add to Service - - - - - AmendThemeForm - - - First Color: - - - - - ThemesTab - - - Song level - - - - - alertsPlugin - - - Show an alert message - - - - - Ui_MainWindow - - - Ctrl+F1 - - - - - SongMaintenanceForm - - - Couldn't save your topic. - - - - - Ui_MainWindow - - - Save the current service under a new name - - - - - Ui_OpenLPExportDialog - - - Remove Selected - - - - - ThemeManager - - - Delete theme - - - - - ImageTab - - - Image Settings - - - - - Ui_OpenSongImportDialog - - - OpenSong Song Importer - - - - - SongUsagePlugin - - - &Extract recorded data - - - - + + + AlertsManager + + AlertsTab - - Font Name: - - - - - Ui_MainWindow - - - &Web Site - - - - - MediaManagerItem - - - Send the selected item live - - - - - Ui_MainWindow - - - M&ode - + + pt + - - Translate the interface to your language - + + Location: + - - Service Manager - - - - - CustomMediaItem - - - Custom - - - - - Ui_BibleImportWizard - - - OSIS - - - - - SongsPlugin - - - openlp.org 1.0 - - - - - Ui_MainWindow - - - &Theme - - - - - Ui_EditVerseDialog - - - Edit Verse - - - - - Ui_MainWindow - - - &Language - - - - - ServiceManager - - - Move to end - + + Font Color: + - - Your service is unsaved, do you want to save those changes before creating a new one ? - - - - - Ui_OpenSongExportDialog - - - Remove Selected - - - - - SongMediaItem - - - Search: - - - - - MainWindow - - - Save Changes to Service? - + + Font + - - Your service has changed, do you want to save those changes? - + + Font Name: + - - - ServiceManager - - &Delete From Service - + + Preview + - - - Ui_EditSongDialog - - &Add to Song - + + Alerts + - - - Ui_MainWindow - - &About - + + Alert timeout: + - - - ImportWizardForm - - You need to specify a version name for your Bible. - + + openlp.org + - - - BiblesTab - - Only show new chapter numbers - + + Keep History: + - - - Ui_AlertEditDialog - - Delete - + + Background Color: + - - - EditCustomForm - - Error - + + s + - - - ThemesTab - - Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. - + + Bottom + - - - AlertEditForm - - Item selected to Add - + + Top + - - - Ui_AmendThemeDialog - - Right - + + Font Size: + - - - ThemeManager - - Save Theme - (%s) - + + Save + - - - MediaManagerItem - - Add the selected item(s) to the service - + + Clear + - - + + + Add + + + + + Edit + + + + + Delete + + + + + Item selected to Add + + + + + Missing data + + + + + AmendThemeDialog + + + Theme Maintance + + + + + Theme Name: + + + + + Background + + + + + Background: + + + + + Opaque + + + + + Transparent + + + + + Background Type: + + + + + Solid Color + + + + + Gradient + + + + + Image + + + + + <Color1> + + + + + <Color2> + + + + + Image: + + + + + Gradient : + + + + + Horizontal + + + + + Vertical + + + + + Circular + + + + + Font Main + + + + + Main Font + + + + + Font: + + + + + Font Color: + + + + + Size: + + + + + pt + + + + + Wrap Indentation + + + + + TextLabel + + + + + Display Location + + + + + Use Default Location: + + + + + X Position: + + + + + Y Position: + + + + + Width: + + + + + Height: + + + + + px + + + + + Font Footer + + + + + Footer Font + + + + + Other Options + + + + + Shadow && Outline + + + + + Outline Color: + + + + + Show Outline: + + + + + Shadow Color: + + + + + Show Shadow: + + + + + Alignment + + + + + Horizontal Align: + + + + + Left + + + + + Right + + + + + Center + + + + + Vertical Align: + + + + + Top + + + + + Middle + + + + + Bottom + + + + + Preview + + + + + AmendThemeForm + + + Slide Height is %s rows + + + + + First Color: + + + + + Second Color: + + + + + Background Color: + + + + + AuditDeleteDialog + + + Audit Delete + + + + + AuditDetailDialog + + + Audit Detail Extraction + + + + + Select Date Range + + + + + to + + + + + Report Location + + + + + AuthorsDialog + + + Author Maintenance + + + + + Display Name: + + + + + First Name: + + + + + Exit Screen + + + + + Last Name: + + + + AuthorsForm - - Error - + + You need to type in the first name of the author. + - - - Ui_AmendThemeDialog - - Font Color: - + + You haven't set a display name for the author, would you like me to combine the first and last names for you? + - - - Ui_OpenLPImportDialog - - Select openlp.org songfile to import: - + + Error + - - - Ui_SettingsDialog - - Settings - + + You need to type in the last name of the author. + - - - BiblesTab + + + BibleImportDialog - - Layout Style: - + + Bible Registration + - - - MediaManagerItem - - Edit the selected - + + Licence Details + - - - SlideController - - Move to next - + + Version Name: + - - - Ui_MainWindow - - &Plugin List - + + Copyright: + - - + + + Permission: + + + + + Import Progress + + + + + %p + + + + + Import + + + + + Cancel + + + + + Osis (Sword) Imports + + + + + OSIS Bible + + + + + Bible Name: + + + + + File Location: + + + + + CSV File Imports + + + + + CVS Bible + + + + + Books Location: + + + + + Verse Location: + + + + + Web Downloads + + + + + Download Options + + + + + Location: + + + + + Crosswalk + + + + + Bible: + + + + + NIV + + + + + KJV + + + + + Proxy Settings (Optional) + + + + + Proxy Address: + + + + + Username: + + + + + Password: + + + + + BibleMediaItem + + + Quick + + + + + Bible + + + + + Book: + + + + + Text Search + + + + + Find: + + + + + Search Type: + + + + + Bible not fully loaded + + + + + No matching book could be found in this Bible. + + + + + Dual: + + + + + Chapter: + + + + + Search + + + + + Keep + + + + + Results: + + + + + Verse Search + + + + + Version: + + + + + From: + + + + + No Book Found + + + + + Advanced + + + + + To: + + + + + Clear + + + + + Verse: + + + + BiblePlugin - - &Bible - + + <strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service. + - - - Ui_BibleImportWizard - - - Web Download - - - - - Ui_AmendThemeDialog - - - Horizontal - - - - - ImportWizardForm - - - Open OSIS file - - - - - Ui_AmendThemeDialog - - - Circular - - - - - PresentationMediaItem - - - Automatic - - - - - SongMaintenanceForm - - - Couldn't save your book. - - - - - Ui_AmendThemeDialog - - - pt - - - - - SongMaintenanceForm - - - Delete Topic - - - - - Ui_OpenLPImportDialog - - - Lyrics - - - - + + BiblesTab - - No brackets - - - - - Ui_AlertEditDialog - - - Maintain Alerts - - - - - Ui_AmendThemeDialog - - - px - - - - - ServiceManager - - - Select a theme for the service - - - - - ThemesTab - - - Themes - - - - - Ui_PluginViewDialog - - - Status: - - - - - Ui_EditSongDialog - - - CCLI Number: - - - - - ImportWizardForm - - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - - - Ui_MainWindow - - - &Translate - - - - - BiblesTab - - - Bibles - - - - - Ui_SongMaintenanceDialog - - - Authors - - - - - SongUsageDetailForm - - - Output File Location - - - - - BiblesTab - - - { and } - - - - - GeneralTab - - - Prompt to save Service before starting New - - - - - ImportWizardForm - - - Starting import... - - - - - BiblesTab - - - Note: -Changes don't affect verses already in the service - - - - - Ui_EditVerseDialog - - - Intro - - - - - ServiceManager - - - Move up order - - - - - PresentationTab - - - available - - - - - ThemeManager - - - default - - - - - SongMaintenanceForm - - - Delete Author - - - - - Ui_AmendThemeDialog - - - Display Location - - - - - Ui_PluginViewDialog - - - Version: - - - - - Ui_AlertEditDialog - - - Add - - - - - GeneralTab - - - General - - - - - Ui_AmendThemeDialog - - - Y Position: - - - - - ServiceManager - - - Move down order - - - - - BiblesTab - - - verse per slide - - - - - Ui_AmendThemeDialog - - - Show Shadow: - - - - - AlertsTab - - - Preview - - - - - alertsPlugin - - - <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen - - - - - GeneralTab - - - Show the splash screen - - - - - Ui_MainWindow - - - New Service - - - - - SlideController - - - Move to first - - - - - Ui_MainWindow - - - &Online Help - - - - - SlideController - - - Blank Screen - - - - - Ui_MainWindow - - - Save Service - + + ( and ) + - - Save &As... - + + verse per line + - - Toggle the visibility of the Media Manager - - - - - BibleMediaItem - - - No Book Found - - - - - Ui_EditSongDialog - - - Add - - - - - alertsPlugin - - - &Alert - - - - - BibleMediaItem - - - Advanced - - - - - ImageMediaItem - - - Image(s) - - - - - Ui_MainWindow - - - F11 - + + Display Style: + - - F10 - + + continuous + - - F12 - + + [ and ] + - - + + + Verse Display + + + + + Display Dual Bible Verses + + + + + Only show new chapter numbers + + + + + Layout Style: + + + + + No brackets + + + + + Bibles + + + + + { and } + + + + + Note: +Changes don't affect verses already in the service + + + + + verse per slide + + + + + Bible Theme: + + + + + CustomMediaItem + + + Custom + + + + CustomPlugin - - <b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br> - + + <b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br> + - - - Ui_MainWindow + + + CustomTab - - Alt+F7 - + + Custom + - - Add an application to the list of tools - + + Display Footer: + - - - MediaPlugin - - <b>Media Plugin</b><br>This plugin allows the playing of audio and video media - + + Custom Display + - - - ServiceManager - - - Move &down - - - - - BiblesTab - - - Bible Theme: - - - - - SongsPlugin - - - Export songs in openlp.org 1.0 format - - - - - Ui_MainWindow - - - Theme Manager - - - - - AlertsTab - - - Alerts - - - - - Ui_customEditDialog - - - Move slide down 1 - - - - - Ui_AmendThemeDialog - - - Font: - - - - - ServiceManager - - - Load an existing service - - - - - Ui_MainWindow - - - Toggle the visibility of the Theme Manager - - - - - PresentationTab - - - Presentations - - - - - SplashScreen - - - Starting - - - - - ImageTab - - - Slide Loop Delay: - - - - - SlideController - - - Verse - - - - - AlertsTab - - - Alert timeout: - - - - - Ui_MainWindow - - - &Preview Pane - - - - - MediaManagerItem - - - Add a new - - - - - ThemeManager - - - Select Theme Import File - - - - - New Theme - - - - - MediaMediaItem - - - Media - - - - - Ui_AmendThemeDialog - - - Preview - - - - - Outline Size: - - - - - Ui_OpenSongExportDialog - - - Progress: - - - - - AmendThemeForm - - - Second Color: - - - - - Ui_EditSongDialog - - - Theme, Copyright Info && Comments - - - - - Ui_AboutDialog - - - Credits - - - - - BibleMediaItem - - - To: - - - - - Ui_EditSongDialog - - - Song Book - - - - - Ui_OpenLPExportDialog - - - Author - - - - - Ui_AmendThemeDialog - - - Wrap Indentation - - - - - ThemeManager - - - Import a theme - - - - - ImageMediaItem - - - Image - - - - - BibleMediaItem - - - Clear - - - - - Ui_MainWindow - - - Save Service As - - - - - Ui_AlertDialog - - - Cancel - - - - - Ui_OpenLPImportDialog - - - Import - - - - - Ui_EditVerseDialog - - - Chorus - - - - - Ui_EditSongDialog - - - Edit All - - - - - AuthorsForm - - - You need to type in the last name of the author. - - - - - SongsTab - - - Songs Mode - - - - - Ui_AmendThemeDialog - - - Left - - - - - RemotesPlugin - - - <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche - - - - - ImageTab - - - Images - - - - - BibleMediaItem - - - Verse: - - - - - Ui_OpenLPExportDialog - - - openlp.org Song Exporter - - - - - Song Export List - - - - - ThemeManager - - - Export theme - - - - - Ui_SongMaintenanceDialog - - - Delete - - - - - Ui_AmendThemeDialog - - - Theme Name: - - - - - Ui_AboutDialog - - - About OpenLP - - - - - Ui_MainWindow - - - Toggle the visibility of the Service Manager - - - - - PresentationMediaItem - - - A presentation with that filename already exists. - - - - - ImageMediaItem - - - Allow the background of live slide to be overridden - - - - - SongUsageDeleteForm - - - Are you sure you want to delete selected Song Usage data? - - - - - AlertsTab - - - openlp.org - - - - - ImportWizardForm - - - Invalid Books File - - - - - Ui_OpenLPImportDialog - - - Song Title - - - - - MediaManagerItem - - - &Show Live - - - - - AlertsTab - - - Keep History: - - - - - Ui_AmendThemeDialog - - - Image: - - - - - ImportWizardForm - - - Open Verses CSV file - - - - - Ui_customEditDialog - - - Set Theme for Slides - - - - - Ui_MainWindow - - - More information about OpenLP - - - - - AlertsTab - - - Background Color: - - - - - SongMaintenanceForm - - - No topic selected! - - - - - Ui_MainWindow - - - &Media Manager - - - - - &Tools - - - - - AmendThemeForm - - - Background Color: - - - - - Ui_EditSongDialog - - - A&dd to Song - - - - - Title: - - - - - GeneralTab - - - Screen - - - - - SongMaintenanceForm - - - This topic can't be deleted, it is currently assigned to at least one song. - - - - - AlertsTab - - - s - - - - - Ui_AlertEditDialog - - - Clear - - - - - Ui_BibleImportWizard - - - Please wait while your Bible is imported. - - - - - MediaManagerItem - - - No items selected... - - - - - Ui_OpenLPImportDialog - - - Select All - - - - - Ui_BibleImportWizard - - - Select the import format, and where to import from. - - - - - Ui_OpenLPImportDialog - - - Title - - - - - Ui_OpenSongExportDialog - - - Select OpenSong song folder: - - - - - Ui_MainWindow - - - Toggle Media Manager - - - - - SongUsagePlugin - - - &Song Usage - - - - - GeneralTab - - - Monitors - - - - + + EditCustomForm - - You need to enter a slide - - - - - ThemeManager - - - You have not selected a theme. - - - - - Ui_EditVerseDialog - - - Verse Type - - - - - ImportWizardForm - - - You need to specify a file to import your Bible from. - - - - - Ui_EditSongDialog - - - Comments - - - - - AlertsTab - - - Bottom - - - - - Ui_MainWindow - - - Create a new Service - - - - - AlertsTab - - - Top - - - - - ServiceManager - - - &Preview Verse - - - - - Ui_PluginViewDialog - - - TextLabel - - - - - AlertsTab - - - Font Size: - - - - - Ui_PluginViewDialog - - - About: - + + You have unsaved data + - - Inactive - - - - - Ui_OpenSongExportDialog - - - Ready to export - + + You need to enter a title + - - Export - - - - - Ui_PluginViewDialog - - - Plugin List - - - - - Ui_AmendThemeDialog - - - Transition Active: - - - - - Ui_BibleImportWizard - - - Proxy Server (Optional) - - - - - Ui_EditSongDialog - - - &Manage Authors, Topics, Books - - - - - Ui_OpenLPExportDialog - - - Ready to export - - - - - ImageMediaItem - - - Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) - - - - - EditCustomForm - - - Save && Preview - - - - - Ui_OpenLPExportDialog - - - Select All - - - - - Ui_SongUsageDetailDialog - - - to - - - - - Ui_AmendThemeDialog - - - Size: - - - - - MainWindow - - - OpenLP Main Display Blanked - - - - - Ui_OpenLPImportDialog - - - Remove Selected - - - - - ServiceManager - - - Move &up - - - - - ImportWizardForm - - - You need to specify an OpenSong Bible file to import. - - - - - PresentationMediaItem - - - Select Presentation(s) - + + Error + - - File exists - - - - - Ui_OpenSongImportDialog - - - Ready to import - - - - - SlideController - - - Stop continuous loop - + + You need to enter a slide + - - s - + + Save && Preview + - - - ImagePlugin + + + EditSongDialog - - <b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br<br>From the plugin if the <i>Override background</i> is chosen and an image is selected any songs which are rendered will use the selected image from the background instead of the one provied by the theme.<br> - + + Song Editor + - - - SongMediaItem - - Song Maintenance - + + Title && Lyrics + - - - Ui_customEditDialog - - Edit - + + Title: + - - - Ui_AmendThemeDialog - - Gradient : - + + Alternative Title: + - - - ImportWizardForm - - Invalid Verse File - + + Lyrics: + - - + + + Verse Order: + + + + + Add + + + + + Edit + + + + + Edit All + + + + + Delete + + + + + Authors, Topics && Book + + + + + Authors + + + + + &Add to Song + + + + + &Remove + + + + + &Manage Authors, Topics, Books + + + + + Topic + + + + + A&dd to Song + + + + + R&emove + + + + + Song Book + + + + + Theme, Copyright Info && Comments + + + + + Theme + + + + + Add a Theme + + + + + Copyright Information + + + + + © + + + + + CCLI Number: + + + + + Comments + + + + EditSongForm - - Error - - - - - Ui_customEditDialog - - - Add New - - - - - Ui_AuthorsDialog - - - Display name: - - - - - SongMaintenanceForm - - - Are you sure you want to delete the selected topic? - - - - - Ui_AmendThemeDialog - - - Bold/Italics - - - - - Ui_SongMaintenanceDialog - - - Song Maintenance - - - - - Ui_BibleImportWizard - - - Welcome to the Bible Import Wizard - - - - - SongsTab - - - Songs - - - - - Ui_BibleImportWizard - - - Password: - - - - - Ui_MainWindow - - - &Theme Manager - - - - - MediaManagerItem - - - Preview the selected item - - - - - Ui_BibleImportWizard - - - Version Name: - - - - - Ui_AboutDialog - - - About - - - - - MediaMediaItem - - - Select Media - - - - - Ui_AmendThemeDialog - - - Horizontal Align: - - - - - ServiceManager - - - &Edit Item - - - - - Ui_AmendThemeDialog - - - Background Type: - - - - - Ui_MainWindow - - - &Save - + + You need to enter a song title. + - - OpenLP 2.0 - - - - - ThemeManager - - - A theme with this name already exists, would you like to overwrite it? - + + Invalid verse entry - values must be Numeric, I,B,C,T,P,E,O + - - Export a theme - - - - - AmendThemeForm - - - Open file - - - - - Ui_TopicsDialog - - - Topic Maintenance - - - - - Ui_customEditDialog - - - Clear edit area - - - - - Ui_AmendThemeDialog - - - Show Outline: - + + You need to enter some verses. + - - Gradient - + + Invalid verse entry - vX + - - - SongBookForm - - You need to type in a book name! - + + Save && Preview + - - - ImportWizardForm - - Open OpenSong Bible - + + Error + - - - Ui_MainWindow - - Look && &Feel - + + bcitped + - - - Ui_BibleImportWizard - - Ready. - + + v + - - - Ui_SongMaintenanceDialog + + + EditVerseDialog - - Books/Hymnals - + + Edit Verse + - - - Ui_AboutDialog - - Contribute - + + Verse Type + - - - ServiceManager - - Move to &bottom - + + Intro + - - - Ui_BibleImportWizard - - Books Location: - + + Verse + - - - Ui_OpenSongExportDialog - - Full Song List - + + Pre-Chorus + - - + + + Chorus + + + + + Bridge + + + + + Ending + + + + + Other + + + + + Number + + + + + EditVerseForm + + + Intro + + + + + Ending + + + + + Other + + + + + Pre-Chorus + + + + + Bridge + + + + + Chorus + + + + + Verse + + + + GeneralTab - - SongSelect Password: - + + CCLI Details + - + + + primary + + + + + Application Startup + + + + + Select monitor for output display: + + + + + Application Settings + + + + + SongSelect Username: + + + + + CCLI Number: + + + + + Automatically open the last service + + + + + Preview Next Song from Service Manager + + + + + Show blank screen warning + + + + + Prompt to save Service before starting New + + + + + General + + + + + Show the splash screen + + + + + Screen + + + + + Monitors + + + + + SongSelect Password: + + + + + ImageMediaItem + + + Select Image(s) + + + + + Image(s) + + + + + Image + + + + + Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) + + + + + Replace Live Background + + + + + No item selected + + + + + You must select one item + + + + + ImagePlugin + + + <b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br<br>From the plugin if the <i>Override background</i> is chosen and an image is selected any songs which are rendered will use the selected image from the background instead of the one provied by the theme.<br> + + + + + ImageTab + + + sec + + + + + Image Settings + + + + + Slide Loop Delay: + + + + + Images + + + + + ImportWizardForm + + + You need to specify a file with books of the Bible to use in the import. + + + + + Invalid Bible Location + + + + + You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. + + + + + Bible Exists + + + + + Empty Copyright + + + + + Empty Version Name + + + + + Invalid OpenSong Bible + + + + + Your Bible import failed. + + + + + Finished import. + + + + + You need to specify a file of Bible verses to import. + + + + + You need to specify a version name for your Bible. + + + + + This Bible already exists! Please import a different Bible or first delete the existing one. + + + + + Starting import... + + + + + Invalid Books File + + + + + You need to specify a file to import your Bible from. + + + + + You need to specify an OpenSong Bible file to import. + + + + + Invalid Verse File + + + + + Open OpenSong Bible + + + + + Open OSIS File + + + + + Open Books CSV File + + + + + Open Verses CSV File + + + + + MainWindow + + + The Main Display has been blanked out + + + + + OpenLP Version Updated + + + + + Save Changes to Service? + + + + + Your service has changed, do you want to save those changes? + + + + + OpenLP Main Display Blanked + + + + + openlp.org 2.0 + + + + + &File + + + + + &Import + + + + + &Song + + + + + &Export + + + + + &Options + + + + + &View + + + + + M&ode + + + + + &Language + + + + + &Tools + + + + + &Help + + + + + Media Manager + + + + + Songs + + + + + Add a new song + + + + + New Song + + + + + Edit the current song + + + + + Edit Song + + + + + Delete the currently selected song(s) + + + + + Delete Song + + + + + Preview the selected song + + + + + Send to Preview + + + + + Send the selected song to live + + + + + Send to Live + + + + + Add the currently selected song(s) to the service + + + + + Add to Service + + + + + Bible Verses + + + + + Preview selected verse(s) + + + + + Send selected verse(s) to live + + + + + Add selected verse(s) to service + + + + + Version: + + + + + Reference: + + + + + Search + + + + + Custom Slides + + + + + Add a new custom slide + + + + + New Custom Slide + + + + + Edit selected slide + + + + + Edit Custom Slide + + + + + Delete selected slide(s) + + + + + Delete Custom Slide + + + + + Preview selected slide + + + + + Preview Custom Slide + + + + + Send selected slide to live + + + + + Send Live + + + + + Add selected slide(s) to service + + + + + Add To Service + + + + + Presentations + + + + + Load a presentation + + + + + Load Video + + + + + Remove selected presentation(s) + + + + + RI + + + + + Send selected presentation to live + + + + + Add selected presentation(s) to service + + + + + Videos + + + + + Load a video + + + + + Delete the selected video(s) + + + + + Send the selected video to live + + + + + Add selected video(s) to service + + + + + Images + + + + + Load image(s) + + + + + Load Image + + + + + Remove selected image(s) + + + + + Delete Image + + + + + Send selected image to live + + + + + Add selected image(s) to service + + + + + Service Manager + + + + + Move selected item(s) to the top + + + + + Move To Top + + + + + Move selected item(s) up one position + + + + + Move Up + + + + + Move selected item(s) down one position + + + + + Move Down + + + + + Move selected item(s) to the bottom + + + + + Move To Bottom + + + + + Create new service + + + + + New Service + + + + + Open an existing service + + + + + Open Service + + + + + Save current service + + + + + Save Service + + + + + Theme Manager + + + + + Create a new theme + + + + + New Theme + + + + + Edit selected theme + + + + + Edit Theme + + + + + Delete selected theme(s) + + + + + Delete Theme + + + + + Import theme(s) + + + + + Import Theme + + + + + Export selected theme(s) + + + + + Export Theme + + + + + &New + + + + + Create a new Service + + + + + Ctrl+N + + + + + &Open + + + + + Ctrl+O + + + + + &Save + + + + + Save the current service to disk + + + + + Ctrl+S + + + + + Save &As... + + + + + Save Service As + + + + + Save the current service under a new name + + + + + F12 + + + + + E&xit + + + + + Quit OpenLP 2.0 + + + + + Alt+F4 + + + + + &Bible + + + + + &Theme + + + + + Look && &Feel + + + + + &Settings + + + + + &Media Manager + + + + + Toggle Media Manager + + + + + Toggle the visibility of the Media Manager + + + + + F8 + + + + + &Theme Manager + + + + + Toggle Theme Manager + + + + + Toggle the visibility of the Theme Manager + + + + + F10 + + + + + &Service Manager + + + + + Toggle Service Manager + + + + + Toggle the visibility of the Service Manager + + + + + F9 + + + + + &Alert + + + + + Show an alert message + + + + + F7 + + + + + &User Guide + + + + + &About + + + + + More information about OpenLP + + + + + Ctrl+F1 + + + + + &Online Help + + + + + &Web Site + + + + + OpenSong + + + + + openlp.org 1.0 + + + + + Export songs in openlp.org 1.0 format + + + + + OpenLP 2.0 + + + + + Export songs in OpenLP 2.0 format + + + + + &Translate + + + + + Translate the interface to your language + + + + + English + + + + + Set the interface language to English + + + + + &Add Tool... + + + + + Add an application to the list of tools + + + + + &Preview Pane + + + + + &Live + + + + + Version %s of OpenLP is now available for download (you are currently running version %s). +You can download the latest version from http://openlp.org + + + + + MediaManagerItem + + + &Preview + + + + + You must select one or more items + + + + + Load a new + + + + + Delete the selected item + + + + + &Edit + + + + + &Add to Service + + + + + Send the selected item live + + + + + Add the selected item(s) to the service + + + + + Edit the selected + + + + + Add a new + + + + + &Show Live + + + + + Preview the selected item + + + + + Import a + + + + + &Delete + + + + + &Add to selected Service Item + + + + + No Items Selected + + + + + You must select one or more items. + + + + + No items selected + + + + + No Service Item Selected + + + + + You must select a existing service item to add to. + + + + + Invalid Service Item + + + + + MediaMediaItem + + + Media + + + + + Select Media + + + + + Videos (%s);;Audio (%s);;All files (*) + + + + + MediaPlugin + + + <b>Media Plugin</b><br>This plugin allows the playing of audio and video media + + + + + OpenLPExportDialog + + + openlp.org Song Exporter + + + + + Select openlp.org export filename: + + + + + Full Song List + + + + + Song Title + + + + + Author + + + + + Select All + + + + + Lyrics + + + + + Title + + + + + Song Export List + + + + + Remove Selected + + + + + Progress: + + + + + Ready to export + + + + + Export + + + + + Close + + + + + OpenLPImportDialog + + + openlp.org Song Importer + + + + + Select openlp.org songfile to import: + + + + + Import File Song List + + + + + Song Title + + + + + Author + + + + + Select All + + + + + Lyrics + + + + + Title + + + + + Song Import List + + + + + Remove Selected + + + + + Progress: + + + + + Ready to import + + + + + Import + + + + + Close + + + + + OpenSongBible + + + Importing + + + + + OpenSongExportDialog + + + OpenSong Song Exporter + + + + + Select OpenSong song folder: + + + + + Full Song List + + + + + Song Title + + + + + Author + + + + + Select All + + + + + Lyrics + + + + + Title + + + + + Song Export List + + + + + Remove Selected + + + + + Progress: + + + + + Ready to export + + + + + Export + + + + + Close + + + + + OpenSongImportDialog + + + OpenSong Song Importer + + + + + OpenSong Folder: + + + + + Progress: + + + + + Ready to import + + + + + Import + + + + + Close + + + + + PluginViewDialog + + + Plugin list + + + + + Plugin Details + + + + + Version: + + + + + TextLabel + + + + + About: + + + + + Status: + + + + + Disabled + + + + + Inactive + + + + + Active + + + + + PresentationMediaItem + + + Presentation + + + + + Present using: + + + + + Automatic + + + + + A presentation with that filename already exists. + + + + + Select Presentation(s) + + + + + File exists + + + + + Presentations (%s) + + + + + PresentationPlugin + + + <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. + + + + + PresentationTab + + + Available Controllers + + + + + available + + + + + Presentations + + + + + RemoteTab + + + Remotes + + + + + Remotes Receiver Port + + + + + RemotesPlugin + + + <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche + + + + + ServiceItemEditDialog + + + Service Item Maintenance + + + + + Up + + + + + Delete + + + + + Down + + + + + ServiceManager + + + Save Changes to Service? + + + + + Open Service + + + + + Move to top + + + + + Create a new service + + + + + Save this service + + + + + Theme: + + + + + Delete From Service + + + + + Save Service + + + + + &Live Verse + + + + + Move to &top + + + + + New Service + + + + + &Notes + + + + + Move to end + + + + + Your service is unsaved, do you want to save those changes before creating a new one ? + + + + + &Delete From Service + + + + + Move up order + + + + + Move down order + + + + + Move &down + + + + + Load an existing service + + + + + &Preview Verse + + + + + Move &up + + + + + &Edit Item + + + + + Move to &bottom + + + + + &Maintain Item + + + + + ServiceNoteEdit + + + Service Item Notes + + + + + SettingsDialog + + + Settings + + + + + General + + + + + Monitors + + + + + Select monitor for output display: + + + + + Monitor 1 on X11 Windowing System + + + + + Monitor 2 on X11 Windowing System + + + + + Blank Screen + + + + + Show warning on startup + + + + + Auto Open Last Service + + + + + Automatically open the last service at startup + + + + + CCLI Details + + + + + CCLI Number: + + + + + SongSelect Username: + + + + + SongSelect Password: + + + + + Themes + + + + + Global theme + + + + + African Sunset + + + + + Snowy Mountains + + + + + Wilderness + + + + + Theme level + + + + + Song level + + + + + Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. + + + + + Service level + + + + + Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. + + + + + Global level + + + + + Use the global theme, overriding any themes associated with either the service or the songs. + + + + + Alerts + + + + + Font + + + + + Font Name: + + + + + Font Color: + + + + + Background Color: + + + + + Display length: + + + + + s + + + + + Preview + + + + + SlideController + + + Move to previous + + + + + Go to Verse + + + + + Start continuous loop + + + + + Live + + + + + Start playing media + + + + + Move to live + + + + + Preview + + + + + Move to last + + + + + Edit and re-preview Song + + + + + Delay between slides in seconds + + + + + Move to next + + + + + Move to first + + + + + Blank Screen + + + + + Verse + + + + + Stop continuous loop + + + + + s + + + + + Theme Screen + + + + + Hide Screen + + + + + SongBookDialog + + + Book Song Maintenance + + + + + Name: + + + + + Publisher: + + + + + SongBookForm + + + Error + + + + + You need to type in a book name! + + + + + SongExportDialog + + + Dialog + + + + + Available Songs + + + + + Select All + + + + + Select Songs + + + + + Deselect Songs + + + + + Selected Songs + + + + + OpenLyric Format + + + + + Text File + + + + + SongMaintenanceDialog + + + Song Maintenance + + + + + New Row + + + + + Types + + + + + +Authors + + + + + +Topics + + + + + +Books/Hymnals + + + + + Add + + + + + Edit + + + + + Delete + + + + + SongMaintenanceForm + + + Are you sure you want to delete the selected book? + + + + + Couldn't save your author. + + + + + This author can't be deleted, they are currently assigned to at least one song. + + + + + Couldn't add your book. + + + + + Error + + + + + No author selected! + + + + + Couldn't add your topic. + + + + + This book can't be deleted, it is currently assigned to at least one song. + + + + + Delete Book + + + + + No book selected! + + + + + Are you sure you want to delete the selected author? + + + + + Couldn't add your author. + + + + + Couldn't save your topic. + + + + + Couldn't save your book. + + + + + Delete Topic + + + + + Delete Author + + + + + No topic selected! + + + + + This topic can't be deleted, it is currently assigned to at least one song. + + + + + Are you sure you want to delete the selected topic? + + + + + SongMediaItem + + + CCLI Licence: + + + + + Song + + + + + Maintain the lists of authors, topics and books + + + + + Lyrics + + + + + Type: + + + + + Titles + + + + + Clear + + + + + Search + + + + + Authors + + + + + Search: + + + + + Song Maintenance + + + + + %s (%s) + + + + + SongUsageDeleteForm + + + Delete Selected Song Usage Events? + + + + + Are you sure you want to delete selected Song Usage data? + + + + + SongUsageDetailForm + + + Output File Location + + + + + SongUsagePlugin + + + <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service + + + + + SongsPlugin + + + <b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br> + + + + + SongsTab + + + Display Verses on Live Tool bar: + + + + + Enable search as you type: + + + + + Songs Mode + + + + + Songs + + + + + SplashScreen + + + Splash Screen + + + + + ThemeManager + + + Import Theme + + + + + Create a new theme + + + + + Delete Theme + + + + + Error + + + + + Make Global + + + + + Delete a theme + + + + + File is not a valid theme. + + + + + Edit a theme + + + + + Edit Theme + + + + + Export Theme + + + + + You are unable to delete the default theme. + + + + + Theme Exists + + + + + Delete theme + + + + + Save Theme - (%s) + + + + + default + + + + + Select Theme Import File + + + + + New Theme + + + + + Import a theme + + + + + Export theme + + + + + You have not selected a theme. + + + + + A theme with this name already exists, would you like to overwrite it? + + + + + Export a theme + + + + + Theme %s is use in %s plugin + + + + + Theme %s is use by Service Manager + + + + + ThemeWizard + + + Theme Wizard + + + + + Welcome + + + + + Welcome to the Theme Wizard. This wizard will guide you through the process of creating a new theme. + + + + + Theme Name + + + + + Choose a name for your theme + + + + + Theme Name: + + + + + Select Background + + + + + Select a background type and configure your background + + + + + ThemesTab + + + Theme level + + + + + Global theme + + + + + Use the global theme, overriding any themes associated with either the service or the songs. + + + + + Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. + + + + + Service level + + + + + Global level + + + + + Song level + + + + + Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. + + + + + Themes + + + + + TopicsDialog + + + Topic Maintenance + + + + + Topic Name: + + + + + TopicsForm + + + You need to type in a topic name! + + + + + Error + + + + + Ui_AboutDialog + + + Close + + + + + License + + + + + Credits + + + + + About OpenLP + + + + + About + + + + + Contribute + + + + + OpenLP <version><revision> - Open Source Lyrics Projection + +OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. + +Find out more about OpenLP: http://openlp.org/ + +OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. + + + + + Project Lead + Raoul "superfly" Snyman + +Developers + Tim "TRB143" Bentley + Jonathan "gushie" Corwin + Michael "cocooncrash" Gorven + Scott "sguerrieri" Guerrieri + Raoul "superfly" Snyman + Martin "mijiti" Thompson + Jon "Meths" Tibble + +Contributors + Meinert "m2j" Jordan + Christian "crichter" Richter + Maikel Stuivenberg + Carsten "catini" Tingaard + +Testers + Philip "Phill" Ridout + Wesley "wrst" Stout (lead) + +Packagers + Thomas "tabthorpe" Abthorpe (FreeBSD) + Tim "TRB143" Bentley (Fedora) + Michael "cocooncrash" Gorven (Ubuntu) + Matthias "matthub" Hub (Mac OS X) + Raoul "superfly" Snyman (Windows) + + + + + + Copyright + + + + + Ui_AlertDialog + + + Display + + + + + Alert Message + + + + + Alert Text: + + + + + Cancel + + + + + Ui_AlertEditDialog + + + Ui_AmendThemeDialog + + + Shadow Size: + + + + + Slide Transition + + + + + Bottom + + + + + Image + + + + + Height: + + + + + Outline + + + + + Main Font + + + + + Solid Color + + + + + Font Main + + + + + Use Default Location: + + + + + Other Options + + + + + Shadow + + + + + Italics + + + + + Background: + + + + + X Position: + + + + + Center + + + + + <Color2> + + + + + Opaque + + + + + Outline Color: + + + + + Alignment + + + + + Normal + + + + + Bold + + + + + Footer Font + + + + + Theme Maintenance + + + + + <Color1> + + + + + Font Footer + + + + + Font Weight: + + + + + Transparent + + + + + Background + + + + + Vertical + + + + + Width: + + + + + Middle + + + + + Shadow Color: + + + + + Vertical Align: + + + + + Top + + + + + Right + + + + + Font Color: + + + + + Horizontal + + + + + Circular + + + + + pt + + + + + px + + + + + Display Location + + + + + Y Position: + + + + + Show Shadow: + + + + + Font: + + + + + Preview + + + + + Outline Size: + + + + + Wrap Indentation + + + + + Left + + + + + Theme Name: + + + + + Image: + + + + + Transition Active: + + + + + Size: + + + + + Gradient : + + + + + Bold/Italics + + + + + Horizontal Align: + + + + + Background Type: + + + + + Show Outline: + + + + + Gradient + + + + + Ui_AuthorsDialog + + + Last name: + + + + + First name: + + + + + Author Maintenance + + + + + Display name: + + + + + Ui_BibleImportWizard + + + Bible Import Wizard + + + + + Bible: + + + + + Crosswalk + + + + + CSV + + + + + OpenSong + + + + + File Location: + + + + + 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. + + + + + Copyright: + + + + + Verse Location: + + + + + Server: + + + + + Permission: + + + + + Select Import Source + + + + + Set up the Bible's license details. + + + + + BibleGateway + + + + + Username: + + + + + Download Options + + + + + Location: + + + + + Bible Filename: + + + + + Format: + + + + + Importing + + + + + License Details + + + + + OSIS + + + + + Web Download + + + + + Please wait while your Bible is imported. + + + + + Select the import format, and where to import from. + + + + + Proxy Server (Optional) + + + + + Welcome to the Bible Import Wizard + + + + + Password: + + + + + Version Name: + + + + + Ready. + + + + + Books Location: + + + + + Ui_EditSongDialog + + + &Remove + + + + + Alternative Title: + + + + + Add a Theme + + + + + R&emove + + + + + Verse Order: + + + + + Title && Lyrics + + + + + Theme + + + + + Authors, Topics && Book + + + + + Copyright Information + + + + + Topic + + + + + Lyrics: + + + + + Edit + + + + + Authors + + + + + Song Editor + + + + + Delete + + + + + &Add to Song + + + + + CCLI Number: + + + + + Add + + + + + Theme, Copyright Info && Comments + + + + + Song Book + + + + + Edit All + + + + + A&dd to Song + + + + + Title: + + + + + Comments + + + + + &Manage Authors, Topics, Books + + + + + Ui_EditVerseDialog + + + Verse + + + + + Ending + + + + + Number + + + + + Other + + + + + Bridge + + + + + Pre-Chorus + + + + + Edit Verse + + + + + Intro + + + + + Chorus + + + + + Verse Type + + + + + Ui_MainWindow + + + Open an existing service + + + + + &File + + + + + List the Plugins + + + + + &Service Manager + + + + + Open Service + + + + + Media Manager + + + + + Alt+F4 + + + + + Toggle the visibility of the Preview Panel + + + + + &User Guide + + + + + Set the interface language to English + + + + + &Import + + + + + Quit OpenLP + + + + + &Preview Panel + + + + + &New + + + + + Default Theme: + + + + + Toggle Preview Panel + + + + + &Settings + + + + + &Live + + + + + English + + + + + F9 + + + + + F8 + + + + + Save the current service to disk + + + + + Add &Tool... + + + + + &View + + + + + &Export + + + + + &Open + + + + + Toggle Theme Manager + + + + + &Options + + + + + Ctrl+S + + + + + Ctrl+O + + + + + Ctrl+N + + + + + E&xit + + + + + &Help + + + + + Toggle Service Manager + + + + + Ctrl+F1 + + + + + Save the current service under a new name + + + + + &Web Site + + + + + M&ode + + + + + Translate the interface to your language + + + + + Service Manager + + + + + &Theme + + + + + &Language + + + + + &About + + + + + &Plugin List + + + + + &Translate + + + + + New Service + + + + + &Online Help + + + + + Save Service + + + + + Save &As... + + + + + Toggle the visibility of the Media Manager + + + + + F11 + + + + + F10 + + + + + F12 + + + + + Alt+F7 + + + + + Add an application to the list of tools + + + + + Theme Manager + + + + + Toggle the visibility of the Theme Manager + + + + + &Preview Pane + + + + + Save Service As + + + + + Toggle the visibility of the Service Manager + + + + + More information about OpenLP + + + + + &Media Manager + + + + + &Tools + + + + + Toggle Media Manager + + + + + Create a new Service + + + + + &Theme Manager + + + + + &Save + + + + + OpenLP 2.0 + + + + + Look && &Feel + + + + + Ui_OpenLPExportDialog + + + Song Title + + + + + Title + + + + + Select openlp.org export filename: + + + + + Close + + + + + Export + + + + + Lyrics + + + + + Full Song List + + + + + Progress: + + + + + Remove Selected + + + + + Author + + + + + openlp.org Song Exporter + + + + + Song Export List + + + + + Ready to export + + + + + Select All + + + + + Ui_OpenLPImportDialog + + + Author + + + + + Ready to import + + + + + Progress: + + + + + openlp.org Song Importer + + + + + Song Import List + + + + + Import File Song List + + + + + Close + + + + + Select openlp.org songfile to import: + + + + + Lyrics + + + + + Import + + + + + Song Title + + + + + Select All + + + + + Title + + + + + Remove Selected + + + + + Ui_OpenSongExportDialog + + + Close + + + + + Lyrics + + + + + Song Title + + + + + Select All + + + + + Song Export List + + + + + Author + + + + + Title + + + + + OpenSong Song Exporter + + + + + Remove Selected + + + + + Progress: + + + + + Select OpenSong song folder: + + + + + Ready to export + + + + + Export + + + + + Full Song List + + + + + Ui_OpenSongImportDialog + + + OpenSong Folder: + + + + + Import + + + + + Close + + + + + Progress: + + + + + OpenSong Song Importer + + + + + Ready to import + + + + + Ui_PluginViewDialog + + + Plugin Details + + + + + Active + + + + + Status: + + + + + Version: + + + + + TextLabel + + + + + About: + + + + + Inactive + + + + + Plugin List + + + + + Ui_ServiceItemEditDialog + + + Service Item Maintenance + + + + + Up + + + + + Delete + + + + + Down + + + + + Ui_ServiceNoteEdit + + + Service Item Notes + + + + + Ui_SettingsDialog + + + Settings + + + + + Ui_SongBookDialog + + + Name: + + + + + Edit Book + + + + + Publisher: + + + + + Ui_SongMaintenanceDialog + + + Edit + + + + + Topics + + + + + Add + + + + + Authors + + + + + Delete + + + + + Song Maintenance + + + + + Books/Hymnals + + + + + Ui_SongUsageDeleteDialog + + + Song Usage Delete + + + + + Ui_SongUsageDetailDialog + + + Report Location + + + + + Song Usage Extraction + + + + + Select Date Range + + + + + to + + + + + Ui_TopicsDialog + + + Topic name: + + + + + Topic Maintenance + + + + + Ui_customEditDialog + + + Delete selected slide + + + + + Edit selected slide + + + + + Edit All + + + + + Add new slide at bottom + + + + + Clear + + + + + Delete + + + + + Theme: + + + + + Move slide Up 1 + + + + + Title: + + + + + Credits: + + + + + Edit Custom Slides + + + + + Edit all slides + + + + + Save + + + + + Replace edited slide + + + + + Move slide down 1 + + + + + Set Theme for Slides + + + + + Edit + + + + + Add New + + + + + Clear edit area + + + + + Wizard + + + Bible Import Wizard + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body > +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:600;">Welcome to the Bible Import Wizard</span></p></body></html> + + + + + 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. + + + + + Select Import Source + + + + + Select the import format, and where to import from. + + + + + Format: + + + + + OSIS + + + + + CSV + + + + + OpenSong + + + + + Web Download + + + + + Bible Name: + + + + + File Location: + + + + + Books Location: + + + + + Verse Location: + + + + + Bible Filename: + + + + + Download Options + + + + + Location: + + + + + Crosswalk + + + + + Bible: + + + + + English Standard Version + + + + + King James Version + + + + + New International Version + + + + + Proxy Server (Optional) + + + + + Server: + + + + + Username: + + + + + Password: + + + + + License Details + + + + + Set up the Bible's license details. + + + + + Version Name: + + + + + Copyright: + + + + + Permission: + + + + + Importing + + + + + Please wait while your Bible is imported. + + + + + Ready. + + + + + %p + + + + + alertsPlugin + + + Show an alert message + + + + + <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen + + + + + &Alert + + + + + customEditDialog + + + Edit Custom Slides + + + + + Title: + + + + + Add New + + + + + Edit + + + + + Edit All + + + + + Save + + + + + Delete + + + + + Clear + + + + + Theme: + + + + + Credits: + + + + + export_menu + + + &Bible + + + + + &Song + + + + + OpenSong + + + + + openlp.org 1.0 + + + + + OpenLP 2.0 + + + + + import_menu + + + &Bible + + + + + &Song + + + + + OpenSong + + + + + openlp.org 1.0 + + + + + Export songs in openlp.org 1.0 format + + + + + OpenLP 2.0 + + + + + Export songs in OpenLP 2.0 format + + + + + self.splash_screen + + + Starting + + + + + Splash Screen + + + + + tools_menu + + + &Song Usage + + + + + &Delete recorded data + + + + + Delete song usage to specified date + + + + + &Extract recorded data + + + + + Generate report on Song Usage + + + + + Song Usage Status + + + + + Start/Stop live song usage recording + + + diff --git a/scripts/generate_pro.py b/scripts/generate_pro.py new file mode 100755 index 000000000..6d0a371d4 --- /dev/null +++ b/scripts/generate_pro.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2010 Raoul Snyman # +# Portions copyright (c) 2008-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. # +# # +# 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., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### +# Short description +# Steps for creating languages: +# 1. create an empty ts file for the wished translation in ./resources/i18n folder +# 2. go to scripts folder and start: +# python generate_pro.py +# 3. go to main folder and start: +# pylupdate4 openlp.pro +# 4. do all the translation stuff at the related *.ts files (install first qt3-dev-tools) +# 5. at main folder start: +# lrelease -verbose openlp.pro +############################################################################### + +import os + +ignore_pathes = ["./scripts", "./openlp/core/test"] +ignore_files = ["setup.py"] + +def write_file(filename, stringlist): + content = u'' + for line in stringlist: + content = u'%s%s\n' % (content, line) + file = open(filename, u'w') + file.write(content.encode('utf8')) + file.close() + +def main(): + stringlist = [] + start_dir = os.path.join(u'..') + for root, dirs, files in os.walk(start_dir): + for file in files: + path = "%s" % root + path = path.replace("\\","/") + path = path.replace("..",".") + + if file.startswith(u'hook-') or file.startswith(u'test_'): + continue + + cond = False + for search in ignore_pathes: + if path.startswith(search): + cond = True + if cond == True: + continue + cond = False + for search in ignore_files: + if search == file: + cond = True + if cond == True: + continue + + if file.endswith(u'.ui'): + line = "%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append("FORMS += %s" % line) + elif file.endswith(u'.py'): + line = "%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append("SOURCES += %s" % line) + elif file.endswith(u'.pyw'): + line = "%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append("SOURCES += %s" % line) + elif file.endswith(u'.ts'): + line = "%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append("TRANSLATIONS += %s" % line) + + print u'Generating PRO file...', + stringlist.sort() + write_file(os.path.join(start_dir, u'openlp.pro'), stringlist) + print u'done.' + +if __name__ == u'__main__': + if os.path.split(os.path.abspath(u'.'))[1] != u'scripts': + print u'You need to run this script from the scripts directory.' + else: + main() From 3eadf1c7d5ab1c7c4ead0e01bf9a5670ae3f1e0c Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 2 Apr 2010 00:03:29 +0200 Subject: [PATCH 02/22] Head --- resources/i18n/openlp_en.ts | 5626 ++++++++++------------------------- scripts/generate_pro.py | 10 +- 2 files changed, 1549 insertions(+), 4087 deletions(-) diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index b92f28c37..425c8cbb6 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -1,207 +1,5 @@ - - AboutDialog - - - About OpenLP - - - - - About - - - - - OpenLP <version> - Open Source Lyrics Projection - -OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. - -Find out more about OpenLP: http://openlp.org/ - -OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. - - - - - Credits - - - - - Project Lead - Raoul "superfly" Snyman - -Developers - Tim "TRB143" Bentley - Jonathan "gushie" Corwin - Scott "sguerrieri" Guerrieri - Raoul "superfly" Snyman - Maikel Stuivenberg - Martin "mijiti" Thompson - Carsten "catini" Tingaard - -Testers - Wesley "wrst" Stout - - - - - License - - - - - Copyright © 2004-2009 Raoul Snyman -Portions copyright © 2004-2009 Tim Bentley, Jonathan Corwin, Scott Guerrieri, Maikel Stuivenberg, Martin Thompson, Carsten Tinggaard, Jon Tibble - -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. - -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 below for more details. - - -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. - - - - - Contribute - - - - - Close - - - - - &Contribute - - - AboutForm @@ -210,83 +8,11 @@ This General Public License does not permit incorporating your program into prop - - AlertEditDialog - - - Maintain Alerts - - - - - Save - - - - - Clear - - - - - Add - - - - - Edit - - - - - Delete - - - - - AlertEditForm - - - AlertForm - - - Alert Message - - - - - Alert Text: - - - - - Display - - - - - Cancel - - - - - AlertsManager - AlertsTab - - pt - - - - - Location: - - - - - Font Color: + + Alerts @@ -300,28 +26,8 @@ This General Public License does not permit incorporating your program into prop - - Preview - - - - - Alerts - - - - - Alert timeout: - - - - - openlp.org - - - - - Keep History: + + Font Color: @@ -329,14 +35,44 @@ This General Public License does not permit incorporating your program into prop Background Color: + + + Font Size: + + + + + pt + + + + + Alert timeout: + + s - - Bottom + + Location: + + + + + Keep History: + + + + + Preview + + + + + openlp.org @@ -345,8 +81,8 @@ This General Public License does not permit incorporating your program into prop - - Font Size: + + Bottom @@ -385,264 +121,11 @@ This General Public License does not permit incorporating your program into prop - - AmendThemeDialog - - - Theme Maintance - - - - - Theme Name: - - - - - Background - - - - - Background: - - - - - Opaque - - - - - Transparent - - - - - Background Type: - - - - - Solid Color - - - - - Gradient - - - - - Image - - - - - <Color1> - - - - - <Color2> - - - - - Image: - - - - - Gradient : - - - - - Horizontal - - - - - Vertical - - - - - Circular - - - - - Font Main - - - - - Main Font - - - - - Font: - - - - - Font Color: - - - - - Size: - - - - - pt - - - - - Wrap Indentation - - - - - TextLabel - - - - - Display Location - - - - - Use Default Location: - - - - - X Position: - - - - - Y Position: - - - - - Width: - - - - - Height: - - - - - px - - - - - Font Footer - - - - - Footer Font - - - - - Other Options - - - - - Shadow && Outline - - - - - Outline Color: - - - - - Show Outline: - - - - - Shadow Color: - - - - - Show Shadow: - - - - - Alignment - - - - - Horizontal Align: - - - - - Left - - - - - Right - - - - - Center - - - - - Vertical Align: - - - - - Top - - - - - Middle - - - - - Bottom - - - - - Preview - - - AmendThemeForm - - Slide Height is %s rows + + Background Color: @@ -656,321 +139,44 @@ This General Public License does not permit incorporating your program into prop - - Background Color: - - - - - AuditDeleteDialog - - - Audit Delete - - - - - AuditDetailDialog - - - Audit Detail Extraction - - - - - Select Date Range - - - - - to - - - - - Report Location - - - - - AuthorsDialog - - - Author Maintenance - - - - - Display Name: - - - - - First Name: - - - - - Exit Screen - - - - - Last Name: + + Slide Height is %s rows AuthorsForm - - - You need to type in the first name of the author. - - - - - You haven't set a display name for the author, would you like me to combine the first and last names for you? - - Error + + + You need to type in the first name of the author. + + You need to type in the last name of the author. - - - BibleImportDialog - - Bible Registration - - - - - Licence Details - - - - - Version Name: - - - - - Copyright: - - - - - Permission: - - - - - Import Progress - - - - - %p - - - - - Import - - - - - Cancel - - - - - Osis (Sword) Imports - - - - - OSIS Bible - - - - - Bible Name: - - - - - File Location: - - - - - CSV File Imports - - - - - CVS Bible - - - - - Books Location: - - - - - Verse Location: - - - - - Web Downloads - - - - - Download Options - - - - - Location: - - - - - Crosswalk - - - - - Bible: - - - - - NIV - - - - - KJV - - - - - Proxy Settings (Optional) - - - - - Proxy Address: - - - - - Username: - - - - - Password: + + You haven't set a display name for the author, would you like me to combine the first and last names for you? BibleMediaItem - - - Quick - - Bible - - Book: - - - - - Text Search - - - - - Find: - - - - - Search Type: - - - - - Bible not fully loaded - - - - - No matching book could be found in this Bible. - - - - - Dual: - - - - - Chapter: - - - - - Search - - - - - Keep - - - - - Results: - - - - - Verse Search - - - - - Version: - - - - - From: - - - - - No Book Found + + Quick @@ -978,19 +184,94 @@ This General Public License does not permit incorporating your program into prop Advanced + + + Version: + + + + + Dual: + + + + + Search Type: + + + + + Find: + + + + + Search + + + + + Results: + + + + + Book: + + + + + Chapter: + + + + + Verse: + + + + + From: + + To: + + + Verse Search + + + + + Text Search + + Clear - - Verse: + + Keep + + + + + No Book Found + + + + + No matching book could be found in this Bible. + + + + + Bible not fully loaded @@ -1005,28 +286,8 @@ This General Public License does not permit incorporating your program into prop BiblesTab - - ( and ) - - - - - verse per line - - - - - Display Style: - - - - - continuous - - - - - [ and ] + + Bibles @@ -1034,11 +295,6 @@ This General Public License does not permit incorporating your program into prop Verse Display - - - Display Dual Bible Verses - - Only show new chapter numbers @@ -1049,14 +305,39 @@ This General Public License does not permit incorporating your program into prop Layout Style: + + + Display Style: + + + + + Bible Theme: + + + + + verse per slide + + + + + verse per line + + + + + continuous + + No brackets - - Bibles + + ( and ) @@ -1064,6 +345,11 @@ This General Public License does not permit incorporating your program into prop { and } + + + [ and ] + + Note: @@ -1071,13 +357,8 @@ Changes don't affect verses already in the service - - verse per slide - - - - - Bible Theme: + + Display Dual Bible Verses @@ -1105,26 +386,21 @@ Changes don't affect verses already in the service - - Display Footer: + + Custom Display - - Custom Display + + Display Footer: EditCustomForm - - You have unsaved data - - - - - You need to enter a title + + Save && Preview @@ -1132,180 +408,37 @@ Changes don't affect verses already in the service Error + + + You need to enter a title + + You need to enter a slide - - Save && Preview - - - - - EditSongDialog - - - Song Editor - - - - - Title && Lyrics - - - - - Title: - - - - - Alternative Title: - - - - - Lyrics: - - - - - Verse Order: - - - - - Add - - - - - Edit - - - - - Edit All - - - - - Delete - - - - - Authors, Topics && Book - - - - - Authors - - - - - &Add to Song - - - - - &Remove - - - - - &Manage Authors, Topics, Books - - - - - Topic - - - - - A&dd to Song - - - - - R&emove - - - - - Song Book - - - - - Theme, Copyright Info && Comments - - - - - Theme - - - - - Add a Theme - - - - - Copyright Information - - - - - © - - - - - CCLI Number: - - - - - Comments + + You have unsaved data EditSongForm - - - You need to enter a song title. - - - - - Invalid verse entry - values must be Numeric, I,B,C,T,P,E,O - - - - - You need to enter some verses. - - - - - Invalid verse entry - vX - - Save && Preview - - Error + + You need to enter a song title. + + + + + You need to enter some verses. @@ -1318,57 +451,19 @@ Changes don't affect verses already in the service v - - - EditVerseDialog - - Edit Verse + + Invalid verse entry - vX - - Verse Type + + Invalid verse entry - values must be Numeric, I,B,C,T,P,E,O - - Intro - - - - - Verse - - - - - Pre-Chorus - - - - - Chorus - - - - - Bridge - - - - - Ending - - - - - Other - - - - - Number + + Error @@ -1412,104 +507,99 @@ Changes don't affect verses already in the service GeneralTab - - - CCLI Details - - - - - primary - - - - - Application Startup - - - - - Select monitor for output display: - - - - - Application Settings - - - - - SongSelect Username: - - - - - CCLI Number: - - - - - Automatically open the last service - - - - - Preview Next Song from Service Manager - - - - - Show blank screen warning - - - - - Prompt to save Service before starting New - - General - - - Show the splash screen - - - - - Screen - - Monitors + + + Select monitor for output display: + + + + + Application Startup + + + + + Show blank screen warning + + + + + Automatically open the last service + + + + + Show the splash screen + + + + + Application Settings + + + + + Prompt to save Service before starting New + + + + + Preview Next Song from Service Manager + + + + + CCLI Details + + + + + CCLI Number: + + + + + SongSelect Username: + + SongSelect Password: + + + Screen + + + + + primary + + ImageMediaItem - - - Select Image(s) - - - - - Image(s) - - Image + + + Select Image(s) + + Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) @@ -1520,6 +610,11 @@ Changes don't affect verses already in the service Replace Live Background + + + Image(s) + + No item selected @@ -1542,8 +637,8 @@ Changes don't affect verses already in the service ImageTab - - sec + + Images @@ -1557,21 +652,66 @@ Changes don't affect verses already in the service - - Images + + sec ImportWizardForm + + + Invalid Bible Location + + + + + You need to specify a file to import your Bible from. + + + + + Invalid Books File + + You need to specify a file with books of the Bible to use in the import. - - Invalid Bible Location + + Invalid Verse File + + + + + You need to specify a file of Bible verses to import. + + + + + Invalid OpenSong Bible + + + + + You need to specify an OpenSong Bible file to import. + + + + + Empty Version Name + + + + + You need to specify a version name for your Bible. + + + + + Empty Copyright @@ -1584,76 +724,11 @@ Changes don't affect verses already in the service Bible Exists - - - Empty Copyright - - - - - Empty Version Name - - - - - Invalid OpenSong Bible - - - - - Your Bible import failed. - - - - - Finished import. - - - - - You need to specify a file of Bible verses to import. - - - - - You need to specify a version name for your Bible. - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - Starting import... - - - - - Invalid Books File - - - - - You need to specify a file to import your Bible from. - - - - - You need to specify an OpenSong Bible file to import. - - - - - Invalid Verse File - - - - - Open OpenSong Bible - - Open OSIS File @@ -1669,12 +744,34 @@ Changes don't affect verses already in the service Open Verses CSV File + + + Open OpenSong Bible + + + + + Starting import... + + + + + Finished import. + + + + + Your Bible import failed. + + MainWindow - - The Main Display has been blanked out + + Version %s of OpenLP is now available for download (you are currently running version %s). + +You can download the latest version from http://openlp.org @@ -1682,6 +779,16 @@ Changes don't affect verses already in the service OpenLP Version Updated + + + OpenLP Main Display Blanked + + + + + The Main Display has been blanked out + + Save Changes to Service? @@ -1692,744 +799,12 @@ Changes don't affect verses already in the service Your service has changed, do you want to save those changes? - - - OpenLP Main Display Blanked - - - - - openlp.org 2.0 - - - - - &File - - - - - &Import - - - - - &Song - - - - - &Export - - - - - &Options - - - - - &View - - - - - M&ode - - - - - &Language - - - - - &Tools - - - - - &Help - - - - - Media Manager - - - - - Songs - - - - - Add a new song - - - - - New Song - - - - - Edit the current song - - - - - Edit Song - - - - - Delete the currently selected song(s) - - - - - Delete Song - - - - - Preview the selected song - - - - - Send to Preview - - - - - Send the selected song to live - - - - - Send to Live - - - - - Add the currently selected song(s) to the service - - - - - Add to Service - - - - - Bible Verses - - - - - Preview selected verse(s) - - - - - Send selected verse(s) to live - - - - - Add selected verse(s) to service - - - - - Version: - - - - - Reference: - - - - - Search - - - - - Custom Slides - - - - - Add a new custom slide - - - - - New Custom Slide - - - - - Edit selected slide - - - - - Edit Custom Slide - - - - - Delete selected slide(s) - - - - - Delete Custom Slide - - - - - Preview selected slide - - - - - Preview Custom Slide - - - - - Send selected slide to live - - - - - Send Live - - - - - Add selected slide(s) to service - - - - - Add To Service - - - - - Presentations - - - - - Load a presentation - - - - - Load Video - - - - - Remove selected presentation(s) - - - - - RI - - - - - Send selected presentation to live - - - - - Add selected presentation(s) to service - - - - - Videos - - - - - Load a video - - - - - Delete the selected video(s) - - - - - Send the selected video to live - - - - - Add selected video(s) to service - - - - - Images - - - - - Load image(s) - - - - - Load Image - - - - - Remove selected image(s) - - - - - Delete Image - - - - - Send selected image to live - - - - - Add selected image(s) to service - - - - - Service Manager - - - - - Move selected item(s) to the top - - - - - Move To Top - - - - - Move selected item(s) up one position - - - - - Move Up - - - - - Move selected item(s) down one position - - - - - Move Down - - - - - Move selected item(s) to the bottom - - - - - Move To Bottom - - - - - Create new service - - - - - New Service - - - - - Open an existing service - - - - - Open Service - - - - - Save current service - - - - - Save Service - - - - - Theme Manager - - - - - Create a new theme - - - - - New Theme - - - - - Edit selected theme - - - - - Edit Theme - - - - - Delete selected theme(s) - - - - - Delete Theme - - - - - Import theme(s) - - - - - Import Theme - - - - - Export selected theme(s) - - - - - Export Theme - - - - - &New - - - - - Create a new Service - - - - - Ctrl+N - - - - - &Open - - - - - Ctrl+O - - - - - &Save - - - - - Save the current service to disk - - - - - Ctrl+S - - - - - Save &As... - - - - - Save Service As - - - - - Save the current service under a new name - - - - - F12 - - - - - E&xit - - - - - Quit OpenLP 2.0 - - - - - Alt+F4 - - - - - &Bible - - - - - &Theme - - - - - Look && &Feel - - - - - &Settings - - - - - &Media Manager - - - - - Toggle Media Manager - - - - - Toggle the visibility of the Media Manager - - - - - F8 - - - - - &Theme Manager - - - - - Toggle Theme Manager - - - - - Toggle the visibility of the Theme Manager - - - - - F10 - - - - - &Service Manager - - - - - Toggle Service Manager - - - - - Toggle the visibility of the Service Manager - - - - - F9 - - - - - &Alert - - - - - Show an alert message - - - - - F7 - - - - - &User Guide - - - - - &About - - - - - More information about OpenLP - - - - - Ctrl+F1 - - - - - &Online Help - - - - - &Web Site - - - - - OpenSong - - - - - openlp.org 1.0 - - - - - Export songs in openlp.org 1.0 format - - - - - OpenLP 2.0 - - - - - Export songs in OpenLP 2.0 format - - - - - &Translate - - - - - Translate the interface to your language - - - - - English - - - - - Set the interface language to English - - - - - &Add Tool... - - - - - Add an application to the list of tools - - - - - &Preview Pane - - - - - &Live - - - - - Version %s of OpenLP is now available for download (you are currently running version %s). - -You can download the latest version from http://openlp.org - - MediaManagerItem - - &Preview - - - - - You must select one or more items + + Import a @@ -2437,19 +812,24 @@ You can download the latest version from http://openlp.org Load a new + + + Add a new + + + + + Edit the selected + + Delete the selected item - - &Edit - - - - - &Add to Service + + Preview the selected item @@ -2463,13 +843,18 @@ You can download the latest version from http://openlp.org - - Edit the selected + + &Edit - - Add a new + + &Delete + + + + + &Preview @@ -2478,18 +863,8 @@ You can download the latest version from http://openlp.org - - Preview the selected item - - - - - Import a - - - - - &Delete + + &Add to Service @@ -2512,6 +887,11 @@ You can download the latest version from http://openlp.org No items selected + + + You must select one or more items + + No Service Item Selected @@ -2554,152 +934,6 @@ You can download the latest version from http://openlp.org - - OpenLPExportDialog - - - openlp.org Song Exporter - - - - - Select openlp.org export filename: - - - - - Full Song List - - - - - Song Title - - - - - Author - - - - - Select All - - - - - Lyrics - - - - - Title - - - - - Song Export List - - - - - Remove Selected - - - - - Progress: - - - - - Ready to export - - - - - Export - - - - - Close - - - - - OpenLPImportDialog - - - openlp.org Song Importer - - - - - Select openlp.org songfile to import: - - - - - Import File Song List - - - - - Song Title - - - - - Author - - - - - Select All - - - - - Lyrics - - - - - Title - - - - - Song Import List - - - - - Remove Selected - - - - - Progress: - - - - - Ready to import - - - - - Import - - - - - Close - - - OpenSongBible @@ -2708,160 +942,6 @@ You can download the latest version from http://openlp.org - - OpenSongExportDialog - - - OpenSong Song Exporter - - - - - Select OpenSong song folder: - - - - - Full Song List - - - - - Song Title - - - - - Author - - - - - Select All - - - - - Lyrics - - - - - Title - - - - - Song Export List - - - - - Remove Selected - - - - - Progress: - - - - - Ready to export - - - - - Export - - - - - Close - - - - - OpenSongImportDialog - - - OpenSong Song Importer - - - - - OpenSong Folder: - - - - - Progress: - - - - - Ready to import - - - - - Import - - - - - Close - - - - - PluginViewDialog - - - Plugin list - - - - - Plugin Details - - - - - Version: - - - - - TextLabel - - - - - About: - - - - - Status: - - - - - Disabled - - - - - Inactive - - - - - Active - - - PresentationMediaItem @@ -2870,8 +950,8 @@ You can download the latest version from http://openlp.org - - Present using: + + Select Presentation(s) @@ -2880,13 +960,13 @@ You can download the latest version from http://openlp.org - - A presentation with that filename already exists. + + Presentations (%s) - - Select Presentation(s) + + Present using: @@ -2895,8 +975,8 @@ You can download the latest version from http://openlp.org - - Presentations (%s) + + A presentation with that filename already exists. @@ -2910,6 +990,11 @@ You can download the latest version from http://openlp.org PresentationTab + + + Presentations + + Available Controllers @@ -2920,11 +1005,6 @@ You can download the latest version from http://openlp.org available - - - Presentations - - RemoteTab @@ -2947,34 +1027,16 @@ You can download the latest version from http://openlp.org - - ServiceItemEditDialog - - - Service Item Maintenance - - - - - Up - - - - - Delete - - - - - Down - - - ServiceManager - - Save Changes to Service? + + New Service + + + + + Create a new service @@ -2983,13 +1045,13 @@ You can download the latest version from http://openlp.org - - Move to top + + Load an existing service - - Create a new service + + Save Service @@ -3002,49 +1064,19 @@ You can download the latest version from http://openlp.org Theme: - - - Delete From Service - - - - - Save Service - - - - - &Live Verse - - Move to &top - - New Service + + Move to top - - &Notes - - - - - Move to end - - - - - Your service is unsaved, do you want to save those changes before creating a new one ? - - - - - &Delete From Service + + Move &up @@ -3052,34 +1084,14 @@ You can download the latest version from http://openlp.org Move up order - - - Move down order - - Move &down - - Load an existing service - - - - - &Preview Verse - - - - - Move &up - - - - - &Edit Item + + Move down order @@ -3087,243 +1099,77 @@ You can download the latest version from http://openlp.org Move to &bottom + + + Move to end + + + + + &Delete From Service + + + + + Delete From Service + + + + + &Edit Item + + &Maintain Item - - - ServiceNoteEdit - - Service Item Notes - - - - - SettingsDialog - - - Settings + + &Notes - - General + + &Preview Verse - - Monitors + + &Live Verse - - Select monitor for output display: + + Save Changes to Service? - - Monitor 1 on X11 Windowing System - - - - - Monitor 2 on X11 Windowing System - - - - - Blank Screen - - - - - Show warning on startup - - - - - Auto Open Last Service - - - - - Automatically open the last service at startup - - - - - CCLI Details - - - - - CCLI Number: - - - - - SongSelect Username: - - - - - SongSelect Password: - - - - - Themes - - - - - Global theme - - - - - African Sunset - - - - - Snowy Mountains - - - - - Wilderness - - - - - Theme level - - - - - Song level - - - - - Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. - - - - - Service level - - - - - Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. - - - - - Global level - - - - - Use the global theme, overriding any themes associated with either the service or the songs. - - - - - Alerts - - - - - Font - - - - - Font Name: - - - - - Font Color: - - - - - Background Color: - - - - - Display length: - - - - - s - - - - - Preview + + Your service is unsaved, do you want to save those changes before creating a new one ? SlideController - - - Move to previous - - - - - Go to Verse - - - - - Start continuous loop - - Live - - - Start playing media - - - - - Move to live - - Preview - - Move to last + + Move to first - - Edit and re-preview Song - - - - - Delay between slides in seconds + + Move to previous @@ -3332,8 +1178,8 @@ You can download the latest version from http://openlp.org - - Move to first + + Move to last @@ -3342,8 +1188,28 @@ You can download the latest version from http://openlp.org - - Verse + + Theme Screen + + + + + Hide Screen + + + + + Move to live + + + + + Edit and re-preview Song + + + + + Start continuous loop @@ -3357,31 +1223,23 @@ You can download the latest version from http://openlp.org - - Theme Screen + + Delay between slides in seconds - - Hide Screen - - - - - SongBookDialog - - - Book Song Maintenance + + Start playing media - - Name: + + Go to Verse - - Publisher: + + Verse @@ -3398,130 +1256,16 @@ You can download the latest version from http://openlp.org - - SongExportDialog - - - Dialog - - - - - Available Songs - - - - - Select All - - - - - Select Songs - - - - - Deselect Songs - - - - - Selected Songs - - - - - OpenLyric Format - - - - - Text File - - - - - SongMaintenanceDialog - - - Song Maintenance - - - - - New Row - - - - - Types - - - - - -Authors - - - - - -Topics - - - - - -Books/Hymnals - - - - - Add - - - - - Edit - - - - - Delete - - - SongMaintenanceForm - - - Are you sure you want to delete the selected book? - - - - - Couldn't save your author. - - - - - This author can't be deleted, they are currently assigned to at least one song. - - - - - Couldn't add your book. - - Error - - No author selected! + + Couldn't add your author. @@ -3530,28 +1274,13 @@ Books/Hymnals - - This book can't be deleted, it is currently assigned to at least one song. + + Couldn't add your book. - - Delete Book - - - - - No book selected! - - - - - Are you sure you want to delete the selected author? - - - - - Couldn't add your author. + + Couldn't save your author. @@ -3564,19 +1293,34 @@ Books/Hymnals Couldn't save your book. - - - Delete Topic - - Delete Author + + + Are you sure you want to delete the selected author? + + + + + This author can't be deleted, they are currently assigned to at least one song. + + + + + No author selected! + + - No topic selected! + Delete Topic + + + + + Are you sure you want to delete the selected topic? @@ -3586,20 +1330,40 @@ Books/Hymnals - Are you sure you want to delete the selected topic? + No topic selected! + + + + + Delete Book + + + + + Are you sure you want to delete the selected book? + + + + + This book can't be deleted, it is currently assigned to at least one song. + + + + + No book selected! SongMediaItem - - CCLI Licence: + + Song - - Song + + Song Maintenance @@ -3608,8 +1372,8 @@ Books/Hymnals - - Lyrics + + Search: @@ -3617,11 +1381,6 @@ Books/Hymnals Type: - - - Titles - - Clear @@ -3632,26 +1391,31 @@ Books/Hymnals Search + + + Titles + + + + + Lyrics + + Authors - - - Search: - - - - - Song Maintenance - - %s (%s) + + + CCLI Licence: + + SongUsageDeleteForm @@ -3693,13 +1457,8 @@ Books/Hymnals SongsTab - - Display Verses on Live Tool bar: - - - - - Enable search as you type: + + Songs @@ -3708,24 +1467,21 @@ Books/Hymnals - - Songs + + Enable search as you type: - - - SplashScreen - - Splash Screen + + Display Verses on Live Tool bar: ThemeManager - - Import Theme + + New Theme @@ -3734,28 +1490,8 @@ Books/Hymnals - - Delete Theme - - - - - Error - - - - - Make Global - - - - - Delete a theme - - - - - File is not a valid theme. + + Edit Theme @@ -3764,48 +1500,18 @@ Books/Hymnals - - Edit Theme + + Delete Theme - - Export Theme + + Delete a theme - - You are unable to delete the default theme. - - - - - Theme Exists - - - - - Delete theme - - - - - Save Theme - (%s) - - - - - default - - - - - Select Theme Import File - - - - - New Theme + + Import Theme @@ -3814,18 +1520,8 @@ Books/Hymnals - - Export theme - - - - - You have not selected a theme. - - - - - A theme with this name already exists, would you like to overwrite it? + + Export Theme @@ -3833,6 +1529,36 @@ Books/Hymnals Export a theme + + + Delete theme + + + + + Make Global + + + + + Export theme + + + + + default + + + + + Error + + + + + You are unable to delete the default theme. + + Theme %s is use in %s plugin @@ -3843,55 +1569,42 @@ Books/Hymnals Theme %s is use by Service Manager - - - ThemeWizard - - Theme Wizard + + You have not selected a theme. - - Welcome + + Save Theme - (%s) - - Welcome to the Theme Wizard. This wizard will guide you through the process of creating a new theme. + + Select Theme Import File - - Theme Name + + File is not a valid theme. - - Choose a name for your theme + + Theme Exists - - Theme Name: - - - - - Select Background - - - - - Select a background type and configure your background + + A theme with this name already exists, would you like to overwrite it? ThemesTab - - Theme level + + Themes @@ -3900,8 +1613,13 @@ Books/Hymnals - - Use the global theme, overriding any themes associated with either the service or the songs. + + Theme level + + + + + Song level @@ -3914,37 +1632,19 @@ Books/Hymnals Service level - - - Global level - - - - - Song level - - Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. - - Themes - - - - - TopicsDialog - - - Topic Maintenance + + Global level - - Topic Name: + + Use the global theme, overriding any themes associated with either the service or the songs. @@ -3952,47 +1652,22 @@ Books/Hymnals TopicsForm - You need to type in a topic name! + Error - Error + You need to type in a topic name! Ui_AboutDialog - - - Close - - - - - License - - - - - Credits - - About OpenLP - - - About - - - - - Contribute - - OpenLP <version><revision> - Open Source Lyrics Projection @@ -4004,6 +1679,11 @@ Find out more about OpenLP: http://openlp.org/ OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. + + + About + + Project Lead @@ -4037,19 +1717,34 @@ Packagers + + + Credits + + Copyright + + + License + + + + + Contribute + + + + + Close + + Ui_AlertDialog - - - Display - - Alert Message @@ -4060,80 +1755,27 @@ Packagers Alert Text: + + + Display + + Cancel - - Ui_AlertEditDialog - Ui_AmendThemeDialog - - Shadow Size: + + Theme Maintenance - - Slide Transition - - - - - Bottom - - - - - Image - - - - - Height: - - - - - Outline - - - - - Main Font - - - - - Solid Color - - - - - Font Main - - - - - Use Default Location: - - - - - Other Options - - - - - Shadow - - - - - Italics + + Theme Name: @@ -4142,13 +1784,38 @@ Packagers - - X Position: + + Opaque - - Center + + Transparent + + + + + Background Type: + + + + + Solid Color + + + + + Gradient + + + + + Image + + + + + <Color1> @@ -4157,18 +1824,63 @@ Packagers - - Opaque + + Image: - - Outline Color: + + Gradient : - - Alignment + + Horizontal + + + + + Vertical + + + + + Circular + + + + + Background + + + + + Main Font + + + + + Font: + + + + + Font Color: + + + + + Size: + + + + + pt + + + + + Wrap Indentation @@ -4182,23 +1894,13 @@ Packagers - - Footer Font + + Italics - - Theme Maintenance - - - - - <Color1> - - - - - Font Footer + + Bold/Italics @@ -4207,18 +1909,23 @@ Packagers - - Transparent + + Display Location - - Background + + Use Default Location: - - Vertical + + X Position: + + + + + Y Position: @@ -4227,8 +1934,58 @@ Packagers - - Middle + + Height: + + + + + px + + + + + Font Main + + + + + Footer Font + + + + + Font Footer + + + + + Outline + + + + + Outline Size: + + + + + Outline Color: + + + + + Show Outline: + + + + + Shadow + + + + + Shadow Size: @@ -4236,6 +1993,36 @@ Packagers Shadow Color: + + + Show Shadow: + + + + + Alignment + + + + + Horizontal Align: + + + + + Left + + + + + Right + + + + + Center + + Vertical Align: @@ -4247,83 +2034,18 @@ Packagers - - Right + + Middle - - Font Color: + + Bottom - - Horizontal - - - - - Circular - - - - - pt - - - - - px - - - - - Display Location - - - - - Y Position: - - - - - Show Shadow: - - - - - Font: - - - - - Preview - - - - - Outline Size: - - - - - Wrap Indentation - - - - - Left - - - - - Theme Name: - - - - - Image: + + Slide Transition @@ -4332,53 +2054,18 @@ Packagers - - Size: + + Other Options - - Gradient : - - - - - Bold/Italics - - - - - Horizontal Align: - - - - - Background Type: - - - - - Show Outline: - - - - - Gradient + + Preview Ui_AuthorsDialog - - - Last name: - - - - - First name: - - Author Maintenance @@ -4389,6 +2076,16 @@ Packagers Display name: + + + First name: + + + + + Last name: + + Ui_BibleImportWizard @@ -4398,13 +2095,33 @@ Packagers - - Bible: + + Welcome to the Bible Import Wizard - - Crosswalk + + 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. + + + + + Select Import Source + + + + + Select the import format, and where to import from. + + + + + Format: + + + + + OSIS @@ -4417,19 +2134,19 @@ Packagers OpenSong + + + Web Download + + File Location: - - 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. - - - - - Copyright: + + Books Location: @@ -4438,38 +2155,8 @@ Packagers - - Server: - - - - - Permission: - - - - - Select Import Source - - - - - Set up the Bible's license details. - - - - - BibleGateway - - - - - Username: - - - - - Download Options + + Bible Filename: @@ -4478,53 +2165,33 @@ Packagers - - Bible Filename: + + Crosswalk - - Format: + + BibleGateway - - Importing + + Bible: - - License Details + + Download Options - - OSIS + + Server: - - Web Download - - - - - Please wait while your Bible is imported. - - - - - Select the import format, and where to import from. - - - - - Proxy Server (Optional) - - - - - Welcome to the Bible Import Wizard + + Username: @@ -4532,142 +2199,117 @@ Packagers Password: + + + Proxy Server (Optional) + + + + + License Details + + + + + Set up the Bible's license details. + + Version Name: + + + Copyright: + + + + + Permission: + + + + + Importing + + + + + Please wait while your Bible is imported. + + Ready. - - - Books Location: - - Ui_EditSongDialog - - - &Remove - - - - - Alternative Title: - - - - - Add a Theme - - - - - R&emove - - - - - Verse Order: - - - - - Title && Lyrics - - - - - Theme - - - - - Authors, Topics && Book - - - - - Copyright Information - - - - - Topic - - - - - Lyrics: - - - - - Edit - - - - - Authors - - Song Editor - - - Delete - - - - - &Add to Song - - - - - CCLI Number: - - - - - Add - - - - - Theme, Copyright Info && Comments - - - - - Song Book - - - - - Edit All - - - - - A&dd to Song - - Title: - - Comments + + Alternative Title: + + + + + Lyrics: + + + + + Verse Order: + + + + + Add + + + + + Edit + + + + + Edit All + + + + + Delete + + + + + Title && Lyrics + + + + + Authors + + + + + &Add to Song + + + + + &Remove @@ -4675,130 +2317,120 @@ Packagers &Manage Authors, Topics, Books + + + Topic + + + + + A&dd to Song + + + + + R&emove + + + + + Song Book + + + + + Authors, Topics && Book + + + + + Theme + + + + + Add a Theme + + + + + Copyright Information + + + + + CCLI Number: + + + + + Comments + + + + + Theme, Copyright Info && Comments + + Ui_EditVerseDialog - - - Verse - - - - - Ending - - - - - Number - - - - - Other - - - - - Bridge - - - - - Pre-Chorus - - Edit Verse + + + Verse Type + + Intro + + + Verse + + + + + Pre-Chorus + + Chorus - - Verse Type + + Bridge + + + + + Ending + + + + + Other + + + + + Number Ui_MainWindow - - Open an existing service - - - - - &File - - - - - List the Plugins - - - - - &Service Manager - - - - - Open Service - - - - - Media Manager - - - - - Alt+F4 - - - - - Toggle the visibility of the Preview Panel - - - - - &User Guide - - - - - Set the interface language to English - - - - - &Import - - - - - Quit OpenLP - - - - - &Preview Panel - - - - - &New + + OpenLP 2.0 @@ -4807,48 +2439,13 @@ Packagers - - Toggle Preview Panel + + &File - - &Settings - - - - - &Live - - - - - English - - - - - F9 - - - - - F8 - - - - - Save the current service to disk - - - - - Add &Tool... - - - - - &View + + &Import @@ -4856,64 +2453,14 @@ Packagers &Export - - - &Open - - - - - Toggle Theme Manager - - &Options - - Ctrl+S - - - - - Ctrl+O - - - - - Ctrl+N - - - - - E&xit - - - - - &Help - - - - - Toggle Service Manager - - - - - Ctrl+F1 - - - - - Save the current service under a new name - - - - - &Web Site + + &View @@ -4922,8 +2469,18 @@ Packagers - - Translate the interface to your language + + &Tools + + + + + &Help + + + + + Media Manager @@ -4931,6 +2488,106 @@ Packagers Service Manager + + + Theme Manager + + + + + &New + + + + + New Service + + + + + Create a new Service + + + + + Ctrl+N + + + + + &Open + + + + + Open Service + + + + + Open an existing service + + + + + Ctrl+O + + + + + &Save + + + + + Save Service + + + + + Save the current service to disk + + + + + Ctrl+S + + + + + Save &As... + + + + + Save Service As + + + + + Save the current service under a new name + + + + + F12 + + + + + E&xit + + + + + Quit OpenLP + + + + + Alt+F4 + + &Theme @@ -4942,98 +2599,13 @@ Packagers - - &About + + Look && &Feel - - &Plugin List - - - - - &Translate - - - - - New Service - - - - - &Online Help - - - - - Save Service - - - - - Save &As... - - - - - Toggle the visibility of the Media Manager - - - - - F11 - - - - - F10 - - - - - F12 - - - - - Alt+F7 - - - - - Add an application to the list of tools - - - - - Theme Manager - - - - - Toggle the visibility of the Theme Manager - - - - - &Preview Pane - - - - - Save Service As - - - - - Toggle the visibility of the Service Manager - - - - - More information about OpenLP + + &Settings @@ -5041,19 +2613,19 @@ Packagers &Media Manager - - - &Tools - - Toggle Media Manager - - Create a new Service + + Toggle the visibility of the Media Manager + + + + + F8 @@ -5062,31 +2634,151 @@ Packagers - - &Save + + Toggle Theme Manager - - OpenLP 2.0 + + Toggle the visibility of the Theme Manager - - Look && &Feel + + F10 + + + + + &Service Manager + + + + + Toggle Service Manager + + + + + Toggle the visibility of the Service Manager + + + + + F9 + + + + + &Preview Panel + + + + + Toggle Preview Panel + + + + + Toggle the visibility of the Preview Panel + + + + + F11 + + + + + &Plugin List + + + + + List the Plugins + + + + + Alt+F7 + + + + + &User Guide + + + + + &About + + + + + More information about OpenLP + + + + + Ctrl+F1 + + + + + &Online Help + + + + + &Web Site + + + + + &Translate + + + + + Translate the interface to your language + + + + + English + + + + + Set the interface language to English + + + + + Add &Tool... + + + + + Add an application to the list of tools + + + + + &Preview Pane + + + + + &Live Ui_OpenLPExportDialog - - Song Title - - - - - Title + + openlp.org Song Exporter @@ -5094,34 +2786,14 @@ Packagers Select openlp.org export filename: - - - Close - - - - - Export - - - - - Lyrics - - Full Song List - - Progress: - - - - - Remove Selected + + Song Title @@ -5130,8 +2802,18 @@ Packagers - - openlp.org Song Exporter + + Select All + + + + + Lyrics + + + + + Title @@ -5139,67 +2821,47 @@ Packagers Song Export List + + + Remove Selected + + + + + Progress: + + Ready to export - - Select All + + Export + + + + + Close Ui_OpenLPImportDialog - - - Author - - - - - Ready to import - - - - - Progress: - - openlp.org Song Importer - - - Song Import List - - - - - Import File Song List - - - - - Close - - Select openlp.org songfile to import: - - Lyrics - - - - - Import + + Import File Song List @@ -5207,32 +2869,72 @@ Packagers Song Title + + + Author + + Select All + + + Lyrics + + Title + + + Song Import List + + Remove Selected + + + Progress: + + + + + Ready to import + + + + + Import + + + + + Close + + Ui_OpenSongExportDialog - - Close + + OpenSong Song Exporter - - Lyrics + + Select OpenSong song folder: + + + + + Full Song List @@ -5240,19 +2942,19 @@ Packagers Song Title + + + Author + + Select All - - Song Export List - - - - - Author + + Lyrics @@ -5261,8 +2963,8 @@ Packagers - - OpenSong Song Exporter + + Song Export List @@ -5275,11 +2977,6 @@ Packagers Progress: - - - Select OpenSong song folder: - - Ready to export @@ -5291,18 +2988,33 @@ Packagers - - Full Song List + + Close Ui_OpenSongImportDialog + + + OpenSong Song Importer + + OpenSong Folder: + + + Progress: + + + + + Ready to import + + Import @@ -5313,39 +3025,19 @@ Packagers Close - - - Progress: - - - - - OpenSong Song Importer - - - - - Ready to import - - Ui_PluginViewDialog + + + Plugin List + + Plugin Details - - - Active - - - - - Status: - - Version: @@ -5362,13 +3054,18 @@ Packagers - - Inactive + + Status: - - Plugin List + + Active + + + + + Inactive @@ -5414,13 +3111,13 @@ Packagers Ui_SongBookDialog - - Name: + + Edit Book - - Edit Book + + Name: @@ -5432,18 +3129,8 @@ Packagers Ui_SongMaintenanceDialog - - Edit - - - - - Topics - - - - - Add + + Song Maintenance @@ -5452,13 +3139,8 @@ Packagers - - Delete - - - - - Song Maintenance + + Topics @@ -5466,6 +3148,21 @@ Packagers Books/Hymnals + + + Add + + + + + Edit + + + + + Delete + + Ui_SongUsageDeleteDialog @@ -5477,11 +3174,6 @@ Packagers Ui_SongUsageDetailDialog - - - Report Location - - Song Usage Extraction @@ -5497,25 +3189,60 @@ Packagers to + + + Report Location + + Ui_TopicsDialog - - Topic name: + + Topic Maintenance - - Topic Maintenance + + Topic name: Ui_customEditDialog - - Delete selected slide + + Move slide Up 1 + + + + + Move slide down 1 + + + + + Edit Custom Slides + + + + + Title: + + + + + Add New + + + + + Add new slide at bottom + + + + + Edit @@ -5528,46 +3255,6 @@ Packagers Edit All - - - Add new slide at bottom - - - - - Clear - - - - - Delete - - - - - Theme: - - - - - Move slide Up 1 - - - - - Title: - - - - - Credits: - - - - - Edit Custom Slides - - Edit all slides @@ -5584,8 +3271,28 @@ Packagers - - Move slide down 1 + + Delete + + + + + Delete selected slide + + + + + Clear + + + + + Clear edit area + + + + + Theme: @@ -5594,205 +3301,18 @@ Packagers - - Edit - - - - - Add New - - - - - Clear edit area - - - - - Wizard - - - Bible Import Wizard - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body > -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:600;">Welcome to the Bible Import Wizard</span></p></body></html> - - - - - 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. - - - - - Select Import Source - - - - - Select the import format, and where to import from. - - - - - Format: - - - - - OSIS - - - - - CSV - - - - - OpenSong - - - - - Web Download - - - - - Bible Name: - - - - - File Location: - - - - - Books Location: - - - - - Verse Location: - - - - - Bible Filename: - - - - - Download Options - - - - - Location: - - - - - Crosswalk - - - - - Bible: - - - - - English Standard Version - - - - - King James Version - - - - - New International Version - - - - - Proxy Server (Optional) - - - - - Server: - - - - - Username: - - - - - Password: - - - - - License Details - - - - - Set up the Bible's license details. - - - - - Version Name: - - - - - Copyright: - - - - - Permission: - - - - - Importing - - - - - Please wait while your Bible is imported. - - - - - Ready. - - - - - %p + + Credits: alertsPlugin + + + &Alert + + Show an alert message @@ -5803,64 +3323,6 @@ p, li { white-space: pre-wrap; } <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen - - - &Alert - - - - - customEditDialog - - - Edit Custom Slides - - - - - Title: - - - - - Add New - - - - - Edit - - - - - Edit All - - - - - Save - - - - - Delete - - - - - Clear - - - - - Theme: - - - - - Credits: - - export_menu diff --git a/scripts/generate_pro.py b/scripts/generate_pro.py index 6d0a371d4..3b3cff17f 100755 --- a/scripts/generate_pro.py +++ b/scripts/generate_pro.py @@ -73,11 +73,11 @@ def main(): if cond == True: continue - if file.endswith(u'.ui'): - line = "%s/%s" % (path, file) - print u'Parsing "%s"' % line - stringlist.append("FORMS += %s" % line) - elif file.endswith(u'.py'): +# if file.endswith(u'.ui'): +# line = "%s/%s" % (path, file) +# print u'Parsing "%s"' % line +# stringlist.append("FORMS += %s" % line) + if file.endswith(u'.py'): line = "%s/%s" % (path, file) print u'Parsing "%s"' % line stringlist.append("SOURCES += %s" % line) From ea64675d65950b2e4064748dfa7faf389653fdf2 Mon Sep 17 00:00:00 2001 From: rimach Date: Sat, 17 Apr 2010 00:06:28 +0200 Subject: [PATCH 03/22] update i18n implementation --- openlp.pyw | 17 +- openlp/core/lib/toolbar.py | 11 +- openlp/core/ui/mainwindow.py | 213 +- openlp/core/utils/__init__.py | 3 +- openlp/core/utils/languagemanager.py | 106 + resources/i18n/openlp_af.qm | Bin 0 -> 34261 bytes resources/i18n/openlp_de.qm | Bin 0 -> 36265 bytes resources/i18n/openlp_en.ts | 3478 ----------------- resources/i18n/openlp_en_GB.qm | Bin 0 -> 31723 bytes resources/i18n/openlp_en_ZA.qm | Bin 0 -> 22938 bytes resources/i18n/openlp_es.qm | Bin 0 -> 14546 bytes resources/i18n/openlp_hu.qm | Bin 0 -> 35270 bytes resources/i18n/openlp_ko.qm | Bin 0 -> 462 bytes resources/i18n/openlp_nb.qm | Bin 0 -> 20852 bytes resources/i18n/openlp_pt_BR.qm | Bin 0 -> 35931 bytes resources/i18n/openlp_sv.qm | Bin 0 -> 37049 bytes .../{generate_pro.py => translation_utils.py} | 85 +- 17 files changed, 323 insertions(+), 3590 deletions(-) create mode 100644 openlp/core/utils/languagemanager.py create mode 100644 resources/i18n/openlp_af.qm create mode 100644 resources/i18n/openlp_de.qm delete mode 100644 resources/i18n/openlp_en.ts create mode 100644 resources/i18n/openlp_en_GB.qm create mode 100644 resources/i18n/openlp_en_ZA.qm create mode 100644 resources/i18n/openlp_es.qm create mode 100644 resources/i18n/openlp_hu.qm create mode 100644 resources/i18n/openlp_ko.qm create mode 100644 resources/i18n/openlp_nb.qm create mode 100644 resources/i18n/openlp_pt_BR.qm create mode 100644 resources/i18n/openlp_sv.qm rename scripts/{generate_pro.py => translation_utils.py} (62%) diff --git a/openlp.pyw b/openlp.pyw index d95987e23..23c056c02 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -37,7 +37,7 @@ log = logging.getLogger() from openlp.core.lib import Receiver, str_to_bool from openlp.core.resources import qInitResources from openlp.core.ui import MainWindow, SplashScreen, ScreenList -from openlp.core.utils import AppLocation, ConfigHelper +from openlp.core.utils import AppLocation, ConfigHelper, LanguageManager application_stylesheet = u""" QMainWindow::separator @@ -193,17 +193,10 @@ def main(): qInitResources() # Now create and actually run the application. app = OpenLP(qt_args) - lang_Path = AppLocation.get_directory(AppLocation.AppDir) - if hasattr(sys, u'frozen'): - lang_Path = os.path.join(lang_Path, u'..') - lang_Path = os.path.join(lang_Path, u'resources', u'i18n') - locale = QtCore.QLocale.system().name() - qtTranslator = QtCore.QTranslator() - if qtTranslator.load("openlp_" + locale, lang_Path): - app.installTranslator(qtTranslator) - appTranslator = QtCore.QTranslator() - if appTranslator.load("openlp_" + locale, lang_Path): - app.installTranslator(appTranslator) + #i18n Set Language + language = LanguageManager.getLanguage() + appTranslator = LanguageManager.getTranslator(language) + app.installTranslator(appTranslator) sys.exit(app.run()) diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index e50459943..7b5d86d54 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -117,10 +117,13 @@ class OpenLPToolbar(QtGui.QToolBar): The title of the icon to search for. """ title = QtCore.QString(title) - if self.icons[title]: - return self.icons[title] - else: - log.error(u'getIconFromTitle - no icon for %s' % title) + try: + if self.icons[title]: + return self.icons[title] + else: + log.error(u'getIconFromTitle - no icon for %s' % title) + return QtGui.QIcon() + except: return QtGui.QIcon() def makeWidgetsInvisible(self, widgets): diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 864d3a0ac..99021deb4 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -33,7 +33,7 @@ from openlp.core.ui import AboutForm, SettingsForm, \ PluginForm, MediaDockManager, VideoDisplay from openlp.core.lib import RenderManager, PluginConfig, build_icon, \ OpenLPDockWidget, SettingsManager, PluginManager, Receiver, str_to_bool -from openlp.core.utils import check_latest_version, AppLocation +from openlp.core.utils import check_latest_version, AppLocation, LanguageManager, ConfigHelper log = logging.getLogger(__name__) @@ -190,19 +190,19 @@ class Ui_MainWindow(object): self.ThemeManagerDock.setVisible(self.settingsmanager.showThemeManager) # Create the menu items self.FileNewItem = QtGui.QAction(MainWindow) - #self.FileNewItem.setIcon( - # self.ServiceManagerContents.Toolbar.getIconFromTitle( - # u'New Service')) + self.FileNewItem.setIcon( + self.ServiceManagerContents.Toolbar.getIconFromTitle( + MainWindow.trUtf8('New Service'))) self.FileNewItem.setObjectName(u'FileNewItem') self.FileOpenItem = QtGui.QAction(MainWindow) - #self.FileOpenItem.setIcon( - # self.ServiceManagerContents.Toolbar.getIconFromTitle( - # u'Open Service')) + self.FileOpenItem.setIcon( + self.ServiceManagerContents.Toolbar.getIconFromTitle( + MainWindow.trUtf8('Open Service'))) self.FileOpenItem.setObjectName(u'FileOpenItem') self.FileSaveItem = QtGui.QAction(MainWindow) - #self.FileSaveItem.setIcon( - # self.ServiceManagerContents.Toolbar.getIconFromTitle( - # u'Save Service')) + self.FileSaveItem.setIcon( + self.ServiceManagerContents.Toolbar.getIconFromTitle( + MainWindow.trUtf8('Save Service'))) self.FileSaveItem.setObjectName(u'FileSaveItem') self.FileSaveAsItem = QtGui.QAction(MainWindow) self.FileSaveAsItem.setObjectName(u'FileSaveAsItem') @@ -257,10 +257,26 @@ class Ui_MainWindow(object): self.HelpOnlineHelpItem.setObjectName(u'HelpOnlineHelpItem') self.HelpWebSiteItem = QtGui.QAction(MainWindow) self.HelpWebSiteItem.setObjectName(u'HelpWebSiteItem') - self.LanguageTranslateItem = QtGui.QAction(MainWindow) - self.LanguageTranslateItem.setObjectName(u'LanguageTranslateItem') - self.LanguageEnglishItem = QtGui.QAction(MainWindow) - self.LanguageEnglishItem.setObjectName(u'LanguageEnglishItem') + #i18n Language Items + self.AutoLanguageItem = QtGui.QAction(MainWindow) + self.AutoLanguageItem.setObjectName(u'AutoLanguageItem') + self.AutoLanguageItem.setCheckable(True) + self.LanguageGroup = QtGui.QActionGroup(MainWindow) + qmList = LanguageManager.getQmList() + savedLanguage = LanguageManager.getLanguage() + self.LanguageItem = {} + for key in qmList.keys(): + self.LanguageItem[key] = QtGui.QAction(MainWindow) + self.LanguageItem[key].setObjectName(key) + self.LanguageItem[key].setCheckable(True) + if LanguageManager.__AutoLanguage__ == True: + self.AutoLanguageItem.setChecked(True) + self.LanguageGroup.setEnabled(False) + else: + self.AutoLanguageItem.setChecked(False) + self.LanguageGroup.setEnabled(True) + if qmList[key] == savedLanguage: + self.LanguageItem[key].setChecked(True) self.ToolsAddToolItem = QtGui.QAction(MainWindow) AddToolIcon = build_icon(u':/tools/tools_add.png') self.ToolsAddToolItem.setIcon(AddToolIcon) @@ -295,9 +311,12 @@ class Ui_MainWindow(object): self.OptionsViewMenu.addAction(self.ViewThemeManagerItem) self.OptionsViewMenu.addSeparator() self.OptionsViewMenu.addAction(self.action_Preview_Panel) - self.OptionsLanguageMenu.addAction(self.LanguageEnglishItem) + #i18n add Language Actions + self.OptionsLanguageMenu.addAction(self.AutoLanguageItem) self.OptionsLanguageMenu.addSeparator() - self.OptionsLanguageMenu.addAction(self.LanguageTranslateItem) + for item in sorted(self.LanguageItem): + self.LanguageGroup.addAction(self.LanguageItem[item]) + self.OptionsLanguageMenu.addAction(self.LanguageItem[item]) self.OptionsMenu.addAction(self.OptionsLanguageMenu.menuAction()) self.OptionsMenu.addAction(self.OptionsViewMenu.menuAction()) self.OptionsMenu.addSeparator() @@ -335,95 +354,98 @@ class Ui_MainWindow(object): """ Set up the translation system """ - MainWindow.mainTitle = self.trUtf8('OpenLP 2.0') - MainWindow.defaultThemeText = self.trUtf8( + MainWindow.mainTitle = MainWindow.trUtf8('OpenLP 2.0') + MainWindow.language = MainWindow.trUtf8('English') + MainWindow.defaultThemeText = MainWindow.trUtf8( 'Default Theme: ') MainWindow.setWindowTitle(MainWindow.mainTitle) - self.FileMenu.setTitle(self.trUtf8('&File')) - self.FileImportMenu.setTitle(self.trUtf8('&Import')) - self.FileExportMenu.setTitle(self.trUtf8('&Export')) - self.OptionsMenu.setTitle(self.trUtf8('&Options')) - self.OptionsViewMenu.setTitle(self.trUtf8('&View')) - self.ViewModeMenu.setTitle(self.trUtf8('M&ode')) - self.OptionsLanguageMenu.setTitle(self.trUtf8( + self.FileMenu.setTitle(MainWindow.trUtf8('&File')) + self.FileImportMenu.setTitle(MainWindow.trUtf8('&Import')) + self.FileExportMenu.setTitle(MainWindow.trUtf8('&Export')) + self.OptionsMenu.setTitle(MainWindow.trUtf8('&Options')) + self.OptionsViewMenu.setTitle(MainWindow.trUtf8('&View')) + self.ViewModeMenu.setTitle(MainWindow.trUtf8('M&ode')) + self.OptionsLanguageMenu.setTitle(MainWindow.trUtf8( u'&Language')) - self.ToolsMenu.setTitle(self.trUtf8('&Tools')) - self.HelpMenu.setTitle(self.trUtf8('&Help')) + self.ToolsMenu.setTitle(MainWindow.trUtf8('&Tools')) + self.HelpMenu.setTitle(MainWindow.trUtf8('&Help')) self.MediaManagerDock.setWindowTitle( - self.trUtf8('Media Manager')) + MainWindow.trUtf8('Media Manager')) self.ServiceManagerDock.setWindowTitle( - self.trUtf8('Service Manager')) + MainWindow.trUtf8('Service Manager')) self.ThemeManagerDock.setWindowTitle( - self.trUtf8('Theme Manager')) - self.FileNewItem.setText(self.trUtf8('&New')) - self.FileNewItem.setToolTip(self.trUtf8('New Service')) - self.FileNewItem.setStatusTip(self.trUtf8('Create a new Service')) - self.FileNewItem.setShortcut(self.trUtf8('Ctrl+N')) - self.FileOpenItem.setText(self.trUtf8('&Open')) - self.FileOpenItem.setToolTip(self.trUtf8('Open Service')) - self.FileOpenItem.setStatusTip(self.trUtf8('Open an existing service')) - self.FileOpenItem.setShortcut(self.trUtf8('Ctrl+O')) - self.FileSaveItem.setText(self.trUtf8('&Save')) - self.FileSaveItem.setToolTip(self.trUtf8('Save Service')) + MainWindow.trUtf8('Theme Manager')) + self.FileNewItem.setText(MainWindow.trUtf8('&New')) + self.FileNewItem.setToolTip(MainWindow.trUtf8('New Service')) + self.FileNewItem.setStatusTip(MainWindow.trUtf8('Create a new Service')) + self.FileNewItem.setShortcut(MainWindow.trUtf8('Ctrl+N')) + self.FileOpenItem.setText(MainWindow.trUtf8('&Open')) + self.FileOpenItem.setToolTip(MainWindow.trUtf8('Open Service')) + self.FileOpenItem.setStatusTip(MainWindow.trUtf8('Open an existing service')) + self.FileOpenItem.setShortcut(MainWindow.trUtf8('Ctrl+O')) + self.FileSaveItem.setText(MainWindow.trUtf8('&Save')) + self.FileSaveItem.setToolTip(MainWindow.trUtf8('Save Service')) self.FileSaveItem.setStatusTip( - self.trUtf8('Save the current service to disk')) - self.FileSaveItem.setShortcut(self.trUtf8('Ctrl+S')) - self.FileSaveAsItem.setText(self.trUtf8('Save &As...')) - self.FileSaveAsItem.setToolTip(self.trUtf8('Save Service As')) + MainWindow.trUtf8('Save the current service to disk')) + self.FileSaveItem.setShortcut(MainWindow.trUtf8('Ctrl+S')) + self.FileSaveAsItem.setText(MainWindow.trUtf8('Save &As...')) + self.FileSaveAsItem.setToolTip(MainWindow.trUtf8('Save Service As')) self.FileSaveAsItem.setStatusTip( - self.trUtf8('Save the current service under a new name')) - self.FileSaveAsItem.setShortcut(self.trUtf8('F12')) - self.FileExitItem.setText(self.trUtf8('E&xit')) - self.FileExitItem.setStatusTip(self.trUtf8('Quit OpenLP')) - self.FileExitItem.setShortcut(self.trUtf8('Alt+F4')) - self.ImportThemeItem.setText(self.trUtf8('&Theme')) - self.ImportLanguageItem.setText(self.trUtf8('&Language')) - self.ExportThemeItem.setText(self.trUtf8('&Theme')) - self.ExportLanguageItem.setText(self.trUtf8('&Language')) - self.actionLook_Feel.setText(self.trUtf8('Look && &Feel')) - self.OptionsSettingsItem.setText(self.trUtf8('&Settings')) - self.ViewMediaManagerItem.setText(self.trUtf8('&Media Manager')) - self.ViewMediaManagerItem.setToolTip(self.trUtf8('Toggle Media Manager')) + MainWindow.trUtf8('Save the current service under a new name')) + self.FileSaveAsItem.setShortcut(MainWindow.trUtf8('F12')) + self.FileExitItem.setText(MainWindow.trUtf8('E&xit')) + self.FileExitItem.setStatusTip(MainWindow.trUtf8('Quit OpenLP')) + self.FileExitItem.setShortcut(MainWindow.trUtf8('Alt+F4')) + self.ImportThemeItem.setText(MainWindow.trUtf8('&Theme')) + self.ImportLanguageItem.setText(MainWindow.trUtf8('&Language')) + self.ExportThemeItem.setText(MainWindow.trUtf8('&Theme')) + self.ExportLanguageItem.setText(MainWindow.trUtf8('&Language')) + self.actionLook_Feel.setText(MainWindow.trUtf8('Look && &Feel')) + self.OptionsSettingsItem.setText(MainWindow.trUtf8('&Settings')) + self.ViewMediaManagerItem.setText(MainWindow.trUtf8('&Media Manager')) + self.ViewMediaManagerItem.setToolTip(MainWindow.trUtf8('Toggle Media Manager')) self.ViewMediaManagerItem.setStatusTip( - self.trUtf8('Toggle the visibility of the Media Manager')) - self.ViewMediaManagerItem.setShortcut(self.trUtf8('F8')) - self.ViewThemeManagerItem.setText(self.trUtf8('&Theme Manager')) - self.ViewThemeManagerItem.setToolTip(self.trUtf8('Toggle Theme Manager')) + MainWindow.trUtf8('Toggle the visibility of the Media Manager')) + self.ViewMediaManagerItem.setShortcut(MainWindow.trUtf8('F8')) + self.ViewThemeManagerItem.setText(MainWindow.trUtf8('&Theme Manager')) + self.ViewThemeManagerItem.setToolTip(MainWindow.trUtf8('Toggle Theme Manager')) self.ViewThemeManagerItem.setStatusTip( - self.trUtf8('Toggle the visibility of the Theme Manager')) - self.ViewThemeManagerItem.setShortcut(self.trUtf8('F10')) - self.ViewServiceManagerItem.setText(self.trUtf8('&Service Manager')) + MainWindow.trUtf8('Toggle the visibility of the Theme Manager')) + self.ViewThemeManagerItem.setShortcut(MainWindow.trUtf8('F10')) + self.ViewServiceManagerItem.setText(MainWindow.trUtf8('&Service Manager')) self.ViewServiceManagerItem.setToolTip( - self.trUtf8('Toggle Service Manager')) + MainWindow.trUtf8('Toggle Service Manager')) self.ViewServiceManagerItem.setStatusTip( - self.trUtf8('Toggle the visibility of the Service Manager')) - self.ViewServiceManagerItem.setShortcut(self.trUtf8('F9')) - self.action_Preview_Panel.setText(self.trUtf8('&Preview Panel')) - self.action_Preview_Panel.setToolTip(self.trUtf8('Toggle Preview Panel')) + MainWindow.trUtf8('Toggle the visibility of the Service Manager')) + self.ViewServiceManagerItem.setShortcut(MainWindow.trUtf8('F9')) + self.action_Preview_Panel.setText(MainWindow.trUtf8('&Preview Panel')) + self.action_Preview_Panel.setToolTip(MainWindow.trUtf8('Toggle Preview Panel')) self.action_Preview_Panel.setStatusTip( - self.trUtf8('Toggle the visibility of the Preview Panel')) - self.action_Preview_Panel.setShortcut(self.trUtf8('F11')) - self.PluginItem.setText(self.trUtf8('&Plugin List')) - self.PluginItem.setStatusTip(self.trUtf8('List the Plugins')) - self.PluginItem.setShortcut(self.trUtf8('Alt+F7')) - self.HelpDocumentationItem.setText(self.trUtf8('&User Guide')) - self.HelpAboutItem.setText(self.trUtf8('&About')) + MainWindow.trUtf8('Toggle the visibility of the Preview Panel')) + self.action_Preview_Panel.setShortcut(MainWindow.trUtf8('F11')) + self.PluginItem.setText(MainWindow.trUtf8('&Plugin List')) + self.PluginItem.setStatusTip(MainWindow.trUtf8('List the Plugins')) + self.PluginItem.setShortcut(MainWindow.trUtf8('Alt+F7')) + self.HelpDocumentationItem.setText(MainWindow.trUtf8('&User Guide')) + self.HelpAboutItem.setText(MainWindow.trUtf8('&About')) self.HelpAboutItem.setStatusTip( - self.trUtf8('More information about OpenLP')) - self.HelpAboutItem.setShortcut(self.trUtf8('Ctrl+F1')) - self.HelpOnlineHelpItem.setText(self.trUtf8('&Online Help')) - self.HelpWebSiteItem.setText(self.trUtf8('&Web Site')) - self.LanguageTranslateItem.setText(self.trUtf8('&Translate')) - self.LanguageTranslateItem.setStatusTip( - self.trUtf8('Translate the interface to your language')) - self.LanguageEnglishItem.setText(self.trUtf8('English')) - self.LanguageEnglishItem.setStatusTip( - self.trUtf8('Set the interface language to English')) - self.ToolsAddToolItem.setText(self.trUtf8('Add &Tool...')) + MainWindow.trUtf8('More information about OpenLP')) + self.HelpAboutItem.setShortcut(MainWindow.trUtf8('Ctrl+F1')) + self.HelpOnlineHelpItem.setText(MainWindow.trUtf8('&Online Help')) + self.HelpWebSiteItem.setText(MainWindow.trUtf8('&Web Site')) + #i18n + self.AutoLanguageItem.setText(MainWindow.trUtf8('&Auto Detect')) + self.AutoLanguageItem.setStatusTip( + MainWindow.trUtf8('Choose System language, if available')) + for item in self.LanguageItem: + self.LanguageItem[item].setText(self.LanguageItem[item].objectName()) + self.LanguageItem[item].setStatusTip( + MainWindow.trUtf8('Set the interface language to %1').arg(self.LanguageItem[item].objectName())) + self.ToolsAddToolItem.setText(MainWindow.trUtf8('Add &Tool...')) self.ToolsAddToolItem.setStatusTip( - self.trUtf8('Add an application to the list of tools')) - self.action_Preview_Panel.setText(self.trUtf8('&Preview Pane')) - self.ModeLiveItem.setText(self.trUtf8('&Live')) + MainWindow.trUtf8('Add an application to the list of tools')) + self.action_Preview_Panel.setText(MainWindow.trUtf8('&Preview Pane')) + self.ModeLiveItem.setText(MainWindow.trUtf8('&Live')) class MainWindow(QtGui.QMainWindow, Ui_MainWindow): @@ -511,6 +533,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.FileSaveAsItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onSaveService) + #i18n set signals for languages + QtCore.QObject.connect(self.AutoLanguageItem, + QtCore.SIGNAL(u'toggled(bool)'), + self.setAutoLanguage) + self.LanguageGroup.triggered.connect(LanguageManager.setLanguage) #warning cyclic dependency #RenderManager needs to call ThemeManager and #ThemeManager needs to call RenderManager @@ -552,6 +579,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): log.info(u'Load data from Settings') self.settingsForm.postSetUp() + #i18n + def setAutoLanguage(self, value): + self.LanguageGroup.setEnabled(not value) + LanguageManager.__AutoLanguage__ = value + LanguageManager.setLanguage(self.LanguageGroup.checkedAction()) + def versionCheck(self, version): """ Checks the version of the Application called from openlp.pyw diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 12fc4a293..e4edd420a 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -151,5 +151,6 @@ def variant_to_unicode(variant): from registry import Registry from confighelper import ConfigHelper +from languagemanager import LanguageManager -__all__ = [u'Registry', u'ConfigHelper', u'AppLocation', u'check_latest_version'] +__all__ = [u'Registry', u'ConfigHelper', u'AppLocation', u'LanguageManager', u'check_latest_version'] diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py new file mode 100644 index 000000000..7f2b92fcf --- /dev/null +++ b/openlp/core/utils/languagemanager.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2010 Raoul Snyman # +# Portions copyright (c) 2008-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. # +# # +# 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., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### + +import logging + +from PyQt4 import QtCore, QtGui +import os +from openlp.core.utils import AppLocation, ConfigHelper +#from openlp.core.ui import MainWindow +#import i18n_rc + +class LanguageManager(object): + """ + Helper for Language selection + """ + __qmList__ = None + __AutoLanguage__ = None + + @staticmethod + def getTranslator(language): + if LanguageManager.__AutoLanguage__ is True: + language = QtCore.QLocale.system().name() + lang_Path = AppLocation.get_directory(AppLocation.AppDir) + lang_Path = os.path.join(lang_Path, u'resources', u'i18n') + appTranslator = QtCore.QTranslator() + if appTranslator.load("openlp_" + language, lang_Path): + return appTranslator + + @staticmethod + def findQmFiles(): + trans_dir = AppLocation.get_directory(AppLocation.AppDir) + trans_dir = QtCore.QDir(os.path.join(trans_dir, u'resources', u'i18n')) + fileNames = trans_dir.entryList(QtCore.QStringList("*.qm"), + QtCore.QDir.Files, QtCore.QDir.Name) + for i in fileNames: + fileNames.replaceInStrings(i, trans_dir.filePath(i)) + return fileNames + + @staticmethod + def languageName(qmFile): + translator = QtCore.QTranslator() + translator.load(qmFile) + + return translator.translate(u'MainWindow', u'English') + + @staticmethod + def getLanguage(): + language = ConfigHelper.get_registry().get_value(u'general', u'language', u'[en]') + print "getLanguage %s" % language + regEx = QtCore.QRegExp("^\[(.*)\]") + if regEx.exactMatch(language): + LanguageManager.__AutoLanguage__ = True + language = regEx.cap(1) + return language + + @staticmethod + def setLanguage(action): + actionName = u'%s' % action.objectName() + qmList = LanguageManager.getQmList() + if LanguageManager.__AutoLanguage__ == True: + language = u'[%s]' % qmList[actionName] + else: + language = u'%s' % qmList[actionName] + print "setLanguage: %s" % language + ConfigHelper.set_config(u'general', u'language', language) + QtGui.QMessageBox.information(None, + u'Language', u'After restart new Language settings will be used.') + + @staticmethod + def initQmList(): + LanguageManager.__qmList__ = {} + qmFiles = LanguageManager.findQmFiles() + for i, qmf in enumerate(qmFiles): + regEx = QtCore.QRegExp("^.*openlp_(.*).qm") + if regEx.exactMatch(qmf): + langName = regEx.cap(1) + LanguageManager.__qmList__[u'%i %s' % (i, LanguageManager.languageName(qmf))] = langName + + @staticmethod + def getQmList(): + if LanguageManager.__qmList__ == None: + LanguageManager.initQmList() + return LanguageManager.__qmList__ + diff --git a/resources/i18n/openlp_af.qm b/resources/i18n/openlp_af.qm new file mode 100644 index 0000000000000000000000000000000000000000..58b2f37c46413f2353c6d2b8010ff92a8470e13f GIT binary patch literal 34261 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 Koqdfwo&OJYJqCsV literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_de.qm b/resources/i18n/openlp_de.qm new file mode 100644 index 0000000000000000000000000000000000000000..40563e3126991a2ae329f023b373dcd8bd04d246 GIT binary patch literal 36265 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 ZU%N#4BPb=^-O - - - AboutForm - - - build - - - - - AlertsTab - - - pt - - - - - Location: - - - - - Font Color: - - - - - Font - - - - - Font Name: - - - - - Preview - - - - - Alerts - - - - - Alert timeout: - - - - - openlp.org - - - - - Keep History: - - - - - Background Color: - - - - - s - - - - - Bottom - - - - - Top - - - - - Font Size: - - - - - Save - - - - - Clear - - - - - Add - - - - - Edit - - - - - Delete - - - - - Item selected to Add - - - - - Missing data - - - - - AmendThemeForm - - - Slide Height is %s rows - - - - - First Color: - - - - - Second Color: - - - - - Background Color: - - - - - AuthorsForm - - - You need to type in the first name of the author. - - - - - You haven't set a display name for the author, would you like me to combine the first and last names for you? - - - - - Error - - - - - You need to type in the last name of the author. - - - - - BibleMediaItem - - - Quick - - - - - Bible - - - - - Book: - - - - - Text Search - - - - - Find: - - - - - Search Type: - - - - - Bible not fully loaded - - - - - No matching book could be found in this Bible. - - - - - Dual: - - - - - Chapter: - - - - - Search - - - - - Keep - - - - - Results: - - - - - Verse Search - - - - - Version: - - - - - From: - - - - - No Book Found - - - - - Advanced - - - - - To: - - - - - Clear - - - - - Verse: - - - - - BiblePlugin - - - <strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service. - - - - - BiblesTab - - - ( and ) - - - - - verse per line - - - - - Display Style: - - - - - continuous - - - - - [ and ] - - - - - Verse Display - - - - - Display Dual Bible Verses - - - - - Only show new chapter numbers - - - - - Layout Style: - - - - - No brackets - - - - - Bibles - - - - - { and } - - - - - Note: -Changes don't affect verses already in the service - - - - - verse per slide - - - - - Bible Theme: - - - - - CustomMediaItem - - - Custom - - - - - CustomPlugin - - - <b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br> - - - - - CustomTab - - - Custom - - - - - Display Footer: - - - - - Custom Display - - - - - EditCustomForm - - - You have unsaved data - - - - - You need to enter a title - - - - - Error - - - - - You need to enter a slide - - - - - Save && Preview - - - - - EditSongForm - - - You need to enter a song title. - - - - - You need to enter some verses. - - - - - Save && Preview - - - - - Error - - - - - bitped - - - - - v - - - - - c - - - - - Invalid verse entry - Vx or Cx - - - - - Invalid verse entry, values must be I,B,T,P,E,O,Vx,Cx - - - - - EditVerseForm - - - Verse - - - - - Chrous - - - - - GeneralTab - - - CCLI Details - - - - - primary - - - - - Application Startup - - - - - Select monitor for output display: - - - - - Application Settings - - - - - SongSelect Username: - - - - - CCLI Number: - - - - - Automatically open the last service - - - - - Preview Next Song from Service Manager - - - - - Show blank screen warning - - - - - Prompt to save Service before starting New - - - - - General - - - - - Show the splash screen - - - - - Screen - - - - - Monitors - - - - - SongSelect Password: - - - - - Display if in single screen - - - - - ImageMediaItem - - - Select Image(s) - - - - - Image(s) - - - - - Image - - - - - Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) - - - - - Replace Live Background - - - - - No item selected - - - - - You must select one item - - - - - ImagePlugin - - - <b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br<br>From the plugin if the <i>Override background</i> is chosen and an image is selected any songs which are rendered will use the selected image from the background instead of the one provied by the theme.<br> - - - - - ImageTab - - - sec - - - - - Image Settings - - - - - Slide Loop Delay: - - - - - Images - - - - - ImportWizardForm - - - You need to specify a file with books of the Bible to use in the import. - - - - - Invalid Bible Location - - - - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - - - Bible Exists - - - - - Empty Copyright - - - - - Empty Version Name - - - - - Invalid OpenSong Bible - - - - - Your Bible import failed. - - - - - Finished import. - - - - - You need to specify a file of Bible verses to import. - - - - - You need to specify a version name for your Bible. - - - - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - - - Starting import... - - - - - Invalid Books File - - - - - You need to specify a file to import your Bible from. - - - - - You need to specify an OpenSong Bible file to import. - - - - - Invalid Verse File - - - - - Open OpenSong Bible - - - - - Open OSIS File - - - - - Open Books CSV File - - - - - Open Verses CSV File - - - - - MainWindow - - - The Main Display has been blanked out - - - - - OpenLP Version Updated - - - - - Save Changes to Service? - - - - - Your service has changed, do you want to save those changes? - - - - - OpenLP Main Display Blanked - - - - - Version %s of OpenLP is now available for download (you are currently running version %s). - -You can download the latest version from http://openlp.org - - - - - MediaManagerItem - - - &Preview - - - - - You must select one or more items - - - - - Load a new - - - - - Delete the selected item - - - - - &Edit - - - - - &Add to Service - - - - - Send the selected item live - - - - - Add the selected item(s) to the service - - - - - Edit the selected - - - - - Add a new - - - - - &Show Live - - - - - Preview the selected item - - - - - Import a - - - - - &Delete - - - - - &Add to selected Service Item - - - - - No Items Selected - - - - - You must select one or more items. - - - - - No items selected - - - - - No Service Item Selected - - - - - You must select a existing service item to add to. - - - - - Invalid Service Item - - - - - MediaMediaItem - - - Media - - - - - Select Media - - - - - Videos (%s);;Audio (%s);;All files (*) - - - - - MediaPlugin - - - <b>Media Plugin</b><br>This plugin allows the playing of audio and video media - - - - - OpenSongBible - - - Importing - - - - - PresentationMediaItem - - - Presentation - - - - - Present using: - - - - - Automatic - - - - - A presentation with that filename already exists. - - - - - Select Presentation(s) - - - - - File exists - - - - - Presentations (%s) - - - - - PresentationPlugin - - - <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. - - - - - PresentationTab - - - Available Controllers - - - - - available - - - - - Presentations - - - - - RemoteTab - - - Remotes - - - - - Remotes Receiver Port - - - - - RemotesPlugin - - - <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche - - - - - ServiceManager - - - Save Changes to Service? - - - - - Open Service - - - - - Move to top - - - - - Create a new service - - - - - Save this service - - - - - Theme: - - - - - Delete From Service - - - - - Save Service - - - - - &Live Verse - - - - - Move to &top - - - - - New Service - - - - - &Notes - - - - - Move to end - - - - - Your service is unsaved, do you want to save those changes before creating a new one ? - - - - - &Delete From Service - - - - - Move up order - - - - - Move down order - - - - - Move &down - - - - - Load an existing service - - - - - &Preview Verse - - - - - Move &up - - - - - &Edit Item - - - - - Move to &bottom - - - - - &Maintain Item - - - - - SlideController - - - Move to previous - - - - - Go to Verse - - - - - Start continuous loop - - - - - Live - - - - - Start playing media - - - - - Move to live - - - - - Preview - - - - - Move to last - - - - - Edit and re-preview Song - - - - - Delay between slides in seconds - - - - - Move to next - - - - - Move to first - - - - - Blank Screen - - - - - Verse - - - - - Stop continuous loop - - - - - s - - - - - Theme Screen - - - - - Hide Screen - - - - - Chorus - - - - - SongBookForm - - - Error - - - - - You need to type in a book name! - - - - - SongMaintenanceForm - - - Are you sure you want to delete the selected book? - - - - - Couldn't save your author. - - - - - This author can't be deleted, they are currently assigned to at least one song. - - - - - Couldn't add your book. - - - - - Error - - - - - No author selected! - - - - - Couldn't add your topic. - - - - - This book can't be deleted, it is currently assigned to at least one song. - - - - - Delete Book - - - - - No book selected! - - - - - Are you sure you want to delete the selected author? - - - - - Couldn't add your author. - - - - - Couldn't save your topic. - - - - - Couldn't save your book. - - - - - Delete Topic - - - - - Delete Author - - - - - No topic selected! - - - - - This topic can't be deleted, it is currently assigned to at least one song. - - - - - Are you sure you want to delete the selected topic? - - - - - SongMediaItem - - - CCLI Licence: - - - - - Song - - - - - Maintain the lists of authors, topics and books - - - - - Lyrics - - - - - Type: - - - - - Titles - - - - - Clear - - - - - Search - - - - - Authors - - - - - Search: - - - - - Song Maintenance - - - - - %s (%s) - - - - - Delete song? - - - - - Delete %d song? - - - - - Delete Confirmation - - - - - SongUsageDeleteForm - - - Delete Selected Song Usage Events? - - - - - Are you sure you want to delete selected Song Usage data? - - - - - SongUsageDetailForm - - - Output File Location - - - - - SongUsagePlugin - - - <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service - - - - - SongsPlugin - - - <b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br> - - - - - Open Songs of Fellowship file - - - - - SongsTab - - - Display Verses on Live Tool bar: - - - - - Enable search as you type: - - - - - Songs Mode - - - - - Songs - - - - - ThemeManager - - - Import Theme - - - - - Create a new theme - - - - - Delete Theme - - - - - Error - - - - - Make Global - - - - - Delete a theme - - - - - File is not a valid theme. - - - - - Edit a theme - - - - - Edit Theme - - - - - Export Theme - - - - - You are unable to delete the default theme. - - - - - Theme Exists - - - - - Delete theme - - - - - Save Theme - (%s) - - - - - default - - - - - Select Theme Import File - - - - - New Theme - - - - - Import a theme - - - - - Export theme - - - - - You have not selected a theme. - - - - - A theme with this name already exists, would you like to overwrite it? - - - - - Export a theme - - - - - Theme %s is use in %s plugin - - - - - Theme %s is use by Service Manager - - - - - ThemesTab - - - Theme level - - - - - Global theme - - - - - Use the global theme, overriding any themes associated with either the service or the songs. - - - - - Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. - - - - - Service level - - - - - Global level - - - - - Song level - - - - - Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. - - - - - Themes - - - - - TopicsForm - - - You need to type in a topic name! - - - - - Error - - - - - Ui_AboutDialog - - - Close - - - - - License - - - - - Credits - - - - - About OpenLP - - - - - About - - - - - Contribute - - - - - OpenLP <version><revision> - Open Source Lyrics Projection - -OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. - -Find out more about OpenLP: http://openlp.org/ - -OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. - - - - - Project Lead - Raoul "superfly" Snyman - -Developers - Tim "TRB143" Bentley - Jonathan "gushie" Corwin - Michael "cocooncrash" Gorven - Scott "sguerrieri" Guerrieri - Raoul "superfly" Snyman - Martin "mijiti" Thompson - Jon "Meths" Tibble - -Contributors - Meinert "m2j" Jordan - Christian "crichter" Richter - Maikel Stuivenberg - Carsten "catini" Tingaard - -Testers - Philip "Phill" Ridout - Wesley "wrst" Stout (lead) - -Packagers - Thomas "tabthorpe" Abthorpe (FreeBSD) - Tim "TRB143" Bentley (Fedora) - Michael "cocooncrash" Gorven (Ubuntu) - Matthias "matthub" Hub (Mac OS X) - Raoul "superfly" Snyman (Windows) - - - - - - Copyright - - - - - Ui_AlertDialog - - - Display - - - - - Alert Message - - - - - Alert Text: - - - - - Cancel - - - - - Ui_AmendThemeDialog - - - Shadow Size: - - - - - Slide Transition - - - - - Bottom - - - - - Image - - - - - Height: - - - - - Outline - - - - - Main Font - - - - - Solid Color - - - - - Font Main - - - - - Use Default Location: - - - - - Other Options - - - - - Shadow - - - - - Italics - - - - - Background: - - - - - X Position: - - - - - Center - - - - - <Color2> - - - - - Opaque - - - - - Outline Color: - - - - - Alignment - - - - - Normal - - - - - Bold - - - - - Footer Font - - - - - Theme Maintenance - - - - - <Color1> - - - - - Font Footer - - - - - Font Weight: - - - - - Transparent - - - - - Background - - - - - Vertical - - - - - Width: - - - - - Middle - - - - - Shadow Color: - - - - - Vertical Align: - - - - - Top - - - - - Right - - - - - Font Color: - - - - - Horizontal - - - - - Circular - - - - - pt - - - - - px - - - - - Display Location - - - - - Y Position: - - - - - Show Shadow: - - - - - Font: - - - - - Preview - - - - - Outline Size: - - - - - Wrap Indentation - - - - - Left - - - - - Theme Name: - - - - - Image: - - - - - Transition Active: - - - - - Size: - - - - - Gradient : - - - - - Bold/Italics - - - - - Horizontal Align: - - - - - Background Type: - - - - - Show Outline: - - - - - Gradient - - - - - Ui_AuthorsDialog - - - Last name: - - - - - First name: - - - - - Author Maintenance - - - - - Display name: - - - - - Ui_BibleImportWizard - - - Bible Import Wizard - - - - - Bible: - - - - - Crosswalk - - - - - CSV - - - - - OpenSong - - - - - File Location: - - - - - 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. - - - - - Copyright: - - - - - Verse Location: - - - - - Server: - - - - - Permission: - - - - - Select Import Source - - - - - Set up the Bible's license details. - - - - - BibleGateway - - - - - Username: - - - - - Download Options - - - - - Location: - - - - - Bible Filename: - - - - - Format: - - - - - Importing - - - - - License Details - - - - - OSIS - - - - - Web Download - - - - - Please wait while your Bible is imported. - - - - - Select the import format, and where to import from. - - - - - Proxy Server (Optional) - - - - - Welcome to the Bible Import Wizard - - - - - Password: - - - - - Version Name: - - - - - Ready. - - - - - Books Location: - - - - - Ui_EditSongDialog - - - &Remove - - - - - Alternative Title: - - - - - Add a Theme - - - - - R&emove - - - - - Verse Order: - - - - - Title && Lyrics - - - - - Theme - - - - - Authors, Topics && Book - - - - - Copyright Information - - - - - Topic - - - - - Lyrics: - - - - - Edit - - - - - Authors - - - - - Song Editor - - - - - Delete - - - - - &Add to Song - - - - - CCLI Number: - - - - - Add - - - - - Theme, Copyright Info && Comments - - - - - Song Book - - - - - Edit All - - - - - A&dd to Song - - - - - Title: - - - - - Comments - - - - - &Manage Authors, Topics, Books - - - - - Ui_EditVerseDialog - - - Verse - - - - - Ending - - - - - Number - - - - - Other - - - - - Bridge - - - - - Pre-Chorus - - - - - Edit Verse - - - - - Intro - - - - - Chorus - - - - - Verse Type - - - - - Ui_MainWindow - - - Open an existing service - - - - - &File - - - - - List the Plugins - - - - - &Service Manager - - - - - Open Service - - - - - Media Manager - - - - - Alt+F4 - - - - - Toggle the visibility of the Preview Panel - - - - - &User Guide - - - - - Set the interface language to English - - - - - &Import - - - - - Quit OpenLP - - - - - &Preview Panel - - - - - &New - - - - - Default Theme: - - - - - Toggle Preview Panel - - - - - &Settings - - - - - &Live - - - - - English - - - - - F9 - - - - - F8 - - - - - Save the current service to disk - - - - - Add &Tool... - - - - - &View - - - - - &Export - - - - - &Open - - - - - Toggle Theme Manager - - - - - &Options - - - - - Ctrl+S - - - - - Ctrl+O - - - - - Ctrl+N - - - - - E&xit - - - - - &Help - - - - - Toggle Service Manager - - - - - Ctrl+F1 - - - - - Save the current service under a new name - - - - - &Web Site - - - - - M&ode - - - - - Translate the interface to your language - - - - - Service Manager - - - - - &Theme - - - - - &Language - - - - - &About - - - - - &Plugin List - - - - - &Translate - - - - - New Service - - - - - &Online Help - - - - - Save Service - - - - - Save &As... - - - - - Toggle the visibility of the Media Manager - - - - - F11 - - - - - F10 - - - - - F12 - - - - - Alt+F7 - - - - - Add an application to the list of tools - - - - - Theme Manager - - - - - Toggle the visibility of the Theme Manager - - - - - &Preview Pane - - - - - Save Service As - - - - - Toggle the visibility of the Service Manager - - - - - More information about OpenLP - - - - - &Media Manager - - - - - &Tools - - - - - Toggle Media Manager - - - - - Create a new Service - - - - - &Theme Manager - - - - - &Save - - - - - OpenLP 2.0 - - - - - Look && &Feel - - - - - Ui_OpenLPExportDialog - - - Song Title - - - - - Title - - - - - Select openlp.org export filename: - - - - - Close - - - - - Export - - - - - Lyrics - - - - - Full Song List - - - - - Progress: - - - - - Remove Selected - - - - - Author - - - - - openlp.org Song Exporter - - - - - Song Export List - - - - - Ready to export - - - - - Select All - - - - - Ui_OpenLPImportDialog - - - Author - - - - - Ready to import - - - - - Progress: - - - - - openlp.org Song Importer - - - - - Song Import List - - - - - Import File Song List - - - - - Close - - - - - Select openlp.org songfile to import: - - - - - Lyrics - - - - - Import - - - - - Song Title - - - - - Select All - - - - - Title - - - - - Remove Selected - - - - - Ui_OpenSongExportDialog - - - Close - - - - - Lyrics - - - - - Song Title - - - - - Select All - - - - - Song Export List - - - - - Author - - - - - Title - - - - - OpenSong Song Exporter - - - - - Remove Selected - - - - - Progress: - - - - - Select OpenSong song folder: - - - - - Ready to export - - - - - Export - - - - - Full Song List - - - - - Ui_OpenSongImportDialog - - - OpenSong Folder: - - - - - Import - - - - - Close - - - - - Progress: - - - - - OpenSong Song Importer - - - - - Ready to import - - - - - Ui_PluginViewDialog - - - Plugin Details - - - - - Active - - - - - Status: - - - - - Version: - - - - - TextLabel - - - - - About: - - - - - Inactive - - - - - Plugin List - - - - - Ui_ServiceItemEditDialog - - - Service Item Maintenance - - - - - Up - - - - - Delete - - - - - Down - - - - - Ui_ServiceNoteEdit - - - Service Item Notes - - - - - Ui_SettingsDialog - - - Settings - - - - - Ui_SongBookDialog - - - Name: - - - - - Edit Book - - - - - Publisher: - - - - - Ui_SongMaintenanceDialog - - - Edit - - - - - Topics - - - - - Add - - - - - Authors - - - - - Delete - - - - - Song Maintenance - - - - - Books/Hymnals - - - - - Ui_SongUsageDeleteDialog - - - Song Usage Delete - - - - - Ui_SongUsageDetailDialog - - - Report Location - - - - - Song Usage Extraction - - - - - Select Date Range - - - - - to - - - - - Ui_TopicsDialog - - - Topic name: - - - - - Topic Maintenance - - - - - Ui_customEditDialog - - - Delete selected slide - - - - - Edit selected slide - - - - - Edit All - - - - - Add new slide at bottom - - - - - Clear - - - - - Delete - - - - - Theme: - - - - - Move slide Up 1 - - - - - Title: - - - - - Credits: - - - - - Edit Custom Slides - - - - - Edit all slides - - - - - Save - - - - - Replace edited slide - - - - - Move slide down 1 - - - - - Set Theme for Slides - - - - - Edit - - - - - Add New - - - - - Clear edit area - - - - - alertsPlugin - - - Show an alert message - - - - - <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen - - - - - &Alert - - - - - export_menu - - - &Bible - - - - - &Song - - - - - OpenSong - - - - - openlp.org 1.0 - - - - - OpenLP 2.0 - - - - - import_menu - - - &Bible - - - - - &Song - - - - - OpenSong - - - - - openlp.org 1.0 - - - - - Import songs in openlp.org 1.0 format - - - - - OpenLP 2.0 - - - - - Import songs in OpenLP 2.0 format - - - - - Songs of Fellowship - - - - - Import songs from the VOLS1_2.RTF, sof3words.rtf and sof4words.rtf supplied with the music books - - - - - self.ImportSongMenu - - - Import Error - - - - - Error importing Songs of Fellowship file. -OpenOffice.org must be installed and you must be using an unedited copy of the RTF included with the Songs of Fellowship Music Editions - - - - - self.splash_screen - - - Starting - - - - - Splash Screen - - - - - tools_menu - - - &Song Usage - - - - - &Delete recorded data - - - - - Delete song usage to specified date - - - - - &Extract recorded data - - - - - Generate report on Song Usage - - - - - Song Usage Status - - - - - Start/Stop live song usage recording - - - - diff --git a/resources/i18n/openlp_en_GB.qm b/resources/i18n/openlp_en_GB.qm new file mode 100644 index 0000000000000000000000000000000000000000..ba67f92d1960c5aacc9ce47122b14b490c06e614 GIT binary patch literal 31723 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 literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_en_ZA.qm b/resources/i18n/openlp_en_ZA.qm new file mode 100644 index 0000000000000000000000000000000000000000..f4c8ca5eafd0a08ce80cc88cf1fed7ed450319f7 GIT binary patch literal 22938 zcmcIs33%1TwV#{Z$#QdZ6C=imF2;C=$p8BH7Hn5dmvIOIz!T zb*o$Lvs!EGT5M~RpQlvxDkXo>s{zWCD$D@ZSa>YpnfQIY zQcX7jo}|=_?*Oh*YRNLdvn;$$sdbz2`*xLg&y#?UsOXi$0AEnipS%e8M-|-?RVos( z@E{9kTX?pLzTATR?tXLg8<)9Q?7a(w2G;wb1|Oip%$KQ;k|0c-_c%lo0^$=5AaiU+^BCV zrHd@ASH~TB1%6Mru*<^hEquQWeo7gYTi*V0X}Hqb~SIwCj9=JntuW2y{J^p{|NI|G(pY( z>vX_Y)v^(EE&7&PbjL3NuU04Q^$y@2YH{%dz!%iwN3T_?xJoVl$7g_ts+0bF1mG04 zqy+RRKEc9sExcbXS@|i_f2~d~K)uC(P$xePx)gt5V64W%8LI8g_mzsBqR#)%p@8ev z1?xbU*cIx^HCqAiQP+R#4}kBgTgITik|WjD@1VVsx#~Bot_OTZy*MQe_i^!=9#{s@?U}8+9^=a@&VsWH%3D`ZcA<}a&=$yDKa`rE- z0sNoHb$d<4@){i3{1y18?C8joQ}zQ~9(n$`Nq`qbUe3D#@b1X#=VG49UNW$}DDuGv ze^jb`R9+EyT$LY}SNZtGfM3r`K8SHuMDvD>{v7a_yx~7ae#QE{Nh`VmZ_it_3~PAr z`n)Ty|1sb>c{d$V3wTrBBRl#4pUnH@vOAO-6wCYj6Hfpho*(}{#y@CQe%Y3dfNSy( zn6nV@^8DoKp!cAA^N(-b4){v`f{`aEwNHNjQr5fAY5D0PmjYgt|HB^4|2|vuAK8KO z`+SxE@>5qRRau+=g}~YQe?6`lzkBlkzKQ9VMT@>{0Q@joUOQH)eG8)p-uM#W(&*4B z3jpto4m)Tw;CslIEPxggxH)=t*^dBEi(YrqF99!z z{AB4>8^Y-qWQwgI+az=?Sgx0Z!5rHueBspeNos9Pl zk6ZYGfd?LF;e0)J_9Gqgb8 zbvM$79$?||fJ|SmAFMbHaGidv>2H9y=x3|u06wkXeDFcQ9r~Rge5uqyds}$Cg&Qq= zxFBy3*4II=6;yPfo?-a~72DqfTu?A*GWd5`x?u1>z<0y0EI9i7TEK@3=H2@m;I@Lr zy%_(ne-td8e}q!Qs|!}P-Vb<8!Rl#{&%;kDIDHN9hi@#{P_!NJM+HB-ehc8k1&`lw zFyLzjjwrM6n1Wx`@1xX+MFrbG#=0KSU8uL82zYbhK}D|v{;qIb$6%!nt|>g`4vg#I zrotJ?3jsR{Pg8|}7g_jlVNVOz#lf!?uKoK$rAC$&o_$UiV140tFGKl}I}0y-cCAu} zv=m_gOBdtc#J z4ZEQB)xzJN^f}-^3t!n(r_`u1g>QZG1Yk$u_O}RcEXv#KZNL|cqMI)R{G>=1jZ
    ME7qq%zK+?yc-ieK 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 F{{i+YlWPC~ literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_hu.qm b/resources/i18n/openlp_hu.qm new file mode 100644 index 0000000000000000000000000000000000000000..c6632c745835ec60cfe298ae528ff8d11cc9f320 GIT binary patch literal 35270 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 IBd?$TFRNd&`Tzg` literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_ko.qm b/resources/i18n/openlp_ko.qm new file mode 100644 index 0000000000000000000000000000000000000000..5a91048541b8c6c29bfe0edd019360a8936f1ff9 GIT binary patch literal 462 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 H?Be|oD>Q=; literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_pt_BR.qm b/resources/i18n/openlp_pt_BR.qm new file mode 100644 index 0000000000000000000000000000000000000000..47d0b78c8865880e9961adf106de12ed8bbc3ff5 GIT binary patch literal 35931 zcmcJ22b|T#wg24RJ6rBn7X(Bg3j!kG3W$KKp)NI)1r|h5WPuATZo%CJ6kmKsjr}8v z4NEjWV~Z_{Euxr2{M$N-}|p0Irlenrky!+=FFKh zGe&U47}ZeS1B!?7D~lYoamxoM?<`!~gsv>}5=RE8szZR{)MNCchnUs)I>D zra@T#oq(q!>KA~QIruvVzcgmrna0Gr7&Co5V1K{~fQJF1+}IRjmJ9|w3UC=fntI{@%fVm>HukHKw4#!5=!<;^1`-zGQxM|2M$< zz|736G^Q}u!6VGfE0*JXxr1jqc)NptaPTXIi31#*W@g1V8IxFIW+e&R&8*83fajSx zFWmrmwW%Hb65w49{>9WT*^KYc%-r+ZjVY=yb3f`2IN8koYBJykGylO)0B1H4##ggI)TcL8h7qQbF&KQW6QxeD-Av*_E;0Y5Q|%Yk2# zFpF1$FG>cO#UFr2OU9ZdMWAcRTnA5g@LscI)n^EQ#vGH!bRFiHCqd7W|5jK!$ic;C ztbWd2ARu_N57UWFxQ;% z2H*we=0i|U*+*vQnW#s3fq7x|HGmhJ7bms>-e>-+tP1eY=Cupn#5k@nuWd$q_nB<| zy6i2$P3B*-76aZI%Xtp@@AFhF_w=WXspuXnC~F3s9jmzQ1HkpMir0{T#U-&WCqE1L zaIE{R1mNyipId%nOqYXVKlo@J;F?(9;izwy&9Q#HP=1#OVl{==1AY}dZox=ny7qT) zQ>^|;@Nd_6AN@aEVlzqu0Mug6YZINX?S-C`Gy$9K26 zv8(r)1bAv}+dp0eyf*gu#QgwYjy?a}cw@R3#$L|34sclP&u5{Y-H&qc+}N&Nf5Z3f zIR!arPxlvdx;+Y6(xZ1y<%6KperMDTdI{jq zb8hB1?DcC0J94(Yw-(>KbMCqIIb(Vsm~-!1(4}`>&b`d9_whLolFxcyn6rJ=p@28! z?AVQZ^?oAflZ)>#rq2O6pX@pXaB0rhk39x>R&Md-PXYcsw`}|AfWOY|`pl((@8@=( z|AH|;IK;uF4qlMkd-ei^-=14}0_ypLS95{>$?T; zmE0e1I@*}N2j`xC-3-7Px!11y9PoKQd^dN;Zj{?^zuXt*?EtLJefbHL-|zO^ zk1m=E_(JZdJAMlI4}}Lz%Keh@2b`Gu)r|RoSLJ@ancu&Q7kpD~O#klj^1&kjhsA$z z{Y!wi#QRO02e>=l|A1}A444`pQGogm*b-k>4SEdN9#3va8Z&TH{G`TBfH%Z9{R(s$ z_)vV)y@bDypY|lu4SYX-dJFpFz+Aw~0ei;JzjHa@a0lxhyePhT%ee@@5%5vKN8(%l zR1Ek^{F0B40Q@$7+4f_N88pbjnenaDAHw&F_||Vw-$AFuuPFNuz{}%TFUGhV^qcs# z4ajHE8ww99iQkfk_=Eb#Z@u83fF}X|3-H4Dt($WJZ;IbG^aj8k4!*5$a5o2MIe13= zwp&q;!9R2GkMX;Ag5HBakKezk)R-Z|<2!$ad1lC}_%l;L-yuJZKfeL(AM$etUyi@g z@+rPQiN7}=bRXKs!Fln|UbqO~8{=OdwHWXr8$00_fM40%AA>Fj4+TVf4xVh|%eJ|imcJ-=j0UuI0ywI*0iSma}vFDu(J{|t=_L9+K0k_&K&*S&E_Nud?-;5}C z@CbW#_3QYaXRkSVHQ=-Mjz`hH5r0#7XbB+baA-gKtGf|?=x7I512X(ndtVFMb?6oL z!HTtjciZ1i{cpey`^*)hUe9kaUPhgsclf!30UyYl^xH0g zujkcn`=c?VOizS6_iN}y)noD=z3xE3V;$V$;EuefhwY2-Kjn3N{5Qal^KA#@ z&Jn}&i%(hrxGevGfA++^3Q*EqcP(S z$Upyi$cb^a4xZ`Y@A5Ak^B%%?0_PFuzYJD`*<|4B+g7w!U`*K3Z_Hxd%FYdBIPiqnW7(7hHGsIKZt1+smGUPQP!# z_6tz2X(Jpww_xX5)OXtB1y6nXN5IzyBPo>IWq6E{DE z`qxcK+%fhWz~d5k6`-AU8xjwE^n1V?5)YkU2e>2g99=*Qkyy`EE zS=_Ja{3&k%PAIzmEYN@PF-6z^r5Nxk2j5V*QivHQByD>{gI(T|<;XR+@ zdq;8crb_|eDJ~y_@qb)Jao-fI<5r#wD`8Mpx281i|;H${wt0wzU%0>0FNzx@FTQm#n$5OF~UcR zpE!?re=Gj`v&eU4my*0q^NmR+O8QRu8{i=&BNv%m($%oTk0{o`rqX9P<)3BiAA7gF;JiBx_^^%5; z(rGKu|7*)jXD7jjYmYCTy9oWW_QKM6*Q1@sPcA*{=BEIgOV8cetXckITvIeus9 z-Rsfr#-~f~8PX2;W$E_Ze>0}3Z|Nhiqui#MrN4b*2Vk=FiKXDfrdLW|h$Fw|eM|qe ze+S^a(pR6v_-Veg^tIPOkLHg{KPy{oOiTANQ}ZC;qOyJy(SI#xl^w+K-||Y?;V(iy ztSc#-c|Xcsx1ns|bkJqptz}#Kq1<&Zmfd#BVSt~M-TBR6V@~K_cF%=zz+=mPdqGdY z8_OQQ1nEwAw(PBT)VDRS?A;u+qxHbDk7r?Aw$3Q~_`c@=&%q?p`T!)F$uVvD0Er2W z$=3F^y87kD;g_<1-#uW+C1OnZ7p`Rze0kVBs*^7BNAEimg$ zy=gV|47yW-D$E44(lnSA_`k(8Gdexd zTGHFHWLXr0i8Lq=hOwksjewK3xvU48*~n*uX|Xg@Nnk00fCVZxz&M5o*sUa@59&?| zwj;U{l_Em3(3M1Q1maCE3SzODEF^EwNNkwBGGk>Vb5`vA&?)SYS@jLg?aAi)<`qf5 zZ!#uA{ane3pdko+xz1H*7OJbQYqd1GNpLyZ(q>LD>(S^|vYtQBX?}72*X;+oMF3BVq!uNmxfcm?I^s zSfbVq)2uDvwgeb}(RGd6IU+pO742QTeaMJLfzTe6e&HGHAN3M#@MWsQI;_cTIN@`28_N=Bp^g1wiu)pz0f1; z(Bx)BtTR>kYQ;=ii7CIz49g&AuqCnQbe207f>wZ$(aLU@tR}2)U(?dsHl?MNorc|v zbeuA(EtA%_wYM~NhF0QfH=QDpN)uaJj_(YqYs!?|8E#44nq*UQR(*5*>SSxC76gqd z#Xz83;f&SFxoB2=leD%tn93zMslj=s2E9PM%MyZ@fPfu{?tp->+^BJhDd_6aLy#*Z zY1#B9)FnI=u$PmLYPq!|!Cf)Sb86*CT!|WrOh@#R%@REbr3T{4sit5Dio|tD^qI&x zh&0R1AxXlSDO-|nz*X%S`I_LP{*s`7mIU=u$_5b>%>S#&f=)v0LR}lENnqzm0y%r9 zPFA%jY&}Rr9S<`)Hm3x26f|1)K`UssT7K=N>VaJ?R{?6AP1-%!;&Op=P?*rsa=%Lg z2ZlP`n?e^NT~ska-LNqx31(wTrdIR5Bd^X3ZK!3XHbW9a!s45g_G*-g#^Fn6l(4?j zW~wZA+9cy*Og(R)#~PG>u<<6rrQkB=mc+l9`+)!L=Mqs44XIvOtJ$nUmB5JDoO5YX z=0NP$Ndz@|PH)Ht8+Q^^99FbCo!79%x2F^-GBINc%e_HAqtB$pE6APLDwN;^YSe&W zX%hAgC9ncyPw5p_wv<9;VY0O?>4X6G7dyi*pWoQ9GC8TGxxKZe5lcu&gicZfkv+m1 zCi>E!8!dM(rNkZ>`yn+HNYl|_ptj|vrl9ncg%H_NwG}G4)Gq4TdD!t3q;fDnJ6yGF z3HIH@B#<;1mS4T0OU2~f_+j!?HATcfj9|>p3Xi=#s(;k%~V0I!a~c_7%N2s zT7h~k$N$vSnYV^QCMXYL_f--u>|`)-_;X}aVGGs{%~CcA5S3KzkW=J+aDwS;xveV& zlnN2wK-DG6a-UZsP8Cuz?`o3(892b2&_*hO%@C2Q3O2h1N4;5v#t@t9mzJ!k*G-ZKd$`fkCqSb6pyO2Bv$(W&0P!{Dl#!^Vt|piRlQ02?h!#%%Nn2}J z`Wi?%{V=Wi)&nG*hNR?AZ7}JBrokaWkVlGzg2VIbyh_BaI~OkNyd(QKS=5XpvivU+>_5lmvepL8nk_HSd{& zWtv=t-yM_`aKmxUo{2)-@))^-syop`sh5zH6et{1Ivx5l!qUY}G8u^RL!?x76=ruN^A%`IU%0(U;CB)e==?v^ zp9@I)sBGZy3`+-2?Vj0tl5h$~db=+f+bn(Xq#h?i#nCB!J)mDMey>8p20$J4q=7OY z*(M-7hX*ON7O~8S*s_O!FUC+_urjIo^*EaY_dlt^JkW;|RCszPv6(fKH$o3#R^C|D zX+Dr$>AC}W4L*gEc~6<*f;od3JGH~o;ZTq`>9gndehQ_Jq9h#*`f=Mul`v0Mrs;90 zezm1Tqa@-ELSSO0f1?D`>^}j`^`=-lJo*u#K|#41-4CEEWF}1ON3hkZopPJT(+nnn zz!W@Gx9CPGc~D>ShNnk!HF#6q*3}7pEd`lPp}j=<+0yk=f-{lbNi-livL}$%?+Z9- zN=hz;X=$YehjXiPE||#De^XFu(WjIN-f-g(+k+wuj9@k=e$@Izmr%)iSg7rp_MPUT zK9sng;@o2CMJh@Api9HtPmw?&-2&4p{sZE!Qv|UTWl&{v9Bk=#>LNTF02d6^mX4?r zF;H~>)Um(;7tM(ttCFA^d=%Qd0-{c1>3qpqF)UwOEZtotldk^i2WmUA7~$E7i@2qE zR73O1mW{^J3$}CgD64jkA7s}LO`sGH_D%u;>@f{JZ>8)(AW)0hh?a1|p`2oiNg%e4 zjMoYXaboGDD@poG>%z+j&X_6LSo-n`dLu}{T+}4Tu3&Wno{CDoh|mX~xAF>v*b3o| zB!-jbq%#Xg5~d7G*I_BPXNuAi7GLx$7Ni*|GLBM+h}!27b6%v*tfjXyb4s$Mld@!5 zAtgr@NO~?yWKD>!lpdsdm>L`=sjCpyipr4A<1~KL0or93l5Rlq^bfVBb4f!>u6C#r zj*C5=9Xtt-dso)qe81@JkL(#?m@ zdbSJNjEwzCzS^_=*WULv97{KO$&~V#yu|s2(=`3&C88N)Ue{|GcG6KMW4#>`%9`*< zBipcEsircIT^X0kSaj5vf~TRGf#U>GLpv+@@*9EQ^-xObPC-WGWX>_;6_T{{`Ijum zrwEeHWkidN-pD4Q<*@;m)dZAFMTNRFspd5{7~GXu=6VerAi5iey%_m0lk?<(WYtFu zO};CSIYb8H8zLhxax9M~2;w~`FLhy%K79HDrxvu}AXtTZQTyiau#qLa7K=(9&Nejl zav(59s^CC|1k%FI6=)D~uNT4YVN+Bu(Qi#WLYrKag9gfv*Kffa4>Qdo%)Eg!3d4(GyxEJ6e3_ zK;NloyIXcz9ySrA(7uaw0sAdHV38lrqqt`HW^)R|u)iSBs0a>s+_LdnGROHBLF|UimAN?RIG||KM-ey}<5wyP z9u~tAtDe4P#X~dcxYiG*gyq0ijVV>j$t2ODlEj}TIm~e|$CWh+S+*kMA!fGaIi0lN zISl?+TJU@XZ_brqZf1Ie4)sdw8JzOThL_24kEedJ;fw2DvUNkliX=TwxKHSL)$B1@ zW{L3x?_U92LseG1H$kri@NHOJ;Yt%6(yCI(kpCtFe zqF6RyE>iOcg%??aoK2}3n4TLgPf1CluCk`nts9O=HQ4d+lthWBJMs*|Ri2Qp|omZ!D^xu>kx6phUbd`YX*cnv4K z_LRo*_?IA6i6txe8O|#qzYM>IO}+;N&yGnZ!^AwP<1tvCN0+EHVyr}#RP7)) zaokLjQuoW|v5_*fS)NUkM4Vaz`*F49VYRdfI$rSfnnaXKimbgCodS5qEpsaCM{!G> zL1Kwe-C7q5-g;M+-G!jfCS=!Qd8AH~aG{(k?ow5@sDKNU zYo5oGOuC|ax=k2zs1NYK@E$ors_#O2JOUoKgp02 z23<$QYYiww^VV_PVdH^7K`cPeQ)fYgaW+tbio?n-`8rkA=PAL=nAt|+-lRzB{fuQ; zKO?Gz-Xclo!|)CyD1j4mTaY)y2mQDeN zgqEix{a}Ba!}74C1ox5AMLy-EOz}ak4R(Kcn$jT#5+##&I*(flVnRBzo)xw{dnti* zUu8Qy+v+T|i##6oS72*``F9+9H)5*c!OicRne`J_$&m4sd2gw~vNLRSlWlQKR7x$C z1(Ub6T4i}|R3a9K?8y{JVYeuX?{rU)kRc!C238mf*6;=m3c;aNDMa0uFmqX+Pn95g zuX4&2GXtrW=4r~KtLdoL4_+6lIVVQ)7gay%-AU2T0&G}}xH z6_4v?!nau>Py!D2`Y8ez9z@`zuSC#392D&>Iz8RgEqlmgI1(%gdWE{wo9{`G6R87O zo){LiuIM-B5_YIVE;vXm(c#kv-g1rIyhZl3VWxFgvll)!0VK5RoA(PR!DC70-^E=EN1 z5yeJO5!WWmbLWzXTj8k&2ycQ!(KwbaXj}^@S)+S>Jg+VY6++OU^^ixFhuB>qUY6wT z6a^S)_r5AIlway0tvTFU{zd(qboHfiU+lLFfk| zmFfkOMnBvE;E*#}rq%k-Q9uhYSq|WUCZZ+$A8WJ$$)O-6FgW;57q+ z(iJS3Ism~wxP3sPx%)^h((^6kbp#U83ln}+_9?}w^CT^AD-g7$8B}SKf%|mabL7Z! z<3X67-9)Ldx9T>pLy&@KOyi0staC+lWy>2A1htQBkm-824NOL_x8~3`IImO?#0pTF zTt!cdjUZp6Io|S~1&Qp50w-XHTQx4~+O&)^Co~_IFbGn)uY!}x@D-#&u`kYV$mtao z&PO$Ds&8FsEN^JYo+!FsmK`_9hUXc5ozwE(2g!YuKg)FprIp^Hl>(?wt77m%90_cqUaLNbZEL=(xYV729?7J}3Zw4r6zvti6bZj^5@+d*#g&I>`KsUW)8WPY5Na~lRCT|bPu?8CN%}%Q7;Kd zCbvelya`0mKkQU9povnAM*)YhdxN?J+Zt-=3{Q`gDSE0gx*^aP;bF@$+oMx!4cbqW z3THl6w-(zedX^9Dgm3N)Q)}noCoL$<)jG!dQN5r?J!Pu;vM?3(2pYpEDyl56K9Pn` z1D#R@8Z!w9%VOxk6WZTG2&)>lP`6p$q9R!?4{;0Y&)Ry^0BaUiN?EH6)(C_K3ILYCGXiuFpdOW>bYjJ* zsL`T89?}rs;gURp>vvrKQ58@%5?{pQb{;_s8;`x3>kO18NGz}Nkwo;sQ1WwVapY(c z->hMI+mE2uU{D2;ASyV6@+d9BQb9Kc=~BkN#K^^^L6Y656f`Z@n=C!So$4+Fvg5WP z$zYJkTGB1*0iepX9?++HizK+1NRkXg=Z2N(fHPG5MA;BELee+2v{5op$%m8&It^(b z?qTra5+o_RtCZX(f}k0~QD!sCyOAV%XiC*+LMKVcvifgO**43olq4DV)Uw%{DfF8x zZ(9;no=C`s%F-aAfZV-YkXNF!NvTYOl5;uLF^Xuf;{#zw24E~Fcm7t!)_q=1E}j94 z9%j7xNs1ebx&>pLu8F}6DkpD{Q5(W^HJfgM<<(J=5syOXBt)gW6(|36XPM(2<>6*2 zK^q}UxA4-2wB~$BdUKwRb`-uXucMO0BSD+gX@IOS6UjW)HOwOb~c9)ujP`2BatI@L$%!M4i^Wj$L8!Wiuz5c zHm&m#Zh4!RBwvd*rEVRN!S=M?AtQX(QOm2tq|k{e8ltj^$JLSjY*dA@!PbD2VV3ug zNoEyLRg@|X(nN@G%S*{5av9{IaxV1%(L|A#I?+%KqN*e-Kp`&qO-EKXK}?LWAO-{D z-ZLqxH8dORH1fZ(qK3B$vWQVL&hoM~M+C0?-b3v@HMrXH1~!SLAuv^Rq!O6}fcg}L zHAD>6^=#%m-sJXu^F^gxV!9r%XXtbbcE+u6k|%F_an2fumYa@J_jY(wTsGWHCf#iK z){p3cKIPhqjh_ncVE1wTe3IpDbW+yRjQT4XGmxs3_o@Ob6H&|6Ulf$BSh1^!HTBWVE4$ z`hTx&XViu{-SX@?#S}LWGnr&KPATsw##95-8IqRn)e^%gDVSfW{i)bvN9jpTPx6Ep zBHZ!TmA5BLRJy44s7tDK!oVtNRrgEv$f^>0&_*~%YLTMhBa9n5WTv2oI)E9b%%o0O zLA;kj87|dosEo1#wbw1zq~*Pd!VP<4_~Ye@K5|suPFI6@1EV1K7d2Q{m%-r&Hi0_2 zGl*JV)acl9ptuJRf%Rn%g;*QP0`GDZRBo+?O&9F$rr<~u5ZCSyfR-YI~vn?ag0 z1h0eaJcad9x`u|RuhMhmMfNFqp`_%P5#9RH(fg%5K@|3}OHtn~uc(xq_jK^t$q!Nv zw^>S(Js*4yC;E}vDtpRmnqo_R2RTwyW2&~i7gKVs%0g;y7)8}PCfs(VB+TaM{MTsz zTi&=S2~w{q;T4<`Q6WOQRYtw)6etGwa!TYeX^XO8$gn{n{=ru;uoy>nRK=UREWISC z!gDF$EGm}Qeo8Ty_+vZ7{#g`L_GPlRb3b)}cIyr@)AdZrP|S4J&wF%=}90_6%SIEAwat7~3v znkD*ZM&r&?i5}|M$Kwr>D(jk^BP;B^$eU8XdoI>bRu0;ed+CqUiaUeGTHd)TIYy&K zXw*`PO2AUAR6WS@PF4vVDXV4ADXJ0Fh+gtW-kAV8Gsa)oSzhHT$vgLFk0?Tx_r6LZ z9%%?%)?^y8ybM+%>A4xv11;}|WmIetmIxq=3K*oFBs5a{f_k&?Kq{5P4*bjU7S;Cvni65<>4mq84Q>j29Q)PMeu27$6h=XY< z?7+)gc?BhW7(R5c)bhGsK{zI~j9{Zx)KG6Bfun9DUgHAE%n+KsD5<@{MX5m5l-tq? z+y*SgltNTeqH*7Z#|3yjutd;vn<9al6@qbFumtxP#`2UYRd-mBDykGsR8)DXu**L1 zmBm$@mbVPM?Ace&zt8g0VF}*zwB%2;mNyhjqCHK2p(MD>Sdvt@)pE#iYnW}#iL0rl&aG&Kx$&y{y^o1!X%KMWgx+k%bhW;ONqk(jq7*;GVSN7{W z9TDOB^2TL}tj(}?4@N>QYV=)K=)A;PvQEA2rw&zR^JPJnX_3Y2o;y!zeU!k7iI+qB z?K}#^Uk z@-#UWcX1VsXeB&pYhT%gCh%{v#`S!UyxaF<&5;a(Cb`<=o$GjoKJdhmJs=Q23-i-$appnYFRIs(8Y+YtP8@FnVxxnJpDGz|XT$`8Hw~o0!!Q^qkv+d_-3h5h z5t(P#FC<}`X|v=2^+uLAJu>%z8#UCoE?T}(AV%!<=#SVxgL%<^3f$!rw-)&gU#*H@gK)OVf3h8ac|In|aAYDfmf zvhd}6`#uIU-`9}f9x1%d(Jz`xnnjLJaCDx;`Y1fSoVqU-&??nA#^W5VKRcyP=nLUz z`QV3?n(D(vEzEhoLlfhBAc986(Xgu*$E_3HLLKJLA)tGZ+KaLyFU-+m`JjkoRGBuJ zQ;-KYi=j-sIU=Yd(o8bJl)GH0z;W^3 zh^XBUNt)$goSQEFi$z~ zR6x#+>gcL^b)|fNV2G!9$mWgO2mM=L;reo5$PRW#MG} zF+6>$X!mCUb~#>*l0>yx%T48MvSGHN%{af`@d%Y z)%R@wt?MD>r&9LG>I}z=QYIjosG}(+OAh2B z?k@$$izvmz8-~I1fPP_@L~#Wv06U(=1{}CFxtm~)WvPKmT$rdD!q-UDyqVP zp2Z_^60t_MH%YMY4LtN6p*Ew-CmmLve#7aB>_{djPDFpe7jF`Zat5^w5CiYgNs*~{ zTm(jhEK(kqRr3)$m$);JceX?2YUrq_<;!=Hc%GX)Rfkf!r1ok`G4hOmVmva=qT_;` zz{!xKyUp@BJ<0t0y7=-PKFJ__L%9ysus=7S>2u|%P*-J!b6K!w9w;&FBX&852>A|O zj`#f}gZ_v})h00gkYSL&xoEunn);1&Y)shz9%Rda!MR1^LsG; zYx(M$6cSLDj}JD(8EoJt1q+=|hwc$`rZ z@~Dy4F593BtHf!#qUGz3k`cMq)2x*xf>Zh^505{(ie_Ch3fHiORAk%@hPDi^MM}bM z!p3O|l;ty$f}lq!)kqLlR6tm~FexZ>9j+m*@jnNHvaf0fq!B|{bkud24^v8VE>d-! z7Ip*ihbiCu zoR$(c$9?0qPycU)|7*`bjt`-nAip=_-%~=Nd;WPwMwHEIp?EPm@^`(tE%F_F+!y?m zUyr7I^YhsZVP4RS-j7Zo-rr99`#?hQa<2JW<6<$w7~V40zgU@r`^I{EVTd2$LJtpx zO$>gg|B9vdqoBlU(=nqVG4yk6c{EJFVt8sb{V&$+Vowgo#m)?Wb@n@Uai-W9-h|Hl z7rQYW9=jv_mF;)z{@Bh;aWTATo9Qo>spmq7v3Eirp`WqOa`1-jp8vY=9Xh=AxKf@V zbC-|7OES5#p}w|p{ptqLv^3>iyrS@XYlhc5xXV9M?l3D&c|@#GuNUJD{f6ag{tFwD z8~t*5^t8<@w+p`(wBaGLnq+%@L!-Q&WXe)sM>3^s1E1P;*(5^O1}ExT)-|lqr{RjE z9bWE*(qgfANNrZg<8YxX*bJR0T+3#+v?m#5_F`g(Im_24=vmsjhm|~Ay(tYLO1L_h|7`&2fN&{AuIH7j3y}bck;ZeIZ<))e9$m4kh!a=OQ@MV;N zTozr?W@%cuEmmxIe%TgIL!QFY~`mK-p$$OHC;E9T2G83z+X-oJs xND3bJDz05#)F3Zz>Z7c3*gwOAsG;yEf9)IQ55JT|drM1Wn`TKmdo}Xt{6EJh9Nqu` literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_sv.qm b/resources/i18n/openlp_sv.qm new file mode 100644 index 0000000000000000000000000000000000000000..cd3485ece4368db4359f7bbd5bd3df2cf0ccf488 GIT binary patch literal 37049 zcmchA37D0|m3H0kTfN-Az1R{&MAEE5mS#sF4x8*dG$4Wt4Si`Edb7Jh!O@A)M5F%h z5>aEq7`M1aFgj>Vq8QhxGe)zkBX*K88g(={aa`to&#C&p?=IbtnLK~<=(%6jsqNIM zb55PwPI#!U*E8?lc;RnO zU<&Xod?T#zUcmDa^|@rI1q3;;CMik8=Gy++M$3a0j>jV zbnr4`w(r6BZj-n7Nx=I}d?(Vz9yjsZeh&Cs6Mr}k_*aE_0~}oG;AJNM$_iuh?lAV4 z9|JyO>@cLud&$^QPXNAc?3@FDpBsA}zVj;`oM7y&Xk-2YbM!a926&n|_D>fB-f6z{ z$ymVW%utq_|EU@J;vmqbw;B5OD8LbB81s$KG{ZJN3V5;^#(d+gW*GB}U+Cc7X4ng8 zPy8`ceclCtzffq8HKYC&-*&l~bkzXB3(bt{9tV8H%()Qtww($K2055Ab9U}Grr=^T z=QY%)V3(QuSJbCqubG#63-D<(f7n+6f2*)C=HMVRf5Nrsv&jx_aPVpeA9wICX2F9W z8&i}p3k#|M2ROLaEZnso-(Pj`yAD3>;M)p|%N?BL;3;NNe1|c`O=eMw@B*`FX994S zS@QBNfcKcC$G;5txPxz*rE4$8_orsrB^|~jD$TNY2Lett%RZU~xY^X~dmr#xv!d_o zfZsDKhRp>0jaf1EYk;4a73ZVhN`{$L_kb5mrkRtD_#@y+W_9rtz&5k`M>hce(5(LS zL%@GCYbuEU2eYOQe38sEYu*NrCXY62OF-A;a0gFu@KUpO;|B=eZB9WSnB-n_%G020 z@<|8ZQCRu~Q}^1Rj42&r>UWm{E->dFF&}W7x%j930dFvuYzLi7e_$^C{?&jlo1I(G zuVp>WO&9z-;Hl>JktnC^ezX7Us7Kk;=EeG(j45w6KcCSKc%}JWc{Si8=GDvI0DQ;1 zdO6x#(ZjsHt`qPd%;$^N0IrMWJ&*h=&X47v{|w+Gu_EMQDh|ZTetfJkN0?aUU2g-9 zj8(pha*kLYJM!$G0iGQ@YEc4kU##yP=K*%czW8n{=p9+P6{ z{`h)hdTfe)Wz}fFn`2i`QrL57?45VsG^XdGyrMj`uji(`o{vMu^t?K+Y9Hv=%jESN z{ujVWc>~L~0=DK2y2S$C0tozGZ{|(>5dCoUfV^oNS^zupR;}v`_^Z5YZ@R^p-UIV? zfjv#{1$o~cKNRrXyxTZFd+*M>efTwi_vhWt@!9)n2j9=z^BQ1AG>&^F~^>nUv&oRdF-wE z3uYexd?A1N5Xj=bW%;ME9(~WtZ|`>%;O+V6>^K?lclqb0|MStW0iN&R!}$j#{`LHi=GPe0 zFF*gUmjl1w;CRu;lL7xJUNLkG;CJF*y!mBg`j^D3`o9XeDc*m^a=-`U0|)E@d@nwx z2=yK?EWU0s=rUk=Jhd$a_)&a&;|^m6_Kokj5A+#0GQQ&h!kO`}K8D9Q>`qK|SM_Uv;rDgT@0s4!AIW)vuC(8{*fz_hrDZ#&|gyhrf;di=VNQSU(?#dnqevoV9q;y13rxEwq({_O_jGkCs(XT|R*VEmQwJ1_eT z@Rxv}1HK!-^YVOSzElvuYxpgI$2vI6!L1J7<=}z%U3a1$U;0Ghkm2$B_k-?3X2l=e zQ3lu?-+v$U(2!m6=VpV>L+*>eunp}W@~pz+^5g&B@}E%mRq+G&-2^x%{vS2yhvP1C zaBuvB7q7(kzs3)qv#ta>A^Unc&hSmY1T|>9qIP)EPg@aGo)<|n|K&axFiXzSF+85A7KJy#3?1J_hVmIObRfH#qn$`}T3b zAG6OMycPXEw!9#(2jt<{H3gN8C}-@o1(gTh0(`Nc$8_|=*mnzhe~R%muB_mgB9uRF zQo*E)hZ-}Xwcx~`90_ z(|(Wm=@|iTK;MVmg0?sV>-c1h!wii71FR-sBT~YA(?k@p8;NV*dC-*FPa>!SV znLN7S*->8rTwZYCy*B|H3he>NtI4+(CbzEye5vs0o9;2@%Xx(ZihcvQpzyf&`U2is zSbZ<(`sF7J$2Il_e7o?=_u%`4^1``QmjaF|oV$Am;DW-uFUNhi;!mlPi0Q|V{qN|bLlzD}h{_IS^?-XA80_4n;XBAG(cW`>)6%+r% zn5ml!ueuBLo_b#4w|@h=Ons$r_q+yUrVT5+b;X5%s|p|d6Z&u3_QIe18Rbp8sc^sD z1^8^?zpX~Qr@dYHZ)^Ty%=D3kzr4H}u(j}w_n!cKpzuH$+ByC0!UJ#Mdq#fYJ9k|R zIHoA?h)%!_Me#jX171*Mi^c&ySY(f?0Q`MX$=PVfiANR<+KF*_Vr$We!~np%i$<T7&G&jq6t;U0L~~n{`mQT=M>Glv;**_qQy6&J~Mw;bn<620Y5BS`wZ-d zSp$li#ytnPuBg4={eTY?oo)64zE$+K1k%mUFWPh72DHc56mqtPMmTX;PB!#KSn*~?k-+;cM9-P2M;Qo zS6y5`>1E7C78Eyp1N=Gvq2ks{fj|G>i#yKF2mHAB%+c2xv!Gw`nVUZWoL_wLgJ|c1 zl!KQPf2#m=UGTl)+t#cE{6+EY^WQLLVWRl<1>oz2Ba838Vlv>W;=A`;54gSf{+Y)E zURV6kH{Jq#qWJ0O5`e!fKJW%{j==a#IC)w0Dq9UbuY?Y_N&D0kDwjPhbQit z@-g77#P^HP-sS5P554=ZfLAB>8Khr+SK^UNR~S<>FY$B@6+rTspfGu&Lzc3(-$&E-JbCw@JWz9sGmBwO=fG z;J^!*qn=RmaNfIs50^Z;3;CQfyyUSPegt@D$y1B=1Abic#vT2PIrXTL-^ZQ+Tv+nQ zRiOK+?IrJ&-VFFy$p`b=jX7;}$%l_k0^C$`aPjAW2TDHcdz3M!|6bv`@yX)79~!f+ zHJRLTE#Q^OiiwaT>wcWN zLiy{jNiN^i2KZ!hT`#0t|8erH*MPU-_~g|~<^ZlqUNf~f;I8DZhh_mjn!G;tYrsD# ztm~b;{*yTGg z`=Ed8zgAlF`D9}@B}!A(C}-2M(oM55kJ_}u!Fx*^CNlmPrRRSK_1g4a>D}+4KO4$R z_ucm>;JDHsjco$Ft#toWCjkDw^qD{30r+|8^G!32**v-QH>VNSmj3Rh?SMCxzH>bC z+x$}LpXa`8%$9iRyMt~49AEn16K?}tQ#P9R)0TfJo4W!1zU9Bl7N@}9jrC>AR-^wK zuPa-AGw9GXy6nQ+p8;H0cJXz82COf;@v?gWcb47r$zo%g2bJBw74&H-D%(4(18_vy z!}w^U8km6zboyv+SwUz}GE*DSI)Fd|QW?{py$lfVE}6ej4Mn^`FaL zeHHX-eW~n&@-=|(m7AISj5*_|^8Pc>-)GD$KaTR|jC0B-{T%Y>jN8kneOe9pe)+-& zQGVO1@>TOdueSeJepP>z-}X@XH;48Ge7XFtbH~FK)W7`RkB0)zE8lxX9I(0kCztgG zytn+xYmmPEnexsK)W7|s@;~OGT^&8j-&+KE&@sCFy&pUexT*Xjw!7mJD6_54L!z2I z(_RRWnBJIb>u6t5yWUuQw#Qst_z^d=%|v|0uah`_PU7b-_t|PXvNI~|2xEa9`8y(KIsXUJ0r+3(cFR9{;L*WOn9rzS|vc<;sTBXVo=y)U-6$&upk|Y^i6< zx=s^D7MK%Fjah|&xnGwO3eeWkW)uSEO^XDKX2A4Fz!(P1kbs0)p=~mg5x91!1QsE% z#k88%?6$03myW?i8dLxWV9IPk!1g_^tifin*>35IlYlZ*F9kBSE2%7fa}rT$=9;Z$ z8~&>^8&Ptz=|JRdKbOb~vmB}FP|JG2HdC8bDY*2y#>`3HZc`kM4q<03s%>cQNHy0s zZ%76G(q%%_*VUp3t@KTJWrb8MX=b46n@p!N4_u29TxM2*d76bDXqlz2Q6h@KRSlp= z3PGcua6wDZ*Yivbg615MpacS1O>It+z&n|VgM==y2njn;Zaso-og;WN%q#3~1lEF+ zQ-D=wJ>W*v1HFNIll)bt$sEL23RP}JSS{k%CB#8yaD7TlngGg^r%W?5h7=!4j7hju1Zi6L37P! zl-p=p5&ZTj2~Hq5pe!7(0dCNEOFwK79MBiR0YL}*s*(?rsk2&J+B!~eN;PlAu!Yk$ zC@7$DG;kH_*=}lq`GSs#u;C>8Ss-f*D5nJHI1z5|365OSnrdFSbe0qsup^woQr=Ks zr?fnRu0fIPK*`V2bDWW=0sZO=?jjM~%o&N;`Rv(djLl|c0hAzRpx#?eyQNQB67>cD zHwZtmzu8Q!49f!lS~{%-u{Ril47lD=p$a9`qV9EvpaY!Ue_Q%_P3*RSj)#%n(t|FA z#9=l!;dAGH`K$m_O-DUR28ox*77_AEnst%pbas|V60M%EcWHfzi$EKFH_Sr3M>>{jfWMY(4rJuO9y`!b6 zYot=I_q#zMb!N1*Z0Q=MM~1TM8nbl8rc_gEQEhW=eX1?H-eE(Mke&@-8gMiD6l*Zj zzJyn85||1D+eDubb7#U~QqofFLx*9hMgqzCw4dsP4d*qX7EwmWN=`bO<)V(uZXSBI z1LC3ufom_9!2YOBquK7N8Q5Rw@Me_kgdLWF1i7k98(Ui2Jvn^M=Bx;(BGwS?K zp=Jt5?LcK76w6goT~fOfc~X)GnMhXEmWyVtMm0dI<)B62k8W^*b5XPybqM_Q!=OGS zQXA+1YmzO%3Y$bFBT5cB0}E~vOk*{LN}>m__U3Y?Q7iTZS*=S!hBdnG@iPQj4t&dn zJy(zYLUS-Y*7$;|ZAVX`5m@eXLC!W}#mYGTSEbt8Q*O*+F)$meqNcH-E_Gr{b4OcC zBW6DsxLJ5%P_Ilw3B5vf3d0;rijq4`t_*7mNG(9yEHnpuVAWAjd&88Yt_~GEyV0>0 zmLvtK0`rgt^w<{ga3h8uItQzi64e7ytl@N;dNklhrwU z=|GmA2poo;_bodIWN`>6n9z#lM8vk9_M8 zD(18_M)Oy!EiQzyWbO39=IK*~^pr@n&e(Kf(;nbp?ViFSlCWAVmFxwP#Ee)?7FUb^ z8bDb{Ei5DpN)@agtuF^Ytu)q(#8qT88EeggIv5j|sD;U@u}4@zLY>^9Td^oD3HqR0 zom>UWuq~Q5I~d~&Yu19+7mVCJ;^ivkdU@%FB55J8XbP-4%k^%_i{s`^6vK9sPubN( z1h---Tu`drU|@UeoC(57P*rH=1?3>A<=VMx&JroM8SKufVZ9jvdekC}vVlwMf>xV1`!VKx0niX%1+aiCHeo3wkeTa1I0xUYU)eG4NbK^mD~tQ2GiA z>%bNGmOi!%IkzYM0M6Vl11bPV=Z?ANI4`=F#84KCaIJP`34d3+$`Ww z=SibT{BTtHayYuUpFmJ6X@vvHQ+ApS zqmyt>7aQ@L-y%&cw<$=HDOohoMC2y&Kpm>mE>;i|X3dN&_c=&Ly<`R|)(MhC6u;#b z2tgU>q;m@pIF?9@%qd#Nyf9r+ar4CC=VSx)o?ewok%92A+=Susn;}AVGwQ`2*V!K} z7TVd32!XJ-+^Zqzqap*wi%v2OhjA1Bafp+Z7(!8!vfSR$WzD1WV-C#>8l=x5xH07L zbFu;Ys9=oNNX=4agHVIQ&QEt)f3E_-R@i#tnwxI;sdI$tSFB!8$P0&dKHe6fmZVnm9L78;`8Oah87n9& ztl@C{j&e|r>4cO;yP+LYqZ?YCCP>! zMl#3wmYcsM(KrYX+G(m%wYQov^t!dYEccB4-;%4Io*js9(zv@(?VYY$KzAKcYUI)6 zYqQ+5CiPhZ8c@yUVvn$cRS8h&(6!H^$-rt$kd4Vgp^;B{-)yGZJZy-QLZ%7LbW*AO z6Sb$*c8y98wLQoyoUOExN3f?(vg%`IMO>)L_5nLtZn+b*At;do)|)~5K~HCk@O6vQ4;6BlS> zAce)7S;7UXlNy@qTFx|<`!l;oPiM34@x$!sddgVfL>;`AaWdU^=22zvD;LVZ-O?U(~-tD4N)pb${#AZsI=+cr9h6S zy+H{V71o@7sSt0s+}J8b_Q{yUQs9Nch5KFwZD`P4HK-TWOsKG<1}uCNmYZZH5lu9; z5kU`ZiQI9r1dl;0>BFE&cM#&vOC7d#8}fDfN6afRy~&5zXe)^)NS>-5*+9-GqxyLx zM6=o#ly}~}hz*(8q3bg6K3ujT9DRpyBv@|kl??i0a_*N4No4kRrl{fmUqN04*{zx; zr{4iJ(D_0rExZM;vLl$S0FybW3#8g|W3d#_3nGd=7OpJ?+>1TOf)Q(uBpQ))Y&x^xJvoJE00d_Q)Lc#T|DU4L_(3x zmRq}}sO4#k)wSSbYI8qNVQ~}#YG|-14sF`Qta&a|Ml#2Kamjq9v-?v6@VnJPA0r0 zodG-*JCv#vF%Na0G*X*p~0wLL(}D>Rpf4P-UhpckK&W0ZlKmBew5L zKmw_pQDnK7UjoZeGuASUct9hFO&Lf-jXV7XJLy!^FpzVc<;MT4;NuzmO$qLak=Kbf zlKs?}Wp*hFhOX8hcve8t_HbioBdS0hmLp}lgQxqHHi%ZeqMZTa;7o#Rf*PRGWClO( zsxe2@O%;Z2Fe9@(xggPHfe6s`1RiAwvQsBKn1KzBZqnib2bVi7iO^-K4$B~#)ZPZZ zp{Jt5@;F40cj&y}=?Dq#35uz|WCSQqW}veI>2Pd95V$5m*5sNY*{{~}B!xtkiF=K5 zN2yBT%1SnxVP>)AagMCu zB@F&NE4T*1m*=}mu0XzlZp-Qe90utMFW3Gk9uDaWUv@{O+O{=pNO6M#SFrpxibE#L zy{W3JWHyMX0BS%Geq9R!8RvUk zCH%I#& zu#qIoTr>%dSe<7`HkN0S1YP&*aJ$iD%L7Uhm~NZ%ypjZ0W^2RrPE42BJlE7!IvYgx zcWmbkef8+lf+5FJVWMI<86`RO2ZvE}(%8`@LP|nPMXuM%Dy`-5DM22RA+4y^Vch1B zOgw2NNqQi!EYrpE0G340j0_R)98pEj3Bp3;&Pt7NRdYT7RE=z-YlU12<~c6Ot{3>% z?NUPWC9Y(y>hOq{pd>M$P|oB4pJ+?XaI0>EwUSxkM#QsW9o#RcDfk-%sDCO%Wz&cPKjDcf` z5;);7+}VCkLOx^Ojm!Y&8C|Y5peSb^O_qlnC9nWZ#qJ@}B5UI!PdrAEY!I*-I~_=A z?;L&;8LQ;b-4x!Dqw%3LIdcNx^|l`eARSIuN}1d%#7U2?dGWBNYs3na#7UYct@0W* zWP%-WJcXHwXmbQY`rw?VD``bQF3B{PLB&&?+1NHKSPgQX^>nrHqZtL_;HL!kcheG5 zj3bV{MQ2dhYv2W(4i)5auG{@$44H*p>x~}jjtplWI~|8gCAlsLbGEMv*1Pd|+SJw1 zi+&V}qo)$sOWdQJ&NU+Yh-$Vxl`1H@CP^hEx)z62CAbo1JuPGoUslr@7hQ^F9BP$x zRTwEcmdUl$m#W`6i;+zh-Ku7vOJ!tR0JpwirIP8o-lxjLvt8BO29dco7g6Bq0+d!X zZRUqK&g|I;5+Ph`M$h1wu9P_KZ`K!?79CIeN>-yl^yq#?T@K-(QkP`NA+A$w0S*Vd zq@lx%0$0QXs;-Tqz98q&6eXuNLKX2mu_WywY)p|$3r1Z^j6U#|i>CXO!kZ3{*^+a; z<>_OI&fL!F>#VCYpqb?XWuoQ{Hz%MeQv!EN+NKM{jg(m8v;oVjAj&6C0F_PZa%C&j zO68gc%_FQp0hjIvwp*PYIu{E(x`?6a$`vbiELUYW0k$G-xW$S&(MweYI+8uqgT<7p z6qO|y-o?HPsfV`1x5n4&1mrOV1}po4B+|0j!n9Rzp$0L%i%BIcg@muOpE-Hfpe*Ii zKh2SS6|O0ghF+&Io;;A=o~TQgEz8V}f-396u{;bf5tMK0 zwuoel6Y>(-+im*^XKo}G3D<6Ud|r_DIc^U8RcIxR2)}zclb>fI1JZ4ij3D)Xdfdq_ zjyq6` zLF$1Sd!{f(H0~yl=$^8cn!N#%mlg;D`(3qR;N-Nt$v`5f9q!Z&6{iqrhv0E`ExHwq zZh0Akt0&i7y%Fu^V3v0zNc2FNa&rlWTs0EiMh{0L2Elspx(m0wO2O6oM4+_*sok6@ zh+8c0SCB}qA1`tBp#3@mb@2zTc=>`LRRj|`w-`o!`URZ(kW(%?Q#z?(M{Qf3vAmg~ z>qP0RmtEtA+0aE8RcnJWMqmqA-uxitaDT2cKAhv07ePqyn4r#>d+ zcbwF-ygfn^_fNC^y@07gHdSVbp~wC>%PS@Xd0@5+0caWKnB`3rfJ?+h>8aG$|*jp~!1nEN{n9YkwLUNs|-8*cHCBt3F;RU4VPjOX&?j1JFj8OwVeHrdnQ5`;68SILiQKVTj zA!+6!Ds-Ux%B5S)Gy%NBvRU>aMWq@qSdr`&in!ISi|hf`D*e2ew^{rQ#?MEiYjryE z!6CS>MY83VDzzB8SOK-X(nV1Fc8^H5imssW%9q1Um%Wg2xT#S+S46XvT8*?e=Wo-G~gB0aqJI{yovJs@dvAUU3x^ zWm(>NBnaGQrjB#JwnCFwxiqK%Fxo7yM{;#ew?cdgWM4fm3^uX6MM=;z&ot8g8!nlu z0mG}71bKN*=JjmHK}@-?{uGtbY!A6t2bIofb&BEq^OpBFN#yyQ0 zy0Rzo+w#UKL8G68GrI1yhTj;gE8M)K%C#qADk1|KU%b(Pw^s?mIA|z;gM}JJx}Rn{ zxIw31oLlJ5BwF!oRlDV-SCX7tMd_L6R+uf8cVI~{4Mg=5F%Q37$@4S1OF+h(ofSWUA$*WKu{kcTCNXHJxs9HIMg|2?{su=!U%TN{C>%(j@503CbJJB!{6v4jkg@ z4yCB1sOc0w3i3m-E)i{!E{;cnchD=iH%)Tya*s;pDjRQ9lN8%&m+=q^zJPkwRBoiva8E9itC4z*T&VB z7sg4UmAvf6C2>;^%Uk4JWR2?svMae;?h)v!PkGDS;iXGoZR{?c^^vjl&WF@>&;LDq zN~&Y%6%IFgtG|yDNDVvwN*}{ZAO#twbMG{Pk1kPflcr(*^rA7nN;9e`@A;gLaKBw3 zDzNC&A|7WS>_pB*y`)f8&LQl(KE3vg_kJ(W0HNJWUn<>&)OAgk_XA1~_LX_4`c^oD z*(|)a1zD*xix&tAB5wmCdpYaU@A2`<2I0FL3Do^2;D9vTV8)Cc@0V1%jtXH zTZa+pZFy6oB;h47Ii#M5kI_qbNvy#Dwk|ZGm5NR+~VLBC>>6?Yw}|wN`z1 zk##J#7WXnrbbl0-YYw3^6rr=_<&A>Oo0oXo0@C9iM+u^~WBpY%AOaUVO2o!23*L+I z9K9Ri=BP$gtqj2&du(Nh$CqCl(f=KD1%f7W==smc4TB6q!d0NZn`N z9PvYwLyn7>a&83N z*C_~na!f-5Zq0NV@K(=5r?LTB8M@xBvEjCyDVDc^O8RKT7>zj1MGT2_(s7peg-V3p z91u=CbYyY=8?O=-lp!c9+YpcLF7a2T@zzmSTn(tkF)shNyoS_8&_}HdOOu-Sk}@L3 zvuoOoe(59KJPf?mz#?Cg<7q49()OHM(xt`nqcd^MU!7a^j%#USspBhZc~m3a0^|^? zLRDqqp7;?+MRi8!vgS+27!?~8T&SYdCZT7`Z=F*m$-&JH6C?&x=;TZ1XkMM=a@Ry_ z87jV9RPZVfY>i7_h59`)5`&$>DAX$y-UcfO9I7D#$04OP9F3M2#R|&YZbxDxR29v! zv`y70hX$Gwg+$|pB&ZhdoRutf2EkTyn+!%7E}@kOUe}oEOt^Iy7cW}gX)6&|p_ts&4i|UnTOln-5ncB6vWoVoH;kx_*emq2L=W>) zLaH%UB_+`pL!xk@jC{lTlMB4c0C8~9u2il<(8yL~E-ZLi-n}bPoIr+0cGMPTZhn(d zu8qvRuvZd~`rDJ@j$cXI!%bZM-7TWeEwBD%bZnGUOiP8i)k9CBc`-^}$h8Jq6};J8Z|6wBZON`vyb_~9&1K-+UJ7y{ZlEJG z;DTjIT8ZI626fYLB%W+}>#{_ap-`P+Ql`~gUc)RA?8h0MuxiLQfrCy+rFY#cd@?Sy75Yc?eX%npXFWHl6@5kn0V(U`nB{%njE?oq*m3Uk78>Fe zj|vlplSg$z8_G&jF6vpJb&-}=Az>)S$WECTK#*|0bf`IeEkSz@U3!!`ImRgd zv@62=DEz{yBFWkbEbX$iV?e+QQ*n8Y7orOt_hu04(1}TwOmeVtVIy;^JhGwZs%{oR z&`6F<`WXB=R3@oWeca}$6sO>4TREB&STnd!WfK`_sYhinaA25>CFlW{~3Ch(Te1xVyjltsnu z4?S~Sg+ho%V-qUg$suj|wtyt!6$O+B>O{}HgNaWMxOU8uzF~g+kKN7xbBf}p)jEx- zK?&3@Iof3Tf`MdLm$iz|?pK@DZw?FvyxIocuhn?3ZFHTV4<$%(!*edyr5z(fd;F>) z-&K%gtuns3q^LbU#0-VZ-Hax4cIbc8EYdG7Z*FwId4IMKUk~cG;vK{<;~y8K$^Imu za$1=8ah6XxNYVf0*wzc{(6%6vbYCOY55q%Ip08FM-_9(WJVm5RGZ_KI0PtRZ<1%s#~z=@qBTEZ^S{^x47nj^qMQ9+H8)Kutm- z=C*~I!if#bhdd<18{MqPkG(_9fo8fs^zIOvEPf|w?%wwEAqqZUVXdH6T6^EiGd82z z&$uk#8Ifvc?$lPsVTRmmi9|rXC{IvlI=@iYL|_8)VN?M{_LVT!@GOB@<9~IrULz}mNQQl!0xwvBSoUPku2oaZf4Gw&#Aa1 zG*kVlVQ=wdQWa{}^5qptGNy~I{?usf0&)ij5`_ZQ=N4FJe6B?jr*EYTj>NEmc*#Xj z#`(F9BP@q9bE7093((gykH}d=}Q;g_C6lFkt9RGOKg{3G@7Zi_3o*F9C#T=5^*VG9*7z$0pC9$ zw&lY)f~E&5bY!vz*ye4P@99YN!Y;U|`vZo#RR{PB&+|yOyc5N9l~?6{X^U_72-4eu zsA6~4V|K|M5IPyn<+$;Scz?UdQY(*|mO@L%L=K|_?8VWdYYtHX7799gW|;>?PIQ)} zYr|aK(LAzdewI%aNwc|d*QFoH@+Bid<3VUYqlns-BS0a4(FLD7666&!ukiAtyID{U zXPqz+2XW>Ga=xM@*^`O<&Z}T`!SZn>iQbXJuugX>ldN4E(-A{Wh^n?mw1X%lNZcqP zNa$+Imz|^%>O<;o11C=tc@tGD6N)503?I^+_T=FXa-Q9Z7UfH+Zv=wclDb+45Z~$)HDMU`2WY z&s9luxCk0-fb_d)E#I;dq)j=xi^TSBplD}#!!MoiQSHL6QBL*aD_jxavsqH)xSWfj zbfO2gHh$^iXt@84uWd>4GG{64no5V|^IH-zO2$$PI(9qyh}uCXX53ak8(&<=R=*Kv zKpog-&lkHSX`dVufxv*Ue9%kK#$@{~QB%*$BkeJb%%6zvURL6Q+`(%xbv!re-;7 zeF9Fm1%0EW2(_ng=0}X z|2We%$+HVP_wZ*+A#kG#O7I-wLH!N|Bex2GQ9IHe0VFtmjUKykePCr#{)gCqV@ zWm1w9rV@ilw0s;;kb1#njJ7tESbR57P!6@y$8pTPL406P5+vZh;o2DwZ1c522~=~$ zpGH%Dr9nV`*CFobS?qTmCn0gtWfz4yxdDyEBZiXw@U+37%Ow=f1^ZdPc__(-qWQBA zF`stUzvTmol4t@%INedKw(jNPFAgj1BMvw}U?MkBTfVF)8656@b3VZ+2`ZsZ(@z$F zvUrzKBKwFYq*Ug-izZpp=V)t0YWN+H9+C(%QKq_aAzH97r!ooIvT8q3Eo9X(b!KJk7~4n%q;oLaVg zA5&2IsDqwvr_WUnI`Gj_7Z-3OEJgH(ek-Z$$;8N-xXSc5yWRM_yVXz z>3oMCR>}hkVHJPTS#3F<2^Hi@Garp15;>a*>Mh?6b&)lQP|Ib#^jw|ggQ5~SJaY{P zRo4R5n9w%n*LZ z@Rqi~?<#a(_eQ_E`yG2ES8Qy5u26=>UWmrTev$U|dh{#&9s5HJFMwzN#XiXnV@RI# zQtmj3KPq=z-hjMuxnt5pkL0_Pcqg?^9wBshM&b&sR9!>u(#Eaz4H$F0YKMoZSGMDA zz?rGWREK|h_sEQ3c`(hCWxSSI5`CA^B=v?!m$~Gf^Ww^~jHd{TH633SF|4&_u&N<- zW>9O^rrp;%TDOkchDNPhdFHciri>Ke^VKe!MC1bZ#EO>Ih7J0lWQnxO=Uy!I68DnS zW`jH`8M${;wmZ3-tQNO)q!?w6aFpcJk-pXyEMFh4bU}Wjl)ORb!j1x#Kh&PK*}zn` zry4g_x3@Odwr@JUeM4I+)oeyjd#bskwxgk?S*R-y zV1^IinIh>4MwR+12rY2Vo^_ABT3Wn3)r7W6F2$h(PM_4%{*!Jf*WbY{q0!c*Js4z? za*E%-v{@0ooI-Lc4qqNOWg#O=oKQQ}(a`{|@YF8LxLhom_V{LHlopO&MZ#5VQpPwS zQ@Lz=fDY2!X#E2G>?f;Bl}_or8bMQDEfe|#L^2intq+CDJG3RzGoB|C;ln#gvKuR| zIhFEfn2{;xw+v@ZThbse@9KleaurC9hm9lQ=^XflDAj^e5*;lqjqRExd&1Yq_r(7I De-u-% literal 0 HcmV?d00001 diff --git a/scripts/generate_pro.py b/scripts/translation_utils.py similarity index 62% rename from scripts/generate_pro.py rename to scripts/translation_utils.py index 3b3cff17f..edc61f5d6 100755 --- a/scripts/generate_pro.py +++ b/scripts/translation_utils.py @@ -36,10 +36,26 @@ ############################################################################### import os +from optparse import OptionParser +import urllib +from PyQt4 import QtCore ignore_pathes = ["./scripts", "./openlp/core/test"] ignore_files = ["setup.py"] - +translation_path = "http://pootle.projecthq.biz/export/openlp/" +translations = [ "af" + , "en_ZA" + , "en_GB" + , "de" + , "hu" + , "ko" + , "nb" + , "pt_BR" + , "es" + , "sv"] + + + def write_file(filename, stringlist): content = u'' for line in stringlist: @@ -49,6 +65,48 @@ def write_file(filename, stringlist): file.close() def main(): + # Set up command line options. + usage = u'Usage: %prog [options]' + parser = OptionParser(usage=usage) + parser.add_option("-d", "--download-ts", action="store_true", dest="download", + help="Load languages from Pootle Server") + parser.add_option("-p", "--prepare", action="store_true", dest="prepare", + help="preparation (generate pro file)") + parser.add_option("-u", "--update", action="store_true", dest="update", + help="update translation files") + parser.add_option("-g", "--generate", action="store_true", dest="generate", + help="generate qm files") + parser.add_option("-a", "--all", action="store_true", dest="all", + help="proceed all options") + + (options, args) = parser.parse_args() + qt_args = [] + if options.download: + downloadTranslations() + elif options.prepare: + preparation() + elif options.update: + update() + elif options.generate: + generate() + elif options.all: + all() + else: + pass + +def downloadTranslations(): + print "download()" + for language in translations: + filename = os.path.join('..','resources', 'i18n', "openlp_%s.ts" % language) + print filename + page = urllib.urlopen("%s%s.ts" % (translation_path, language)) + content = page.read().decode("utf8") + page.close() + file = open(filename, u'w') + file.write(content.encode('utf8')) + file.close() + +def preparation(): stringlist = [] start_dir = os.path.join(u'..') for root, dirs, files in os.walk(start_dir): @@ -73,10 +131,6 @@ def main(): if cond == True: continue -# if file.endswith(u'.ui'): -# line = "%s/%s" % (path, file) -# print u'Parsing "%s"' % line -# stringlist.append("FORMS += %s" % line) if file.endswith(u'.py'): line = "%s/%s" % (path, file) print u'Parsing "%s"' % line @@ -95,6 +149,27 @@ def main(): write_file(os.path.join(start_dir, u'openlp.pro'), stringlist) print u'done.' + +def update(): + print "update()" + updateProcess = QtCore.QProcess() + updateProcess.start("pylupdate4 -noobsolete ../openlp.pro") + updateProcess.waitForFinished(60000) + +def generate(): + print "generate()" + generateProcess = QtCore.QProcess() + generateProcess.start("lrelease ../openlp.pro") + generateProcess.waitForFinished(60000) + +def all(): + print "all()" + downloadTranslations() + preparation() + update() + generate() + + if __name__ == u'__main__': if os.path.split(os.path.abspath(u'.'))[1] != u'scripts': print u'You need to run this script from the scripts directory.' From fe66e37a5755eae87d268d3183ea608858f5af4f Mon Sep 17 00:00:00 2001 From: rimach Date: Mon, 19 Apr 2010 21:12:34 +0200 Subject: [PATCH 04/22] corrections --- openlp.pyw | 6 +- openlp/core/ui/mainwindow.py | 14 +- openlp/core/utils/languagemanager.py | 50 +- resources/i18n/openlp_en.ts | 4848 ++++++++++++++++++++++++++ 4 files changed, 4884 insertions(+), 34 deletions(-) create mode 100644 resources/i18n/openlp_en.ts diff --git a/openlp.pyw b/openlp.pyw index 23c056c02..0dd2b62a8 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -194,8 +194,8 @@ def main(): # Now create and actually run the application. app = OpenLP(qt_args) #i18n Set Language - language = LanguageManager.getLanguage() - appTranslator = LanguageManager.getTranslator(language) + language = LanguageManager.get_language() + appTranslator = LanguageManager.get_translator(language) app.installTranslator(appTranslator) sys.exit(app.run()) @@ -204,4 +204,4 @@ if __name__ == u'__main__': """ Instantiate and run the application. """ - main() + main() \ No newline at end of file diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 99021deb4..c52c62fcd 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -262,14 +262,14 @@ class Ui_MainWindow(object): self.AutoLanguageItem.setObjectName(u'AutoLanguageItem') self.AutoLanguageItem.setCheckable(True) self.LanguageGroup = QtGui.QActionGroup(MainWindow) - qmList = LanguageManager.getQmList() - savedLanguage = LanguageManager.getLanguage() + qmList = LanguageManager.get_qm_list() + savedLanguage = LanguageManager.get_language() self.LanguageItem = {} for key in qmList.keys(): self.LanguageItem[key] = QtGui.QAction(MainWindow) self.LanguageItem[key].setObjectName(key) self.LanguageItem[key].setCheckable(True) - if LanguageManager.__AutoLanguage__ == True: + if LanguageManager.AutoLanguage: self.AutoLanguageItem.setChecked(True) self.LanguageGroup.setEnabled(False) else: @@ -537,7 +537,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.AutoLanguageItem, QtCore.SIGNAL(u'toggled(bool)'), self.setAutoLanguage) - self.LanguageGroup.triggered.connect(LanguageManager.setLanguage) + self.LanguageGroup.triggered.connect(LanguageManager.set_language) #warning cyclic dependency #RenderManager needs to call ThemeManager and #ThemeManager needs to call RenderManager @@ -582,8 +582,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): #i18n def setAutoLanguage(self, value): self.LanguageGroup.setEnabled(not value) - LanguageManager.__AutoLanguage__ = value - LanguageManager.setLanguage(self.LanguageGroup.checkedAction()) + LanguageManager.AutoLanguage = value + LanguageManager.set_language(self.LanguageGroup.checkedAction()) def versionCheck(self, version): """ @@ -743,4 +743,4 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def togglePreviewPanel(self): previewBool = self.PreviewController.Panel.isVisible() self.PreviewController.Panel.setVisible(not previewBool) - self.settingsmanager.togglePreviewPanel(not previewBool) + self.settingsmanager.togglePreviewPanel(not previewBool) \ No newline at end of file diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 7f2b92fcf..81e885070 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -25,22 +25,23 @@ import logging +from logging import FileHandler from PyQt4 import QtCore, QtGui import os from openlp.core.utils import AppLocation, ConfigHelper -#from openlp.core.ui import MainWindow -#import i18n_rc + +log = logging.getLogger() class LanguageManager(object): """ Helper for Language selection """ __qmList__ = None - __AutoLanguage__ = None + AutoLanguage = False @staticmethod - def getTranslator(language): - if LanguageManager.__AutoLanguage__ is True: + def get_translator(language): + if LanguageManager.AutoLanguage : language = QtCore.QLocale.system().name() lang_Path = AppLocation.get_directory(AppLocation.AppDir) lang_Path = os.path.join(lang_Path, u'resources', u'i18n') @@ -49,7 +50,7 @@ class LanguageManager(object): return appTranslator @staticmethod - def findQmFiles(): + def find_qm_files(): trans_dir = AppLocation.get_directory(AppLocation.AppDir) trans_dir = QtCore.QDir(os.path.join(trans_dir, u'resources', u'i18n')) fileNames = trans_dir.entryList(QtCore.QStringList("*.qm"), @@ -59,48 +60,49 @@ class LanguageManager(object): return fileNames @staticmethod - def languageName(qmFile): + def language_name(qmFile): translator = QtCore.QTranslator() translator.load(qmFile) - return translator.translate(u'MainWindow', u'English') @staticmethod - def getLanguage(): - language = ConfigHelper.get_registry().get_value(u'general', u'language', u'[en]') - print "getLanguage %s" % language + def get_language(): + language = ConfigHelper.get_registry().get_value(u'general', + u'language', u'[en]') + log.info(u'Language file: \'%s\' Loaded from conf file' % language) regEx = QtCore.QRegExp("^\[(.*)\]") if regEx.exactMatch(language): - LanguageManager.__AutoLanguage__ = True + LanguageManager.AutoLanguage = True language = regEx.cap(1) return language @staticmethod - def setLanguage(action): + def set_language(action): actionName = u'%s' % action.objectName() - qmList = LanguageManager.getQmList() - if LanguageManager.__AutoLanguage__ == True: + qmList = LanguageManager.get_qm_list() + if LanguageManager.AutoLanguage : language = u'[%s]' % qmList[actionName] else: language = u'%s' % qmList[actionName] - print "setLanguage: %s" % language + log.info(u'Language file: \'%s\' written to conf file' % language) ConfigHelper.set_config(u'general', u'language', language) QtGui.QMessageBox.information(None, - u'Language', u'After restart new Language settings will be used.') + u'Language', + u'After restart new Language settings will be used.') @staticmethod - def initQmList(): + def init_qm_list(): LanguageManager.__qmList__ = {} - qmFiles = LanguageManager.findQmFiles() + qmFiles = LanguageManager.find_qm_files() for i, qmf in enumerate(qmFiles): regEx = QtCore.QRegExp("^.*openlp_(.*).qm") if regEx.exactMatch(qmf): langName = regEx.cap(1) - LanguageManager.__qmList__[u'%i %s' % (i, LanguageManager.languageName(qmf))] = langName + LanguageManager.__qmList__[u'%i %s' % (i, + LanguageManager.language_name(qmf))] = langName @staticmethod - def getQmList(): + def get_qm_list(): if LanguageManager.__qmList__ == None: - LanguageManager.initQmList() - return LanguageManager.__qmList__ - + LanguageManager.init_qm_list() + return LanguageManager.__qmList__ \ No newline at end of file diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts new file mode 100644 index 000000000..1660428e2 --- /dev/null +++ b/resources/i18n/openlp_en.ts @@ -0,0 +1,4848 @@ + + + + + BibleMediaItem + + + Quick + + + + + Ui_customEditDialog + + + Delete selected slide + + + + + BiblesTab + + + ( and ) + + + + + RemoteTab + + + Remotes + + + + + Ui_EditSongDialog + + + &Remove + + + + + Ui_AmendThemeDialog + + + Shadow Size: + + + + + Ui_OpenSongExportDialog + + + Close + + + + + ThemeManager + + + Import Theme + + + + + Ui_AmendThemeDialog + + + Slide Transition + + + + + SongMaintenanceForm + + + Are you sure you want to delete the selected book? + + + + + ThemesTab + + + Theme level + + + + + BibleMediaItem + + + Bible + + + + + ServiceManager + + + Save Changes to Service? + + + + + SongUsagePlugin + + + &Delete recorded data + + + + + Ui_OpenLPExportDialog + + + Song Title + + + + + Ui_customEditDialog + + + Edit selected slide + + + + + SongMediaItem + + + CCLI Licence: + + + + + Ui_BibleImportWizard + + + Bible Import Wizard + + + + + Ui_customEditDialog + + + Edit All + + + + + SongMaintenanceForm + + + Couldn't save your author. + + + + + Ui_ServiceNoteEdit + + + Service Item Notes + + + + + Ui_customEditDialog + + + Add new slide at bottom + + + + + Clear + + + + + ThemesTab + + + Global theme + + + + + PresentationPlugin + + + <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. + + + + + SongUsagePlugin + + + Start/Stop live song usage recording + + + + + MainWindow + + + The Main Display has been blanked out + + + + + Ui_OpenSongExportDialog + + + Lyrics + + + + + Ui_AlertDialog + + + Display + + + + + SongMaintenanceForm + + + This author can't be deleted, they are currently assigned to at least one song. + + + + + Ui_customEditDialog + + + Delete + + + + + Ui_EditVerseDialog + + + Verse + + + + + Ui_OpenSongImportDialog + + + OpenSong Folder: + + + + + ThemeManager + + + Create a new theme + + + + + Ui_MainWindow + + + Open an existing service + + + + + SlideController + + + Move to previous + + + + + SongsPlugin + + + &Song + + + + + Ui_PluginViewDialog + + + Plugin Details + + + + + ImportWizardForm + + + You need to specify a file with books of the Bible to use in the import. + + + + + AlertsTab + + + Edit History: + + + + + Ui_MainWindow + + + &File + + + + + BiblesTab + + + verse per line + + + + + Ui_customEditDialog + + + Theme: + + + + + SongMaintenanceForm + + + Couldn't add your book. + + + + + Error + + + + + Ui_BibleImportWizard + + + Bible: + + + + + ThemeManager + + + Delete Theme + + + + + SplashScreen + + + Splash Screen + + + + + SongMediaItem + + + Song + + + + + Ui_OpenSongExportDialog + + + Song Title + + + + + Ui_AmendThemeDialog + + + Bottom + + + + + Ui_MainWindow + + + List the Plugins + + + + + SongMaintenanceForm + + + No author selected! + + + + + SongUsageDeleteForm + + + Delete Selected Song Usage Events? + + + + + SongUsagePlugin + + + <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service + + + + + Ui_customEditDialog + + + Move slide Up 1 + + + + + SongsPlugin + + + OpenSong + + + + + AlertsManager + + + Alert message created and delayed + + + + + Ui_EditSongDialog + + + Alternative Title: + + + + + ServiceManager + + + Open Service + + + + + BiblesTab + + + Display Style: + + + + + Ui_AmendThemeDialog + + + Image + + + + + EditSongForm + + + You need to enter a song title. + + + + + ThemeManager + + + Error + + + + + Ui_SongUsageDeleteDialog + + + Song Usage Delete + + + + + ImportWizardForm + + + Invalid Bible Location + + + + + BibleMediaItem + + + Book: + + + + + ThemeManager + + + Make Global + + + + + Ui_MainWindow + + + &Service Manager + + + + + Ui_OpenLPImportDialog + + + Author + + + + + Ui_AmendThemeDialog + + + Height: + + + + + ThemeManager + + + Delete a theme + + + + + Ui_BibleImportWizard + + + Crosswalk + + + + + SongBookForm + + + Error + + + + + Ui_AuthorsDialog + + + Last name: + + + + + ThemesTab + + + Use the global theme, overriding any themes associated with either the service or the songs. + + + + + Ui_customEditDialog + + + Title: + + + + + ImportWizardForm + + + You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. + + + + + SongMediaItem + + + Maintain the lists of authors, topics and books + + + + + Ui_AlertEditDialog + + + Save + + + + + EditCustomForm + + + You have unsaved data + + + + + Ui_AmendThemeDialog + + + Outline + + + + + BibleMediaItem + + + Text Search + + + + + Ui_BibleImportWizard + + + CSV + + + + + SongUsagePlugin + + + Delete song usage to specified date + + + + + Ui_SongUsageDetailDialog + + + Report Location + + + + + Ui_BibleImportWizard + + + OpenSong + + + + + Ui_MainWindow + + + Open Service + + + + + BibleMediaItem + + + Find: + + + + + ImageMediaItem + + + Select Image(s) + + + + + BibleMediaItem + + + Search Type: + + + + + Ui_MainWindow + + + Media Manager + + + + + Alt+F4 + + + + + MediaManagerItem + + + &Preview + + + + + GeneralTab + + + CCLI Details + + + + + BibleMediaItem + + + Bible not fully loaded + + + + + Ui_MainWindow + + + Toggle the visibility of the Preview Panel + + + + + ImportWizardForm + + + Bible Exists + + + + + Ui_MainWindow + + + &User Guide + + + + + AlertsTab + + + pt + + + + + Ui_MainWindow + + + Set the interface language to English + + + + + Ui_AmendThemeDialog + + + Main Font + + + + + ImportWizardForm + + + Empty Copyright + + + + + AuthorsForm + + + You need to type in the first name of the author. + + + + + SongsTab + + + Display Verses on Live Tool bar: + + + + + ServiceManager + + + Move to top + + + + + ImageMediaItem + + + Override background + + + + + Ui_SongMaintenanceDialog + + + Edit + + + + + Ui_OpenSongExportDialog + + + Select All + + + + + ThemesTab + + + Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. + + + + + PresentationMediaItem + + + Presentation + + + + + Ui_AmendThemeDialog + + + Solid Color + + + + + CustomTab + + + Custom + + + + + Ui_OpenLPImportDialog + + + Ready to import + + + + + MainWindow + + + OpenLP version %s has been updated to version %s + +You can obtain the latest version from http://openlp.org + + + + + Ui_BibleImportWizard + + + File Location: + + + + + SlideController + + + Go to Verse + + + + + SongMaintenanceForm + + + Couldn't add your topic. + + + + + Ui_MainWindow + + + &Import + + + + + Quit OpenLP + + + + + Ui_BibleImportWizard + + + 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. + + + + + Ui_OpenLPExportDialog + + + Title + + + + + ImportWizardForm + + + Empty Version Name + + + + + Ui_MainWindow + + + &Preview Panel + + + + + SlideController + + + Start continuous loop + + + + + GeneralTab + + + primary + + + + + Ui_EditSongDialog + + + Add a Theme + + + + + Ui_MainWindow + + + &New + + + + + Ui_customEditDialog + + + Credits: + + + + + Ui_EditSongDialog + + + R&emove + + + + + SlideController + + + Live + + + + + Ui_AmendThemeDialog + + + Font Main + + + + + BiblesTab + + + continuous + + + + + ThemeManager + + + File is not a valid theme. + + + + + GeneralTab + + + Application Startup + + + + + Ui_AmendThemeDialog + + + Use Default Location: + + + + + Ui_OpenSongImportDialog + + + Import + + + + + Ui_AmendThemeDialog + + + Other Options + + + + + Ui_EditSongDialog + + + Verse Order: + + + + + Ui_MainWindow + + + Default Theme: + + + + + Toggle Preview Panel + + + + + SongMediaItem + + + Lyrics + + + + + Ui_OpenLPImportDialog + + + Progress: + + + + + Ui_AmendThemeDialog + + + Shadow + + + + + GeneralTab + + + Select monitor for output display: + + + + + Ui_MainWindow + + + &Settings + + + + + EditSongForm + + + Invalid verse entry - values must be Numeric, I,B,C,T,P,E,O + + + + + Ui_AmendThemeDialog + + + Italics + + + + + ServiceManager + + + Create a new service + + + + + Ui_AmendThemeDialog + + + Background: + + + + + Ui_OpenLPImportDialog + + + openlp.org Song Importer + + + + + Ui_BibleImportWizard + + + Copyright: + + + + + ThemesTab + + + Service level + + + + + BiblesTab + + + [ and ] + + + + + Ui_BibleImportWizard + + + Verse Location: + + + + + MediaManagerItem + + + You must select one or more items + + + + + GeneralTab + + + Application Settings + + + + + ServiceManager + + + Save this service + + + + + ImportWizardForm + + + Open Books CSV file + + + + + GeneralTab + + + SongSelect Username: + + + + + Ui_AmendThemeDialog + + + X Position: + + + + + BibleMediaItem + + + No matching book could be found in this Bible. + + + + + Ui_BibleImportWizard + + + Server: + + + + + Ui_EditVerseDialog + + + Ending + + + + + CustomTab + + + Display Footer: + + + + + ImportWizardForm + + + Invalid OpenSong Bible + + + + + GeneralTab + + + CCLI Number: + + + + + Ui_AmendThemeDialog + + + Center + + + + + ServiceManager + + + Theme: + + + + + AlertEditForm + + + Please save or clear selected item + + + + + Ui_MainWindow + + + &Live + + + + + Ui_AmendThemeDialog + + + <Color2> + + + + + Ui_MainWindow + + + English + + + + + ImageMediaItem + + + You must select one or more items + + + + + Ui_AuthorsDialog + + + First name: + + + + + Ui_OpenLPExportDialog + + + Select openlp.org export filename: + + + + + Ui_BibleImportWizard + + + Permission: + + + + + Ui_OpenSongImportDialog + + + Close + + + + + Ui_SongUsageDetailDialog + + + Song Usage Extraction + + + + + Ui_AmendThemeDialog + + + Opaque + + + + + ImportWizardForm + + + Your Bible import failed. + + + + + SlideController + + + Start playing media + + + + + SongMediaItem + + + Type: + + + + + SongMaintenanceForm + + + This book can't be deleted, it is currently assigned to at least one song. + + + + + Ui_AboutDialog + + + Close + + + + + TopicsForm + + + You need to type in a topic name! + + + + + Ui_OpenSongExportDialog + + + Song Export List + + + + + BibleMediaItem + + + Dual: + + + + + ImageTab + + + sec + + + + + ServiceManager + + + Delete From Service + + + + + GeneralTab + + + Automatically open the last service + + + + + Ui_OpenLPImportDialog + + + Song Import List + + + + + Ui_OpenSongExportDialog + + + Author + + + + + Ui_AmendThemeDialog + + + Outline Color: + + + + + Ui_BibleImportWizard + + + Select Import Source + + + + + Ui_MainWindow + + + F9 + + + + + F8 + + + + + ServiceManager + + + &Change Item Theme + + + + + Ui_SongMaintenanceDialog + + + Topics + + + + + Ui_OpenLPImportDialog + + + Import File Song List + + + + + Ui_customEditDialog + + + Edit Custom Slides + + + + + Ui_BibleImportWizard + + + Set up the Bible's license details. + + + + + Ui_EditVerseDialog + + + Number + + + + + Ui_AmendThemeDialog + + + Alignment + + + + + SongMaintenanceForm + + + Delete Book + + + + + ThemeManager + + + Edit a theme + + + + + Ui_BibleImportWizard + + + BibleGateway + + + + + GeneralTab + + + Preview Next Song from Service Manager + + + + + Ui_EditSongDialog + + + Title && Lyrics + + + + + SongMaintenanceForm + + + No book selected! + + + + + SlideController + + + Move to live + + + + + Ui_EditVerseDialog + + + Other + + + + + Ui_EditSongDialog + + + Theme + + + + + ServiceManager + + + Save Service + + + + + Ui_SongUsageDetailDialog + + + Select Date Range + + + + + Ui_MainWindow + + + Save the current service to disk + + + + + BibleMediaItem + + + Chapter: + + + + + Search + + + + + PresentationTab + + + Available Controllers + + + + + Ui_MainWindow + + + Add &Tool... + + + + + TopicsForm + + + Error + + + + + RemoteTab + + + Remotes Receiver Port + + + + + Ui_MainWindow + + + &View + + + + + Ui_AmendThemeDialog + + + Normal + + + + + Ui_OpenLPExportDialog + + + Close + + + + + Ui_BibleImportWizard + + + Username: + + + + + ThemeManager + + + Edit Theme + + + + + SlideController + + + Preview + + + + + Ui_AlertDialog + + + Alert Message + + + + + ImportWizardForm + + + Finished import. + + + + + GeneralTab + + + Show blank screen warning + + + + + ImportWizardForm + + + You need to specify a file of Bible verses to import. + + + + + AlertsTab + + + Location: + + + + + Ui_EditSongDialog + + + Authors, Topics && Book + + + + + EditSongForm + + + You need to enter some verses. + + + + + Ui_BibleImportWizard + + + Download Options + + + + + BiblePlugin + + + <strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service. + + + + + Ui_EditSongDialog + + + Copyright Information + + + + + Ui_MainWindow + + + &Export + + + + + Ui_AmendThemeDialog + + + Bold + + + + + SongsPlugin + + + Export songs in OpenLP 2.0 format + + + + + MediaManagerItem + + + Load a new + + + + + AlertEditForm + + + Missing data + + + + + SongsPlugin + + + <b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br> + + + + + Ui_AmendThemeDialog + + + Footer Font + + + + + EditSongForm + + + Invalid verse entry - vX + + + + + ServiceManager + + + OpenLP Service Files (*.osz) + + + + + MediaManagerItem + + + Delete the selected item + + + + + Ui_OpenLPExportDialog + + + Export + + + + + Ui_BibleImportWizard + + + Location: + + + + + BibleMediaItem + + + Keep + + + + + SongUsagePlugin + + + Generate report on Song Usage + + + + + Ui_EditSongDialog + + + Topic + + + + + Ui_MainWindow + + + &Open + + + + + AuthorsForm + + + You haven't set a display name for the author, would you like me to combine the first and last names for you? + + + + + AmendThemeForm + + + Slide Height is %s rows + + + + + Ui_EditSongDialog + + + Lyrics: + + + + + Ui_AboutDialog + + + Project Lead + Raoul "superfly" Snyman + +Developers + Tim "TRB143" Bentley + Jonathan "gushie" Corwin + Michael "cocooncrash" Gorven + Scott "sguerrieri" Guerrieri + Raoul "superfly" Snyman + Maikel Stuivenberg + Martin "mijiti" Thompson + Jon "Meths" Tibble + Carsten "catini" Tingaard + +Testers + Wesley "wrst" Stout + + + + + SongMediaItem + + + Titles + + + + + Ui_OpenLPExportDialog + + + Lyrics + + + + + PresentationMediaItem + + + Present using: + + + + + SongMediaItem + + + Clear + + + + + ServiceManager + + + &Live Verse + + + + + Ui_OpenSongImportDialog + + + Progress: + + + + + Ui_MainWindow + + + Toggle Theme Manager + + + + + Ui_AlertDialog + + + Alert Text: + + + + + Ui_EditSongDialog + + + Edit + + + + + AlertsTab + + + Font Color: + + + + + Ui_AmendThemeDialog + + + Theme Maintenance + + + + + CustomTab + + + Custom Display + + + + + Ui_OpenSongExportDialog + + + Title + + + + + Ui_AmendThemeDialog + + + <Color1> + + + + + Ui_EditSongDialog + + + Authors + + + + + ThemeManager + + + Export Theme + + + + + ImageMediaItem + + + No items selected... + + + + + Ui_SongBookDialog + + + Name: + + + + + Ui_AuthorsDialog + + + Author Maintenance + + + + + Ui_AmendThemeDialog + + + Font Footer + + + + + BiblesTab + + + Verse Display + + + + + Ui_MainWindow + + + &Options + + + + + BibleMediaItem + + + Results: + + + + + Ui_OpenLPExportDialog + + + Full Song List + + + + + ServiceManager + + + Move to &top + + + + + SlideController + + + Move to last + + + + + Ui_OpenLPExportDialog + + + Progress: + + + + + Ui_SongMaintenanceDialog + + + Add + + + + + SongMaintenanceForm + + + Are you sure you want to delete the selected author? + + + + + SongUsagePlugin + + + Song Usage Status + + + + + BibleMediaItem + + + Verse Search + + + + + Ui_SongBookDialog + + + Edit Book + + + + + EditSongForm + + + Save && Preview + + + + + Ui_SongBookDialog + + + Publisher: + + + + + Ui_AmendThemeDialog + + + Font Weight: + + + + + Ui_BibleImportWizard + + + Bible Filename: + + + + + Ui_AmendThemeDialog + + + Transparent + + + + + SongMediaItem + + + Search + + + + + Ui_BibleImportWizard + + + Format: + + + + + Ui_AmendThemeDialog + + + Background + + + + + Ui_BibleImportWizard + + + Importing + + + + + Ui_customEditDialog + + + Edit all slides + + + + + SongsTab + + + Enable search as you type: + + + + + Ui_MainWindow + + + Ctrl+S + + + + + SongMediaItem + + + Authors + + + + + Ui_PluginViewDialog + + + Active + + + + + SongMaintenanceForm + + + Couldn't add your author. + + + + + Ui_MainWindow + + + Ctrl+O + + + + + Ctrl+N + + + + + Ui_AlertEditDialog + + + Edit + + + + + Ui_EditSongDialog + + + Song Editor + + + + + AlertsTab + + + Font + + + + + SlideController + + + Edit and re-preview Song + + + + + Delay between slides in seconds + + + + + MediaManagerItem + + + &Edit + + + + + Ui_AmendThemeDialog + + + Vertical + + + + + Width: + + + + + ThemesTab + + + Global level + + + + + ThemeManager + + + You are unable to delete the default theme. + + + + + BibleMediaItem + + + Version: + + + + + Ui_AboutDialog + + + OpenLP <version> build <revision> - Open Source Lyrics Projection + +OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. + +Find out more about OpenLP: http://openlp.org/ + +OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. + + + + + SongsPlugin + + + OpenLP 2.0 + + + + + ServiceManager + + + New Service + + + + + Ui_TopicsDialog + + + Topic name: + + + + + Ui_BibleImportWizard + + + License Details + + + + + Ui_AboutDialog + + + License + + + + + OpenSongBible + + + Importing + + + + + Ui_AmendThemeDialog + + + Middle + + + + + Ui_customEditDialog + + + Save + + + + + AlertEditForm + + + Item selected to Edit + + + + + BibleMediaItem + + + From: + + + + + Ui_AmendThemeDialog + + + Shadow Color: + + + + + ServiceManager + + + &Notes + + + + + Ui_MainWindow + + + E&xit + + + + + Ui_OpenLPImportDialog + + + Close + + + + + MainWindow + + + OpenLP Version Updated + + + + + Ui_customEditDialog + + + Replace edited slide + + + + + EditCustomForm + + + You need to enter a title + + + + + ThemeManager + + + Theme Exists + + + + + Ui_MainWindow + + + &Help + + + + + Ui_EditVerseDialog + + + Bridge + + + + + Ui_OpenSongExportDialog + + + OpenSong Song Exporter + + + + + Ui_AmendThemeDialog + + + Vertical Align: + + + + + Ui_EditVerseDialog + + + Pre-Chorus + + + + + Ui_AmendThemeDialog + + + Top + + + + + BiblesTab + + + Display Dual Bible Verses + + + + + Ui_MainWindow + + + Toggle Service Manager + + + + + Ui_EditSongDialog + + + Delete + + + + + MediaManagerItem + + + &Add to Service + + + + + AmendThemeForm + + + First Color: + + + + + ThemesTab + + + Song level + + + + + alertsPlugin + + + Show an alert message + + + + + Ui_MainWindow + + + Ctrl+F1 + + + + + SongMaintenanceForm + + + Couldn't save your topic. + + + + + Ui_MainWindow + + + Save the current service under a new name + + + + + Ui_OpenLPExportDialog + + + Remove Selected + + + + + ThemeManager + + + Delete theme + + + + + ImageTab + + + Image Settings + + + + + Ui_OpenSongImportDialog + + + OpenSong Song Importer + + + + + SongUsagePlugin + + + &Extract recorded data + + + + + AlertsTab + + + Font Name: + + + + + Ui_MainWindow + + + &Web Site + + + + + MediaManagerItem + + + Send the selected item live + + + + + Ui_MainWindow + + + M&ode + + + + + Translate the interface to your language + + + + + Service Manager + + + + + CustomMediaItem + + + Custom + + + + + Ui_BibleImportWizard + + + OSIS + + + + + SongsPlugin + + + openlp.org 1.0 + + + + + Ui_MainWindow + + + &Theme + + + + + Ui_EditVerseDialog + + + Edit Verse + + + + + Ui_MainWindow + + + &Language + + + + + ServiceManager + + + Move to end + + + + + Your service is unsaved, do you want to save those changes before creating a new one ? + + + + + Ui_OpenSongExportDialog + + + Remove Selected + + + + + SongMediaItem + + + Search: + + + + + MainWindow + + + Save Changes to Service? + + + + + Your service has changed, do you want to save those changes? + + + + + ServiceManager + + + &Delete From Service + + + + + Ui_EditSongDialog + + + &Add to Song + + + + + Ui_MainWindow + + + &About + + + + + ImportWizardForm + + + You need to specify a version name for your Bible. + + + + + BiblesTab + + + Only show new chapter numbers + + + + + Ui_AlertEditDialog + + + Delete + + + + + EditCustomForm + + + Error + + + + + ThemesTab + + + Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. + + + + + AlertEditForm + + + Item selected to Add + + + + + Ui_AmendThemeDialog + + + Right + + + + + ThemeManager + + + Save Theme - (%s) + + + + + MediaManagerItem + + + Add the selected item(s) to the service + + + + + AuthorsForm + + + Error + + + + + Ui_AmendThemeDialog + + + Font Color: + + + + + Ui_OpenLPImportDialog + + + Select openlp.org songfile to import: + + + + + Ui_SettingsDialog + + + Settings + + + + + BiblesTab + + + Layout Style: + + + + + MediaManagerItem + + + Edit the selected + + + + + SlideController + + + Move to next + + + + + Ui_MainWindow + + + &Plugin List + + + + + BiblePlugin + + + &Bible + + + + + Ui_BibleImportWizard + + + Web Download + + + + + Ui_AmendThemeDialog + + + Horizontal + + + + + ImportWizardForm + + + Open OSIS file + + + + + Ui_AmendThemeDialog + + + Circular + + + + + PresentationMediaItem + + + Automatic + + + + + SongMaintenanceForm + + + Couldn't save your book. + + + + + Ui_AmendThemeDialog + + + pt + + + + + SongMaintenanceForm + + + Delete Topic + + + + + Ui_OpenLPImportDialog + + + Lyrics + + + + + BiblesTab + + + No brackets + + + + + Ui_AlertEditDialog + + + Maintain Alerts + + + + + Ui_AmendThemeDialog + + + px + + + + + ServiceManager + + + Select a theme for the service + + + + + ThemesTab + + + Themes + + + + + Ui_PluginViewDialog + + + Status: + + + + + Ui_EditSongDialog + + + CCLI Number: + + + + + ImportWizardForm + + + This Bible already exists! Please import a different Bible or first delete the existing one. + + + + + Ui_MainWindow + + + &Translate + + + + + BiblesTab + + + Bibles + + + + + Ui_SongMaintenanceDialog + + + Authors + + + + + SongUsageDetailForm + + + Output File Location + + + + + BiblesTab + + + { and } + + + + + GeneralTab + + + Prompt to save Service before starting New + + + + + ImportWizardForm + + + Starting import... + + + + + BiblesTab + + + Note: +Changes don't affect verses already in the service + + + + + Ui_EditVerseDialog + + + Intro + + + + + ServiceManager + + + Move up order + + + + + PresentationTab + + + available + + + + + ThemeManager + + + default + + + + + SongMaintenanceForm + + + Delete Author + + + + + Ui_AmendThemeDialog + + + Display Location + + + + + Ui_PluginViewDialog + + + Version: + + + + + Ui_AlertEditDialog + + + Add + + + + + GeneralTab + + + General + + + + + Ui_AmendThemeDialog + + + Y Position: + + + + + ServiceManager + + + Move down order + + + + + BiblesTab + + + verse per slide + + + + + Ui_AmendThemeDialog + + + Show Shadow: + + + + + AlertsTab + + + Preview + + + + + alertsPlugin + + + <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen + + + + + GeneralTab + + + Show the splash screen + + + + + Ui_MainWindow + + + New Service + + + + + SlideController + + + Move to first + + + + + Ui_MainWindow + + + &Online Help + + + + + SlideController + + + Blank Screen + + + + + Ui_MainWindow + + + Save Service + + + + + Save &As... + + + + + Toggle the visibility of the Media Manager + + + + + BibleMediaItem + + + No Book Found + + + + + Ui_EditSongDialog + + + Add + + + + + alertsPlugin + + + &Alert + + + + + BibleMediaItem + + + Advanced + + + + + ImageMediaItem + + + Image(s) + + + + + Ui_MainWindow + + + F11 + + + + + F10 + + + + + F12 + + + + + CustomPlugin + + + <b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br> + + + + + Ui_MainWindow + + + Alt+F7 + + + + + Add an application to the list of tools + + + + + MediaPlugin + + + <b>Media Plugin</b><br>This plugin allows the playing of audio and video media + + + + + ServiceManager + + + Move &down + + + + + BiblesTab + + + Bible Theme: + + + + + SongsPlugin + + + Export songs in openlp.org 1.0 format + + + + + Ui_MainWindow + + + Theme Manager + + + + + AlertsTab + + + Alerts + + + + + Ui_customEditDialog + + + Move slide down 1 + + + + + Ui_AmendThemeDialog + + + Font: + + + + + ServiceManager + + + Load an existing service + + + + + Ui_MainWindow + + + Toggle the visibility of the Theme Manager + + + + + PresentationTab + + + Presentations + + + + + SplashScreen + + + Starting + + + + + ImageTab + + + Slide Loop Delay: + + + + + SlideController + + + Verse + + + + + AlertsTab + + + Alert timeout: + + + + + Ui_MainWindow + + + &Preview Pane + + + + + MediaManagerItem + + + Add a new + + + + + ThemeManager + + + Select Theme Import File + + + + + New Theme + + + + + MediaMediaItem + + + Media + + + + + Ui_AmendThemeDialog + + + Preview + + + + + Outline Size: + + + + + Ui_OpenSongExportDialog + + + Progress: + + + + + AmendThemeForm + + + Second Color: + + + + + Ui_EditSongDialog + + + Theme, Copyright Info && Comments + + + + + Ui_AboutDialog + + + Credits + + + + + BibleMediaItem + + + To: + + + + + Ui_EditSongDialog + + + Song Book + + + + + Ui_OpenLPExportDialog + + + Author + + + + + Ui_AmendThemeDialog + + + Wrap Indentation + + + + + ThemeManager + + + Import a theme + + + + + ImageMediaItem + + + Image + + + + + BibleMediaItem + + + Clear + + + + + Ui_MainWindow + + + Save Service As + + + + + Ui_AlertDialog + + + Cancel + + + + + Ui_OpenLPImportDialog + + + Import + + + + + Ui_EditVerseDialog + + + Chorus + + + + + Ui_EditSongDialog + + + Edit All + + + + + AuthorsForm + + + You need to type in the last name of the author. + + + + + SongsTab + + + Songs Mode + + + + + Ui_AmendThemeDialog + + + Left + + + + + RemotesPlugin + + + <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche + + + + + ImageTab + + + Images + + + + + BibleMediaItem + + + Verse: + + + + + Ui_OpenLPExportDialog + + + openlp.org Song Exporter + + + + + Song Export List + + + + + ThemeManager + + + Export theme + + + + + Ui_SongMaintenanceDialog + + + Delete + + + + + Ui_AmendThemeDialog + + + Theme Name: + + + + + Ui_AboutDialog + + + About OpenLP + + + + + Ui_MainWindow + + + Toggle the visibility of the Service Manager + + + + + PresentationMediaItem + + + A presentation with that filename already exists. + + + + + ImageMediaItem + + + Allow the background of live slide to be overridden + + + + + SongUsageDeleteForm + + + Are you sure you want to delete selected Song Usage data? + + + + + AlertsTab + + + openlp.org + + + + + ImportWizardForm + + + Invalid Books File + + + + + Ui_OpenLPImportDialog + + + Song Title + + + + + MediaManagerItem + + + &Show Live + + + + + AlertsTab + + + Keep History: + + + + + Ui_AmendThemeDialog + + + Image: + + + + + ImportWizardForm + + + Open Verses CSV file + + + + + Ui_customEditDialog + + + Set Theme for Slides + + + + + Ui_MainWindow + + + More information about OpenLP + + + + + AlertsTab + + + Background Color: + + + + + SongMaintenanceForm + + + No topic selected! + + + + + Ui_MainWindow + + + &Media Manager + + + + + &Tools + + + + + AmendThemeForm + + + Background Color: + + + + + Ui_EditSongDialog + + + A&dd to Song + + + + + Title: + + + + + GeneralTab + + + Screen + + + + + SongMaintenanceForm + + + This topic can't be deleted, it is currently assigned to at least one song. + + + + + AlertsTab + + + s + + + + + Ui_AlertEditDialog + + + Clear + + + + + Ui_BibleImportWizard + + + Please wait while your Bible is imported. + + + + + MediaManagerItem + + + No items selected... + + + + + Ui_OpenLPImportDialog + + + Select All + + + + + Ui_BibleImportWizard + + + Select the import format, and where to import from. + + + + + Ui_OpenLPImportDialog + + + Title + + + + + Ui_OpenSongExportDialog + + + Select OpenSong song folder: + + + + + Ui_MainWindow + + + Toggle Media Manager + + + + + SongUsagePlugin + + + &Song Usage + + + + + GeneralTab + + + Monitors + + + + + EditCustomForm + + + You need to enter a slide + + + + + ThemeManager + + + You have not selected a theme. + + + + + Ui_EditVerseDialog + + + Verse Type + + + + + ImportWizardForm + + + You need to specify a file to import your Bible from. + + + + + Ui_EditSongDialog + + + Comments + + + + + AlertsTab + + + Bottom + + + + + Ui_MainWindow + + + Create a new Service + + + + + AlertsTab + + + Top + + + + + ServiceManager + + + &Preview Verse + + + + + Ui_PluginViewDialog + + + TextLabel + + + + + AlertsTab + + + Font Size: + + + + + Ui_PluginViewDialog + + + About: + + + + + Inactive + + + + + Ui_OpenSongExportDialog + + + Ready to export + + + + + Export + + + + + Ui_PluginViewDialog + + + Plugin List + + + + + Ui_AmendThemeDialog + + + Transition Active: + + + + + Ui_BibleImportWizard + + + Proxy Server (Optional) + + + + + Ui_EditSongDialog + + + &Manage Authors, Topics, Books + + + + + Ui_OpenLPExportDialog + + + Ready to export + + + + + ImageMediaItem + + + Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) + + + + + EditCustomForm + + + Save && Preview + + + + + Ui_OpenLPExportDialog + + + Select All + + + + + Ui_SongUsageDetailDialog + + + to + + + + + Ui_AmendThemeDialog + + + Size: + + + + + MainWindow + + + OpenLP Main Display Blanked + + + + + Ui_OpenLPImportDialog + + + Remove Selected + + + + + ServiceManager + + + Move &up + + + + + ImportWizardForm + + + You need to specify an OpenSong Bible file to import. + + + + + PresentationMediaItem + + + Select Presentation(s) + + + + + File exists + + + + + Ui_OpenSongImportDialog + + + Ready to import + + + + + SlideController + + + Stop continuous loop + + + + + s + + + + + ImagePlugin + + + <b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br<br>From the plugin if the <i>Override background</i> is chosen and an image is selected any songs which are rendered will use the selected image from the background instead of the one provied by the theme.<br> + + + + + SongMediaItem + + + Song Maintenance + + + + + Ui_customEditDialog + + + Edit + + + + + Ui_AmendThemeDialog + + + Gradient : + + + + + ImportWizardForm + + + Invalid Verse File + + + + + EditSongForm + + + Error + + + + + Ui_customEditDialog + + + Add New + + + + + Ui_AuthorsDialog + + + Display name: + + + + + SongMaintenanceForm + + + Are you sure you want to delete the selected topic? + + + + + Ui_AmendThemeDialog + + + Bold/Italics + + + + + Ui_SongMaintenanceDialog + + + Song Maintenance + + + + + Ui_BibleImportWizard + + + Welcome to the Bible Import Wizard + + + + + SongsTab + + + Songs + + + + + Ui_BibleImportWizard + + + Password: + + + + + Ui_MainWindow + + + &Theme Manager + + + + + MediaManagerItem + + + Preview the selected item + + + + + Ui_BibleImportWizard + + + Version Name: + + + + + Ui_AboutDialog + + + About + + + + + MediaMediaItem + + + Select Media + + + + + Ui_AmendThemeDialog + + + Horizontal Align: + + + + + ServiceManager + + + &Edit Item + + + + + Ui_AmendThemeDialog + + + Background Type: + + + + + Ui_MainWindow + + + &Save + + + + + OpenLP 2.0 + + + + + ThemeManager + + + A theme with this name already exists, would you like to overwrite it? + + + + + Export a theme + + + + + AmendThemeForm + + + Open file + + + + + Ui_TopicsDialog + + + Topic Maintenance + + + + + Ui_customEditDialog + + + Clear edit area + + + + + Ui_AmendThemeDialog + + + Show Outline: + + + + + Gradient + + + + + SongBookForm + + + You need to type in a book name! + + + + + ImportWizardForm + + + Open OpenSong Bible + + + + + Ui_MainWindow + + + Look && &Feel + + + + + Ui_BibleImportWizard + + + Ready. + + + + + Ui_SongMaintenanceDialog + + + Books/Hymnals + + + + + Ui_AboutDialog + + + Contribute + + + + + ServiceManager + + + Move to &bottom + + + + + Ui_BibleImportWizard + + + Books Location: + + + + + Ui_OpenSongExportDialog + + + Full Song List + + + + + GeneralTab + + + SongSelect Password: + + + + + From d7cb156f21be91f3d4bc5a3ad3b16546ee8b2241 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 20 Apr 2010 22:20:29 +0200 Subject: [PATCH 05/22] corrections --- resources/i18n/openlp_af.qm | Bin 34261 -> 34058 bytes resources/i18n/openlp_de.qm | Bin 36265 -> 36123 bytes resources/i18n/openlp_en.ts | 7722 +++++++++++++------------------- resources/i18n/openlp_en_GB.qm | Bin 31723 -> 31458 bytes resources/i18n/openlp_en_ZA.qm | Bin 22938 -> 22957 bytes resources/i18n/openlp_es.qm | Bin 14546 -> 14874 bytes resources/i18n/openlp_hu.qm | Bin 35270 -> 35007 bytes resources/i18n/openlp_nb.qm | Bin 20852 -> 21181 bytes resources/i18n/openlp_pt_BR.qm | Bin 35931 -> 35695 bytes resources/i18n/openlp_sv.qm | Bin 37049 -> 37039 bytes scripts/translation_utils.py | 9 +- 11 files changed, 3197 insertions(+), 4534 deletions(-) diff --git a/resources/i18n/openlp_af.qm b/resources/i18n/openlp_af.qm index 58b2f37c46413f2353c6d2b8010ff92a8470e13f..f7f13cbfafcdec3d5090914de27ca07c13cab55e 100644 GIT binary patch delta 4864 zcmZA5X#X zI`TB%m-8S`+}B84|JDR?+2na1BjG-!9`oiylj3Fax_~^-Q9!9P{E!B$JqFV#d?7l{ z7b-Sd6x=9$bsdp_^Ec5kVGc#SLWhLaG&l><70PLdX8}B7)`-M2OM%*zhV)rQqz+Wf zQQWN9Xi?PB(1WjuM0Xk{IKcjjvuW764CJ>c)+s);sA;38A1PNU%!N8v&mVQhO3i4Byb34-5K(hpz2x0Lkfb0XQAlH1?{xho}) z#hQ@&Q*yH}Or{hqLMl&E+^Be#QpP<)`7KHn%-6lA)RTy)&PFj%F@wh5e2DUyWX#^G zLt;JUw;cj&srW}Hc$b#UMu_zqD%od(U1{|M%&9(-HqHMPmeS6iXh?sZ>K33Q`WMuY zy@|;1Ib9ks9qy*7VI$U<|#FOor2q40{d@v{}ul3QxgC zMl^f`-!fLan~B=mGgddyK-&<;dd^vx$#jU6;FnC7UGv}t#=d0=k(Dju*b5!D3S*o) zp#xUqm{83&xQ-c}=mYC4TFcCslUTgg0nDTng2q&4iW}zEdKELnT+#Z5MH_b}|HyhG zn^DYX!+XI^j48yNzrbv0I}pBOD&JfpYUjwD7|;=hGUv~Q!0F6S>{hs*xw;S?ZTEM@ zC(NTqw~5+Yvm%QDweQWgKeiP6zkN3AP>oP^c+5I>|DEUqH`YZz6Q;4QWjri{xZs0J ztp9U_yrYT@$(#&R+2QG3U?aO~QyGzM5W5a*kZd#AuY5h=YIcWt8`@T}JG-xhm)M== zZD{+_qMbckc|RBX->wgPp!^(>T{c^li_q9DXRFLNwA;Z}n-`niDYj;uH@wLnev6KE zBKE1N0?uTgKFWt*v9FFFhbL6>8cboQTPj0MA$+g0IkSqWvyZAnd;`oKv7b z{olDs4fWur>%ZgaIMfKa^B6!lGqe}In-iQj09;%l^ z;$fuf)iQHFj}u=9!mC^xkKXVFXTPnH$Y~PiG$0OEb1u%6@Fmwmta1>kTaGqeTT#mu6*fx_%m0&Oa&ivyStYWx$%m=iW9lr51HRT-{#0tlS51X9gjX?up#_k1D{4wr+JR!R4;d#D^@~28~}UiJvTXmlT8e zXjjZ(_Yr*J3yh@uXZ&!}r|>49>W`3i|AQYpwVLQd1D}<*3HIa1EvkYkeD=7_ut4!T zKi&r&=;6dKnS({yV+6m_F9=TI*Dpcd*rSsFV$oU@)GM~|8v<_<^-oL=&E?lEdTAlby`1=OCu3w@0erPpE==NU!~cMb`7`TK-)lF2_Jb%` z%ipZ7#{Tzu&fnYkny8mnF-*~@Si?7W!v(#r2&@gBY`ud8tBJUA?@t7q{s?vNp9R}L zu`7DN6#|Mqh`il|fwk5!REVj(2s4G4sw*&GNScO7dT$oeoH26mIw39A7yI95n~-)F z6?~2gncf(&&wXLsn1e*VR>JsDyx)C&g{c#8W8Y+9j(NNJP7>ye7^&|9VR0Kwh3_t5 z%`RV}K9aCKV<7A+e7&g#juno6k8ePIjKZ<4ZtzRRpDp^SgwtNec0_(%gr+CAVSt)% z!UM)HPc6?*ggeyE;#Jt7?(q%g+P|aPXQD0iSNE+j=d;ui4kd7rI$~=cEK}!_8vbH2 zfK^XPz;hv>qk7gW+%I5=I)C0raJsrcdPWr3Prb-!!VLpW>XNgwV6(d9Je~)AHHzMf znd;^K_fej&F5QjL_Fbdid=(Msdt1GAa1K$w0QL5Sg>a(!;6qGJzh&y$$7rx$wYrX9 z2k)r=k^DQ+-(>YK%X+}R>RV5b!#uUIN#6yDDs|H>bHO$Bqur~Bf*eJ*?HxEwY zg2;dTQNL&_EPT_stUlu3%oPmSI>5lv1UU3c`fcM2B2^S9F z#H|~GVWe1NI0cW0HA~U40oN@KbQSAz(cyu^#8WRW!l{az6)$M`(Rf`CY}QDrONl~_ z22Ju2^dxktCVfv9ELXf^G0a|*9neS=7Np5pj71pksF_lN`r%QU8FN%{f@W5)Rd9o5 zR_+`|5k_*%1bC{}UAMa`b&f$*JX zPvv_2_;A+j5A}l)n(r1rfRi*Q&q%O9({u=-9lTkhVmx|>2$DC)!Q)a;(iiZy6jO=C zI8-ggw%S!1C8Fa)!xZO9nPZ}muYhUT|3gno;|FO_a9f&cgKscH-$-++(7-TvX>s|# zV4}2SFXnn!uCzQS9~Ma~R$_`G?@8+pgb_t)rR@jwu!pqs5C#xcBvk~xhMS~)B1Rfj zBYoF$0p61il_U^FGt$X;JTIbcrPGyh*#FVt()o`u$I;WIyM$+c^ygYSj1WdQXjKlF z%jgy@XFeZerR8>QfSy_*)NF?07H!z+naH2e4n5He-qS{RoJbVgO&f1N8m4MTc_Ma#TuDrl11_+$Sk9hM#EVxNw5l^qwc@SW_v_D`bZZgNNiLYq8Ij`I2i zelN$0XgImSVhSV2jh}`es7~@HH&HKTq-=@~hYRGD!M5ygmW`Ig z6nXvILn!!M-q^Grel70~Lda4t$ln;yKpTq(Rn{|a-(2?|N-JU0yqVy)+58jiA#z?xl`hIY1;k&b<>U%2xWQI@^FcvI2TxHAJCo?tNCW25K;n&4r05{dmeA=>cd+jFo0 zZHkn-Q8bX5!>*;?4g&R8DM{ z;#7Ip@0wiM68fZb|pQd<)l zIObStip*rw)4A=;-@yLwGynhcOKA;ic5uZvlfQf_ko)d0B}6}laISSHvsW?nlc+!XtnBOi;Z zBU|(7=3|E}CJsrD@M p5732WZkTf%^MH9{+BffSZuoro&U^FbmH&HhW_L?U*bAlX5*sG# z+jdd$|V za654u&%@KiHFL1dENd$nYF5wABkp265xbgr`~7eS@gBI5Jwm+aVR)7JkXHDX_!UUY zw36P$ZwNs;ggP!-2vexj!xFfXy1ny(`^nwZuX;vif{A;su8 zf6T04FFA=qDh?3|xZZ*e2?uESALx*9l|nNf=yCFl!aU{?$puM&$y^HSy&U;pNp6+A zV^(1=8Asu}-ViA!Q-t6EizW9_MCCZ7@0wMLl3tRDP>%x2A}M2|^#r!^$NF`8Q(=!-O@gBi2 zjp7F_gnEkC&&Qmpc2nY(pWrDPX^DlXx%w%WuH|y1p0#w#e4gjkG&Bsi2RMDey;zJ>|t}?Ru z$B8WM8HH{#3}US6AHfX9>N*;*{F<>YIt6PP+ei`KXFAu;C9<+*x;)8;X^f*6I&4+S zIDLi=Sk*JZ%C)eC8JplsWGzbSW0~}0SiRPIX3{8v-!u8$Ft^rMm;zHl8yCsR%$)sI zNUvqSO7w!a8ABk_?QEG>DI>Hj>%;`Y*BXg0hfj5{d#pq~znPhLK zt?f3EzI`&QU@@Zhe`DJpEQbxOLlZ*P!IyRH@d{32U9?}ob*$@p9zKL9-_efk`w}7V z7|I5Yp8~&U6Vo~q+1azptJlK?Y$etp+10Y^{M_MHcB5$<+P!5r^;kw^Z^v%JHq?{- zz)vS+pTQb`%fW>&*`0N#VFTNkgUHxlWE)Kt+PASyrp5M|1=~E)2fDI*-=Sll4P&1f zw!migS=$`=fc@j}VWLhNnfklq&`qXmo)3r0Y)&qRg)-Z?v#`!2_J60#=8VpwtkZ}D zqR!oA4pY(7&atxaVXbhgEY@u#tdOOeI?_cWo9?(2_L9vmOorLA`88p1fox6wOV}*i z65mMVK(f8>(6B={+1c2=FjjW)C_3P9Q1;~87xJcg*NLb3<9B6JVZgSi!N(BZCWT&3=NIGtOS zg6-F}iqo&jMnzq>b7n7bwSuX@Bd)Ie15r0uh&N)l0bJc;8I0rVd#r~!l2wvFbMZXLKChY(^nA8uEn7Ea?1ZNt08Z6kMb7$WM{#GRRe0lWR8H=lIZa5twsC+hCT z{T7E%caM`?$h|oGEz+C0*CSKlFFZ4K9g({gFPn`>xDSRHfO`_pnJRRjB3Z+$ADgc4 z<~18I1@6~)hX$+}4=cX6CpzL0&IhDFfchLhU_Krg9%uMLb*}I~eBk1>L_Ktp{UxVJ zuH~a#F_%5|@CmOmk{);XM8lUvJ%jnteG$^0WB3VEn_vN-QCJOY_=(>%!u@>a#5M4q z*mM=P>?^Vo~7GZVv+QTpF696ypRi#LO-hp5F%?j94GM-=6uLbE$zPczAp69n5 z#0WosV%D<*L?k?W^4oSG-!n)uADZ%u`5&fWV4l@{lT{A(^VFX^u{QcE$V7}yL$=hbV9r#DxQQmuyz}nym=eEGqU9mxkI)Y2E?;v65g0H-UK5%PPslgK7sC(oT@Nuu10CfD z9;3a15pw+@z7i)h<^N831*_%1F75?S$!|S7OcbD&w`x1X5P9n@Q+l$zt$sN)Dp<=q z@VbIC8sK{cuka-rJWn5!6d9PjtR)rv{JC*c*vbjKY; zK|zWl+6jvk3q{-)RH3L@H3+sSnsvvChQunG%h9nRQzUmO4&|W3L#`{1zdlD4td~hA zUXtUL{8+rdgXbv4(dDp4nX(@p8S0=+Ysi2DC1*-*S7!QOK>k@}_98685Ti1`4CO;^ zC<}^Y@V#=T*K&Nf=%t*Q^A5%-OLk$P!}HDRhgT_A3kdD-M#+J1G){*(h80Ahcm#B9-6~9JWIA z;W(o3kzzp7N;pG|HexY`SBf!EPvN`8F$(lN{1>wk*5df|5kwJzFcppxvxX_*3~{Or zKG8({T`X!u0})N)qPlzVo>;mKa~<(cT#`M9DAHE^b{VENjx(Ha~#cycL~q_ z=q@VSix5VSQ^_1Km(g=o+^6g7R9x*Ur2nZBf=#|O8{@4KryV1TNmdO#@dccw3P0in z4XUV)`aGPRSH*Q1OB5?tjqyMzW6M>OmwtffRQgsJFRDuWVNT=Esmg}kfe%z`i!lWW za@E?aYUn9hAh}!B*m?%}H&sU?4-q9st8Udg!bz&T%wf1qbw3diOl(!P={0MKMtZ7V zgieQRRIf*Tgf~g;-3<0cwlBcn&0Is~u-!yC$DiJAT6w zrPQi@R=kJj)q!Ub;!&N{BRqeF6Vx#ZG(4(EvR)mVH4W)gYW?3@P;fM-HbjL$FZHrP zc5sHea`#ZUMqR~Rh7Zh+u~%2U+e0*_uX=TB6--dq2Owf&zEp43p@A{0CC{t3C*MK( zt-9$629`QN-OQLwS061!`P2pKho?|~YJ*-Q6vh#a-J@|Fb{k&P_$JIFN)t7Ku{m(M zChlWDxI&XP3|~yro|#Q|(PZ~UetMW@{y)%>^bAeIQ%q5Mxn`fwB-p4qbaVjGI8k%_ zaV>P!oSqa6r)jRFn%u6rRy_;q?`qomprY|zG>?a0fYF*KuIu4K&D*{k;Wn+8=@ZKY zop$(mtc3}I+7TI8loNJoW0Ejc6K-f@*J7j@>$Sz3j>F^Hk`<5PJ?)lv*hLd9v^&1Q z$TOp~J3R{E3~jUQOZc63UklpRXa1l)aC9#+&S;OOVpV2&YR_`0FzXBLCHq!brM-L% z+bQdw_WE^1B-={+LYD%4bQIhKvvf{Dn9J$;ns2iYfe{^#+$$bP1a*oB63l5~lo zh)m9W-BKqsoKvr>pW_El=(fIbr$EYir`x%NBg%Ew9VoYhdAcLZaAR(%?oI)EoZF?eS+0ens*_ji0ehe_+Eh zLx6+8MB+k%IcKzq4otdq>*T*~MVVRXlpD)@Z7y04I#@7x`~P(?H7Mf3F`JoP=0f{G zd-l^nIsgrTU02BKu25 zmMmA(yhRu_LTCo_&X{*JG>kplFk*Orw|m~tyWG!5-{*PmbD!n^EazV3TiLCp>^f^^ z%=(U1dL?l+91$Bp+z$~jp7?HOU=Hyv*Wni8-RfZl@qsPyEb*I7`Rl~*3xv<9%bGkQ z8Ash8<--xw=e;|eMb4&nWkr%_$+^i1`8(wN*bTlV7gM`>&VpPLYKb@}axpc`4JQ{< z!`uwXTynX39{J7Wx@-kBO1>kv?~v!6$-CGQPNk8X&%qoDT!n%2x6KOfk|h+lsg6i! zq`+njOlYPtZ=Fa_LK}^Ze@GZnXG#6W*lI)?P$vD++xx8v0Rq^>dg@5ib6)lp=ifc}Se1h+M3l zsHI62-#|y2Yl)qlVYZPT+s{fFpW@Ari7>as478? zU#7z?bkHH1vC6&-3mBUq6}-swC|?HOFm|o!L{_eh!$1t!Y9iCq76Y)F&-g3%z=KRo zqzC*_Z%$YbVPY>}_gc?o=1wEHnMv=1wY9#=WSS~=B*`!)=S(T`YnU%44TN=!!4LUP zmdrNGQE(7re0Lp&Gv`NkfqR*&SNz~L<_C5+{FC{46$Wb4MN&V3dGh2p6r`~V7BjLb zW;>l*3oo$t)d*FWU93a@Kj00vmv$jhS6kMpjE8X$^}E)xUat`HZc5fKE)Ax#lVY;B2zw!Q?&WOQ=EnK zAb69r+jE1+sT^>Q@A8{8lT2Hd+dH`50Z>Fv$MFN!DXT!VBD{ni=rE*?uCoxeWvD=fG{z{SA6?+oEvl`o(cO^~q?U-)G#;cK31Rf~mr3 z?%>)FM9wVy2)l3xi)7G^JJi1n21+iLtdP9R9Xg1Poj;g$8NwZ}3ng-y%2j1);aaZl zD4s1Ym$=3NMAYR4r@y)gGwyH6nGND@r@cUa9`_&|q3&NId5L@3v>y3q-0R6vL<2ND zld%^D@Uo?d#DF}Ai3}*^Ia7NBj!8b@#iw}RRm*GkVF_IO@%D$YXIy9TL)Ln{BAMq2Nu$FEDANd+HaqG@cGJFod;HP^b zv~DH*?2Kwy!N+IqfH(Mr)s^rApO~qK zY!E^!Z=#?@m@*%s^x}kQN6g&IMTia^3||S+_wc^AgAnJA8G8o^39(ghj*#S!=e&2m zkTC}hdshnCreo**y|6-onR>q!)>vREdEil3pc-1P_|HEfgI zBeg56k`Jvg|FN zydKueTeLlhMv=Vb4)UXX3PgV5@?+u^{rdRj9Ku0sl~i z(!{v%;7x7#VIHs8E(Fp%kEO0nZ6zHqSrW0_HA`f53D6mAadz&wOp{UVaBpMT^ zs9B4Fjrl^dQBjwI0grj7xcK@S(b%4PDG@B0qvT`o+#Xw^R83zCtCdk_FpzOWl`{{= z!)VD(l2??8-ZxPGNSV9_n{YydGQAM>Cp=eXX3L0zMCIav8=<>$amsrbt<0~&M1z(} z>W?V53kYq{HYZ4ra_2arkVUHDQ?|k_st_YKW5`KWs7ZauFRB>| zj6CFn*-#%8=Xd;Y;D^y7VO1N8v1>038 z3nSoHste(`Fe1KFT{6N*R&{j|);Myk>K@_Fk4#llEkYQ1SS_>1T1I}a=GxzHRdeOr zh$eMV3;rgjN^Vt;zO)eeI`#PT1L1A;#4f2slik$eb}=~rlgF!PxFCd+pQ`5-e;}F? zsMfc@sW;UHK3L1BW_4k}UHD$TXH_ZDv~KD>{}f?>(exlg}N2*_r)h|GzMEyGWBWzNC=wU+?ec5bGCsBFg6;aH1 zQOv?7idi9Ac;WoV7)6JrIHof>(P1?UPl@iE|00T2iGEE8ZES`Z?Diu(Duyc1aqK0t zvwDbON%M(j#fqObqu#6oqCr0~5Q%??8+^MG#f6Alz8(!1ilxj=cvP}kEPa0x`8IKT zODWOpj^d%=h}i6r;t?G>m>nm1R6I8IF7i*r>Q+oFzOPurn4Bm!6rg^5rugVG+K=C= z5wgOG5~?+Nhk)OZxUKPsTuzkOS>qR$0vBk)Kl;GUnxp{y5J~)KHpxSi?1l2A>6+YK z7)a7W&EaQQqNHt_)9!QOc}-ozF!)+?@o70xvX$n_Tz@!0^K-PxY|Sq_mcRp=C!T00 z`GH>Zbj%H+6njmpQyGlcyz}}JZqN=ieM3okt{oGHy)egC8yt_#IA^^!bPASg&IxVU z9?UegOuK6TMfj~YfAdp#TU+rSr)REKdwd~gKF?cw!X*<<*Vf2Bhs(65o6+&S2JP8~ zTB!d;+YpUinHHjL;?Q8)PVG3y`fZXqJ+VcM6vD7a8Z{?)Kl*K;J+ zGX1o!pXnY*Z_{~S$32lTKsTWZ9cN_fCXGd8GLGnqd!plvA9ROu1{2Mf>5jBHLs#92 zbsV0$^CNX<*LFq04&C_;_~86gy1SVe@%)Fn`z&U%K&^WggyXruL-*{fD{u*(C<}HO zms>t#47;q}8O~du?j*-A3~@wi{QOM+tIaj81H0!?BmTCgN8MV#$jVC zJ9RWwRR_f;&zqb)Z+6;Z;!XFS@mkDvh4D<%KW!On!}dI*VfspY!1N_$b$#;M}}%JD6L>i@5-5jDFp*U*C_ za}#N+Ap9W4>m~l-Ym({3nExu;G3B-96l2ZU{<{pNSXI-D@iN<<4nT{xEHl9{aCJu} z0-e|kOf>2wv=_`Z{k6fWw%5hg^q&`#kIH>nrlh^%PBhcmf;sS?_tD02)ab=AHB3W$ xohC!*8XKnBaC@~K^T?Ezy_Dkw@56%dROA{$YIl(Vp4 zFUJwFAx77BK!^o?`SWCq|lVR(38Skir^^Oxw6|SY;YCIkIKI2Q0On4CRIH{T*Z>OJIRDXm%u3#rf|3~r~= zqmJ-9Dw~54>+ewcP7{$qpyipEQ$r}NUvLfP)8_tokl{SFe2I=2?$Wum^+cVP(S?9q zxSK8;T;WwRURivd$ik7XEWwB^g6WruH{lF=AD#f$G3;49z~T_2n17PUQq2g48PJ`v zth*1>7|SbofaRBrRlyl(W^BVn_#0!lWgd}L52nYXY#7Hl3_ypiW;2c-q61c|nLu?7 zJa1%@V%>?XNj8z0bONi_x{8@Tj^F_%yAS5p`UR6G)wB6XHlHaxup0TD%olM3;C;sA zhkR#mX063=n827{Uw{S7v4Ae{G}C(4558u;XRC>9?U_r(=%}sHUryvP4<6h=!3tJj zF(TUrw)5e|@Cj?*fKYWg&N}q_9lm9I>1Ppj4P>1*@~{k|e%D*9*E58?+W^*Yau%#) z<0je>edx_rt=|ai*;QDB^xzI!ZvH3mvSNO982m%AA^RDTW2B-!W)G}aG{3=v z9d9bmMKu%k6cpbdufqQCS*&=pEE3i!ersL`f9SB6h2r_~DxzLqiWgzgFiG)piIgwm zgjYWBCfCV%AdwTx^{BZBhjWerQE)%ktEU;hMjn3Aem)0#V;ivhLi<&?e+Vxs|Wb;l8QdDx=}=NX+HdCSd#Z-OO#s zKtp}Mk-f)lQR2EY$8B5u4hF;bFp=A~L;+`Ub^SKNa@pOoH#&6bCL6`oZ9_*~GG%MH zT`h>X%Tdm_FJF(uYp&&Mylnb;ai@b2;(ke7>!*l7ze3pt?poGw$Y0{_L?iScbFyCC z({sy^pTIpIn*j59Cg&??<`r`hnU8;i7?7)q=cM*r?PL>p?L%C5Eim%BTFi;-a^8MB z7LjW!KiCZ&>2JyVPPz*R@V@hLfb{=@AGXa2ZsPrx)WBxh`yIMD%Et4foiMjj>*F$3fpSoxd5}ABj>IPUS`;e}TA!=PSMci#(umw$`1->bp?i>QE<_~U%lWT& zN#z?mG`gQhLb`C5-nu!Rpw-(U7r!k0%<$?Br6vP7_d)?vZT`??0=s_$`xDC z&=7;NHhDO7Q*K?~2xFCp{(+xJLuM)uSNDM{WKYZfp*-bgLp0P%+4lGb?5*P4Z~zTW zQ)%bK!oR6{;>QOKZB@DMK*aviTjf5jD-2c*sh9Gft3vFJJV9fXVr#Fh=6~Ys@fQufy6JW+L&UZ01MT=dzhnu!K#A~@xXuysuq3~ zELDA%@H=c&{kX&xK383Ta)fAjtg20K2bZeau1on=)q}b!qCmaCTHJ)*0%tbCIDr@3 zp;6#%JHa|ZQ-A>kUK5N?%dx#iL?JzoU& zb{H%Y8Vx7mQ=`zh7(EN^Bs*ScnTj5VmI)`HpNG3-uXGruSMy1DpNI8Pi{lr=Fm=KK zbR_JQdgAsJ_^`u~y=4>CY2Fu!Mi!_uO0WpSj+%FZ#x>LBVrzj2VkCvWpnm zu8%lDK#wEG$*vG5Pl`ak1t!94VtSAoz7un-@yjO4RxH?q2Sg1OOSb(AGsLp5F~?Dh z#HAU9uv%PJiK&S`B(B;$f+$8U*6!A0|HrtAo0~9#m}O$U?<=@f+$mtBF~`LHkNyc? ziB07(M6p)liD;Y?v997Nvt*Lk`YGl%wpP4FIP+sqXs8*HixV{pdrV;7+|6?6ABTmhNKAMro2EehJ(Oss&T1|A1BzRCW!3Cj=pQ4#j z@eY2YF}A^kF`6=;--*V>YRZFd!kLyAH<(X!f+V5{=K$91m}S z&otM!7#)ZvSZHoBN8m)w?Kp&R!W_*5T@Bo?c^aBal&I4@k9ZG*H1F(eiIRrPmTT3! zpCNxxtIe;1ue6=Ku>U9a)jG_@Hl3KSby&m_O&X*fwDK+dLhE-95uWs`Hp1;kqU7G% zNTYxUC;Mw7+pW|_rO!nE2kmE9QE{@p)-*a8hHEQ_b%jT@tM-q8_q3~-pNXdQmW|b} ze$#|}wsu|HYFMVN^F_p_?APuvp#3R7b(qpyyYrKqL@ATC4UaIel=WI;BO@h_XpfiS zhLpS7duQ-~R12LlKbk1bP3I7F1CG_X#}>iGI=`r?@QyC}y$?~kUY8z(KTy(V$!^tU zcuD2o>E{0p9ZA2Z+x{3+lwqm+cF=VA7hTKop>Ue+uY2H$hNdRz9)?_m%XN>OHo{A~*It{5GDZCW>4!>Ynm%MQ)5Eo@0x{y&oJ)L?{>*U;yZn#;&b>y z|Ls*gILlXm@OU$f)*nyAqRcv~KgXfLY#aSg-P&Nh{^t|ePTA}9SFRu;*~j%y4GHj` zfdU(dayl6t12C029)`Zsd61KB@V13#I#Diy!GSn4% zz&VB;ubkmmhTTg!c*<~aaaW>TYs0Zh+?YGaa5E1b&Yftu&0-|E^9+x}u}yQg8XoUG z3m@TylGoXsZ1I>8MgM6jGxKs|CMBDyt?W&|qmPRSObOM;2(yx7})-o^9DTcJBoeTS#ycQNQ zlaX?<%|z*cJ~{1)+4wHRwU3zvCX0nOPWVgz|2}wQ{^?Ugb*O1;vG-4j?f5VTSsSMNf68!upj_(xKV<=@ZZ}|<4X+jBbG6>S6pL?T-3!-`=<)^rfbDcihWE= zdyUg*yEEH906UiXRmyS9Q - - - - BibleMediaItem + + + AboutForm - - Quick - + + build + - - - Ui_customEditDialog + + + AlertDialog - - Delete selected slide - - - - - BiblesTab - - - ( and ) - - - - - RemoteTab - - - Remotes - - - - - Ui_EditSongDialog - - - &Remove - - - - - Ui_AmendThemeDialog - - - Shadow Size: - - - - - Ui_OpenSongExportDialog - - - Close - - - - - ThemeManager - - - Import Theme - - - - - Ui_AmendThemeDialog - - - Slide Transition - - - - - SongMaintenanceForm - - - Are you sure you want to delete the selected book? - - - - - ThemesTab - - - Theme level - - - - - BibleMediaItem - - - Bible - - - - - ServiceManager - - - Save Changes to Service? - - - - - SongUsagePlugin - - - &Delete recorded data - - - - - Ui_OpenLPExportDialog - - - Song Title - - - - - Ui_customEditDialog - - - Edit selected slide - - - - - SongMediaItem - - - CCLI Licence: - - - - - Ui_BibleImportWizard - - - Bible Import Wizard - - - - - Ui_customEditDialog - - - Edit All - - - - - SongMaintenanceForm - - - Couldn't save your author. - - - - - Ui_ServiceNoteEdit - - - Service Item Notes - - - - - Ui_customEditDialog - - - Add new slide at bottom - + + Alert Message + - - Clear - + + Alert &text: + - - - ThemesTab - - Global theme - + + &Parameter(s): + - - - PresentationPlugin - - <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. - + + &New + - - - SongUsagePlugin - - Start/Stop live song usage recording - + + &Save + - - - MainWindow - - The Main Display has been blanked out - + + &Edit + - - - Ui_OpenSongExportDialog - - Lyrics - + + &Delete + - - - Ui_AlertDialog - - Display - + + Displ&ay + - - - SongMaintenanceForm - - This author can't be deleted, they are currently assigned to at least one song. - + + Display && Cl&ose + - - - Ui_customEditDialog - - Delete - + + &Close + - - - Ui_EditVerseDialog + + + AlertForm - - Verse - + + Item selected to Add + - - - Ui_OpenSongImportDialog - - OpenSong Folder: - + + Missing data + - - - ThemeManager - - - Create a new theme - - - - - Ui_MainWindow - - - Open an existing service - - - - - SlideController - - - Move to previous - - - - - SongsPlugin - - - &Song - - - - - Ui_PluginViewDialog - - - Plugin Details - - - - - ImportWizardForm - - - You need to specify a file with books of the Bible to use in the import. - - - - + + AlertsTab - - Edit History: - + + pt + - - - Ui_MainWindow - - &File - + + Location: + - - - BiblesTab - - verse per line - + + Font Color: + - - - Ui_customEditDialog - - Theme: - + + Font + - - - SongMaintenanceForm - - Couldn't add your book. - + + Font Name: + - - Error - + + Preview + - - - Ui_BibleImportWizard - - Bible: - + + Alerts + - - - ThemeManager - - Delete Theme - + + Alert timeout: + - - - SplashScreen - - Splash Screen - + + openlp.org + - - - SongMediaItem - - Song - + + Keep History: + - - - Ui_OpenSongExportDialog - - Song Title - + + Background Color: + - - - Ui_AmendThemeDialog - - Bottom - + + s + - - - Ui_MainWindow - - List the Plugins - + + Bottom + - - - SongMaintenanceForm - - No author selected! - + + Top + - - - SongUsageDeleteForm - - Delete Selected Song Usage Events? - + + Font Size: + - - - SongUsagePlugin - - - <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service - - - - - Ui_customEditDialog - - - Move slide Up 1 - - - - - SongsPlugin - - - OpenSong - - - - - AlertsManager - - - Alert message created and delayed - - - - - Ui_EditSongDialog - - - Alternative Title: - - - - - ServiceManager - - - Open Service - - - - - BiblesTab - - - Display Style: - - - - - Ui_AmendThemeDialog - - - Image - - - - - EditSongForm - - - You need to enter a song title. - - - - - ThemeManager - - - Error - - - - - Ui_SongUsageDeleteDialog - - - Song Usage Delete - - - - - ImportWizardForm - - - Invalid Bible Location - - - - - BibleMediaItem - - - Book: - - - - - ThemeManager - - - Make Global - - - - - Ui_MainWindow - - - &Service Manager - - - - - Ui_OpenLPImportDialog - - - Author - - - - - Ui_AmendThemeDialog - - - Height: - - - - - ThemeManager - - - Delete a theme - - - - - Ui_BibleImportWizard - - - Crosswalk - - - - - SongBookForm - - - Error - - - - - Ui_AuthorsDialog - - - Last name: - - - - - ThemesTab - - - Use the global theme, overriding any themes associated with either the service or the songs. - - - - - Ui_customEditDialog - - - Title: - - - - - ImportWizardForm - - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - - - SongMediaItem - - - Maintain the lists of authors, topics and books - - - - - Ui_AlertEditDialog - - - Save - - - - - EditCustomForm - - - You have unsaved data - - - - - Ui_AmendThemeDialog - - - Outline - - - - - BibleMediaItem - - - Text Search - - - - - Ui_BibleImportWizard - - - CSV - - - - - SongUsagePlugin - - - Delete song usage to specified date - - - - - Ui_SongUsageDetailDialog - - - Report Location - - - - - Ui_BibleImportWizard - - - OpenSong - - - - - Ui_MainWindow - - - Open Service - - - - - BibleMediaItem - - - Find: - - - - - ImageMediaItem - - - Select Image(s) - - - - - BibleMediaItem - - - Search Type: - - - - - Ui_MainWindow - - - Media Manager - - - - - Alt+F4 - - - - - MediaManagerItem - - - &Preview - - - - - GeneralTab - - - CCLI Details - - - - - BibleMediaItem - - - Bible not fully loaded - - - - - Ui_MainWindow - - - Toggle the visibility of the Preview Panel - - - - - ImportWizardForm - - - Bible Exists - - - - - Ui_MainWindow - - - &User Guide - - - - - AlertsTab - - - pt - - - - - Ui_MainWindow - - - Set the interface language to English - - - - - Ui_AmendThemeDialog - - - Main Font - - - - - ImportWizardForm - - - Empty Copyright - - - - - AuthorsForm - - - You need to type in the first name of the author. - - - - - SongsTab - - - Display Verses on Live Tool bar: - - - - - ServiceManager - - - Move to top - - - - - ImageMediaItem - - - Override background - - - - - Ui_SongMaintenanceDialog - - - Edit - - - - - Ui_OpenSongExportDialog - - - Select All - - - - - ThemesTab - - - Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. - - - - - PresentationMediaItem - - - Presentation - - - - - Ui_AmendThemeDialog - - - Solid Color - - - - - CustomTab - - - Custom - - - - - Ui_OpenLPImportDialog - - - Ready to import - - - - - MainWindow - - - OpenLP version %s has been updated to version %s - -You can obtain the latest version from http://openlp.org - - - - - Ui_BibleImportWizard - - - File Location: - - - - - SlideController - - - Go to Verse - - - - - SongMaintenanceForm - - - Couldn't add your topic. - - - - - Ui_MainWindow - - - &Import - - - - - Quit OpenLP - - - - - Ui_BibleImportWizard - - - 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. - - - - - Ui_OpenLPExportDialog - - - Title - - - - - ImportWizardForm - - - Empty Version Name - - - - - Ui_MainWindow - - - &Preview Panel - - - - - SlideController - - - Start continuous loop - - - - - GeneralTab - - - primary - - - - - Ui_EditSongDialog - - - Add a Theme - - - - - Ui_MainWindow - - - &New - - - - - Ui_customEditDialog - - - Credits: - - - - - Ui_EditSongDialog - - - R&emove - - - - - SlideController - - - Live - - - - - Ui_AmendThemeDialog - - - Font Main - - - - - BiblesTab - - - continuous - - - - - ThemeManager - - - File is not a valid theme. - - - - - GeneralTab - - - Application Startup - - - - - Ui_AmendThemeDialog - - - Use Default Location: - - - - - Ui_OpenSongImportDialog - - - Import - - - - - Ui_AmendThemeDialog - - - Other Options - - - - - Ui_EditSongDialog - - - Verse Order: - - - - - Ui_MainWindow - - - Default Theme: - - - - - Toggle Preview Panel - - - - - SongMediaItem - - - Lyrics - - - - - Ui_OpenLPImportDialog - - - Progress: - - - - - Ui_AmendThemeDialog - - - Shadow - - - - - GeneralTab - - - Select monitor for output display: - - - - - Ui_MainWindow - - - &Settings - - - - - EditSongForm - - - Invalid verse entry - values must be Numeric, I,B,C,T,P,E,O - - - - - Ui_AmendThemeDialog - - - Italics - - - - - ServiceManager - - - Create a new service - - - - - Ui_AmendThemeDialog - - - Background: - - - - - Ui_OpenLPImportDialog - - - openlp.org Song Importer - - - - - Ui_BibleImportWizard - - - Copyright: - - - - - ThemesTab - - - Service level - - - - - BiblesTab - - - [ and ] - - - - - Ui_BibleImportWizard - - - Verse Location: - - - - - MediaManagerItem - - - You must select one or more items - - - - - GeneralTab - - - Application Settings - - - - - ServiceManager - - - Save this service - - - - - ImportWizardForm - - - Open Books CSV file - - - - - GeneralTab - - - SongSelect Username: - - - - - Ui_AmendThemeDialog - - - X Position: - - - - - BibleMediaItem - - - No matching book could be found in this Bible. - - - - - Ui_BibleImportWizard - - - Server: - - - - - Ui_EditVerseDialog - - - Ending - - - - - CustomTab - - - Display Footer: - - - - - ImportWizardForm - - - Invalid OpenSong Bible - - - - - GeneralTab - - - CCLI Number: - - - - - Ui_AmendThemeDialog - - - Center - - - - - ServiceManager - - - Theme: - - - - - AlertEditForm - - - Please save or clear selected item - - - - - Ui_MainWindow - - - &Live - - - - - Ui_AmendThemeDialog - - - <Color2> - - - - - Ui_MainWindow - - - English - - - - - ImageMediaItem - - - You must select one or more items - - - - - Ui_AuthorsDialog - - - First name: - - - - - Ui_OpenLPExportDialog - - - Select openlp.org export filename: - - - - - Ui_BibleImportWizard - - - Permission: - - - - - Ui_OpenSongImportDialog - - - Close - - - - - Ui_SongUsageDetailDialog - - - Song Usage Extraction - - - - - Ui_AmendThemeDialog - - - Opaque - - - - - ImportWizardForm - - - Your Bible import failed. - - - - - SlideController - - - Start playing media - - - - - SongMediaItem - - - Type: - - - - - SongMaintenanceForm - - - This book can't be deleted, it is currently assigned to at least one song. - - - - - Ui_AboutDialog - - - Close - - - - - TopicsForm - - - You need to type in a topic name! - - - - - Ui_OpenSongExportDialog - - - Song Export List - - - - - BibleMediaItem - - - Dual: - - - - - ImageTab - - - sec - - - - - ServiceManager - - - Delete From Service - - - - - GeneralTab - - - Automatically open the last service - - - - - Ui_OpenLPImportDialog - - - Song Import List - - - - - Ui_OpenSongExportDialog - - - Author - - - - - Ui_AmendThemeDialog - - - Outline Color: - - - - - Ui_BibleImportWizard - - - Select Import Source - - - - - Ui_MainWindow - - - F9 - - - - - F8 - - - - - ServiceManager - - - &Change Item Theme - - - - - Ui_SongMaintenanceDialog - - - Topics - - - - - Ui_OpenLPImportDialog - - - Import File Song List - - - - - Ui_customEditDialog - - - Edit Custom Slides - - - - - Ui_BibleImportWizard - - - Set up the Bible's license details. - - - - - Ui_EditVerseDialog - - - Number - - - - - Ui_AmendThemeDialog - - - Alignment - - - - - SongMaintenanceForm - - - Delete Book - - - - - ThemeManager - - - Edit a theme - - - - - Ui_BibleImportWizard - - - BibleGateway - - - - - GeneralTab - - - Preview Next Song from Service Manager - - - - - Ui_EditSongDialog - - - Title && Lyrics - - - - - SongMaintenanceForm - - - No book selected! - - - - - SlideController - - - Move to live - - - - - Ui_EditVerseDialog - - - Other - - - - - Ui_EditSongDialog - - - Theme - - - - - ServiceManager - - - Save Service - - - - - Ui_SongUsageDetailDialog - - - Select Date Range - - - - - Ui_MainWindow - - - Save the current service to disk - - - - - BibleMediaItem - - - Chapter: - - - - - Search - - - - - PresentationTab - - - Available Controllers - - - - - Ui_MainWindow - - - Add &Tool... - - - - - TopicsForm - - - Error - - - - - RemoteTab - - - Remotes Receiver Port - - - - - Ui_MainWindow - - - &View - - - - - Ui_AmendThemeDialog - - - Normal - - - - - Ui_OpenLPExportDialog - - - Close - - - - - Ui_BibleImportWizard - - - Username: - - - - - ThemeManager - - - Edit Theme - - - - - SlideController - - - Preview - - - - - Ui_AlertDialog - - - Alert Message - - - - - ImportWizardForm - - - Finished import. - - - - - GeneralTab - - - Show blank screen warning - - - - - ImportWizardForm - - - You need to specify a file of Bible verses to import. - - - - - AlertsTab - - - Location: - - - - - Ui_EditSongDialog - - - Authors, Topics && Book - - - - - EditSongForm - - - You need to enter some verses. - - - - - Ui_BibleImportWizard - - - Download Options - - - - - BiblePlugin - - - <strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service. - - - - - Ui_EditSongDialog - - - Copyright Information - - - - - Ui_MainWindow - - - &Export - - - - - Ui_AmendThemeDialog - - - Bold - - - - - SongsPlugin - - - Export songs in OpenLP 2.0 format - - - - - MediaManagerItem - - - Load a new - - - - - AlertEditForm - - - Missing data - - - - - SongsPlugin - - - <b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br> - - - - - Ui_AmendThemeDialog - - - Footer Font - - - - - EditSongForm - - - Invalid verse entry - vX - - - - - ServiceManager - - - OpenLP Service Files (*.osz) - - - - - MediaManagerItem - - - Delete the selected item - - - - - Ui_OpenLPExportDialog - - - Export - - - - - Ui_BibleImportWizard - - - Location: - - - - - BibleMediaItem - - - Keep - - - - - SongUsagePlugin - - - Generate report on Song Usage - - - - - Ui_EditSongDialog - - - Topic - - - - - Ui_MainWindow - - - &Open - - - - - AuthorsForm - - - You haven't set a display name for the author, would you like me to combine the first and last names for you? - - - - + + AmendThemeForm - - Slide Height is %s rows - + + Slide Height is %s rows + - - - Ui_EditSongDialog - - Lyrics: - + + First Color: + - - - Ui_AboutDialog - - Project Lead - Raoul "superfly" Snyman - -Developers - Tim "TRB143" Bentley - Jonathan "gushie" Corwin - Michael "cocooncrash" Gorven - Scott "sguerrieri" Guerrieri - Raoul "superfly" Snyman - Maikel Stuivenberg - Martin "mijiti" Thompson - Jon "Meths" Tibble - Carsten "catini" Tingaard - -Testers - Wesley "wrst" Stout - + + Second Color: + - - - SongMediaItem - - Titles - + + Background Color: + - - - Ui_OpenLPExportDialog + + + AuthorsForm - - Lyrics - + + You need to type in the first name of the author. + - - - PresentationMediaItem - - Present using: - + + You haven't set a display name for the author, would you like me to combine the first and last names for you? + - - - SongMediaItem - - Clear - + + Error + - - - ServiceManager - - &Live Verse - + + You need to type in the last name of the author. + - - - Ui_OpenSongImportDialog + + + BibleMediaItem - - Progress: - + + Quick + - - - Ui_MainWindow - - Toggle Theme Manager - + + Bible + - - - Ui_AlertDialog - - Alert Text: - + + Book: + - - - Ui_EditSongDialog - - Edit - + + Text Search + - - - AlertsTab - - Font Color: - + + Find: + - - - Ui_AmendThemeDialog - - Theme Maintenance - + + Search Type: + - - - CustomTab - - Custom Display - + + Bible not fully loaded + - - - Ui_OpenSongExportDialog - - Title - + + No matching book could be found in this Bible. + - - - Ui_AmendThemeDialog - - <Color1> - + + Dual: + - - - Ui_EditSongDialog - - Authors - + + Chapter: + - - - ThemeManager - - Export Theme - + + Search + - - - ImageMediaItem - - No items selected... - + + Keep + - - - Ui_SongBookDialog - - Name: - + + Results: + - - - Ui_AuthorsDialog - - Author Maintenance - + + Verse Search + - - - Ui_AmendThemeDialog - - Font Footer - + + Version: + - - + + + From: + + + + + No Book Found + + + + + Advanced + + + + + To: + + + + + Clear + + + + + Verse: + + + + + BiblePlugin + + + <strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service. + + + + BiblesTab - - Verse Display - + + ( and ) + - - - Ui_MainWindow - - &Options - + + verse per line + - - - BibleMediaItem - - Results: - + + Display Style: + - - - Ui_OpenLPExportDialog - - Full Song List - + + continuous + - - - ServiceManager - - Move to &top - + + [ and ] + - - - SlideController - - Move to last - + + Verse Display + - - - Ui_OpenLPExportDialog - - Progress: - + + Display Dual Bible Verses + - - - Ui_SongMaintenanceDialog - - Add - + + Only show new chapter numbers + - - - SongMaintenanceForm - - Are you sure you want to delete the selected author? - + + Layout Style: + - - - SongUsagePlugin - - Song Usage Status - + + No brackets + - - - BibleMediaItem - - Verse Search - + + Bibles + - - - Ui_SongBookDialog - - Edit Book - + + { and } + - - + + + Note: +Changes don't affect verses already in the service + + + + + verse per slide + + + + + Bible Theme: + + + + + CustomMediaItem + + + Custom + + + + + CustomPlugin + + + <b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br> + + + + + CustomTab + + + Custom + + + + + Display Footer: + + + + + Custom Display + + + + + EditCustomForm + + + You need to enter a title + + + + + Error + + + + + You need to enter a slide + + + + + Save && Preview + + + + + You have unsaved data, please save or clear + + + + EditSongForm - - Save && Preview - - - - - Ui_SongBookDialog - - - Publisher: - - - - - Ui_AmendThemeDialog - - - Font Weight: - - - - - Ui_BibleImportWizard - - - Bible Filename: - - - - - Ui_AmendThemeDialog - - - Transparent - - - - - SongMediaItem - - - Search - - - - - Ui_BibleImportWizard - - - Format: - - - - - Ui_AmendThemeDialog - - - Background - - - - - Ui_BibleImportWizard - - - Importing - - - - - Ui_customEditDialog - - - Edit all slides - - - - - SongsTab - - - Enable search as you type: - - - - - Ui_MainWindow - - - Ctrl+S - - - - - SongMediaItem - - - Authors - - - - - Ui_PluginViewDialog - - - Active - - - - - SongMaintenanceForm - - - Couldn't add your author. - - - - - Ui_MainWindow - - - Ctrl+O - + + You need to enter a song title. + - - Ctrl+N - - - - - Ui_AlertEditDialog - - - Edit - - - - - Ui_EditSongDialog - - - Song Editor - - - - - AlertsTab - - - Font - - - - - SlideController - - - Edit and re-preview Song - + + You need to enter some verses. + - - Delay between slides in seconds - + + Save && Preview + - - + + + Error + + + + + bitped + + + + + v + + + + + c + + + + + Invalid verse entry - Vx or Cx + + + + + Invalid verse entry, values must be I,B,T,P,E,O,Vx,Cx + + + + + EditVerseForm + + + Verse + + + + + Chrous + + + + + GeneralTab + + + CCLI Details + + + + + primary + + + + + Application Startup + + + + + Select monitor for output display: + + + + + Application Settings + + + + + SongSelect Username: + + + + + CCLI Number: + + + + + Automatically open the last service + + + + + Preview Next Song from Service Manager + + + + + Show blank screen warning + + + + + Prompt to save Service before starting New + + + + + General + + + + + Show the splash screen + + + + + Screen + + + + + Monitors + + + + + SongSelect Password: + + + + + Display if in single screen + + + + + ImageMediaItem + + + Select Image(s) + + + + + Image(s) + + + + + Image + + + + + Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) + + + + + Replace Live Background + + + + + No item selected + + + + + You must select one item + + + + + ImagePlugin + + + <b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br<br>From the plugin if the <i>Override background</i> is chosen and an image is selected any songs which are rendered will use the selected image from the background instead of the one provied by the theme.<br> + + + + + ImageTab + + + sec + + + + + Image Settings + + + + + Slide Loop Delay: + + + + + Images + + + + + ImportWizardForm + + + You need to specify a file with books of the Bible to use in the import. + + + + + Invalid Bible Location + + + + + You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. + + + + + Bible Exists + + + + + Empty Copyright + + + + + Empty Version Name + + + + + Invalid OpenSong Bible + + + + + Your Bible import failed. + + + + + Finished import. + + + + + You need to specify a file of Bible verses to import. + + + + + You need to specify a version name for your Bible. + + + + + This Bible already exists! Please import a different Bible or first delete the existing one. + + + + + Starting import... + + + + + Invalid Books File + + + + + You need to specify a file to import your Bible from. + + + + + You need to specify an OpenSong Bible file to import. + + + + + Invalid Verse File + + + + + Open OpenSong Bible + + + + + Open OSIS File + + + + + Open Books CSV File + + + + + Open Verses CSV File + + + + + LanguageManager + + + Language + + + + + After restart new Language settings will be used. + + + + + MainWindow + + + The Main Display has been blanked out + + + + + OpenLP Version Updated + + + + + Save Changes to Service? + + + + + Your service has changed, do you want to save those changes? + + + + + OpenLP Main Display Blanked + + + + + New Service + + + + + Open Service + + + + + Save Service + + + + + OpenLP 2.0 + + + + + English + + + + + Default Theme: + + + + + &File + + + + + &Import + + + + + &Export + + + + + &Options + + + + + &View + + + + + M&ode + + + + + &Tools + + + + + &Help + + + + + Media Manager + + + + + Service Manager + + + + + Theme Manager + + + + + &New + + + + + Create a new Service + + + + + Ctrl+N + + + + + &Open + + + + + Open an existing service + + + + + Ctrl+O + + + + + &Save + + + + + Save the current service to disk + + + + + Ctrl+S + + + + + Save &As... + + + + + Save Service As + + + + + Save the current service under a new name + + + + + F12 + + + + + E&xit + + + + + Quit OpenLP + + + + + Alt+F4 + + + + + &Theme + + + + + &Language + + + + + Look && &Feel + + + + + &Settings + + + + + &Media Manager + + + + + Toggle Media Manager + + + + + Toggle the visibility of the Media Manager + + + + + F8 + + + + + &Theme Manager + + + + + Toggle Theme Manager + + + + + Toggle the visibility of the Theme Manager + + + + + F10 + + + + + &Service Manager + + + + + Toggle Service Manager + + + + + Toggle the visibility of the Service Manager + + + + + F9 + + + + + &Preview Panel + + + + + Toggle Preview Panel + + + + + Toggle the visibility of the Preview Panel + + + + + F11 + + + + + &Plugin List + + + + + List the Plugins + + + + + Alt+F7 + + + + + &User Guide + + + + + &About + + + + + More information about OpenLP + + + + + Ctrl+F1 + + + + + &Online Help + + + + + &Web Site + + + + + &Auto Detect + + + + + Choose System language, if available + + + + + Set the interface language to %1 + + + + + Add &Tool... + + + + + Add an application to the list of tools + + + + + &Preview Pane + + + + + &Live + + + + + Version %s of OpenLP is now available for download (you are currently running version %s). + +You can download the latest version from http://openlp.org + + + + MediaManagerItem - - &Edit - - - - - Ui_AmendThemeDialog - - - Vertical - + + &Preview + - - Width: - + + You must select one or more items + - - - ThemesTab - - Global level - + + Load a new + - - + + + Delete the selected item + + + + + &Edit + + + + + &Add to Service + + + + + Send the selected item live + + + + + Add the selected item(s) to the service + + + + + Edit the selected + + + + + Add a new + + + + + &Show Live + + + + + Preview the selected item + + + + + Import a + + + + + &Delete + + + + + &Add to selected Service Item + + + + + No Items Selected + + + + + You must select one or more items. + + + + + No items selected + + + + + No Service Item Selected + + + + + You must select a existing service item to add to. + + + + + Invalid Service Item + + + + + MediaMediaItem + + + Media + + + + + Select Media + + + + + Videos (%s);;Audio (%s);;All files (*) + + + + + MediaPlugin + + + <b>Media Plugin</b><br>This plugin allows the playing of audio and video media + + + + + OpenSongBible + + + Importing + + + + + PresentationMediaItem + + + Presentation + + + + + Present using: + + + + + Automatic + + + + + A presentation with that filename already exists. + + + + + Select Presentation(s) + + + + + File exists + + + + + Presentations (%s) + + + + + PresentationPlugin + + + <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. + + + + + PresentationTab + + + Available Controllers + + + + + available + + + + + Presentations + + + + + RemoteTab + + + Remotes + + + + + Remotes Receiver Port + + + + + RemotesPlugin + + + <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche + + + + + ServiceManager + + + Save Changes to Service? + + + + + Open Service + + + + + Move to top + + + + + Create a new service + + + + + Save this service + + + + + Theme: + + + + + Delete From Service + + + + + Save Service + + + + + &Live Verse + + + + + Move to &top + + + + + New Service + + + + + &Notes + + + + + Move to end + + + + + Your service is unsaved, do you want to save those changes before creating a new one ? + + + + + &Delete From Service + + + + + Move up order + + + + + Move down order + + + + + Move &down + + + + + Load an existing service + + + + + &Preview Verse + + + + + Move &up + + + + + &Edit Item + + + + + Move to &bottom + + + + + &Maintain Item + + + + + SlideController + + + Move to previous + + + + + Go to Verse + + + + + Start continuous loop + + + + + Live + + + + + Start playing media + + + + + Move to live + + + + + Preview + + + + + Move to last + + + + + Edit and re-preview Song + + + + + Delay between slides in seconds + + + + + Move to next + + + + + Move to first + + + + + Blank Screen + + + + + Verse + + + + + Stop continuous loop + + + + + s + + + + + Theme Screen + + + + + Hide Screen + + + + + Chorus + + + + + SongBookForm + + + Error + + + + + You need to type in a book name! + + + + + SongMaintenanceForm + + + Are you sure you want to delete the selected book? + + + + + Couldn't save your author. + + + + + This author can't be deleted, they are currently assigned to at least one song. + + + + + Couldn't add your book. + + + + + Error + + + + + No author selected! + + + + + Couldn't add your topic. + + + + + This book can't be deleted, it is currently assigned to at least one song. + + + + + Delete Book + + + + + No book selected! + + + + + Are you sure you want to delete the selected author? + + + + + Couldn't add your author. + + + + + Couldn't save your topic. + + + + + Couldn't save your book. + + + + + Delete Topic + + + + + Delete Author + + + + + No topic selected! + + + + + This topic can't be deleted, it is currently assigned to at least one song. + + + + + Are you sure you want to delete the selected topic? + + + + + SongMediaItem + + + CCLI Licence: + + + + + Song + + + + + Maintain the lists of authors, topics and books + + + + + Lyrics + + + + + Type: + + + + + Titles + + + + + Clear + + + + + Search + + + + + Authors + + + + + Search: + + + + + Song Maintenance + + + + + %s (%s) + + + + + Delete song? + + + + + Delete %d songs? + + + + + Delete Confirmation + + + + + SongUsageDeleteForm + + + Delete Selected Song Usage Events? + + + + + Are you sure you want to delete selected Song Usage data? + + + + + SongUsageDetailForm + + + Output File Location + + + + + SongUsagePlugin + + + <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service + + + + + SongsPlugin + + + <b>Song Plugin</b> <br>This plugin allows Songs to be managed and displayed.<br> + + + + + Open Songs of Fellowship file + + + + + Open documents or presentations + + + + + SongsTab + + + Display Verses on Live Tool bar: + + + + + Enable search as you type: + + + + + Songs Mode + + + + + Songs + + + + ThemeManager - - You are unable to delete the default theme. - + + Import Theme + - - - BibleMediaItem - - Version: - + + Create a new theme + - - + + + Delete Theme + + + + + Error + + + + + Make Global + + + + + Delete a theme + + + + + File is not a valid theme. + + + + + Edit a theme + + + + + Edit Theme + + + + + Export Theme + + + + + You are unable to delete the default theme. + + + + + Theme Exists + + + + + Delete theme + + + + + Save Theme - (%s) + + + + + default + + + + + Select Theme Import File + + + + + New Theme + + + + + Import a theme + + + + + Export theme + + + + + You have not selected a theme. + + + + + A theme with this name already exists, would you like to overwrite it? + + + + + Export a theme + + + + + Theme %s is use in %s plugin + + + + + Theme %s is use by Service Manager + + + + + ThemesTab + + + Theme level + + + + + Global theme + + + + + Use the global theme, overriding any themes associated with either the service or the songs. + + + + + Use the theme from each song in the database. If a song doesn't have a theme associated with it, then use the service's theme. If the service doesn't have a theme, then use the global theme. + + + + + Service level + + + + + Global level + + + + + Song level + + + + + Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. + + + + + Themes + + + + + TopicsForm + + + You need to type in a topic name! + + + + + Error + + + + Ui_AboutDialog - - OpenLP <version> build <revision> - Open Source Lyrics Projection + + Close + + + + + License + + + + + Credits + + + + + About OpenLP + + + + + About + + + + + Contribute + + + + + OpenLP <version><revision> - Open Source Lyrics Projection OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. Find out more about OpenLP: http://openlp.org/ OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. - + - - - SongsPlugin - - OpenLP 2.0 - + + Project Lead + Raoul "superfly" Snyman + +Developers + Tim "TRB143" Bentley + Jonathan "gushie" Corwin + Michael "cocooncrash" Gorven + Scott "sguerrieri" Guerrieri + Raoul "superfly" Snyman + Martin "mijiti" Thompson + Jon "Meths" Tibble + +Contributors + Meinert "m2j" Jordan + Christian "crichter" Richter + Maikel Stuivenberg + Carsten "catini" Tingaard + +Testers + Philip "Phill" Ridout + Wesley "wrst" Stout (lead) + +Packagers + Thomas "tabthorpe" Abthorpe (FreeBSD) + Tim "TRB143" Bentley (Fedora) + Michael "cocooncrash" Gorven (Ubuntu) + Matthias "matthub" Hub (Mac OS X) + Raoul "superfly" Snyman (Windows) + + - - - ServiceManager - - New Service - + + Copyright + - - - Ui_TopicsDialog - - - Topic name: - - - - - Ui_BibleImportWizard - - - License Details - - - - - Ui_AboutDialog - - - License - - - - - OpenSongBible - - - Importing - - - - + + Ui_AmendThemeDialog - - Middle - + + Shadow Size: + - - - Ui_customEditDialog - - Save - + + Slide Transition + - - - AlertEditForm - - Item selected to Edit - + + Bottom + - - - BibleMediaItem - - From: - + + Image + - - - Ui_AmendThemeDialog - - Shadow Color: - + + Height: + - - - ServiceManager - - &Notes - + + Outline + - - - Ui_MainWindow - - E&xit - + + Main Font + - - - Ui_OpenLPImportDialog - - Close - + + Solid Color + - - - MainWindow - - OpenLP Version Updated - + + Font Main + - - - Ui_customEditDialog - - Replace edited slide - + + Use Default Location: + - - - EditCustomForm - - You need to enter a title - + + Other Options + - - - ThemeManager - - Theme Exists - + + Shadow + - - - Ui_MainWindow - - &Help - + + Italics + - - - Ui_EditVerseDialog - - Bridge - + + Background: + - - - Ui_OpenSongExportDialog - - OpenSong Song Exporter - + + X Position: + - - - Ui_AmendThemeDialog - - Vertical Align: - + + Center + - - - Ui_EditVerseDialog - - Pre-Chorus - + + <Color2> + - - - Ui_AmendThemeDialog - - Top - + + Opaque + - - - BiblesTab - - Display Dual Bible Verses - + + Outline Color: + - - - Ui_MainWindow - - Toggle Service Manager - + + Alignment + - - - Ui_EditSongDialog - - Delete - + + Normal + - - - MediaManagerItem - - &Add to Service - + + Bold + - - - AmendThemeForm - - First Color: - + + Footer Font + - - - ThemesTab - - Song level - + + Theme Maintenance + - - - alertsPlugin - - Show an alert message - + + <Color1> + - - - Ui_MainWindow - - Ctrl+F1 - + + Font Footer + - - - SongMaintenanceForm - - Couldn't save your topic. - + + Font Weight: + - - - Ui_MainWindow - - Save the current service under a new name - + + Transparent + - - - Ui_OpenLPExportDialog - - Remove Selected - + + Background + - - - ThemeManager - - Delete theme - + + Vertical + - - - ImageTab - - Image Settings - + + Width: + - - - Ui_OpenSongImportDialog - - OpenSong Song Importer - + + Middle + - - - SongUsagePlugin - - &Extract recorded data - + + Shadow Color: + - - - AlertsTab - - Font Name: - + + Vertical Align: + - - - Ui_MainWindow - - &Web Site - + + Top + - - - MediaManagerItem - - Send the selected item live - + + Right + - - - Ui_MainWindow - - M&ode - + + Font Color: + - - Translate the interface to your language - + + Horizontal + - - Service Manager - + + Circular + - - - CustomMediaItem - - Custom - + + pt + - - - Ui_BibleImportWizard - - OSIS - + + px + - - - SongsPlugin - - openlp.org 1.0 - + + Display Location + - - - Ui_MainWindow - - &Theme - + + Y Position: + - - - Ui_EditVerseDialog - - Edit Verse - + + Show Shadow: + - - - Ui_MainWindow - - &Language - + + Font: + - - - ServiceManager - - Move to end - + + Preview + - - Your service is unsaved, do you want to save those changes before creating a new one ? - + + Outline Size: + - - - Ui_OpenSongExportDialog - - Remove Selected - + + Wrap Indentation + - - - SongMediaItem - - Search: - + + Left + - - - MainWindow - - Save Changes to Service? - + + Theme Name: + - - Your service has changed, do you want to save those changes? - + + Image: + - - - ServiceManager - - &Delete From Service - + + Transition Active: + - - - Ui_EditSongDialog - - &Add to Song - + + Size: + - - - Ui_MainWindow - - &About - + + Gradient : + - - - ImportWizardForm - - You need to specify a version name for your Bible. - + + Bold/Italics + - - - BiblesTab - - Only show new chapter numbers - + + Horizontal Align: + - - - Ui_AlertEditDialog - - Delete - + + Background Type: + - - - EditCustomForm - - Error - + + Show Outline: + - - - ThemesTab - - Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. - + + Gradient + - - - AlertEditForm - - - Item selected to Add - - - - - Ui_AmendThemeDialog - - - Right - - - - - ThemeManager - - - Save Theme - (%s) - - - - - MediaManagerItem - - - Add the selected item(s) to the service - - - - - AuthorsForm - - - Error - - - - - Ui_AmendThemeDialog - - - Font Color: - - - - - Ui_OpenLPImportDialog - - - Select openlp.org songfile to import: - - - - - Ui_SettingsDialog - - - Settings - - - - - BiblesTab - - - Layout Style: - - - - - MediaManagerItem - - - Edit the selected - - - - - SlideController - - - Move to next - - - - - Ui_MainWindow - - - &Plugin List - - - - - BiblePlugin - - - &Bible - - - - - Ui_BibleImportWizard - - - Web Download - - - - - Ui_AmendThemeDialog - - - Horizontal - - - - - ImportWizardForm - - - Open OSIS file - - - - - Ui_AmendThemeDialog - - - Circular - - - - - PresentationMediaItem - - - Automatic - - - - - SongMaintenanceForm - - - Couldn't save your book. - - - - - Ui_AmendThemeDialog - - - pt - - - - - SongMaintenanceForm - - - Delete Topic - - - - - Ui_OpenLPImportDialog - - - Lyrics - - - - - BiblesTab - - - No brackets - - - - - Ui_AlertEditDialog - - - Maintain Alerts - - - - - Ui_AmendThemeDialog - - - px - - - - - ServiceManager - - - Select a theme for the service - - - - - ThemesTab - - - Themes - - - - - Ui_PluginViewDialog - - - Status: - - - - - Ui_EditSongDialog - - - CCLI Number: - - - - - ImportWizardForm - - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - - - Ui_MainWindow - - - &Translate - - - - - BiblesTab - - - Bibles - - - - - Ui_SongMaintenanceDialog - - - Authors - - - - - SongUsageDetailForm - - - Output File Location - - - - - BiblesTab - - - { and } - - - - - GeneralTab - - - Prompt to save Service before starting New - - - - - ImportWizardForm - - - Starting import... - - - - - BiblesTab - - - Note: -Changes don't affect verses already in the service - - - - - Ui_EditVerseDialog - - - Intro - - - - - ServiceManager - - - Move up order - - - - - PresentationTab - - - available - - - - - ThemeManager - - - default - - - - - SongMaintenanceForm - - - Delete Author - - - - - Ui_AmendThemeDialog - - - Display Location - - - - - Ui_PluginViewDialog - - - Version: - - - - - Ui_AlertEditDialog - - - Add - - - - - GeneralTab - - - General - - - - - Ui_AmendThemeDialog - - - Y Position: - - - - - ServiceManager - - - Move down order - - - - - BiblesTab - - - verse per slide - - - - - Ui_AmendThemeDialog - - - Show Shadow: - - - - - AlertsTab - - - Preview - - - - - alertsPlugin - - - <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen - - - - - GeneralTab - - - Show the splash screen - - - - - Ui_MainWindow - - - New Service - - - - - SlideController - - - Move to first - - - - - Ui_MainWindow - - - &Online Help - - - - - SlideController - - - Blank Screen - - - - - Ui_MainWindow - - - Save Service - - - - - Save &As... - - - - - Toggle the visibility of the Media Manager - - - - - BibleMediaItem - - - No Book Found - - - - - Ui_EditSongDialog - - - Add - - - - - alertsPlugin - - - &Alert - - - - - BibleMediaItem - - - Advanced - - - - - ImageMediaItem - - - Image(s) - - - - - Ui_MainWindow - - - F11 - - - - - F10 - - - - - F12 - - - - - CustomPlugin - - - <b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br> - - - - - Ui_MainWindow - - - Alt+F7 - - - - - Add an application to the list of tools - - - - - MediaPlugin - - - <b>Media Plugin</b><br>This plugin allows the playing of audio and video media - - - - - ServiceManager - - - Move &down - - - - - BiblesTab - - - Bible Theme: - - - - - SongsPlugin - - - Export songs in openlp.org 1.0 format - - - - - Ui_MainWindow - - - Theme Manager - - - - - AlertsTab - - - Alerts - - - - - Ui_customEditDialog - - - Move slide down 1 - - - - - Ui_AmendThemeDialog - - - Font: - - - - - ServiceManager - - - Load an existing service - - - - - Ui_MainWindow - - - Toggle the visibility of the Theme Manager - - - - - PresentationTab - - - Presentations - - - - - SplashScreen - - - Starting - - - - - ImageTab - - - Slide Loop Delay: - - - - - SlideController - - - Verse - - - - - AlertsTab - - - Alert timeout: - - - - - Ui_MainWindow - - - &Preview Pane - - - - - MediaManagerItem - - - Add a new - - - - - ThemeManager - - - Select Theme Import File - - - - - New Theme - - - - - MediaMediaItem - - - Media - - - - - Ui_AmendThemeDialog - - - Preview - - - - - Outline Size: - - - - - Ui_OpenSongExportDialog - - - Progress: - - - - - AmendThemeForm - - - Second Color: - - - - - Ui_EditSongDialog - - - Theme, Copyright Info && Comments - - - - - Ui_AboutDialog - - - Credits - - - - - BibleMediaItem - - - To: - - - - - Ui_EditSongDialog - - - Song Book - - - - - Ui_OpenLPExportDialog - - - Author - - - - - Ui_AmendThemeDialog - - - Wrap Indentation - - - - - ThemeManager - - - Import a theme - - - - - ImageMediaItem - - - Image - - - - - BibleMediaItem - - - Clear - - - - - Ui_MainWindow - - - Save Service As - - - - - Ui_AlertDialog - - - Cancel - - - - - Ui_OpenLPImportDialog - - - Import - - - - - Ui_EditVerseDialog - - - Chorus - - - - - Ui_EditSongDialog - - - Edit All - - - - - AuthorsForm - - - You need to type in the last name of the author. - - - - - SongsTab - - - Songs Mode - - - - - Ui_AmendThemeDialog - - - Left - - - - - RemotesPlugin - - - <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche - - - - - ImageTab - - - Images - - - - - BibleMediaItem - - - Verse: - - - - - Ui_OpenLPExportDialog - - - openlp.org Song Exporter - - - - - Song Export List - - - - - ThemeManager - - - Export theme - - - - - Ui_SongMaintenanceDialog - - - Delete - - - - - Ui_AmendThemeDialog - - - Theme Name: - - - - - Ui_AboutDialog - - - About OpenLP - - - - - Ui_MainWindow - - - Toggle the visibility of the Service Manager - - - - - PresentationMediaItem - - - A presentation with that filename already exists. - - - - - ImageMediaItem - - - Allow the background of live slide to be overridden - - - - - SongUsageDeleteForm - - - Are you sure you want to delete selected Song Usage data? - - - - - AlertsTab - - - openlp.org - - - - - ImportWizardForm - - - Invalid Books File - - - - - Ui_OpenLPImportDialog - - - Song Title - - - - - MediaManagerItem - - - &Show Live - - - - - AlertsTab - - - Keep History: - - - - - Ui_AmendThemeDialog - - - Image: - - - - - ImportWizardForm - - - Open Verses CSV file - - - - - Ui_customEditDialog - - - Set Theme for Slides - - - - - Ui_MainWindow - - - More information about OpenLP - - - - - AlertsTab - - - Background Color: - - - - - SongMaintenanceForm - - - No topic selected! - - - - - Ui_MainWindow - - - &Media Manager - - - - - &Tools - - - - - AmendThemeForm - - - Background Color: - - - - - Ui_EditSongDialog - - - A&dd to Song - - - - - Title: - - - - - GeneralTab - - - Screen - - - - - SongMaintenanceForm - - - This topic can't be deleted, it is currently assigned to at least one song. - - - - - AlertsTab - - - s - - - - - Ui_AlertEditDialog - - - Clear - - - - - Ui_BibleImportWizard - - - Please wait while your Bible is imported. - - - - - MediaManagerItem - - - No items selected... - - - - - Ui_OpenLPImportDialog - - - Select All - - - - - Ui_BibleImportWizard - - - Select the import format, and where to import from. - - - - - Ui_OpenLPImportDialog - - - Title - - - - - Ui_OpenSongExportDialog - - - Select OpenSong song folder: - - - - - Ui_MainWindow - - - Toggle Media Manager - - - - - SongUsagePlugin - - - &Song Usage - - - - - GeneralTab - - - Monitors - - - - - EditCustomForm - - - You need to enter a slide - - - - - ThemeManager - - - You have not selected a theme. - - - - - Ui_EditVerseDialog - - - Verse Type - - - - - ImportWizardForm - - - You need to specify a file to import your Bible from. - - - - - Ui_EditSongDialog - - - Comments - - - - - AlertsTab - - - Bottom - - - - - Ui_MainWindow - - - Create a new Service - - - - - AlertsTab - - - Top - - - - - ServiceManager - - - &Preview Verse - - - - - Ui_PluginViewDialog - - - TextLabel - - - - - AlertsTab - - - Font Size: - - - - - Ui_PluginViewDialog - - - About: - - - - - Inactive - - - - - Ui_OpenSongExportDialog - - - Ready to export - - - - - Export - - - - - Ui_PluginViewDialog - - - Plugin List - - - - - Ui_AmendThemeDialog - - - Transition Active: - - - - - Ui_BibleImportWizard - - - Proxy Server (Optional) - - - - - Ui_EditSongDialog - - - &Manage Authors, Topics, Books - - - - - Ui_OpenLPExportDialog - - - Ready to export - - - - - ImageMediaItem - - - Images (*.jpg *.jpeg *.gif *.png *.bmp);; All files (*) - - - - - EditCustomForm - - - Save && Preview - - - - - Ui_OpenLPExportDialog - - - Select All - - - - - Ui_SongUsageDetailDialog - - - to - - - - - Ui_AmendThemeDialog - - - Size: - - - - - MainWindow - - - OpenLP Main Display Blanked - - - - - Ui_OpenLPImportDialog - - - Remove Selected - - - - - ServiceManager - - - Move &up - - - - - ImportWizardForm - - - You need to specify an OpenSong Bible file to import. - - - - - PresentationMediaItem - - - Select Presentation(s) - - - - - File exists - - - - - Ui_OpenSongImportDialog - - - Ready to import - - - - - SlideController - - - Stop continuous loop - - - - - s - - - - - ImagePlugin - - - <b>Image Plugin</b><br>Allows images of all types to be displayed. If a number of images are selected together and presented on the live controller it is possible to turn them into a timed loop.<br<br>From the plugin if the <i>Override background</i> is chosen and an image is selected any songs which are rendered will use the selected image from the background instead of the one provied by the theme.<br> - - - - - SongMediaItem - - - Song Maintenance - - - - - Ui_customEditDialog - - - Edit - - - - - Ui_AmendThemeDialog - - - Gradient : - - - - - ImportWizardForm - - - Invalid Verse File - - - - - EditSongForm - - - Error - - - - - Ui_customEditDialog - - - Add New - - - - + + Ui_AuthorsDialog - - Display name: - + + Last name: + - - - SongMaintenanceForm - - Are you sure you want to delete the selected topic? - + + First name: + - - - Ui_AmendThemeDialog - - Bold/Italics - + + Author Maintenance + - - - Ui_SongMaintenanceDialog - - Song Maintenance - + + Display name: + - - + + Ui_BibleImportWizard - - Welcome to the Bible Import Wizard - - - - - SongsTab - - - Songs - - - - - Ui_BibleImportWizard - - - Password: - - - - - Ui_MainWindow - - - &Theme Manager - - - - - MediaManagerItem - - - Preview the selected item - - - - - Ui_BibleImportWizard - - - Version Name: - - - - - Ui_AboutDialog - - - About - - - - - MediaMediaItem - - - Select Media - - - - - Ui_AmendThemeDialog - - - Horizontal Align: - - - - - ServiceManager - - - &Edit Item - - - - - Ui_AmendThemeDialog - - - Background Type: - - - - - Ui_MainWindow - - - &Save - + + Bible Import Wizard + - - OpenLP 2.0 - - - - - ThemeManager - - - A theme with this name already exists, would you like to overwrite it? - + + Bible: + - - Export a theme - - - - - AmendThemeForm - - - Open file - - - - - Ui_TopicsDialog - - - Topic Maintenance - - - - - Ui_customEditDialog - - - Clear edit area - - - - - Ui_AmendThemeDialog - - - Show Outline: - + + Crosswalk + - - Gradient - + + CSV + - - - SongBookForm - - You need to type in a book name! - + + OpenSong + - - - ImportWizardForm - - Open OpenSong Bible - + + File Location: + - - - Ui_MainWindow - - Look && &Feel - + + 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. + - - - Ui_BibleImportWizard - - Ready. - + + Copyright: + - - - Ui_SongMaintenanceDialog - - Books/Hymnals - + + Verse Location: + - - - Ui_AboutDialog - - Contribute - + + Server: + - - - ServiceManager - - Move to &bottom - + + Permission: + - - - Ui_BibleImportWizard - - Books Location: - + + Select Import Source + - - + + + Set up the Bible's license details. + + + + + BibleGateway + + + + + Username: + + + + + Download Options + + + + + Location: + + + + + Bible Filename: + + + + + Format: + + + + + Importing + + + + + License Details + + + + + OSIS + + + + + Web Download + + + + + Please wait while your Bible is imported. + + + + + Select the import format, and where to import from. + + + + + Proxy Server (Optional) + + + + + Welcome to the Bible Import Wizard + + + + + Password: + + + + + Version Name: + + + + + Ready. + + + + + Books Location: + + + + + Ui_EditSongDialog + + + &Remove + + + + + Alternative Title: + + + + + Add a Theme + + + + + R&emove + + + + + Verse Order: + + + + + Title && Lyrics + + + + + Theme + + + + + Authors, Topics && Book + + + + + Copyright Information + + + + + Topic + + + + + Lyrics: + + + + + Edit + + + + + Authors + + + + + Song Editor + + + + + Delete + + + + + &Add to Song + + + + + CCLI Number: + + + + + Add + + + + + Theme, Copyright Info && Comments + + + + + Song Book + + + + + Edit All + + + + + A&dd to Song + + + + + Title: + + + + + Comments + + + + + &Manage Authors, Topics, Books + + + + + Ui_EditVerseDialog + + + Verse + + + + + Ending + + + + + Number + + + + + Other + + + + + Bridge + + + + + Pre-Chorus + + + + + Edit Verse + + + + + Intro + + + + + Chorus + + + + + Verse Type + + + + + Ui_OpenLPExportDialog + + + Song Title + + + + + Title + + + + + Select openlp.org export filename: + + + + + Close + + + + + Export + + + + + Lyrics + + + + + Full Song List + + + + + Progress: + + + + + Remove Selected + + + + + Author + + + + + openlp.org Song Exporter + + + + + Song Export List + + + + + Ready to export + + + + + Select All + + + + + Ui_OpenLPImportDialog + + + Author + + + + + Ready to import + + + + + Progress: + + + + + openlp.org Song Importer + + + + + Song Import List + + + + + Import File Song List + + + + + Close + + + + + Select openlp.org songfile to import: + + + + + Lyrics + + + + + Import + + + + + Song Title + + + + + Select All + + + + + Title + + + + + Remove Selected + + + + Ui_OpenSongExportDialog - - Full Song List - + + Close + - - - GeneralTab - - SongSelect Password: - + + Lyrics + - - + + + Song Title + + + + + Select All + + + + + Song Export List + + + + + Author + + + + + Title + + + + + OpenSong Song Exporter + + + + + Remove Selected + + + + + Progress: + + + + + Select OpenSong song folder: + + + + + Ready to export + + + + + Export + + + + + Full Song List + + + + + Ui_OpenSongImportDialog + + + OpenSong Folder: + + + + + Import + + + + + Close + + + + + Progress: + + + + + OpenSong Song Importer + + + + + Ready to import + + + + + Ui_PluginViewDialog + + + Plugin Details + + + + + Active + + + + + Status: + + + + + Version: + + + + + TextLabel + + + + + About: + + + + + Inactive + + + + + Plugin List + + + + + Ui_ServiceItemEditDialog + + + Service Item Maintenance + + + + + Up + + + + + Delete + + + + + Down + + + + + Ui_ServiceNoteEdit + + + Service Item Notes + + + + + Ui_SettingsDialog + + + Settings + + + + + Ui_SongBookDialog + + + Name: + + + + + Edit Book + + + + + Publisher: + + + + + Ui_SongMaintenanceDialog + + + Edit + + + + + Topics + + + + + Add + + + + + Authors + + + + + Delete + + + + + Song Maintenance + + + + + Books/Hymnals + + + + + Ui_SongUsageDeleteDialog + + + Song Usage Delete + + + + + Ui_SongUsageDetailDialog + + + Report Location + + + + + Song Usage Extraction + + + + + Select Date Range + + + + + to + + + + + Ui_TopicsDialog + + + Topic name: + + + + + Topic Maintenance + + + + + Ui_customEditDialog + + + Delete selected slide + + + + + Edit selected slide + + + + + Edit All + + + + + Add new slide at bottom + + + + + Clear + + + + + Delete + + + + + Theme: + + + + + Move slide Up 1 + + + + + Title: + + + + + Credits: + + + + + Edit Custom Slides + + + + + Edit all slides + + + + + Save + + + + + Replace edited slide + + + + + Move slide down 1 + + + + + Edit + + + + + Add New + + + + + Clear edit area + + + + + Split Slide + + + + + Add slide split + + + + + alertsPlugin + + + Show an alert message + + + + + <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen + + + + + &Alert + + + + + export_menu + + + &Bible + + + + + &Song + + + + + OpenSong + + + + + openlp.org 1.0 + + + + + OpenLP 2.0 + + + + + import_menu + + + &Bible + + + + + &Song + + + + + OpenSong + + + + + openlp.org 1.0 + + + + + Import songs in openlp.org 1.0 format + + + + + OpenLP 2.0 + + + + + Import songs in OpenLP 2.0 format + + + + + Songs of Fellowship + + + + + Import songs from the VOLS1_2.RTF, sof3words.rtf and sof4words.rtf supplied with the music books + + + + + Generic Document/Presentation Import + + + + + Import songs from Word/Writer/Powerpoint/Impress + + + + + self.ImportSongMenu + + + Import Error + + + + + Error importing Songs of Fellowship file. +OpenOffice.org must be installed and you must be using an unedited copy of the RTF included with the Songs of Fellowship Music Editions + + + + + self.splash_screen + + + Starting + + + + + Splash Screen + + + + + tools_menu + + + &Song Usage + + + + + &Delete recorded data + + + + + Delete song usage to specified date + + + + + &Extract recorded data + + + + + Generate report on Song Usage + + + + + Song Usage Status + + + + + Start/Stop live song usage recording + + + diff --git a/resources/i18n/openlp_en_GB.qm b/resources/i18n/openlp_en_GB.qm index ba67f92d1960c5aacc9ce47122b14b490c06e614..60c04ed9b289e24a8344182665dbb0c7d94e11c9 100644 GIT binary patch delta 4812 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 V{%O6e)0Z>~x|S8R#bkZO{2MjI0vP}R delta 4958 zcmZA5cU%-l8wc=b_jdR0_V(^*3f2IEC?KMAOi<~dpa>{}BB-bsqJl&tsF&Cau^}oJ z3?V26tcQ{pd{F}$>?M{&qrQ>Ydrd6S_qVd|=Y4(ekNeKd&d$y}GqZbp*Pb(X|74cg zF#gM14KVE@iujI*E)qq~gLjFd`oK4^FA<}M!LTDyiYx36(;(`+7wKtc~BW(ZmK5cRqoLO(eeEemIVJH=M}k6YqHtE+Iam8I}^i zM$T6&o+o}&1oF43&BD3x4RyG?h)Cr}E^oYG8oA0BRxKpgQ_ir2T<>{8Gr7s_s+!1c zOg))Mb(!4chE-3U4=D|REdlNb>fOdem&fkPBGkmqSR-$Vf`I>DzDyrzMOx2K5t z=r|vuIA8H7MXYK>`7?^R$`J`#ihPL<2^}dadTr?|zru#w^(I>DP1_h%T9C{ldwW7v%n z+(Kb6C7628MPd{s%*Nb_B{X>3kI+m*EN{UkO40_wyOgwV9g(glCH?&jMo_W^>g$G4 z@@T9LT{b1(^MUgyMTgMp)+ruUd`&51o)SqGG)%yGk~0lEjEG8sWNJx_R0;}c^i}Kt zsg%Z+V&zNqG}AH~UZ%y<5L!J;1v?9&1FiZLbE=P~itcDwZ=%L|xUhZ=of=z0WU!{Q z!IPmcT{e2a6uPqH8k|R0mSTX0O8QsYb$G@^?_!dXc*(FQ(6F&BqndpL4q-IL32+u; zRdo-RGgen{0b?U$oqrr&XKZ6cA`5$_r81vD?Nidgj=z)$}tY#eBqXQPTOsKXD z-e*Q6dJ|dNDGp=O4`b0V{; zu#cR-%B;5xA+qKe^Xs#)6Z2DW8`z&Yd7=;eoH>szOV;a|OY_lD>wSt(nEUttAhK!2 zYFG@&WaG`YZdihXv8;V9Le=U4>)`&JsI@ceWcVD8WSz@-xDn!n)@NA%X9&41&-NKL z5e{Mpr{U&gdyXwCDJQb)%obzKkzEw~osTP=&Tf{spWQ~b!hI#&!&b=K&+hnpO=S0+ zHQydj)J9^fD^I{)?C$XhO`9?7Zn?oWGuT>rakcq|tsCP7YuNfX=vbQ*?Bl|1L~V`i zhJYHW7|h*=M7t z?G~u|g*U@W)u1jz;CWT5+>!P^s>u#3V3KM^-cYzyHM=w#ey`d%=^4DB+Lo}JsDnXO z{{|QC;HNq@s2+|{oo_-1I{d79xI7NNP(7)iOVqIqG|7n}suyyFjXY3qIji)eR?dG%EUVYohid-=ACa3LSME#T6UBg?ZfiWNbUfb=<~GwBxu- z@d{_!BFGh4@u1?X7M;3tRh8(7Q@COdSCeNz zej(Sm1J4wv{oJu|MAYd5cXA3w?)0cdXGatF`@|!*c!b(HS#c5f^we_XE4dd# zlHqSWll>i0XG>l+0}<)$3o(+;F+3+X*m<<#DqeaZAK%LBH(@F|pXKehV$HaycwbL+ z#Ko5nO1}dW`JmajU$~gQ;d@s)BXNN5v$PEU(qb1@(OYp0KfoDt+GPfx_yQy8Qo;`| zoDN^}!~7B2u2%f$>{{5B&&Vr*vHX|?yWyw&*fAU7EXCveIB#^oRl_gN$Ko`(`tU3L zf>6+(U%MCuu0{O11#4iH;st(v;8o-w@Fn?UiQIhsSV+n#!v61`E~IwC$h&_jq{jIWdBzB-H&DSdOBj=00~ZV9Lh(HJ z{9efZ6b*X*Eac1E&GU&cM}v{~&G42lD0Ly~X{i_vO>#kwaMZIE{90&!^atFe=9_VY>3LZ#O-m&564jkFmtYUI$96=@ zYr5Jyt1aB1?zK(MA5ur!7r?vf$kIF_Z%I9#)UdbWMD?Tu+$p^a)Kg!gJ?{hRnO{wS z*VMC2;!`4@o$3XJXwc^`b;0qeM7}ZVf|Ix}_>NOtrdY3D=6@UI7t|}N5K`Yq>W!BW z0l!bwrBRu1o_bTle7IFza~D(NcSwEU0WRqGSl!4M6ZzYy&m=#G0qS3tdcg5&)3wJ3 zk=U$mHgtqn)XmqB574UbR~5lP4QqKFj?i%CLO5N+YrJ8(hPSnVhcvo;3?Sg9#(5RC zQ(zxWH?b3(tLdJEjsIRs zZ<>@Nc%FaEXg>2k2K_aY9d^OhntZB;Cp2?KocQr=P3ijHM4$L;>WoL=7ERp}bnKJH z7J~#$<9Kv9sGH`%<#`dwo>3j_MJ@sOLJBJ?1jnM#ss=qrG(8mi4f|P6(AX zDelyXIfs!yrVBgzIlQhL&?bwhAFGT1Xasc84R=EX`_=0vtawY*pV66`O-RJJ>J|q+ zhxc^_;n#^`C0*Hkgg(|;SN59(V-*)D{-|q;X+-(&x@%h;;2Yfyyx-9PXWgyAh}eK= z-Fj5ARK?}epm90KS4&@9mFwM<3I{|G zC5Y0>-fdxoRQy9294)P7F2Z8T)RJhD*1p+`f@Wz$^IG^;stQ7=5<5xTjkrK!kYcv9 zbLe&CS4y=HF|x#;q&i0S52qVP_c$&v*ikR!#S`9Q^bX;FKwrIg;w(5;-)GQx zctjunE)YI6>BoiRMI$Llak4(s9|w}w>1Tg~jwDsk%2=k*!UP(k0=^fBzM zKk{G;OwynDEEF!+UrLp&*IzD~2A}Hh`=Om=SN(&?b1+{2(77Bg(ZBZJ3~LNMV|>$VfbgEK4oKzF8SLxswypM-ngpKVq)5bY?y*#lISb^;VZ`)OgqU zpgR7gC|qpaV9vE^V8#C)DV$*2+U#X}p`AqtrPBl&MH!UE%fDC6DlaGIgPPv$%`VtS^Fb+514^x# z9Vlm(;3_AC<# zY*=O>u3|4RSTfAWmXb^vJ7$7%YW{yuMV)!5-i2ifTdJ-Db{5R052|cK6(^3VVH#U1 z9Rsb|_XFw3GB@QM$2?^@xmw}=DUC)$V&;hVD(%g%oBL#XrUa`Qwz3c@ut5iN2T}{zJ2q ziaL6=p_fSXqzR%s3})uigsRt3H&w90A!fHtmCPK)%wTSyiTr9J)rT~(LId~Hl;Df- z1oJ*kNh=|e1WGDg4xK6K-VpdICH)lx-=t}Im|JDxDzJQztg*6EB6}e*0jU9 zoTtk&6AIN_w7Leib8}My;Uk;+v0TO}B#So;(VeK6Jf!`!>as^LR!tNklP z1|QDy1j%HG_QZh!h{~#%~14f zDTW0K_ePA&!Cv9v_a}^3cz=xlJLD@O=jFmi#q{*SL@$g}Y})oQELPM84TWDQjy!z} zUQqmD-b3WrU-7uD4Mr;E&6oklnMy-b9$ck#os^gmYA(V>yl2!@c!(e3Wr2V3>0#*T0Ds<;xgryV2mI=N=`KwRcAH}ThV|ATrx|9diK$fccWdd@#MyOGG%lkb^<>~&2R zc8<>rPd>12iJtydPVWwOk3E>$xi3a-!;dzVUQX!(w8=8g4k{b9q^MXw`kr^UP z_FhfoHd#pN!BV*`7N(omV*k5!2(v>lC2qe8^EVuX&x8f@w-dQLGUp2A!8jM(tA#Ba zDq)vR552H8>>81Wx3F!^0$48WX+cLl>X?@xmd4|bux~%&o;))EBJP;f3D%0KOEK~xE#jP{AlNC+&uGB@_vXZf(KwsE-Nhw~aD#V(xJK%N z3&qd3HNiZwWv36^!MtemMNa(2--+l&7qRO;_VbHDDxqs8%vO0xmtmDEFxwgaq8hUY z1M<(aX-N zq7LkemxGwEF$-0tA-^MDt17F10UlOuzlT2 zwyJ(Gl?+GWPgUn1ZA88Ss;*9}S(3uO8&*ra1xKlGgCt0Suu~HH+Y$L`rC}N`=qHUx z#e@7NN~7He!S|%#;6&IY#S|@vzeqWO-x3WAm6mzzhm}&3;WX@!nu^ihu$z*puQ1$C zYBl0P!;_`cJ>S7>W+n5aT9}KYb@+94`tD4k5j-=Txk{b&0hVsWX7%zlO4z7gX?zN= zs|y;?A%9}}sXr7kK>q~hYLj|*X&3@q)VnR!@R<6m4{pNW)Th4H5RD{t*P)N$K+Pzg zhel0!>K0h2nPOQD>oxN-khCM);T(8FvoKao6rj{Bal|_yz(up>Anp&Cs42~Q7p~Q8 zEXRzDI;yEU5Cct}nq3FMy(iawUybUeX|S)-DrEQsS5^&X^UdJ zvHydgX>0N^@{oSonkzU$Ln4@OGcDSKT^)#@*Z#`25rxKRZ%oICLXFxxx*E7w`ygQ% zQP==&&m^3nVR72O2lpo$x|X z#$J+>Bs^g3J)7e^<*5so5{-+I&6DHcD!Dwu86K3YzKVh8G#rtm^N7WM zj-0JaevT!H{HJbVtPWnWIo@8E6@vKqP+i`RYB*K5`#!eQ_?5b&qjF%a?o3WJyr#Q6 z2S&-dJHfaFZt9a#F?Fvb>GMB5O%yHa3o7qI5B;8} zNUrE9`u%UA$1zLvP0F>fTz~W$8jSf`e{#-9cwYbGpe~|VrT(W=NUqp;{ne{Rm}{Wu zMp$Z?(18168w}GE(9zgV!+}yHbDY}HJgV3kg|UVc<+vbjuAzJRa=6}bLxBg!)fnzi zL=wiGG~EC4419*uB>p9{QO-0s`wXx)QEP6Izcz2veQ8;tHz-9zRMzX+ndSm}H_JNv z!Tl_4K2Ideb$=h({4CL)w{AMi?Xg<~%Z{i=B0>&IEV*TMf>z57Hm{#{WFdZLu@4vZ zzY=<4{ctHigpIZDp>U!|Qv%vrC7l^ knUC7_8%Wym*_lh1M`vYZ=Ptkx*uGk9?$R7fdTJQ=UpJO~zW@LL delta 3470 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 diff --git a/resources/i18n/openlp_hu.qm b/resources/i18n/openlp_hu.qm index c6632c745835ec60cfe298ae528ff8d11cc9f320..1efe9be1bcd2a63733fa3119955e2a4a6f9119d5 100644 GIT binary patch delta 4863 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 delta 5008 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 XdHVm&o8gz0kL1dZnXIW_wT1aV47w&- delta 5032 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 Hs+fNRE^JUt diff --git a/resources/i18n/openlp_sv.qm b/resources/i18n/openlp_sv.qm index cd3485ece4368db4359f7bbd5bd3df2cf0ccf488..43f9f9c758707b497053ca05c30ae8ec8119bbf6 100644 GIT binary patch delta 5243 zcmZwL2UrwWy9e-hW@l!1XJ&U%QB+ilq5>8a6%d1n6h#4Pf~Z)jqJW}CjBXSw@PWGa zf^v-pqheXm2!7aWtg*xvjS>?Zme`Hu{@0y+_xjws&%^%CIdkTe_nb4k%brqpTPeH1 zmg%#wVTAD{QJ*;~Q8aELme9Z59BjQm7mD~`cA#4T+F zml5~)?Tq|-%yGG)CKPQMALGEWU6K)c9m@x|$D4r*e^T_i8`7CM)eJNo1A(%xWb1`s! zh2mAKLK6yEdYDM?qmWw|m=H#N-eN#PD)miz0H;x?`%JjNq7jKorQj-sc3Xn{W2_@c#8%a%MT*)g5v7kBa$SF*ZRTM6u)m3%%=DcFW?+Xu)z(| zDoPlQy&>(QghyTBX&Njcw9;=@WgA6*8l3!`NRFi;0`8MjX~+pgR-UR@s(6Boqi;RL zg&UMos)L_sdc9C0og3vJb%qgCFa@F3rBmS!6P!;=$6#%BC#huCZ6bX=D(i@j^vQI1 z4hEv1M(0vWhz!njF<=4=qF)UiU>4mhx&uq;W-%sgI8MI}zYCuk=~Gw&k&P|Go>&3O=H=zc8gJv%$8ZsY13(n8(8!GbmaH46`Rk%yKH4TB4p38m6itW zUD+zjCbS>GRwsMHB(~-~24?>)`^;1h&$G|!rV};e*tbWHKv$K#>?HJ88LIQ(P?hbe zB{=`hW~uC=&%v#VH>@_7Rn5a=iJH5s9J8_MnkT6G1=qqnRaDzJcu{}RnGL-ZGgYsSN!fhjAjN$^tlU(tle3ajZhlpH=TXa>1cHH8pzOWm&w0bCv zP@Kpue}@6PEar?W4F841W^Q!?&ZWyKZf%;Sfj_ObZpdvCaJ_X0ZgbH`I1zq=h1}+1 z6+j!(C?dhS#(Lfh7b zJ39$8ZtJi3HFrDnFXWeSwcAVJUhaN0Lf`g-RaaN;`MHHeuEE@^xCA(XXR^P8Kk%w) zh=}V|hzYqq<~d8dZoJ}Gy!;r~-HZvmZX?#hZ7%P)6`RPdg74;m0lEFj`;B-&$MQWlyTGq`|KjzqSn+`3-&Wgo<-^j#iQ2{R5iVHTcB}Z05E z{19(My1hR?I=c$zzkM8^l#7|Q&*hWnRl;R_O7dE`*J=j`KD7%5(jk>Em|6qZ@{7Iv zU2Ny#?^)B~X8u43z8!fy;7_eUgPkP)bYsl4lOunt3Nz`{ zo4>c_9ZXPMq+V@1tItQMZNYqBGa>-y0mW^ zoT1(rGZ$`A?|z7->v>jv;4wPv`9ggd-v`OxN&Ry?X6_%L{yE_#oUOi6+yNd{-+6X~ zsF$R!)nlT)0*va~JC=e$>bfmU;5-dm?=IY<;mjs@O~Y%t5C!Noyqyi~p^>IyCIM+0 zm!&wC0Y^3M#g;_9Rho|R7+~*Kny!mBz-&!7M|-$jF_CwRZT{B>V`m zRqU@gOPk_z3FW2QwE5Vip?YmrA#Mou(&kK6!2#OIotD7K+R5qf;W};pZp<{aTJg4a zjeyAZBgL<@-zUT(pRO$ny#v>1%laL}`R{j7yLCZ#6x`QtHLoP&XkMkeE zckKer;B#cW%AMT+nhr&gk)h(vMz=0D*=v0yvaJmLp& zK^mS15r@Qui?LLZZN(K8L9nm5u>u`OW{72bF_Fl9V!7WtctzZy!Hgqcia$O%PZZT! ztRmbW)l=MC7z1yJC!&pb&_ul!e=@`9F5=lqSo7#i@xnVa7+oa(LHICcw`KxJ|3!AV~RN6zwpK zD6Y9Q)aZ^7$E}k_9rT3frE!Zs!l#n477l766?A_IuSkW#cVV5helC_MK_jidA;XS} zDT-^Q%G$Fi-z!zKPw+$4SE^Zob_Q>e4zAiqG{jvx9(EY!N_RFn!DW*159SCGr=)uW z5%M9=r8?buqM-rO^S%?{4(Y`~A9zoC75<4Rag_A2g&onbWW`EZTk!($SZyff-~fm%r#i9_^Z6~{a)nX$ZKj> z5{+&kZ}CHfM|;cL4CrTctm1Nc$Dq5&8-J3ko?xa)Bv&&Q+sH@ru=Yv8^6>)Pn6yTI zcp4og9n=ZA(L~96bWXv)!{2mWVrLSi=yd*3=`ceV-VAG=QlN|e)SW2RMwiq99j3ymc6$G4+*h>rpc_8Qn-x6gAd+^Rc#ya#-wJNbAM zQ97?XGd2+V>#iqSOws*XG6jC8tMfvG=~s1+`&=R#BkG>GY=FMHzrDYQ!}Xmk->k;$ z)At#Ly)fpZK0FDVJ!7msGX4|Je@2NuYCS?R)=NLP>?DlR=P!Q@$Ld!XmBZEg^7r9H z|{Z;!~ zn4-US0>?J1On>txB9?Vk|J;y(^Ply~K!H_6+06~k0a*L&P=l-G0hFC*@VSVO;p}pQ z|A!9nwW0rR3}E~a!@$0X*m#p+kuwG`zQ(Z3tp&Vp*fPB<(S){!ZSUM*grQ;q2XhPu zikiYo!?DGHh6hBBm*MHIGjN>YwPofx3-M7m@uDfW z{tk0ogRYEem+f8CzJ_NTsqs5X?v;@=J|{43L`G%`@s|I+m?t%Q;AEcc?Zucc`{c^z z%-|b#4wkA?*od@oacSd5XHF*G@-$}f{3d4#rzs|;k%PH^;yTg%DYb{(@c-1doC>pU zVmtQ#xr7aEmL~VA$K;s8=9x|Md`FYbeAy10@;|S6pHoG6Ut(hByQAAxu%XMw|J3*= zvHhQfVig@iO*4zND$mAW;r~=rZe41r*Or>Y+kS-CiEHHGYm=;lXo5){TS45F(M0SH;;j$ECgNRjB72E=&l9kX`0!Tv zp7?dBOUy+F5MLXPdK7hEx(H4rn}^HbPU`c<8=fN<pLG5obj%ZJyAbT#fy5 zq2xNHnRLXBC0Ap|Tt2xPJLDFN?k3j@7!h}rJmxQiKbhoh$n$&D`8Wz#aQYX<23SV=aNV<%|Zy_LQ6%BulfTVR4k?}x>LJLK@E`Zlf${0~6iX2c$ zBnuRsEUFhhCi;S+4t5a91&Ws1K?l)s6kU~u`U24{qAj9rP=^Kzt?7UwKy*Bf;7V|O z8jZ*>x{yY!5nvUKyu20ep;3O9;W5z%G-}*()ZbEUSuv4dPO(oMVKBwM3WGTm-|!4p z(rDY;@Jkx)8Vaw`XkG9k6yDJ2Qp}ywl@j+Hg&{Pi(|tIGk`zI(kdnUL0KcK6x9#u; zN;WgL|DBT4u{KmJCAVRrs=CuSB~q($6CE#FPUEIL$MG5(k7*!P9gS~6W>u$1XDU20 z9Z+|n^ji;!)XtPyqlQs5uTvzPNy|?5f*Yu8Hd3wripuxv;bmGg6?3cUO4SR0g%fCd zKU_$2fR2BLKr}6MF|(RTJDq+UQUq7h4Xp=kqMH?W;3FN~T#gZ&S+;4Gvskt}RC7U0#{&>cTvF^czvv5v-iW2)kynU5{b2 z>8fY#8j!+n#M-;PfB~$dW(Le>owo9DD@6Nlzp?)9n2PQWY{=w1Sj;A-*ur1f%Id8| zR*q~H)~JrGqS!6IE;ulc-DbQ`t!miqZmZz|cDwODwQ3Q4#v1;}A+naUbvw^PFSb4h z8L}S5)*Cytp20R47oqh=wsDF#+|M?@L15PB*k}4ZL_KWSXOHH=QS9pzC*TZ;YV8@^ z|2@hj+Qw42Lt=5R5?+*8#$SZ5P1-n%CP{2!5{PVON$d&`s7{zY1=b%qk|!%;VY=i$&5K~EXrtuihtF?IUPZn}&(4z65^E)c14h~qM5X24h6?A#I}M_aCBA5!Gl zk1MG+8p)_?T1MpL3y;BQZq+X;IGJ1h zbRb;7t!bP9H*h*r;Rv@bq6r6XbL%<~xzj7IO8al3-WqOWGH%b_{kYGw(NXV6(T}+u zQsd_|I+?YP!`)i9jK}gFjb=^SsvZ z-*v-Cy>{}q8ZZ#A^Zfly9q_Kn{x(K&|M#CP9@xaU^~DMO8~B&Cn0s%nl(oRl=$$Mz z&&7qjE2ZYG58y?q#b8W@_YZUXq60GHCzDQ$)%l`uPCD@(8u&evPWH|u^0$yqNj(TZl4gbCfxI{7$b|nl(xqmYD*vm}wL8#HfRnT~Z72+tep%fJi=;=t#v@n2 z3hA+$KCoW&fyuzG(o;I;Pl*D(q-Q<5z&L5^)8AmWjBmxx6<8}%%}#)qWZkRx5DjEy z4)SX-O4j$OEv%J!>_ut^o|5_GTERBiz&)rB(#nS0l|xV2@R|}BCCechoF}?ZmOmQ( z4Z0xH&3cUse8kD-&7Te(WDA7nutT;)j}C((WaZz@f?vqWFJQw7I%_gmB05;M!v7DV z;2hbiT}XNGeA(yMkeT2svYLo&q7YYE?dZiYQFiblrZ8l-?8swWFQi&_oUejsb+R9l zF!GQ#*$>Gthz9qQ{k+@*=F9FpI|1uuts0DUaGR|44(dZBvPZirVShQ>=`Nfs=L~wd zP|nMJ;6XWWX$J4fm2)tVp`GPUYjArG&6m3i4sf@;UlIZwdS33kYAaEw&RRae&KiXw zazDRFI9DE4UJR?{F&hz3=neVUccHLdKJE-2D8d}%(|pds6nT;T0a!1eLv`?he35|j zhDqc#8-rnzyit1wej{(JKw!gen+)$IKc0ht!^go0|h?`4+z5* z3SoQ&bWaBqzg;549%9v&$)=+}`KjxM&L5|2rlIQ?oa%v3f6W~NRQ^*>ofXjsf3p_H7+%C+i z$Aw0o6_)P&9ljIF_F=9^Sqdw%=Rr?lGM-#-g)!r4Do$ z|EF+|@MV%PKuOI=X+nWgVu!g+s8Djob_v^*+>VX#q*59R6V;*-N};d?_36qmoof&Z z^Oa#|XAq4sQ%0Tgg6_(Z-E(2CGQQ^|xJfy|6{$|LQ%*kW4P%wlSG|MzN?j`)Tcs=u zd_k0)q%0qH7fw@dUW}=q|`OCPf%!7Hdmpe@ovha z8@`1*m8VA>haJj0JM4)jSSs%^Ct$Slej-vop-A~iy%`==K949On&_o$KNB_!int_EYIchQnml>R>BarK&m< z2AfsunXB-j$#g5#`ZrBP>AtE>t?Qv~lxkNHQkys=bkB46- zn#!r4IBkW#>OcLr!DNjWo~U#*^=r-W$(Z}8|JB4~V3p@)YGRWxhq>!Cahs8eXk9o?KJsS`6Jajgn8`D9yLG5J291&5_d> zK;9b7>4{j}c`q~*ZhBLZr()7@-JzgYm?zqErm7^6Zc$2EEl%m447tJIiGV?XTC04}~>&-=z0i>dtJ|KU>np34{Kh*P;KZAEmQs zY1s)Y?H{i@INF(M!@D)}9PbXP9sl_JLxoWqG5+<&bTfU**coM zWqp|@Q&-3J`OKB-QqNZ0H?&tYGXDoc)sxQv diff --git a/scripts/translation_utils.py b/scripts/translation_utils.py index edc61f5d6..bfb443d1b 100755 --- a/scripts/translation_utils.py +++ b/scripts/translation_utils.py @@ -25,14 +25,9 @@ ############################################################################### # Short description # Steps for creating languages: -# 1. create an empty ts file for the wished translation in ./resources/i18n folder +# 1. make shure that the openlp_en.ts file exist # 2. go to scripts folder and start: -# python generate_pro.py -# 3. go to main folder and start: -# pylupdate4 openlp.pro -# 4. do all the translation stuff at the related *.ts files (install first qt3-dev-tools) -# 5. at main folder start: -# lrelease -verbose openlp.pro +# python translation_utils.py -a ############################################################################### import os From b83d1157389aaf3120b6046d8f83f97deb86fcc5 Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 22 Apr 2010 19:27:26 +0200 Subject: [PATCH 06/22] Copyright character solution --- openlp/core/ui/aboutdialog.py | 59 ++-- openlp/plugins/songs/forms/editsongdialog.py | 2 +- resources/i18n/openlp_af.qm | Bin 34058 -> 33942 bytes resources/i18n/openlp_de.qm | Bin 36123 -> 36466 bytes resources/i18n/openlp_en.ts | 343 +++++++++++++------ resources/i18n/openlp_en_GB.qm | Bin 31458 -> 31360 bytes resources/i18n/openlp_en_ZA.qm | Bin 22957 -> 22950 bytes resources/i18n/openlp_es.qm | Bin 14874 -> 14867 bytes resources/i18n/openlp_hu.qm | Bin 35007 -> 34879 bytes resources/i18n/openlp_nb.qm | Bin 21181 -> 21120 bytes resources/i18n/openlp_pt_BR.qm | Bin 35695 -> 35585 bytes resources/i18n/openlp_sv.qm | Bin 37039 -> 36927 bytes 12 files changed, 261 insertions(+), 143 deletions(-) diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index 7d8d27103..b3a7ffcbe 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -24,27 +24,28 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_AboutDialog(object): - def setupUi(self, AboutDialog): - AboutDialog.setObjectName(u'AboutDialog') - AboutDialog.resize(516, 481) + def setupUi(self, AboutForm): + AboutForm.setObjectName(u'AboutDialog') + AboutForm.resize(516, 481) LogoIcon = QtGui.QIcon() LogoIcon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - AboutDialog.setWindowIcon(LogoIcon) - self.AboutDialogLayout = QtGui.QVBoxLayout(AboutDialog) - self.AboutDialogLayout.setSpacing(8) - self.AboutDialogLayout.setMargin(8) - self.AboutDialogLayout.setObjectName(u'AboutDialogLayout') - self.LogoLabel = QtGui.QLabel(AboutDialog) + AboutForm.setWindowIcon(LogoIcon) + self.AboutFormLayout = QtGui.QVBoxLayout(AboutForm) + self.AboutFormLayout.setSpacing(8) + self.AboutFormLayout.setMargin(8) + self.AboutFormLayout.setObjectName(u'AboutFormLayout') + self.LogoLabel = QtGui.QLabel(AboutForm) self.LogoLabel.setPixmap( QtGui.QPixmap(u':/graphics/openlp-about-logo.png')) self.LogoLabel.setScaledContents(False) self.LogoLabel.setIndent(0) self.LogoLabel.setObjectName(u'LogoLabel') - self.AboutDialogLayout.addWidget(self.LogoLabel) - self.AboutNotebook = QtGui.QTabWidget(AboutDialog) + self.AboutFormLayout.addWidget(self.LogoLabel) + self.AboutNotebook = QtGui.QTabWidget(AboutForm) self.AboutNotebook.setObjectName(u'AboutNotebook') self.AboutTab = QtGui.QWidget() self.AboutTab.setObjectName(u'AboutTab') @@ -79,8 +80,8 @@ class Ui_AboutDialog(object): self.LicenseTextEdit.setObjectName(u'LicenseTextEdit') self.LicenseTabLayout.addWidget(self.LicenseTextEdit) self.AboutNotebook.addTab(self.LicenseTab, '') - self.AboutDialogLayout.addWidget(self.AboutNotebook) - self.ButtonWidget = QtGui.QWidget(AboutDialog) + self.AboutFormLayout.addWidget(self.AboutNotebook) + self.ButtonWidget = QtGui.QWidget(AboutForm) self.ButtonWidget.setObjectName(u'ButtonWidget') self.ButtonWidgetLayout = QtGui.QHBoxLayout(self.ButtonWidget) self.ButtonWidgetLayout.setSpacing(8) @@ -104,17 +105,17 @@ class Ui_AboutDialog(object): self.CloseButton.setIcon(CloseIcon) self.CloseButton.setObjectName(u'CloseButton') self.ButtonWidgetLayout.addWidget(self.CloseButton) - self.AboutDialogLayout.addWidget(self.ButtonWidget) + self.AboutFormLayout.addWidget(self.ButtonWidget) - self.retranslateUi(AboutDialog) + self.retranslateUi(AboutForm) self.AboutNotebook.setCurrentIndex(0) QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), - AboutDialog.close) - QtCore.QMetaObject.connectSlotsByName(AboutDialog) + AboutForm.close) + QtCore.QMetaObject.connectSlotsByName(AboutForm) - def retranslateUi(self, AboutDialog): - AboutDialog.setWindowTitle(self.trUtf8('About OpenLP')) - self.AboutTextEdit.setPlainText(self.trUtf8( + def retranslateUi(self, AboutForm): + AboutForm.setWindowTitle(translate('AboutForm', 'About OpenLP')) + self.AboutTextEdit.setPlainText(translate('AboutForm', 'OpenLP - Open Source Lyrics ' 'Projection\n' '\n' @@ -131,8 +132,8 @@ class Ui_AboutDialog(object): 'consider contributing by using the button below.' )) self.AboutNotebook.setTabText( - self.AboutNotebook.indexOf(self.AboutTab), self.trUtf8('About')) - self.CreditsTextEdit.setPlainText(self.trUtf8( + self.AboutNotebook.indexOf(self.AboutTab), translate('AboutForm', 'About')) + self.CreditsTextEdit.setPlainText(translate('AboutForm', 'Project Lead\n' ' Raoul "superfly" Snyman\n' '\n' @@ -164,11 +165,11 @@ class Ui_AboutDialog(object): )) self.AboutNotebook.setTabText( self.AboutNotebook.indexOf(self.CreditsTab), - self.trUtf8('Credits')) - self.LicenseTextEdit.setPlainText(self.trUtf8( - 'Copyright ' + u'\u00a9'.encode('utf8') + ' 2004-2010 Raoul ' + translate('AboutForm', 'Credits')) + self.LicenseTextEdit.setPlainText(translate('AboutForm', + 'Copyright \xa9 2004-2010 Raoul ' 'Snyman\n' - 'Portions copyright ' + u'\u00a9'.encode('utf8') + ' 2004-2010 ' + 'Portions copyright \xa9 2004-2010 ' 'Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, ' 'Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon ' 'Tibble, Carsten Tinggaard\n' @@ -557,6 +558,6 @@ class Ui_AboutDialog(object): 'instead of this License.')) self.AboutNotebook.setTabText( self.AboutNotebook.indexOf(self.LicenseTab), - self.trUtf8('License')) - self.ContributeButton.setText(self.trUtf8('Contribute')) - self.CloseButton.setText(self.trUtf8('Close')) + translate('AboutForm', 'License')) + self.ContributeButton.setText(translate('AboutForm', 'Contribute')) + self.CloseButton.setText(translate('AboutForm', 'Close')) diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index b992aeea4..ae0308c80 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -445,7 +445,7 @@ class Ui_EditSongDialog(object): self.ThemeGroupBox.setTitle(self.trUtf8('Theme')) self.ThemeAddButton.setText(self.trUtf8('Add a Theme')) self.CopyrightGroupBox.setTitle(self.trUtf8('Copyright Information')) - self.CopyrightInsertButton.setText(self.trUtf8(u'\u00a9'.encode('utf8'))) + self.CopyrightInsertButton.setText(self.trUtf8(u'\xa9')) self.CCLILabel.setText(self.trUtf8('CCLI Number:')) self.CommentsGroupBox.setTitle(self.trUtf8('Comments')) self.SongTabWidget.setTabText( diff --git a/resources/i18n/openlp_af.qm b/resources/i18n/openlp_af.qm index f7f13cbfafcdec3d5090914de27ca07c13cab55e..48b4c532238f23dbe9550e82b65475a00d5fd039 100644 GIT binary patch delta 4631 zcmZA4cR&r6_jdR8_V(@o3kVhv2oWqGpooeH2nYfqpoj&Y#n9$qK6)#myua@!O_#I;fEM{Z|NpdLv* z3+Kah#Ts(|-dw*#{Yo9-TMAfxl!$kykcAguoZ@E1mt+iC)j%Ym!*vcuQ0PlcNXVk0 z>33lPg}KdxrHaQCUr<<|l|*V;v5(?J#r29!6uz$o{hrY zia+!@Y^3xcP=wK$zwG4wxsQ7qSSWAoNAjP^%RI+$ zt)2f1Os1+{c#wVzH7vkH^hfDj=2{{{0$m80PDV1!p{s_TXeg&^OK!kpbZsdjHaw=E zQ*IGibfUKr3DBQm&)@+TX^g7q6kN}UhRLvzvD$hc-e;_?;Q^L9rcM5L(4FaAT?liT zE{~?b{fvVLCTiKtbnQ5u$ckfvG?hja`ZCFJUNBX03p1_}yVmMQX3`jfEzA@btZ5rh zW`?<6n-3L_Gjk8GLH#f0qmdp&Z3i$Wf7ILNGUb+mu$-y=>jFH)oCxRuZ!l-i_!G6W zWG=B4(1-bHp;1C%3<_qKFb^Kwgu7UgMI`OcvF(p8A!^UF_I1dRbqVXx{TV#QI_YP^ zSFH0!p2#K;qQA{F*5?nT+NOf_Ps@cZ?8ubPL>;EHE7xv>SJ*P_J+fuk4c@NMi`{HA zA3xg|wyOIIIE}3`A3xibieIy}cXCj_!0xFzLuALZdvlN(yPoV`^MH0k*gEqjv&&)+ zWO%{?w*D0+X1A7oV%kpBu?_p=!CV-?zC3mermN)7PQi~6Iw_pt6oR zN7PBB*jq7G)hRL#?S(4)shDV|EvoR~X4t42@%||IP?cn!Nau9bbca&7Kvj@88Xi#< zRfNGSs&!NTAnMXawLNw(j91ma!h^dQRp&<3!!1VDrIVO|y`AdO@@VL%`n~>Rn5kHy zdj9VEN!5$67_{G0y) z*^vsTDsEJ~%q=Y~M*HvZD3P;gN$^9Mmaon94 zr1sh1p2(9ChVN~H9fkO5NTugMA;}Sud!`CW(cVN}gN3AD zaosCLNb^L*UJHecar@v-Au9;q>t5%DsS_};*PlYZ`M7y&h4~^P^>z{#Szsx=Lxj(& zF^+eYuqibVUKX~jJwVilH45MS3%`8&bP|qMxIll!nTi#{x9;uGeo$zBd=vht=9}?? z>1(5w=fuGwYDe)WI9c6u2Qt-npW17pExe@eza4cSl{(bE1iq&Zt;mCc>KszTS&GIl z)l*{eV({6gp8XO7`rKB}Eu2i$&r&^4dJ3D=pO`S9uZOziyVcx^yd2+uvKg?k8lR|2%cY&}{gldQ12m-d90)i<6TBN}L_jO>g zMoL@)w`md%V!6cX|Wd&>CJZWlM{DKKDlk)fC0pZ7` zMK!;{r_$n`SnFY;v@Clrbd;8_z!F6)kjnN9fz{HcJ$iUrsyc`OA|0jeel2i-WZWep z(#X-${zu=#1=7KiSh!AVjKK>da=-L#t=U`B*;!cQC=2OV!aG08O-uF2T-0Q(${uSO z^{JM7cYUXpt1d^qQ7Z(&;rJc>PCxCCZ)c*Ot_?ro0T*baI!uHojM|tk$tbjF$GRbf z(S_Q{rElPIt+5%7c&%OR`-~{&xV9wt7QCvhT!_@iv}h}@$V9P@ikXTv+P%$Z(SAXD zGNOSfE>L@;+5x6$e`SurO6~2D$Xwhd?E_sU(MY4C_UX{+D3ofSN4|yUwQo9G6OCG- zcv05u`GY8)mF2vZ&_lNH!TFC*lpP9iOyiHr4xg|@qswK_)vw_R+5a3;n_wYFy8j!F zlA}dDIAOBlI(bCaG}I5vA6!R2W5NsB6cs`=#z|f=$QEYHW&4M~Qh5#21h2N5sF&Bg zI!Ki0CV$bq28PO8{gAQ5TzLn6vQy$R#S`+b(YH{4DAzqgU}Jm92N<)l^2x>MKX$f! z?>me?_Dh|R7lZSkv_t0*e3K~YoX#t59(=9yACW_poS}<(>kAj_vV!rCNAk^9Q>=B_ zK4?!Fs4Mys6G@5JZF`I*N-5MG@|*;#bPXp5z}LD{537mB+33zp3WDjnpOVaO&|O_S z2VT}a=K-|7gdgbs^4Sb4^&a?zLTRi%G!1(p%~Kzlj?I|1MIRlH zrAj-mA5n=&$FJ5etU3k1))%jS2%GfVU*YtmtMt2PBJzv?{T{a&Fk62>^&u?QAG(eJ zGOG1QP8#b`_(p#+3A-}WQGbrZfSFnP%XZE1Q+-n-j!|Zl{@OKUB#YNS#lKCI^`3!( z>fjhd*8r?#)<=eJ=J!C>Aw$0lcu!>AGz{B^2WN*HMh-=0vS%4eyW+vw>kM1xdc%6d zjuuz=$grpXGL9&xz2V3bTbOJ(u>v>d%r)Gaff?s)Gu&noNzO^b;|LtjoCk)-U!5VE zV2^K<2~o8PmP=H%?c05(lBB_@xie=3=T4hsO6kzir0<|NEH*l>AS9 z6|F;0YfCKle|^3}Ya8Y;{@O7oFrp)K#@rHd{ar7-x9I+V^~W(&J}s>>#E5@45iy;V zR;Pco^~Q)DS;hynWf^~9FEC-~Ji^>!T5q)eJ49x}e{RF|S-5Uv#T5Os5zUKQ2U>2v zYQdEM^D46eF*tF|Hm0t%(>I_!%X|+yv&>a;eXf^-8WMpbH|Hc0S6vpW| delta 4730 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 diff --git a/resources/i18n/openlp_de.qm b/resources/i18n/openlp_de.qm index b0493348fdd4f19f45a05f0ec5dbad9c92551101..ac8b76ce8b2ba92daf90ee56cad39664f0ab65c7 100644 GIT binary patch delta 5088 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 TH7hIZ8I9_ndyUKkD}VV1ju1hE delta 4718 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 - - - AlertDialog - - Alert Message + + About OpenLP - - Alert &text: + + OpenLP <version><revision> - Open Source Lyrics Projection + +OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. + +Find out more about OpenLP: http://openlp.org/ + +OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. - - &Parameter(s): + + About - - &New + + Project Lead + Raoul "superfly" Snyman + +Developers + Tim "TRB143" Bentley + Jonathan "gushie" Corwin + Michael "cocooncrash" Gorven + Scott "sguerrieri" Guerrieri + Raoul "superfly" Snyman + Martin "mijiti" Thompson + Jon "Meths" Tibble + +Contributors + Meinert "m2j" Jordan + Christian "crichter" Richter + Maikel Stuivenberg + Carsten "catini" Tingaard + +Testers + Philip "Phill" Ridout + Wesley "wrst" Stout (lead) + +Packagers + Thomas "tabthorpe" Abthorpe (FreeBSD) + Tim "TRB143" Bentley (Fedora) + Michael "cocooncrash" Gorven (Ubuntu) + Matthias "matthub" Hub (Mac OS X) + Raoul "superfly" Snyman (Windows) + - - &Save + + Credits - - &Edit + + 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 + +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. + +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 below for more details. + + +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. - - &Delete + + License - - Displ&ay + + Contribute - - Display && Cl&ose - - - - - &Close + + Close AlertForm - + Item selected to Add - + Missing data @@ -77,77 +233,72 @@ AlertsTab - + pt - + Location: - + Font Color: - + Font - + Font Name: - + Preview - + Alerts - + Alert timeout: - + openlp.org - - Keep History: - - - - + Background Color: - + s - + Bottom - + Top - + Font Size: @@ -612,7 +763,7 @@ Changes don't affect verses already in the service - + Image(s) @@ -632,12 +783,12 @@ Changes don't affect verses already in the service - + No item selected - + You must select one item @@ -1182,7 +1333,7 @@ You can download the latest version from http://openlp.org - + You must select one or more items @@ -1252,32 +1403,32 @@ You can download the latest version from http://openlp.org - + No Items Selected - + You must select one or more items. - + No items selected - + No Service Item Selected - + You must select a existing service item to add to. - + Invalid Service Item @@ -1334,7 +1485,7 @@ You can download the latest version from http://openlp.org - + A presentation with that filename already exists. @@ -1344,7 +1495,7 @@ You can download the latest version from http://openlp.org - + File exists @@ -1357,7 +1508,7 @@ You can download the latest version from http://openlp.org PresentationPlugin - + <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. @@ -2066,84 +2217,50 @@ You can download the latest version from http://openlp.org - Ui_AboutDialog + Ui_AlertDialog - - Close + + Alert Message - - License + + Alert &text: - - Credits + + &Parameter(s): - - About OpenLP + + &New - - About + + &Save - - Contribute + + &Delete - - OpenLP <version><revision> - Open Source Lyrics Projection - -OpenLP is free church presentation software, or lyrics projection software, used to display slides of songs, Bible verses, videos, images, and even presentations (if OpenOffice.org, PowerPoint or PowerPoint Viewer is installed) for church worship using a computer and a data projector. - -Find out more about OpenLP: http://openlp.org/ - -OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below. + + Displ&ay - - Project Lead - Raoul "superfly" Snyman - -Developers - Tim "TRB143" Bentley - Jonathan "gushie" Corwin - Michael "cocooncrash" Gorven - Scott "sguerrieri" Guerrieri - Raoul "superfly" Snyman - Martin "mijiti" Thompson - Jon "Meths" Tibble - -Contributors - Meinert "m2j" Jordan - Christian "crichter" Richter - Maikel Stuivenberg - Carsten "catini" Tingaard - -Testers - Philip "Phill" Ridout - Wesley "wrst" Stout (lead) - -Packagers - Thomas "tabthorpe" Abthorpe (FreeBSD) - Tim "TRB143" Bentley (Fedora) - Michael "cocooncrash" Gorven (Ubuntu) - Matthias "matthub" Hub (Mac OS X) - Raoul "superfly" Snyman (Windows) - + + Display && Cl&ose - - Copyright + + &Close diff --git a/resources/i18n/openlp_en_GB.qm b/resources/i18n/openlp_en_GB.qm index 60c04ed9b289e24a8344182665dbb0c7d94e11c9..d5acb055374d1f4a239d63baa435ca6483c7f99a 100644 GIT binary patch delta 4570 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 delta 4662 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 Gxc>l`=HUJS diff --git a/resources/i18n/openlp_hu.qm b/resources/i18n/openlp_hu.qm index 1efe9be1bcd2a63733fa3119955e2a4a6f9119d5..530115bb4b7ab9365fa94f2b6fabee1ed482ba1c 100644 GIT binary patch delta 4617 zcmZA4dq7QD-v{vD-e>Q9_St8jb3{!OMX6lMC8Uz3T)L2oZX`tLDiX$}a1awp=%|q) z(zs2@C59<4V`Svs%)>knW@N;;CdO?Tm*;!5z3=n9`;YTkYn`>%<+s+_`UNTdvn1EVqp%;jt~cjn$aQ-V%up;O*Ndl+-$^|d zFNMcicHec@9YqeVn@f?{vQI2x1ql*p({r?CQV)Gep6 zrx8-!X2tW0Z)tMF10wyWlvJvNLA1~!7|y1ZKX!!MD0d!0tpA?!_L*P<6-~jC8f>X# z>F+R_cJ@R^hAmY41qNcMqWYu~qE-=fY0ykEQmd)-o1q5^O6Yq2P1r!!S7XK&L^mef zhK}?;G!{lM>;-gSksdZ*(JGKx`27YVt7Xihk-cCYV;W%2|IKW)7)oAYLE?_!CbsB0B&P` zVN2l|=30(XLZS%?Xl=_hHQj>!S&_v|tRvV@PUOQf*1j4MvWaCKx;=+`SSS7G@Gk4T zjVEf`0iu4}Sk~(qLfy8I9WW^!K4wQwXiwBGnk_8Z1}oTN>^*AtPxkA+E=0Dr><**( z_}LC+cXnF`C$l@v$Io_^;vu%`UMlkS?1AzN@FjaN6_K&)#2z#^Xcxd%n>U%=bhak3 z4_w9`eS?A7ZDpUBDv8=N?31R2(2ad{@+2IulD|9yXR8b~*>IK0XnC#>iNh-E$a?s^ z#STu2Q7XHzXrc}?RrVPeXoroeVS$bCm@1;nDELejXC8=sylSRH0nAe^$Q%uitFlXj z;Z@b<>CcE9>{OLe2Vt7(=o@tGuuD}RaTMM%s(z`%06Gp-HLnealU08nT?S2x=T$F0 zeE&@KGB}dR(OUItHR?MK;KbM7a5vY=r8hjsbtt<`*T^X)?wF-X9Rdm}1dn%4oEKoef zRg|OSuGd?1k+}V}h_H(TcPLX2|W!$+ygw*AG?&56B*rl;WS3B>k?1xaVj|sU@SM55ZaIp_dHIp~ z`y0G&JC>lk6>q=00O!BE5AWfIw_EoN-Z%a}T*Lcj(|(1kx&j2rqy z^5;JdgUNhDHD=If4}W*lYj~kWcR|rtaW4O`E9$!!3allbaPD`7)@f+Bubp5y5XZA` zve5P|PDkHdq2EduSSJ_(-u$P^XWj=OZzQR%wGxdrWRdaYCrUfRDT-SZ&k1MUtWbVOXncH& z$eUI3jd;*__fyOBqG77qQM?8>se9}}q`ZGsyQj5^B=M@_C8K_>kcp99mULrju`pi+i+=K={o2$+{KL`G%&bx@` z!e_5r^mS50uuOR}ychsdrQ;7V0)Z3$SV2b+C11ycvFJFE9 z5jylcsIKLU;eGYbvCoMHSgZfFx(5tV-+Xcsex+{Iw}-!~8*d^%P@`_DD1>1mYjGRS z5xFW8ED(9o9iA0=>sIhDQJaMc4005mi*Tw2trWXUj_{(`Gv)-&|6mgP7HlIL++Fmr zZwDufo}R&Qn;4Kc3tkYzHex{j*5c@Q{;-EQ<_zBJ{$s?c?&sioai+t5_)^TG14IGc z#AOoh3kVfUH~PV?VvXSpQ6MAMX7gU=#iwpp`DKxl_?ik_MsvC+uKYIX+SgvFYj!?25o9oFn# z;|;H9c2{kHe`)sndlH4%Xb!Kq4+Ax)&q**|(|81t4Vf>|N<4Z)u1I}2jwm!=@{Rcl z?vh3rtFRkGFG%4ZY?8)_E<|CnqK`BwJ`DMBFb>X@k^?o+BxP9QmrU3C; zn=hhL%YFF%td`rg5&4H&!5>C;R!r9hoc$d6E!ttHdcprOYKPmT5k(2w$PVM7gLa%N zLKsz~omTJ;HfxQIaAcS^*ZVoqC>w2F;BDxkEz3dZM~&8&{VK!xighi@SgTX*n6T_C+)lT*6?YI zV?1QdfoDWx5@b2E5SGZTym0=<{3JUpz%d;=Kz3Np!dG&i^>2yBdB_9m5!rEBa+uq{ z;Lmcnh>pkIX)(@8j!2$?^B)&3&uu`(xTUgbco6(fUgy`AXuPdld^i9Ol{YX~;ZntY z@`g7@kUt}DYTN+t$rZkc*aTVLV?YNJx+_kX_l>@de3@L`jEPOSDc3MCo|o%#Q9r(u z{NQ{5&VPKUPRNWTn&_`{2)qU3b?(ti;CkJFh*bDe7x~_sXp*fiIS_w9Cgmtr>r%YT zK+Zb3@_=LowpGsI_v)S+5scM!dOu}ABV)bDO*o;XD`tTSm zRZ^Zlq6{-lcGluOBm8oCr>p3)-+Ni(Mu90YprT*$^9HS{y^w+N=B2(7spBiG}ZUgyO z!^eh>gRquqHioX|=RjJ7q2DDuC(?|DkVEJ=?UG^SP()@bZz$-9j;FdADi-#I;f6hf zU%Mc&$Z%i{2X`2b=eLFT4X4)O#%XN~w`XC*(|infS!<@%w zJLZxpez7BS&0G@t@IyTuA$s+ncQDMy9HVYYF*?TTV;K>H_?RyS3-j?}{7g@>?U(?Q z#ZoIK6n)qW%qUbD|Dhn!{P}T;%-oMRnPsv~4%s#qYyPtgr9~g^D=~j(z)t^~`D z{7U41AVWbmd_jh%U5M01cQX7QghT>G)%*tc(OCCDc#_5rSqAUZ*xY;~O@E51I0=I& z*7{c%PjM=LXr#Df8{t`s`||~Crg$sV*Am4~Yk~F@|HupWr15G*R69g=hDD=x9gR2Hgq%%;;Rj-D@g5 zXd=?LrL{A#r21$oU3v?ypz=QGM}M8_zQjQEkEki7l#FCmK$ipN5LxY@pY^@r4|H?I zZ6fQobaN$UZ0$?GOuh>z(1*}?SirCs(Sdb2qsToA-!h^;lc-G>rp?|*a2(U-COT*{ zpRrkZ0d8aLLnZhN({a}qL^gIzr>8Sv4AZ&a8zU0S7-vTez^0rDRBeOJ%%o^fB3moj zG$!#3?q1tnOvZSE*O-~zu(o#Xm~3-ByLj0uX3_Bt$hR_!WBL(&;?0=Sw1o4r~|Qr!a}eU_QIkybT?z+47#n@O!r0ybT@STI}G;R^Cq|>fp~-?YRh( z*u!avOow9ju(`nwm28dqX6ta1txfiTt?bcv7+6Ou_BT@n%wm6gya<-Euj}jK1%*+w z?ko~_6#Cj+_*P+iehpElt_u68COB2LNcN*h>-FJr+(; zB$x-{)To%#xd^^de4aCosB<4h?$!`EQn6*`3s|727<(ArFe;9|L&whcil#_B>6{}K zR~s+@=lzPOs}1mb#q*=fh+G)ifr?k=^Da{qzlTJ@Ws27;&G`yWeB(#dr9Efm)*t$D zowi+pn>puzNcf8D;!;WE+K1~eV!*D+++;sQ#MM~9CCyDD>Keu^NY8$f6uxk^Sn}sFm`WCJu>ehxU+&=~OkR31kHMg=TALZNODfkbr=(+}8<%*vT zgde!IwG)ZDceH5iK9pPk1|#hr%a!QAf!W-qcx=1wd$=vBXrTKwi#<4Qmw@v<+H-qW zyoYh{1I*&~tW>}+xxGEh;AYu#7TrkJi`%;g9lMQ@ozESrGhqL_t>mh6bU1OIt2=;~ zi@P;G=!KncM66(qgYZyyi(h_J6N1Ub_QJ&?}dB+J~E_*KXdsF9y=9nfFh8 z0N?Zexp-jop2`o|;|dG;p)0q+GTAE@`)Fl@_;6P&WuGa0^earHPaYp*`V2ncC-@+; zeHnh*tQu&`C*>GRkqG6Jmmh}n`IO`>aHGY3EI-{71L$Yq3l`$$?6;IJ9^em4_zeZ- z{0)BN^7Zhg#s1FxCckE){sZ~ag(+|?UvUZ%=)X_)DnumuKjaS_Lb(U=2aF#RZYaPB zkHP%6S(uqeBwy1e4QBBtg8zW)`ST^_3r_GC+J?cad~*$E;Msxyb@LlINH$w`uk1bk zQ4iGjQV6Uq9&lbULYs87>s27w4nw59t_ntnKe0W$UJJhYZbaVR!tfI|Fjk1DyaaQE zh{HGFIw5X0Lg`&6B)DMa-mirOgBQ_&lS0BhoFDL1nCgKU`{;z^#A@gvOb^6+-X}(w zH3RMX6bK8=+s@-2AK`0Z3`7DU5qN*8=&&_K1a_kKibV2IK) z-2tX52UeK#JCq}x3Zd}_<;bl$NW4;}k&e+O+Kb5gzf*4c5fK;? zt=u{)mB=_`w{pkWJQVz(tbT~K8S+kf;t4t&>Y}XUOJJPx`}mh|ney7o-mpe_`?q?c zVJc;dt|JUlw%j)7=P4iWT?3DZto2=ZSL7;9L;)o7q9^nfd3!6EEUFh`0s*T<*R?aT z{{#LIdr2-t!v~9f;xMw|nW9%w8Qds(JGF=3ivtFP5Cz(ZL510HkQlZJ0}5Owj(Z;n zH;LoV;=LYtM$GU$PZT7Gb2=Y_N#a7Pf*ZtT60QrX6}N60LNvlktks`|Sz_%9Pwf8@ z#pVROCf224#KDYs_SGfmEE^`fNX1XWdpmfYN}8|&)~Mo-V<00(t0wPDg41L-$Tq1` ze6OJVp(^z&+=L;sRWl1wKcqyJy-)#9s^;}Gu0f(zH81TQ(P&3iel=z~+E;d>YO{dQ zj-D-BrrH@FjeLWuJmfaf7^SLwH16UtT~+&5`N3e-zRC?SS#>CI0L)W;_tgVfr8;w7 zf{m({BZ%yn2NLDudnuw4H)Gf!$?(zf(nJv>56h9=Elo`f zL;f60fcK>7BUD7;j5Ny@A2Q)>rG*x<`2CM;=wvQA9BEwOZkXrHpb^bLR6=zG`mQCK#_40?n?G{n@Av zI`=8jSe<(G>3+~%9o{Y-W~-w*O@b@c6WtNQXilA3^d3%B8(Uz^5p{vzOQP63b>WD+ zaJzb29zq{`TD|Qj4SZlR&Rceg`fy7lQCy|EA+(NYoR#|auFlZdO?{84M~@W+>IL$bG@6_>L=!X`DbFC6Q31iJU$gCyr_6 zH=|<0bB!rHm}pWrP4N&1n6D}ME(lg@HZV8fbBmKZX*Rq&LNwV&v$-3#1bPkwagss|HL_(h5}rWSgd(?0UadPYK5FAqA7>8 zok!e(jatv>B}7vN?a;_Hn52#R;0N=y(?{Tk$kdk>r*+q+`k;JTm^Sxs7|664+I`Qk zMAKGjk9lOkYHeM^AoyH+_Q@`yB)#@xMj-ZoQiS%$gh04X`*Z06cv<^+02)fxYoCm~ z0t2*9UCW?J`_^YCJg)0!{y<6TryDsH_d?1{U04!s#*|AsLmZYW<&7?K8)iD)q{}Nm z3wP`C*FS;vx{7z$J=5Rm4t3RAd=I22A zalP+lJSWm0>&H~1f6x|$B!w5{~9yRH!R(W#S$P09My^jSMsQ${<<6!wYU zbfleqWoo-(sjnLaQ95Iw9Lk{klt~LHiDr-!a!Hhe^4U0ZpXMOv$D4oWRsP}PIf1b? z^;%qMdbHTd6tP%iKNVg6_rL&g;KvZnHQie5j?sK(8n)QZ6>q@59IOA5-$>h0)84h> zFXi}Jp!&a*okz{~%q8^T!rVaGCKSJ%akSzO-&5v;vHTZ5V$SOjO|x=4F%QjY#qX?Wu43x6w9eGJwEq8A*!1nP VRJ~4KPkGrZJAT=TF^$T5^&iIL3itp3 diff --git a/resources/i18n/openlp_nb.qm b/resources/i18n/openlp_nb.qm index 13ee0572814256aa023251ebd7c6a5ada0c1b5ec..2976e8d1e4d3c321698379c1762236c907a28e73 100644 GIT binary patch delta 2956 zcmYk-3tUav9tZIMK4dEF)qTl0l*fTUb{W-izV?36_r(`q-oVBHc3#2ha zHxqHOin)sAij9gNXl!jKkw&I*rKzyL;&{a+iaRJ~i-7;v&;)bcMPozaHYEW%23epLSDFEEkz4Z;Mvb#!%BIowS* z!WY1cbYJ#@oz%SkA(7xl4`w`u6Y2MuB)EuCT`7TOjJn_wyv%fIMuI{I1U?xc~-+-U@JncRLTnY5o-dZr9EGTW?266w`U z&2RW_^{z}qcn=uGG+h}1=PD`ACdx1T$_q&k+31g(Boy|1q)vhJpq zwqm8$1J&}00vN4!h)sYw>amfnaFaU4^t^SGdV$ME_*PvVe~hThK=rK)n_;TDtvJqz zV41qZ+_6jjpD~lrKFex5gWvJv7rLCS+sXjoXW*y#S+;sxem z*HTvp1GuN#JK-e7b&B;|#~uUvA8AxJ*!@m!nl5wjyi>BqCJdX-sYw%9=nh|KQsVrG zoOw;g%v#u2lNsR*jWL>evoXLqPqRdeUF%$;Ilr?XtW#{W=+aa3qqi-Q%TP^gJC2h} z4Bw-?8t&kGYwy7)yzd-)BG*2AwDVdR!$>g;lJyN`dag?4^2jE*&4i%`W9$8J1clnJJh)+e4_RDA4Am7Q9Jcx1kQiI zFzsC5Ms(zAPptQar!DpuwclrBg8sv`mpXoeX^LAFn{?cCyny<*>t*VNjCyq|Jql57u8n+5wM!S)VEnLPy-Orc&#+8=Y%f%3Sfx>)?u7}4+vqbR z^)O7I6%Yic=nHnBRKpkOtJ<;4hi}oJ_L&PC^!HLCh=RN5@0Txvar&437$3aCFxd2p z4X!mrr=fDe&4!ixE)j){G*o|xg(-$3pCh5r*@n|C7#~_>xR5d!8uuEmvdB2}k>Tfy zI0YlD4b9EjaEwe5budeI4M$~0?2X|8m?) z+4c5B;aa(26UK!*$&d5$-~_on274=fuH1h73fzXX9NwU=`BAu|s=20Lp%R3!)SS=r zB6H@?t;w)T4K}_ee08`O)B6LLOufj%9GPxI@E2fiMVs%YTQa37F-nDNk!cs3uQj-r zn4?llhjK5cJ&3B5Rvn!u`fGn1HPCi7D-+W1aQ7qfy1MZOG&?^zPH<KIVWcp*_OC;?N+lY&X4&ocVplL delta 2987 zcmY+`2~-qE8VB&NXS%0nrh8@(IRsH)2tk1$AeSH@69gm?g973ag(QF=E*cf1Mn{8L z6!AdBThtJU2jYQf0^WEp3a&?7+~9#2CBa)ZvaaSoOuO%;-kbhaRae(keO*;E3(A=z z<;+SeW^a-8Nn;&LBzr>cO|C?84Y~jB4fW*VeHw<4NBU8iL>?8Jr0h*&fA@!8G)};blo68C zCCh1C`g7DDrtu2&r@Tz#&tpQ$`({<5q|uMQxb+*6Dw>wg#!OU`sC3aCxP-P3KnJSh z)Ra*Qf2OO3>F_oEqVpnBe?TqE@4{rdoze!srMJV!!b(PVsTf{l*h)&Ir2)g&@!4R&x2(|BnJ+`?R!ZG)$noB0U2=2x>?d#0n~9+5Uwrj%ho z+Oaa5`sHLKZL!R$7BkYd%bY!55?Q#&T+7kGB1x8%(ii5-N=nP&b=mj+?(l!Ink)>k zhp+6_>Chj=Rd7rpM_?`Tts8)DZKEd?7rA$8Ec@=b%S0&WI6#4aY zB}QaQv3MT5=leKX7g?_AK*)^EYI_X>BRaS2pNo3{0 zrsbx=bau{O49Kd4&C6L0E8$vL&lc{%;G1v zcGFlaKI>EL4uz?FhuyXO4Uvrnd<)&!N>9wlCQLF*a-8(gnx3=MbK)aRz%G>2R3HL&UvOcm?XZXo%bN;YxbR)BMD`pvWJMX&OOBK*U%;LreArie8a_Ng};5sfNeG9BN>)^nx4h$o5NaHpx zUI(iruW*}!Z=rmTE1jD`)F+Xvs>eY4WJ{KCd-t2lJB?DN8DdfOdCnco!ASdxT&-mm zbmUG%{{iE;TeY=tGWTF}7yP^Aamhcp&I&D&qpd<_h1Ktvtgy_+^NuSNRuNcqPBO)y z0(a=Bm=Ny|gB9tihoEtcVp60NG7A*bCYu`kpqQ(~s&zV}sNd!WJIp%kCF2zT@U|v$ z&Q!EM!FF<9z}uBp!7IFr@+Ohqp7+bPhokuzr$V@ZkJ*OE>NoOP#KQ)&F2qkwz;i|y zXMWbJL?V|Ye*VJ0!P$J_#aTq}74R#A9>N-aRb@}uz;C&U2)VlO+lFPrulN&>@SN)p z{6ELOgiZX76<+WyfA{HWqW2^D*1IO>D%olrNbet1a<&%mu`FYz#Qt|5quQ*%NZsd1?o#bu8H{p+YIpSp_*8Yi zK~3b*OVxU~9QvrK0Ncr%rwqNW|X?(fR@N>zj~h%AswJn|M>Va3{ck+?hhEDZp=LZ z@2RhJp`AA;$ej=opKO6O)%z3)?2b)vr=W;5`OvJdi!js!yTdn1Ft)yd7lp#8Hll$Q zLRmg0Ht>j0X8gB^%srvZq@ROif>6`ii1IYy=z2Wp_ei+UAVU7B!hq!!H%5=Tz@66IuZb+|oTBCh{&DBLM-V4C62W`mXDhS!IQf?dVRuy$w=_vp}1 zaH`}Qao?CWll2Fyyn=zDX>d(a{?A^=upisrL*B8O-CTwhyJAX zF&(j??b?{n5xKA)+WhSoV6L|6bsQ|x?w^SPg_mlN-9r0tW4-p=1RrFYwM{HWJj7Pp zd>*@CNTjx!ss5MD1_uO* z5!q>9&WOxR&Cbanj@;|m>O4)UOsPxEoEY(0&dlNk7LLVjmUh+SEqp?aF9`3oJ2Bl? z71@xhRD-3CoNsr@@c+6b!cS9o!oiF*oxbXp=v%m~J70_|j&mt(rR~V=kxGZ@G&Q}u zh3$)ka}Vh^de$uw4(z`shBKELyjsSQ>4z(p;a?Nu|E|nLm~%`FgI9*O3CyPqqVz5? zbIds=pBcCsx3T4Lt-|LBK4;!FlNuq|ro>>qn^X0LIB!O$mBJ}Sy86`!4~DTW-sfw> Nk$_iFZHNzJ{sf`T>HGiy diff --git a/resources/i18n/openlp_pt_BR.qm b/resources/i18n/openlp_pt_BR.qm index bf300059d46778496e8323244234b0c60eb9b27b..f5f4cdc71514feaae60e0b02de436026b4aeb124 100644 GIT binary patch delta 4621 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 delta 4718 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 a2{smgovhc%sg<){_4aEwrpl|3WBwOo7Cq4b From 181c19d1123d2011004eadb273c3b6f8e45521f0 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 27 Apr 2010 22:54:55 +0200 Subject: [PATCH 07/22] futher changes --- openlp/core/ui/aboutform.py | 1 + openlp/core/ui/amendthemedialog.py | 267 +++++++++--------- openlp/core/ui/plugindialog.py | 41 +-- openlp/core/ui/serviceitemeditdialog.py | 23 +- openlp/core/ui/servicenotedialog.py | 17 +- openlp/core/ui/settingsdialog.py | 25 +- openlp/plugins/alerts/forms/alertdialog.py | 75 ++--- .../plugins/bibles/forms/bibleimportwizard.py | 89 +++--- .../plugins/custom/forms/editcustomdialog.py | 105 +++---- openlp/plugins/songs/forms/authorsdialog.py | 41 +-- openlp/plugins/songs/forms/editsongdialog.py | 129 ++++----- openlp/plugins/songs/forms/editversedialog.py | 55 ++-- .../plugins/songs/forms/openlpexportdialog.py | 63 +++-- .../plugins/songs/forms/openlpimportdialog.py | 63 +++-- 14 files changed, 504 insertions(+), 490 deletions(-) diff --git a/openlp/core/ui/aboutform.py b/openlp/core/ui/aboutform.py index c79324515..cf051722b 100644 --- a/openlp/core/ui/aboutform.py +++ b/openlp/core/ui/aboutform.py @@ -26,6 +26,7 @@ from PyQt4 import QtCore, QtGui from aboutdialog import Ui_AboutDialog +from openlp.core.lib import translate class AboutForm(QtGui.QDialog, Ui_AboutDialog): """ diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py index 65d675cd1..65c7b21a5 100644 --- a/openlp/core/ui/amendthemedialog.py +++ b/openlp/core/ui/amendthemedialog.py @@ -25,20 +25,21 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon +from openlp.core.lib import translate class Ui_AmendThemeDialog(object): - def setupUi(self, AmendThemeDialog): - AmendThemeDialog.setObjectName(u'AmendThemeDialog') - AmendThemeDialog.setWindowModality(QtCore.Qt.ApplicationModal) - AmendThemeDialog.resize(586, 651) + def setupUi(self, AmendThemeForm): + AmendThemeForm.setObjectName(u'AmendThemeDialog') + AmendThemeForm.setWindowModality(QtCore.Qt.ApplicationModal) + AmendThemeForm.resize(586, 651) icon = build_icon(u':/icon/openlp-logo-16x16.png') - AmendThemeDialog.setWindowIcon(icon) - AmendThemeDialog.setModal(True) - self.AmendThemeLayout = QtGui.QVBoxLayout(AmendThemeDialog) + AmendThemeForm.setWindowIcon(icon) + AmendThemeForm.setModal(True) + self.AmendThemeLayout = QtGui.QVBoxLayout(AmendThemeForm) self.AmendThemeLayout.setSpacing(8) self.AmendThemeLayout.setMargin(8) self.AmendThemeLayout.setObjectName(u'AmendThemeLayout') - self.ThemeNameWidget = QtGui.QWidget(AmendThemeDialog) + self.ThemeNameWidget = QtGui.QWidget(AmendThemeForm) self.ThemeNameWidget.setObjectName(u'ThemeNameWidget') self.ThemeNameLayout = QtGui.QHBoxLayout(self.ThemeNameWidget) self.ThemeNameLayout.setSpacing(8) @@ -51,7 +52,7 @@ class Ui_AmendThemeDialog(object): self.ThemeNameEdit.setObjectName(u'ThemeNameEdit') self.ThemeNameLayout.addWidget(self.ThemeNameEdit) self.AmendThemeLayout.addWidget(self.ThemeNameWidget) - self.ContentWidget = QtGui.QWidget(AmendThemeDialog) + self.ContentWidget = QtGui.QWidget(AmendThemeForm) self.ContentWidget.setObjectName(u'ContentWidget') self.ContentLayout = QtGui.QHBoxLayout(self.ContentWidget) self.ContentLayout.setSpacing(8) @@ -525,7 +526,7 @@ class Ui_AmendThemeDialog(object): self.ThemeTabWidget.addTab(self.OtherOptionsTab, u'') self.ContentLayout.addWidget(self.ThemeTabWidget) self.AmendThemeLayout.addWidget(self.ContentWidget) - self.PreviewGroupBox = QtGui.QGroupBox(AmendThemeDialog) + self.PreviewGroupBox = QtGui.QGroupBox(AmendThemeForm) self.PreviewGroupBox.setObjectName(u'PreviewGroupBox') self.ThemePreviewLayout = QtGui.QHBoxLayout(self.PreviewGroupBox) self.ThemePreviewLayout.setSpacing(8) @@ -549,140 +550,140 @@ class Ui_AmendThemeDialog(object): spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.ThemePreviewLayout.addItem(spacerItem8) self.AmendThemeLayout.addWidget(self.PreviewGroupBox) - self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeDialog) + self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeForm) self.ThemeButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.ThemeButtonBox.setObjectName(u'ThemeButtonBox') self.AmendThemeLayout.addWidget(self.ThemeButtonBox) - self.retranslateUi(AmendThemeDialog) + self.retranslateUi(AmendThemeForm) self.ThemeTabWidget.setCurrentIndex(0) - QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'accepted()'), AmendThemeDialog.accept) - QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'rejected()'), AmendThemeDialog.reject) - QtCore.QMetaObject.connectSlotsByName(AmendThemeDialog) - AmendThemeDialog.setTabOrder(self.ThemeButtonBox, self.ThemeNameEdit) - AmendThemeDialog.setTabOrder(self.ThemeNameEdit, self.ThemeTabWidget) - AmendThemeDialog.setTabOrder(self.ThemeTabWidget, self.BackgroundComboBox) - AmendThemeDialog.setTabOrder(self.BackgroundComboBox, self.BackgroundTypeComboBox) - AmendThemeDialog.setTabOrder(self.BackgroundTypeComboBox, self.Color1PushButton) - AmendThemeDialog.setTabOrder(self.Color1PushButton, self.Color2PushButton) - AmendThemeDialog.setTabOrder(self.Color2PushButton, self.ImageLineEdit) - AmendThemeDialog.setTabOrder(self.ImageLineEdit, self.ImageToolButton) - AmendThemeDialog.setTabOrder(self.ImageToolButton, self.GradientComboBox) - AmendThemeDialog.setTabOrder(self.GradientComboBox, self.FontMainComboBox) - AmendThemeDialog.setTabOrder(self.FontMainComboBox, self.FontMainColorPushButton) - AmendThemeDialog.setTabOrder(self.FontMainColorPushButton, self.FontMainSizeSpinBox) - AmendThemeDialog.setTabOrder(self.FontMainSizeSpinBox, self.FontMainWeightComboBox) - AmendThemeDialog.setTabOrder(self.FontMainWeightComboBox, self.FontMainLineSpacingSpinBox) - AmendThemeDialog.setTabOrder(self.FontMainLineSpacingSpinBox, self.FontMainDefaultCheckBox) - AmendThemeDialog.setTabOrder(self.FontMainDefaultCheckBox, self.FontMainXSpinBox) - AmendThemeDialog.setTabOrder(self.FontMainXSpinBox, self.FontMainYSpinBox) - AmendThemeDialog.setTabOrder(self.FontMainYSpinBox, self.FontMainWidthSpinBox) - AmendThemeDialog.setTabOrder(self.FontMainWidthSpinBox, self.FontMainHeightSpinBox) - AmendThemeDialog.setTabOrder(self.FontMainHeightSpinBox, self.FontFooterComboBox) - AmendThemeDialog.setTabOrder(self.FontFooterComboBox, self.FontFooterColorPushButton) - AmendThemeDialog.setTabOrder(self.FontFooterColorPushButton, self.FontFooterSizeSpinBox) - AmendThemeDialog.setTabOrder(self.FontFooterSizeSpinBox, self.FontFooterWeightComboBox) - AmendThemeDialog.setTabOrder(self.FontFooterWeightComboBox, self.FontFooterDefaultCheckBox) - AmendThemeDialog.setTabOrder(self.FontFooterDefaultCheckBox, self.FontFooterXSpinBox) - AmendThemeDialog.setTabOrder(self.FontFooterXSpinBox, self.FontFooterYSpinBox) - AmendThemeDialog.setTabOrder(self.FontFooterYSpinBox, self.FontFooterWidthSpinBox) - AmendThemeDialog.setTabOrder(self.FontFooterWidthSpinBox, self.FontFooterHeightSpinBox) - AmendThemeDialog.setTabOrder(self.FontFooterHeightSpinBox, self.OutlineCheckBox) - AmendThemeDialog.setTabOrder(self.OutlineCheckBox, self.OutlineColorPushButton) - AmendThemeDialog.setTabOrder(self.OutlineColorPushButton, self.ShadowCheckBox) - AmendThemeDialog.setTabOrder(self.ShadowCheckBox, self.ShadowColorPushButton) - AmendThemeDialog.setTabOrder(self.ShadowColorPushButton, self.HorizontalComboBox) - AmendThemeDialog.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox) + QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'accepted()'), AmendThemeForm.accept) + QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'rejected()'), AmendThemeForm.reject) + QtCore.QMetaObject.connectSlotsByName(AmendThemeForm) + AmendThemeForm.setTabOrder(self.ThemeButtonBox, self.ThemeNameEdit) + AmendThemeForm.setTabOrder(self.ThemeNameEdit, self.ThemeTabWidget) + AmendThemeForm.setTabOrder(self.ThemeTabWidget, self.BackgroundComboBox) + AmendThemeForm.setTabOrder(self.BackgroundComboBox, self.BackgroundTypeComboBox) + AmendThemeForm.setTabOrder(self.BackgroundTypeComboBox, self.Color1PushButton) + AmendThemeForm.setTabOrder(self.Color1PushButton, self.Color2PushButton) + AmendThemeForm.setTabOrder(self.Color2PushButton, self.ImageLineEdit) + AmendThemeForm.setTabOrder(self.ImageLineEdit, self.ImageToolButton) + AmendThemeForm.setTabOrder(self.ImageToolButton, self.GradientComboBox) + AmendThemeForm.setTabOrder(self.GradientComboBox, self.FontMainComboBox) + AmendThemeForm.setTabOrder(self.FontMainComboBox, self.FontMainColorPushButton) + AmendThemeForm.setTabOrder(self.FontMainColorPushButton, self.FontMainSizeSpinBox) + AmendThemeForm.setTabOrder(self.FontMainSizeSpinBox, self.FontMainWeightComboBox) + AmendThemeForm.setTabOrder(self.FontMainWeightComboBox, self.FontMainLineSpacingSpinBox) + AmendThemeForm.setTabOrder(self.FontMainLineSpacingSpinBox, self.FontMainDefaultCheckBox) + AmendThemeForm.setTabOrder(self.FontMainDefaultCheckBox, self.FontMainXSpinBox) + AmendThemeForm.setTabOrder(self.FontMainXSpinBox, self.FontMainYSpinBox) + AmendThemeForm.setTabOrder(self.FontMainYSpinBox, self.FontMainWidthSpinBox) + AmendThemeForm.setTabOrder(self.FontMainWidthSpinBox, self.FontMainHeightSpinBox) + AmendThemeForm.setTabOrder(self.FontMainHeightSpinBox, self.FontFooterComboBox) + AmendThemeForm.setTabOrder(self.FontFooterComboBox, self.FontFooterColorPushButton) + AmendThemeForm.setTabOrder(self.FontFooterColorPushButton, self.FontFooterSizeSpinBox) + AmendThemeForm.setTabOrder(self.FontFooterSizeSpinBox, self.FontFooterWeightComboBox) + AmendThemeForm.setTabOrder(self.FontFooterWeightComboBox, self.FontFooterDefaultCheckBox) + AmendThemeForm.setTabOrder(self.FontFooterDefaultCheckBox, self.FontFooterXSpinBox) + AmendThemeForm.setTabOrder(self.FontFooterXSpinBox, self.FontFooterYSpinBox) + AmendThemeForm.setTabOrder(self.FontFooterYSpinBox, self.FontFooterWidthSpinBox) + AmendThemeForm.setTabOrder(self.FontFooterWidthSpinBox, self.FontFooterHeightSpinBox) + AmendThemeForm.setTabOrder(self.FontFooterHeightSpinBox, self.OutlineCheckBox) + AmendThemeForm.setTabOrder(self.OutlineCheckBox, self.OutlineColorPushButton) + AmendThemeForm.setTabOrder(self.OutlineColorPushButton, self.ShadowCheckBox) + AmendThemeForm.setTabOrder(self.ShadowCheckBox, self.ShadowColorPushButton) + AmendThemeForm.setTabOrder(self.ShadowColorPushButton, self.HorizontalComboBox) + AmendThemeForm.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox) - def retranslateUi(self, AmendThemeDialog): - AmendThemeDialog.setWindowTitle(self.trUtf8('Theme Maintenance')) - self.ThemeNameLabel.setText(self.trUtf8('Theme Name:')) - self.BackgroundLabel.setText(self.trUtf8('Background:')) - self.BackgroundComboBox.setItemText(0, self.trUtf8('Opaque')) - self.BackgroundComboBox.setItemText(1, self.trUtf8('Transparent')) - self.BackgroundTypeLabel.setText(self.trUtf8('Background Type:')) - self.BackgroundTypeComboBox.setItemText(0, self.trUtf8('Solid Color')) - self.BackgroundTypeComboBox.setItemText(1, self.trUtf8('Gradient')) - self.BackgroundTypeComboBox.setItemText(2, self.trUtf8('Image')) - self.Color1Label.setText(self.trUtf8('')) - self.Color2Label.setText(self.trUtf8('')) - self.ImageLabel.setText(self.trUtf8('Image:')) - self.GradientLabel.setText(self.trUtf8('Gradient :')) - self.GradientComboBox.setItemText(0, self.trUtf8('Horizontal')) - self.GradientComboBox.setItemText(1, self.trUtf8('Vertical')) - self.GradientComboBox.setItemText(2, self.trUtf8('Circular')) + def retranslateUi(self, AmendThemeForm): + AmendThemeForm.setWindowTitle(translate('AmendThemeForm','Theme Maintenance')) + self.ThemeNameLabel.setText(translate('AmendThemeForm','Theme Name:')) + self.BackgroundLabel.setText(translate('AmendThemeForm','Background:')) + self.BackgroundComboBox.setItemText(0, translate('AmendThemeForm','Opaque')) + self.BackgroundComboBox.setItemText(1, translate('AmendThemeForm','Transparent')) + self.BackgroundTypeLabel.setText(translate('AmendThemeForm','Background Type:')) + self.BackgroundTypeComboBox.setItemText(0, translate('AmendThemeForm','Solid Color')) + self.BackgroundTypeComboBox.setItemText(1, translate('AmendThemeForm','Gradient')) + self.BackgroundTypeComboBox.setItemText(2, translate('AmendThemeForm','Image')) + self.Color1Label.setText(translate('AmendThemeForm','')) + self.Color2Label.setText(translate('AmendThemeForm','')) + self.ImageLabel.setText(translate('AmendThemeForm','Image:')) + self.GradientLabel.setText(translate('AmendThemeForm','Gradient :')) + self.GradientComboBox.setItemText(0, translate('AmendThemeForm','Horizontal')) + self.GradientComboBox.setItemText(1, translate('AmendThemeForm','Vertical')) + self.GradientComboBox.setItemText(2, translate('AmendThemeForm','Circular')) self.ThemeTabWidget.setTabText( self.ThemeTabWidget.indexOf(self.BackgroundTab), - self.trUtf8('Background')) - self.FontMainGroupBox.setTitle(self.trUtf8('Main Font')) - self.FontMainlabel.setText(self.trUtf8('Font:')) - self.FontMainColorLabel.setText(self.trUtf8('Font Color:')) - self.FontMainSize.setText(self.trUtf8('Size:')) - self.FontMainSizeSpinBox.setSuffix(self.trUtf8('pt')) - self.FontMainWrapIndentationLabel.setText(self.trUtf8('Wrap Indentation')) - self.FontMainWeightComboBox.setItemText(0, self.trUtf8('Normal')) - self.FontMainWeightComboBox.setItemText(1, self.trUtf8('Bold')) - self.FontMainWeightComboBox.setItemText(2, self.trUtf8('Italics')) - self.FontMainWeightComboBox.setItemText(3, self.trUtf8('Bold/Italics')) - self.FontMainWeightLabel.setText(self.trUtf8('Font Weight:')) - self.MainLocationGroupBox.setTitle(self.trUtf8('Display Location')) - self.DefaultLocationLabel.setText(self.trUtf8('Use Default Location:')) - self.FontMainXLabel.setText(self.trUtf8('X Position:')) - self.FontMainYLabel.setText(self.trUtf8('Y Position:')) - self.FontMainWidthLabel.setText(self.trUtf8('Width:')) - self.FontMainHeightLabel.setText(self.trUtf8('Height:')) - self.FontMainXSpinBox.setSuffix(self.trUtf8('px')) - self.FontMainYSpinBox.setSuffix(self.trUtf8('px')) - self.FontMainWidthSpinBox.setSuffix(self.trUtf8('px')) - self.FontMainHeightSpinBox.setSuffix(self.trUtf8('px')) + translate('AmendThemeForm','Background')) + self.FontMainGroupBox.setTitle(translate('AmendThemeForm','Main Font')) + self.FontMainlabel.setText(translate('AmendThemeForm','Font:')) + self.FontMainColorLabel.setText(translate('AmendThemeForm','Font Color:')) + self.FontMainSize.setText(translate('AmendThemeForm','Size:')) + self.FontMainSizeSpinBox.setSuffix(translate('AmendThemeForm','pt')) + self.FontMainWrapIndentationLabel.setText(translate('AmendThemeForm','Wrap Indentation')) + self.FontMainWeightComboBox.setItemText(0, translate('AmendThemeForm','Normal')) + self.FontMainWeightComboBox.setItemText(1, translate('AmendThemeForm','Bold')) + self.FontMainWeightComboBox.setItemText(2, translate('AmendThemeForm','Italics')) + self.FontMainWeightComboBox.setItemText(3, translate('AmendThemeForm','Bold/Italics')) + self.FontMainWeightLabel.setText(translate('AmendThemeForm','Font Weight:')) + self.MainLocationGroupBox.setTitle(translate('AmendThemeForm','Display Location')) + self.DefaultLocationLabel.setText(translate('AmendThemeForm','Use Default Location:')) + self.FontMainXLabel.setText(translate('AmendThemeForm','X Position:')) + self.FontMainYLabel.setText(translate('AmendThemeForm','Y Position:')) + self.FontMainWidthLabel.setText(translate('AmendThemeForm','Width:')) + self.FontMainHeightLabel.setText(translate('AmendThemeForm','Height:')) + self.FontMainXSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.FontMainYSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.FontMainWidthSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.FontMainHeightSpinBox.setSuffix(translate('AmendThemeForm','px')) self.ThemeTabWidget.setTabText( self.ThemeTabWidget.indexOf(self.FontMainTab), - self.trUtf8('Font Main')) - self.FooterFontGroupBox.setTitle(self.trUtf8('Footer Font')) - self.FontFooterLabel.setText(self.trUtf8('Font:')) - self.FontFooterColorLabel.setText(self.trUtf8('Font Color:')) - self.FontFooterSizeLabel.setText(self.trUtf8('Size:')) - self.FontFooterSizeSpinBox.setSuffix(self.trUtf8('pt')) - self.FontFooterWeightComboBox.setItemText(0, self.trUtf8('Normal')) - self.FontFooterWeightComboBox.setItemText(1, self.trUtf8('Bold')) - self.FontFooterWeightComboBox.setItemText(2, self.trUtf8('Italics')) - self.FontFooterWeightComboBox.setItemText(3, self.trUtf8('Bold/Italics')) - self.FontFooterWeightLabel.setText(self.trUtf8('Font Weight:')) - self.LocationFooterGroupBox.setTitle(self.trUtf8('Display Location')) - self.FontFooterDefaultLabel.setText(self.trUtf8('Use Default Location:')) - self.FontFooterXLabel.setText(self.trUtf8('X Position:')) - self.FontFooterYLabel.setText(self.trUtf8('Y Position:')) - self.FontFooterWidthLabel.setText(self.trUtf8('Width:')) - self.FontFooterHeightLabel.setText(self.trUtf8('Height:')) - self.FontFooterXSpinBox.setSuffix(self.trUtf8('px')) - self.FontFooterYSpinBox.setSuffix(self.trUtf8('px')) - self.FontFooterWidthSpinBox.setSuffix(self.trUtf8('px')) - self.FontFooterHeightSpinBox.setSuffix(self.trUtf8('px')) + translate('AmendThemeForm','Font Main')) + self.FooterFontGroupBox.setTitle(translate('AmendThemeForm','Footer Font')) + self.FontFooterLabel.setText(translate('AmendThemeForm','Font:')) + self.FontFooterColorLabel.setText(translate('AmendThemeForm','Font Color:')) + self.FontFooterSizeLabel.setText(translate('AmendThemeForm','Size:')) + self.FontFooterSizeSpinBox.setSuffix(translate('AmendThemeForm','pt')) + self.FontFooterWeightComboBox.setItemText(0, translate('AmendThemeForm','Normal')) + self.FontFooterWeightComboBox.setItemText(1, translate('AmendThemeForm','Bold')) + self.FontFooterWeightComboBox.setItemText(2, translate('AmendThemeForm','Italics')) + self.FontFooterWeightComboBox.setItemText(3, translate('AmendThemeForm','Bold/Italics')) + self.FontFooterWeightLabel.setText(translate('AmendThemeForm','Font Weight:')) + self.LocationFooterGroupBox.setTitle(translate('AmendThemeForm','Display Location')) + self.FontFooterDefaultLabel.setText(translate('AmendThemeForm','Use Default Location:')) + self.FontFooterXLabel.setText(translate('AmendThemeForm','X Position:')) + self.FontFooterYLabel.setText(translate('AmendThemeForm','Y Position:')) + self.FontFooterWidthLabel.setText(translate('AmendThemeForm','Width:')) + self.FontFooterHeightLabel.setText(translate('AmendThemeForm','Height:')) + self.FontFooterXSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.FontFooterYSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.FontFooterWidthSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.FontFooterHeightSpinBox.setSuffix(translate('AmendThemeForm','px')) self.ThemeTabWidget.setTabText( self.ThemeTabWidget.indexOf(self.FontFooterTab), - self.trUtf8('Font Footer')) - self.OutlineGroupBox.setTitle(self.trUtf8('Outline')) - self.OutlineSpinBoxLabel.setText(self.trUtf8('Outline Size:')) - self.OutlineSpinBox.setSuffix(self.trUtf8('px')) - self.OutlineColorLabel.setText(self.trUtf8('Outline Color:')) - self.OutlineEnabledLabel.setText(self.trUtf8('Show Outline:')) - self.ShadowGroupBox.setTitle(self.trUtf8('Shadow')) - self.ShadowSpinBoxLabel.setText(self.trUtf8('Shadow Size:')) - self.ShadowSpinBox.setSuffix(self.trUtf8('px')) - self.ShadowColorLabel.setText(self.trUtf8('Shadow Color:')) - self.ShadowEnabledLabel.setText(self.trUtf8('Show Shadow:')) - self.AlignmentGroupBox.setTitle(self.trUtf8('Alignment')) - self.HorizontalLabel.setText(self.trUtf8('Horizontal Align:')) - self.HorizontalComboBox.setItemText(0, self.trUtf8('Left')) - self.HorizontalComboBox.setItemText(1, self.trUtf8('Right')) - self.HorizontalComboBox.setItemText(2, self.trUtf8('Center')) - self.VerticalLabel.setText(self.trUtf8('Vertical Align:')) - self.VerticalComboBox.setItemText(0, self.trUtf8('Top')) - self.VerticalComboBox.setItemText(1, self.trUtf8('Middle')) - self.VerticalComboBox.setItemText(2, self.trUtf8('Bottom')) - self.TransitionGroupBox.setTitle(self.trUtf8('Slide Transition')) - self.SlideTransitionCheckedBoxLabel.setText(self.trUtf8('Transition Active:')) + translate('AmendThemeForm','Font Footer')) + self.OutlineGroupBox.setTitle(translate('AmendThemeForm','Outline')) + self.OutlineSpinBoxLabel.setText(translate('AmendThemeForm','Outline Size:')) + self.OutlineSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.OutlineColorLabel.setText(translate('AmendThemeForm','Outline Color:')) + self.OutlineEnabledLabel.setText(translate('AmendThemeForm','Show Outline:')) + self.ShadowGroupBox.setTitle(translate('AmendThemeForm','Shadow')) + self.ShadowSpinBoxLabel.setText(translate('AmendThemeForm','Shadow Size:')) + self.ShadowSpinBox.setSuffix(translate('AmendThemeForm','px')) + self.ShadowColorLabel.setText(translate('AmendThemeForm','Shadow Color:')) + self.ShadowEnabledLabel.setText(translate('AmendThemeForm','Show Shadow:')) + self.AlignmentGroupBox.setTitle(translate('AmendThemeForm','Alignment')) + self.HorizontalLabel.setText(translate('AmendThemeForm','Horizontal Align:')) + self.HorizontalComboBox.setItemText(0, translate('AmendThemeForm','Left')) + self.HorizontalComboBox.setItemText(1, translate('AmendThemeForm','Right')) + self.HorizontalComboBox.setItemText(2, translate('AmendThemeForm','Center')) + self.VerticalLabel.setText(translate('AmendThemeForm','Vertical Align:')) + self.VerticalComboBox.setItemText(0, translate('AmendThemeForm','Top')) + self.VerticalComboBox.setItemText(1, translate('AmendThemeForm','Middle')) + self.VerticalComboBox.setItemText(2, translate('AmendThemeForm','Bottom')) + self.TransitionGroupBox.setTitle(translate('AmendThemeForm','Slide Transition')) + self.SlideTransitionCheckedBoxLabel.setText(translate('AmendThemeForm','Transition Active:')) self.ThemeTabWidget.setTabText( self.ThemeTabWidget.indexOf(self.OtherOptionsTab), - self.trUtf8('Other Options')) - self.PreviewGroupBox.setTitle(self.trUtf8('Preview')) + translate('AmendThemeForm','Other Options')) + self.PreviewGroupBox.setTitle(translate('AmendThemeForm','Preview')) diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py index f4a1773c9..3e94d91b6 100644 --- a/openlp/core/ui/plugindialog.py +++ b/openlp/core/ui/plugindialog.py @@ -24,20 +24,21 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_PluginViewDialog(object): - def setupUi(self, PluginViewDialog): - PluginViewDialog.setObjectName(u'PluginViewDialog') - PluginViewDialog.setWindowModality(QtCore.Qt.ApplicationModal) - PluginViewDialog.resize(554, 344) - self.PluginLayout = QtGui.QVBoxLayout(PluginViewDialog) + def setupUi(self, PluginForm): + PluginForm.setObjectName(u'PluginViewDialog') + PluginForm.setWindowModality(QtCore.Qt.ApplicationModal) + PluginForm.resize(554, 344) + self.PluginLayout = QtGui.QVBoxLayout(PluginForm) self.PluginLayout.setSpacing(8) self.PluginLayout.setMargin(8) self.PluginLayout.setObjectName(u'PluginLayout') self.ListLayout = QtGui.QHBoxLayout() self.ListLayout.setSpacing(8) self.ListLayout.setObjectName(u'ListLayout') - self.PluginListWidget = QtGui.QListWidget(PluginViewDialog) + self.PluginListWidget = QtGui.QListWidget(PluginForm) sizePolicy = QtGui.QSizePolicy( QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -48,7 +49,7 @@ class Ui_PluginViewDialog(object): self.PluginListWidget.setMaximumSize(QtCore.QSize(192, 16777215)) self.PluginListWidget.setObjectName(u'PluginListWidget') self.ListLayout.addWidget(self.PluginListWidget) - self.PluginInfoGroupBox = QtGui.QGroupBox(PluginViewDialog) + self.PluginInfoGroupBox = QtGui.QGroupBox(PluginForm) self.PluginInfoGroupBox.setAlignment( QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.PluginInfoGroupBox.setFlat(False) @@ -87,22 +88,22 @@ class Ui_PluginViewDialog(object): 2, QtGui.QFormLayout.FieldRole, self.AboutTextBrowser) self.ListLayout.addWidget(self.PluginInfoGroupBox) self.PluginLayout.addLayout(self.ListLayout) - self.PluginListButtonBox = QtGui.QDialogButtonBox(PluginViewDialog) + self.PluginListButtonBox = QtGui.QDialogButtonBox(PluginForm) self.PluginListButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok) self.PluginListButtonBox.setObjectName(u'PluginListButtonBox') self.PluginLayout.addWidget(self.PluginListButtonBox) - self.retranslateUi(PluginViewDialog) + self.retranslateUi(PluginForm) QtCore.QObject.connect(self.PluginListButtonBox, - QtCore.SIGNAL(u'accepted()'), PluginViewDialog.close) - QtCore.QMetaObject.connectSlotsByName(PluginViewDialog) + QtCore.SIGNAL(u'accepted()'), PluginForm.close) + QtCore.QMetaObject.connectSlotsByName(PluginForm) - def retranslateUi(self, PluginViewDialog): - PluginViewDialog.setWindowTitle(self.trUtf8('Plugin List')) - self.PluginInfoGroupBox.setTitle(self.trUtf8('Plugin Details')) - self.VersionLabel.setText(self.trUtf8('Version:')) - self.VersionNumberLabel.setText(self.trUtf8('TextLabel')) - self.AboutLabel.setText(self.trUtf8('About:')) - self.StatusLabel.setText(self.trUtf8('Status:')) - self.StatusComboBox.setItemText(0, self.trUtf8('Active')) - self.StatusComboBox.setItemText(1, self.trUtf8('Inactive')) + def retranslateUi(self, PluginForm): + PluginForm.setWindowTitle(translate('PluginForm', 'Plugin List')) + self.PluginInfoGroupBox.setTitle(translate('PluginForm', 'Plugin Details')) + self.VersionLabel.setText(translate('PluginForm', 'Version:')) + self.VersionNumberLabel.setText(translate('PluginForm', 'TextLabel')) + self.AboutLabel.setText(translate('PluginForm', 'About:')) + self.StatusLabel.setText(translate('PluginForm', 'Status:')) + self.StatusComboBox.setItemText(0, translate('PluginForm', 'Active')) + self.StatusComboBox.setItemText(1, translate('PluginForm', 'Inactive')) diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py index fbaa52ca1..47691fcdb 100644 --- a/openlp/core/ui/serviceitemeditdialog.py +++ b/openlp/core/ui/serviceitemeditdialog.py @@ -24,12 +24,13 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_ServiceItemEditDialog(object): - def setupUi(self, ServiceItemEditDialog): - ServiceItemEditDialog.setObjectName(u'ServiceItemEditDialog') - ServiceItemEditDialog.resize(386, 272) - self.layoutWidget = QtGui.QWidget(ServiceItemEditDialog) + def setupUi(self, ServiceItemEditForm): + ServiceItemEditForm.setObjectName(u'ServiceItemEditDialog') + ServiceItemEditForm.resize(386, 272) + self.layoutWidget = QtGui.QWidget(ServiceItemEditForm) self.layoutWidget.setGeometry(QtCore.QRect(20, 20, 351, 241)) self.layoutWidget.setObjectName(u'layoutWidget') self.outerLayout = QtGui.QVBoxLayout(self.layoutWidget) @@ -62,12 +63,12 @@ class Ui_ServiceItemEditDialog(object): self.buttonBox.setObjectName(u'buttonBox') self.outerLayout.addWidget(self.buttonBox) - self.retranslateUi(ServiceItemEditDialog) - QtCore.QMetaObject.connectSlotsByName(ServiceItemEditDialog) + self.retranslateUi(ServiceItemEditForm) + QtCore.QMetaObject.connectSlotsByName(ServiceItemEditForm) - def retranslateUi(self, ServiceItemEditDialog): - ServiceItemEditDialog.setWindowTitle(self.trUtf8('Service Item Maintenance')) - self.upButton.setText(self.trUtf8('Up')) - self.deleteButton.setText(self.trUtf8('Delete')) - self.downButton.setText(self.trUtf8('Down')) + def retranslateUi(self, ServiceItemEditForm): + ServiceItemEditForm.setWindowTitle(translate('ServiceItemEditForm', 'Service Item Maintenance')) + self.upButton.setText(translate('ServiceItemEditForm', 'Up')) + self.deleteButton.setText(translate('ServiceItemEditForm', 'Delete')) + self.downButton.setText(translate('ServiceItemEditForm', 'Down')) diff --git a/openlp/core/ui/servicenotedialog.py b/openlp/core/ui/servicenotedialog.py index e1d830c5e..c39b29473 100644 --- a/openlp/core/ui/servicenotedialog.py +++ b/openlp/core/ui/servicenotedialog.py @@ -24,12 +24,13 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_ServiceNoteEdit(object): - def setupUi(self, ServiceNoteEdit): - ServiceNoteEdit.setObjectName(u'ServiceNoteEdit') - ServiceNoteEdit.resize(400, 243) - self.widget = QtGui.QWidget(ServiceNoteEdit) + def setupUi(self, ServiceNoteForm): + ServiceNoteForm.setObjectName(u'ServiceNoteEdit') + ServiceNoteForm.resize(400, 243) + self.widget = QtGui.QWidget(ServiceNoteForm) self.widget.setGeometry(QtCore.QRect(20, 10, 361, 223)) self.widget.setObjectName(u'widget') self.verticalLayout = QtGui.QVBoxLayout(self.widget) @@ -42,8 +43,8 @@ class Ui_ServiceNoteEdit(object): self.buttonBox.setObjectName(u'buttonBox') self.verticalLayout.addWidget(self.buttonBox) - self.retranslateUi(ServiceNoteEdit) - QtCore.QMetaObject.connectSlotsByName(ServiceNoteEdit) + self.retranslateUi(ServiceNoteForm) + QtCore.QMetaObject.connectSlotsByName(ServiceNoteForm) - def retranslateUi(self, ServiceNoteEdit): - ServiceNoteEdit.setWindowTitle(self.trUtf8('Service Item Notes')) + def retranslateUi(self, ServiceNoteForm): + ServiceNoteForm.setWindowTitle(translate('ServiceNoteForm', 'Service Item Notes')) diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py index 7148b0478..fc1ae8ba0 100644 --- a/openlp/core/ui/settingsdialog.py +++ b/openlp/core/ui/settingsdialog.py @@ -24,19 +24,20 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_SettingsDialog(object): - def setupUi(self, SettingsDialog): - SettingsDialog.setObjectName(u'SettingsDialog') - SettingsDialog.resize(724, 502) - self.SettingsLayout = QtGui.QVBoxLayout(SettingsDialog) + def setupUi(self, SettingsForm): + SettingsForm.setObjectName(u'SettingsDialog') + SettingsForm.resize(724, 502) + self.SettingsLayout = QtGui.QVBoxLayout(SettingsForm) self.SettingsLayout.setSpacing(8) self.SettingsLayout.setMargin(8) self.SettingsLayout.setObjectName(u'SettingsLayout') - self.SettingsTabWidget = QtGui.QTabWidget(SettingsDialog) + self.SettingsTabWidget = QtGui.QTabWidget(SettingsForm) self.SettingsTabWidget.setObjectName(u'SettingsTabWidget') self.SettingsLayout.addWidget(self.SettingsTabWidget) - self.ButtonsBox = QtGui.QDialogButtonBox(SettingsDialog) + self.ButtonsBox = QtGui.QDialogButtonBox(SettingsForm) sizePolicy = QtGui.QSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) @@ -50,13 +51,13 @@ class Ui_SettingsDialog(object): QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.ButtonsBox.setObjectName(u'ButtonsBox') self.SettingsLayout.addWidget(self.ButtonsBox) - self.retranslateUi(SettingsDialog) + self.retranslateUi(SettingsForm) self.SettingsTabWidget.setCurrentIndex(0) QtCore.QObject.connect(self.ButtonsBox, - QtCore.SIGNAL(u'accepted()'), SettingsDialog.accept) + QtCore.SIGNAL(u'accepted()'), SettingsForm.accept) QtCore.QObject.connect(self.ButtonsBox, - QtCore.SIGNAL(u'rejected()'), SettingsDialog.reject) - QtCore.QMetaObject.connectSlotsByName(SettingsDialog) + QtCore.SIGNAL(u'rejected()'), SettingsForm.reject) + QtCore.QMetaObject.connectSlotsByName(SettingsForm) - def retranslateUi(self, SettingsDialog): - SettingsDialog.setWindowTitle(self.trUtf8('Settings')) + def retranslateUi(self, SettingsForm): + SettingsForm.setWindowTitle(translate('SettingsForm', 'Settings')) diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index 00203f1f2..cdb455cd3 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -24,15 +24,16 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_AlertDialog(object): - def setupUi(self, AlertDialog): - AlertDialog.setObjectName(u'AlertDialog') - AlertDialog.resize(567, 440) + def setupUi(self, AlertForm): + AlertForm.setObjectName(u'AlertDialog') + AlertForm.resize(567, 440) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - AlertDialog.setWindowIcon(icon) - self.AlertFormLayout = QtGui.QVBoxLayout(AlertDialog) + AlertForm.setWindowIcon(icon) + self.AlertFormLayout = QtGui.QVBoxLayout(AlertForm) self.AlertFormLayout.setSpacing(8) self.AlertFormLayout.setMargin(8) self.AlertFormLayout.setObjectName(u'AlertFormLayout') @@ -40,7 +41,7 @@ class Ui_AlertDialog(object): self.AlertTextLayout.setContentsMargins(0, 0, -1, -1) self.AlertTextLayout.setSpacing(8) self.AlertTextLayout.setObjectName(u'AlertTextLayout') - self.AlertEntryLabel = QtGui.QLabel(AlertDialog) + self.AlertEntryLabel = QtGui.QLabel(AlertForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -48,13 +49,13 @@ class Ui_AlertDialog(object): self.AlertEntryLabel.setSizePolicy(sizePolicy) self.AlertEntryLabel.setObjectName(u'AlertEntryLabel') self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.AlertEntryLabel) - self.AlertParameter = QtGui.QLabel(AlertDialog) + self.AlertParameter = QtGui.QLabel(AlertForm) self.AlertParameter.setObjectName(u'AlertParameter') self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.AlertParameter) - self.ParameterEdit = QtGui.QLineEdit(AlertDialog) + self.ParameterEdit = QtGui.QLineEdit(AlertForm) self.ParameterEdit.setObjectName(u'ParameterEdit') self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.ParameterEdit) - self.AlertTextEdit = QtGui.QLineEdit(AlertDialog) + self.AlertTextEdit = QtGui.QLineEdit(AlertForm) self.AlertTextEdit.setObjectName(u'AlertTextEdit') self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.AlertTextEdit) self.AlertFormLayout.addLayout(self.AlertTextLayout) @@ -62,27 +63,27 @@ class Ui_AlertDialog(object): self.ManagementLayout.setSpacing(8) self.ManagementLayout.setContentsMargins(-1, -1, -1, 0) self.ManagementLayout.setObjectName(u'ManagementLayout') - self.AlertListWidget = QtGui.QListWidget(AlertDialog) + self.AlertListWidget = QtGui.QListWidget(AlertForm) self.AlertListWidget.setAlternatingRowColors(True) self.AlertListWidget.setObjectName(u'AlertListWidget') self.ManagementLayout.addWidget(self.AlertListWidget) self.ManageButtonLayout = QtGui.QVBoxLayout() self.ManageButtonLayout.setSpacing(8) self.ManageButtonLayout.setObjectName(u'ManageButtonLayout') - self.NewButton = QtGui.QPushButton(AlertDialog) + self.NewButton = QtGui.QPushButton(AlertForm) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(u':/general/general_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.NewButton.setIcon(icon1) self.NewButton.setObjectName(u'NewButton') self.ManageButtonLayout.addWidget(self.NewButton) - self.SaveButton = QtGui.QPushButton(AlertDialog) + self.SaveButton = QtGui.QPushButton(AlertForm) self.SaveButton.setEnabled(False) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(u':/general/general_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.SaveButton.setIcon(icon2) self.SaveButton.setObjectName(u'SaveButton') self.ManageButtonLayout.addWidget(self.SaveButton) - self.DeleteButton = QtGui.QPushButton(AlertDialog) + self.DeleteButton = QtGui.QPushButton(AlertForm) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(u':/general/general_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DeleteButton.setIcon(icon3) @@ -98,18 +99,18 @@ class Ui_AlertDialog(object): spacerItem1 = QtGui.QSpacerItem(181, 0, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.AlertButtonLayout.addItem(spacerItem1) - self.DisplayButton = QtGui.QPushButton(AlertDialog) + self.DisplayButton = QtGui.QPushButton(AlertForm) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(u':/general/general_live.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DisplayButton.setIcon(icon4) self.DisplayButton.setObjectName(u'DisplayButton') self.AlertButtonLayout.addWidget(self.DisplayButton) - self.DisplayCloseButton = QtGui.QPushButton(AlertDialog) + self.DisplayCloseButton = QtGui.QPushButton(AlertForm) self.DisplayCloseButton.setIcon(icon4) self.DisplayCloseButton.setObjectName(u'DisplayCloseButton') self.AlertButtonLayout.addWidget(self.DisplayCloseButton) - self.CloseButton = QtGui.QPushButton(AlertDialog) + self.CloseButton = QtGui.QPushButton(AlertForm) icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(u':/system/system_close.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -120,26 +121,26 @@ class Ui_AlertDialog(object): self.AlertEntryLabel.setBuddy(self.AlertTextEdit) self.AlertParameter.setBuddy(self.ParameterEdit) - self.retranslateUi(AlertDialog) - QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AlertDialog.close) - QtCore.QMetaObject.connectSlotsByName(AlertDialog) - AlertDialog.setTabOrder(self.AlertTextEdit, self.ParameterEdit) - AlertDialog.setTabOrder(self.ParameterEdit, self.AlertListWidget) - AlertDialog.setTabOrder(self.AlertListWidget, self.NewButton) - AlertDialog.setTabOrder(self.NewButton, self.SaveButton) - AlertDialog.setTabOrder(self.SaveButton, self.DeleteButton) - AlertDialog.setTabOrder(self.DeleteButton, self.DisplayButton) - AlertDialog.setTabOrder(self.DisplayButton, self.DisplayCloseButton) - AlertDialog.setTabOrder(self.DisplayCloseButton, self.CloseButton) + self.retranslateUi(AlertForm) + QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AlertForm.close) + QtCore.QMetaObject.connectSlotsByName(AlertForm) + AlertForm.setTabOrder(self.AlertTextEdit, self.ParameterEdit) + AlertForm.setTabOrder(self.ParameterEdit, self.AlertListWidget) + AlertForm.setTabOrder(self.AlertListWidget, self.NewButton) + AlertForm.setTabOrder(self.NewButton, self.SaveButton) + AlertForm.setTabOrder(self.SaveButton, self.DeleteButton) + AlertForm.setTabOrder(self.DeleteButton, self.DisplayButton) + AlertForm.setTabOrder(self.DisplayButton, self.DisplayCloseButton) + AlertForm.setTabOrder(self.DisplayCloseButton, self.CloseButton) - def retranslateUi(self, AlertDialog): - AlertDialog.setWindowTitle(self.trUtf8('Alert Message')) - self.AlertEntryLabel.setText(self.trUtf8('Alert &text:')) - self.AlertParameter.setText(self.trUtf8('&Parameter(s):')) - self.NewButton.setText(self.trUtf8('&New')) - self.SaveButton.setText(self.trUtf8('&Save')) - self.DeleteButton.setText(self.trUtf8('&Delete')) - self.DisplayButton.setText(self.trUtf8('Displ&ay')) - self.DisplayCloseButton.setText(self.trUtf8('Display && Cl&ose')) - self.CloseButton.setText(self.trUtf8('&Close')) + def retranslateUi(self, AlertForm): + AlertForm.setWindowTitle(translate('AlertForm', 'Alert Message')) + self.AlertEntryLabel.setText(translate('AlertForm', 'Alert &text:')) + self.AlertParameter.setText(translate('AlertForm', '&Parameter(s):')) + self.NewButton.setText(translate('AlertForm', '&New')) + self.SaveButton.setText(translate('AlertForm', '&Save')) + self.DeleteButton.setText(translate('AlertForm', '&Delete')) + self.DisplayButton.setText(translate('AlertForm', 'Displ&ay')) + self.DisplayCloseButton.setText(translate('AlertForm', 'Display && Cl&ose')) + self.CloseButton.setText(translate('AlertForm', '&Close')) diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index 7b42ed26d..8acfdac21 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -24,14 +24,15 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_BibleImportWizard(object): - def setupUi(self, BibleImportWizard): - BibleImportWizard.setObjectName(u'BibleImportWizard') - BibleImportWizard.resize(550, 386) - BibleImportWizard.setModal(True) - BibleImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) - BibleImportWizard.setOptions( + def setupUi(self, ImportWizardForm): + ImportWizardForm.setObjectName(u'BibleImportWizard') + ImportWizardForm.resize(550, 386) + ImportWizardForm.setModal(True) + ImportWizardForm.setWizardStyle(QtGui.QWizard.ModernStyle) + ImportWizardForm.setOptions( QtGui.QWizard.IndependentPages | \ QtGui.QWizard.NoBackButtonOnStartPage | \ QtGui.QWizard.NoBackButtonOnLastPage) @@ -57,7 +58,7 @@ class Ui_BibleImportWizard(object): spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.WelcomeLayout.addItem(spacerItem1) - BibleImportWizard.addPage(self.WelcomePage) + ImportWizardForm.addPage(self.WelcomePage) self.SelectPage = QtGui.QWizardPage() self.SelectPage.setObjectName(u'SelectPage') self.SelectPageLayout = QtGui.QVBoxLayout(self.SelectPage) @@ -251,7 +252,7 @@ class Ui_BibleImportWizard(object): self.WebDownloadLayout.addWidget(self.WebDownloadTabWidget) self.FormatWidget.addWidget(self.WebDownloadPage) self.SelectPageLayout.addWidget(self.FormatWidget) - BibleImportWizard.addPage(self.SelectPage) + ImportWizardForm.addPage(self.SelectPage) self.LicenseDetailsPage = QtGui.QWizardPage() self.LicenseDetailsPage.setObjectName(u'LicenseDetailsPage') self.LicenseDetailsLayout = QtGui.QFormLayout(self.LicenseDetailsPage) @@ -282,7 +283,7 @@ class Ui_BibleImportWizard(object): self.PermissionEdit.setObjectName(u'PermissionEdit') self.LicenseDetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.PermissionEdit) - BibleImportWizard.addPage(self.LicenseDetailsPage) + ImportWizardForm.addPage(self.LicenseDetailsPage) self.ImportPage = QtGui.QWizardPage() self.ImportPage.setObjectName(u'ImportPage') self.ImportLayout = QtGui.QVBoxLayout(self.ImportPage) @@ -296,58 +297,58 @@ class Ui_BibleImportWizard(object): self.ImportProgressBar.setValue(0) self.ImportProgressBar.setObjectName(u'ImportProgressBar') self.ImportLayout.addWidget(self.ImportProgressBar) - BibleImportWizard.addPage(self.ImportPage) + ImportWizardForm.addPage(self.ImportPage) - self.retranslateUi(BibleImportWizard) + self.retranslateUi(ImportWizardForm) self.FormatWidget.setCurrentIndex(0) self.WebDownloadTabWidget.setCurrentIndex(0) QtCore.QObject.connect(self.FormatComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.FormatWidget.setCurrentIndex) - QtCore.QMetaObject.connectSlotsByName(BibleImportWizard) + QtCore.QMetaObject.connectSlotsByName(ImportWizardForm) - def retranslateUi(self, BibleImportWizard): - BibleImportWizard.setWindowTitle(self.trUtf8('Bible Import Wizard')) + def retranslateUi(self, ImportWizardForm): + ImportWizardForm.setWindowTitle(translate('ImportWizardForm', 'Bible Import Wizard')) self.TitleLabel.setText( u'' + \ - self.trUtf8('Welcome to the Bible Import Wizard') + u'') + translate('ImportWizardForm', 'Welcome to the Bible Import Wizard') + u'') self.InformationLabel.setText( - self.trUtf8('This wizard will help you to import Bibles from a ' + translate('ImportWizardForm', '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.')) - self.SelectPage.setTitle(self.trUtf8('Select Import Source')) + self.SelectPage.setTitle(translate('ImportWizardForm', 'Select Import Source')) self.SelectPage.setSubTitle( - self.trUtf8('Select the import format, and where to import from.')) - self.FormatLabel.setText(self.trUtf8('Format:')) - self.FormatComboBox.setItemText(0, self.trUtf8('OSIS')) - self.FormatComboBox.setItemText(1, self.trUtf8('CSV')) - self.FormatComboBox.setItemText(2, self.trUtf8('OpenSong')) - self.FormatComboBox.setItemText(3, self.trUtf8('Web Download')) - self.OsisLocationLabel.setText(self.trUtf8('File Location:')) - self.BooksLocationLabel.setText(self.trUtf8('Books Location:')) - self.VerseLocationLabel.setText(self.trUtf8('Verse Location:')) - self.OpenSongFileLabel.setText(self.trUtf8('Bible Filename:')) - self.LocationLabel.setText(self.trUtf8('Location:')) - self.LocationComboBox.setItemText(0, self.trUtf8('Crosswalk')) - self.LocationComboBox.setItemText(1, self.trUtf8('BibleGateway')) - self.BibleLabel.setText(self.trUtf8('Bible:')) + translate('ImportWizardForm', 'Select the import format, and where to import from.')) + self.FormatLabel.setText(translate('ImportWizardForm', 'Format:')) + self.FormatComboBox.setItemText(0, translate('ImportWizardForm', 'OSIS')) + self.FormatComboBox.setItemText(1, translate('ImportWizardForm', 'CSV')) + self.FormatComboBox.setItemText(2, translate('ImportWizardForm', 'OpenSong')) + self.FormatComboBox.setItemText(3, translate('ImportWizardForm', 'Web Download')) + self.OsisLocationLabel.setText(translate('ImportWizardForm', 'File Location:')) + self.BooksLocationLabel.setText(translate('ImportWizardForm', 'Books Location:')) + self.VerseLocationLabel.setText(translate('ImportWizardForm', 'Verse Location:')) + self.OpenSongFileLabel.setText(translate('ImportWizardForm', 'Bible Filename:')) + self.LocationLabel.setText(translate('ImportWizardForm', 'Location:')) + self.LocationComboBox.setItemText(0, translate('ImportWizardForm', 'Crosswalk')) + self.LocationComboBox.setItemText(1, translate('ImportWizardForm', 'BibleGateway')) + self.BibleLabel.setText(translate('ImportWizardForm', 'Bible:')) self.WebDownloadTabWidget.setTabText( self.WebDownloadTabWidget.indexOf(self.DownloadOptionsTab), - self.trUtf8('Download Options')) - self.AddressLabel.setText(self.trUtf8('Server:')) - self.UsernameLabel.setText(self.trUtf8('Username:')) - self.PasswordLabel.setText(self.trUtf8('Password:')) + translate('ImportWizardForm', 'Download Options')) + self.AddressLabel.setText(translate('ImportWizardForm', 'Server:')) + self.UsernameLabel.setText(translate('ImportWizardForm', 'Username:')) + self.PasswordLabel.setText(translate('ImportWizardForm', 'Password:')) self.WebDownloadTabWidget.setTabText( self.WebDownloadTabWidget.indexOf(self.ProxyServerTab), - self.trUtf8('Proxy Server (Optional)')) - self.LicenseDetailsPage.setTitle(self.trUtf8('License Details')) + translate('ImportWizardForm', 'Proxy Server (Optional)')) + self.LicenseDetailsPage.setTitle(translate('ImportWizardForm', 'License Details')) self.LicenseDetailsPage.setSubTitle( - self.trUtf8('Set up the Bible\'s license details.')) - self.VersionNameLabel.setText(self.trUtf8('Version Name:')) - self.CopyrightLabel.setText(self.trUtf8('Copyright:')) - self.PermissionLabel.setText(self.trUtf8('Permission:')) - self.ImportPage.setTitle(self.trUtf8('Importing')) + translate('ImportWizardForm', 'Set up the Bible\'s license details.')) + self.VersionNameLabel.setText(translate('ImportWizardForm', 'Version Name:')) + self.CopyrightLabel.setText(translate('ImportWizardForm', 'Copyright:')) + self.PermissionLabel.setText(translate('ImportWizardForm', 'Permission:')) + self.ImportPage.setTitle(translate('ImportWizardForm', 'Importing')) self.ImportPage.setSubTitle( - self.trUtf8('Please wait while your Bible is imported.')) - self.ImportProgressLabel.setText(self.trUtf8('Ready.')) + translate('ImportWizardForm', 'Please wait while your Bible is imported.')) + self.ImportProgressLabel.setText(translate('ImportWizardForm', 'Ready.')) self.ImportProgressBar.setFormat(u'%p%') diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 5f3fe7614..79380b9ba 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -24,35 +24,36 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_customEditDialog(object): - def setupUi(self, customEditDialog): - customEditDialog.setObjectName(u'customEditDialog') - customEditDialog.resize(590, 541) + def setupUi(self, EditCustomForm): + EditCustomForm.setObjectName(u'customEditDialog') + EditCustomForm.resize(590, 541) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - customEditDialog.setWindowIcon(icon) - self.gridLayout = QtGui.QGridLayout(customEditDialog) + EditCustomForm.setWindowIcon(icon) + self.gridLayout = QtGui.QGridLayout(EditCustomForm) self.gridLayout.setObjectName(u'gridLayout') self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(u'horizontalLayout') - self.TitleLabel = QtGui.QLabel(customEditDialog) + self.TitleLabel = QtGui.QLabel(EditCustomForm) self.TitleLabel.setObjectName(u'TitleLabel') self.horizontalLayout.addWidget(self.TitleLabel) - self.TitleEdit = QtGui.QLineEdit(customEditDialog) + self.TitleEdit = QtGui.QLineEdit(EditCustomForm) self.TitleEdit.setObjectName(u'TitleEdit') self.horizontalLayout.addWidget(self.TitleEdit) self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.VerseListView = QtGui.QListWidget(customEditDialog) + self.VerseListView = QtGui.QListWidget(EditCustomForm) self.VerseListView.setAlternatingRowColors(True) self.VerseListView.setObjectName(u'VerseListView') self.horizontalLayout_4.addWidget(self.VerseListView) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName(u'verticalLayout') - self.UpButton = QtGui.QPushButton(customEditDialog) + self.UpButton = QtGui.QPushButton(EditCustomForm) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(u':/services/service_up.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -62,7 +63,7 @@ class Ui_customEditDialog(object): spacerItem = QtGui.QSpacerItem(20, 128, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) - self.DownButton = QtGui.QPushButton(customEditDialog) + self.DownButton = QtGui.QPushButton(EditCustomForm) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(u':/services/service_down.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -71,7 +72,7 @@ class Ui_customEditDialog(object): self.verticalLayout.addWidget(self.DownButton) self.horizontalLayout_4.addLayout(self.verticalLayout) self.gridLayout.addLayout(self.horizontalLayout_4, 1, 0, 1, 1) - self.EditWidget = QtGui.QWidget(customEditDialog) + self.EditWidget = QtGui.QWidget(EditCustomForm) self.EditWidget.setObjectName(u'EditWidget') self.EditLayout_3 = QtGui.QHBoxLayout(self.EditWidget) self.EditLayout_3.setSpacing(8) @@ -112,63 +113,63 @@ class Ui_customEditDialog(object): self.gridLayout.addWidget(self.EditWidget, 2, 0, 1, 1) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ThemeLabel = QtGui.QLabel(customEditDialog) + self.ThemeLabel = QtGui.QLabel(EditCustomForm) self.ThemeLabel.setObjectName(u'ThemeLabel') self.horizontalLayout_3.addWidget(self.ThemeLabel) - self.ThemeComboBox = QtGui.QComboBox(customEditDialog) + self.ThemeComboBox = QtGui.QComboBox(EditCustomForm) self.ThemeComboBox.setObjectName(u'ThemeComboBox') self.horizontalLayout_3.addWidget(self.ThemeComboBox) self.gridLayout.addLayout(self.horizontalLayout_3, 3, 0, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.CreditLabel = QtGui.QLabel(customEditDialog) + self.CreditLabel = QtGui.QLabel(EditCustomForm) self.CreditLabel.setObjectName(u'CreditLabel') self.horizontalLayout_2.addWidget(self.CreditLabel) - self.CreditEdit = QtGui.QLineEdit(customEditDialog) + self.CreditEdit = QtGui.QLineEdit(EditCustomForm) self.CreditEdit.setObjectName(u'CreditEdit') self.horizontalLayout_2.addWidget(self.CreditEdit) self.gridLayout.addLayout(self.horizontalLayout_2, 4, 0, 1, 1) - self.buttonBox = QtGui.QDialogButtonBox(customEditDialog) + self.buttonBox = QtGui.QDialogButtonBox(EditCustomForm) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save) self.buttonBox.setObjectName(u'buttonBox') self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 1) - self.retranslateUi(customEditDialog) + self.retranslateUi(EditCustomForm) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'), - customEditDialog.accept) + EditCustomForm.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), - customEditDialog.closePressed) - QtCore.QMetaObject.connectSlotsByName(customEditDialog) - customEditDialog.setTabOrder(self.TitleEdit, self.VerseTextEdit) - customEditDialog.setTabOrder(self.VerseTextEdit, self.AddButton) - customEditDialog.setTabOrder(self.AddButton, self.VerseListView) - customEditDialog.setTabOrder(self.VerseListView, self.EditButton) - customEditDialog.setTabOrder(self.EditButton, self.EditAllButton) - customEditDialog.setTabOrder(self.EditAllButton, self.SaveButton) - customEditDialog.setTabOrder(self.SaveButton, self.DeleteButton) - customEditDialog.setTabOrder(self.DeleteButton, self.CreditEdit) - customEditDialog.setTabOrder(self.CreditEdit, self.UpButton) - customEditDialog.setTabOrder(self.UpButton, self.DownButton) - customEditDialog.setTabOrder(self.DownButton, self.ThemeComboBox) + EditCustomForm.closePressed) + QtCore.QMetaObject.connectSlotsByName(EditCustomForm) + EditCustomForm.setTabOrder(self.TitleEdit, self.VerseTextEdit) + EditCustomForm.setTabOrder(self.VerseTextEdit, self.AddButton) + EditCustomForm.setTabOrder(self.AddButton, self.VerseListView) + EditCustomForm.setTabOrder(self.VerseListView, self.EditButton) + EditCustomForm.setTabOrder(self.EditButton, self.EditAllButton) + EditCustomForm.setTabOrder(self.EditAllButton, self.SaveButton) + EditCustomForm.setTabOrder(self.SaveButton, self.DeleteButton) + EditCustomForm.setTabOrder(self.DeleteButton, self.CreditEdit) + EditCustomForm.setTabOrder(self.CreditEdit, self.UpButton) + EditCustomForm.setTabOrder(self.UpButton, self.DownButton) + EditCustomForm.setTabOrder(self.DownButton, self.ThemeComboBox) - def retranslateUi(self, customEditDialog): - customEditDialog.setWindowTitle(self.trUtf8('Edit Custom Slides')) - self.UpButton.setToolTip(self.trUtf8('Move slide Up 1')) - self.DownButton.setToolTip(self.trUtf8('Move slide down 1')) - self.TitleLabel.setText(self.trUtf8('Title:')) - self.AddButton.setText(self.trUtf8('Add New')) - self.AddButton.setToolTip(self.trUtf8('Add new slide at bottom')) - self.EditButton.setText(self.trUtf8('Edit')) - self.EditButton.setToolTip(self.trUtf8('Edit selected slide')) - self.EditAllButton.setText(self.trUtf8('Edit All')) - self.EditAllButton.setToolTip(self.trUtf8('Edit all slides')) - self.SaveButton.setText(self.trUtf8('Save')) - self.SaveButton.setToolTip(self.trUtf8('Replace edited slide')) - self.DeleteButton.setText(self.trUtf8('Delete')) - self.DeleteButton.setToolTip(self.trUtf8('Delete selected slide')) - self.ClearButton.setText(self.trUtf8('Clear')) - self.ClearButton.setToolTip(self.trUtf8('Clear edit area')) - self.SplitButton.setText(self.trUtf8('Split Slide')) - self.SplitButton.setToolTip(self.trUtf8('Add slide split')) - self.ThemeLabel.setText(self.trUtf8('Theme:')) - self.CreditLabel.setText(self.trUtf8('Credits:')) + def retranslateUi(self, EditCustomForm): + EditCustomForm.setWindowTitle(translate('EditCustomForm', 'Edit Custom Slides')) + self.UpButton.setToolTip(translate('EditCustomForm', 'Move slide Up 1')) + self.DownButton.setToolTip(translate('EditCustomForm', 'Move slide down 1')) + self.TitleLabel.setText(translate('EditCustomForm', 'Title:')) + self.AddButton.setText(translate('EditCustomForm', 'Add New')) + self.AddButton.setToolTip(translate('EditCustomForm', 'Add new slide at bottom')) + self.EditButton.setText(translate('EditCustomForm', 'Edit')) + self.EditButton.setToolTip(translate('EditCustomForm', 'Edit selected slide')) + self.EditAllButton.setText(translate('EditCustomForm', 'Edit All')) + self.EditAllButton.setToolTip(translate('EditCustomForm', 'Edit all slides')) + self.SaveButton.setText(translate('EditCustomForm', 'Save')) + self.SaveButton.setToolTip(translate('EditCustomForm', 'Replace edited slide')) + self.DeleteButton.setText(translate('EditCustomForm', 'Delete')) + self.DeleteButton.setToolTip(translate('EditCustomForm', 'Delete selected slide')) + self.ClearButton.setText(translate('EditCustomForm', 'Clear')) + self.ClearButton.setToolTip(translate('EditCustomForm', 'Clear edit area')) + self.SplitButton.setText(translate('EditCustomForm', 'Split Slide')) + self.SplitButton.setToolTip(translate('EditCustomForm', 'Add slide split')) + self.ThemeLabel.setText(translate('EditCustomForm', 'Theme:')) + self.CreditLabel.setText(translate('EditCustomForm', 'Credits:')) diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index ca28f461c..10bef469f 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -24,40 +24,41 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_AuthorsDialog(object): - def setupUi(self, AuthorsDialog): - AuthorsDialog.setObjectName(u'AuthorsDialog') - AuthorsDialog.resize(393, 147) - self.AuthorsLayout = QtGui.QFormLayout(AuthorsDialog) + def setupUi(self, AuthorsForm): + AuthorsForm.setObjectName(u'AuthorsDialog') + AuthorsForm.resize(393, 147) + self.AuthorsLayout = QtGui.QFormLayout(AuthorsForm) self.AuthorsLayout.setMargin(8) self.AuthorsLayout.setSpacing(8) self.AuthorsLayout.setObjectName(u'AuthorsLayout') - self.FirstNameLabel = QtGui.QLabel(AuthorsDialog) + self.FirstNameLabel = QtGui.QLabel(AuthorsForm) self.FirstNameLabel.setObjectName(u'FirstNameLabel') self.AuthorsLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.FirstNameLabel) - self.FirstNameEdit = QtGui.QLineEdit(AuthorsDialog) + self.FirstNameEdit = QtGui.QLineEdit(AuthorsForm) self.FirstNameEdit.setObjectName(u'FirstNameEdit') self.AuthorsLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.FirstNameEdit) - self.LastNameLabel = QtGui.QLabel(AuthorsDialog) + self.LastNameLabel = QtGui.QLabel(AuthorsForm) self.LastNameLabel.setObjectName(u'LastNameLabel') self.AuthorsLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.LastNameLabel) - self.LastNameEdit = QtGui.QLineEdit(AuthorsDialog) + self.LastNameEdit = QtGui.QLineEdit(AuthorsForm) self.LastNameEdit.setObjectName(u'LastNameEdit') self.AuthorsLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.LastNameEdit) - self.DisplayLabel = QtGui.QLabel(AuthorsDialog) + self.DisplayLabel = QtGui.QLabel(AuthorsForm) self.DisplayLabel.setObjectName(u'DisplayLabel') self.AuthorsLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.DisplayLabel) - self.DisplayEdit = QtGui.QLineEdit(AuthorsDialog) + self.DisplayEdit = QtGui.QLineEdit(AuthorsForm) self.DisplayEdit.setObjectName(u'DisplayEdit') self.AuthorsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.DisplayEdit) - self.AuthorButtonBox = QtGui.QDialogButtonBox(AuthorsDialog) + self.AuthorButtonBox = QtGui.QDialogButtonBox(AuthorsForm) self.AuthorButtonBox.setOrientation(QtCore.Qt.Horizontal) self.AuthorButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save) @@ -65,15 +66,15 @@ class Ui_AuthorsDialog(object): self.AuthorsLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.AuthorButtonBox) - self.retranslateUi(AuthorsDialog) + self.retranslateUi(AuthorsForm) QtCore.QObject.connect(self.AuthorButtonBox, - QtCore.SIGNAL(u'accepted()'), AuthorsDialog.accept) + QtCore.SIGNAL(u'accepted()'), AuthorsForm.accept) QtCore.QObject.connect(self.AuthorButtonBox, - QtCore.SIGNAL(u'rejected()'), AuthorsDialog.reject) - QtCore.QMetaObject.connectSlotsByName(AuthorsDialog) + QtCore.SIGNAL(u'rejected()'), AuthorsForm.reject) + QtCore.QMetaObject.connectSlotsByName(AuthorsForm) - def retranslateUi(self, AuthorsDialog): - AuthorsDialog.setWindowTitle(self.trUtf8('Author Maintenance')) - self.DisplayLabel.setText(self.trUtf8('Display name:')) - self.FirstNameLabel.setText(self.trUtf8('First name:')) - self.LastNameLabel.setText(self.trUtf8('Last name:')) + def retranslateUi(self, AuthorsForm): + AuthorsForm.setWindowTitle(translate('AuthorsForm', 'Author Maintenance')) + self.DisplayLabel.setText(translate('AuthorsForm', 'Display name:')) + self.FirstNameLabel.setText(translate('AuthorsForm', 'First name:')) + self.LastNameLabel.setText(translate('AuthorsForm', 'Last name:')) diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index ae0308c80..04df954ec 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -24,20 +24,21 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate from openlp.core.lib import build_icon class Ui_EditSongDialog(object): - def setupUi(self, EditSongDialog): - EditSongDialog.setObjectName(u'EditSongDialog') - EditSongDialog.resize(645, 417) + def setupUi(self, EditSongForm): + EditSongForm.setObjectName(u'EditSongDialog') + EditSongForm.resize(645, 417) icon = build_icon(u':/icon/openlp.org-icon-32.bmp') - EditSongDialog.setWindowIcon(icon) - EditSongDialog.setModal(True) - self.verticalLayout = QtGui.QVBoxLayout(EditSongDialog) + EditSongForm.setWindowIcon(icon) + EditSongForm.setModal(True) + self.verticalLayout = QtGui.QVBoxLayout(EditSongForm) self.verticalLayout.setMargin(8) self.verticalLayout.setObjectName(u'verticalLayout') - self.SongTabWidget = QtGui.QTabWidget(EditSongDialog) + self.SongTabWidget = QtGui.QTabWidget(EditSongForm) self.SongTabWidget.setObjectName(u'SongTabWidget') self.LyricsTab = QtGui.QWidget() self.LyricsTab.setObjectName(u'LyricsTab') @@ -379,75 +380,75 @@ class Ui_EditSongDialog(object): self.ThemeTabLayout.addItem(spacerItem5) self.SongTabWidget.addTab(self.ThemeTab, u'') self.verticalLayout.addWidget(self.SongTabWidget) - self.ButtonBox = QtGui.QDialogButtonBox(EditSongDialog) + self.ButtonBox = QtGui.QDialogButtonBox(EditSongForm) self.ButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Save) self.ButtonBox.setObjectName(u'ButtonBox') self.verticalLayout.addWidget(self.ButtonBox) - self.retranslateUi(EditSongDialog) + self.retranslateUi(EditSongForm) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'rejected()'), EditSongDialog.closePressed) + QtCore.SIGNAL(u'rejected()'), EditSongForm.closePressed) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'accepted()'), EditSongDialog.accept) - QtCore.QMetaObject.connectSlotsByName(EditSongDialog) - EditSongDialog.setTabOrder(self.SongTabWidget, self.TitleEditItem) - EditSongDialog.setTabOrder(self.TitleEditItem, self.AlternativeEdit) - EditSongDialog.setTabOrder(self.AlternativeEdit, self.VerseListWidget) - EditSongDialog.setTabOrder(self.VerseListWidget, self.VerseAddButton) - EditSongDialog.setTabOrder(self.VerseAddButton, self.VerseEditButton) - EditSongDialog.setTabOrder(self.VerseEditButton, self.VerseEditAllButton) - EditSongDialog.setTabOrder(self.VerseEditAllButton, self.VerseDeleteButton) - EditSongDialog.setTabOrder(self.VerseDeleteButton, self.VerseOrderEdit) - EditSongDialog.setTabOrder(self.VerseOrderEdit, self.AuthorsSelectionComboItem) - EditSongDialog.setTabOrder(self.AuthorsSelectionComboItem, self.AuthorAddButton) - EditSongDialog.setTabOrder(self.AuthorAddButton, self.AuthorsListView) - EditSongDialog.setTabOrder(self.AuthorsListView, self.AuthorRemoveButton) - EditSongDialog.setTabOrder(self.AuthorRemoveButton, self.MaintenanceButton) - EditSongDialog.setTabOrder(self.MaintenanceButton, self.SongTopicCombo) - EditSongDialog.setTabOrder(self.SongTopicCombo, self.TopicAddButton) - EditSongDialog.setTabOrder(self.TopicAddButton, self.TopicsListView) - EditSongDialog.setTabOrder(self.TopicsListView, self.TopicRemoveButton) - EditSongDialog.setTabOrder(self.TopicRemoveButton, self.SongbookCombo) - EditSongDialog.setTabOrder(self.SongbookCombo, self.ThemeSelectionComboItem) - EditSongDialog.setTabOrder(self.ThemeSelectionComboItem, self.ThemeAddButton) - EditSongDialog.setTabOrder(self.ThemeAddButton, self.CopyrightEditItem) - EditSongDialog.setTabOrder(self.CopyrightEditItem, self.CopyrightInsertButton) - EditSongDialog.setTabOrder(self.CopyrightInsertButton, self.CCLNumberEdit) - EditSongDialog.setTabOrder(self.CCLNumberEdit, self.CommentsEdit) - EditSongDialog.setTabOrder(self.CommentsEdit, self.ButtonBox) + QtCore.SIGNAL(u'accepted()'), EditSongForm.accept) + QtCore.QMetaObject.connectSlotsByName(EditSongForm) + EditSongForm.setTabOrder(self.SongTabWidget, self.TitleEditItem) + EditSongForm.setTabOrder(self.TitleEditItem, self.AlternativeEdit) + EditSongForm.setTabOrder(self.AlternativeEdit, self.VerseListWidget) + EditSongForm.setTabOrder(self.VerseListWidget, self.VerseAddButton) + EditSongForm.setTabOrder(self.VerseAddButton, self.VerseEditButton) + EditSongForm.setTabOrder(self.VerseEditButton, self.VerseEditAllButton) + EditSongForm.setTabOrder(self.VerseEditAllButton, self.VerseDeleteButton) + EditSongForm.setTabOrder(self.VerseDeleteButton, self.VerseOrderEdit) + EditSongForm.setTabOrder(self.VerseOrderEdit, self.AuthorsSelectionComboItem) + EditSongForm.setTabOrder(self.AuthorsSelectionComboItem, self.AuthorAddButton) + EditSongForm.setTabOrder(self.AuthorAddButton, self.AuthorsListView) + EditSongForm.setTabOrder(self.AuthorsListView, self.AuthorRemoveButton) + EditSongForm.setTabOrder(self.AuthorRemoveButton, self.MaintenanceButton) + EditSongForm.setTabOrder(self.MaintenanceButton, self.SongTopicCombo) + EditSongForm.setTabOrder(self.SongTopicCombo, self.TopicAddButton) + EditSongForm.setTabOrder(self.TopicAddButton, self.TopicsListView) + EditSongForm.setTabOrder(self.TopicsListView, self.TopicRemoveButton) + EditSongForm.setTabOrder(self.TopicRemoveButton, self.SongbookCombo) + EditSongForm.setTabOrder(self.SongbookCombo, self.ThemeSelectionComboItem) + EditSongForm.setTabOrder(self.ThemeSelectionComboItem, self.ThemeAddButton) + EditSongForm.setTabOrder(self.ThemeAddButton, self.CopyrightEditItem) + EditSongForm.setTabOrder(self.CopyrightEditItem, self.CopyrightInsertButton) + EditSongForm.setTabOrder(self.CopyrightInsertButton, self.CCLNumberEdit) + EditSongForm.setTabOrder(self.CCLNumberEdit, self.CommentsEdit) + EditSongForm.setTabOrder(self.CommentsEdit, self.ButtonBox) - def retranslateUi(self, EditSongDialog): - EditSongDialog.setWindowTitle(self.trUtf8('Song Editor')) - self.TitleLabel.setText(self.trUtf8('Title:')) - self.AlternativeTitleLabel.setText(self.trUtf8('Alternative Title:')) - self.LyricsLabel.setText(self.trUtf8('Lyrics:')) - self.VerseOrderLabel.setText(self.trUtf8('Verse Order:')) - self.VerseAddButton.setText(self.trUtf8('Add')) - self.VerseEditButton.setText(self.trUtf8('Edit')) - self.VerseEditAllButton.setText(self.trUtf8('Edit All')) - self.VerseDeleteButton.setText(self.trUtf8('Delete')) + def retranslateUi(self, EditSongForm): + EditSongForm.setWindowTitle(translate('EditSongForm', 'Song Editor')) + self.TitleLabel.setText(translate('EditSongForm', 'Title:')) + self.AlternativeTitleLabel.setText(translate('EditSongForm', 'Alternative Title:')) + self.LyricsLabel.setText(translate('EditSongForm', 'Lyrics:')) + self.VerseOrderLabel.setText(translate('EditSongForm', 'Verse Order:')) + self.VerseAddButton.setText(translate('EditSongForm', 'Add')) + self.VerseEditButton.setText(translate('EditSongForm', 'Edit')) + self.VerseEditAllButton.setText(translate('EditSongForm', 'Edit All')) + self.VerseDeleteButton.setText(translate('EditSongForm', 'Delete')) self.SongTabWidget.setTabText( self.SongTabWidget.indexOf(self.LyricsTab), - self.trUtf8('Title && Lyrics')) - self.AuthorsGroupBox.setTitle(self.trUtf8('Authors')) - self.AuthorAddButton.setText(self.trUtf8('&Add to Song')) - self.AuthorRemoveButton.setText(self.trUtf8('&Remove')) + translate('EditSongForm', 'Title && Lyrics')) + self.AuthorsGroupBox.setTitle(translate('EditSongForm', 'Authors')) + self.AuthorAddButton.setText(translate('EditSongForm', '&Add to Song')) + self.AuthorRemoveButton.setText(translate('EditSongForm', '&Remove')) self.MaintenanceButton.setText( - self.trUtf8('&Manage Authors, Topics, Books')) - self.TopicGroupBox.setTitle(self.trUtf8('Topic')) - self.TopicAddButton.setText(self.trUtf8('A&dd to Song')) - self.TopicRemoveButton.setText(self.trUtf8('R&emove')) - self.SongBookGroup.setTitle(self.trUtf8('Song Book')) + translate('EditSongForm', '&Manage Authors, Topics, Books')) + self.TopicGroupBox.setTitle(translate('EditSongForm', 'Topic')) + self.TopicAddButton.setText(translate('EditSongForm', 'A&dd to Song')) + self.TopicRemoveButton.setText(translate('EditSongForm', 'R&emove')) + self.SongBookGroup.setTitle(translate('EditSongForm', 'Song Book')) self.SongTabWidget.setTabText( self.SongTabWidget.indexOf(self.AuthorsTab), - self.trUtf8('Authors, Topics && Book')) - self.ThemeGroupBox.setTitle(self.trUtf8('Theme')) - self.ThemeAddButton.setText(self.trUtf8('Add a Theme')) - self.CopyrightGroupBox.setTitle(self.trUtf8('Copyright Information')) - self.CopyrightInsertButton.setText(self.trUtf8(u'\xa9')) - self.CCLILabel.setText(self.trUtf8('CCLI Number:')) - self.CommentsGroupBox.setTitle(self.trUtf8('Comments')) + translate('EditSongForm', 'Authors, Topics && Book')) + self.ThemeGroupBox.setTitle(translate('EditSongForm', 'Theme')) + self.ThemeAddButton.setText(translate('EditSongForm', 'Add a Theme')) + self.CopyrightGroupBox.setTitle(translate('EditSongForm', 'Copyright Information')) + self.CopyrightInsertButton.setText(translate('EditSongForm', u'\xa9')) + self.CCLILabel.setText(translate('EditSongForm', 'CCLI Number:')) + self.CommentsGroupBox.setTitle(translate('EditSongForm', 'Comments')) self.SongTabWidget.setTabText( self.SongTabWidget.indexOf(self.ThemeTab), - self.trUtf8('Theme, Copyright Info && Comments')) + translate('EditSongForm', 'Theme, Copyright Info && Comments')) diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 7829e2c27..40a75b073 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -24,13 +24,14 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_EditVerseDialog(object): - def setupUi(self, EditVerseDialog): - EditVerseDialog.setObjectName(u'EditVerseDialog') - EditVerseDialog.resize(500, 521) - EditVerseDialog.setModal(True) - self.layoutWidget = QtGui.QWidget(EditVerseDialog) + def setupUi(self, EditVerseForm): + EditVerseForm.setObjectName(u'EditVerseDialog') + EditVerseForm.resize(500, 521) + EditVerseForm.setModal(True) + self.layoutWidget = QtGui.QWidget(EditVerseForm) self.layoutWidget.setGeometry(QtCore.QRect(11, 1, 471, 491)) self.layoutWidget.setObjectName(u'layoutWidget') self.verticalLayout_3 = QtGui.QVBoxLayout(self.layoutWidget) @@ -103,27 +104,27 @@ class Ui_EditVerseDialog(object): self.ButtonBox.setObjectName(u'ButtonBox') self.verticalLayout_3.addWidget(self.ButtonBox) - self.retranslateUi(EditVerseDialog) - QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), EditVerseDialog.accept) - QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), EditVerseDialog.reject) - QtCore.QMetaObject.connectSlotsByName(EditVerseDialog) + self.retranslateUi(EditVerseForm) + QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), EditVerseForm.accept) + QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), EditVerseForm.reject) + QtCore.QMetaObject.connectSlotsByName(EditVerseForm) - def retranslateUi(self, EditVerseDialog): - EditVerseDialog.setWindowTitle(self.trUtf8('Edit Verse')) - self.VerseTypeLabel.setText(self.trUtf8('Verse Type')) - self.VerseListComboBox.setItemText(0, self.trUtf8('Intro')) - self.VerseListComboBox.setItemText(1, self.trUtf8('Verse')) - self.VerseListComboBox.setItemText(2, self.trUtf8('Pre-Chorus')) - self.VerseListComboBox.setItemText(3, self.trUtf8('Chorus')) - self.VerseListComboBox.setItemText(4, self.trUtf8('Bridge')) - self.VerseListComboBox.setItemText(5, self.trUtf8('Ending')) - self.VerseListComboBox.setItemText(6, self.trUtf8('Other')) - self.VerseNumberLabel.setText(self.trUtf8('Number')) - self.addBridge.setText(self.trUtf8('Bridge')) - self.addVerse.setText(self.trUtf8('Verse')) - self.addChorus.setText(self.trUtf8('Chorus')) - self.addPreChorus.setText(self.trUtf8('Pre-Chorus')) - self.addIntro.setText(self.trUtf8('Intro')) - self.addOther.setText(self.trUtf8('Other')) - self.addEnding.setText(self.trUtf8('Ending')) + def retranslateUi(self, EditVerseForm): + EditVerseForm.setWindowTitle(translate('EditVerseForm', 'Edit Verse')) + self.VerseTypeLabel.setText(translate('EditVerseForm', 'Verse Type')) + self.VerseListComboBox.setItemText(0, translate('EditVerseForm', 'Intro')) + self.VerseListComboBox.setItemText(1, translate('EditVerseForm', 'Verse')) + self.VerseListComboBox.setItemText(2, translate('EditVerseForm', 'Pre-Chorus')) + self.VerseListComboBox.setItemText(3, translate('EditVerseForm', 'Chorus')) + self.VerseListComboBox.setItemText(4, translate('EditVerseForm', 'Bridge')) + self.VerseListComboBox.setItemText(5, translate('EditVerseForm', 'Ending')) + self.VerseListComboBox.setItemText(6, translate('EditVerseForm', 'Other')) + self.VerseNumberLabel.setText(translate('EditVerseForm', 'Number')) + self.addBridge.setText(translate('EditVerseForm', 'Bridge')) + self.addVerse.setText(translate('EditVerseForm', 'Verse')) + self.addChorus.setText(translate('EditVerseForm', 'Chorus')) + self.addPreChorus.setText(translate('EditVerseForm', 'Pre-Chorus')) + self.addIntro.setText(translate('EditVerseForm', 'Intro')) + self.addOther.setText(translate('EditVerseForm', 'Other')) + self.addEnding.setText(translate('EditVerseForm', 'Ending')) diff --git a/openlp/plugins/songs/forms/openlpexportdialog.py b/openlp/plugins/songs/forms/openlpexportdialog.py index 2236d9ed3..82934e19d 100644 --- a/openlp/plugins/songs/forms/openlpexportdialog.py +++ b/openlp/plugins/songs/forms/openlpexportdialog.py @@ -24,18 +24,19 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_OpenLPExportDialog(object): - def setupUi(self, OpenLPExportDialog): - OpenLPExportDialog.setObjectName(u'OpenLPExportDialog') - OpenLPExportDialog.resize(473, 459) + def setupUi(self, OpenLPExportForm): + OpenLPExportForm.setObjectName(u'OpenLPExportDialog') + OpenLPExportForm.resize(473, 459) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenLPExportDialog.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportDialog) + OpenLPExportForm.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportForm) self.verticalLayout_5.setMargin(8) self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(OpenLPExportDialog) + self.ExportFileWidget = QtGui.QWidget(OpenLPExportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -59,7 +60,7 @@ class Ui_OpenLPExportDialog(object): self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenLPExportDialog) + self.SongListFrame = QtGui.QFrame(OpenLPExportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -242,7 +243,7 @@ class Ui_OpenLPExportDialog(object): self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportDialog) + self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -261,7 +262,7 @@ class Ui_OpenLPExportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenLPExportDialog) + self.ButtonBarWidget = QtGui.QWidget(OpenLPExportForm) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -277,29 +278,29 @@ class Ui_OpenLPExportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout_5.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenLPExportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportDialog.close) + self.retranslateUi(OpenLPExportForm) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportForm.close) QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog) + QtCore.QMetaObject.connectSlotsByName(OpenLPExportForm) - def retranslateUi(self, OpenLPExportDialog): - OpenLPExportDialog.setWindowTitle(self.trUtf8('openlp.org Song Exporter')) - self.ExportFileLabel.setText(self.trUtf8('Select openlp.org export filename:')) - self.ExportListLabel.setText(self.trUtf8('Full Song List')) - self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title')) - self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author')) - self.ExportSelectAllPushButton.setText(self.trUtf8('Select All')) - self.ExportFilterComboBox.setItemText(0, self.trUtf8('Lyrics')) - self.ExportFilterComboBox.setItemText(1, self.trUtf8('Title')) - self.ExportFilterComboBox.setItemText(2, self.trUtf8('Author')) - self.SelectedListLabel.setText(self.trUtf8('Song Export List')) - self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author')) - self.SelectedSelectAllPushButton.setText(self.trUtf8('Select All')) - self.SelectedRemoveSelectedButton.setText(self.trUtf8('Remove Selected')) - self.ProgressGroupBox.setTitle(self.trUtf8('Progress:')) - self.ProgressLabel.setText(self.trUtf8('Ready to export')) - self.ExportPushButton.setText(self.trUtf8('Export')) - self.ClosePushButton.setText(self.trUtf8('Close')) + def retranslateUi(self, OpenLPExportForm): + OpenLPExportForm.setWindowTitle(translate('OpenLPExportForm', 'openlp.org Song Exporter')) + self.ExportFileLabel.setText(translate('OpenLPExportForm', 'Select openlp.org export filename:')) + self.ExportListLabel.setText(translate('OpenLPExportForm', 'Full Song List')) + self.ExportListTable.horizontalHeaderItem(0).setText(translate('OpenLPExportForm', 'Song Title')) + self.ExportListTable.horizontalHeaderItem(1).setText(translate('OpenLPExportForm', 'Author')) + self.ExportSelectAllPushButton.setText(translate('OpenLPExportForm', 'Select All')) + self.ExportFilterComboBox.setItemText(0, translate('OpenLPExportForm', 'Lyrics')) + self.ExportFilterComboBox.setItemText(1, translate('OpenLPExportForm', 'Title')) + self.ExportFilterComboBox.setItemText(2, translate('OpenLPExportForm', 'Author')) + self.SelectedListLabel.setText(translate('OpenLPExportForm', 'Song Export List')) + self.SelectedListTable.horizontalHeaderItem(0).setText(translate('OpenLPExportForm', 'Song Title')) + self.SelectedListTable.horizontalHeaderItem(1).setText(translate('OpenLPExportForm', 'Author')) + self.SelectedSelectAllPushButton.setText(translate('OpenLPExportForm', 'Select All')) + self.SelectedRemoveSelectedButton.setText(translate('OpenLPExportForm', 'Remove Selected')) + self.ProgressGroupBox.setTitle(translate('OpenLPExportForm', 'Progress:')) + self.ProgressLabel.setText(translate('OpenLPExportForm', 'Ready to export')) + self.ExportPushButton.setText(translate('OpenLPExportForm', 'Export')) + self.ClosePushButton.setText(translate('OpenLPExportForm', 'Close')) diff --git a/openlp/plugins/songs/forms/openlpimportdialog.py b/openlp/plugins/songs/forms/openlpimportdialog.py index 61732d978..455b6347c 100644 --- a/openlp/plugins/songs/forms/openlpimportdialog.py +++ b/openlp/plugins/songs/forms/openlpimportdialog.py @@ -24,18 +24,19 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_OpenLPImportDialog(object): - def setupUi(self, OpenLPImportDialog): - OpenLPImportDialog.setObjectName(u'OpenLPImportDialog') - OpenLPImportDialog.resize(473, 459) + def setupUi(self, OpenLPImportForm): + OpenLPImportForm.setObjectName(u'OpenLPImportDialog') + OpenLPImportForm.resize(473, 459) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenLPImportDialog.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportDialog) + OpenLPImportForm.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportForm) self.verticalLayout_5.setMargin(8) self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ImportFileWidget = QtGui.QWidget(OpenLPImportDialog) + self.ImportFileWidget = QtGui.QWidget(OpenLPImportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -59,7 +60,7 @@ class Ui_OpenLPImportDialog(object): self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) self.verticalLayout_5.addWidget(self.ImportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenLPImportDialog) + self.SongListFrame = QtGui.QFrame(OpenLPImportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -242,7 +243,7 @@ class Ui_OpenLPImportDialog(object): self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportDialog) + self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -261,7 +262,7 @@ class Ui_OpenLPImportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenLPImportDialog) + self.ButtonBarWidget = QtGui.QWidget(OpenLPImportForm) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -277,29 +278,29 @@ class Ui_OpenLPImportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout_5.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenLPImportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportDialog.close) + self.retranslateUi(OpenLPImportForm) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportForm.close) QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll) QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog) + QtCore.QMetaObject.connectSlotsByName(OpenLPImportForm) - def retranslateUi(self, OpenLPImportDialog): - OpenLPImportDialog.setWindowTitle(self.trUtf8('openlp.org Song Importer')) - self.ImportFileLabel.setText(self.trUtf8('Select openlp.org songfile to import:')) - self.ImportListLabel.setText(self.trUtf8('Import File Song List')) - self.ImportListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title')) - self.ImportListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author')) - self.ImportSelectAllPushButton.setText(self.trUtf8('Select All')) - self.ImportFilterComboBox.setItemText(0, self.trUtf8('Lyrics')) - self.ImportFilterComboBox.setItemText(1, self.trUtf8('Title')) - self.ImportFilterComboBox.setItemText(2, self.trUtf8('Author')) - self.SelectedListLabel.setText(self.trUtf8('Song Import List')) - self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author')) - self.SelectedSelectAllPushButton.setText(self.trUtf8('Select All')) - self.SelectedRemoveSelectedButton.setText(self.trUtf8('Remove Selected')) - self.ProgressGroupBox.setTitle(self.trUtf8('Progress:')) - self.ProgressLabel.setText(self.trUtf8('Ready to import')) - self.ImportPushButton.setText(self.trUtf8('Import')) - self.ClosePushButton.setText(self.trUtf8('Close')) + def retranslateUi(self, OpenLPImportForm): + OpenLPImportForm.setWindowTitle(translate('OpenLPImportForm', 'openlp.org Song Importer')) + self.ImportFileLabel.setText(translate('OpenLPImportForm', 'Select openlp.org songfile to import:')) + self.ImportListLabel.setText(translate('OpenLPImportForm', 'Import File Song List')) + self.ImportListTable.horizontalHeaderItem(0).setText(translate('OpenLPImportForm', 'Song Title')) + self.ImportListTable.horizontalHeaderItem(1).setText(translate('OpenLPImportForm', 'Author')) + self.ImportSelectAllPushButton.setText(translate('OpenLPImportForm', 'Select All')) + self.ImportFilterComboBox.setItemText(0, translate('OpenLPImportForm', 'Lyrics')) + self.ImportFilterComboBox.setItemText(1, translate('OpenLPImportForm', 'Title')) + self.ImportFilterComboBox.setItemText(2, translate('OpenLPImportForm', 'Author')) + self.SelectedListLabel.setText(translate('OpenLPImportForm', 'Song Import List')) + self.SelectedListTable.horizontalHeaderItem(0).setText(translate('OpenLPImportForm', 'Song Title')) + self.SelectedListTable.horizontalHeaderItem(1).setText(translate('OpenLPImportForm', 'Author')) + self.SelectedSelectAllPushButton.setText(translate('OpenLPImportForm', 'Select All')) + self.SelectedRemoveSelectedButton.setText(translate('OpenLPImportForm', 'Remove Selected')) + self.ProgressGroupBox.setTitle(translate('OpenLPImportForm', 'Progress:')) + self.ProgressLabel.setText(translate('OpenLPImportForm', 'Ready to import')) + self.ImportPushButton.setText(translate('OpenLPImportForm', 'Import')) + self.ClosePushButton.setText(translate('OpenLPImportForm', 'Close')) From fecf79d521c5c4292d6bb908ae5c41e874bcc820 Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 30 Apr 2010 21:32:20 +0200 Subject: [PATCH 08/22] Head --- resources/i18n/openlp_af.qm | Bin 33942 -> 30999 bytes resources/i18n/openlp_de.qm | Bin 36466 -> 33249 bytes resources/i18n/openlp_en.ts | 2682 ++++++++++++++++---------------- resources/i18n/openlp_en_GB.qm | Bin 31360 -> 29117 bytes resources/i18n/openlp_en_ZA.qm | Bin 22950 -> 21680 bytes resources/i18n/openlp_es.qm | Bin 14867 -> 14504 bytes resources/i18n/openlp_hu.qm | Bin 34879 -> 32443 bytes resources/i18n/openlp_ko.qm | Bin 462 -> 456 bytes resources/i18n/openlp_nb.qm | Bin 21120 -> 20131 bytes resources/i18n/openlp_pt_BR.qm | Bin 35585 -> 32822 bytes resources/i18n/openlp_sv.qm | Bin 36927 -> 34154 bytes 11 files changed, 1304 insertions(+), 1378 deletions(-) diff --git a/resources/i18n/openlp_af.qm b/resources/i18n/openlp_af.qm index 48b4c532238f23dbe9550e82b65475a00d5fd039..8767c8032d6ac679b8f9c34d063a348aa749f460 100644 GIT binary patch delta 5985 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 Wwh`*%ON^z)qB28SzNyHT;{O2$*^##Z delta 8567 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 diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index c0eb5564f..9d50330c1 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -3,7 +3,7 @@ AboutForm - + build @@ -229,102 +229,374 @@ This General Public License does not permit incorporating your program into prop Missing data - - - AlertsTab - - pt + + Alert Message - - Location: + + Alert &text: - - Font Color: + + &Parameter(s): - - Font + + &New - - Font Name: + + &Save - - Preview + + &Delete - - Alerts + + Displ&ay - - Alert timeout: + + Display && Cl&ose - - openlp.org - - - - - Background Color: - - - - - s - - - - - Bottom - - - - - Top - - - - - Font Size: + + &Close AmendThemeForm - + Slide Height is %s rows - + First Color: - + Second Color: - + Background Color: + + + Theme Maintenance + + + + + Theme Name: + + + + + Background: + + + + + Opaque + + + + + Transparent + + + + + Background Type: + + + + + Solid Color + + + + + Gradient + + + + + Image + + + + + <Color1> + + + + + <Color2> + + + + + Image: + + + + + Gradient : + + + + + Horizontal + + + + + Vertical + + + + + Circular + + + + + Background + + + + + Main Font + + + + + Font: + + + + + Font Color: + + + + + Size: + + + + + pt + + + + + Wrap Indentation + + + + + Adjust Line Spacing + + + + + Normal + + + + + Bold + + + + + Italics + + + + + Bold/Italics + + + + + Font Weight: + + + + + Display Location + + + + + Use Default Location: + + + + + X Position: + + + + + Y Position: + + + + + Width: + + + + + Height: + + + + + px + + + + + Font Main + + + + + Footer Font + + + + + Font Footer + + + + + Outline + + + + + Outline Size: + + + + + Outline Color: + + + + + Show Outline: + + + + + Shadow + + + + + Shadow Size: + + + + + Shadow Color: + + + + + Show Shadow: + + + + + Alignment + + + + + Horizontal Align: + + + + + Left + + + + + Right + + + + + Center + + + + + Vertical Align: + + + + + Top + + + + + Middle + + + + + Bottom + + + + + Slide Transition + + + + + Transition Active: + + + + + Other Options + + + + + Preview + + AuthorsForm @@ -348,111 +620,131 @@ This General Public License does not permit incorporating your program into prop You need to type in the last name of the author. + + + Author Maintenance + + + + + Display name: + + + + + First name: + + + + + Last name: + + BibleMediaItem - + Quick - + Bible - + Book: - + Text Search - + Find: - + Search Type: - + Bible not fully loaded - + No matching book could be found in this Bible. - + Dual: - + Chapter: - + Search - + Keep - + Results: - + Verse Search - + Version: - + From: - + No Book Found - + Advanced - + To: - + Clear - + Verse: @@ -468,27 +760,27 @@ This General Public License does not permit incorporating your program into prop BiblesTab - + ( and ) - + verse per line - + Display Style: - + continuous - + [ and ] @@ -498,7 +790,7 @@ This General Public License does not permit incorporating your program into prop - + Display Dual Bible Verses @@ -508,12 +800,12 @@ This General Public License does not permit incorporating your program into prop - + Layout Style: - + No brackets @@ -523,23 +815,23 @@ This General Public License does not permit incorporating your program into prop - + { and } - + Note: Changes don't affect verses already in the service - + verse per slide - + Bible Theme: @@ -547,7 +839,7 @@ Changes don't affect verses already in the service CustomMediaItem - + Custom @@ -568,13 +860,13 @@ Changes don't affect verses already in the service - - Display Footer: + + Custom Display - - Custom Display + + Display Footer @@ -605,6 +897,106 @@ Changes don't affect verses already in the service You have unsaved data, please save or clear + + + Edit Custom Slides + + + + + Move slide Up 1 + + + + + Move slide down 1 + + + + + Title: + + + + + Add New + + + + + Add new slide at bottom + + + + + Edit + + + + + Edit selected slide + + + + + Edit All + + + + + Edit all slides + + + + + Save + + + + + Replace edited slide + + + + + Delete + + + + + Delete selected slide + + + + + Clear + + + + + Clear edit area + + + + + Split Slide + + + + + Add slide split + + + + + Theme: + + + + + Credits: + + EditSongForm @@ -653,6 +1045,131 @@ Changes don't affect verses already in the service Invalid verse entry, values must be I,B,T,P,E,O,Vx,Cx + + + Song Editor + + + + + Title: + + + + + Alternative Title: + + + + + Lyrics: + + + + + Verse Order: + + + + + Add + + + + + Edit + + + + + Edit All + + + + + Delete + + + + + Title && Lyrics + + + + + Authors + + + + + &Add to Song + + + + + &Remove + + + + + &Manage Authors, Topics, Books + + + + + Topic + + + + + A&dd to Song + + + + + R&emove + + + + + Song Book + + + + + Authors, Topics && Book + + + + + Theme + + + + + Add a Theme + + + + + Copyright Information + + + + + CCLI Number: + + + + + Comments + + + + + Theme, Copyright Info && Comments + + EditVerseForm @@ -666,109 +1183,154 @@ Changes don't affect verses already in the service Chrous + + + Edit Verse + + + + + Verse Type + + + + + Intro + + + + + Pre-Chorus + + + + + Chorus + + + + + Bridge + + + + + Ending + + + + + Other + + + + + Number + + GeneralTab - + CCLI Details - + primary - + Application Startup - + Select monitor for output display: - + Application Settings - + SongSelect Username: - + CCLI Number: - + Automatically open the last service - + Preview Next Song from Service Manager - + Show blank screen warning - + Prompt to save Service before starting New - + General - + Show the splash screen - + Screen - + Monitors - + SongSelect Password: - - Display if in single screen + + Display if a single screen ImageMediaItem - + Select Image(s) - + Image(s) - + Image @@ -778,17 +1340,17 @@ Changes don't affect verses already in the service - + Replace Live Background - + No item selected - + You must select one item @@ -827,120 +1389,275 @@ Changes don't affect verses already in the service ImportWizardForm - + You need to specify a file with books of the Bible to use in the import. - + Invalid Bible Location - + You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - + Bible Exists - + Empty Copyright - + Empty Version Name - + Invalid OpenSong Bible - + Your Bible import failed. - + Finished import. - + You need to specify a file of Bible verses to import. - + You need to specify a version name for your Bible. - + This Bible already exists! Please import a different Bible or first delete the existing one. - + Starting import... - + Invalid Books File - + You need to specify a file to import your Bible from. - + You need to specify an OpenSong Bible file to import. - + Invalid Verse File - + Open OpenSong Bible - + Open OSIS File - + Open Books CSV File - + Open Verses CSV File + + + Bible Import Wizard + + + + + Welcome to the Bible Import Wizard + + + + + 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. + + + + + Select Import Source + + + + + Select the import format, and where to import from. + + + + + Format: + + + + + OSIS + + + + + CSV + + + + + OpenSong + + + + + Web Download + + + + + File Location: + + + + + Books Location: + + + + + Verse Location: + + + + + Bible Filename: + + + + + Location: + + + + + Crosswalk + + + + + BibleGateway + + + + + Bible: + + + + + Download Options + + + + + Server: + + + + + Username: + + + + + Password: + + + + + Proxy Server (Optional) + + + + + License Details + + + + + Set up the Bible's license details. + + + + + Version Name: + + + + + Copyright: + + + + + Permission: + + + + + Importing + + + + + Please wait while your Bible is imported. + + + + + Ready. + + LanguageManager - + Language - + After restart new Language settings will be used. @@ -948,387 +1665,387 @@ Changes don't affect verses already in the service MainWindow - + The Main Display has been blanked out - + OpenLP Version Updated - + Save Changes to Service? - - Your service has changed, do you want to save those changes? - - - - + OpenLP Main Display Blanked - + New Service - + Open Service - + Save Service - + OpenLP 2.0 - + English - + Default Theme: - + &File - + &Import - + &Export - + &Options - + &View - + M&ode - + &Tools - + &Help - + Media Manager - + Service Manager - + Theme Manager - + &New - + Create a new Service - + Ctrl+N - + &Open - + Open an existing service - + Ctrl+O - + &Save - + Save the current service to disk - + Ctrl+S - + Save &As... - + Save Service As - + Save the current service under a new name - + F12 - + E&xit - + Quit OpenLP - + Alt+F4 - + &Theme - + &Language - + Look && &Feel - + &Settings - + &Media Manager - + Toggle Media Manager - + Toggle the visibility of the Media Manager - + F8 - + &Theme Manager - + Toggle Theme Manager - + Toggle the visibility of the Theme Manager - + F10 - + &Service Manager - + Toggle Service Manager - + Toggle the visibility of the Service Manager - + F9 - + &Preview Panel - + Toggle Preview Panel - + Toggle the visibility of the Preview Panel - + F11 - + &Plugin List - + List the Plugins - + Alt+F7 - + &User Guide - + &About - + More information about OpenLP - + Ctrl+F1 - + &Online Help - + &Web Site - + &Auto Detect - + Choose System language, if available - + Set the interface language to %1 - + Add &Tool... - + Add an application to the list of tools - + &Preview Pane - + &Live - + Version %s of OpenLP is now available for download (you are currently running version %s). You can download the latest version from http://openlp.org + + + Your service has changed. Do you want to save those changes? + + MediaManagerItem - + &Preview @@ -1338,77 +2055,77 @@ You can download the latest version from http://openlp.org - + Load a new - + Delete the selected item - + &Edit - + &Add to Service - + Send the selected item live - + Add the selected item(s) to the service - + Edit the selected - + Add a new - + &Show Live - + Preview the selected item - + Import a - + &Delete - + &Add to selected Service Item - + No Items Selected - + You must select one or more items. @@ -1423,20 +2140,20 @@ You can download the latest version from http://openlp.org - - You must select a existing service item to add to. + + Invalid Service Item - - Invalid Service Item + + You must select an existing service item to add to. MediaMediaItem - + Media @@ -1450,6 +2167,21 @@ You can download the latest version from http://openlp.org Videos (%s);;Audio (%s);;All files (*) + + + Replace Live Background + + + + + No item selected + + + + + You must select one item + + MediaPlugin @@ -1459,6 +2191,152 @@ You can download the latest version from http://openlp.org + + OpenLPExportForm + + + openlp.org Song Exporter + + + + + Select openlp.org export filename: + + + + + Full Song List + + + + + Song Title + + + + + Author + + + + + Select All + + + + + Lyrics + + + + + Title + + + + + Song Export List + + + + + Remove Selected + + + + + Progress: + + + + + Ready to export + + + + + Export + + + + + Close + + + + + OpenLPImportForm + + + openlp.org Song Importer + + + + + Select openlp.org songfile to import: + + + + + Import File Song List + + + + + Song Title + + + + + Author + + + + + Select All + + + + + Lyrics + + + + + Title + + + + + Song Import List + + + + + Remove Selected + + + + + Progress: + + + + + Ready to import + + + + + Import + + + + + Close + + + OpenSongBible @@ -1467,40 +2345,83 @@ You can download the latest version from http://openlp.org + + PluginForm + + + Plugin List + + + + + Plugin Details + + + + + Version: + + + + + TextLabel + + + + + About: + + + + + Status: + + + + + Active + + + + + Inactive + + + PresentationMediaItem - + Presentation - + Present using: - + Automatic - + A presentation with that filename already exists. - + Select Presentation(s) - + File exists - + Presentations (%s) @@ -1508,7 +2429,7 @@ You can download the latest version from http://openlp.org PresentationPlugin - + <b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box. @@ -1547,228 +2468,272 @@ You can download the latest version from http://openlp.org RemotesPlugin - + <b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer.<br>The Primary use for this would be to send alerts from a creche + + ServiceItemEditForm + + + Service Item Maintenance + + + + + Up + + + + + Delete + + + + + Down + + + ServiceManager - + Save Changes to Service? - + Open Service - + Move to top - + Create a new service - + Save this service - + Theme: - + Delete From Service - + Save Service - + &Live Verse - + Move to &top - + New Service - + &Notes - + Move to end - - Your service is unsaved, do you want to save those changes before creating a new one ? - - - - + &Delete From Service - + Move up order - + Move down order - + Move &down - + Load an existing service - + &Preview Verse - + Move &up - + &Edit Item - + Move to &bottom - + &Maintain Item + + + Your service is unsaved, do you want to save those changes before creating a new one? + + + + + Your current service is unsaved, do you want to save the changes before opening a new one? + + + + + ServiceNoteForm + + + Service Item Notes + + + + + SettingsForm + + + Settings + + SlideController - + Move to previous - + Go to Verse - + Start continuous loop - + Live - + Start playing media - + Move to live - + Preview - + Move to last - + Edit and re-preview Song - + Delay between slides in seconds - + Move to next - + Move to first - + Blank Screen - + Verse - + Stop continuous loop - + s - + Theme Screen - + Hide Screen - + Chorus @@ -1892,12 +2857,12 @@ You can download the latest version from http://openlp.org - + Song - + Maintain the lists of authors, topics and books @@ -1937,7 +2902,7 @@ You can download the latest version from http://openlp.org - + Song Maintenance @@ -1978,7 +2943,7 @@ You can download the latest version from http://openlp.org SongUsageDetailForm - + Output File Location @@ -1986,7 +2951,7 @@ You can download the latest version from http://openlp.org SongUsagePlugin - + <b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service @@ -2011,16 +2976,6 @@ You can download the latest version from http://openlp.org SongsTab - - - Display Verses on Live Tool bar: - - - - - Enable search as you type: - - Songs Mode @@ -2031,126 +2986,136 @@ You can download the latest version from http://openlp.org Songs + + + Enable search as you type + + + + + Display Verses on Live Tool bar + + ThemeManager - + Import Theme - + Create a new theme - + Delete Theme - + Error - + Make Global - + Delete a theme - + File is not a valid theme. - + Edit a theme - + Edit Theme - + Export Theme - + You are unable to delete the default theme. - + Theme Exists - + Delete theme - + Save Theme - (%s) - + default - + Select Theme Import File - + New Theme - + Import a theme - + Export theme - + You have not selected a theme. - + A theme with this name already exists, would you like to overwrite it? - + Export a theme - + Theme %s is use in %s plugin - + Theme %s is use by Service Manager @@ -2216,860 +3181,6 @@ You can download the latest version from http://openlp.org - - Ui_AlertDialog - - - Alert Message - - - - - Alert &text: - - - - - &Parameter(s): - - - - - &New - - - - - &Save - - - - - &Delete - - - - - Displ&ay - - - - - Display && Cl&ose - - - - - &Close - - - - - Ui_AmendThemeDialog - - - Shadow Size: - - - - - Slide Transition - - - - - Bottom - - - - - Image - - - - - Height: - - - - - Outline - - - - - Main Font - - - - - Solid Color - - - - - Font Main - - - - - Use Default Location: - - - - - Other Options - - - - - Shadow - - - - - Italics - - - - - Background: - - - - - X Position: - - - - - Center - - - - - <Color2> - - - - - Opaque - - - - - Outline Color: - - - - - Alignment - - - - - Normal - - - - - Bold - - - - - Footer Font - - - - - Theme Maintenance - - - - - <Color1> - - - - - Font Footer - - - - - Font Weight: - - - - - Transparent - - - - - Background - - - - - Vertical - - - - - Width: - - - - - Middle - - - - - Shadow Color: - - - - - Vertical Align: - - - - - Top - - - - - Right - - - - - Font Color: - - - - - Horizontal - - - - - Circular - - - - - pt - - - - - px - - - - - Display Location - - - - - Y Position: - - - - - Show Shadow: - - - - - Font: - - - - - Preview - - - - - Outline Size: - - - - - Wrap Indentation - - - - - Left - - - - - Theme Name: - - - - - Image: - - - - - Transition Active: - - - - - Size: - - - - - Gradient : - - - - - Bold/Italics - - - - - Horizontal Align: - - - - - Background Type: - - - - - Show Outline: - - - - - Gradient - - - - - Ui_AuthorsDialog - - - Last name: - - - - - First name: - - - - - Author Maintenance - - - - - Display name: - - - - - Ui_BibleImportWizard - - - Bible Import Wizard - - - - - Bible: - - - - - Crosswalk - - - - - CSV - - - - - OpenSong - - - - - File Location: - - - - - 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. - - - - - Copyright: - - - - - Verse Location: - - - - - Server: - - - - - Permission: - - - - - Select Import Source - - - - - Set up the Bible's license details. - - - - - BibleGateway - - - - - Username: - - - - - Download Options - - - - - Location: - - - - - Bible Filename: - - - - - Format: - - - - - Importing - - - - - License Details - - - - - OSIS - - - - - Web Download - - - - - Please wait while your Bible is imported. - - - - - Select the import format, and where to import from. - - - - - Proxy Server (Optional) - - - - - Welcome to the Bible Import Wizard - - - - - Password: - - - - - Version Name: - - - - - Ready. - - - - - Books Location: - - - - - Ui_EditSongDialog - - - &Remove - - - - - Alternative Title: - - - - - Add a Theme - - - - - R&emove - - - - - Verse Order: - - - - - Title && Lyrics - - - - - Theme - - - - - Authors, Topics && Book - - - - - Copyright Information - - - - - Topic - - - - - Lyrics: - - - - - Edit - - - - - Authors - - - - - Song Editor - - - - - Delete - - - - - &Add to Song - - - - - CCLI Number: - - - - - Add - - - - - Theme, Copyright Info && Comments - - - - - Song Book - - - - - Edit All - - - - - A&dd to Song - - - - - Title: - - - - - Comments - - - - - &Manage Authors, Topics, Books - - - - - Ui_EditVerseDialog - - - Verse - - - - - Ending - - - - - Number - - - - - Other - - - - - Bridge - - - - - Pre-Chorus - - - - - Edit Verse - - - - - Intro - - - - - Chorus - - - - - Verse Type - - - - - Ui_OpenLPExportDialog - - - Song Title - - - - - Title - - - - - Select openlp.org export filename: - - - - - Close - - - - - Export - - - - - Lyrics - - - - - Full Song List - - - - - Progress: - - - - - Remove Selected - - - - - Author - - - - - openlp.org Song Exporter - - - - - Song Export List - - - - - Ready to export - - - - - Select All - - - - - Ui_OpenLPImportDialog - - - Author - - - - - Ready to import - - - - - Progress: - - - - - openlp.org Song Importer - - - - - Song Import List - - - - - Import File Song List - - - - - Close - - - - - Select openlp.org songfile to import: - - - - - Lyrics - - - - - Import - - - - - Song Title - - - - - Select All - - - - - Title - - - - - Remove Selected - - - Ui_OpenSongExportDialog @@ -3176,88 +3287,6 @@ You can download the latest version from http://openlp.org - - Ui_PluginViewDialog - - - Plugin Details - - - - - Active - - - - - Status: - - - - - Version: - - - - - TextLabel - - - - - About: - - - - - Inactive - - - - - Plugin List - - - - - Ui_ServiceItemEditDialog - - - Service Item Maintenance - - - - - Up - - - - - Delete - - - - - Down - - - - - Ui_ServiceNoteEdit - - - Service Item Notes - - - - - Ui_SettingsDialog - - - Settings - - - Ui_SongBookDialog @@ -3358,109 +3387,6 @@ You can download the latest version from http://openlp.org - - Ui_customEditDialog - - - Delete selected slide - - - - - Edit selected slide - - - - - Edit All - - - - - Add new slide at bottom - - - - - Clear - - - - - Delete - - - - - Theme: - - - - - Move slide Up 1 - - - - - Title: - - - - - Credits: - - - - - Edit Custom Slides - - - - - Edit all slides - - - - - Save - - - - - Replace edited slide - - - - - Move slide down 1 - - - - - Edit - - - - - Add New - - - - - Clear edit area - - - - - Split Slide - - - - - Add slide split - - - alertsPlugin @@ -3469,7 +3395,7 @@ You can download the latest version from http://openlp.org - + <b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen @@ -3595,37 +3521,37 @@ OpenOffice.org must be installed and you must be using an unedited copy of the R tools_menu - + &Song Usage - + &Delete recorded data - + Delete song usage to specified date - + &Extract recorded data - + Generate report on Song Usage - + Song Usage Status - + Start/Stop live song usage recording diff --git a/resources/i18n/openlp_en_GB.qm b/resources/i18n/openlp_en_GB.qm index d5acb055374d1f4a239d63baa435ca6483c7f99a..0103ea3084350b6cb1b12f4eadeb91d270dd7c6e 100644 GIT binary patch delta 6177 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 F{TJh6$prua delta 5611 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 diff --git a/resources/i18n/openlp_hu.qm b/resources/i18n/openlp_hu.qm index 530115bb4b7ab9365fa94f2b6fabee1ed482ba1c..2dfc0bf7f0e9d70365149824c4fcf7b065af13d0 100644 GIT binary patch delta 6393 zcmZ|T2Urx>+6VA=W@ok+5DTbL5l{qz4HeMPq$@>Hng~)BSOct5G(vQv#EP-7Rzft! z9uSQyF%hHjioNDWbCYXJBx+(W3HfaC{%0A~s2|V6{?0iwbIyC}mc5JEhNp~a$X8kR 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 CY$8Me delta 8428 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 JRH@O{{{^h_d{Y1b diff --git a/resources/i18n/openlp_ko.qm b/resources/i18n/openlp_ko.qm index 5a91048541b8c6c29bfe0edd019360a8936f1ff9..1843093c3b1bc55ae643b34d4d58690e20c5c4b0 100644 GIT binary patch delta 60 zcmX@de1dsGDRU6R^oflX6DJr?{HZl@f*K>|#6}YZKBvs2oK)Y`l*~lWlGI!VKG&4Y Q66ez5lKfn^{Gwb20J0Gk)c^nh delta 61 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 delta 4628 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 ad%?@n|LN*7rp#1sDz@ZU%q7KQ4F3l|-{0r} diff --git a/resources/i18n/openlp_pt_BR.qm b/resources/i18n/openlp_pt_BR.qm index f5f4cdc71514feaae60e0b02de436026b4aeb124..64d9f6364690cdae8f457e0881166c55fb895666 100644 GIT binary patch delta 6295 zcmZwL30M=?+6VA=l9^<(vnrrv6|LYdDx!kyf&wC-h@eIY5QLx*v_fmF)Vgt9h+0vq zpLMSkmuP9#&)w@%*H*h+TWzJ*tuDP<@2%_oPcn$M&GV4ooHH}$yl0&u?=F*kIzwU^ z_*tIE$$RxnPy4msKYq>s{}4swR7gbS_``=?jxP;yQ~8YBX;8jm`3a# z7QQXIQS=;f?G7OSI&s0mb_yyiAstKHhIp7wo^xlxa(d(TJlIH< zPEUK|;5G#b6-e7q(78a^oq~St0TU@$C{U`W;QW2?Z3-3&lv*iRC{WrU`ZWcgMc~qV z)a~8(&|6NTCDh}*klsoCYXjgDidue{hzq6o*$9}+v4{ujL~m34vLi&Y_7r~w0m*vO zkUtQRERGTkw_pw>2G4|M(bb|SDY5TT58pX!Fp}o|(;w#3{AuV~&AU{y z-3l9M*+dMb<~v&T-cLkY7uwVv=I{b|M&i30J<_(n#IMWm zaE7FVwgMiL1g__ZJk$`^dkm6=+#f&`$g|5IBcQH;&SHVGC{+wMfpDV~;4XZ?tbA=(dh`Msz{3=Yg zuHoF0e&KKww_?7K-pj3=gZGK9XGI@#^_H+JMBSXZRaFJBhHE^G7Ij-IdJ3ZD-G1V> z?GW-GIqV()k>7nF_h~5_&^?3O?NS6y+`;(&!qwcVI$YoVpWJDWWO$9cvKtNP;m_Up z@G%@DTE-Z#1xXlPq7~1b>zl#^CWA zqO-^*Peef>y<}CwvI$9*y~m?vAw{yePU!lO#j+1JqkxddvJDfWiTVV}K3=s4Cd&?e zju(_Z6J>|jbb^aS4~pKAebK|6s4p*TzW+1yk#o)1C;E<;tEXkah4KLY6141=ciW1t z>H9)Hpb_@#ARppe15@Qg)>OhN@*uC@Yl0Q>naT%5 z{Y~;YRxfx^UUPaXUJ<*=YtCX>hmDah3cU$u%4-|YV_~c1t1qFUmaxb2H3>$d0SWRA z>9gV6@}}G9@&Rk*2k)YS0pH7yaCJljrSdPceuts*Zx?ohx$>*O9fdpO&025xK;C>6 z=|LUkcN&&LJuh*-20!9in-w19IX(pbm*?6#5rqfvs;UQA|KY>=z-3r2;rscn$^fDW zp6{NC$RfJ)eQMXkV!p3$JGh1K*Dn#?;A3mdM1ysFayM8eAXuTw$)VNb$}dteDz!Da=w#EqV%PDdshyrSXl54`t}m`11~jkYZz2 z2Hx#`6q^#S!Ysw6p_rsY{-O9}Q5Za=_{6pXURUgh>4$fHU&Uv0Z^2Z>iBn2gq-frY z9!<5!nzc5GPOx2B%=&6kDsymvsL?bPvdXP|# zgNdp~$uHo?s^{KqiAJpyy`@&{d`OfTs8&}lg~@8CP^{<7X==ZBunaRVsQuX|H;%#BE0YqVT!u$ zvshTEUcvkeHi`bMUh#A<($CZ%HlwB49_og0^h|c7daDiP|k$*n!7_TV*O7@)!YkQ4;wU3LN~%I+MdFT zLvEOMNG`@aw?Lb0z@*DPq#dyqEzG^HoxSNKQJ#}_-txP!tG4keR!3gGc1HzTY$(z0 z3^v2%+CBJ(l?;cq`>&uv!(Hvch(4-sIgbEA4(Tz+%PZ-s@T7Oh% z?4xU#-Up7*ZG9XBXX$n>V&OjB!3ADKMRMJ-CAhDso9Q(SFhI<973Z?}zm zbE%XWVLe~&YU|l0LS>!XZ_wXV@qIt9mfTm0SBHLNy%}oOYK1-?X(%ffqAanN^gpY6 zz1bz!o9+&rNUQQsvT&uZ5t?idFqu| zP7OM1RYfHI%}vWA+PCDsay@dbnGqdrS0gf{_V`=ph&48P$e$ZvTOA$#vf5W7>KfbO zuZ7#X#_|$dcDy@d?bE}{x^=4DwtvVMxZP3zC}X9*EKg{wZFQoFv4#v=^*5(}9JXF! zdy?`#-%|c7wSJIU=K9)nCr)_!TYt+OY}Jqc_HXV;$?DOP`${LIWOcC}%=%DbTa+_R zYD>`%<^Iy{hWv+8#@o84$kP@#aVlqfKIyo^R#o+-l<8oNtZ=n`WEmDp0GFBKR4--c+>)(Si*Ij!GJVC%8ti0R7o7LFK1%|x}H zWfC37*pr!2%s58)8I+hx{LRH*ZR>^h{11`0j`{f2Ty>hkY&Mz-%7u|9MdXCi3djCJ z+Jq8)fg#C|XVeQTfjlydjm~q$_Ds;Fky>yZ> zw_H3+YT>S^($a~JD(o9adAfcAeowNO{;~?4W46CcQ(KfJY}{yE^Yik zmShpa99~>eU^F2qTwmUj;_WG+KDE8-B)tg@C{vnCON-0xAtMlR$&2U6^>4NS`~c{P z&mOv~P-<&eSc>h9Bi`O=!WAy%hT{Bg<&%o_<%Q$QbIS|{6KRB-TAN2|VS5qs>^JMg zN|Q^?_AN{IvWk|bC`K4caMB)tD#|#a*wAuDrHnV23}yOaoUyVX98w68rqTBnt8m)T&_n{o}}#QD<(NMe&(cM4MLg=)np+=rJL z$_*y7-fS#2xwW=SVQ;4};jGSc+|&NN+hMGQL20esF_0>Q{ZT8<52d4@9mDi$J@%pa EA9=$FQ~&?~ delta 8515 zcmbW630#!rzQ_OX%=^y1Ac7*20*WS(BA_5HEV8N~3Zml103(dT48pjC<(ON!95r7x zT(U!EX>R3UdbF#VdP>98%1)=QdWsfvNlnu<%lms~UStsb-21uj=Of=|fBxIEjqlBs zy|7m17_h(C@8tE3Yfc3P94@H+uk%SnZDNV23jf&07(m3=fIYxz`Xc0iBFabre+LtZI5m+Y0~2!oMB_riFt7kbBNq#ao^>KWon&<% zfs2S=+ZEhE{99jub;KX!!Sim)v=S4D|1y_IHkyQvAAn^fgrU7`J_!-W!A&HjHGuob zA=I#flO((eZDik4hs6uQ-|49DO*m!(ziQ_2jG!)?N)boV};2Mc{9TagE1;QZex2g-ckdkVSf*(@a zi;!6O$xTI+Lhte)WAjNS?zXyR7UsHzpGI*1Qgw2B+R1%{kPM{%u*SOr} z=6WgbsFxCdxv7ezq5JL=sWNDoA`mQ)SVP0s!5yl@5*yr9Yb5rPm@9Fv#4VJ`R}-oC zQ>K~mEM>0MfR||axh?R&`W|J+oFmd0B=)21aVwC|rV&f+pp8ac?+U(7BkrbvpHt3( zn?za}<%T7L?I|~YA(%wD^Wie>e9GJPAy`AB+gt*7(irt1@B)oFyn#p;Lu3BD4Q5fk z*AjA&u7vW75e&L{lz+7kxPiuLVN%^LiT`m^?@i+--y+iYpz#V!q)(vnCty1mDK9NyELcG5F&#=E%|3K7*9)|g@q0IwCr8cfy6>uI~6`P?4eByz6Gz) z)?S#%IE;=hf*?jSohjJ_-k>j%s))SW(s^S~FqSSX{|>a#g%!})>vj51!4KfS=wW6) zma&SHeJX<8Ir;pPpq*10t>AXfd&gDqGtT>h0~55l$+ew*ipbla>$L3!a4gsPdIea+ z1@(rc-iNv108H$CiAz>*CTiQAn=~pK%$4{yXF7qPZTl@(K8}cdWL!mexYQ?+v$J+S zizI%<&G}$Gk*|@Po7WpmGE9a3c> zTLf?^i1r=cmpNi@!_*zF$r6feME=RLyn;^PN3u1Wwh(pfDqDxxqmCJ}H~NHv3uJGx z<=62avaR8(!85Y0Z25Kk+0B5qGUv}zuwjPF>b8Fhj+X760?Py}knLsT1#FNVU@;c( zf$ZSqDDa#^cIW{l3;11jQ`|-LRF3TCwK?E&*}db(!F_VwEAZV@XXM6%^TD6xKJ{ye zI{C}n=bQm2Nn9@Rko>8vQ7Atz51a-;J8R@aQyaj6@{v!E2Fv6VnIN4TmcLeU8$2Q3mAjWH$WMOg0VWR0ke?ZO2%Ibb@?!`PbY6b_(l$LNH8XmHZB?58f)jJ0u7EM1F4t%m2!&?#B^zN#ngjBf$c`^X79{|6Tsg2Pcgr z>Ke{>?cxMy@{uY?-1S4gAPyGkdWAR7FcXEm%|BaK4W8qx-+^U9uJYA;!EPKs?*#gF z^XKQ=;F4}p;49z|e%bCq&?NC?iAVSqtCpbrOYkVxf4A%Ws(r-LU&`SRF3}_tsH;G62Z*9LKe}Vrw2c{0wN{r`kop~AgV*bwPd~lnG5Pc_u{|WV#F%3xnok zzj$V^5WhVHydWg3*bLruvu8(%nGzks@DRAN=UQQu;|?_Gd05C3pCjt!BaDxQX?ukU z#nTReNrJh06F60v{L)@h4o8W{<5&) zr5f;0H+w%VY>c}|)H`0-G`j>mAUJj%g@(P)3U1y9VTnki@Xj8TM|PE%3$pTZ;XNBP zi(Die@SXy`CLBq_Z6@-JP`{3~zbl;b%OZ+uCtN%L1)_3{9D<=Mk`j`%iq9|w_ld70(+6PuCN|SNC$2c}A zrcK4bF-H`$*|LlIk79uen#SByEcSvcVgnVgY{NjYixqDc4hHKKZ*MvXo>zSM58Qxa z?<oBSz@llxr$FBd{MqZ(QxB?aF0@Gz&_LOmQwfZD5AJvWf#>qSpRXE%AUJn zs<>6k=rVtBpR)fhmcO7(4_rpnU#m>7tp+2MQ%DIGNnE3>$i@E9zfL*x9tQ0Hr*h5< zR-ysn%6XbwL<2*VFNqj$;4I~`Q!~LIl*>+IUl`;qG2KN64O*aF8T&ITb}LuyfN2NS zD_{Et7Krbztj(~1Gn8-Uz6fqp?z;ll#Gg?f`2`ausFlYA+=de(l%M7Q2AY*$t>_7^ zRDO5!ICxRnVCY1Y7^rOc4*A3!<+UAaz~w4gn;*c_D&EP?|HNNZf-0IQDMTf-_X4w3 z+S$+`>3LPiS}d!itEy)-U5EzvQS}-F!3K|4^;xwAT&L-A5iBh~&RY7~eg{s-)s6*m2)j|zArd(ImZj2{N z%~u^Xo&^7;I=CEyrQUWkZJ6rV6cKm&#j2BcJ_r9Uv0mZ>wJ-_CcDk=xGk!T3tIq!b zf~41~3wD~pLvCj95{IZu9R1GWF)&?iS&SeY>aDI=h7LpH)%MwPuuMI(_Zo16dghb| z;6K$%_CeF3*WDZzq<$4QU>cSzu}b|`{wU;EskaXK4m_paIut>iN$Q;|@3afy%<0HZ<@v1e*!;r zXqLVMUuR#`thCGl?`vLO4Iho1pjlU!0?yUES!V!iHCx|@201Ftu0i*~AkDifXqpqN z*?;{kSfY7J8Rvhj%Cgf7j-8oBInC&`UC${}UT@Q8j-OP4d?zoPlX4 zmFTh}z5=)EMyN3Hq{9+_)r~BzBr5RL&ANzo1*JN1cpA7uw>sV*{7ScOe+rRFu3OK2 z4JJq|*R6l>KJtrnuQsd)YjryY!D6P9y4}X(SpTLgEJ0KlpnG@h58y!Ef$Pw$aF*^M z$M~A=>bRBY5okD3Qg)F+Ib0-n(4Jd6Xc>Pu7c z05Q*$xK(e7MY*|NKmYF##Qc+f=M4vZG})j(990eu)F1nJ0Qi#r zznKV@==J9}Jqs4#v7wAu8>o|0DJ-u+-3-T~JDo8q$jp3#B&< zS!M*IWvF4q7`Vz(VHmj?icSeJyy)0^5{WFslA2$@sfJw-uzaSxVc0Vrnor$ss0*`$ zUm6a|pCc;c42Lgb;<9kVk&h37DTa?HA}GuD8_w_;uow!BeVEvmXUxlhWo%20 ztAa7HtfsA#lZy#!E6NGEHf` zk%{FwE!249y-z_44wPv%*xE=&RZ5_ZCb7(1X|KvP6_S8_6(`Q~iuPeu&1;l)afer? zpZ6%sq?BTdJ;!D(Nw%2EY$dE)+8g3|FF&zso3d7Vjw=x7wRt(M)t>nIgk#d^D20m2 zf?seIre!Oq+5eP#NLa#M*p(_CyZW!TNmcK)km9us-WDgGlMz@w^} z3_k|E>@uuZPMM|HJlJNnSK7+pH|N-=whCN?c%e%N(Q7y_Dkm61exe4lJuXj^J|wV5 zv-lwRkEj%yMHR4PrOWKC^z#%C{qUGZzs}CPUG{KVZJOC?t~8Y)aGdXjtdSSZ!YLJq zpX3AXKF@kR?isOv-_zbLLtg9<)2V|iw#}6@EJbF- zL^)edQfxn}Z7uShGhzmC9^yCC>}agD#nNNXFK3&6-8?%r(>XovH0LAM&hpi;2bD{` zRPkJ3NH=DJKuW^jN|(0+VQ1#aJeX$&QgH%%d5PZrM~a8~cM}Wx^G}kizQ5mN)t(YK z>-(3>4LNRGWSXp4DwSede0nREb8dy-x z9mUfl6wZf37OI|P*)=(pVr1^q?bu+g1X@DwuTSc^U{tvOlQ#(Gf>9@0%FZsl&R%0) zk+;x_-8`ME$2~8!=CnZ5ZMnE0!mmfJYth);hfdQ@=^4W$u$!3Zh-P&n1 zuN4OLrF6Ks5W!i7f37nG4ll$ORE5ojIp5?8Uv|QjJZcdqunU*-?^8~xwQo0VUgC)E z?Ni(v&bR2iscTKH+L7Y!QpWIzkY37G{pO^ z*%$1}^=ejz*ZO05Ja=)kZSkc)Rx(`5<7)KiD|(dr-xE_knoM)0XX5W1cWEp0do*uK zE@(=6q*i#O-AO#Pn|+&UN3(oW<~>)^WB#K}b&pc`z59vZ7f-Bds=#j-ExxO+5K$ku9Pm~F5CEV@r|k0$fdMen(0yMF~3JCHyV>q@+f$e z$J{KBLgMCo<~-Bf%Ep{DKZpMWZ257UT9&y>I6OR>KJMM7^pjKE0q&y~ zwQPP456ad)?m}y&O=aBWrnF~@yCahv=vmq_-4Z8nIcXE8+e>YgRjIa0JjVRk1-!LO3K^PRY0F7HczTuHR?c1!#3pu+ zpXaccXG%A4(z27Ws&V4BEH|nOhkdfyZnBiQCp12Gw}pTh%=J2vhS9Lcz-WuL*fx_i zxwZ;Rky}=+OOeLW)h?B*a!VTJDRPO|bjxxdmy&K-HoKWsQ5&W&JHKtVsf}WLF#+60 zk%}4*+B|b*RpW!Cc1}l!ca^zpa?h%YGE-IQq^hDyv)M{ov+ETy32vB<7mmsG&XS}w zVq~`l?tzWjmF6n5)o!v|Y*v>g^-L<)G;Z^#TvlgQ`es)R{8#2kbDwgk;p(P#*~0al zBLf@4?Htz_MtAy=$3^S&euz?CquQ=UUY^$;R-$&fz*Xl?N`p6rm#fZYKeOF#fukGk z_t?#jbS~FO_dHUud3iRP_{Vb{9X>FLOL$KK++m1zE#85oPAs%dx4Y&h{YW#jK=TOm z=;Cf=aB2QXee!bWrEBMKhv3jOJ!*8!cuYcR29|8T8rz=C^?(mAzOKg iQd4=es|@+N-QUaY|3}kk>^56jm3vHP-$s!d?fXBSy@z`M diff --git a/resources/i18n/openlp_sv.qm b/resources/i18n/openlp_sv.qm index 592530062c7254b400551c58a25a7d0329fb7747..ba50bcea7768842e36d8a5ef0d1dda05f88e9c1a 100644 GIT binary patch delta 6504 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 W^~W$8yVY83bIW8As8gvf0{;h-%n0QG From 190a6d48199501f37f79e629a964c7bf3ea24945 Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 30 Apr 2010 22:03:26 +0200 Subject: [PATCH 09/22] Head --- .../songs/forms/opensongexportdialog.py | 63 +-- .../songs/forms/opensongimportdialog.py | 37 +- openlp/plugins/songs/forms/songbookdialog.py | 35 +- .../songs/forms/songmaintenancedialog.py | 50 +-- openlp/plugins/songs/forms/topicsdialog.py | 29 +- .../songusage/forms/songusagedeletedialog.py | 3 +- .../songusage/forms/songusagedetaildialog.py | 9 +- resources/i18n/openlp_af.qm | Bin 30999 -> 31508 bytes resources/i18n/openlp_de.qm | Bin 33249 -> 33786 bytes resources/i18n/openlp_en.ts | 384 +++++++++--------- resources/i18n/openlp_en_GB.qm | Bin 29117 -> 28983 bytes resources/i18n/openlp_en_ZA.qm | Bin 21680 -> 21540 bytes resources/i18n/openlp_es.qm | Bin 14504 -> 14461 bytes resources/i18n/openlp_hu.qm | Bin 32443 -> 32311 bytes resources/i18n/openlp_nb.qm | Bin 20131 -> 20348 bytes resources/i18n/openlp_pt_BR.qm | Bin 32822 -> 33037 bytes resources/i18n/openlp_sv.qm | Bin 34154 -> 34308 bytes 17 files changed, 301 insertions(+), 309 deletions(-) diff --git a/openlp/plugins/songs/forms/opensongexportdialog.py b/openlp/plugins/songs/forms/opensongexportdialog.py index c40800dfa..571be630b 100644 --- a/openlp/plugins/songs/forms/opensongexportdialog.py +++ b/openlp/plugins/songs/forms/opensongexportdialog.py @@ -24,18 +24,19 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_OpenSongExportDialog(object): - def setupUi(self, OpenSongExportDialog): - OpenSongExportDialog.setObjectName(u'OpenSongExportDialog') - OpenSongExportDialog.resize(473, 459) + def setupUi(self, OpenSongExportForm): + OpenSongExportForm.setObjectName(u'OpenSongExportDialog') + OpenSongExportForm.resize(473, 459) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenSongExportDialog.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportDialog) + OpenSongExportForm.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportForm) self.verticalLayout_5.setMargin(8) self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(OpenSongExportDialog) + self.ExportFileWidget = QtGui.QWidget(OpenSongExportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -59,7 +60,7 @@ class Ui_OpenSongExportDialog(object): self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenSongExportDialog) + self.SongListFrame = QtGui.QFrame(OpenSongExportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -242,7 +243,7 @@ class Ui_OpenSongExportDialog(object): self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportDialog) + self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -261,7 +262,7 @@ class Ui_OpenSongExportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenSongExportDialog) + self.ButtonBarWidget = QtGui.QWidget(OpenSongExportForm) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -277,29 +278,29 @@ class Ui_OpenSongExportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout_5.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenSongExportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportDialog.close) + self.retranslateUi(OpenSongExportForm) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportForm.close) QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog) + QtCore.QMetaObject.connectSlotsByName(OpenSongExportForm) - def retranslateUi(self, OpenSongExportDialog): - OpenSongExportDialog.setWindowTitle(self.trUtf8('OpenSong Song Exporter')) - self.ExportFileLabel.setText(self.trUtf8('Select OpenSong song folder:')) - self.ExportListLabel.setText(self.trUtf8('Full Song List')) - self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title')) - self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author')) - self.ExportSelectAllPushButton.setText(self.trUtf8('Select All')) - self.ExportFilterComboBox.setItemText(0, self.trUtf8('Lyrics')) - self.ExportFilterComboBox.setItemText(1, self.trUtf8('Title')) - self.ExportFilterComboBox.setItemText(2, self.trUtf8('Author')) - self.SelectedListLabel.setText(self.trUtf8('Song Export List')) - self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author')) - self.SelectedSelectAllPushButton.setText(self.trUtf8('Select All')) - self.SelectedRemoveSelectedButton.setText(self.trUtf8('Remove Selected')) - self.ProgressGroupBox.setTitle(self.trUtf8('Progress:')) - self.ProgressLabel.setText(self.trUtf8('Ready to export')) - self.ExportPushButton.setText(self.trUtf8('Export')) - self.ClosePushButton.setText(self.trUtf8('Close')) + def retranslateUi(self, OpenSongExportForm): + OpenSongExportForm.setWindowTitle(translate('OpenSong Song Exporter')) + self.ExportFileLabel.setText(translate('OpenSongExportForm', 'Select OpenSong song folder:')) + self.ExportListLabel.setText(translate('OpenSongExportForm', 'Full Song List')) + self.ExportListTable.horizontalHeaderItem(0).setText(translate('OpenSongExportForm', 'Song Title')) + self.ExportListTable.horizontalHeaderItem(1).setText(translate('OpenSongExportForm', 'Author')) + self.ExportSelectAllPushButton.setText(translate('OpenSongExportForm', 'Select All')) + self.ExportFilterComboBox.setItemText(0, translate('OpenSongExportForm', 'Lyrics')) + self.ExportFilterComboBox.setItemText(1, translate('OpenSongExportForm', 'Title')) + self.ExportFilterComboBox.setItemText(2, translate('OpenSongExportForm', 'Author')) + self.SelectedListLabel.setText(translate('OpenSongExportForm', 'Song Export List')) + self.SelectedListTable.horizontalHeaderItem(0).setText(translate('OpenSongExportForm', 'Song Title')) + self.SelectedListTable.horizontalHeaderItem(1).setText(translate('OpenSongExportForm', 'Author')) + self.SelectedSelectAllPushButton.setText(translate('OpenSongExportForm', 'Select All')) + self.SelectedRemoveSelectedButton.setText(translate('OpenSongExportForm', 'Remove Selected')) + self.ProgressGroupBox.setTitle(translate('OpenSongExportForm', 'Progress:')) + self.ProgressLabel.setText(translate('OpenSongExportForm', 'Ready to export')) + self.ExportPushButton.setText(translate('OpenSongExportForm', 'Export')) + self.ClosePushButton.setText(translate('OpenSongExportForm', 'Close')) diff --git a/openlp/plugins/songs/forms/opensongimportdialog.py b/openlp/plugins/songs/forms/opensongimportdialog.py index e0fd23821..df9bce507 100644 --- a/openlp/plugins/songs/forms/opensongimportdialog.py +++ b/openlp/plugins/songs/forms/opensongimportdialog.py @@ -24,19 +24,20 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_OpenSongImportDialog(object): - def setupUi(self, OpenSongImportDialog): - OpenSongImportDialog.setObjectName(u'OpenSongImportDialog') - OpenSongImportDialog.resize(481, 172) + def setupUi(self, OpenSongImportForm): + OpenSongImportForm.setObjectName(u'OpenSongImportDialog') + OpenSongImportForm.resize(481, 172) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenSongImportDialog.setWindowIcon(icon) - self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportDialog) + OpenSongImportForm.setWindowIcon(icon) + self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportForm) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(8) self.verticalLayout.setObjectName(u'verticalLayout') - self.ImportFileWidget = QtGui.QWidget(OpenSongImportDialog) + self.ImportFileWidget = QtGui.QWidget(OpenSongImportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -60,7 +61,7 @@ class Ui_OpenSongImportDialog(object): self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) self.verticalLayout.addWidget(self.ImportFileWidget) - self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportDialog) + self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -79,7 +80,7 @@ class Ui_OpenSongImportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenSongImportDialog) + self.ButtonBarWidget = QtGui.QWidget(OpenSongImportForm) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -95,14 +96,14 @@ class Ui_OpenSongImportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenSongImportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportDialog.close) - QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog) + self.retranslateUi(OpenSongImportForm) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportForm.close) + QtCore.QMetaObject.connectSlotsByName(OpenSongImportForm) - def retranslateUi(self, OpenSongImportDialog): - OpenSongImportDialog.setWindowTitle(self.trUtf8('OpenSong Song Importer')) - self.ImportFileLabel.setText(self.trUtf8('OpenSong Folder:')) - self.ProgressGroupBox.setTitle(self.trUtf8('Progress:')) - self.ProgressLabel.setText(self.trUtf8('Ready to import')) - self.ImportPushButton.setText(self.trUtf8('Import')) - self.ClosePushButton.setText(self.trUtf8('Close')) + def retranslateUi(self, OpenSongImportForm): + OpenSongImportForm.setWindowTitle(translate('OpenSongImportForm', 'OpenSong Song Importer')) + self.ImportFileLabel.setText(translate('OpenSongImportForm', 'OpenSong Folder:')) + self.ProgressGroupBox.setTitle(translate('OpenSongImportForm', 'Progress:')) + self.ProgressLabel.setText(translate('OpenSongImportForm', 'Ready to import')) + self.ImportPushButton.setText(translate('OpenSongImportForm', 'Import')) + self.ClosePushButton.setText(translate('OpenSongImportForm', 'Close')) diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index 823e20eba..4276ae9da 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -24,32 +24,33 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_SongBookDialog(object): - def setupUi(self, SongBookDialog): - SongBookDialog.setObjectName(u'SongBookDialog') - SongBookDialog.resize(367, 120) - self.SongBookLayout = QtGui.QFormLayout(SongBookDialog) + def setupUi(self, SongBookForm): + SongBookForm.setObjectName(u'SongBookDialog') + SongBookForm.resize(367, 120) + self.SongBookLayout = QtGui.QFormLayout(SongBookForm) self.SongBookLayout.setMargin(8) self.SongBookLayout.setSpacing(8) self.SongBookLayout.setObjectName(u'SongBookLayout') - self.NameLabel = QtGui.QLabel(SongBookDialog) + self.NameLabel = QtGui.QLabel(SongBookForm) self.NameLabel.setObjectName(u'NameLabel') self.SongBookLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.NameLabel) - self.NameEdit = QtGui.QLineEdit(SongBookDialog) + self.NameEdit = QtGui.QLineEdit(SongBookForm) self.NameEdit.setObjectName(u'NameEdit') self.SongBookLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.NameEdit) - self.PublisherLabel = QtGui.QLabel(SongBookDialog) + self.PublisherLabel = QtGui.QLabel(SongBookForm) self.PublisherLabel.setObjectName(u'PublisherLabel') self.SongBookLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.PublisherLabel) - self.PublisherEdit = QtGui.QLineEdit(SongBookDialog) + self.PublisherEdit = QtGui.QLineEdit(SongBookForm) self.PublisherEdit.setObjectName(u'PublisherEdit') self.SongBookLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.PublisherEdit) - self.ButtonBox = QtGui.QDialogButtonBox(SongBookDialog) + self.ButtonBox = QtGui.QDialogButtonBox(SongBookForm) self.ButtonBox.setOrientation(QtCore.Qt.Horizontal) self.ButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel) @@ -57,14 +58,14 @@ class Ui_SongBookDialog(object): self.SongBookLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.ButtonBox) - self.retranslateUi(SongBookDialog) + self.retranslateUi(SongBookForm) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'accepted()'), SongBookDialog.accept) + QtCore.SIGNAL(u'accepted()'), SongBookForm.accept) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'rejected()'), SongBookDialog.reject) - QtCore.QMetaObject.connectSlotsByName(SongBookDialog) + QtCore.SIGNAL(u'rejected()'), SongBookForm.reject) + QtCore.QMetaObject.connectSlotsByName(SongBookForm) - def retranslateUi(self, SongBookDialog): - SongBookDialog.setWindowTitle(self.trUtf8('Edit Book')) - self.NameLabel.setText(self.trUtf8('Name:')) - self.PublisherLabel.setText(self.trUtf8('Publisher:')) + def retranslateUi(self, SongBookForm): + SongBookForm.setWindowTitle(translate('SongBookForm', 'Edit Book')) + self.NameLabel.setText(translate('SongBookForm', 'Name:')) + self.PublisherLabel.setText(translate('SongBookForm', 'Publisher:')) diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index cbd08f34d..ca4b5ec0e 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -25,18 +25,18 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon +from openlp.core.lib import build_icon, translate class Ui_SongMaintenanceDialog(object): - def setupUi(self, SongMaintenanceDialog): - SongMaintenanceDialog.setObjectName(u'SongMaintenanceDialog') - SongMaintenanceDialog.setWindowModality(QtCore.Qt.ApplicationModal) - SongMaintenanceDialog.resize(486, 361) - self.DialogLayout = QtGui.QVBoxLayout(SongMaintenanceDialog) + def setupUi(self, SongMaintenanceForm): + SongMaintenanceForm.setObjectName(u'SongMaintenanceDialog') + SongMaintenanceForm.setWindowModality(QtCore.Qt.ApplicationModal) + SongMaintenanceForm.resize(486, 361) + self.DialogLayout = QtGui.QVBoxLayout(SongMaintenanceForm) self.DialogLayout.setSpacing(8) self.DialogLayout.setMargin(8) self.DialogLayout.setObjectName(u'DialogLayout') - self.ContentWidget = QtGui.QWidget(SongMaintenanceDialog) + self.ContentWidget = QtGui.QWidget(SongMaintenanceForm) self.ContentWidget.setObjectName(u'ContentWidget') self.ContentLayout = QtGui.QHBoxLayout(self.ContentWidget) self.ContentLayout.setSpacing(8) @@ -192,32 +192,32 @@ class Ui_SongMaintenanceDialog(object): self.TypeStackedWidget.addWidget(self.BooksPage) self.ContentLayout.addWidget(self.TypeStackedWidget) self.DialogLayout.addWidget(self.ContentWidget) - self.MaintenanceButtonBox = QtGui.QDialogButtonBox(SongMaintenanceDialog) + self.MaintenanceButtonBox = QtGui.QDialogButtonBox(SongMaintenanceForm) self.MaintenanceButtonBox.setOrientation(QtCore.Qt.Horizontal) self.MaintenanceButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close) self.MaintenanceButtonBox.setObjectName(u'MaintenanceButtonBox') self.DialogLayout.addWidget(self.MaintenanceButtonBox) - self.retranslateUi(SongMaintenanceDialog) + self.retranslateUi(SongMaintenanceForm) self.TypeStackedWidget.setCurrentIndex(0) QtCore.QObject.connect(self.MaintenanceButtonBox, - QtCore.SIGNAL(u'rejected()'), SongMaintenanceDialog.accept) + QtCore.SIGNAL(u'rejected()'), SongMaintenanceForm.accept) QtCore.QObject.connect(self.TypeListWidget, QtCore.SIGNAL(u'currentRowChanged(int)'), self.TypeStackedWidget.setCurrentIndex) - QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog) + QtCore.QMetaObject.connectSlotsByName(SongMaintenanceForm) - def retranslateUi(self, SongMaintenanceDialog): - SongMaintenanceDialog.setWindowTitle(self.trUtf8('Song Maintenance')) - self.TypeListWidget.item(0).setText(self.trUtf8('Authors')) - self.TypeListWidget.item(1).setText(self.trUtf8('Topics')) - self.TypeListWidget.item(2).setText(self.trUtf8('Books/Hymnals')) - self.AuthorAddButton.setText(self.trUtf8('Add')) - self.AuthorEditButton.setText(self.trUtf8('Edit')) - self.AuthorDeleteButton.setText(self.trUtf8('Delete')) - self.TopicAddButton.setText(self.trUtf8('Add')) - self.TopicEditButton.setText(self.trUtf8('Edit')) - self.TopicDeleteButton.setText(self.trUtf8('Delete')) - self.BookAddButton.setText(self.trUtf8('Add')) - self.BookEditButton.setText(self.trUtf8('Edit')) - self.BookDeleteButton.setText(self.trUtf8('Delete')) + def retranslateUi(self, SongMaintenanceForm): + SongMaintenanceForm.setWindowTitle(translate('SongMaintenanceForm', 'Song Maintenance')) + self.TypeListWidget.item(0).setText(translate('SongMaintenanceForm', 'Authors')) + self.TypeListWidget.item(1).setText(translate('SongMaintenanceForm', 'Topics')) + self.TypeListWidget.item(2).setText(translate('SongMaintenanceForm', 'Books/Hymnals')) + self.AuthorAddButton.setText(translate('SongMaintenanceForm', 'Add')) + self.AuthorEditButton.setText(translate('SongMaintenanceForm', 'Edit')) + self.AuthorDeleteButton.setText(translate('SongMaintenanceForm', 'Delete')) + self.TopicAddButton.setText(translate('SongMaintenanceForm', 'Add')) + self.TopicEditButton.setText(translate('SongMaintenanceForm', 'Edit')) + self.TopicDeleteButton.setText(translate('SongMaintenanceForm', 'Delete')) + self.BookAddButton.setText(translate('SongMaintenanceForm', 'Add')) + self.BookEditButton.setText(translate('SongMaintenanceForm', 'Edit')) + self.BookDeleteButton.setText(translate('SongMaintenanceForm', 'Delete')) diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index 122af0455..559c24e12 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -24,26 +24,27 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_TopicsDialog(object): - def setupUi(self, TopicsDialog): - TopicsDialog.setObjectName(u'TopicsDialog') - TopicsDialog.resize(365, 77) - self.TopicLayout = QtGui.QFormLayout(TopicsDialog) + def setupUi(self, TopicsForm): + TopicsForm.setObjectName(u'TopicsDialog') + TopicsForm.resize(365, 77) + self.TopicLayout = QtGui.QFormLayout(TopicsForm) self.TopicLayout.setFieldGrowthPolicy( QtGui.QFormLayout.ExpandingFieldsGrow) self.TopicLayout.setMargin(8) self.TopicLayout.setSpacing(8) self.TopicLayout.setObjectName(u'TopicLayout') - self.NameLabel = QtGui.QLabel(TopicsDialog) + self.NameLabel = QtGui.QLabel(TopicsForm) self.NameLabel.setObjectName(u'NameLabel') self.TopicLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.NameLabel) - self.NameEdit = QtGui.QLineEdit(TopicsDialog) + self.NameEdit = QtGui.QLineEdit(TopicsForm) self.NameEdit.setObjectName(u'NameEdit') self.TopicLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.NameEdit) - self.TopicButtonBox = QtGui.QDialogButtonBox(TopicsDialog) + self.TopicButtonBox = QtGui.QDialogButtonBox(TopicsForm) self.TopicButtonBox.setOrientation(QtCore.Qt.Horizontal) self.TopicButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel) @@ -51,13 +52,13 @@ class Ui_TopicsDialog(object): self.TopicLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.TopicButtonBox) - self.retranslateUi(TopicsDialog) + self.retranslateUi(TopicsForm) QtCore.QObject.connect(self.TopicButtonBox, - QtCore.SIGNAL(u'accepted()'), TopicsDialog.accept) + QtCore.SIGNAL(u'accepted()'), TopicsForm.accept) QtCore.QObject.connect(self.TopicButtonBox, - QtCore.SIGNAL(u'rejected()'), TopicsDialog.reject) - QtCore.QMetaObject.connectSlotsByName(TopicsDialog) + QtCore.SIGNAL(u'rejected()'), TopicsForm.reject) + QtCore.QMetaObject.connectSlotsByName(TopicsForm) - def retranslateUi(self, TopicsDialog): - TopicsDialog.setWindowTitle(self.trUtf8('Topic Maintenance')) - self.NameLabel.setText(self.trUtf8('Topic name:')) + def retranslateUi(self, TopicsForm): + TopicsForm.setWindowTitle(translate('TopicsForm', 'Topic Maintenance')) + self.NameLabel.setText(translate('TopicsForm', 'Topic name:')) diff --git a/openlp/plugins/songusage/forms/songusagedeletedialog.py b/openlp/plugins/songusage/forms/songusagedeletedialog.py index 2cb19f4f5..dc02965f5 100644 --- a/openlp/plugins/songusage/forms/songusagedeletedialog.py +++ b/openlp/plugins/songusage/forms/songusagedeletedialog.py @@ -24,6 +24,7 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_SongUsageDeleteDialog(object): def setupUi(self, AuditDeleteDialog): @@ -57,4 +58,4 @@ class Ui_SongUsageDeleteDialog(object): QtCore.QMetaObject.connectSlotsByName(AuditDeleteDialog) def retranslateUi(self, AuditDeleteDialog): - AuditDeleteDialog.setWindowTitle(self.trUtf8('Song Usage Delete')) + AuditDeleteDialog.setWindowTitle(translate('AuditDeleteDialog', 'Song Usage Delete')) diff --git a/openlp/plugins/songusage/forms/songusagedetaildialog.py b/openlp/plugins/songusage/forms/songusagedetaildialog.py index 13b4fe18d..9512a4278 100644 --- a/openlp/plugins/songusage/forms/songusagedetaildialog.py +++ b/openlp/plugins/songusage/forms/songusagedetaildialog.py @@ -24,6 +24,7 @@ ############################################################################### from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate class Ui_SongUsageDetailDialog(object): def setupUi(self, AuditDetailDialog): @@ -86,7 +87,7 @@ class Ui_SongUsageDetailDialog(object): QtCore.QMetaObject.connectSlotsByName(AuditDetailDialog) def retranslateUi(self, AuditDetailDialog): - AuditDetailDialog.setWindowTitle(self.trUtf8('Song Usage Extraction')) - self.DateRangeGroupBox.setTitle(self.trUtf8('Select Date Range')) - self.ToLabel.setText(self.trUtf8('to')) - self.FileGroupBox.setTitle(self.trUtf8('Report Location')) + AuditDetailDialog.setWindowTitle(translate('AuditDetailDialog', 'Song Usage Extraction')) + self.DateRangeGroupBox.setTitle(translate('AuditDetailDialog', 'Select Date Range')) + self.ToLabel.setText(translate('AuditDetailDialog', 'to')) + self.FileGroupBox.setTitle(translate('AuditDetailDialog', 'Report Location')) diff --git a/resources/i18n/openlp_af.qm b/resources/i18n/openlp_af.qm index 8767c8032d6ac679b8f9c34d063a348aa749f460..865213138759d10464fbcc7675370eb81304577a 100644 GIT binary patch delta 4570 zcmZwK30M?I+6VBrXS!#4dU|HK6mL026ci8yFTA*s`w#&^gyD)J8WaR^5{>b|731KI z8rP^O-Xm)QuCCWc@nVg*NzCd7#C44bo{7fj{s%f=HsAO4^UVCJx~saX-m2=J+4z*H zddaM{VLmw8v%P?p-N~`|rfW$4TScuSyuW0pABax;jZFuiI97o$f z`W`N!n&D_bbCu42j1Fk-Q&Y}%B5gU{ob*1drhn*$!P9hSO$&TLcPcSboi+V)MjMu6TIOv$%{Fs7ex!aK~DlX?@`FwFI96QBok zOSThEWo|DQV5#I`roH_h@;79>34N;FlGP`<2sOLeMz1s_TU*@EpZy>Vm zFLU0_!7PXhwnmxXbA;OVtSoWH0HR)fW$U-^h9Ai`W35rIeX`GdhQRM+dpBT;di^Y` zajPQg-A7jQ3iW%Blhn&h|ISB#k?eTwHF!`~myd|_z9p+O->-MOtp1S!i>i->tRZ^@ zbe5fZGam-Yo){0o2HBJL#qgo*)rAX0eKm4%Bj&8{V7abgDGZd`Tv-oG<+gE6uvYTh zZu<%H{*ehp{aodCbJ5X$vGVYsRybE4J9sMGAWt)xd(vMcFE5=2hsl@j41=Na9fi-~ z2l7Mlb?}1x)EhL||B<{Y_7u?oTluYvXn4R1dB-O)uvY%`)G~Op+krOnm*(pO$H;#S zi-T$MSC!^`1$t(3z9>;bpk@SJ34x6XYf@%%ebiw2#uC9BwD=Mhrp!|aJt zEqu(LKN3td$dSDggb)rI$zET8kq(NJ{D}R2&Qs)fu+N%4fsO3Tsmbt1j+y%zk&726 zFUN>oG9WtcQo^z3`Yx5-8eC3t;$w4xuQ<&fgxKXL&hFqkqQUN*|5EJt!P(sST4z|v zO{m-j_eeH(>&i;{a8b^f8rMiJ;UzliTFfOH7r|Rxsvjcf+QDVbttT3y;Pj>2;Rr5! zMI9MvNGz9=y#pr}O5Wshy&n<{?aft`VX+O3g$^B^#M&|C$)m!DmDcqUh zpI|w6Wiu+cf686$6$$IOyY(1>`vdO5w%71ox5K<8^CUmz9=W3Yu+s{e4IWU#ofKBH zaNpt66*dzQ+2JP@eSX1WAO5{!)GEUeA`ek9`HVGmRYaSSAYke#JOK9C(uV2g5z@Qi3=t#XC250S4-x%z4`Oi`}Bj(zQ0BDq(&*6-iQ zpH;3qfXMmYR_?fs5&I2R?hMU?<;p$r%i$5_i60Ppzps>M9-|$%Q549b=#7vL#nt9Afo!Cb*N|iIJnP_5xDsLqg-Q*Zm;cAqhyjWFKCWl*9#h&Zo6;*Nm8~8-E z>I6m_pjB;CAff@Tl1Zw)$qCs10mZ7Cuohf6qN)kUY7O{Cb#U!yqCi%4(6j}*s*VNt z!bsKUD<8u5RhO;^aD}S%BtjavTcA~VVg`xA2$qGH1^=Y2@SzZG!r}|o2r*r{3DbFW zI5=F$%!q^~Fb(@Z*eK)%so)`Dt_^-z1YZ!!>Tu)Wr^3qGe-VWY6e^BjZbQ6z$*TSEKnv>{wSd?(c|251Nj`9g`nechX-{3Lfg&k@`D~uYXt}u+o z+(mV$R|mBbMJv?1mLufRj_O_CiExT!g=C|;uJt<3KT}_fI8PKaQ{A%99vam5nG5i& z`avQh7xO~huGvKtJ4yX4^nG|#{W9_$e5!ssz?LY^B>7x4sE$7;inkZVQY@PIXwkwC z`#io(v@gfDjBgR`SICGG8pIKseu4MJNRO|H5{HX1JQ_?4k}MWubLSzyNi4aG&?jCO zjZwkyjaW6l57E?#;^xl-VZOM9`4-km-ZzL_-kc;#l8f6~G4dok@qj-Y+KXxfxX<*5n#Uo{L}`6B9nQO9wB~2O zy|7H{Y5pCN_N_J~6KlYbuGU8Cu?W+bXk&L_gz2@~cVMv(tkxZVJp^9W9be1B=ejd%`Vi^I>AtK&J$Wg;^23X1dv83md8pgHqQeTFx3<{Po*-*(0(ZyQ@B z{w`<&v+|0}rBP%yalc+0V7_J(r=PbVFH;{{q@Qgr_FEBCllNS?u`SBl7~|K=XgR{x zY)^BY|LS4koO$LdrbxeO-0yl`Hg2%#?zoi}#sC}Jt`~waDAH*0zx!;gi?lPzqoOQ~ zXZzZ+<}Gd$59&y6gJ_Vf{$Qjb9Uz_!ZK1V5QLy zghvH~chT<;M)>bMV}&yP7zgt?W-vZjv;X&CTt_hznK1JOCKaEV_`LV~V$1@ZD`%D( z|2%)BsLq>ho|N?2`hxjJ*9BvZSvM+4$Xpbe+|2tIb@^II=jxxUG1S_5Yj? t?YfXtiVc6l#G)sqA<3INcb}u!ZOT>0~EGH1wW*So`diTMSAtX?}t@dP~@UYBBcvO zl@&mLin{9zS5wq)L9m%(+U~>06zdvDq|#EX-$povVoOTlGKz2dJ1nM!BL?7BN>KX3 zBL+(N_+2FKQNq&)L?TZ~7PvvQqonjc=s`(8d%$p7B)UMoWVvK3En4;~^1CTnVZQGN zNBrwBxl-B8`q} z-u?#0QvEbkpxIBI@1OyilXNAshDaMhpZl+ZIrOz|D%?iB6}Mm;^;V*%+J3sZq@PG< zNzcQQpa&zngz|L>jJ)JL+{p;K93q3RgRyM<85!R&mc6LJLdJ|Nz6f2Iv4`J;>CCvh zdGHA1FdYrGxXL(=M#UD7nLuS7(TK^+;y8D>P;w8WKX)3(XPN9p1b<}m#$zZgotOgi zb(Slc4S(AMYneCVr;~v!Z!yNX$Qbzovv))Q^k+=}{2XR5XZ>yAX6Evxxv-V_LRJfV znd_TWL{^NXCv*Guw>VCe2{LrRYMt!G(-rWD%)SkgdC^_wF!>?OmN{!z!}nw^2RZl? zbTJTF+sV8iAjH-oviK!q;Q`t9nuA0(qHH(j7}>bV-t(9Q(`4`Oz|h#dC99uY4Qplf zk5Qpbr{vEv(+?|%Y~`}%hD*?0*0KVTuuYM*n9H**khPiTlI>1e`?8s^QPweNK#OcI z%I+JRi0u4j_it~2`Lf4n&cJH9dMC!p?xU_EOwX$Cyaj;re-viD&Pj{ea|Y+{|AOt6!kA)v+fPuV3th=_wd zo3SPXe#REAEP~J2qGO1R;~2K6#jHD9l8d2mjDS1gGPeBaQn+5SQSv%lSyhVs2ka_7u33-Sq@5b6U&p)*XPQ?A|0SC#U1={w(v2U6Oa$!wQ^t zX4r;`XV3>ehf!=pr5rA28z&!x2DY&QNzXlg%oZ{wI*1@a8PGGqR z7leGm7%uJ+8a5%Ai#PrW9^{g}5s?WUTzY;R?BOzsYKSJvxMiDLpaYk=Y(JbQS;sAR z{}IOnTv;*Z(4;Y3wU;mS-i&$BOwUHrV-BG}KbAfCwGMly)ci^XzvPv+M?Mmg?(<~O{V z13%#3QvFKgVc<6#?cf)D`Ng$Fp40g9%UG_S3wXnDqL|<6{R1*~@Kucno##=0|8?}( zbC9nM$s+QK;t$1cf^YM!KOyv9@AIebpdzn-@SWUl_>})g(nBI|XZ~vCR2akGx_<^% z@qOB{@FL%L%Y6KRzumZLAfuTZ#72r4gtwLjyK0cHMb+RcNn3!{$5`I#-~f zzN3Znk3NI1NajfHRdS2*w)AaPs*)?T-RapOlw#vSb5XwML z6_w)A7`RV0lVyp5l2yJ5@4{kLqzRKQs74hvm?6}O<=;1boAhVS7qRoO8NY491<)~pTirfOStH`f2W0M+j1Ah=9*s96iQ zsOmpL%jexxHTgb)k5$J7^f2T_)ycb`!T{Ar<*_hXbuI?$K4i7(g30Uw)#Wu9%8-ky z?+B0PkO7f85V25KQErc+3k?-n^ZC$hkv+T@z9T9E4d%pOkudwa7<6GZ(fo1Z{Ik>H zTrt9SC45ti8MhcViz%)M-GbR-PSrE`hG^)6VXb1B&qJc{H^lPbez;St+k}vZH;Z*& z;Vl>bwb;^knJ7Xbc7=7q)#9zg4zNo6&cK{OqDLHvN2nqN@wTQ8#)-d%tb(25qwwcM zQJnZ}tTp^(*l1p@Y<@r#?XFfAZHH-U3vaCF=nA#NdMv-_hiZq-GNPDE>Y2Nq!pG`x zx2r_4{^}?J^~EMimZ}ZW%U?%EgL>T!ggW+?+8FUFQJhX)?PmvL)w@py!S(7r%$KlB z^09i);73I9FRJ(Tp{MaP)s4Q0Onj31s16mx7fYT{A5ZMZ@ileZU36%now}Vd>!W1aqJ%vfhv08vyT(24EjXZ=8@+-kF-jBj+y}1FEDy$aeB$L{ zlVqAKZ{#OU(3Jci8j=*CIdTs}k+f3t@yu*!)O2>e3#1f9 zm71?>3X$m4-1b62i=Jxk%=uN-RpaF3tCa((wBAdA&A7%OkI^DDqOl%*SNt09@QOvG6~+)HE(6f zo6>mQsR}!yv`F3AYTTHXtLra7OVes}12Xg=?L*zYFf6;YUfsP9E)k`VzzZRLu4#{j zm%_+eH`v(3Wi5`#%gBkz&B+W}mzVo`L131CWp1Xi(t5P1*LtI9YH}K@V%&`Rp(Bk} z1!GzB*RSd9lx{|&HQy7Kk)EXwDabG#ns%NuJ@H79|5yImS&7{Lu4T~I-W21v#lmPC zng3rm?u%S$VcMh*e8KPr?IZ^OB?Qvq7k@s;iDnF?%s;cRWvpw09^6pCm(D1DT}MAHiVZDTnRC(C?>&l{mEZ68@R~VZ)jp+6IXjmccw{ zM*iVE4j2s8A2-I4nPARgreeoT`1i&PcgcKa;sPd?!Dld%x!5;g$J_irH>L`CyP5sQ zU)Fkhnn%<;GI6W)nHhl@1^TR&!$V49R6rmRJn-NUP%s8WP8ARV0XgMRQ4tj65KswTpp1ri!m43B z@CXSZD6ELbU`)W(7;#0Sh(_~F+-Q_w)PP5##t_l{4|KA5Z|A+4UsZK?9bZ*-_uMIx zbZ?MsGiTNu?LUdpjamC15j&BbuNciDuTopMm;B4l!Y^pbhHFHet!R$u=QL$!6Uraa zl-n$kjG^G)?cfj!Nqq=iDAeg)7$mw}w37=u=%^LOw!tx@ZYaJ<&}huc0uR z75um8YYN*vk4RxB8ZNp*v_iB+w7XBGErqlBL`rW8Pc<4t;X8S#%cIEaRY+{0D39x~ zT=X18&Dx6m4T>(#gIyH;cmxq|Ptm^x!WfEacnWt?tWy9yM6tf>U>n62Z6;D#Q+(Z* z(4D56-iMJiL+JzaXvXQi@GQ;fc}ApD-J=8(;{`pGkkU>hm{UTh8+4*sDuh(<7tIze zqge}nMfo9`EyH!fmo)nVLMmJr{ex0&|4gLTP+El=dQhQhC|p3B|7`<{sdyzKtNxfu zj_OHA>NB)+A?8veq4M|cKv$}M8x3emsA)YqpsA#`v~nVCC|&b^2WHdv+A*+ zZ_=%;7^w--4@n)+f!>5Cz<5T|s)q%Pw5SDs$tbiru#4$e+eu_<#q_&nr$fS*F)O$P zvzTEuYvDm=_~XU!E@SP2p7xV6Hbc;GKYJ!XSqbMdbK}Or647s&~5bb2Tx_%_G&`J~%M9N~U#NzB0m?5!hK!gVRNvuadhf5_R zG)v)0iCq;(G)M|@{-8vOr|ua-J*Y+!pEQhUuprq{UIo`mc4Mv4;3JYx+#KOgk^{!= zX30ycM{kG2CDq35X6Y?DPhxnGiTp}Q{lQjPD>cyd0*0CTvI~^NE#Qo zLTAaTSLo1?5Q*-oz7B~p$mtINxR@tLXNI#jJ_rSXj*tue=T)ur~hFh-?$t5w-@Xt7OM2&{NxcY?3!3 zF+$F!E=z?k*_B!OM0R#;{t-mP&YR6YZZwiDT7)UEONYCljx9Mn5AGB_BihMsE!|9H z&%m>AAY1ya0N-Y}KN$~m*`1AZu>bAfXUn?LGyDDQZtchLU+lgFY$yBs?1ve~3w!!> z7{%7eaNNP4J-FpHTnFF4eeA)lQfOdnM_0iX(ck(UX(JlT)*eKIBeO-T*keu6*#9G& z*%SF19Oz-2j!YpM<;`9ULI_7CvzM1)q@&h|o?!1R`UUwL?1LDD){$XeFc$Cp^M&CtpszKNb7mDS@*(R0{Q+PZ9RL z(>I*&K|9#P`E9Kv8f`8bD7s9vhKsbr6pe1;;$EP`qi=HY`c*`4`Eav65y7|OxRfOg zFpEpgFNb<=!N%k8B$u|}LwFhLkQfudrH^|E?{LKhSafd>;kJADKsRnru`$1%+q-_Dg6q!Br<;_A*~M9#ZJn;=H+{5^N%n6dmtpDxxAyDhgKlUinkc$U^eWdm3g?e~E|Zw! zM&+6y>z9RkUH8h&Cn2(~S7n2HuhgO+I4=<7B!h!`DdU$!6ptgyXi# z5^XW!ai7W(quq$ybh7!b7@=FOY(eq~ctw^TfXA`h6WNl5sL0(?R$$yc?w+#u6d0NN zT-hcQgxHyb(IdzWm%72FuP?IKXV3m?#%*k$vUd9|t;Q z?N5G$FXdc2ZWx|ka$#j0%$3_JZo&%rn8S#S=S%tcI_Nb>9&A+t1LVOK`7lkMNpiSH z^tya;EVj2-w|x2UsK?tuUbr>~>SE>Z^1l*|pD*929}Mf{C6|^HP3SK#xs3fiVXSDf ze4FP3>yrSR~ z<6yUf8(>1@=b%s(pyPhC6?QwZYy2)K-r{YECYdPSo`H@{@=&;yR>AcOcPmTSsPOOz zh24t4k~|{+L5hfd&$0jga}_gR2cX~|idijq{Q93%WRJT@G+C;6$NCryRTNM?T&q~e zX zXK&FVaax)11ws?#r%XDO3g?UN6uqEK^SX}md&-PWSaiW>m5WPoesHHUuRux^B3CYV zLBvAFD3@oxf-{vL;02RHR)`){9!Q8ozExQrdY34aQC3gIA`P`y9@?h!Mj~8!$gl_I zDvt$tz#YoZHa&#R$_p2Hcw5aBW!3Ta%Q)~t)g0bLG<~h=ZjCi8SKVXI z!7kPPctmQ3O!aUNw$F?}RhPPwD1le~8uAXDt9lXf29~K_4;w%+RJXuH&E~R4*#GG( zHFdABP15&kjxEKAGp=aro$}x_O`~)bQRX1c>Dy>9Gf8u%`4n8LX->pq%)GB@V^QHk z56!oh?J!^S-39EHg{L*QZXps2A8IL}fhbF@weiQ)WsTL2GH&mzY^~Qd?EkEfv|%Ua zp~0-5wDBQWt=Tr(QX4dw9ipu*bc4&Zhr1nNg|>bh3!AlPwhSi9G1Z>mj_Y!qwHc9sj_sFoK>Os=R@jLL!y+?7f{8V&Z}l9&68>x(qRlNB{o+Xjc;jDb z2KO&=EL}A~AKTwd@8-@@ZQu(1p7A3Lo#VT?zg1W;X^g?f zzeQ##M|Vs^vKKGP&6}Q)pPZW#v?w>5IO9Xqa54A?-q>;0c%RotoA=l6ih0l2mi|r5 zK*QwNA58S$*$iNf8(Pn#+91={Ib(r=NevmO3#MJfpalhK@N4{7(9pgFen;SoXyb#) z7C-)fCMcvg6-9Ak$vn!WrAQah`reXav3v)8fYc{q?tj!_!Sv=%_x_$EtQ7Hc_0NPT z-Y|h{tcCvcjmn5bGm-FZdKjoyZ7s* zYq{)~GTGYR%=o>1CNKu~OP>(2L&>jVFifPt>f^AKLYH5L*D18>1QFMZLOWRa9)-Pf zf)glQe-|cFgzHi`N3xb8Mz6>D-z0DLsIZodlw3xUhq{OqpBreB!XAYqk}qk}#u-FP zJIN5q0?8W5Jbew$4VNf( zRUrzuDE8qHBGn*@eK`?MqPUjFa1F(~2E!c`KW-U3Me$`Ti3D3pZ2lUKq^Xv-VHhQ; z0^nRqI1ssMpdQmxP|ucJN7H9N#SJ?s zMS%y^t(0;KAyuE3d`7c6ej^f6I&c9_ACypZOrDcrcao%e>Q)?LnKW0p?FT>5uH-R?r0dwK}c%t3| znX58G9SVWWwdDewDOt_jzyB-FTV=cqGw6L?*7x{oqCS0O_AQ7^-+MBL;m?WsImm`+ z=fg~y({>K-fw zSzQDyl5fp_1~1B+;|~xGa+9~cLC1q;$uCZ6gUb!_t0yr4dxiYrx>)Ecf6}%LCQ7cA zzv#YxNd7V+4)xdNuh!sx2ZrUl{NXIt!o>qFVF%S;fnT$Zfm4Vaeb^y`P4HvZgU5g! zkFX#3BO;DJv-$;kqQRHg;+zs_c*~Z2iO>w`#g-f}JB%&M!%_^H05`xSwtUYFm?v2y z+0L%1Sc&={;Bokvt@vIfa^l&_M`K_lTh;nL%x0^*FfbAwbBRU)!BDsj& zcLEU|TE`wL(ZZ|ji7!KmhV^34h9H8&{Mic&Dv|%grgax+*jo0NyeGJ@m%S5*&<^{7 zeR^>ne8;|+noQ(8fMW`_!30je5HokKgqVSI1IMBvay}~gk`o``x{EcZ*?~~Icyji; zu{T_DxPUU`y~`eMT%!}b%8g%BkNkJJZ!QqI+DXPpF63gIutu)cT*3>C*mVz=X#ALH zxD}V;ix3WX=4KVN!10{EWDCsTW`BABuH`ajZ-w<9XUU!My4sfeVvFY3%ag{y+ zL?cvO%_;*bMkI5aKCOnulAm+6{v9|!#BC|fAR0NDYd(${jhrJ{4KeePd$}+7nd?tW zK8L7x7rBFZn2@^z*J70oeYsu9)%>oBxn2JSy|w>NjeS3QpM zkenmg$lY_s1EbC>WWDi$<>9HY%0a^(g^J!25L%B$h3)Uy^&Te`ek)ywJbNjEj`e~g z6q8Ng!YD=3hlrqOrXqDPChWOJks9kw%z+9IqP+ zLnMnN>lJ6*`=Gu}(fR0Cc*&sTI`M(wW2F>}6JVrrFnND}Ho|)4eru9StLwT9y zO*n;TO-AH@KpxNWUZ|+%xqcR~omZD)Tn6tZ42I48$RrGG+!fxtVms0J zA^d3j{%{)a;}Zd^`HAI)@DLweivdlr;HSL}hOYed)A-t*kj&5ZIt%Ogc@F#FZN8ND zBmV;j@yi4}7&xAtjjKro4D^~4Z>kmIu?KaiG zcGbRMA9!2!)rz}B;r&&o&I-^&)p-~Z4389Or2!w2;cbE^%MwKxgn*?expE8HS{G{^Xf4EkOhSkH zZVj>|(N29|Q%^Lt)1ZDDK94BLSN$UT9V}44wd+STEm!i8sM`Mw=l4XhWIa)`lW5_K z{7sG*9TuXY6*c5;WrEU}V=+HrG zdyi>W;@)XDiPB=kmWP;7+DfsNF}qhhxeE8ET@`;jhxXHc*C0iLOaU*13@3B4V#Iz*DumW>#^DNPqkC(F~iw?waa&&hCbSr)eqnlZS$LG zXwdGPj~Qp|((ZRHgy*!a@{i#Y?U4?2nCYiIcCrmdYfq+P^JN~>USw|~|FbN#-}mo? zaoQhFAw9CHwb!pB5?RM}6x;%D=^O*GcG+s3vpJu$Lv((Zk?+~Xx=Dx7VfIm7VmKm^ z{aRPyhz{pC>Y5gL!x-J3E*Ds$+rO5Db-H7#ZQ)(rHI@w>&NN1IpGyfO*%(lhkI`oi?A zoStPRb=F+-BB#yO=g!yRuK2wCteNwAE*fo@jJ59fA2x(Bami(4z|t_A|9eAtcVkl1 z#$`)`7&2a4>T0wt^SAk93{mM>xrO@N^xT + + AuditDeleteDialog + + + Song Usage Delete + + + + + AuditDetailDialog + + + Song Usage Extraction + + + + + Select Date Range + + + + + to + + + + + Report Location + + + AuthorsForm @@ -2345,6 +2376,107 @@ You can download the latest version from http://openlp.org + + OpenSongExportForm + + + Select OpenSong song folder: + + + + + Full Song List + + + + + Song Title + + + + + Author + + + + + Select All + + + + + Lyrics + + + + + Title + + + + + Song Export List + + + + + Remove Selected + + + + + Progress: + + + + + Ready to export + + + + + Export + + + + + Close + + + + + OpenSongImportForm + + + OpenSong Song Importer + + + + + OpenSong Folder: + + + + + Progress: + + + + + Ready to import + + + + + Import + + + + + Close + + + PluginForm @@ -2750,6 +2882,21 @@ You can download the latest version from http://openlp.org You need to type in a book name! + + + Edit Book + + + + + Name: + + + + + Publisher: + + SongMaintenanceForm @@ -2848,6 +2995,41 @@ You can download the latest version from http://openlp.org Are you sure you want to delete the selected topic? + + + Song Maintenance + + + + + Authors + + + + + Topics + + + + + Books/Hymnals + + + + + Add + + + + + Edit + + + + + Delete + + SongMediaItem @@ -3180,210 +3362,14 @@ You can download the latest version from http://openlp.org Error - - - Ui_OpenSongExportDialog - - - Close - - - - - Lyrics - - - - - Song Title - - - - - Select All - - - - - Song Export List - - - - - Author - - - - - Title - - - - - OpenSong Song Exporter - - - - - Remove Selected - - - - - Progress: - - - - - Select OpenSong song folder: - - - - - Ready to export - - - - - Export - - - - - Full Song List - - - - - Ui_OpenSongImportDialog - - - OpenSong Folder: - - - - - Import - - - - - Close - - - - - Progress: - - - - - OpenSong Song Importer - - - - - Ready to import - - - - - Ui_SongBookDialog - - - Name: - - - - - Edit Book - - - - - Publisher: - - - - - Ui_SongMaintenanceDialog - - - Edit - - - - - Topics - - - - - Add - - - - - Authors - - - - - Delete - - - - - Song Maintenance - - - - - Books/Hymnals - - - - - Ui_SongUsageDeleteDialog - - - Song Usage Delete - - - - - Ui_SongUsageDetailDialog - - - Report Location - - - - - Song Usage Extraction - - - - - Select Date Range - - - - - to - - - - - Ui_TopicsDialog - Topic name: + Topic Maintenance - - Topic Maintenance + + Topic name: diff --git a/resources/i18n/openlp_en_GB.qm b/resources/i18n/openlp_en_GB.qm index 0103ea3084350b6cb1b12f4eadeb91d270dd7c6e..6ccb8a4acb97482c9c6ab297c65dd5ace95453a1 100644 GIT binary patch delta 4268 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 delta 4389 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 diff --git a/resources/i18n/openlp_en_ZA.qm b/resources/i18n/openlp_en_ZA.qm index f21e060ce3fd92fc6cc8265a7410c2eea7c91200..58ee3e02cfc5dbcbb211fa5aa464ff1af936163f 100644 GIT binary patch delta 3148 zcmZA22Urwm8VB%qc4u~GXJ>b%2uKsKfLO4gAVfr(6{RR37zGt^Q4kf&spp;&8xkQb zc0`T+L`4^)0ZvZE8Wk@wK9(p7XNytstT8C}Uzqdmxp^Mu_r34zeDih6_Axv6G6lBG z)x&M)F~;RI{MZK~ZZnNgxxq5o$24N&L?V@5wy*4X*=4e&vbS308H!{V5b<^txlV*# zDa!9>7%Xd`sHA+viz#|_Hj$AxQS^(BNYqgDyKwl3M(5-b2_nTEJO$fRywzjqO9|>A z7*7e+n_&qhe0&Yfl=xd;c%G6po#35T)q-pvN}BSDNIitcsZg)_OB#1!Eu7V&k<^=L za@|uT4pHt|4|s`I{|O_aenji0)ewm)D*5U@45Yn2s7PE%HOuiKaXVd2D?wWd-Pxq1^z;bGiOoX=?#T655Vw5=-iKPCFb?I+L6ecs)cTu5~!`Ljm z40kdf&ZtnTW5U!sh_u$sgfYHwfb1eB<-%#iyO@k5g6EkmPYkj4BeVGLn}~G2OtDoc zOk>P{T!YJ*b0O{EA*S|9FucKBS8RvP%!Y0Mql3hgBk&2ytyN2l${4SBSgRawso1uka%&dm z+IFn+L=#@LEl^%RzZO<2-?mtDOYMuB8M1w8XDNbn-csByRPy}xSieb0Uvfa&TiCy3v1cp#8a@5-KRp_jyJOV*L*@D z7&gOrc7MJSX0oN-(DQc7WXoi4w(6*6OZVdgj&8Ce*dsO3h$pc%WrJY>TRRsWaNHw% zjlDnPUx=TwPhv4LP7?d->Nn8n!@iBj>U2uxSj!7eYh_Py(sT68=_aS$jgfICE+{7p z`fvmHcY;w|aQ+UMCR-$XQnryB)oB5d3(t*tiz#vO;^It;;0kV>KSsc%gqyPRDE7b0 zQ7&!DRwOR9>T1sw`C*^C#&DZgZh)I*&vL~9b%^h9B@5Gt+K=E4o<;-PPm)~&F$L{+ zab-s=`6}5*(31beRamDJxwYj^4t@{AxXTVB$w+RgTwO&45*xV3TRy-;vh}UHx0M~H zQrKeKxTmSCr=ueG0+sEcLRhDA{D?*6p-}bD^@d$k3A4~+k726u(S4yoH6`U3T&bEG zh7;Cfk80*L%kQqL777j6{~j+?e=Vsb>L994Z})_rvI(+Zseb6$7Wu8JhDL194##<} zVJv*XcMxt9b#&$f526Dd)A%87c`%PpCmtSZt@o`F;NhI)%z1clWDctv2%Ciqm~j5yb+i=DvPw}AtN z?qUa+EchhgLtT~#{oI`3cY>eaF!(|U&&wwAb`UarFTo69w)+uyNvPCcBnU|0<2 zir*ArBzk@?ZY&Rnzlgibb+B37TZM-7nl2s|Fh#wViN|031D1tz_(&R-v zfUh+>R-os7wVEBj;3VwZPj;H@HqFt7TI8!W51BLA|NVMv9><|a{o*yxv^!w2=GD;I zM1Gv+?MR%6e!iMduJ%O!?PTL5b@^+=MyZWI7OVd@$^Fk*Z2otokv(q^^Ll&ga9%#h&3G&od_sM{xwO2C2V7~VDc#BoqXMU(C z=%w}#|2;$l9d*4T*1`bI`y+({+`~ zMKE7iU59!GmFv!rH}*o|vhJo+1N@}BbpeYhBvg0zZaPfYQ&E79#-+htT#@6y~WQrj(J2f*Ub5g45iJz;vkH51+7i(Hi3_d834tL9CM=q@e+&kjW zyCv#lvWm7b2Fg!DWJggvO+-AQZ7pP|M`Cxc5=&A+HyZa-^(#k_2*J+ z;k+DQg*WI|+#88ZHqrJbw`i5sJ0gZ*aE3!H8O9E+v-M_Nna+$)OL7pBSjKDTe7`hLq_u(oEmReqnka8)Zry9rtgLKt8wt delta 3283 zcmZ|R2UHYy9tZH>?9S}W&d%;i6QoJepwete6_jR)D8+(GP=YIhQWUJH8;^SyBw}1_ zNNhw8YgF*`gwrT+5et@6&#sY}rv^)`vEO&u@m}7&mwj*e{Qv)%{msAp{(ttnDrV0% zX1OhMd9U3}#<-L|Kk$Z#+ekxHZg9WsLmIO7OCpu6Y=~^SY_aTK*;^KQ6~(c0hnPS{Mb^|izs1f0g;hkLkW*Np`nQqUd6yx8eUXPB6T6cysCzoe9=m2hU8 zMpAE}3AcVlLk$)G%LAUHrL!?3>Q-7cxq(R3(E7jr1p85yKLUwgQ^P{MNZd+iGu9Jn z-04DOK8&UtdOw&+H<#UkWpsP|UHA|B7&ivqW)#gPB8g#?MJHf5W4*K0h(ab~eG>tt z#f(kiX}FE?a7IAsXC_)*Nu;%B#*OF=BV`vbX-)O0Z)dW{5Q)syVQ2 zs50Mu1x!_L$itf3u2dd=hXA&xl$VaLgm0BE&DyytUky%z{gtmv&GiYa@FoNvVcT`< z2`{r9D=!kY_h&sK6X92^v6E*t3bpL`5cIVDbJj4!KxBV_owEl$w!h34<(9$6a5a&G ziY@sbyTZXmcChSBwsb`?+Lyt4xP@JDMS^wgs@gB$4R*~Nyx8G6yH>xMsDp;B7;_Bz z7};$qb3+unW7!8d7k-2$c1NiaZfAG;UQpKUuh+*lszl^-lB^aH>~pr37IHj4l_siHrB6p_R*+xPi!3DLa%a3&ehRUBazfyat|^ea}^d+#>2|%dIcW zfJNNydUUX3xojiE5_G)I?b&B;e`e9m6{6iOfIDQJ1&44)2mDS(ax3IcI}Alb1$XPv zA$W$n_w5__i$(VivO{DSsuZ@^KJJw&>nRB2eoAHAAIa(Aq;hN?s6& z`I)arz#M-50%HyerTk)(BhhE6e97sVu$nJ9gKYn-S@tczJm@}=mo2|yrw#PwH(bM1 zdd=ZC4a$U#{Lx1U=+(+MaBGRW==t+wUclb`tcD|*5T!9N)<>iSQikDC*GDg*`&ChF!b#FP}k;X-!rQ*fJ* z@4k=7TM%mXCt!q7yA1KX$H=Z08nW;n@5920m;Z+UvFM`^jBO1*erj$Uj!2&Y>hZe_ zFiUoW>;-k^60E7uGj&0slE}BcdS=!;*jHVA03Gs8QGct#$b4tZZddPG9)kKw^{(o2 z_(Xkh$pa!kdv(((5q4L%)NO%-jAAdAMWI{_PhJOW#rWzu@Vc0uhNSd+4^xT!9mGko zYS>GhYKt@6e~4JP9|8R5iOVzR!=2(cWtfTXkHxh$F+@GA#jQ0u7$8>Fp(8yui+cqu zQIA^j;Nx@ffml~EoT#T!DK;e`YkNA2C#%g45YNo0fq5FG8>X!15)Io{uhOvFDo{VF zQAL}5Zn2lACT9f>u3q69V+-t^p(%;IOBB#eQ@IEu4~WuKUdKroFhzEg>?O_qmNVG@ z0WUPaFpWfgCTZ@C#EANQt$C=egy%KS2IUh4hH738#fcc0rTO4$PZTsvwnS3bJV$-M z)Gi3g8gxl=pNC`%wvmQ*zYOc71Oah_FIo%{q{K`GXv8<>tIh&ZcT zRCR)=U!bmd%_Eqo+x-r?)Ng@q-*j}a|7KmSaxQGt9l2#hp#BeZ$5VR{MJjbyoLXRS z-PI-}Q{-&j&6`whf6{ix;o zy9EXCfc~BWFOIsPe-ekJi+Zhp^7m$CC$>1CuMr4i~mS@OG%FW4$ znU$A2tspuxZAxy2$;zsIwbAN?&Q#aO+4NQ?2?mB$o^@lYG2=S@&CSXH89Yj>v&pC47wta4uA0*fIO*ZTgm(<7*|AFZJ_B~yp4BC zTbU?bHjide5z0%btgQvdU)!gWcHnutzWd~QeVa{mR<2*77P<6^R=I$jrgscS#Apz~ z!E`$wKV2DX#=(4_am9uI4WB-Y|Nly1Of(Z`t})|q<>10m{>KmV7ql&5N=-otefpSZ z+&p^Hsnm#xwq}*xw=87pYDXhb%j>V;A<`fum(sI%b X^1J6HC0JX@-Hy!7oh&yuCyo3sBJOkj diff --git a/resources/i18n/openlp_es.qm b/resources/i18n/openlp_es.qm index 689a2243014ed1a03ea83132032d5cec91c699a2..f128095b841b2e9f42ae36617e70d4149e64142b 100644 GIT binary patch delta 1743 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 R%ClspWG%JG>FqLa{~OH>-KhWo diff --git a/resources/i18n/openlp_hu.qm b/resources/i18n/openlp_hu.qm index 2dfc0bf7f0e9d70365149824c4fcf7b065af13d0..9f67c7dbcc4680779e644b89fb0b7e72222f6f77 100644 GIT binary patch delta 4337 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 delta 4463 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 delta 2928 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 HH$LURu-*w^ diff --git a/resources/i18n/openlp_pt_BR.qm b/resources/i18n/openlp_pt_BR.qm index 64d9f6364690cdae8f457e0881166c55fb895666..a0d2b109b9b141278e694931a23e471cb63c2a6f 100644 GIT binary patch delta 4427 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 delta 4475 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 diff --git a/resources/i18n/openlp_sv.qm b/resources/i18n/openlp_sv.qm index ba50bcea7768842e36d8a5ef0d1dda05f88e9c1a..bd6daac494b692fb34d91356e57eaacd7e5abf15 100644 GIT binary patch delta 4825 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 LRF{TVF3tKEF#a7# delta 4902 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 Date: Sat, 1 May 2010 00:07:51 +0200 Subject: [PATCH 10/22] resolve merge proposal comments --- openlp/core/lib/toolbar.py | 1 + openlp/core/ui/aboutdialog.py | 3 +- resources/i18n/openlp_en.ts | 6 +- scripts/translation_utils.py | 344 +++++++++++++++++----------------- 4 files changed, 177 insertions(+), 177 deletions(-) diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index 7b5d86d54..824199469 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -124,6 +124,7 @@ class OpenLPToolbar(QtGui.QToolBar): log.error(u'getIconFromTitle - no icon for %s' % title) return QtGui.QIcon() except: + log.exception(u'getIconFromTitle - title %s not found' % title) return QtGui.QIcon() def makeWidgetsInvisible(self, widgets): diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index b3a7ffcbe..8c351b17c 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -167,8 +167,7 @@ class Ui_AboutDialog(object): self.AboutNotebook.indexOf(self.CreditsTab), translate('AboutForm', 'Credits')) self.LicenseTextEdit.setPlainText(translate('AboutForm', - 'Copyright \xa9 2004-2010 Raoul ' - 'Snyman\n' + 'Copyright \xa9 2004-2010 Raoul Snyman\n' 'Portions copyright \xa9 2004-2010 ' 'Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, ' 'Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon ' diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index c27f8bd5a..5f84b2125 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -202,17 +202,17 @@ This General Public License does not permit incorporating your program into prop - + License - + Contribute - + Close diff --git a/scripts/translation_utils.py b/scripts/translation_utils.py index bfb443d1b..7a76a5566 100755 --- a/scripts/translation_utils.py +++ b/scripts/translation_utils.py @@ -1,172 +1,172 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-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. # -# # -# 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., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### -# Short description -# Steps for creating languages: -# 1. make shure that the openlp_en.ts file exist -# 2. go to scripts folder and start: -# python translation_utils.py -a -############################################################################### - -import os -from optparse import OptionParser -import urllib -from PyQt4 import QtCore - -ignore_pathes = ["./scripts", "./openlp/core/test"] -ignore_files = ["setup.py"] -translation_path = "http://pootle.projecthq.biz/export/openlp/" -translations = [ "af" - , "en_ZA" - , "en_GB" - , "de" - , "hu" - , "ko" - , "nb" - , "pt_BR" - , "es" - , "sv"] - - - -def write_file(filename, stringlist): - content = u'' - for line in stringlist: - content = u'%s%s\n' % (content, line) - file = open(filename, u'w') - file.write(content.encode('utf8')) - file.close() - -def main(): - # Set up command line options. - usage = u'Usage: %prog [options]' - parser = OptionParser(usage=usage) - parser.add_option("-d", "--download-ts", action="store_true", dest="download", - help="Load languages from Pootle Server") - parser.add_option("-p", "--prepare", action="store_true", dest="prepare", - help="preparation (generate pro file)") - parser.add_option("-u", "--update", action="store_true", dest="update", - help="update translation files") - parser.add_option("-g", "--generate", action="store_true", dest="generate", - help="generate qm files") - parser.add_option("-a", "--all", action="store_true", dest="all", - help="proceed all options") - - (options, args) = parser.parse_args() - qt_args = [] - if options.download: - downloadTranslations() - elif options.prepare: - preparation() - elif options.update: - update() - elif options.generate: - generate() - elif options.all: - all() - else: - pass - -def downloadTranslations(): - print "download()" - for language in translations: - filename = os.path.join('..','resources', 'i18n', "openlp_%s.ts" % language) - print filename - page = urllib.urlopen("%s%s.ts" % (translation_path, language)) - content = page.read().decode("utf8") - page.close() - file = open(filename, u'w') - file.write(content.encode('utf8')) - file.close() - -def preparation(): - stringlist = [] - start_dir = os.path.join(u'..') - for root, dirs, files in os.walk(start_dir): - for file in files: - path = "%s" % root - path = path.replace("\\","/") - path = path.replace("..",".") - - if file.startswith(u'hook-') or file.startswith(u'test_'): - continue - - cond = False - for search in ignore_pathes: - if path.startswith(search): - cond = True - if cond == True: - continue - cond = False - for search in ignore_files: - if search == file: - cond = True - if cond == True: - continue - - if file.endswith(u'.py'): - line = "%s/%s" % (path, file) - print u'Parsing "%s"' % line - stringlist.append("SOURCES += %s" % line) - elif file.endswith(u'.pyw'): - line = "%s/%s" % (path, file) - print u'Parsing "%s"' % line - stringlist.append("SOURCES += %s" % line) - elif file.endswith(u'.ts'): - line = "%s/%s" % (path, file) - print u'Parsing "%s"' % line - stringlist.append("TRANSLATIONS += %s" % line) - - print u'Generating PRO file...', - stringlist.sort() - write_file(os.path.join(start_dir, u'openlp.pro'), stringlist) - print u'done.' - - -def update(): - print "update()" - updateProcess = QtCore.QProcess() - updateProcess.start("pylupdate4 -noobsolete ../openlp.pro") - updateProcess.waitForFinished(60000) - -def generate(): - print "generate()" - generateProcess = QtCore.QProcess() - generateProcess.start("lrelease ../openlp.pro") - generateProcess.waitForFinished(60000) - -def all(): - print "all()" - downloadTranslations() - preparation() - update() - generate() - - -if __name__ == u'__main__': - if os.path.split(os.path.abspath(u'.'))[1] != u'scripts': - print u'You need to run this script from the scripts directory.' - else: - main() +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2010 Raoul Snyman # +# Portions copyright (c) 2008-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. # +# # +# 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., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### +# Short description +# Steps for creating languages: +# 1. make shure that the openlp_en.ts file exist +# 2. go to scripts folder and start: +# python translation_utils.py -a +############################################################################### + +import os +from optparse import OptionParser +import urllib +from PyQt4 import QtCore + +ignore_pathes = [u"./scripts", u"./openlp/core/test"] +ignore_files = [u"setup.py"] +translation_path = u"http://pootle.projecthq.biz/export/openlp/" +translations = [ u"af" + , u"en_ZA" + , u"en_GB" + , u"de" + , u"hu" + , u"ko" + , u"nb" + , u"pt_BR" + , u"es" + , u"sv"] + + + +def write_file(filename, stringlist): + content = u'' + for line in stringlist: + content = u'%s%s\n' % (content, line) + file = open(filename, u'w') + file.write(content.encode('utf8')) + file.close() + +def main(): + # Set up command line options. + usage = u'Usage: %prog [options]' + parser = OptionParser(usage=usage) + parser.add_option("-d", "--download-ts", action="store_true", dest="download", + help="Load languages from Pootle Server") + parser.add_option("-p", "--prepare", action="store_true", dest="prepare", + help="preparation (generate pro file)") + parser.add_option("-u", "--update", action="store_true", dest="update", + help="update translation files") + parser.add_option("-g", "--generate", action="store_true", dest="generate", + help="generate qm files") + parser.add_option("-a", "--all", action="store_true", dest="all", + help="proceed all options") + + (options, args) = parser.parse_args() + qt_args = [] + if options.download: + downloadTranslations() + elif options.prepare: + preparation() + elif options.update: + update() + elif options.generate: + generate() + elif options.all: + all() + else: + pass + +def downloadTranslations(): + print "download()" + for language in translations: + filename = os.path.join(u'..',u'resources', u'i18n', u"openlp_%s.ts" % language) + print filename + page = urllib.urlopen(u"%s%s.ts" % (translation_path, language)) + content = page.read().decode("utf8") + page.close() + file = open(filename, u'w') + file.write(content.encode('utf8')) + file.close() + +def preparation(): + stringlist = [] + start_dir = os.path.join(u'..') + for root, dirs, files in os.walk(start_dir): + for file in files: + path = u"%s" % root + path = path.replace("\\","/") + path = path.replace("..",".") + + if file.startswith(u'hook-') or file.startswith(u'test_'): + continue + + cond = False + for search in ignore_pathes: + if path.startswith(search): + cond = True + if cond == True: + continue + cond = False + for search in ignore_files: + if search == file: + cond = True + if cond == True: + continue + + if file.endswith(u'.py'): + line = u"%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append(u"SOURCES += %s" % line) + elif file.endswith(u'.pyw'): + line = u"%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append(u"SOURCES += %s" % line) + elif file.endswith(u'.ts'): + line = u"%s/%s" % (path, file) + print u'Parsing "%s"' % line + stringlist.append(u"TRANSLATIONS += %s" % line) + + print u'Generating PRO file...', + stringlist.sort() + write_file(os.path.join(start_dir, u'openlp.pro'), stringlist) + print u'done.' + + +def update(): + print "update()" + updateProcess = QtCore.QProcess() + updateProcess.start(u"pylupdate4 -noobsolete ../openlp.pro") + updateProcess.waitForFinished(60000) + +def generate(): + print "generate()" + generateProcess = QtCore.QProcess() + generateProcess.start(u"lrelease ../openlp.pro") + generateProcess.waitForFinished(60000) + +def all(): + print "all()" + downloadTranslations() + preparation() + update() + generate() + + +if __name__ == u'__main__': + if os.path.split(os.path.abspath(u'.'))[1] != u'scripts': + print u'You need to run this script from the scripts directory.' + else: + main() From 4e296bfb5f0232d312c08333b2419f1aab563ca2 Mon Sep 17 00:00:00 2001 From: rimach Date: Sat, 1 May 2010 21:45:06 +0200 Subject: [PATCH 11/22] changes --- openlp/core/ui/aboutdialog.py | 38 +++---- openlp/core/ui/amendthemedialog.py | 102 +++++++++--------- openlp/core/ui/plugindialog.py | 26 ++--- openlp/core/ui/serviceitemeditdialog.py | 16 +-- openlp/core/ui/servicenotedialog.py | 16 +-- openlp/core/ui/settingsdialog.py | 24 ++--- openlp/plugins/alerts/forms/alertdialog.py | 70 ++++++------ .../plugins/bibles/forms/bibleimportwizard.py | 28 ++--- .../plugins/custom/forms/editcustomdialog.py | 66 ++++++------ openlp/plugins/songs/forms/authorsdialog.py | 34 +++--- openlp/plugins/songs/forms/editsongdialog.py | 78 +++++++------- openlp/plugins/songs/forms/editversedialog.py | 22 ++-- .../plugins/songs/forms/openlpexportdialog.py | 28 ++--- .../plugins/songs/forms/openlpimportdialog.py | 28 ++--- .../songs/forms/opensongexportdialog.py | 28 ++--- .../songs/forms/opensongimportdialog.py | 26 ++--- openlp/plugins/songs/forms/songbookdialog.py | 30 +++--- .../songs/forms/songmaintenancedialog.py | 24 ++--- openlp/plugins/songs/forms/topicsdialog.py | 26 ++--- .../songusage/forms/songusagedeletedialog.py | 22 ++-- .../songusage/forms/songusagedetaildialog.py | 26 ++--- 21 files changed, 379 insertions(+), 379 deletions(-) diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index 8c351b17c..fac8874f5 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -27,25 +27,25 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_AboutDialog(object): - def setupUi(self, AboutForm): - AboutForm.setObjectName(u'AboutDialog') - AboutForm.resize(516, 481) + def setupUi(self, AboutDialog): + AboutDialog.setObjectName(u'AboutDialog') + AboutDialog.resize(516, 481) LogoIcon = QtGui.QIcon() LogoIcon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - AboutForm.setWindowIcon(LogoIcon) - self.AboutFormLayout = QtGui.QVBoxLayout(AboutForm) - self.AboutFormLayout.setSpacing(8) - self.AboutFormLayout.setMargin(8) - self.AboutFormLayout.setObjectName(u'AboutFormLayout') - self.LogoLabel = QtGui.QLabel(AboutForm) + AboutDialog.setWindowIcon(LogoIcon) + self.AboutDialogLayout = QtGui.QVBoxLayout(AboutDialog) + self.AboutDialogLayout.setSpacing(8) + self.AboutDialogLayout.setMargin(8) + self.AboutDialogLayout.setObjectName(u'AboutDialogLayout') + self.LogoLabel = QtGui.QLabel(AboutDialog) self.LogoLabel.setPixmap( QtGui.QPixmap(u':/graphics/openlp-about-logo.png')) self.LogoLabel.setScaledContents(False) self.LogoLabel.setIndent(0) self.LogoLabel.setObjectName(u'LogoLabel') - self.AboutFormLayout.addWidget(self.LogoLabel) - self.AboutNotebook = QtGui.QTabWidget(AboutForm) + self.AboutDialogLayout.addWidget(self.LogoLabel) + self.AboutNotebook = QtGui.QTabWidget(AboutDialog) self.AboutNotebook.setObjectName(u'AboutNotebook') self.AboutTab = QtGui.QWidget() self.AboutTab.setObjectName(u'AboutTab') @@ -80,8 +80,8 @@ class Ui_AboutDialog(object): self.LicenseTextEdit.setObjectName(u'LicenseTextEdit') self.LicenseTabLayout.addWidget(self.LicenseTextEdit) self.AboutNotebook.addTab(self.LicenseTab, '') - self.AboutFormLayout.addWidget(self.AboutNotebook) - self.ButtonWidget = QtGui.QWidget(AboutForm) + self.AboutDialogLayout.addWidget(self.AboutNotebook) + self.ButtonWidget = QtGui.QWidget(AboutDialog) self.ButtonWidget.setObjectName(u'ButtonWidget') self.ButtonWidgetLayout = QtGui.QHBoxLayout(self.ButtonWidget) self.ButtonWidgetLayout.setSpacing(8) @@ -105,16 +105,16 @@ class Ui_AboutDialog(object): self.CloseButton.setIcon(CloseIcon) self.CloseButton.setObjectName(u'CloseButton') self.ButtonWidgetLayout.addWidget(self.CloseButton) - self.AboutFormLayout.addWidget(self.ButtonWidget) + self.AboutDialogLayout.addWidget(self.ButtonWidget) - self.retranslateUi(AboutForm) + self.retranslateUi(AboutDialog) self.AboutNotebook.setCurrentIndex(0) QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), - AboutForm.close) - QtCore.QMetaObject.connectSlotsByName(AboutForm) + AboutDialog.close) + QtCore.QMetaObject.connectSlotsByName(AboutDialog) - def retranslateUi(self, AboutForm): - AboutForm.setWindowTitle(translate('AboutForm', 'About OpenLP')) + def retranslateUi(self, AboutDialog): + AboutDialog.setWindowTitle(translate('AboutForm', 'About OpenLP')) self.AboutTextEdit.setPlainText(translate('AboutForm', 'OpenLP - Open Source Lyrics ' 'Projection\n' diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py index 00000f23d..34c3573da 100644 --- a/openlp/core/ui/amendthemedialog.py +++ b/openlp/core/ui/amendthemedialog.py @@ -28,18 +28,18 @@ from openlp.core.lib import build_icon from openlp.core.lib import translate class Ui_AmendThemeDialog(object): - def setupUi(self, AmendThemeForm): - AmendThemeForm.setObjectName(u'AmendThemeDialog') - AmendThemeForm.setWindowModality(QtCore.Qt.ApplicationModal) - AmendThemeForm.resize(586, 651) + def setupUi(self, AmendThemeDialog): + AmendThemeDialog.setObjectName(u'AmendThemeDialog') + AmendThemeDialog.setWindowModality(QtCore.Qt.ApplicationModal) + AmendThemeDialog.resize(586, 651) icon = build_icon(u':/icon/openlp-logo-16x16.png') - AmendThemeForm.setWindowIcon(icon) - AmendThemeForm.setModal(True) - self.AmendThemeLayout = QtGui.QVBoxLayout(AmendThemeForm) + AmendThemeDialog.setWindowIcon(icon) + AmendThemeDialog.setModal(True) + self.AmendThemeLayout = QtGui.QVBoxLayout(AmendThemeDialog) self.AmendThemeLayout.setSpacing(8) self.AmendThemeLayout.setMargin(8) self.AmendThemeLayout.setObjectName(u'AmendThemeLayout') - self.ThemeNameWidget = QtGui.QWidget(AmendThemeForm) + self.ThemeNameWidget = QtGui.QWidget(AmendThemeDialog) self.ThemeNameWidget.setObjectName(u'ThemeNameWidget') self.ThemeNameLayout = QtGui.QHBoxLayout(self.ThemeNameWidget) self.ThemeNameLayout.setSpacing(8) @@ -52,7 +52,7 @@ class Ui_AmendThemeDialog(object): self.ThemeNameEdit.setObjectName(u'ThemeNameEdit') self.ThemeNameLayout.addWidget(self.ThemeNameEdit) self.AmendThemeLayout.addWidget(self.ThemeNameWidget) - self.ContentWidget = QtGui.QWidget(AmendThemeForm) + self.ContentWidget = QtGui.QWidget(AmendThemeDialog) self.ContentWidget.setObjectName(u'ContentWidget') self.ContentLayout = QtGui.QHBoxLayout(self.ContentWidget) self.ContentLayout.setSpacing(8) @@ -532,7 +532,7 @@ class Ui_AmendThemeDialog(object): self.ThemeTabWidget.addTab(self.OtherOptionsTab, u'') self.ContentLayout.addWidget(self.ThemeTabWidget) self.AmendThemeLayout.addWidget(self.ContentWidget) - self.PreviewGroupBox = QtGui.QGroupBox(AmendThemeForm) + self.PreviewGroupBox = QtGui.QGroupBox(AmendThemeDialog) self.PreviewGroupBox.setObjectName(u'PreviewGroupBox') self.ThemePreviewLayout = QtGui.QHBoxLayout(self.PreviewGroupBox) self.ThemePreviewLayout.setSpacing(8) @@ -556,53 +556,53 @@ class Ui_AmendThemeDialog(object): spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.ThemePreviewLayout.addItem(spacerItem8) self.AmendThemeLayout.addWidget(self.PreviewGroupBox) - self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeForm) + self.ThemeButtonBox = QtGui.QDialogButtonBox(AmendThemeDialog) self.ThemeButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.ThemeButtonBox.setObjectName(u'ThemeButtonBox') self.AmendThemeLayout.addWidget(self.ThemeButtonBox) - self.retranslateUi(AmendThemeForm) + self.retranslateUi(AmendThemeDialog) self.ThemeTabWidget.setCurrentIndex(0) - QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'accepted()'), AmendThemeForm.accept) - QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'rejected()'), AmendThemeForm.reject) - QtCore.QMetaObject.connectSlotsByName(AmendThemeForm) - AmendThemeForm.setTabOrder(self.ThemeButtonBox, self.ThemeNameEdit) - AmendThemeForm.setTabOrder(self.ThemeNameEdit, self.ThemeTabWidget) - AmendThemeForm.setTabOrder(self.ThemeTabWidget, self.BackgroundComboBox) - AmendThemeForm.setTabOrder(self.BackgroundComboBox, self.BackgroundTypeComboBox) - AmendThemeForm.setTabOrder(self.BackgroundTypeComboBox, self.Color1PushButton) - AmendThemeForm.setTabOrder(self.Color1PushButton, self.Color2PushButton) - AmendThemeForm.setTabOrder(self.Color2PushButton, self.ImageLineEdit) - AmendThemeForm.setTabOrder(self.ImageLineEdit, self.ImageToolButton) - AmendThemeForm.setTabOrder(self.ImageToolButton, self.GradientComboBox) - AmendThemeForm.setTabOrder(self.GradientComboBox, self.FontMainComboBox) - AmendThemeForm.setTabOrder(self.FontMainComboBox, self.FontMainColorPushButton) - AmendThemeForm.setTabOrder(self.FontMainColorPushButton, self.FontMainSizeSpinBox) - AmendThemeForm.setTabOrder(self.FontMainSizeSpinBox, self.FontMainWeightComboBox) - AmendThemeForm.setTabOrder(self.FontMainWeightComboBox, self.FontMainLineSpacingSpinBox) - AmendThemeForm.setTabOrder(self.FontMainLineSpacingSpinBox, self.FontMainDefaultCheckBox) - AmendThemeForm.setTabOrder(self.FontMainDefaultCheckBox, self.FontMainXSpinBox) - AmendThemeForm.setTabOrder(self.FontMainXSpinBox, self.FontMainYSpinBox) - AmendThemeForm.setTabOrder(self.FontMainYSpinBox, self.FontMainWidthSpinBox) - AmendThemeForm.setTabOrder(self.FontMainWidthSpinBox, self.FontMainHeightSpinBox) - AmendThemeForm.setTabOrder(self.FontMainHeightSpinBox, self.FontFooterComboBox) - AmendThemeForm.setTabOrder(self.FontFooterComboBox, self.FontFooterColorPushButton) - AmendThemeForm.setTabOrder(self.FontFooterColorPushButton, self.FontFooterSizeSpinBox) - AmendThemeForm.setTabOrder(self.FontFooterSizeSpinBox, self.FontFooterWeightComboBox) - AmendThemeForm.setTabOrder(self.FontFooterWeightComboBox, self.FontFooterDefaultCheckBox) - AmendThemeForm.setTabOrder(self.FontFooterDefaultCheckBox, self.FontFooterXSpinBox) - AmendThemeForm.setTabOrder(self.FontFooterXSpinBox, self.FontFooterYSpinBox) - AmendThemeForm.setTabOrder(self.FontFooterYSpinBox, self.FontFooterWidthSpinBox) - AmendThemeForm.setTabOrder(self.FontFooterWidthSpinBox, self.FontFooterHeightSpinBox) - AmendThemeForm.setTabOrder(self.FontFooterHeightSpinBox, self.OutlineCheckBox) - AmendThemeForm.setTabOrder(self.OutlineCheckBox, self.OutlineColorPushButton) - AmendThemeForm.setTabOrder(self.OutlineColorPushButton, self.ShadowCheckBox) - AmendThemeForm.setTabOrder(self.ShadowCheckBox, self.ShadowColorPushButton) - AmendThemeForm.setTabOrder(self.ShadowColorPushButton, self.HorizontalComboBox) - AmendThemeForm.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox) + QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'accepted()'), AmendThemeDialog.accept) + QtCore.QObject.connect(self.ThemeButtonBox, QtCore.SIGNAL(u'rejected()'), AmendThemeDialog.reject) + QtCore.QMetaObject.connectSlotsByName(AmendThemeDialog) + AmendThemeDialog.setTabOrder(self.ThemeButtonBox, self.ThemeNameEdit) + AmendThemeDialog.setTabOrder(self.ThemeNameEdit, self.ThemeTabWidget) + AmendThemeDialog.setTabOrder(self.ThemeTabWidget, self.BackgroundComboBox) + AmendThemeDialog.setTabOrder(self.BackgroundComboBox, self.BackgroundTypeComboBox) + AmendThemeDialog.setTabOrder(self.BackgroundTypeComboBox, self.Color1PushButton) + AmendThemeDialog.setTabOrder(self.Color1PushButton, self.Color2PushButton) + AmendThemeDialog.setTabOrder(self.Color2PushButton, self.ImageLineEdit) + AmendThemeDialog.setTabOrder(self.ImageLineEdit, self.ImageToolButton) + AmendThemeDialog.setTabOrder(self.ImageToolButton, self.GradientComboBox) + AmendThemeDialog.setTabOrder(self.GradientComboBox, self.FontMainComboBox) + AmendThemeDialog.setTabOrder(self.FontMainComboBox, self.FontMainColorPushButton) + AmendThemeDialog.setTabOrder(self.FontMainColorPushButton, self.FontMainSizeSpinBox) + AmendThemeDialog.setTabOrder(self.FontMainSizeSpinBox, self.FontMainWeightComboBox) + AmendThemeDialog.setTabOrder(self.FontMainWeightComboBox, self.FontMainLineSpacingSpinBox) + AmendThemeDialog.setTabOrder(self.FontMainLineSpacingSpinBox, self.FontMainDefaultCheckBox) + AmendThemeDialog.setTabOrder(self.FontMainDefaultCheckBox, self.FontMainXSpinBox) + AmendThemeDialog.setTabOrder(self.FontMainXSpinBox, self.FontMainYSpinBox) + AmendThemeDialog.setTabOrder(self.FontMainYSpinBox, self.FontMainWidthSpinBox) + AmendThemeDialog.setTabOrder(self.FontMainWidthSpinBox, self.FontMainHeightSpinBox) + AmendThemeDialog.setTabOrder(self.FontMainHeightSpinBox, self.FontFooterComboBox) + AmendThemeDialog.setTabOrder(self.FontFooterComboBox, self.FontFooterColorPushButton) + AmendThemeDialog.setTabOrder(self.FontFooterColorPushButton, self.FontFooterSizeSpinBox) + AmendThemeDialog.setTabOrder(self.FontFooterSizeSpinBox, self.FontFooterWeightComboBox) + AmendThemeDialog.setTabOrder(self.FontFooterWeightComboBox, self.FontFooterDefaultCheckBox) + AmendThemeDialog.setTabOrder(self.FontFooterDefaultCheckBox, self.FontFooterXSpinBox) + AmendThemeDialog.setTabOrder(self.FontFooterXSpinBox, self.FontFooterYSpinBox) + AmendThemeDialog.setTabOrder(self.FontFooterYSpinBox, self.FontFooterWidthSpinBox) + AmendThemeDialog.setTabOrder(self.FontFooterWidthSpinBox, self.FontFooterHeightSpinBox) + AmendThemeDialog.setTabOrder(self.FontFooterHeightSpinBox, self.OutlineCheckBox) + AmendThemeDialog.setTabOrder(self.OutlineCheckBox, self.OutlineColorPushButton) + AmendThemeDialog.setTabOrder(self.OutlineColorPushButton, self.ShadowCheckBox) + AmendThemeDialog.setTabOrder(self.ShadowCheckBox, self.ShadowColorPushButton) + AmendThemeDialog.setTabOrder(self.ShadowColorPushButton, self.HorizontalComboBox) + AmendThemeDialog.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox) - def retranslateUi(self, AmendThemeForm): - AmendThemeForm.setWindowTitle(translate('AmendThemeForm', 'Theme Maintenance')) + def retranslateUi(self, AmendThemeDialog): + AmendThemeDialog.setWindowTitle(translate('AmendThemeForm', 'Theme Maintenance')) self.ThemeNameLabel.setText(translate('AmendThemeForm', 'Theme Name:')) self.BackgroundLabel.setText(translate('AmendThemeForm', 'Background:')) self.BackgroundComboBox.setItemText(0, translate('AmendThemeForm', 'Opaque')) diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py index 3e94d91b6..e9c205e20 100644 --- a/openlp/core/ui/plugindialog.py +++ b/openlp/core/ui/plugindialog.py @@ -27,18 +27,18 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_PluginViewDialog(object): - def setupUi(self, PluginForm): - PluginForm.setObjectName(u'PluginViewDialog') - PluginForm.setWindowModality(QtCore.Qt.ApplicationModal) - PluginForm.resize(554, 344) - self.PluginLayout = QtGui.QVBoxLayout(PluginForm) + def setupUi(self, PluginViewDialog): + PluginViewDialog.setObjectName(u'PluginViewDialog') + PluginViewDialog.setWindowModality(QtCore.Qt.ApplicationModal) + PluginViewDialog.resize(554, 344) + self.PluginLayout = QtGui.QVBoxLayout(PluginViewDialog) self.PluginLayout.setSpacing(8) self.PluginLayout.setMargin(8) self.PluginLayout.setObjectName(u'PluginLayout') self.ListLayout = QtGui.QHBoxLayout() self.ListLayout.setSpacing(8) self.ListLayout.setObjectName(u'ListLayout') - self.PluginListWidget = QtGui.QListWidget(PluginForm) + self.PluginListWidget = QtGui.QListWidget(PluginViewDialog) sizePolicy = QtGui.QSizePolicy( QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -49,7 +49,7 @@ class Ui_PluginViewDialog(object): self.PluginListWidget.setMaximumSize(QtCore.QSize(192, 16777215)) self.PluginListWidget.setObjectName(u'PluginListWidget') self.ListLayout.addWidget(self.PluginListWidget) - self.PluginInfoGroupBox = QtGui.QGroupBox(PluginForm) + self.PluginInfoGroupBox = QtGui.QGroupBox(PluginViewDialog) self.PluginInfoGroupBox.setAlignment( QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.PluginInfoGroupBox.setFlat(False) @@ -88,18 +88,18 @@ class Ui_PluginViewDialog(object): 2, QtGui.QFormLayout.FieldRole, self.AboutTextBrowser) self.ListLayout.addWidget(self.PluginInfoGroupBox) self.PluginLayout.addLayout(self.ListLayout) - self.PluginListButtonBox = QtGui.QDialogButtonBox(PluginForm) + self.PluginListButtonBox = QtGui.QDialogButtonBox(PluginViewDialog) self.PluginListButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok) self.PluginListButtonBox.setObjectName(u'PluginListButtonBox') self.PluginLayout.addWidget(self.PluginListButtonBox) - self.retranslateUi(PluginForm) + self.retranslateUi(PluginViewDialog) QtCore.QObject.connect(self.PluginListButtonBox, - QtCore.SIGNAL(u'accepted()'), PluginForm.close) - QtCore.QMetaObject.connectSlotsByName(PluginForm) + QtCore.SIGNAL(u'accepted()'), PluginViewDialog.close) + QtCore.QMetaObject.connectSlotsByName(PluginViewDialog) - def retranslateUi(self, PluginForm): - PluginForm.setWindowTitle(translate('PluginForm', 'Plugin List')) + def retranslateUi(self, PluginViewDialog): + PluginViewDialog.setWindowTitle(translate('PluginForm', 'Plugin List')) self.PluginInfoGroupBox.setTitle(translate('PluginForm', 'Plugin Details')) self.VersionLabel.setText(translate('PluginForm', 'Version:')) self.VersionNumberLabel.setText(translate('PluginForm', 'TextLabel')) diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py index 47691fcdb..467c2aed8 100644 --- a/openlp/core/ui/serviceitemeditdialog.py +++ b/openlp/core/ui/serviceitemeditdialog.py @@ -27,10 +27,10 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_ServiceItemEditDialog(object): - def setupUi(self, ServiceItemEditForm): - ServiceItemEditForm.setObjectName(u'ServiceItemEditDialog') - ServiceItemEditForm.resize(386, 272) - self.layoutWidget = QtGui.QWidget(ServiceItemEditForm) + def setupUi(self, ServiceItemEditDialog): + ServiceItemEditDialog.setObjectName(u'ServiceItemEditDialog') + ServiceItemEditDialog.resize(386, 272) + self.layoutWidget = QtGui.QWidget(ServiceItemEditDialog) self.layoutWidget.setGeometry(QtCore.QRect(20, 20, 351, 241)) self.layoutWidget.setObjectName(u'layoutWidget') self.outerLayout = QtGui.QVBoxLayout(self.layoutWidget) @@ -63,11 +63,11 @@ class Ui_ServiceItemEditDialog(object): self.buttonBox.setObjectName(u'buttonBox') self.outerLayout.addWidget(self.buttonBox) - self.retranslateUi(ServiceItemEditForm) - QtCore.QMetaObject.connectSlotsByName(ServiceItemEditForm) + self.retranslateUi(ServiceItemEditDialog) + QtCore.QMetaObject.connectSlotsByName(ServiceItemEditDialog) - def retranslateUi(self, ServiceItemEditForm): - ServiceItemEditForm.setWindowTitle(translate('ServiceItemEditForm', 'Service Item Maintenance')) + def retranslateUi(self, ServiceItemEditDialog): + ServiceItemEditDialog.setWindowTitle(translate('ServiceItemEditForm', 'Service Item Maintenance')) self.upButton.setText(translate('ServiceItemEditForm', 'Up')) self.deleteButton.setText(translate('ServiceItemEditForm', 'Delete')) self.downButton.setText(translate('ServiceItemEditForm', 'Down')) diff --git a/openlp/core/ui/servicenotedialog.py b/openlp/core/ui/servicenotedialog.py index c39b29473..b21adce8d 100644 --- a/openlp/core/ui/servicenotedialog.py +++ b/openlp/core/ui/servicenotedialog.py @@ -27,10 +27,10 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_ServiceNoteEdit(object): - def setupUi(self, ServiceNoteForm): - ServiceNoteForm.setObjectName(u'ServiceNoteEdit') - ServiceNoteForm.resize(400, 243) - self.widget = QtGui.QWidget(ServiceNoteForm) + def setupUi(self, ServiceNoteEdit): + ServiceNoteEdit.setObjectName(u'ServiceNoteEdit') + ServiceNoteEdit.resize(400, 243) + self.widget = QtGui.QWidget(ServiceNoteEdit) self.widget.setGeometry(QtCore.QRect(20, 10, 361, 223)) self.widget.setObjectName(u'widget') self.verticalLayout = QtGui.QVBoxLayout(self.widget) @@ -43,8 +43,8 @@ class Ui_ServiceNoteEdit(object): self.buttonBox.setObjectName(u'buttonBox') self.verticalLayout.addWidget(self.buttonBox) - self.retranslateUi(ServiceNoteForm) - QtCore.QMetaObject.connectSlotsByName(ServiceNoteForm) + self.retranslateUi(ServiceNoteEdit) + QtCore.QMetaObject.connectSlotsByName(ServiceNoteEdit) - def retranslateUi(self, ServiceNoteForm): - ServiceNoteForm.setWindowTitle(translate('ServiceNoteForm', 'Service Item Notes')) + def retranslateUi(self, ServiceNoteEdit): + ServiceNoteEdit.setWindowTitle(translate('ServiceNoteForm', 'Service Item Notes')) diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py index fc1ae8ba0..66501e380 100644 --- a/openlp/core/ui/settingsdialog.py +++ b/openlp/core/ui/settingsdialog.py @@ -27,17 +27,17 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_SettingsDialog(object): - def setupUi(self, SettingsForm): - SettingsForm.setObjectName(u'SettingsDialog') - SettingsForm.resize(724, 502) - self.SettingsLayout = QtGui.QVBoxLayout(SettingsForm) + def setupUi(self, SettingsDialog): + SettingsDialog.setObjectName(u'SettingsDialog') + SettingsDialog.resize(724, 502) + self.SettingsLayout = QtGui.QVBoxLayout(SettingsDialog) self.SettingsLayout.setSpacing(8) self.SettingsLayout.setMargin(8) self.SettingsLayout.setObjectName(u'SettingsLayout') - self.SettingsTabWidget = QtGui.QTabWidget(SettingsForm) + self.SettingsTabWidget = QtGui.QTabWidget(SettingsDialog) self.SettingsTabWidget.setObjectName(u'SettingsTabWidget') self.SettingsLayout.addWidget(self.SettingsTabWidget) - self.ButtonsBox = QtGui.QDialogButtonBox(SettingsForm) + self.ButtonsBox = QtGui.QDialogButtonBox(SettingsDialog) sizePolicy = QtGui.QSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) @@ -51,13 +51,13 @@ class Ui_SettingsDialog(object): QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.ButtonsBox.setObjectName(u'ButtonsBox') self.SettingsLayout.addWidget(self.ButtonsBox) - self.retranslateUi(SettingsForm) + self.retranslateUi(SettingsDialog) self.SettingsTabWidget.setCurrentIndex(0) QtCore.QObject.connect(self.ButtonsBox, - QtCore.SIGNAL(u'accepted()'), SettingsForm.accept) + QtCore.SIGNAL(u'accepted()'), SettingsDialog.accept) QtCore.QObject.connect(self.ButtonsBox, - QtCore.SIGNAL(u'rejected()'), SettingsForm.reject) - QtCore.QMetaObject.connectSlotsByName(SettingsForm) + QtCore.SIGNAL(u'rejected()'), SettingsDialog.reject) + QtCore.QMetaObject.connectSlotsByName(SettingsDialog) - def retranslateUi(self, SettingsForm): - SettingsForm.setWindowTitle(translate('SettingsForm', 'Settings')) + def retranslateUi(self, SettingsDialog): + SettingsDialog.setWindowTitle(translate('SettingsForm', 'Settings')) diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index cdb455cd3..2dc117655 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -27,21 +27,21 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_AlertDialog(object): - def setupUi(self, AlertForm): - AlertForm.setObjectName(u'AlertDialog') - AlertForm.resize(567, 440) + def setupUi(self, AlertDialog): + AlertDialog.setObjectName(u'AlertDialog') + AlertDialog.resize(567, 440) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - AlertForm.setWindowIcon(icon) - self.AlertFormLayout = QtGui.QVBoxLayout(AlertForm) - self.AlertFormLayout.setSpacing(8) - self.AlertFormLayout.setMargin(8) - self.AlertFormLayout.setObjectName(u'AlertFormLayout') + AlertDialog.setWindowIcon(icon) + self.AlertDialogLayout = QtGui.QVBoxLayout(AlertDialog) + self.AlertDialogLayout.setSpacing(8) + self.AlertDialogLayout.setMargin(8) + self.AlertDialogLayout.setObjectName(u'AlertDialogLayout') self.AlertTextLayout = QtGui.QFormLayout() self.AlertTextLayout.setContentsMargins(0, 0, -1, -1) self.AlertTextLayout.setSpacing(8) self.AlertTextLayout.setObjectName(u'AlertTextLayout') - self.AlertEntryLabel = QtGui.QLabel(AlertForm) + self.AlertEntryLabel = QtGui.QLabel(AlertDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -49,41 +49,41 @@ class Ui_AlertDialog(object): self.AlertEntryLabel.setSizePolicy(sizePolicy) self.AlertEntryLabel.setObjectName(u'AlertEntryLabel') self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.AlertEntryLabel) - self.AlertParameter = QtGui.QLabel(AlertForm) + self.AlertParameter = QtGui.QLabel(AlertDialog) self.AlertParameter.setObjectName(u'AlertParameter') self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.AlertParameter) - self.ParameterEdit = QtGui.QLineEdit(AlertForm) + self.ParameterEdit = QtGui.QLineEdit(AlertDialog) self.ParameterEdit.setObjectName(u'ParameterEdit') self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.ParameterEdit) - self.AlertTextEdit = QtGui.QLineEdit(AlertForm) + self.AlertTextEdit = QtGui.QLineEdit(AlertDialog) self.AlertTextEdit.setObjectName(u'AlertTextEdit') self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.AlertTextEdit) - self.AlertFormLayout.addLayout(self.AlertTextLayout) + self.AlertDialogLayout.addLayout(self.AlertTextLayout) self.ManagementLayout = QtGui.QHBoxLayout() self.ManagementLayout.setSpacing(8) self.ManagementLayout.setContentsMargins(-1, -1, -1, 0) self.ManagementLayout.setObjectName(u'ManagementLayout') - self.AlertListWidget = QtGui.QListWidget(AlertForm) + self.AlertListWidget = QtGui.QListWidget(AlertDialog) self.AlertListWidget.setAlternatingRowColors(True) self.AlertListWidget.setObjectName(u'AlertListWidget') self.ManagementLayout.addWidget(self.AlertListWidget) self.ManageButtonLayout = QtGui.QVBoxLayout() self.ManageButtonLayout.setSpacing(8) self.ManageButtonLayout.setObjectName(u'ManageButtonLayout') - self.NewButton = QtGui.QPushButton(AlertForm) + self.NewButton = QtGui.QPushButton(AlertDialog) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(u':/general/general_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.NewButton.setIcon(icon1) self.NewButton.setObjectName(u'NewButton') self.ManageButtonLayout.addWidget(self.NewButton) - self.SaveButton = QtGui.QPushButton(AlertForm) + self.SaveButton = QtGui.QPushButton(AlertDialog) self.SaveButton.setEnabled(False) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(u':/general/general_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.SaveButton.setIcon(icon2) self.SaveButton.setObjectName(u'SaveButton') self.ManageButtonLayout.addWidget(self.SaveButton) - self.DeleteButton = QtGui.QPushButton(AlertForm) + self.DeleteButton = QtGui.QPushButton(AlertDialog) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(u':/general/general_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DeleteButton.setIcon(icon3) @@ -92,49 +92,49 @@ class Ui_AlertDialog(object): spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.ManageButtonLayout.addItem(spacerItem) self.ManagementLayout.addLayout(self.ManageButtonLayout) - self.AlertFormLayout.addLayout(self.ManagementLayout) + self.AlertDialogLayout.addLayout(self.ManagementLayout) self.AlertButtonLayout = QtGui.QHBoxLayout() self.AlertButtonLayout.setSpacing(8) self.AlertButtonLayout.setObjectName(u'AlertButtonLayout') spacerItem1 = QtGui.QSpacerItem(181, 0, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.AlertButtonLayout.addItem(spacerItem1) - self.DisplayButton = QtGui.QPushButton(AlertForm) + self.DisplayButton = QtGui.QPushButton(AlertDialog) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(u':/general/general_live.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DisplayButton.setIcon(icon4) self.DisplayButton.setObjectName(u'DisplayButton') self.AlertButtonLayout.addWidget(self.DisplayButton) - self.DisplayCloseButton = QtGui.QPushButton(AlertForm) + self.DisplayCloseButton = QtGui.QPushButton(AlertDialog) self.DisplayCloseButton.setIcon(icon4) self.DisplayCloseButton.setObjectName(u'DisplayCloseButton') self.AlertButtonLayout.addWidget(self.DisplayCloseButton) - self.CloseButton = QtGui.QPushButton(AlertForm) + self.CloseButton = QtGui.QPushButton(AlertDialog) icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(u':/system/system_close.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.CloseButton.setIcon(icon5) self.CloseButton.setObjectName(u'CloseButton') self.AlertButtonLayout.addWidget(self.CloseButton) - self.AlertFormLayout.addLayout(self.AlertButtonLayout) + self.AlertDialogLayout.addLayout(self.AlertButtonLayout) self.AlertEntryLabel.setBuddy(self.AlertTextEdit) self.AlertParameter.setBuddy(self.ParameterEdit) - self.retranslateUi(AlertForm) - QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AlertForm.close) - QtCore.QMetaObject.connectSlotsByName(AlertForm) - AlertForm.setTabOrder(self.AlertTextEdit, self.ParameterEdit) - AlertForm.setTabOrder(self.ParameterEdit, self.AlertListWidget) - AlertForm.setTabOrder(self.AlertListWidget, self.NewButton) - AlertForm.setTabOrder(self.NewButton, self.SaveButton) - AlertForm.setTabOrder(self.SaveButton, self.DeleteButton) - AlertForm.setTabOrder(self.DeleteButton, self.DisplayButton) - AlertForm.setTabOrder(self.DisplayButton, self.DisplayCloseButton) - AlertForm.setTabOrder(self.DisplayCloseButton, self.CloseButton) + self.retranslateUi(AlertDialog) + QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AlertDialog.close) + QtCore.QMetaObject.connectSlotsByName(AlertDialog) + AlertDialog.setTabOrder(self.AlertTextEdit, self.ParameterEdit) + AlertDialog.setTabOrder(self.ParameterEdit, self.AlertListWidget) + AlertDialog.setTabOrder(self.AlertListWidget, self.NewButton) + AlertDialog.setTabOrder(self.NewButton, self.SaveButton) + AlertDialog.setTabOrder(self.SaveButton, self.DeleteButton) + AlertDialog.setTabOrder(self.DeleteButton, self.DisplayButton) + AlertDialog.setTabOrder(self.DisplayButton, self.DisplayCloseButton) + AlertDialog.setTabOrder(self.DisplayCloseButton, self.CloseButton) - def retranslateUi(self, AlertForm): - AlertForm.setWindowTitle(translate('AlertForm', 'Alert Message')) + def retranslateUi(self, AlertDialog): + AlertDialog.setWindowTitle(translate('AlertForm', 'Alert Message')) self.AlertEntryLabel.setText(translate('AlertForm', 'Alert &text:')) self.AlertParameter.setText(translate('AlertForm', '&Parameter(s):')) self.NewButton.setText(translate('AlertForm', '&New')) diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index 8acfdac21..c709dae81 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -27,12 +27,12 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_BibleImportWizard(object): - def setupUi(self, ImportWizardForm): - ImportWizardForm.setObjectName(u'BibleImportWizard') - ImportWizardForm.resize(550, 386) - ImportWizardForm.setModal(True) - ImportWizardForm.setWizardStyle(QtGui.QWizard.ModernStyle) - ImportWizardForm.setOptions( + def setupUi(self, BibleImportWizard): + BibleImportWizard.setObjectName(u'BibleImportWizard') + BibleImportWizard.resize(550, 386) + BibleImportWizard.setModal(True) + BibleImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) + BibleImportWizard.setOptions( QtGui.QWizard.IndependentPages | \ QtGui.QWizard.NoBackButtonOnStartPage | \ QtGui.QWizard.NoBackButtonOnLastPage) @@ -58,7 +58,7 @@ class Ui_BibleImportWizard(object): spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.WelcomeLayout.addItem(spacerItem1) - ImportWizardForm.addPage(self.WelcomePage) + BibleImportWizard.addPage(self.WelcomePage) self.SelectPage = QtGui.QWizardPage() self.SelectPage.setObjectName(u'SelectPage') self.SelectPageLayout = QtGui.QVBoxLayout(self.SelectPage) @@ -252,7 +252,7 @@ class Ui_BibleImportWizard(object): self.WebDownloadLayout.addWidget(self.WebDownloadTabWidget) self.FormatWidget.addWidget(self.WebDownloadPage) self.SelectPageLayout.addWidget(self.FormatWidget) - ImportWizardForm.addPage(self.SelectPage) + BibleImportWizard.addPage(self.SelectPage) self.LicenseDetailsPage = QtGui.QWizardPage() self.LicenseDetailsPage.setObjectName(u'LicenseDetailsPage') self.LicenseDetailsLayout = QtGui.QFormLayout(self.LicenseDetailsPage) @@ -283,7 +283,7 @@ class Ui_BibleImportWizard(object): self.PermissionEdit.setObjectName(u'PermissionEdit') self.LicenseDetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.PermissionEdit) - ImportWizardForm.addPage(self.LicenseDetailsPage) + BibleImportWizard.addPage(self.LicenseDetailsPage) self.ImportPage = QtGui.QWizardPage() self.ImportPage.setObjectName(u'ImportPage') self.ImportLayout = QtGui.QVBoxLayout(self.ImportPage) @@ -297,18 +297,18 @@ class Ui_BibleImportWizard(object): self.ImportProgressBar.setValue(0) self.ImportProgressBar.setObjectName(u'ImportProgressBar') self.ImportLayout.addWidget(self.ImportProgressBar) - ImportWizardForm.addPage(self.ImportPage) + BibleImportWizard.addPage(self.ImportPage) - self.retranslateUi(ImportWizardForm) + self.retranslateUi(BibleImportWizard) self.FormatWidget.setCurrentIndex(0) self.WebDownloadTabWidget.setCurrentIndex(0) QtCore.QObject.connect(self.FormatComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.FormatWidget.setCurrentIndex) - QtCore.QMetaObject.connectSlotsByName(ImportWizardForm) + QtCore.QMetaObject.connectSlotsByName(BibleImportWizard) - def retranslateUi(self, ImportWizardForm): - ImportWizardForm.setWindowTitle(translate('ImportWizardForm', 'Bible Import Wizard')) + def retranslateUi(self, BibleImportWizard): + BibleImportWizard.setWindowTitle(translate('ImportWizardForm', 'Bible Import Wizard')) self.TitleLabel.setText( u'' + \ translate('ImportWizardForm', 'Welcome to the Bible Import Wizard') + u'') diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 79380b9ba..57497ebaf 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -27,33 +27,33 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_customEditDialog(object): - def setupUi(self, EditCustomForm): - EditCustomForm.setObjectName(u'customEditDialog') - EditCustomForm.resize(590, 541) + def setupUi(self, customEditDialog): + customEditDialog.setObjectName(u'customEditDialog') + customEditDialog.resize(590, 541) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - EditCustomForm.setWindowIcon(icon) - self.gridLayout = QtGui.QGridLayout(EditCustomForm) + customEditDialog.setWindowIcon(icon) + self.gridLayout = QtGui.QGridLayout(customEditDialog) self.gridLayout.setObjectName(u'gridLayout') self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(u'horizontalLayout') - self.TitleLabel = QtGui.QLabel(EditCustomForm) + self.TitleLabel = QtGui.QLabel(customEditDialog) self.TitleLabel.setObjectName(u'TitleLabel') self.horizontalLayout.addWidget(self.TitleLabel) - self.TitleEdit = QtGui.QLineEdit(EditCustomForm) + self.TitleEdit = QtGui.QLineEdit(customEditDialog) self.TitleEdit.setObjectName(u'TitleEdit') self.horizontalLayout.addWidget(self.TitleEdit) self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.VerseListView = QtGui.QListWidget(EditCustomForm) + self.VerseListView = QtGui.QListWidget(customEditDialog) self.VerseListView.setAlternatingRowColors(True) self.VerseListView.setObjectName(u'VerseListView') self.horizontalLayout_4.addWidget(self.VerseListView) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName(u'verticalLayout') - self.UpButton = QtGui.QPushButton(EditCustomForm) + self.UpButton = QtGui.QPushButton(customEditDialog) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(u':/services/service_up.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -63,7 +63,7 @@ class Ui_customEditDialog(object): spacerItem = QtGui.QSpacerItem(20, 128, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) - self.DownButton = QtGui.QPushButton(EditCustomForm) + self.DownButton = QtGui.QPushButton(customEditDialog) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(u':/services/service_down.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -72,7 +72,7 @@ class Ui_customEditDialog(object): self.verticalLayout.addWidget(self.DownButton) self.horizontalLayout_4.addLayout(self.verticalLayout) self.gridLayout.addLayout(self.horizontalLayout_4, 1, 0, 1, 1) - self.EditWidget = QtGui.QWidget(EditCustomForm) + self.EditWidget = QtGui.QWidget(customEditDialog) self.EditWidget.setObjectName(u'EditWidget') self.EditLayout_3 = QtGui.QHBoxLayout(self.EditWidget) self.EditLayout_3.setSpacing(8) @@ -113,47 +113,47 @@ class Ui_customEditDialog(object): self.gridLayout.addWidget(self.EditWidget, 2, 0, 1, 1) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ThemeLabel = QtGui.QLabel(EditCustomForm) + self.ThemeLabel = QtGui.QLabel(customEditDialog) self.ThemeLabel.setObjectName(u'ThemeLabel') self.horizontalLayout_3.addWidget(self.ThemeLabel) - self.ThemeComboBox = QtGui.QComboBox(EditCustomForm) + self.ThemeComboBox = QtGui.QComboBox(customEditDialog) self.ThemeComboBox.setObjectName(u'ThemeComboBox') self.horizontalLayout_3.addWidget(self.ThemeComboBox) self.gridLayout.addLayout(self.horizontalLayout_3, 3, 0, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.CreditLabel = QtGui.QLabel(EditCustomForm) + self.CreditLabel = QtGui.QLabel(customEditDialog) self.CreditLabel.setObjectName(u'CreditLabel') self.horizontalLayout_2.addWidget(self.CreditLabel) - self.CreditEdit = QtGui.QLineEdit(EditCustomForm) + self.CreditEdit = QtGui.QLineEdit(customEditDialog) self.CreditEdit.setObjectName(u'CreditEdit') self.horizontalLayout_2.addWidget(self.CreditEdit) self.gridLayout.addLayout(self.horizontalLayout_2, 4, 0, 1, 1) - self.buttonBox = QtGui.QDialogButtonBox(EditCustomForm) + self.buttonBox = QtGui.QDialogButtonBox(customEditDialog) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save) self.buttonBox.setObjectName(u'buttonBox') self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 1) - self.retranslateUi(EditCustomForm) + self.retranslateUi(customEditDialog) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'), - EditCustomForm.accept) + customEditDialog.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), - EditCustomForm.closePressed) - QtCore.QMetaObject.connectSlotsByName(EditCustomForm) - EditCustomForm.setTabOrder(self.TitleEdit, self.VerseTextEdit) - EditCustomForm.setTabOrder(self.VerseTextEdit, self.AddButton) - EditCustomForm.setTabOrder(self.AddButton, self.VerseListView) - EditCustomForm.setTabOrder(self.VerseListView, self.EditButton) - EditCustomForm.setTabOrder(self.EditButton, self.EditAllButton) - EditCustomForm.setTabOrder(self.EditAllButton, self.SaveButton) - EditCustomForm.setTabOrder(self.SaveButton, self.DeleteButton) - EditCustomForm.setTabOrder(self.DeleteButton, self.CreditEdit) - EditCustomForm.setTabOrder(self.CreditEdit, self.UpButton) - EditCustomForm.setTabOrder(self.UpButton, self.DownButton) - EditCustomForm.setTabOrder(self.DownButton, self.ThemeComboBox) + customEditDialog.closePressed) + QtCore.QMetaObject.connectSlotsByName(customEditDialog) + customEditDialog.setTabOrder(self.TitleEdit, self.VerseTextEdit) + customEditDialog.setTabOrder(self.VerseTextEdit, self.AddButton) + customEditDialog.setTabOrder(self.AddButton, self.VerseListView) + customEditDialog.setTabOrder(self.VerseListView, self.EditButton) + customEditDialog.setTabOrder(self.EditButton, self.EditAllButton) + customEditDialog.setTabOrder(self.EditAllButton, self.SaveButton) + customEditDialog.setTabOrder(self.SaveButton, self.DeleteButton) + customEditDialog.setTabOrder(self.DeleteButton, self.CreditEdit) + customEditDialog.setTabOrder(self.CreditEdit, self.UpButton) + customEditDialog.setTabOrder(self.UpButton, self.DownButton) + customEditDialog.setTabOrder(self.DownButton, self.ThemeComboBox) - def retranslateUi(self, EditCustomForm): - EditCustomForm.setWindowTitle(translate('EditCustomForm', 'Edit Custom Slides')) + def retranslateUi(self, customEditDialog): + customEditDialog.setWindowTitle(translate('EditCustomForm', 'Edit Custom Slides')) self.UpButton.setToolTip(translate('EditCustomForm', 'Move slide Up 1')) self.DownButton.setToolTip(translate('EditCustomForm', 'Move slide down 1')) self.TitleLabel.setText(translate('EditCustomForm', 'Title:')) diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index 10bef469f..dbd7af077 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -27,38 +27,38 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_AuthorsDialog(object): - def setupUi(self, AuthorsForm): - AuthorsForm.setObjectName(u'AuthorsDialog') - AuthorsForm.resize(393, 147) - self.AuthorsLayout = QtGui.QFormLayout(AuthorsForm) + def setupUi(self, AuthorsDialog): + AuthorsDialog.setObjectName(u'AuthorsDialog') + AuthorsDialog.resize(393, 147) + self.AuthorsLayout = QtGui.QFormLayout(AuthorsDialog) self.AuthorsLayout.setMargin(8) self.AuthorsLayout.setSpacing(8) self.AuthorsLayout.setObjectName(u'AuthorsLayout') - self.FirstNameLabel = QtGui.QLabel(AuthorsForm) + self.FirstNameLabel = QtGui.QLabel(AuthorsDialog) self.FirstNameLabel.setObjectName(u'FirstNameLabel') self.AuthorsLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.FirstNameLabel) - self.FirstNameEdit = QtGui.QLineEdit(AuthorsForm) + self.FirstNameEdit = QtGui.QLineEdit(AuthorsDialog) self.FirstNameEdit.setObjectName(u'FirstNameEdit') self.AuthorsLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.FirstNameEdit) - self.LastNameLabel = QtGui.QLabel(AuthorsForm) + self.LastNameLabel = QtGui.QLabel(AuthorsDialog) self.LastNameLabel.setObjectName(u'LastNameLabel') self.AuthorsLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.LastNameLabel) - self.LastNameEdit = QtGui.QLineEdit(AuthorsForm) + self.LastNameEdit = QtGui.QLineEdit(AuthorsDialog) self.LastNameEdit.setObjectName(u'LastNameEdit') self.AuthorsLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.LastNameEdit) - self.DisplayLabel = QtGui.QLabel(AuthorsForm) + self.DisplayLabel = QtGui.QLabel(AuthorsDialog) self.DisplayLabel.setObjectName(u'DisplayLabel') self.AuthorsLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.DisplayLabel) - self.DisplayEdit = QtGui.QLineEdit(AuthorsForm) + self.DisplayEdit = QtGui.QLineEdit(AuthorsDialog) self.DisplayEdit.setObjectName(u'DisplayEdit') self.AuthorsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.DisplayEdit) - self.AuthorButtonBox = QtGui.QDialogButtonBox(AuthorsForm) + self.AuthorButtonBox = QtGui.QDialogButtonBox(AuthorsDialog) self.AuthorButtonBox.setOrientation(QtCore.Qt.Horizontal) self.AuthorButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save) @@ -66,15 +66,15 @@ class Ui_AuthorsDialog(object): self.AuthorsLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.AuthorButtonBox) - self.retranslateUi(AuthorsForm) + self.retranslateUi(AuthorsDialog) QtCore.QObject.connect(self.AuthorButtonBox, - QtCore.SIGNAL(u'accepted()'), AuthorsForm.accept) + QtCore.SIGNAL(u'accepted()'), AuthorsDialog.accept) QtCore.QObject.connect(self.AuthorButtonBox, - QtCore.SIGNAL(u'rejected()'), AuthorsForm.reject) - QtCore.QMetaObject.connectSlotsByName(AuthorsForm) + QtCore.SIGNAL(u'rejected()'), AuthorsDialog.reject) + QtCore.QMetaObject.connectSlotsByName(AuthorsDialog) - def retranslateUi(self, AuthorsForm): - AuthorsForm.setWindowTitle(translate('AuthorsForm', 'Author Maintenance')) + def retranslateUi(self, AuthorsDialog): + AuthorsDialog.setWindowTitle(translate('AuthorsForm', 'Author Maintenance')) self.DisplayLabel.setText(translate('AuthorsForm', 'Display name:')) self.FirstNameLabel.setText(translate('AuthorsForm', 'First name:')) self.LastNameLabel.setText(translate('AuthorsForm', 'Last name:')) diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index 04df954ec..6d617072d 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -29,16 +29,16 @@ from openlp.core.lib import translate from openlp.core.lib import build_icon class Ui_EditSongDialog(object): - def setupUi(self, EditSongForm): - EditSongForm.setObjectName(u'EditSongDialog') - EditSongForm.resize(645, 417) + def setupUi(self, EditSongDialog): + EditSongDialog.setObjectName(u'EditSongDialog') + EditSongDialog.resize(645, 417) icon = build_icon(u':/icon/openlp.org-icon-32.bmp') - EditSongForm.setWindowIcon(icon) - EditSongForm.setModal(True) - self.verticalLayout = QtGui.QVBoxLayout(EditSongForm) + EditSongDialog.setWindowIcon(icon) + EditSongDialog.setModal(True) + self.verticalLayout = QtGui.QVBoxLayout(EditSongDialog) self.verticalLayout.setMargin(8) self.verticalLayout.setObjectName(u'verticalLayout') - self.SongTabWidget = QtGui.QTabWidget(EditSongForm) + self.SongTabWidget = QtGui.QTabWidget(EditSongDialog) self.SongTabWidget.setObjectName(u'SongTabWidget') self.LyricsTab = QtGui.QWidget() self.LyricsTab.setObjectName(u'LyricsTab') @@ -380,46 +380,46 @@ class Ui_EditSongDialog(object): self.ThemeTabLayout.addItem(spacerItem5) self.SongTabWidget.addTab(self.ThemeTab, u'') self.verticalLayout.addWidget(self.SongTabWidget) - self.ButtonBox = QtGui.QDialogButtonBox(EditSongForm) + self.ButtonBox = QtGui.QDialogButtonBox(EditSongDialog) self.ButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Save) self.ButtonBox.setObjectName(u'ButtonBox') self.verticalLayout.addWidget(self.ButtonBox) - self.retranslateUi(EditSongForm) + self.retranslateUi(EditSongDialog) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'rejected()'), EditSongForm.closePressed) + QtCore.SIGNAL(u'rejected()'), EditSongDialog.closePressed) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'accepted()'), EditSongForm.accept) - QtCore.QMetaObject.connectSlotsByName(EditSongForm) - EditSongForm.setTabOrder(self.SongTabWidget, self.TitleEditItem) - EditSongForm.setTabOrder(self.TitleEditItem, self.AlternativeEdit) - EditSongForm.setTabOrder(self.AlternativeEdit, self.VerseListWidget) - EditSongForm.setTabOrder(self.VerseListWidget, self.VerseAddButton) - EditSongForm.setTabOrder(self.VerseAddButton, self.VerseEditButton) - EditSongForm.setTabOrder(self.VerseEditButton, self.VerseEditAllButton) - EditSongForm.setTabOrder(self.VerseEditAllButton, self.VerseDeleteButton) - EditSongForm.setTabOrder(self.VerseDeleteButton, self.VerseOrderEdit) - EditSongForm.setTabOrder(self.VerseOrderEdit, self.AuthorsSelectionComboItem) - EditSongForm.setTabOrder(self.AuthorsSelectionComboItem, self.AuthorAddButton) - EditSongForm.setTabOrder(self.AuthorAddButton, self.AuthorsListView) - EditSongForm.setTabOrder(self.AuthorsListView, self.AuthorRemoveButton) - EditSongForm.setTabOrder(self.AuthorRemoveButton, self.MaintenanceButton) - EditSongForm.setTabOrder(self.MaintenanceButton, self.SongTopicCombo) - EditSongForm.setTabOrder(self.SongTopicCombo, self.TopicAddButton) - EditSongForm.setTabOrder(self.TopicAddButton, self.TopicsListView) - EditSongForm.setTabOrder(self.TopicsListView, self.TopicRemoveButton) - EditSongForm.setTabOrder(self.TopicRemoveButton, self.SongbookCombo) - EditSongForm.setTabOrder(self.SongbookCombo, self.ThemeSelectionComboItem) - EditSongForm.setTabOrder(self.ThemeSelectionComboItem, self.ThemeAddButton) - EditSongForm.setTabOrder(self.ThemeAddButton, self.CopyrightEditItem) - EditSongForm.setTabOrder(self.CopyrightEditItem, self.CopyrightInsertButton) - EditSongForm.setTabOrder(self.CopyrightInsertButton, self.CCLNumberEdit) - EditSongForm.setTabOrder(self.CCLNumberEdit, self.CommentsEdit) - EditSongForm.setTabOrder(self.CommentsEdit, self.ButtonBox) + QtCore.SIGNAL(u'accepted()'), EditSongDialog.accept) + QtCore.QMetaObject.connectSlotsByName(EditSongDialog) + EditSongDialog.setTabOrder(self.SongTabWidget, self.TitleEditItem) + EditSongDialog.setTabOrder(self.TitleEditItem, self.AlternativeEdit) + EditSongDialog.setTabOrder(self.AlternativeEdit, self.VerseListWidget) + EditSongDialog.setTabOrder(self.VerseListWidget, self.VerseAddButton) + EditSongDialog.setTabOrder(self.VerseAddButton, self.VerseEditButton) + EditSongDialog.setTabOrder(self.VerseEditButton, self.VerseEditAllButton) + EditSongDialog.setTabOrder(self.VerseEditAllButton, self.VerseDeleteButton) + EditSongDialog.setTabOrder(self.VerseDeleteButton, self.VerseOrderEdit) + EditSongDialog.setTabOrder(self.VerseOrderEdit, self.AuthorsSelectionComboItem) + EditSongDialog.setTabOrder(self.AuthorsSelectionComboItem, self.AuthorAddButton) + EditSongDialog.setTabOrder(self.AuthorAddButton, self.AuthorsListView) + EditSongDialog.setTabOrder(self.AuthorsListView, self.AuthorRemoveButton) + EditSongDialog.setTabOrder(self.AuthorRemoveButton, self.MaintenanceButton) + EditSongDialog.setTabOrder(self.MaintenanceButton, self.SongTopicCombo) + EditSongDialog.setTabOrder(self.SongTopicCombo, self.TopicAddButton) + EditSongDialog.setTabOrder(self.TopicAddButton, self.TopicsListView) + EditSongDialog.setTabOrder(self.TopicsListView, self.TopicRemoveButton) + EditSongDialog.setTabOrder(self.TopicRemoveButton, self.SongbookCombo) + EditSongDialog.setTabOrder(self.SongbookCombo, self.ThemeSelectionComboItem) + EditSongDialog.setTabOrder(self.ThemeSelectionComboItem, self.ThemeAddButton) + EditSongDialog.setTabOrder(self.ThemeAddButton, self.CopyrightEditItem) + EditSongDialog.setTabOrder(self.CopyrightEditItem, self.CopyrightInsertButton) + EditSongDialog.setTabOrder(self.CopyrightInsertButton, self.CCLNumberEdit) + EditSongDialog.setTabOrder(self.CCLNumberEdit, self.CommentsEdit) + EditSongDialog.setTabOrder(self.CommentsEdit, self.ButtonBox) - def retranslateUi(self, EditSongForm): - EditSongForm.setWindowTitle(translate('EditSongForm', 'Song Editor')) + def retranslateUi(self, EditSongDialog): + EditSongDialog.setWindowTitle(translate('EditSongForm', 'Song Editor')) self.TitleLabel.setText(translate('EditSongForm', 'Title:')) self.AlternativeTitleLabel.setText(translate('EditSongForm', 'Alternative Title:')) self.LyricsLabel.setText(translate('EditSongForm', 'Lyrics:')) diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 40a75b073..201f06cc7 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -27,11 +27,11 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_EditVerseDialog(object): - def setupUi(self, EditVerseForm): - EditVerseForm.setObjectName(u'EditVerseDialog') - EditVerseForm.resize(500, 521) - EditVerseForm.setModal(True) - self.layoutWidget = QtGui.QWidget(EditVerseForm) + def setupUi(self, EditVerseDialog): + EditVerseDialog.setObjectName(u'EditVerseDialog') + EditVerseDialog.resize(500, 521) + EditVerseDialog.setModal(True) + self.layoutWidget = QtGui.QWidget(EditVerseDialog) self.layoutWidget.setGeometry(QtCore.QRect(11, 1, 471, 491)) self.layoutWidget.setObjectName(u'layoutWidget') self.verticalLayout_3 = QtGui.QVBoxLayout(self.layoutWidget) @@ -104,13 +104,13 @@ class Ui_EditVerseDialog(object): self.ButtonBox.setObjectName(u'ButtonBox') self.verticalLayout_3.addWidget(self.ButtonBox) - self.retranslateUi(EditVerseForm) - QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), EditVerseForm.accept) - QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), EditVerseForm.reject) - QtCore.QMetaObject.connectSlotsByName(EditVerseForm) + self.retranslateUi(EditVerseDialog) + QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), EditVerseDialog.accept) + QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), EditVerseDialog.reject) + QtCore.QMetaObject.connectSlotsByName(EditVerseDialog) - def retranslateUi(self, EditVerseForm): - EditVerseForm.setWindowTitle(translate('EditVerseForm', 'Edit Verse')) + def retranslateUi(self, EditVerseDialog): + EditVerseDialog.setWindowTitle(translate('EditVerseForm', 'Edit Verse')) self.VerseTypeLabel.setText(translate('EditVerseForm', 'Verse Type')) self.VerseListComboBox.setItemText(0, translate('EditVerseForm', 'Intro')) self.VerseListComboBox.setItemText(1, translate('EditVerseForm', 'Verse')) diff --git a/openlp/plugins/songs/forms/openlpexportdialog.py b/openlp/plugins/songs/forms/openlpexportdialog.py index 82934e19d..2046f2f95 100644 --- a/openlp/plugins/songs/forms/openlpexportdialog.py +++ b/openlp/plugins/songs/forms/openlpexportdialog.py @@ -27,16 +27,16 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_OpenLPExportDialog(object): - def setupUi(self, OpenLPExportForm): - OpenLPExportForm.setObjectName(u'OpenLPExportDialog') - OpenLPExportForm.resize(473, 459) + def setupUi(self, OpenLPExportDialog): + OpenLPExportDialog.setObjectName(u'OpenLPExportDialog') + OpenLPExportDialog.resize(473, 459) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenLPExportForm.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportForm) + OpenLPExportDialog.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportDialog) self.verticalLayout_5.setMargin(8) self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(OpenLPExportForm) + self.ExportFileWidget = QtGui.QWidget(OpenLPExportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -60,7 +60,7 @@ class Ui_OpenLPExportDialog(object): self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenLPExportForm) + self.SongListFrame = QtGui.QFrame(OpenLPExportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -243,7 +243,7 @@ class Ui_OpenLPExportDialog(object): self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportForm) + self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -262,7 +262,7 @@ class Ui_OpenLPExportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenLPExportForm) + self.ButtonBarWidget = QtGui.QWidget(OpenLPExportDialog) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -278,15 +278,15 @@ class Ui_OpenLPExportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout_5.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenLPExportForm) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportForm.close) + self.retranslateUi(OpenLPExportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportDialog.close) QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenLPExportForm) + QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog) - def retranslateUi(self, OpenLPExportForm): - OpenLPExportForm.setWindowTitle(translate('OpenLPExportForm', 'openlp.org Song Exporter')) + def retranslateUi(self, OpenLPExportDialog): + OpenLPExportDialog.setWindowTitle(translate('OpenLPExportForm', 'openlp.org Song Exporter')) self.ExportFileLabel.setText(translate('OpenLPExportForm', 'Select openlp.org export filename:')) self.ExportListLabel.setText(translate('OpenLPExportForm', 'Full Song List')) self.ExportListTable.horizontalHeaderItem(0).setText(translate('OpenLPExportForm', 'Song Title')) diff --git a/openlp/plugins/songs/forms/openlpimportdialog.py b/openlp/plugins/songs/forms/openlpimportdialog.py index 455b6347c..8080b5a25 100644 --- a/openlp/plugins/songs/forms/openlpimportdialog.py +++ b/openlp/plugins/songs/forms/openlpimportdialog.py @@ -27,16 +27,16 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_OpenLPImportDialog(object): - def setupUi(self, OpenLPImportForm): - OpenLPImportForm.setObjectName(u'OpenLPImportDialog') - OpenLPImportForm.resize(473, 459) + def setupUi(self, OpenLPImportDialog): + OpenLPImportDialog.setObjectName(u'OpenLPImportDialog') + OpenLPImportDialog.resize(473, 459) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenLPImportForm.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportForm) + OpenLPImportDialog.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportDialog) self.verticalLayout_5.setMargin(8) self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ImportFileWidget = QtGui.QWidget(OpenLPImportForm) + self.ImportFileWidget = QtGui.QWidget(OpenLPImportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -60,7 +60,7 @@ class Ui_OpenLPImportDialog(object): self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) self.verticalLayout_5.addWidget(self.ImportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenLPImportForm) + self.SongListFrame = QtGui.QFrame(OpenLPImportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -243,7 +243,7 @@ class Ui_OpenLPImportDialog(object): self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportForm) + self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -262,7 +262,7 @@ class Ui_OpenLPImportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenLPImportForm) + self.ButtonBarWidget = QtGui.QWidget(OpenLPImportDialog) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -278,15 +278,15 @@ class Ui_OpenLPImportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout_5.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenLPImportForm) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportForm.close) + self.retranslateUi(OpenLPImportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportDialog.close) QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll) QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenLPImportForm) + QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog) - def retranslateUi(self, OpenLPImportForm): - OpenLPImportForm.setWindowTitle(translate('OpenLPImportForm', 'openlp.org Song Importer')) + def retranslateUi(self, OpenLPImportDialog): + OpenLPImportDialog.setWindowTitle(translate('OpenLPImportForm', 'openlp.org Song Importer')) self.ImportFileLabel.setText(translate('OpenLPImportForm', 'Select openlp.org songfile to import:')) self.ImportListLabel.setText(translate('OpenLPImportForm', 'Import File Song List')) self.ImportListTable.horizontalHeaderItem(0).setText(translate('OpenLPImportForm', 'Song Title')) diff --git a/openlp/plugins/songs/forms/opensongexportdialog.py b/openlp/plugins/songs/forms/opensongexportdialog.py index 571be630b..4d95e48e2 100644 --- a/openlp/plugins/songs/forms/opensongexportdialog.py +++ b/openlp/plugins/songs/forms/opensongexportdialog.py @@ -27,16 +27,16 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_OpenSongExportDialog(object): - def setupUi(self, OpenSongExportForm): - OpenSongExportForm.setObjectName(u'OpenSongExportDialog') - OpenSongExportForm.resize(473, 459) + def setupUi(self, OpenSongExportDialog): + OpenSongExportDialog.setObjectName(u'OpenSongExportDialog') + OpenSongExportDialog.resize(473, 459) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenSongExportForm.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportForm) + OpenSongExportDialog.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportDialog) self.verticalLayout_5.setMargin(8) self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(OpenSongExportForm) + self.ExportFileWidget = QtGui.QWidget(OpenSongExportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -60,7 +60,7 @@ class Ui_OpenSongExportDialog(object): self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenSongExportForm) + self.SongListFrame = QtGui.QFrame(OpenSongExportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -243,7 +243,7 @@ class Ui_OpenSongExportDialog(object): self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportForm) + self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -262,7 +262,7 @@ class Ui_OpenSongExportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenSongExportForm) + self.ButtonBarWidget = QtGui.QWidget(OpenSongExportDialog) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -278,15 +278,15 @@ class Ui_OpenSongExportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout_5.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenSongExportForm) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportForm.close) + self.retranslateUi(OpenSongExportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportDialog.close) QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenSongExportForm) + QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog) - def retranslateUi(self, OpenSongExportForm): - OpenSongExportForm.setWindowTitle(translate('OpenSong Song Exporter')) + def retranslateUi(self, OpenSongExportDialog): + OpenSongExportDialog.setWindowTitle(translate('OpenSong Song Exporter')) self.ExportFileLabel.setText(translate('OpenSongExportForm', 'Select OpenSong song folder:')) self.ExportListLabel.setText(translate('OpenSongExportForm', 'Full Song List')) self.ExportListTable.horizontalHeaderItem(0).setText(translate('OpenSongExportForm', 'Song Title')) diff --git a/openlp/plugins/songs/forms/opensongimportdialog.py b/openlp/plugins/songs/forms/opensongimportdialog.py index df9bce507..9091e08ad 100644 --- a/openlp/plugins/songs/forms/opensongimportdialog.py +++ b/openlp/plugins/songs/forms/opensongimportdialog.py @@ -27,17 +27,17 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_OpenSongImportDialog(object): - def setupUi(self, OpenSongImportForm): - OpenSongImportForm.setObjectName(u'OpenSongImportDialog') - OpenSongImportForm.resize(481, 172) + def setupUi(self, OpenSongImportDialog): + OpenSongImportDialog.setObjectName(u'OpenSongImportDialog') + OpenSongImportDialog.resize(481, 172) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenSongImportForm.setWindowIcon(icon) - self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportForm) + OpenSongImportDialog.setWindowIcon(icon) + self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportDialog) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(8) self.verticalLayout.setObjectName(u'verticalLayout') - self.ImportFileWidget = QtGui.QWidget(OpenSongImportForm) + self.ImportFileWidget = QtGui.QWidget(OpenSongImportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -61,7 +61,7 @@ class Ui_OpenSongImportDialog(object): self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) self.verticalLayout.addWidget(self.ImportFileWidget) - self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportForm) + self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -80,7 +80,7 @@ class Ui_OpenSongImportDialog(object): self.ProgressBar.setObjectName(u'ProgressBar') self.verticalLayout_4.addWidget(self.ProgressBar) self.verticalLayout.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenSongImportForm) + self.ButtonBarWidget = QtGui.QWidget(OpenSongImportDialog) self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) self.horizontalLayout_7.setSpacing(8) @@ -96,12 +96,12 @@ class Ui_OpenSongImportDialog(object): self.horizontalLayout_7.addWidget(self.ClosePushButton) self.verticalLayout.addWidget(self.ButtonBarWidget) - self.retranslateUi(OpenSongImportForm) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportForm.close) - QtCore.QMetaObject.connectSlotsByName(OpenSongImportForm) + self.retranslateUi(OpenSongImportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportDialog.close) + QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog) - def retranslateUi(self, OpenSongImportForm): - OpenSongImportForm.setWindowTitle(translate('OpenSongImportForm', 'OpenSong Song Importer')) + def retranslateUi(self, OpenSongImportDialog): + OpenSongImportDialog.setWindowTitle(translate('OpenSongImportForm', 'OpenSong Song Importer')) self.ImportFileLabel.setText(translate('OpenSongImportForm', 'OpenSong Folder:')) self.ProgressGroupBox.setTitle(translate('OpenSongImportForm', 'Progress:')) self.ProgressLabel.setText(translate('OpenSongImportForm', 'Ready to import')) diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index 4276ae9da..3122ed21b 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -27,30 +27,30 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_SongBookDialog(object): - def setupUi(self, SongBookForm): - SongBookForm.setObjectName(u'SongBookDialog') - SongBookForm.resize(367, 120) - self.SongBookLayout = QtGui.QFormLayout(SongBookForm) + def setupUi(self, SongBookDialog): + SongBookDialog.setObjectName(u'SongBookDialog') + SongBookDialog.resize(367, 120) + self.SongBookLayout = QtGui.QFormLayout(SongBookDialog) self.SongBookLayout.setMargin(8) self.SongBookLayout.setSpacing(8) self.SongBookLayout.setObjectName(u'SongBookLayout') - self.NameLabel = QtGui.QLabel(SongBookForm) + self.NameLabel = QtGui.QLabel(SongBookDialog) self.NameLabel.setObjectName(u'NameLabel') self.SongBookLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.NameLabel) - self.NameEdit = QtGui.QLineEdit(SongBookForm) + self.NameEdit = QtGui.QLineEdit(SongBookDialog) self.NameEdit.setObjectName(u'NameEdit') self.SongBookLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.NameEdit) - self.PublisherLabel = QtGui.QLabel(SongBookForm) + self.PublisherLabel = QtGui.QLabel(SongBookDialog) self.PublisherLabel.setObjectName(u'PublisherLabel') self.SongBookLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.PublisherLabel) - self.PublisherEdit = QtGui.QLineEdit(SongBookForm) + self.PublisherEdit = QtGui.QLineEdit(SongBookDialog) self.PublisherEdit.setObjectName(u'PublisherEdit') self.SongBookLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.PublisherEdit) - self.ButtonBox = QtGui.QDialogButtonBox(SongBookForm) + self.ButtonBox = QtGui.QDialogButtonBox(SongBookDialog) self.ButtonBox.setOrientation(QtCore.Qt.Horizontal) self.ButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel) @@ -58,14 +58,14 @@ class Ui_SongBookDialog(object): self.SongBookLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.ButtonBox) - self.retranslateUi(SongBookForm) + self.retranslateUi(SongBookDialog) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'accepted()'), SongBookForm.accept) + QtCore.SIGNAL(u'accepted()'), SongBookDialog.accept) QtCore.QObject.connect(self.ButtonBox, - QtCore.SIGNAL(u'rejected()'), SongBookForm.reject) - QtCore.QMetaObject.connectSlotsByName(SongBookForm) + QtCore.SIGNAL(u'rejected()'), SongBookDialog.reject) + QtCore.QMetaObject.connectSlotsByName(SongBookDialog) - def retranslateUi(self, SongBookForm): - SongBookForm.setWindowTitle(translate('SongBookForm', 'Edit Book')) + def retranslateUi(self, SongBookDialog): + SongBookDialog.setWindowTitle(translate('SongBookForm', 'Edit Book')) self.NameLabel.setText(translate('SongBookForm', 'Name:')) self.PublisherLabel.setText(translate('SongBookForm', 'Publisher:')) diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index ca4b5ec0e..a8751b132 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -28,15 +28,15 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, translate class Ui_SongMaintenanceDialog(object): - def setupUi(self, SongMaintenanceForm): - SongMaintenanceForm.setObjectName(u'SongMaintenanceDialog') - SongMaintenanceForm.setWindowModality(QtCore.Qt.ApplicationModal) - SongMaintenanceForm.resize(486, 361) - self.DialogLayout = QtGui.QVBoxLayout(SongMaintenanceForm) + def setupUi(self, SongMaintenanceDialog): + SongMaintenanceDialog.setObjectName(u'SongMaintenanceDialog') + SongMaintenanceDialog.setWindowModality(QtCore.Qt.ApplicationModal) + SongMaintenanceDialog.resize(486, 361) + self.DialogLayout = QtGui.QVBoxLayout(SongMaintenanceDialog) self.DialogLayout.setSpacing(8) self.DialogLayout.setMargin(8) self.DialogLayout.setObjectName(u'DialogLayout') - self.ContentWidget = QtGui.QWidget(SongMaintenanceForm) + self.ContentWidget = QtGui.QWidget(SongMaintenanceDialog) self.ContentWidget.setObjectName(u'ContentWidget') self.ContentLayout = QtGui.QHBoxLayout(self.ContentWidget) self.ContentLayout.setSpacing(8) @@ -192,23 +192,23 @@ class Ui_SongMaintenanceDialog(object): self.TypeStackedWidget.addWidget(self.BooksPage) self.ContentLayout.addWidget(self.TypeStackedWidget) self.DialogLayout.addWidget(self.ContentWidget) - self.MaintenanceButtonBox = QtGui.QDialogButtonBox(SongMaintenanceForm) + self.MaintenanceButtonBox = QtGui.QDialogButtonBox(SongMaintenanceDialog) self.MaintenanceButtonBox.setOrientation(QtCore.Qt.Horizontal) self.MaintenanceButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close) self.MaintenanceButtonBox.setObjectName(u'MaintenanceButtonBox') self.DialogLayout.addWidget(self.MaintenanceButtonBox) - self.retranslateUi(SongMaintenanceForm) + self.retranslateUi(SongMaintenanceDialog) self.TypeStackedWidget.setCurrentIndex(0) QtCore.QObject.connect(self.MaintenanceButtonBox, - QtCore.SIGNAL(u'rejected()'), SongMaintenanceForm.accept) + QtCore.SIGNAL(u'rejected()'), SongMaintenanceDialog.accept) QtCore.QObject.connect(self.TypeListWidget, QtCore.SIGNAL(u'currentRowChanged(int)'), self.TypeStackedWidget.setCurrentIndex) - QtCore.QMetaObject.connectSlotsByName(SongMaintenanceForm) + QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog) - def retranslateUi(self, SongMaintenanceForm): - SongMaintenanceForm.setWindowTitle(translate('SongMaintenanceForm', 'Song Maintenance')) + def retranslateUi(self, SongMaintenanceDialog): + SongMaintenanceDialog.setWindowTitle(translate('SongMaintenanceForm', 'Song Maintenance')) self.TypeListWidget.item(0).setText(translate('SongMaintenanceForm', 'Authors')) self.TypeListWidget.item(1).setText(translate('SongMaintenanceForm', 'Topics')) self.TypeListWidget.item(2).setText(translate('SongMaintenanceForm', 'Books/Hymnals')) diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index 559c24e12..a78d905f4 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -27,24 +27,24 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_TopicsDialog(object): - def setupUi(self, TopicsForm): - TopicsForm.setObjectName(u'TopicsDialog') - TopicsForm.resize(365, 77) - self.TopicLayout = QtGui.QFormLayout(TopicsForm) + def setupUi(self, TopicsDialog): + TopicsDialog.setObjectName(u'TopicsDialog') + TopicsDialog.resize(365, 77) + self.TopicLayout = QtGui.QFormLayout(TopicsDialog) self.TopicLayout.setFieldGrowthPolicy( QtGui.QFormLayout.ExpandingFieldsGrow) self.TopicLayout.setMargin(8) self.TopicLayout.setSpacing(8) self.TopicLayout.setObjectName(u'TopicLayout') - self.NameLabel = QtGui.QLabel(TopicsForm) + self.NameLabel = QtGui.QLabel(TopicsDialog) self.NameLabel.setObjectName(u'NameLabel') self.TopicLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.NameLabel) - self.NameEdit = QtGui.QLineEdit(TopicsForm) + self.NameEdit = QtGui.QLineEdit(TopicsDialog) self.NameEdit.setObjectName(u'NameEdit') self.TopicLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.NameEdit) - self.TopicButtonBox = QtGui.QDialogButtonBox(TopicsForm) + self.TopicButtonBox = QtGui.QDialogButtonBox(TopicsDialog) self.TopicButtonBox.setOrientation(QtCore.Qt.Horizontal) self.TopicButtonBox.setStandardButtons( QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel) @@ -52,13 +52,13 @@ class Ui_TopicsDialog(object): self.TopicLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.TopicButtonBox) - self.retranslateUi(TopicsForm) + self.retranslateUi(TopicsDialog) QtCore.QObject.connect(self.TopicButtonBox, - QtCore.SIGNAL(u'accepted()'), TopicsForm.accept) + QtCore.SIGNAL(u'accepted()'), TopicsDialog.accept) QtCore.QObject.connect(self.TopicButtonBox, - QtCore.SIGNAL(u'rejected()'), TopicsForm.reject) - QtCore.QMetaObject.connectSlotsByName(TopicsForm) + QtCore.SIGNAL(u'rejected()'), TopicsDialog.reject) + QtCore.QMetaObject.connectSlotsByName(TopicsDialog) - def retranslateUi(self, TopicsForm): - TopicsForm.setWindowTitle(translate('TopicsForm', 'Topic Maintenance')) + def retranslateUi(self, TopicsDialog): + TopicsDialog.setWindowTitle(translate('TopicsForm', 'Topic Maintenance')) self.NameLabel.setText(translate('TopicsForm', 'Topic name:')) diff --git a/openlp/plugins/songusage/forms/songusagedeletedialog.py b/openlp/plugins/songusage/forms/songusagedeletedialog.py index dc02965f5..02b7496b2 100644 --- a/openlp/plugins/songusage/forms/songusagedeletedialog.py +++ b/openlp/plugins/songusage/forms/songusagedeletedialog.py @@ -27,10 +27,10 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_SongUsageDeleteDialog(object): - def setupUi(self, AuditDeleteDialog): - AuditDeleteDialog.setObjectName(u'AuditDeleteDialog') - AuditDeleteDialog.resize(291, 243) - self.layoutWidget = QtGui.QWidget(AuditDeleteDialog) + def setupUi(self, SongUsageDeleteDialog): + SongUsageDeleteDialog.setObjectName(u'SongUsageDeleteDialog') + SongUsageDeleteDialog.resize(291, 243) + self.layoutWidget = QtGui.QWidget(SongUsageDeleteDialog) self.layoutWidget.setGeometry(QtCore.QRect(20, 10, 247, 181)) self.layoutWidget.setObjectName(u'layoutWidget') self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget) @@ -42,20 +42,20 @@ class Ui_SongUsageDeleteDialog(object): QtGui.QCalendarWidget.NoVerticalHeader) self.DeleteCalendar.setObjectName(u'DeleteCalendar') self.verticalLayout.addWidget(self.DeleteCalendar) - self.buttonBox = QtGui.QDialogButtonBox(AuditDeleteDialog) + self.buttonBox = QtGui.QDialogButtonBox(SongUsageDeleteDialog) self.buttonBox.setGeometry(QtCore.QRect(30, 210, 245, 25)) self.buttonBox.setStandardButtons( QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(u'buttonBox') - self.retranslateUi(AuditDeleteDialog) + self.retranslateUi(SongUsageDeleteDialog) QtCore.QObject.connect( self.buttonBox, QtCore.SIGNAL(u'accepted()'), - AuditDeleteDialog.accept) + SongUsageDeleteDialog.accept) QtCore.QObject.connect( self.buttonBox, QtCore.SIGNAL(u'rejected()'), - AuditDeleteDialog.close) - QtCore.QMetaObject.connectSlotsByName(AuditDeleteDialog) + SongUsageDeleteDialog.close) + QtCore.QMetaObject.connectSlotsByName(SongUsageDeleteDialog) - def retranslateUi(self, AuditDeleteDialog): - AuditDeleteDialog.setWindowTitle(translate('AuditDeleteDialog', 'Song Usage Delete')) + def retranslateUi(self, SongUsageDeleteDialog): + SongUsageDeleteDialog.setWindowTitle(translate('AuditDeleteDialog', 'Song Usage Delete')) diff --git a/openlp/plugins/songusage/forms/songusagedetaildialog.py b/openlp/plugins/songusage/forms/songusagedetaildialog.py index 9512a4278..9e25651ab 100644 --- a/openlp/plugins/songusage/forms/songusagedetaildialog.py +++ b/openlp/plugins/songusage/forms/songusagedetaildialog.py @@ -27,12 +27,12 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate class Ui_SongUsageDetailDialog(object): - def setupUi(self, AuditDetailDialog): - AuditDetailDialog.setObjectName(u'AuditDetailDialog') - AuditDetailDialog.resize(609, 413) - self.verticalLayout = QtGui.QVBoxLayout(AuditDetailDialog) + def setupUi(self, SongUsageDetailDialog): + SongUsageDetailDialog.setObjectName(u'SongUsageDetailDialog') + SongUsageDetailDialog.resize(609, 413) + self.verticalLayout = QtGui.QVBoxLayout(SongUsageDetailDialog) self.verticalLayout.setObjectName(u'verticalLayout') - self.DateRangeGroupBox = QtGui.QGroupBox(AuditDetailDialog) + self.DateRangeGroupBox = QtGui.QGroupBox(SongUsageDetailDialog) self.DateRangeGroupBox.setObjectName(u'DateRangeGroupBox') self.verticalLayout_2 = QtGui.QVBoxLayout(self.DateRangeGroupBox) self.verticalLayout_2.setObjectName(u'verticalLayout_2') @@ -69,25 +69,25 @@ class Ui_SongUsageDetailDialog(object): self.verticalLayout_4.addLayout(self.horizontalLayout) self.verticalLayout_2.addWidget(self.FileGroupBox) self.verticalLayout.addWidget(self.DateRangeGroupBox) - self.buttonBox = QtGui.QDialogButtonBox(AuditDetailDialog) + self.buttonBox = QtGui.QDialogButtonBox(SongUsageDetailDialog) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(u'buttonBox') self.verticalLayout.addWidget(self.buttonBox) - self.retranslateUi(AuditDetailDialog) + self.retranslateUi(SongUsageDetailDialog) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'), - AuditDetailDialog.accept) + SongUsageDetailDialog.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), - AuditDetailDialog.close) + SongUsageDetailDialog.close) QtCore.QObject.connect(self.SaveFilePushButton, QtCore.SIGNAL(u'pressed()'), - AuditDetailDialog.defineOutputLocation) - QtCore.QMetaObject.connectSlotsByName(AuditDetailDialog) + SongUsageDetailDialog.defineOutputLocation) + QtCore.QMetaObject.connectSlotsByName(SongUsageDetailDialog) - def retranslateUi(self, AuditDetailDialog): - AuditDetailDialog.setWindowTitle(translate('AuditDetailDialog', 'Song Usage Extraction')) + def retranslateUi(self, SongUsageDetailDialog): + SongUsageDetailDialog.setWindowTitle(translate('AuditDetailDialog', 'Song Usage Extraction')) self.DateRangeGroupBox.setTitle(translate('AuditDetailDialog', 'Select Date Range')) self.ToLabel.setText(translate('AuditDetailDialog', 'to')) self.FileGroupBox.setTitle(translate('AuditDetailDialog', 'Report Location')) From 66ec680e4ebd8ac0354361053ae73a7aaa597586 Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 5 May 2010 19:17:00 +0200 Subject: [PATCH 12/22] remove else from toolbar.py --- openlp/core/lib/toolbar.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index 824199469..a1af42736 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -120,11 +120,8 @@ class OpenLPToolbar(QtGui.QToolBar): try: if self.icons[title]: return self.icons[title] - else: - log.error(u'getIconFromTitle - no icon for %s' % title) - return QtGui.QIcon() except: - log.exception(u'getIconFromTitle - title %s not found' % title) + log.exception(u'getIconFromTitle - no icon for %s' % title) return QtGui.QIcon() def makeWidgetsInvisible(self, widgets): From 2ee1c5ed9b54ccc8d9ab2ad7a79bac79f787c5e1 Mon Sep 17 00:00:00 2001 From: rimach Date: Mon, 10 May 2010 19:56:29 +0200 Subject: [PATCH 13/22] load correct settings for translation --- openlp/core/utils/languagemanager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 3f684b08f..521eab382 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -68,7 +68,8 @@ class LanguageManager(object): @staticmethod def get_language(): - language = unicode(QtCore.QSettings().value( + settings = QtCore.QSettings(u'OpenLP', u'OpenLP') + language = unicode(settings.value( u'general/language', QtCore.QVariant(u'[en]')).toString()) log.info(u'Language file: \'%s\' Loaded from conf file' % language) regEx = QtCore.QRegExp("^\[(.*)\]") From e0664a1e8864e96e2c7805ddc2c168f7b30ff4e8 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 11 May 2010 21:00:21 +0200 Subject: [PATCH 14/22] bugfixing for i18n --- openlp/core/ui/mainwindow.py | 29 ++-- resources/i18n/openlp_en.ts | 272 ++++++++++++++++++----------------- 2 files changed, 154 insertions(+), 147 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index de8da9b66..4432eb9c0 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -260,15 +260,14 @@ class Ui_MainWindow(object): qmList = LanguageManager.get_qm_list() savedLanguage = LanguageManager.get_language() self.AutoLanguageItem.setChecked(LanguageManager.AutoLanguage) - self.LanguageItem = {} - for key in qmList.keys(): - self.LanguageItem[key] = QtGui.QAction(MainWindow) - self.LanguageItem[key].setObjectName(key) - self.LanguageItem[key].setCheckable(True) - self.LanguageItem[key].setDisabled(LanguageManager.AutoLanguage) + for key in sorted(qmList.keys()): + languageItem = QtGui.QAction(MainWindow) + languageItem.setObjectName(key) + languageItem.setCheckable(True) if qmList[key] == savedLanguage: - self.LanguageItem[key].setChecked(True) - add_actions(self.LanguageGroup, [self.LanguageItem[key]]) + languageItem.setChecked(True) + add_actions(self.LanguageGroup, [languageItem]) + self.LanguageGroup.setDisabled(LanguageManager.AutoLanguage) self.ToolsAddToolItem = QtGui.QAction(MainWindow) AddToolIcon = build_icon(u':/tools/tools_add.png') self.ToolsAddToolItem.setIcon(AddToolIcon) @@ -296,8 +295,7 @@ class Ui_MainWindow(object): self.ViewThemeManagerItem, None, self.action_Preview_Panel)) #i18n add Language Actions add_actions(self.OptionsLanguageMenu, (self.AutoLanguageItem, None)) - for item in sorted(self.LanguageItem): - add_actions(self.OptionsLanguageMenu, [self.LanguageItem[item]]) + add_actions(self.OptionsLanguageMenu, self.LanguageGroup.actions()) add_actions(self.OptionsMenu, (self.OptionsLanguageMenu.menuAction(), self.OptionsViewMenu.menuAction(), None, self.OptionsSettingsItem)) add_actions(self.ToolsMenu, @@ -417,10 +415,10 @@ class Ui_MainWindow(object): self.AutoLanguageItem.setText(translate('MainWindow', '&Auto Detect')) self.AutoLanguageItem.setStatusTip( translate('MainWindow', 'Choose System language, if available')) - for item in self.LanguageItem: - self.LanguageItem[item].setText(self.LanguageItem[item].objectName()) - self.LanguageItem[item].setStatusTip( - translate('MainWindow', 'Set the interface language to %1').arg(self.LanguageItem[item].objectName())) + for item in self.LanguageGroup.actions(): + item.setText(item.objectName()) + item.setStatusTip( + translate('MainWindow', 'Set the interface language to %1').arg(item.objectName())) self.ToolsAddToolItem.setText(translate('MainWindow', 'Add &Tool...')) self.ToolsAddToolItem.setStatusTip( translate('MainWindow', 'Add an application to the list of tools')) @@ -575,8 +573,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): #i18n def setAutoLanguage(self, value): - for action in self.LanguageGroup.actions(): - action.setDisabled(value) + self.LanguageGroup.setDisabled(value) LanguageManager.AutoLanguage = value LanguageManager.set_language(self.LanguageGroup.checkedAction()) diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index 41a956423..c3cb8a595 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -705,12 +705,12 @@ This General Public License does not permit incorporating your program into prop - + Bible not fully loaded - + No matching book could be found in this Bible. @@ -755,7 +755,7 @@ This General Public License does not permit incorporating your program into prop - + No Book Found @@ -1683,12 +1683,12 @@ Changes don't affect verses already in the service LanguageManager - + Language - + After restart new Language settings will be used. @@ -1696,379 +1696,379 @@ Changes don't affect verses already in the service MainWindow - + The Main Display has been blanked out - + OpenLP Version Updated - + Save Changes to Service? - + OpenLP Main Display Blanked - + New Service - + Open Service - + Save Service - + OpenLP 2.0 - + English - + Default Theme: - + &File - + &Import - + &Export - + &Options - + &View - + M&ode - + &Tools - + &Help - + Media Manager - + Service Manager - + Theme Manager - + &New - + Create a new Service - + Ctrl+N - + &Open - + Open an existing service - + Ctrl+O - + &Save - + Save the current service to disk - + Ctrl+S - + Save &As... - + Save Service As - + Save the current service under a new name - + F12 - + E&xit - + Quit OpenLP - + Alt+F4 - + &Theme - + &Language - + Look && &Feel - + &Settings - + &Media Manager - + Toggle Media Manager - + Toggle the visibility of the Media Manager - + F8 - + &Theme Manager - + Toggle Theme Manager - + Toggle the visibility of the Theme Manager - + F10 - + &Service Manager - + Toggle Service Manager - + Toggle the visibility of the Service Manager - + F9 - + &Preview Panel - + Toggle Preview Panel - + Toggle the visibility of the Preview Panel - + F11 - + &Plugin List - + List the Plugins - + Alt+F7 - + &User Guide - + &About - + More information about OpenLP - + Ctrl+F1 - + &Online Help - + &Web Site - + &Auto Detect - + Choose System language, if available - + Set the interface language to %1 - + Add &Tool... - + Add an application to the list of tools - + &Preview Pane - + &Live - + Version %s of OpenLP is now available for download (you are currently running version %s). You can download the latest version from http://openlp.org - + Your service has changed. Do you want to save those changes? @@ -2217,7 +2217,7 @@ You can download the latest version from http://openlp.org MediaPlugin - + <b>Media Plugin</b><br>This plugin allows the playing of audio and video media @@ -2533,7 +2533,7 @@ You can download the latest version from http://openlp.org - + Present using: @@ -2543,7 +2543,7 @@ You can download the latest version from http://openlp.org - + A presentation with that filename already exists. @@ -2553,12 +2553,12 @@ You can download the latest version from http://openlp.org - + File exists - + Presentations (%s) @@ -2636,140 +2636,150 @@ You can download the latest version from http://openlp.org ServiceManager - + Save Changes to Service? - + Open Service - + Move to top - + Create a new service - + Save this service - + Theme: - + Delete From Service - + Save Service - + &Live Verse - + Move to &top - + New Service - + &Notes - + Move to end - + &Delete From Service - + Move up order - + Move down order - + Move &down - + Load an existing service - + &Preview Verse - + Move &up - + &Edit Item - + Move to &bottom - + &Maintain Item - + Your service is unsaved, do you want to save those changes before creating a new one? - + Your current service is unsaved, do you want to save the changes before opening a new one? - + &Add New Item - + &Add to Selected Item + + + Missing Display Handler + + + + + Your item cannot be displayed as there is no handler to display it + + ServiceNoteForm @@ -2790,97 +2800,97 @@ You can download the latest version from http://openlp.org SlideController - + Move to previous - + Go to Verse - + Start continuous loop - + Live - + Start playing media - + Move to live - + Preview - + Move to last - + Edit and re-preview Song - + Delay between slides in seconds - + Move to next - + Move to first - + Blank Screen - + Verse - + Stop continuous loop - + s - + Theme Screen - + Hide Screen - + Chorus From 294b0abfc0efaf2b5cccac910358c164e35662e5 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 11 May 2010 23:05:08 +0200 Subject: [PATCH 15/22] remove unused imports, correct import order --- openlp/core/ui/aboutform.py | 1 - openlp/core/utils/languagemanager.py | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/openlp/core/ui/aboutform.py b/openlp/core/ui/aboutform.py index cf051722b..c79324515 100644 --- a/openlp/core/ui/aboutform.py +++ b/openlp/core/ui/aboutform.py @@ -26,7 +26,6 @@ from PyQt4 import QtCore, QtGui from aboutdialog import Ui_AboutDialog -from openlp.core.lib import translate class AboutForm(QtGui.QDialog, Ui_AboutDialog): """ diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 521eab382..8be408d17 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -24,10 +24,9 @@ ############################################################################### import logging - -from logging import FileHandler -from PyQt4 import QtCore, QtGui import os + +from PyQt4 import QtCore, QtGui from openlp.core.utils import AppLocation from openlp.core.lib import translate From cd8377f03d3363ca92686d3d0851cb03f96fb392 Mon Sep 17 00:00:00 2001 From: Martin Thompson Date: Wed, 12 May 2010 21:43:48 +0100 Subject: [PATCH 16/22] Fixed crash when monitor= in OpenLP.conf --- openlp/core/ui/screen.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py index 19c4e01b5..69dd915d2 100644 --- a/openlp/core/ui/screen.py +++ b/openlp/core/ui/screen.py @@ -61,9 +61,10 @@ class ScreenList(object): """ Set up the current screen dimensions """ - log.debug(u'set_override_display %s', number, ) + log.debug(u'set_current_display %s', number, ) if number + 1 > self.display_count: self.current = self.screen_list[0] + self.override = copy.deepcopy(self.current) self.current_display = 0 else: self.current = self.screen_list[number] From eaef48e70858988bac4ea62dbcee72b64e0458c9 Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 12 May 2010 23:44:00 +0200 Subject: [PATCH 17/22] resolve merge proposal request --- resources/i18n/openlp_af.qm | Bin 31001 -> 30886 bytes resources/i18n/openlp_de.qm | Bin 33285 -> 31803 bytes resources/i18n/openlp_en.qm | Bin 0 -> 337 bytes resources/i18n/openlp_en.ts | 749 +++++++++++++++++++-------------- resources/i18n/openlp_en_GB.qm | Bin 28558 -> 29107 bytes resources/i18n/openlp_en_ZA.qm | Bin 21540 -> 19540 bytes resources/i18n/openlp_es.qm | Bin 14461 -> 14711 bytes resources/i18n/openlp_hu.qm | Bin 31896 -> 32687 bytes resources/i18n/openlp_nb.qm | Bin 20348 -> 17999 bytes resources/i18n/openlp_pt_BR.qm | Bin 32600 -> 32861 bytes resources/i18n/openlp_sv.qm | Bin 33919 -> 33820 bytes scripts/translation_utils.py | 3 +- 12 files changed, 441 insertions(+), 311 deletions(-) create mode 100644 resources/i18n/openlp_en.qm diff --git a/resources/i18n/openlp_af.qm b/resources/i18n/openlp_af.qm index 785a972497aa5db313b27fd1495c06f689483bd9..6048181b7aab574133e9e1dd1ee1a273dd0ae517 100644 GIT binary patch delta 5039 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 e$1i3K@-mrRiS!xx+XLL delta 5129 zcma*r30xFco(J%MRabRaS66ofq6l6fB628qK#hpVErOgXD2g145l_58?RdqD6=S0j zM2+KxqN27&11`jC#oHKlO`MU5L}R=)9-}e3zoKh*W_Pmt+4j@@eec!lcl_Ub)rH%i zF%{35RraP?L^KU=ytsAv(8CJYkw{Yny`WsD53Gf;MA2JehT=k^n9q=}#HBD;0|&sP zFdSYW%JhV{h-O>hGhz>(CSq9P)^;N@F%HD-xQc>6;_5k=qPRe@miP|ep!_WHUUI!= z;(brS7sN-m5V38DUxz%~o%rq1urE0-TMQGZ(}U%(jNIP^z=Px|x6d|{=Vdqejyxaw zl8IEdP}wy4KSL#M$yfj35o3#^9Cd0k5O#ieR!SXycWO*R@I#q zlPK<^HAL#kij|7z6yI6Z_|TxkZ?Rl)6t8xMIg0BkzG4jW#})5F6AA>qwLtJ!9ICib zv6=>R#i&7zRnweP^L*|-fZVk@xMsQpfMYmg`WGrL1RZtZ_#tG&yK9G%!| z`LsFqYt=-Kd93A^@hF(X9;~?t_ppb?BO;F1*+X)Jj*r+nc~d#ru=V)?(2Z?)hXFZ7 zvCqtVVLkio(L8vceRJv*Q3t(B`T|SVp@+&?zYs>M?9Z=(#VUuC%dkfA2U(o|j-skl zLK^f?IZwezJ0`0JMYX^ws^lI+;aXLeJdjR$)!gFYu$OA#<~SIu+BEqE{8Y6!^$Vle0Aj`w)??*>$wW!pWsEVDg&p<^(D8d0N?8-Df)9e)wtd* zlB-$y9?pXw;2O?UQ>H>nm2ReoIHeLNmG@+(TP*}M|?^59T7makkP=Xdezm*RQCt5NYTU)84>`8WK= zlCebI`TX7!n2^bPzBS>!3u5Npjr_g?xZr(N@dHG8&vyJ*lQ6TMJ^4Dj@i3l07X3Fk zmp@;D`aQqoFSJj9hxq0?OrYmI{@#YS@PpM}frH*; z4f~8#+Ydl!eU7S~e#dV2`BB|_xhIjYq#k&z4fIeCv3v(()WfDCguXfIELY6fcd0rn zDTv5#tU4zEGxYmRou7Re)~d%v;AhzHih9Z?Xvgohxc`3p=V$Y<7qJ6(=iJsn7YgMfqWM%hR9W6%F5l z`$S+HjWjzAhG|@do3KFBs}_+7JfP{jSN2;?jI*f}i5Hrf&Ba7Pwwm#zff0&RG?P7iPjtP3a|^>)=_6J2b08enI}Y zX7z4FF8HQq(@iX8NDs~C*aA3Lv)z=s1c`l`!w(Spknc3d9;2g>_nMPD9zuJ2Xs%?u zghMnp%6dVQ=JvBwutC#e=nUUzT5coX$651e_ZpZdu(o&LDuJ_@VXeRmf$%4Rcd#Mq zYb)qVFz~+qg4CHlmMxg^!#&z#JhsI1X+VB1?b2$KC2qkooD72@rSj6{2V}#9B{o&_A zz40tje@>`hiGlTZF)4{G;pBLXxc_3|?5pqKF2#Sh8m80oqwupD)?F)(SP5gb8Q)+a zVNKf6d-C8Ns{@=A6SW1)u-OJo)J`r%y#edBMI|bDL_5NRu94^4S%KGv#Jl#Ko{*EOC^lb9*78rpJZi+2gP>ewP3H6UWKhjl7vELrSz9oKsOjgH${MHFYJQ%A_g zDlXDRo|}$*jc(9sKX_i3=s1CBkY1P4Wfac;pfKG?FNAK;Y2C!t?}_3iov8&59;jQ< z2Wyug=}M#SKv&(CC6zEtx8=_gEKsag{8@LXKWNssc8l351k-AxPbPDuFh%{3BVdO9W|nM){x2J6!;AVy!DwfMM*leG8VoV%pSW#9qEP=^ z$PT#9;3q#ojCgH`$-y2N*~5^KhfO$glOcHvW;n9Ru%!Add}LU@?lDo8XxRG>rzI=E za9}!SJZh@ppjQ#BFx0E&z&b-?Gddjgz2R6>1AK01%EBfbonpAmp}o@@X zh9A!0*kp@_TelF2>>wjW)WLLP*Kn*|c8SqLKIhqW#@<(PAINSt#vew9W1@`dv53T& zDaO@Z(czd%cZx93E;-f4d-z+O za!weZ4#qLexo3R()kUJ*4)}%0jWajc1e$GZkD32!+tKW7*JycRw~eth+8<}_GL^;cUU|HwG@vtMxfp2AgbYO=)6hqn+}A%3uaJ28 zak8~P1N}o~vyWrj#6P}dZO1+(Z|aPKoV?hgyh3@#nCt)A7!|elV!0Vqz*xoxS25Cl$VC8QD8PW7!|(%9u}j+gbGC zFL{f1Ou430M@mOjCg2~!O7X2t%0Z8(*)+{OAk@K2{()=l_5ZBO%hfFPiAPz>=Hx_` z#XJ3$V4m;OPCEci7g9D&kQ?LVJDqusPltaf{RW0*GuXi+~6yi)@ODsBE$+n=C5(YTyE>3F);^Q6U#bP0>g* zO>@DxkUePTf@_kNX}|23RH&6pYLu0k{XPTpJU@N<{qa1Pm%h(AGjo>jIcH|>UAB}x z{2Q~@(m02RD)3MIhz=y;HbHl|8IB}URKiHf0{9~GC{r}U8ltG>uz_e&DBJ;=ZleqG`NX~b8C*czVGeGSyxb?t5qCA2 zh;=4@z%e+6cu$8`Us}CSTbJD``s56<8L6ntl!u)vPCDU!tAzyY8T% zlZv+M;3HaW9!;cmrB$Z~!)U5oh|p?tsQz66E}@MtU=Fp%scGpq@F&{sjRtfv)Ug~L z(B;ylq9!7}HGMXr0tVAp1}|7Z*H?cFchmJX7^uF}NMC2)MB-=qD=ve`;LNZeqX9z{ zBda+N*Dy-MEZELi?7Iu^F&5X+fSH!*SKSFmG4^|2hA%P>_pz1Dni(fwbkyt;Gk72x zHtS)+R6B^whcP+lu=vc=nX+lvh2~3{Ic}IbbK_yAGQ}T>yM0=WViq53B(j*pESc&H z_cB7LnE#F0YCe&upDknh1KX@$Fmq;tEv#cMejEzhnXBw}*u{KVt0uA}$pGfwy&K4< zu}T&lx2$HZPOgS6tYbSOVzkO(ore8FWVMlX(a(clv93FLB5N0j3#`-Gkv}7})~ng6 z+4k@uyP;_(kxe1H8EcDdHn496c)$zn+v2vexzFw%ww}nAV|R6ZuTG zb??V;9oshZB=)~;3)?1EXxquQi;Kwi346HEkI1e+d-Mr9Waq^`6b`^e?8AGD;c52w zQ>S2$O#2$9Xn2RT}W_vVTFMDGSR{x-TvIEI&ME23LqfgMV z{mZgTiAUjEva4s&0S9N<{dEa2TK3b?WpJKko9t2V@qfyGjZPwRl*xWyW5flHLpbH* zU^tgE^B4hFa}GPMz>D1A35i5b!#Edb6P(M9P)i>utBUf+iO}rx&T;bL-Ng*M#!2czLMZsXw@uu8It+w>S6bun?94R6Bp+|~?iE0sc6(K_gZpOoPsrcoen>*3hw3FK7`dKH>rha{Jxa}h zOL=DQTkr#3wg{0J`UGMm?&drvR_H!dGK<&#h~w@{c-<~cf%_KTaX;3K`)7Qh4?5yu z&4<+Be&7+vkK5}CXYiqGcEC!>os!0@eF;w$KiL&?=;^|zJi-V(NApvKmtYe=eI!Ea z*~aJ3ZHE{5f~qFi!xye-BN{f4FDiTkdP}b0i~VmS{|R4LjYTB3!DYUwx`@cDls|A1BlD`2Y=ww`S0{h4MJ&J7r?)vox%W{1 zz1bL<_gKE&VkS)Hk4OFnm+==i<9zQo`A(a7c!=+6#{j&a@ZZ1wn8>GpuSW8TmkMen zPw;o$ae>cGIcteKns2n+q7)VT*2yi$BgDQZq=Xj@Ty8bjHX>oRMcH1Q7Xcl4st+alcdYJij9Bf4|%E!kj}y{swt* z7@phyUh=swpkn`Yd9}FR{O8M;Dlt<3*X1kCFctn+<*)5QMFGz8UAYrsnEail!>~kt z;=l0160lr;a=RPcEBVhp1C{cReEJgwI?KBs+<<`!zT1c!OyB~Ac3}!UsBl((3A+?t z%?MSHy<+qM(Q%3>$9gzZ5w*PvzN(l>3V2L0CmHvFpqq*XzvKFm7K+6$&w}F=uc&*7 zM#U>u2zGF@qP}whQ7|d$FJk`(50Z>j)Ej#X<}22Y#EW6@Iz_`igfh5Y@y3@J@#q1H z?UPF29L28WTDV+OlgIx4!qMSg6S;@-Xuut~|9--PFsM$RN4aZAZ7{fR;hO5WNGj!|l=F@lh}O4p6p zMj_Xg!`042<6M>AY3SIvSY<%NPPj!G=r{mgQU(P@6NMU-;q{f!OBufv9SW^graujX zZz`vq$74G56J?qI1)}jb$_l3zm}OK}i?7P#H!7E@apCww%I#an5lygA9yXkZHOh{e z=-`BH%JYvd!!wdU^*PZ+#b@C$JaMc_J$*IIR%IMR!xO(zW$!N_3gaY$BxkBhR$^_1 z)vD&y5WIaCPPKn+F!WdLH#Nd^RZCb9d`b2G%Gp}qLF6L3)U*nB zP-A4G+K=P#C8D1?By9@}R8KKskwvAe6MC&u&rqVrQClQGSLfx#FqqdQ3qKtKQrij^}@jt9nXV_b`dkwBe{8J!Ba>*g`r>>{ zVeBsTEyArk_MC=}B64wRjm!~K7w4_v#N%4I9n6`(LDH`CgzMU_J7=E&1BnB zqWHm@B!?_GRx`sBA&dW7Gppe#(d1DYV>g_#RZ|!I3sFM2ras~(%+>6uMW_>A*0gnB zg!?pS<2r~EgEZgnae~R3TMVWyafjynsfbA85zRf_4)}+rXHo@G(iF|3c;jD4tkgWU zwY+`*yFaCdOD@qS7MCNxSNmcYBAWWMR+t<~l;)&eKh6#|YBw9-4@crdZ6k9HKJGK! zUEBEN2vK^N_VsRzFg;7VF9Z=uuh%vk&_Mcr?YrqW;iua6`xr@vPJ5UU_1B)Q!+9C$ z+B==7H)DxTUX_F|oNwryB5uIbI{%bc;GeqC#F<3XBXq{3zk-o?L024s_x|ah_BlhL zD;bIM8Q!{@ZRo&^DBb=C2>p!Nx)1%zV56?%>=<}XcmBsc@Rsi5vM{1d2i=#MqVc+~ znij%Ex_d#WC-aEz$EYi?M|a z&mM(u>(6HT66M+HFL9_ZuSEaFfNr=?f9)K0L7wrU{`z%ND)~{9g^RhtP0Ah+*m^M5JJ$pSWH8k!$_z~2n5 zYdNAq2gC8zcCgrRW<9PetTo)MM28Do4d1gEh+p9q!-F_%ufnH>2k(7MR5TGc{Gyq- zB@s&%3ZNceT2NkDk(`rDJhByx&|v0o`S&A=O5upv2qDBg`#&66&k+qhp>kn~+eG&g9Id2bC|iJ<%PAkJ{Jv|RZG-ZKc(*~O;X_NAY!3>@ ziQ;7i=t3#}ckJ!=yx!`c>l!b9Z)3!H`+r}~+ofn8gTvqK-foFO5WAi)EE(Hh zsPSIQ3>Cgf8e|quFVdXeb1Hf9JCaH7)658!BOHWlzBiaq;lmN`%y@zETg)U1OZ;4g z+Oc}mM}B^+l^I20#IrDNF}8>sFMcyI{T?uid1g}kmYDd}!ZbK&t?chd@a}GE2)@SH zS)vnjdP7hOy?VP;#EY-qrlK)V8HW(+Kx_FpqZ|X9MMYA$a{A^|s4lY?j)n~Uzno`! zVO%>u(CYc+iAgKRoCNdYtES)>K8!gn#D#kb%`Yg0sTm`LcfuR(pIgu9K{-95F7yKz z;r-JzHsUeM_zUG@orM);7Q(VgdCYL(he^4n<^ITQp9xD@PN;p2lGNX5Uh*Oq>-WAi0-pMOL_#A0IdMs|o zSS+CeOs+V+6-XE197i1Mo9^d&@a#Fl>-lp{%?0s{=|pi1C-}{G5+cg%;9yf@nT8!; z_snfUtnis#Z*rXz!0JMtEyCC=g^n@@)4uW{a>hkqJZv@31kz+!c!n_(H@CP`%Q5NV z?cH>|N+V+?2%U?@8&e2(``%9x`d)?95~}OXuk98hXYp3G>VKXNrZvX-?7sjT-11fc delta 6763 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 T3EHM{RZ^E(>+C0HP3Qjyu?D5- diff --git a/resources/i18n/openlp_en.qm b/resources/i18n/openlp_en.qm new file mode 100644 index 0000000000000000000000000000000000000000..6bd22c41dfd987e516ede9d5e79a545715d2ad8c GIT binary patch literal 337 rcmcE7ks@*G{hX<16=n7(EZlq7i2(>QL4-a71EUecbP#hC5FY{nJdg@w literal 0 HcmV?d00001 diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index c3cb8a595..a00e05646 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -2,11 +2,6 @@ AboutForm - - - build - - About OpenLP @@ -216,19 +211,14 @@ This General Public License does not permit incorporating your program into prop Close + + + build + + AlertForm - - - Item selected to Add - - - - - Missing data - - Alert Message @@ -274,6 +264,89 @@ This General Public License does not permit incorporating your program into prop &Close + + + Item selected to Add + + + + + Missing data + + + + + AlertsTab + + + pt + + + + + Location: + + + + + Font Color: + + + + + Font + + + + + Font Name: + + + + + Preview + + + + + Alerts + + + + + Alert timeout: + + + + + openlp.org + + + + + Background Color: + + + + + s + + + + + Bottom + + + + + Top + + + + + Font Size: + + AmendThemeForm @@ -685,8 +758,18 @@ This General Public License does not permit incorporating your program into prop - - Book: + + Clear + + + + + Search + + + + + To: @@ -694,21 +777,11 @@ This General Public License does not permit incorporating your program into prop Text Search - - - Find: - - Search Type: - - - Bible not fully loaded - - No matching book could be found in this Bible. @@ -725,8 +798,13 @@ This General Public License does not permit incorporating your program into prop - - Search + + Bible not fully loaded + + + + + No Book Found @@ -755,8 +833,13 @@ This General Public License does not permit incorporating your program into prop - - No Book Found + + Find: + + + + + Book: @@ -764,16 +847,6 @@ This General Public License does not permit incorporating your program into prop Advanced - - - To: - - - - - Clear - - Verse: @@ -816,13 +889,13 @@ This General Public License does not permit incorporating your program into prop - - Verse Display + + Display Dual Bible Verses - - Display Dual Bible Verses + + Bibles @@ -831,8 +904,8 @@ This General Public License does not permit incorporating your program into prop - - Layout Style: + + Verse Display @@ -840,11 +913,6 @@ This General Public License does not permit incorporating your program into prop No brackets - - - Bibles - - { and } @@ -866,6 +934,11 @@ Changes don't affect verses already in the service Bible Theme: + + + Layout Style: + + CustomMediaItem @@ -901,6 +974,14 @@ Changes don't affect verses already in the service + + DisplayTab + + + Displays + + + EditCustomForm @@ -923,11 +1004,6 @@ Changes don't affect verses already in the service Save && Preview - - - You have unsaved data, please save or clear - - Edit Custom Slides @@ -1028,6 +1104,11 @@ Changes don't affect verses already in the service Credits: + + + You have unsaved data, please save or clear + + EditSongForm @@ -1051,31 +1132,6 @@ Changes don't affect verses already in the service Error - - - bitped - - - - - v - - - - - c - - - - - Invalid verse entry - Vx or Cx - - - - - Invalid verse entry, values must be I,B,T,P,E,O,Vx,Cx - - Song Editor @@ -1201,19 +1257,34 @@ Changes don't affect verses already in the service Theme, Copyright Info && Comments + + + bitped + + + + + v + + + + + c + + + + + Invalid verse entry - Vx or Cx + + + + + Invalid verse entry, values must be I,B,T,P,E,O,Vx,Cx + + EditVerseForm - - - Verse - - - - - Chrous - - Edit Verse @@ -1229,6 +1300,11 @@ Changes don't affect verses already in the service Intro + + + Verse + + Pre-Chorus @@ -1259,6 +1335,11 @@ Changes don't affect verses already in the service Number + + + Chrous + + GeneralTab @@ -1267,6 +1348,11 @@ Changes don't affect verses already in the service CCLI Details + + + SongSelect Password: + + primary @@ -1337,11 +1423,6 @@ Changes don't affect verses already in the service Monitors - - - SongSelect Password: - - Display if a single screen @@ -1420,8 +1501,8 @@ Changes don't affect verses already in the service ImportWizardForm - - You need to specify a file with books of the Bible to use in the import. + + Bible Exists @@ -1434,11 +1515,6 @@ Changes don't affect verses already in the service You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - Bible Exists - - Empty Copyright @@ -1464,16 +1540,6 @@ Changes don't affect verses already in the service Finished import. - - - You need to specify a file of Bible verses to import. - - - - - You need to specify a version name for your Bible. - - This Bible already exists! Please import a different Bible or first delete the existing one. @@ -1489,16 +1555,6 @@ Changes don't affect verses already in the service Invalid Books File - - - You need to specify a file to import your Bible from. - - - - - You need to specify an OpenSong Bible file to import. - - Invalid Verse File @@ -1509,21 +1565,6 @@ Changes don't affect verses already in the service Open OpenSong Bible - - - Open OSIS File - - - - - Open Books CSV File - - - - - Open Verses CSV File - - Bible Import Wizard @@ -1679,16 +1720,56 @@ Changes don't affect verses already in the service Ready. + + + You need to specify a file to import your Bible from. + + + + + You need to specify a file with books of the Bible to use in the import. + + + + + You need to specify a file of Bible verses to import. + + + + + You need to specify an OpenSong Bible file to import. + + + + + You need to specify a version name for your Bible. + + + + + Open OSIS File + + + + + Open Books CSV File + + + + + Open Verses CSV File + + LanguageManager - + Language - + After restart new Language settings will be used. @@ -1715,21 +1796,6 @@ Changes don't affect verses already in the service OpenLP Main Display Blanked - - - New Service - - - - - Open Service - - - - - Save Service - - OpenLP 2.0 @@ -1805,6 +1871,11 @@ Changes don't affect verses already in the service &New + + + New Service + + Create a new Service @@ -1820,6 +1891,11 @@ Changes don't affect verses already in the service &Open + + + Open Service + + Open an existing service @@ -1835,6 +1911,11 @@ Changes don't affect verses already in the service &Save + + + Save Service + + Save the current service to disk @@ -2090,11 +2171,6 @@ You can download the latest version from http://openlp.org Load a new - - - Delete the selected item - - &Edit @@ -2120,6 +2196,11 @@ You can download the latest version from http://openlp.org Edit the selected + + + Delete the selected item + + Add a new @@ -2171,26 +2252,26 @@ You can download the latest version from http://openlp.org - - Invalid Service Item + + You must select an existing service item to add to. - - You must select an existing service item to add to. + + Invalid Service Item MediaMediaItem - - Media + + Select Media - - Select Media + + Media @@ -2378,6 +2459,11 @@ You can download the latest version from http://openlp.org OpenSongExportForm + + + OpenSong Song Exporter + + Select OpenSong song folder: @@ -2443,11 +2529,6 @@ You can download the latest version from http://openlp.org Close - - - OpenSong Song Exporter - - OpenSongImportForm @@ -2538,8 +2619,8 @@ You can download the latest version from http://openlp.org - - Automatic + + Select Presentation(s) @@ -2548,13 +2629,13 @@ You can download the latest version from http://openlp.org - - Select Presentation(s) + + File exists - - File exists + + Automatic @@ -2635,6 +2716,11 @@ You can download the latest version from http://openlp.org ServiceManager + + + Save Service + + Save Changes to Service? @@ -2671,8 +2757,8 @@ You can download the latest version from http://openlp.org - - Save Service + + &Preview Verse @@ -2680,11 +2766,6 @@ You can download the latest version from http://openlp.org &Live Verse - - - Move to &top - - New Service @@ -2695,16 +2776,6 @@ You can download the latest version from http://openlp.org &Notes - - - Move to end - - - - - &Delete From Service - - Move up order @@ -2715,24 +2786,14 @@ You can download the latest version from http://openlp.org Move down order - - - Move &down - - Load an existing service - - &Preview Verse - - - - - Move &up + + Move to end @@ -2740,11 +2801,41 @@ You can download the latest version from http://openlp.org &Edit Item + + + Move to &top + + + + + Move &up + + + + + Move &down + + Move to &bottom + + + &Delete From Service + + + + + &Add New Item + + + + + &Add to Selected Item + + &Maintain Item @@ -2760,16 +2851,6 @@ You can download the latest version from http://openlp.org Your current service is unsaved, do you want to save the changes before opening a new one? - - - &Add New Item - - - - - &Add to Selected Item - - Missing Display Handler @@ -2804,6 +2885,16 @@ You can download the latest version from http://openlp.org Move to previous + + + Edit and re-preview Song + + + + + Delay between slides in seconds + + Go to Verse @@ -2829,24 +2920,14 @@ You can download the latest version from http://openlp.org Move to live - - - Preview - - Move to last - - Edit and re-preview Song - - - - - Delay between slides in seconds + + Verse @@ -2865,8 +2946,8 @@ You can download the latest version from http://openlp.org - - Verse + + Preview @@ -2925,26 +3006,6 @@ You can download the latest version from http://openlp.org SongMaintenanceForm - - - Are you sure you want to delete the selected book? - - - - - Couldn't save your author. - - - - - This author can't be deleted, they are currently assigned to at least one song. - - - - - Couldn't add your book. - - Error @@ -2956,13 +3017,13 @@ You can download the latest version from http://openlp.org - - Couldn't add your topic. + + Are you sure you want to delete the selected book? - - This book can't be deleted, it is currently assigned to at least one song. + + Delete Topic @@ -2980,26 +3041,6 @@ You can download the latest version from http://openlp.org Are you sure you want to delete the selected author? - - - Couldn't add your author. - - - - - Couldn't save your topic. - - - - - Couldn't save your book. - - - - - Delete Topic - - Delete Author @@ -3010,11 +3051,6 @@ You can download the latest version from http://openlp.org No topic selected! - - - This topic can't be deleted, it is currently assigned to at least one song. - - Are you sure you want to delete the selected topic? @@ -3055,6 +3091,51 @@ You can download the latest version from http://openlp.org Delete + + + Couldn't add your author. + + + + + Couldn't add your topic. + + + + + Couldn't add your book. + + + + + Couldn't save your author. + + + + + Couldn't save your topic. + + + + + Couldn't save your book. + + + + + This author can't be deleted, they are currently assigned to at least one song. + + + + + This topic can't be deleted, it is currently assigned to at least one song. + + + + + This book can't be deleted, it is currently assigned to at least one song. + + SongMediaItem @@ -3073,6 +3154,11 @@ You can download the latest version from http://openlp.org Maintain the lists of authors, topics and books + + + Titles + + Lyrics @@ -3083,11 +3169,6 @@ You can download the latest version from http://openlp.org Type: - - - Titles - - Clear @@ -3236,11 +3317,6 @@ You can download the latest version from http://openlp.org Delete a theme - - - File is not a valid theme. - - Edit a theme @@ -3256,11 +3332,6 @@ You can download the latest version from http://openlp.org Export Theme - - - You are unable to delete the default theme. - - Theme Exists @@ -3301,11 +3372,6 @@ You can download the latest version from http://openlp.org Export theme - - - You have not selected a theme. - - A theme with this name already exists, would you like to overwrite it? @@ -3316,6 +3382,11 @@ You can download the latest version from http://openlp.org Export a theme + + + You are unable to delete the default theme. + + Theme %s is use in %s plugin @@ -3326,6 +3397,16 @@ You can download the latest version from http://openlp.org Theme %s is use by Service Manager + + + You have not selected a theme. + + + + + File is not a valid theme. + + ThemesTab @@ -3340,8 +3421,8 @@ You can download the latest version from http://openlp.org - - Use the global theme, overriding any themes associated with either the service or the songs. + + Global level @@ -3355,8 +3436,8 @@ You can download the latest version from http://openlp.org - - Global level + + Use the global theme, overriding any themes associated with either the service or the songs. @@ -3365,13 +3446,13 @@ You can download the latest version from http://openlp.org - - Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. + + Themes - - Themes + + Use the theme from the service, overriding any of the individual songs' themes. If the service doesn't have a theme, then use the global theme. @@ -3502,6 +3583,54 @@ You can download the latest version from http://openlp.org + + self + + + Amend Display Settings + + + + + Default Settings + + + + + X + + + + + 0 + + + + + Y + + + + + Height + + + + + Width + + + + + Amend Settings + + + + + Override Output Display + + + self.ImportSongMenu diff --git a/resources/i18n/openlp_en_GB.qm b/resources/i18n/openlp_en_GB.qm index b2dc819313cb2da8c1cc22fd27930256eea7d5ab..5a31382cf6d76e4b0ad2cc29f4110b0c77c2de18 100644 GIT binary patch delta 5016 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 E0H_MW82|tP diff --git a/resources/i18n/openlp_en_ZA.qm b/resources/i18n/openlp_en_ZA.qm index 58ee3e02cfc5dbcbb211fa5aa464ff1af936163f..344aec034fd47537dbabafa9656a5f1229f64c09 100644 GIT binary patch delta 3314 zcmZwJ3tUuH9tZIMow={Mb7uw!k%tc+0tyHS@+J%td@Cp@ArWHuMi3E8T*pl$&4WZjyRVS(37~p(=eR4QEhM> zah29`261~v!A0b>ZVg;b{qGgSCi3nMhIh#4GfyIoE%{pOYrM#J*2gf4e695~iK>O< zdl?q29)@4`SD>-!drr?H`%V4CU*)%~hh zdSw|JSN9aN=0M|lSLmxclg4k&Lb+J=uw?F&FVVkI@djhPjX&}Xx&h;)8*C2ld1SvQHkHu>X10kxLi zf;;J(%y!sJ&nF;TXp5!1u6#v1>(xlES=DbP?7v?)}i9)WM9@ zRTJsmnHlG>r1}X=&UD0@K99-s#?0w=Gb>JPgI_T_Y+oib$tK3~4ACh2GiTzQ;56p) zrI+AJ=Bj2F+{@f}2U9PfSAEXhzki#^;I0uh=zt+s<8Z1J7HC}SF%aW3jhkO5HcgPm zb2sjr7HOttV&|CN(`>5R4LddOh4>KJIBGubUSdWjO7loL1XpOfPM?N*wel8>)aHcN z)UXQP)b^j4LS!pyT^C_$ZHH*bCA7iu+R1~b!KK;^Ys0p!+Qn`aM0SjJXC9W)E?oO@ zH|pEvYOkKf(%DsMpY(WA`{URtDBsq0m6>tl1%VZxM#3!C#wQ3Cu>-5WfGwP#*z~}HDTT`Yb>Z@T7 z)S#ihPO9g%csH_3Au?!V8aJi$ylUEroF z%ZZ$Qxb$!g#5tCmwe}cH$xpKv$p>tPqKu}2X1x8dy; z;JN-0ynQTUr2ksp`DZL`e{&5VQS5_E3!ixGI(*Eh=3^uS?D&kN5IBsVHKPtD@^ePw zL>rLHFPe|%2UPM!VjHaE->+(bE&Qon-ms(Bfv&3K`3r%4hz8E)+a6-q3|uL2ZLh#O z!9%=({Xg)w5OoMWbqx?kyOzLYVIB!^iRwNfFBw7SdRkc8l>(m%EB?HY$jwDqt2o2E zLdnIYMD8PmlFJA__cWnA{5!ZZ1wJ7jykrRi*BO=$=23{A3N*?f; z7?6q=dG-@SU0q<37#21b7K`yE1<)eq4F8nKOB5Ho9fh;S2Ge=$f3GUBc^(?}`ba$g z*lV*)O*j@6%=VHfl_4=D__w$#IcYF?Cl^V?@$;cE+=cXVU{mP^Z7OVBr<-%Inrq{Y+X8gMKthGGU zMbGZv0f*}sR^VJ1I$LjUgZ}0El7x1mfGPUwcQDd`1^Q!cm*FP;znIfRfujD-RCF|O zsQ$j88s_UCk68?F=*>?i;$Rsj>32i{YhJ%;Lljr2aN?DnNgD3ccym5px(Qr}TdORL_%G;RhFiqap-3XV+2V$@U z!^`ClOsGG+#;j&q2&3_xedpm4V{zpJSZ+MjjhKjNG9F!m4n}@s zY|!Gwi_#jKZlay2!N#*0!(goOnoAqZH(o!7n24$~wzkfLttJ{-51*UH*P;HXXfM;$ zG3a4*lBu>FK^Xmp>13%htTCP0hzFuCnc52qV5jMh1}}cm&h&5sg6G9B)58xh!3EgV zFK$up>b>o8Y>*VYAUnTcaq^5T;_!E*KoMk5B~y0zKR2gmD)Z#P-`z;a&CfwC{ApE6 z{PfEsjIzCx=i!~v@d(v`R4e{sxe-gr_C++F^ zK0p?=O!U!jx!w$Z5_=K?idyJ4z7gBMCgnz=QTZlOuziFp<vfoxzeaHp=IT_CAaw r9m56_hdz5J3?{Qq!Ij;)*;mu9^#B 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 diff --git a/resources/i18n/openlp_es.qm b/resources/i18n/openlp_es.qm index f128095b841b2e9f42ae36617e70d4149e64142b..da03a2e0f0c8e6032763a3a0643b226baa14663b 100644 GIT binary patch delta 3800 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 delta 3407 zcmb7`30PIf701uz-TU^1F|vns*J zxF!~>gkTaC<(bxKm88VR1()PAt&LIhNu=7QQR|Z6()K@(F`p)2+spUvZ|0mcGiTZddOM{+ z!DLeU9wCylN!i3%O3FLWffW?6ayeK_kq`QVtz_qR9u~5n{uGR&;hUPkA(Y$l_bivXGTuK)!FM|i^;uTCf9dq8XTc2V z{0cp|KyasrUsEOer#);3;E*BRqem?^Xn5V@?f58ilHrdYZAXqk(54E>7*Axhsz#-? zfP++%t82kR)sn@(0GaCWgJocY>h4jTfU!*utNDV+6e>IBJHSQqvZ8h1+u%mSWGwnO<-0H9Xgy;U)e_9>S*pnM;h1NoV54IE4i0#Jsn~WotI&9; z3|)p0cqJ*%uBid13swq#DA=k@V6Q-bU&%>CEWN#znKQP6y#&jZbqPb!Z&Kd+)g~gJ zSiwokmZVGQmnqdR&jfENyPM#ERj=%Jx*PqKJq=utE;tW_=hjN)fcI>$PHEoE_2-nU zzeciIzi+2+l;9-6Dz$e3?0xIi)?wI~pPzc*swi-vdh*zKaGZKpiVZAP&;2ErZ&y24 zdSWMjjq3NR4-)wYtDCk(f&&F-3vN)K=<5slUQIXcd9YcNZmS^b5~4}pwiq0)DSxdH zT%@Tuxqv8Ow&sn*Yv3A9)lMJqJv+sb*otn!xkDzft({h>f zjy54-BvDYTHnpM*oT{A@*9q19$4@ zT5+91Ki02Z2M0p$={N67B?=4Czq8K_4%P3~Vkco6^~bWtfk*WxT%2wC)ARQc*?JmO zHU_2|WOsjxL4J1&`b!Mz6wXiD>9n;O3agOq;eiHc3)nTmQ1g`$yxq=j@q+UWtrAYC z+cu+a-)-=e(K8X(th>e-z6AHWdxkNi?>X?kajX`0J-h|S7{|>jL4To zGl4`Ap2p4lQ*r+z?8bTv21FDH))>DlqSUkO8hVH_XF_E$Xnj@lq0a&3trn zKO(yaF8CFESnSE>FOT7f?d9f+7iWVXSO%U&%>J{kmU!7z3SDUwR(Lh4Q9Xb?k1J8`j`NA-n$R$<1>++^RcsFYXckR zyVlDSc~amGRz4Lz3YL@C8u#))Q+KfN(~YfJj*|KL(;YlTc%HRKy7Ms#R8lQF>08Sh z{Z6nZ|GD-~&YagLx08Ato&y0wPVp1(*O7wH(P8+xG3(ytvMVHjNvtr?KL}OHJ+1li zxKomX^2D|TX0m{wurzPV#BxP66K@BVqLtK{mndHD={gv~z0KiOtTThoy?)9d<;NLw z*co$xYg|y41-x(szl(UXN{>Gdi z=U8>Lo_WP>XJ5yCB{i@^@yS_(kYD^sM`BELx2C$^Gu&^&r*I)!_{Z-j&&ntIZ_>6O z`*rNK0Y2=F0kUBaWcvx#h0Z*ZarvX4>Cbe*J*oxoZ@Gn?=r%o&6fTv#@bkydhR$P; e1S2U{N@OhqN?2|}qOVU!7nN;DXk#^rXa56muv_f_ diff --git a/resources/i18n/openlp_hu.qm b/resources/i18n/openlp_hu.qm index dc4e5fba2cea68f9dcbf919d865b7f5a71dc8173..4f2c11f7b907fec66b4f95bc9b7fe2bb9acc5f10 100644 GIT binary patch delta 5113 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 diff --git a/resources/i18n/openlp_pt_BR.qm b/resources/i18n/openlp_pt_BR.qm index 4e075ec643a21dc4ec44d3d0ca92d00bf5a9961a..2ad079b4b540d02c765d0bf9f4713ace83badbda 100644 GIT binary patch delta 5071 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 diff --git a/resources/i18n/openlp_sv.qm b/resources/i18n/openlp_sv.qm index f7b80c6ed111c71d6f3567f8f9774baba1a80b03..ae9d9fec046ede9221e918dc3627f03c775b508a 100644 GIT binary patch delta 5297 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 diff --git a/scripts/translation_utils.py b/scripts/translation_utils.py index 7a76a5566..0135efeb6 100755 --- a/scripts/translation_utils.py +++ b/scripts/translation_utils.py @@ -38,7 +38,8 @@ from PyQt4 import QtCore ignore_pathes = [u"./scripts", u"./openlp/core/test"] ignore_files = [u"setup.py"] translation_path = u"http://pootle.projecthq.biz/export/openlp/" -translations = [ u"af" +translations = [ u"en" + , u"af" , u"en_ZA" , u"en_GB" , u"de" From 23c3974afda45b633da4729a60a8de179e1906d7 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 15 May 2010 07:44:36 +0100 Subject: [PATCH 18/22] Display fixes --- openlp/core/lib/renderer.py | 7 +++++-- openlp/core/ui/slidecontroller.py | 29 +++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index cfb0e2bc2..64e54e5fc 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -533,7 +533,10 @@ class Renderer(object): font = self.mainFont metrics = QtGui.QFontMetrics(font) w = metrics.width(line) - h = metrics.height() + int(self._theme.font_main_line_adjustment) + if footer: + h = metrics.height() + else: + h = metrics.height() + int(self._theme.font_main_line_adjustment) if draw: self.painter.setFont(font) if color is None: @@ -581,4 +584,4 @@ class Renderer(object): """ image.save(u'renderer.png', u'png') if image2: - image2.save(u'renderer2.png', u'png') \ No newline at end of file + image2.save(u'renderer2.png', u'png') diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 37e0cf59a..07ca6b845 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -114,10 +114,7 @@ class SlideController(QtGui.QWidget): self.songEditList = [ u'Edit Song', ] - if isLive: - self.labelWidth = 20 - else: - self.labelWidth = 0 + self.labelWidth = 20 self.timer_id = 0 self.songEdit = False self.selectedRow = 0 @@ -160,7 +157,7 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.setColumnCount(2) self.PreviewListWidget.horizontalHeader().setVisible(False) self.PreviewListWidget.verticalHeader().setVisible(False) - self.PreviewListWidget.setColumnWidth(1, self.labelWidth) + self.PreviewListWidget.setColumnWidth(0, self.labelWidth) self.PreviewListWidget.setColumnWidth( 1, self.Controller.width() - self.labelWidth) self.PreviewListWidget.isLive = self.isLive @@ -536,7 +533,7 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.rowCount() + 1) rowitem = QtGui.QTableWidgetItem() item = QtGui.QTableWidgetItem() - slide_height = 0 + slideHeight = 0 #It is a based Text Render if self.serviceItem.is_text(): if self.isLive and frame[u'verseTag'] is not None: @@ -569,14 +566,14 @@ class SlideController(QtGui.QWidget): label.setScaledContents(True) label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) self.PreviewListWidget.setCellWidget(framenumber, 1, label) - slide_height = width * self.parent.RenderManager.screen_ratio + slideHeight = width * self.parent.RenderManager.screen_ratio row += 1 rowitem.setText(unicode(row)) rowitem.setTextAlignment(QtCore.Qt.AlignVCenter) self.PreviewListWidget.setItem(framenumber, 0, rowitem) self.PreviewListWidget.setItem(framenumber, 1, item) - if slide_height != 0: - self.PreviewListWidget.setRowHeight(framenumber, slide_height) + if slideHeight != 0: + self.PreviewListWidget.setRowHeight(framenumber, slideHeight) if self.serviceItem.is_text(): self.PreviewListWidget.resizeRowsToContents() self.PreviewListWidget.setColumnWidth(0, self.labelWidth) @@ -604,16 +601,16 @@ class SlideController(QtGui.QWidget): data = [] if self.serviceItem: for framenumber, frame in enumerate(self.serviceItem.get_frames()): - data_item = {} + dataItem = {} if self.serviceItem.is_text(): - data_item[u'tag'] = unicode(frame[u'verseTag']) - data_item[u'text'] = unicode(frame[u'text']) + dataItem[u'tag'] = unicode(frame[u'verseTag']) + dataItem[u'text'] = unicode(frame[u'text']) else: - data_item[u'tag'] = unicode(framenumber) - data_item[u'text'] = u'' - data_item[u'selected'] = \ + dataItem[u'tag'] = unicode(framenumber) + dataItem[u'text'] = u'' + dataItem[u'selected'] = \ (self.PreviewListWidget.currentRow() == framenumber) - data.append(data_item) + data.append(dataItem) Receiver.send_message(u'slidecontroller_%s_text_response' % self.typePrefix, data) From c5b12ffaf311c31f09cda701251c7b2f212d5704 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 15 May 2010 07:57:29 +0100 Subject: [PATCH 19/22] Screen size fix for Raoul --- openlp/core/ui/maindisplay.py | 8 +++++--- openlp/core/ui/mainwindow.py | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 4b2c4d268..b0278428a 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -116,10 +116,12 @@ class MainDisplay(DisplayWidget): """ log.debug(u'Initialisation started') DisplayWidget.__init__(self, parent) + self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint) + self.setWindowState(QtCore.Qt.WindowFullScreen) self.parent = parent self.setWindowTitle(u'OpenLP Display') # WA_TranslucentBackground is not available in QT4.4 - try: + try: self.setAttribute(QtCore.Qt.WA_TranslucentBackground) except AttributeError: pass @@ -346,12 +348,12 @@ class VideoDisplay(Phonon.VideoWidget): Phonon.createPath(self.mediaObject, self.audioObject) flags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Dialog # WindowsStaysOnBottomHint is not available in QT4.4 - try: + try: flags = flags | QtCore.Qt.WindowStaysOnBottomHint except AttributeError: pass self.setWindowFlags(flags) - + QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'maindisplay_hide'), self.mediaHide) QtCore.QObject.connect(Receiver.get_receiver(), diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index df275dd20..a367039e7 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -730,6 +730,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def loadSettings(self): log.debug(u'Loading QSettings') + print self.geometry() settings = QtCore.QSettings() settings.beginGroup(self.generalSettingsSection) self.recentFiles = settings.value(u'recent files').toStringList() @@ -741,6 +742,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): settings.value(u'main window geometry').toByteArray()) self.restoreState(settings.value(u'main window state').toByteArray()) settings.endGroup() + print self.geometry() def saveSettings(self): log.debug(u'Saving QSettings') From bfb3143cfcc609d823c1d4a94126c601e62b6699 Mon Sep 17 00:00:00 2001 From: andreas Date: Sat, 15 May 2010 21:59:21 +0200 Subject: [PATCH 20/22] fix for empty slide in dual bible view --- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 136f45633..9f0a8e00d 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -519,7 +519,7 @@ class BibleMediaItem(MediaManagerItem): else: service_item.theme = self.parent.settings_tab.bible_theme #if we are verse per slide we have already been added - if self.parent.settings_tab.layout_style != 0: + if self.parent.settings_tab.layout_style != 0 and not bible2: raw_slides.append(bible_text) for slide in raw_slides: service_item.add_from_text(slide[:30], slide) From ac845a93ba58d29b61c58cf19898299d3e5273fd Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 16 May 2010 16:18:05 +0100 Subject: [PATCH 21/22] Fix screen issues - not sure how though --- openlp/core/ui/amendthemedialog.py | 1 + openlp/core/ui/mainwindow.py | 3 +-- openlp/core/ui/slidecontroller.py | 41 +++++++++++++----------------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py index c713eb608..e63316f55 100644 --- a/openlp/core/ui/amendthemedialog.py +++ b/openlp/core/ui/amendthemedialog.py @@ -183,6 +183,7 @@ class Ui_AmendThemeDialog(object): self.MainFontLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.FontMainWrapLineAdjustmentLabel) self.FontMainLineAdjustmentSpinBox = QtGui.QSpinBox(self.FontMainGroupBox) self.FontMainLineAdjustmentSpinBox.setObjectName("FontMainLineAdjustmentSpinBox") + self.FontMainLineAdjustmentSpinBox.setMinimum(-99) self.MainFontLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.FontMainLineAdjustmentSpinBox) self.FontMainWrapIndentationLabel = QtGui.QLabel(self.FontMainGroupBox) self.FontMainWrapIndentationLabel.setObjectName("FontMainWrapIndentationLabel") diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index a367039e7..69b70c0fa 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- # vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 ############################################################################### @@ -730,7 +731,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def loadSettings(self): log.debug(u'Loading QSettings') - print self.geometry() settings = QtCore.QSettings() settings.beginGroup(self.generalSettingsSection) self.recentFiles = settings.value(u'recent files').toStringList() @@ -742,7 +742,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): settings.value(u'main window geometry').toByteArray()) self.restoreState(settings.value(u'main window state').toByteArray()) settings.endGroup() - print self.geometry() def saveSettings(self): log.debug(u'Saving QSettings') diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 07ca6b845..a036c3d9e 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -114,7 +114,6 @@ class SlideController(QtGui.QWidget): self.songEditList = [ u'Edit Song', ] - self.labelWidth = 20 self.timer_id = 0 self.songEdit = False self.selectedRow = 0 @@ -154,12 +153,11 @@ class SlideController(QtGui.QWidget): self.ControllerLayout.setMargin(0) # Controller list view self.PreviewListWidget = SlideList(self) - self.PreviewListWidget.setColumnCount(2) + self.PreviewListWidget.setColumnCount(1) self.PreviewListWidget.horizontalHeader().setVisible(False) - self.PreviewListWidget.verticalHeader().setVisible(False) - self.PreviewListWidget.setColumnWidth(0, self.labelWidth) + #self.PreviewListWidget.verticalHeader().setVisible(False) self.PreviewListWidget.setColumnWidth( - 1, self.Controller.width() - self.labelWidth) + 0, self.Controller.width()) self.PreviewListWidget.isLive = self.isLive self.PreviewListWidget.setObjectName(u'PreviewListWidget') self.PreviewListWidget.setSelectionBehavior(1) @@ -379,8 +377,7 @@ class SlideController(QtGui.QWidget): """ width = self.parent.ControlSplitter.sizes()[self.split] height = width * self.parent.RenderManager.screen_ratio - self.PreviewListWidget.setColumnWidth(0, self.labelWidth) - self.PreviewListWidget.setColumnWidth(1, width - self.labelWidth) + self.PreviewListWidget.setColumnWidth(0, width) #Sort out image hights (Songs , bibles excluded) if self.serviceItem and not self.serviceItem.is_text(): for framenumber, frame in enumerate(self.serviceItem.get_frames()): @@ -523,20 +520,19 @@ class SlideController(QtGui.QWidget): self.serviceItem = serviceItem self.PreviewListWidget.clear() self.PreviewListWidget.setRowCount(0) - self.PreviewListWidget.setColumnWidth(0, self.labelWidth) - self.PreviewListWidget.setColumnWidth(1, width - self.labelWidth) + self.PreviewListWidget.setColumnWidth(0, width) if self.isLive: self.SongMenu.menu().clear() row = 0 + text = [] for framenumber, frame in enumerate(self.serviceItem.get_frames()): self.PreviewListWidget.setRowCount( self.PreviewListWidget.rowCount() + 1) - rowitem = QtGui.QTableWidgetItem() item = QtGui.QTableWidgetItem() slideHeight = 0 #It is a based Text Render if self.serviceItem.is_text(): - if self.isLive and frame[u'verseTag'] is not None: + if frame[u'verseTag'] is not None: #only load the slot once bits = frame[u'verseTag'].split(u':') tag = None @@ -550,10 +546,11 @@ class SlideController(QtGui.QWidget): tag = bits[0] tag1 = tag row = bits[0][0:1] - if tag1 not in self.slideList: - self.slideList[tag1] = framenumber - self.SongMenu.menu().addAction(self.trUtf8(u'%s'%tag1), - self.onSongBarHandler) + if self.isLive: + if tag1 not in self.slideList: + self.slideList[tag1] = framenumber + self.SongMenu.menu().addAction(self.trUtf8(u'%s'%tag1), + self.onSongBarHandler) else: row += 1 item.setText(frame[u'text']) @@ -565,20 +562,18 @@ class SlideController(QtGui.QWidget): self.parent.RenderManager.height) label.setScaledContents(True) label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) - self.PreviewListWidget.setCellWidget(framenumber, 1, label) + self.PreviewListWidget.setCellWidget(framenumber, 0, label) slideHeight = width * self.parent.RenderManager.screen_ratio row += 1 - rowitem.setText(unicode(row)) - rowitem.setTextAlignment(QtCore.Qt.AlignVCenter) - self.PreviewListWidget.setItem(framenumber, 0, rowitem) - self.PreviewListWidget.setItem(framenumber, 1, item) + text.append(unicode(row)) + self.PreviewListWidget.setItem(framenumber, 0, item) if slideHeight != 0: self.PreviewListWidget.setRowHeight(framenumber, slideHeight) + self.PreviewListWidget.setVerticalHeaderLabels(text) if self.serviceItem.is_text(): self.PreviewListWidget.resizeRowsToContents() - self.PreviewListWidget.setColumnWidth(0, self.labelWidth) - self.PreviewListWidget.setColumnWidth(1, - self.PreviewListWidget.viewport().size().width() - self.labelWidth) + self.PreviewListWidget.setColumnWidth(0, + self.PreviewListWidget.viewport().size().width()) if slideno > self.PreviewListWidget.rowCount(): self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) else: From f78565f241c8c7dea5b726432b36f3d3d285cb2e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 16 May 2010 16:39:58 +0100 Subject: [PATCH 22/22] Display clean up --- openlp/core/ui/displaytab.py | 94 ++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/openlp/core/ui/displaytab.py b/openlp/core/ui/displaytab.py index 38a0baa91..d3ef9205d 100644 --- a/openlp/core/ui/displaytab.py +++ b/openlp/core/ui/displaytab.py @@ -42,139 +42,139 @@ class DisplayTab(SettingsTab): self.tabTitleVisible = self.trUtf8('Displays') self.layoutWidget = QtGui.QWidget(self) self.layoutWidget.setGeometry(QtCore.QRect(0, 40, 241, 79)) - self.layoutWidget.setObjectName("layoutWidget") + self.layoutWidget.setObjectName(u'layoutWidget') self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget) - self.verticalLayout.setObjectName("verticalLayout") + self.verticalLayout.setObjectName(u'verticalLayout') self.CurrentGroupBox = QtGui.QGroupBox(self.layoutWidget) - self.CurrentGroupBox.setObjectName("CurrentGroupBox") + self.CurrentGroupBox.setObjectName(u'CurrentGroupBox') self.horizontalLayout = QtGui.QHBoxLayout(self.CurrentGroupBox) - self.horizontalLayout.setObjectName("horizontalLayout") + self.horizontalLayout.setObjectName(u'horizontalLayout') self.verticalLayout_6 = QtGui.QVBoxLayout() - self.verticalLayout_6.setObjectName("verticalLayout_6") + self.verticalLayout_6.setObjectName(u'verticalLayout_6') self.XLabel = QtGui.QLabel(self.CurrentGroupBox) self.XLabel.setAlignment(QtCore.Qt.AlignCenter) - self.XLabel.setObjectName("XLabel") + self.XLabel.setObjectName(u'XLabel') self.verticalLayout_6.addWidget(self.XLabel) self.Xpos = QtGui.QLabel(self.CurrentGroupBox) self.Xpos.setAlignment(QtCore.Qt.AlignCenter) - self.Xpos.setObjectName("Xpos") + self.Xpos.setObjectName(u'Xpos') self.verticalLayout_6.addWidget(self.Xpos) self.horizontalLayout.addLayout(self.verticalLayout_6) self.verticalLayout_7 = QtGui.QVBoxLayout() - self.verticalLayout_7.setObjectName("verticalLayout_7") + self.verticalLayout_7.setObjectName(u'verticalLayout_7') self.YLabel = QtGui.QLabel(self.CurrentGroupBox) self.YLabel.setAlignment(QtCore.Qt.AlignCenter) - self.YLabel.setObjectName("YLabel") + self.YLabel.setObjectName(u'YLabel') self.verticalLayout_7.addWidget(self.YLabel) self.Ypos = QtGui.QLabel(self.CurrentGroupBox) self.Ypos.setAlignment(QtCore.Qt.AlignCenter) - self.Ypos.setObjectName("Ypos") + self.Ypos.setObjectName(u'Ypos') self.verticalLayout_7.addWidget(self.Ypos) self.horizontalLayout.addLayout(self.verticalLayout_7) self.verticalLayout_9 = QtGui.QVBoxLayout() - self.verticalLayout_9.setObjectName("verticalLayout_9") + self.verticalLayout_9.setObjectName(u'verticalLayout_9') self.HeightLabel = QtGui.QLabel(self.CurrentGroupBox) self.HeightLabel.setMaximumSize(QtCore.QSize(100, 16777215)) self.HeightLabel.setAlignment(QtCore.Qt.AlignCenter) - self.HeightLabel.setObjectName("HeightLabel") + self.HeightLabel.setObjectName(u'HeightLabel') self.verticalLayout_9.addWidget(self.HeightLabel) self.Height = QtGui.QLabel(self.CurrentGroupBox) self.Height.setAlignment(QtCore.Qt.AlignCenter) - self.Height.setObjectName("Height") + self.Height.setObjectName(u'Height') self.verticalLayout_9.addWidget(self.Height) self.horizontalLayout.addLayout(self.verticalLayout_9) self.verticalLayout_8 = QtGui.QVBoxLayout() - self.verticalLayout_8.setObjectName("verticalLayout_8") + self.verticalLayout_8.setObjectName(u'verticalLayout_8') self.WidthLabel = QtGui.QLabel(self.CurrentGroupBox) self.WidthLabel.setAlignment(QtCore.Qt.AlignCenter) - self.WidthLabel.setObjectName("WidthLabel") + self.WidthLabel.setObjectName(u'WidthLabel') self.verticalLayout_8.addWidget(self.WidthLabel) self.Width = QtGui.QLabel(self.CurrentGroupBox) self.Width.setAlignment(QtCore.Qt.AlignCenter) - self.Width.setObjectName("Width") + self.Width.setObjectName(u'Width') self.verticalLayout_8.addWidget(self.Width) self.horizontalLayout.addLayout(self.verticalLayout_8) self.verticalLayout.addWidget(self.CurrentGroupBox) self.CurrentGroupBox_2 = QtGui.QGroupBox(self) self.CurrentGroupBox_2.setGeometry(QtCore.QRect(0, 130, 248, 87)) self.CurrentGroupBox_2.setMaximumSize(QtCore.QSize(500, 16777215)) - self.CurrentGroupBox_2.setObjectName("CurrentGroupBox_2") + self.CurrentGroupBox_2.setObjectName(u'CurrentGroupBox_2') self.horizontalLayout_2 = QtGui.QHBoxLayout(self.CurrentGroupBox_2) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') self.verticalLayout_2 = QtGui.QVBoxLayout() - self.verticalLayout_2.setObjectName("verticalLayout_2") + self.verticalLayout_2.setObjectName(u'verticalLayout_2') self.XAmendLabel = QtGui.QLabel(self.CurrentGroupBox_2) self.XAmendLabel.setAlignment(QtCore.Qt.AlignCenter) - self.XAmendLabel.setObjectName("XAmendLabel") + self.XAmendLabel.setObjectName(u'XAmendLabel') self.verticalLayout_2.addWidget(self.XAmendLabel) self.XposEdit = QtGui.QLineEdit(self.CurrentGroupBox_2) self.XposEdit.setMaximumSize(QtCore.QSize(50, 16777215)) self.XposEdit.setMaxLength(4) - self.XposEdit.setObjectName("XposEdit") + self.XposEdit.setObjectName(u'XposEdit') self.verticalLayout_2.addWidget(self.XposEdit) self.horizontalLayout_2.addLayout(self.verticalLayout_2) self.verticalLayout_3 = QtGui.QVBoxLayout() - self.verticalLayout_3.setObjectName("verticalLayout_3") + self.verticalLayout_3.setObjectName(u'verticalLayout_3') self.YAmendLabel = QtGui.QLabel(self.CurrentGroupBox_2) self.YAmendLabel.setAlignment(QtCore.Qt.AlignCenter) - self.YAmendLabel.setObjectName("YAmendLabel") + self.YAmendLabel.setObjectName(u'YAmendLabel') self.verticalLayout_3.addWidget(self.YAmendLabel) self.YposEdit = QtGui.QLineEdit(self.CurrentGroupBox_2) self.YposEdit.setMaximumSize(QtCore.QSize(50, 16777215)) self.YposEdit.setMaxLength(4) - self.YposEdit.setObjectName("YposEdit") + self.YposEdit.setObjectName(u'YposEdit') self.verticalLayout_3.addWidget(self.YposEdit) self.horizontalLayout_2.addLayout(self.verticalLayout_3) self.verticalLayout_4 = QtGui.QVBoxLayout() - self.verticalLayout_4.setObjectName("verticalLayout_4") + self.verticalLayout_4.setObjectName(u'verticalLayout_4') self.HeightAmendLabel = QtGui.QLabel(self.CurrentGroupBox_2) self.HeightAmendLabel.setAlignment(QtCore.Qt.AlignCenter) - self.HeightAmendLabel.setObjectName("HeightAmendLabel") + self.HeightAmendLabel.setObjectName(u'HeightAmendLabel') self.verticalLayout_4.addWidget(self.HeightAmendLabel) self.HeightEdit = QtGui.QLineEdit(self.CurrentGroupBox_2) self.HeightEdit.setMaximumSize(QtCore.QSize(50, 16777215)) self.HeightEdit.setMaxLength(4) - self.HeightEdit.setObjectName("HeightEdit") + self.HeightEdit.setObjectName(u'HeightEdit') self.verticalLayout_4.addWidget(self.HeightEdit) self.horizontalLayout_2.addLayout(self.verticalLayout_4) self.verticalLayout_5 = QtGui.QVBoxLayout() self.verticalLayout_5.setSizeConstraint(QtGui.QLayout.SetMinimumSize) - self.verticalLayout_5.setObjectName("verticalLayout_5") + self.verticalLayout_5.setObjectName(u'verticalLayout_5') self.WidthAmendLabel = QtGui.QLabel(self.CurrentGroupBox_2) self.WidthAmendLabel.setMaximumSize(QtCore.QSize(100, 16777215)) self.WidthAmendLabel.setAlignment(QtCore.Qt.AlignCenter) - self.WidthAmendLabel.setObjectName("WidthAmendLabel") + self.WidthAmendLabel.setObjectName(u'WidthAmendLabel') self.verticalLayout_5.addWidget(self.WidthAmendLabel) self.WidthEdit = QtGui.QLineEdit(self.CurrentGroupBox_2) self.WidthEdit.setMaximumSize(QtCore.QSize(60, 16777215)) - self.WidthEdit.setObjectName("WidthEdit") + self.WidthEdit.setObjectName(u'WidthEdit') self.verticalLayout_5.addWidget(self.WidthEdit) self.horizontalLayout_2.addLayout(self.verticalLayout_5) self.OverrideCheckBox = QtGui.QCheckBox(self) self.OverrideCheckBox.setGeometry(QtCore.QRect(0, 10, 191, 23)) - self.OverrideCheckBox.setObjectName("OverrideCheckBox") + self.OverrideCheckBox.setObjectName(u'OverrideCheckBox') QtCore.QMetaObject.connectSlotsByName(self) QtCore.QObject.connect(self.OverrideCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onOverrideCheckBoxChanged) def retranslateUi(self): - self.setWindowTitle(QtGui.QApplication.translate("self", "Amend Display Settings", None, QtGui.QApplication.UnicodeUTF8)) - self.CurrentGroupBox.setTitle(QtGui.QApplication.translate("self", "Default Settings", None, QtGui.QApplication.UnicodeUTF8)) - self.XLabel.setText(QtGui.QApplication.translate("self", "X", None, QtGui.QApplication.UnicodeUTF8)) - self.Xpos.setText(QtGui.QApplication.translate("self", "0", None, QtGui.QApplication.UnicodeUTF8)) - self.YLabel.setText(QtGui.QApplication.translate("self", "Y", None, QtGui.QApplication.UnicodeUTF8)) - self.Ypos.setText(QtGui.QApplication.translate("self", "0", None, QtGui.QApplication.UnicodeUTF8)) - self.HeightLabel.setText(QtGui.QApplication.translate("self", "Height", None, QtGui.QApplication.UnicodeUTF8)) - self.Height.setText(QtGui.QApplication.translate("self", "0", None, QtGui.QApplication.UnicodeUTF8)) - self.WidthLabel.setText(QtGui.QApplication.translate("self", "Width", None, QtGui.QApplication.UnicodeUTF8)) - self.Width.setText(QtGui.QApplication.translate("self", "0", None, QtGui.QApplication.UnicodeUTF8)) - self.CurrentGroupBox_2.setTitle(QtGui.QApplication.translate("self", "Amend Settings", None, QtGui.QApplication.UnicodeUTF8)) - self.XAmendLabel.setText(QtGui.QApplication.translate("self", "X", None, QtGui.QApplication.UnicodeUTF8)) - self.YAmendLabel.setText(QtGui.QApplication.translate("self", "Y", None, QtGui.QApplication.UnicodeUTF8)) - self.HeightAmendLabel.setText(QtGui.QApplication.translate("self", "Height", None, QtGui.QApplication.UnicodeUTF8)) - self.WidthAmendLabel.setText(QtGui.QApplication.translate("self", "Width", None, QtGui.QApplication.UnicodeUTF8)) - self.OverrideCheckBox.setText(QtGui.QApplication.translate("self", "Override Output Display", None, QtGui.QApplication.UnicodeUTF8)) + self.setWindowTitle( self.trUtf8(u'Amend Display Settings')) + self.CurrentGroupBox.setTitle( self.trUtf8(u'Default Settings')) + self.XLabel.setText(self.trUtf8(u'X')) + self.Xpos.setText(u'0') + self.YLabel.setText( self.trUtf8(u'Y')) + self.Ypos.setText(u'0') + self.HeightLabel.setText( self.trUtf8(u'Height')) + self.Height.setText(u'0') + self.WidthLabel.setText( self.trUtf8(u'Width')) + self.Width.setText(u'0') + self.CurrentGroupBox_2.setTitle( self.trUtf8(u'Amend Settings')) + self.XAmendLabel.setText( self.trUtf8(u'X')) + self.YAmendLabel.setText( self.trUtf8(u'Y')) + self.HeightAmendLabel.setText( self.trUtf8(u'Height')) + self.WidthAmendLabel.setText( self.trUtf8(u'Width')) + self.OverrideCheckBox.setText( self.trUtf8(u'Override Output Display')) def load(self): settings = QtCore.QSettings()