From 5170ad1607219d1d8b4d33235fdc90c2984e3621 Mon Sep 17 00:00:00 2001 From: rimach Date: Mon, 15 Mar 2010 22:49:37 +0100 Subject: [PATCH 01/95] add portable settings --- openlp.pyw | 38 +++++++++++++++++++---------------- openlp/core/utils/__init__.py | 10 +++++++-- 2 files changed, 29 insertions(+), 19 deletions(-) mode change 100644 => 100755 openlp/core/utils/__init__.py diff --git a/openlp.pyw b/openlp.pyw index 1de9c8417..3201167a2 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -155,11 +155,28 @@ def main(): help="Set logging to LEVEL level. Valid values are " "\"debug\", \"info\", \"warning\".") parser.add_option("-p", "--portable", dest="portable", - action="store_true", - help="Specify if this should be run as a portable app, " - "off a USB flash drive.") + default="../openlp-data", metavar="APP_PATH", + help="Specify relative Path where database should be located. E.g. ../openlp-data") parser.add_option("-s", "--style", dest="style", help="Set the Qt4 style (passed directly to Qt4).") + + # Parse command line options and deal with them. + (options, args) = parser.parse_args() + qt_args = [] + if options.loglevel.lower() in ['d', 'debug']: + log.setLevel(logging.DEBUG) + #print 'Logging to:', filename + elif options.loglevel.lower() in ['w', 'warning']: + log.setLevel(logging.WARNING) + else: + log.setLevel(logging.INFO) + if options.style: + qt_args.extend(['-style', options.style]) + if options.portable: + os.environ['PORTABLE'] = options.portable + # Throw the rest of the arguments at Qt, just in case. + qt_args.extend(args) + # Set up logging log_path = AppLocation.get_directory(AppLocation.ConfigDir) if not os.path.exists(log_path): @@ -170,20 +187,7 @@ def main(): u'%(asctime)s %(name)-20s %(levelname)-8s %(message)s')) log.addHandler(logfile) logging.addLevelName(15, u'Timer') - # Parse command line options and deal with them. - (options, args) = parser.parse_args() - qt_args = [] - if options.loglevel.lower() in ['d', 'debug']: - log.setLevel(logging.DEBUG) - print 'Logging to:', filename - elif options.loglevel.lower() in ['w', 'warning']: - log.setLevel(logging.WARNING) - else: - log.setLevel(logging.INFO) - if options.style: - qt_args.extend(['-style', options.style]) - # Throw the rest of the arguments at Qt, just in case. - qt_args.extend(args) + # Initialise the resources qInitResources() # Now create and actually run the application. diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py old mode 100644 new mode 100755 index 5d97dd8f2..bc7c0ebad --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -45,7 +45,10 @@ class AppLocation(object): if dir_type == AppLocation.AppDir: return os.path.abspath(os.path.split(sys.argv[0])[0]) elif dir_type == AppLocation.ConfigDir: - if sys.platform == u'win32': + if os.getenv(u'PORTABLE') is not None: + path = os.path.split(os.path.abspath(sys.argv[0]))[0] + path = os.path.join(path, os.getenv(u'PORTABLE')) + elif sys.platform == u'win32': path = os.path.join(os.getenv(u'APPDATA'), u'openlp') elif sys.platform == u'darwin': path = os.path.join(os.getenv(u'HOME'), u'Library', @@ -58,7 +61,10 @@ class AppLocation(object): path = os.path.join(os.getenv(u'HOME'), u'.openlp') return path elif dir_type == AppLocation.DataDir: - if sys.platform == u'win32': + if os.getenv(u'PORTABLE') is not None: + path = os.path.split(os.path.abspath(sys.argv[0]))[0] + path = os.path.join(path, os.getenv(u'PORTABLE'), u'data') + elif sys.platform == u'win32': path = os.path.join(os.getenv(u'APPDATA'), u'openlp', u'data') elif sys.platform == u'darwin': path = os.path.join(os.getenv(u'HOME'), u'Library', From bc50765e3a854f8c02e511f56856705417908adc Mon Sep 17 00:00:00 2001 From: rimach Date: Mon, 15 Mar 2010 23:08:21 +0100 Subject: [PATCH 02/95] make blank button workable --- openlp/core/ui/maindisplay.py | 11 ++++++++++- openlp/core/ui/slidecontroller.py | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index e59ce2060..f77d0a841 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -226,6 +226,7 @@ class MainDisplay(DisplayWidget): ``frame`` Image frame to be rendered """ + log.debug(u'frameView %d' % (self.displayBlank)) if not self.displayBlank: if transition: if self.frame is not None: @@ -248,14 +249,22 @@ class MainDisplay(DisplayWidget): if not self.isVisible(): self.setVisible(True) self.showFullScreen() + else: + self.waitingFrame = frame + self.waitingFrameTrans = transition def blankDisplay(self, blanked=True): + log.debug(u'Blank main Display %d' % blanked) if blanked: self.displayBlank = True self.display_text.setPixmap(QtGui.QPixmap.fromImage(self.blankFrame)) + self.waitingFrame = None + self.waitingFrameTrans = False else: self.displayBlank = False - if self.display_frame: + if self.waitingFrame: + self.frameView(self.waitingFrame, self.waitingFrameTrans) + elif self.display_frame: self.frameView(self.display_frame) def onMediaQueue(self, message): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 0af64819a..08583cb54 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -524,6 +524,7 @@ class SlideController(QtGui.QWidget): """ Handle the blank screen button """ + log.debug(u'onBlankDisplay %d' % force) if force: self.blankButton.setChecked(True) self.blankScreen(self.blankButton.isChecked()) @@ -540,6 +541,8 @@ class SlideController(QtGui.QWidget): Receiver.send_message(u'%s_blank'% self.serviceItem.name.lower()) else: Receiver.send_message(u'%s_unblank'% self.serviceItem.name.lower()) + else: + self.parent.mainDisplay.blankDisplay(blanked) else: self.parent.mainDisplay.blankDisplay(blanked) From 9fa859ec201e1ba9ab466edad412aebf6819db09 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 16 Mar 2010 19:42:13 +0100 Subject: [PATCH 03/95] remove executable flag --- openlp/core/utils/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 openlp/core/utils/__init__.py diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py old mode 100755 new mode 100644 From d6e4f343fc641bfa36dcc1f826ddcffe8863343b Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 20 May 2010 23:44:43 +0200 Subject: [PATCH 04/95] equal to trunk --- openlp.pyw | 40 ++++++++++++++++------------------- openlp/core/utils/__init__.py | 10 ++------- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 04da5e62b..fb8eff2ed 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -157,28 +157,11 @@ def main(): help="Set logging to LEVEL level. Valid values are " "\"debug\", \"info\", \"warning\".") parser.add_option("-p", "--portable", dest="portable", - default="../openlp-data", metavar="APP_PATH", - help="Specify relative Path where database should be located. E.g. ../openlp-data") + action="store_true", + help="Specify if this should be run as a portable app, " + "off a USB flash drive.") parser.add_option("-s", "--style", dest="style", help="Set the Qt4 style (passed directly to Qt4).") - - # Parse command line options and deal with them. - (options, args) = parser.parse_args() - qt_args = [] - if options.loglevel.lower() in ['d', 'debug']: - log.setLevel(logging.DEBUG) - #print 'Logging to:', filename - elif options.loglevel.lower() in ['w', 'warning']: - log.setLevel(logging.WARNING) - else: - log.setLevel(logging.INFO) - if options.style: - qt_args.extend(['-style', options.style]) - if options.portable: - os.environ['PORTABLE'] = options.portable - # Throw the rest of the arguments at Qt, just in case. - qt_args.extend(args) - # Set up logging log_path = AppLocation.get_directory(AppLocation.ConfigDir) if not os.path.exists(log_path): @@ -186,10 +169,23 @@ def main(): filename = os.path.join(log_path, u'openlp.log') logfile = FileHandler(filename, u'w') logfile.setFormatter(logging.Formatter( - u'%(asctime)s %(name)-20s %(levelname)-8s %(message)s')) + u'%(asctime)s %(name)-55s %(levelname)-8s %(message)s')) log.addHandler(logfile) logging.addLevelName(15, u'Timer') - + # Parse command line options and deal with them. + (options, args) = parser.parse_args() + qt_args = [] + if options.loglevel.lower() in ['d', 'debug']: + log.setLevel(logging.DEBUG) + print 'Logging to:', filename + elif options.loglevel.lower() in ['w', 'warning']: + log.setLevel(logging.WARNING) + else: + log.setLevel(logging.INFO) + if options.style: + qt_args.extend(['-style', options.style]) + # Throw the rest of the arguments at Qt, just in case. + qt_args.extend(args) # Initialise the resources qInitResources() # Now create and actually run the application. diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index ec9e2a211..5df5d397a 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -56,10 +56,7 @@ class AppLocation(object): if dir_type == AppLocation.AppDir: return os.path.abspath(os.path.split(sys.argv[0])[0]) elif dir_type == AppLocation.ConfigDir: - if os.getenv(u'PORTABLE') is not None: - path = os.path.split(os.path.abspath(sys.argv[0]))[0] - path = os.path.join(path, os.getenv(u'PORTABLE')) - elif sys.platform == u'win32': + if sys.platform == u'win32': path = os.path.join(os.getenv(u'APPDATA'), u'openlp') elif sys.platform == u'darwin': path = os.path.join(os.getenv(u'HOME'), u'Library', @@ -73,10 +70,7 @@ class AppLocation(object): path = os.path.join(os.getenv(u'HOME'), u'.openlp') return path elif dir_type == AppLocation.DataDir: - if os.getenv(u'PORTABLE') is not None: - path = os.path.split(os.path.abspath(sys.argv[0]))[0] - path = os.path.join(path, os.getenv(u'PORTABLE'), u'data') - elif sys.platform == u'win32': + if sys.platform == u'win32': path = os.path.join(os.getenv(u'APPDATA'), u'openlp', u'data') elif sys.platform == u'darwin': path = os.path.join(os.getenv(u'HOME'), u'Library', From 7c9044e542e84d121f9f661388a9571f64b4ab53 Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 21 May 2010 00:21:49 +0200 Subject: [PATCH 05/95] add external database setting --- openlp/core/ui/generaltab.py | 54 +++++++++++++++++++++++++++++++++++ openlp/core/utils/__init__.py | 8 +++++- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index f55d81a70..898db37e5 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -98,6 +98,27 @@ class GeneralTab(SettingsTab): self.ShowSplashCheckBox.setObjectName(u'ShowSplashCheckBox') self.StartupLayout.addWidget(self.ShowSplashCheckBox) self.GeneralLeftLayout.addWidget(self.StartupGroupBox) + self.DataBaseGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget) + self.DataBaseGroupBox.setObjectName("DataBaseGroupBox") + self.verticalLayout_2 = QtGui.QVBoxLayout(self.DataBaseGroupBox) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.DataBaseCheckBox = QtGui.QCheckBox(self.DataBaseGroupBox) + self.DataBaseCheckBox.setObjectName("DataBaseCheckBox") + self.verticalLayout_2.addWidget(self.DataBaseCheckBox) + self.horizontalLayout_2 = QtGui.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.DataBaseButton = QtGui.QPushButton(self.DataBaseGroupBox) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/general/general_open.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.DataBaseButton.setIcon(icon1) + self.DataBaseButton.setObjectName("DataBaseButton") + self.horizontalLayout_2.addWidget(self.DataBaseButton) + self.DataBasePath = QtGui.QLineEdit(self.DataBaseGroupBox) + self.DataBasePath.setReadOnly(True) + self.DataBasePath.setObjectName("DataBasePath") + self.horizontalLayout_2.addWidget(self.DataBasePath) + self.verticalLayout_2.addLayout(self.horizontalLayout_2) + self.GeneralLeftLayout.addWidget(self.DataBaseGroupBox) self.SettingsGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget) self.SettingsGroupBox.setObjectName(u'SettingsGroupBox') self.SettingsLayout = QtGui.QVBoxLayout(self.SettingsGroupBox) @@ -164,6 +185,11 @@ class GeneralTab(SettingsTab): QtCore.QObject.connect(self.ShowSplashCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onShowSplashCheckBoxChanged) + QtCore.QObject.connect(self.DataBaseCheckBox, + QtCore.SIGNAL(u'stateChanged(int)'), + self.onDataBaseCheckBoxChanged) + QtCore.QObject.connect(self.DataBaseButton, + QtCore.SIGNAL(u'clicked()'), self.onDataBaseButtonClicked) QtCore.QObject.connect(self.SaveCheckServiceCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onSaveCheckServiceCheckBox) @@ -188,6 +214,12 @@ class GeneralTab(SettingsTab): self.trUtf8('Automatically open the last service')) self.ShowSplashCheckBox.setText(self.trUtf8('Show the splash screen')) self.SettingsGroupBox.setTitle(self.trUtf8('Application Settings')) + self.DataBaseGroupBox.setTitle(QtGui.QApplication.translate( + "SettingsDialog", "DataBaseBox", + None, QtGui.QApplication.UnicodeUTF8)) + self.DataBaseCheckBox.setText(QtGui.QApplication.translate( + "SettingsDialog", "Use external Database", + None, QtGui.QApplication.UnicodeUTF8)) self.SaveCheckServiceCheckBox.setText( self.trUtf8('Prompt to save Service before starting New')) self.AutoPreviewCheckBox.setText( @@ -215,6 +247,19 @@ class GeneralTab(SettingsTab): def onSaveCheckServiceCheckBox(self, value): self.PromptSaveService = (value == QtCore.Qt.Checked) + def onDataBaseCheckBoxChanged(self, value): + self.ExtDbUsage = (value == QtCore.Qt.Checked) + self.DataBasePath.setEnabled(value == QtCore.Qt.Checked) + + def onDataBaseButtonClicked(self): + options = QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly + directory = QtGui.QFileDialog.getExistingDirectory(self, + self.trUtf8('QFileDialog.getExistingDirectory()'), + self.DataBasePath.text(), options) + if not directory.isEmpty(): + self.DataBasePath.setText(directory) + self.ExtDbPath = self.DataBasePath.text() + def onAutoPreviewCheckBox(self, value): self.AutoPreview = (value == QtCore.Qt.Checked) @@ -239,6 +284,10 @@ class GeneralTab(SettingsTab): # Get the configs self.Warning = settings.value( u'blank warning', QtCore.QVariant(False)).toBool() + self.ExtDbUsage = settings.value( + u'ext db usage', QtCore.QVariant(False)).toBool() + self.ExtDbPath = unicode(settings.value( + u'ext db path', QtCore.QVariant(u'')).toString()) self.AutoOpen = settings.value( u'auto open', QtCore.QVariant(False)).toBool() self.ShowSplash = settings.value( @@ -259,6 +308,9 @@ class GeneralTab(SettingsTab): self.MonitorComboBox.setCurrentIndex(self.MonitorNumber) self.DisplayOnMonitorCheck.setChecked(self.DisplayOnMonitor) self.WarningCheckBox.setChecked(self.Warning) + self.DataBaseCheckBox.setChecked(self.ExtDbUsage) + self.DataBasePath.setText(self.ExtDbPath) + self.DataBasePath.setEnabled(self.ExtDbUsage) self.AutoOpenCheckBox.setChecked(self.AutoOpen) self.ShowSplashCheckBox.setChecked(self.ShowSplash) self.AutoPreviewCheckBox.setChecked(self.AutoPreview) @@ -273,6 +325,8 @@ class GeneralTab(SettingsTab): settings.setValue(u'display on monitor', QtCore.QVariant(self.DisplayOnMonitor)) settings.setValue(u'blank warning', QtCore.QVariant(self.Warning)) + settings.setValue(u'ext db usage', QtCore.QVariant(self.ExtDbUsage)) + settings.setValue(u'ext db path', QtCore.QVariant(self.ExtDbPath)) settings.setValue(u'auto open', QtCore.QVariant(self.AutoOpen)) settings.setValue(u'show splash', QtCore.QVariant(self.ShowSplash)) settings.setValue(u'save prompt', diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 5df5d397a..978ed33f7 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -70,7 +70,13 @@ class AppLocation(object): path = os.path.join(os.getenv(u'HOME'), u'.openlp') return path elif dir_type == AppLocation.DataDir: - if sys.platform == u'win32': + settings = QtCore.QSettings() + settings.beginGroup(u'general') + extDbPath = settings.value(u'ext db path', QtCore.QVariant(u'')).toString() + if settings.value(u'ext db usage', QtCore.QVariant(False)).toBool()\ + and QtCore.QDir(extDbPath).exists(): + path = os.path.abspath(str(settings.value(u'ext db path', QtCore.QVariant(u'')).toString())) + elif sys.platform == u'win32': path = os.path.join(os.getenv(u'APPDATA'), u'openlp', u'data') elif sys.platform == u'darwin': path = os.path.join(os.getenv(u'HOME'), u'Library', From 95ffc8dd3b462841309059b8d64389e0708d15e2 Mon Sep 17 00:00:00 2001 From: rimach Date: Sat, 4 Sep 2010 00:51:28 +0200 Subject: [PATCH 06/95] add translation code for MediaDocks and PluginList --- openlp/core/lib/mediamanageritem.py | 67 +- openlp/core/lib/plugin.py | 15 + openlp/core/lib/settingstab.py | 2 +- openlp/core/ui/mediadockmanager.py | 5 +- openlp/core/ui/pluginform.py | 8 +- openlp/plugins/alerts/alertsplugin.py | 29 + openlp/plugins/bibles/bibleplugin.py | 29 + openlp/plugins/bibles/lib/mediaitem.py | 2 - openlp/plugins/custom/customplugin.py | 29 + openlp/plugins/custom/lib/mediaitem.py | 2 - openlp/plugins/images/imageplugin.py | 30 + openlp/plugins/images/lib/mediaitem.py | 2 - openlp/plugins/media/lib/mediaitem.py | 2 - openlp/plugins/media/mediaplugin.py | 29 + openlp/plugins/presentations/lib/mediaitem.py | 3 - .../presentations/presentationplugin.py | 29 + openlp/plugins/remotes/remoteplugin.py | 30 + openlp/plugins/songs/lib/mediaitem.py | 2 - openlp/plugins/songs/songsplugin.py | 29 + openlp/plugins/songusage/songusageplugin.py | 30 + resources/i18n/openlp_af.ts | 1510 ++++++--- resources/i18n/openlp_de.ts | 1500 ++++++--- resources/i18n/openlp_en.ts | 1510 ++++++--- resources/i18n/openlp_en_GB.ts | 1510 ++++++--- resources/i18n/openlp_en_ZA.ts | 2934 +++++++++-------- resources/i18n/openlp_es.ts | 1510 ++++++--- resources/i18n/openlp_et.ts | 1490 ++++++--- resources/i18n/openlp_hu.ts | 1510 ++++++--- resources/i18n/openlp_ko.ts | 1510 ++++++--- resources/i18n/openlp_nb.ts | 1512 ++++++--- resources/i18n/openlp_pt_BR.ts | 1514 ++++++--- resources/i18n/openlp_sv.ts | 1510 ++++++--- 32 files changed, 12741 insertions(+), 7153 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index a6d62f618..5056237ae 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -63,14 +63,6 @@ class MediaManagerItem(QtGui.QWidget): When creating a descendant class from this class for your plugin, the following member variables should be set. - ``self.PluginNameShort`` - The shortened (usually singular) name for the plugin e.g. *'Song'* - for the Songs plugin. - - ``self.pluginNameVisible`` - The user visible name for a plugin which should use a suitable - translation function. - ``self.OnNewPrompt`` Defaults to *'Select Image(s)'*. @@ -99,7 +91,7 @@ class MediaManagerItem(QtGui.QWidget): """ QtGui.QWidget.__init__(self) self.parent = parent - self.settingsSection = title.lower() + self.settingsSection = parent.get_text('name_lower') if isinstance(icon, QtGui.QIcon): self.icon = icon elif isinstance(icon, basestring): @@ -108,7 +100,7 @@ class MediaManagerItem(QtGui.QWidget): else: self.icon = None if title: - self.title = title + self.title = parent.get_text('name_more') self.toolbar = None self.remoteTriggered = None self.serviceItemIconName = None @@ -210,62 +202,55 @@ class MediaManagerItem(QtGui.QWidget): if self.hasImportIcon: self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'Import %s')) % - self.PluginNameShort, - unicode(translate('OpenLP.MediaManagerItem', 'Import a %s')) % - self.pluginNameVisible, + self.parent.name, + unicode(self.parent.get_text('import')), u':/general/general_import.png', self.onImportClick) ## File Button ## if self.hasFileIcon: self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'Load %s')) % - self.PluginNameShort, - unicode(translate('OpenLP.MediaManagerItem', 'Load a new %s')) % - self.pluginNameVisible, + self.parent.name, + unicode(self.parent.get_text('load')), u':/general/general_open.png', self.onFileClick) ## New Button ## if self.hasNewIcon: self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'New %s')) % - self.PluginNameShort, - unicode(translate('OpenLP.MediaManagerItem', 'Add a new %s')) % - self.pluginNameVisible, + self.parent.name, + unicode(self.parent.get_text('new')), u':/general/general_new.png', self.onNewClick) ## Edit Button ## if self.hasEditIcon: self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'Edit %s')) % - self.PluginNameShort, - unicode(translate( - 'OpenLP.MediaManagerItem', 'Edit the selected %s')) % - self.pluginNameVisible, + self.parent.name, + unicode(self.parent.get_text('edit')), u':/general/general_edit.png', self.onEditClick) ## Delete Button ## if self.hasDeleteIcon: self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'Delete %s')) % - self.PluginNameShort, - translate('OpenLP.MediaManagerItem', - 'Delete the selected item'), + self.parent.name, + unicode(self.parent.get_text('delete')), u':/general/general_delete.png', self.onDeleteClick) ## Separator Line ## self.addToolbarSeparator() ## Preview ## self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'Preview %s')) % - self.PluginNameShort, - translate('OpenLP.MediaManagerItem', 'Preview the selected item'), + self.parent.name, + unicode(self.parent.get_text('preview')), u':/general/general_preview.png', self.onPreviewClick) ## Live Button ## self.addToolbarButton( - u'Go Live', - translate('OpenLP.MediaManagerItem', 'Send the selected item live'), + unicode(translate('OpenLP.MediaManagerItem', u'Go Live')), + unicode(self.parent.get_text('live')), u':/general/general_live.png', self.onLiveClick) ## Add to service Button ## self.addToolbarButton( unicode(translate('OpenLP.MediaManagerItem', 'Add %s to Service')) % - self.PluginNameShort, - translate('OpenLP.MediaManagerItem', - 'Add the selected item(s) to the service'), + self.parent.name, + unicode(self.parent.get_text('service')), u':/general/general_add.png', self.onAddClick) def addListViewToToolBar(self): @@ -281,7 +266,7 @@ class MediaManagerItem(QtGui.QWidget): QtGui.QAbstractItemView.ExtendedSelection) self.listView.setAlternatingRowColors(True) self.listView.setDragEnabled(True) - self.listView.setObjectName(u'%sListView' % self.PluginNameShort) + self.listView.setObjectName(u'%sListView' % self.parent.name) #Add to pageLayout self.pageLayout.addWidget(self.listView) #define and add the context menu @@ -291,7 +276,7 @@ class MediaManagerItem(QtGui.QWidget): context_menu_action( self.listView, u':/general/general_edit.png', unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % - self.pluginNameVisible, + self.parent.name, self.onEditClick)) self.listView.addAction(context_menu_separator(self.listView)) if self.hasDeleteIcon: @@ -300,14 +285,14 @@ class MediaManagerItem(QtGui.QWidget): self.listView, u':/general/general_delete.png', unicode(translate('OpenLP.MediaManagerItem', '&Delete %s')) % - self.pluginNameVisible, + self.parent.name, self.onDeleteClick)) self.listView.addAction(context_menu_separator(self.listView)) self.listView.addAction( context_menu_action( self.listView, u':/general/general_preview.png', unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % - self.pluginNameVisible, + self.parent.name, self.onPreviewClick)) self.listView.addAction( context_menu_action( @@ -447,7 +432,7 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items to preview.')) else: - log.debug(self.PluginNameShort + u' Preview requested') + log.debug(self.parent.name + u' Preview requested') service_item = self.buildServiceItem() if service_item: service_item.from_plugin = True @@ -464,7 +449,7 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items to send live.')) else: - log.debug(self.PluginNameShort + u' Live requested') + log.debug(self.parent.name + u' Live requested') service_item = self.buildServiceItem() if service_item: service_item.from_plugin = True @@ -483,7 +468,7 @@ class MediaManagerItem(QtGui.QWidget): #Is it posssible to process multiple list items to generate multiple #service items? if self.singleServiceItem or self.remoteTriggered: - log.debug(self.PluginNameShort + u' Add requested') + log.debug(self.parent.name + u' Add requested') service_item = self.buildServiceItem() if service_item: service_item.from_plugin = False @@ -507,7 +492,7 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items')) else: - log.debug(self.PluginNameShort + u' Add requested') + log.debug(self.parent.name + u' Add requested') service_item = self.parent.serviceManager.getServiceItem() if not service_item: QtGui.QMessageBox.information(self, diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 45fbcb6b0..7eee2dd6e 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -289,3 +289,18 @@ class Plugin(QtCore.QObject): The new name the plugin should now use. """ pass + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + pass + self.text = {} + + def get_text(self, content): + """ + Called to retrieve a translated piece of text for menues, context menues, ... + """ + if self.text.has_key(content): + return self.text[content] + else: + return self.name diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py index 99389d4c4..d746636cd 100644 --- a/openlp/core/lib/settingstab.py +++ b/openlp/core/lib/settingstab.py @@ -41,7 +41,7 @@ class SettingsTab(QtGui.QWidget): QtGui.QWidget.__init__(self) self.tabTitle = title self.tabTitleVisible = None - self.settingsSection = self.tabTitle.lower() + self.settingsSection = self.tabTitle self.setupUi() self.retranslateUi() self.initialise() diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index afe316a8a..24a3fd64d 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -61,7 +61,7 @@ class MediaDockManager(object): match = False for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index).settingsSection == \ - media_item.title.lower(): + media_item.parent.get_text('name_lower'): match = True break if not match: @@ -77,7 +77,8 @@ class MediaDockManager(object): log.debug(u'remove %s dock' % name) for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index): + log.debug(u'%s %s' % (name, self.media_dock.widget(dock_index).settingsSection)) if self.media_dock.widget(dock_index).settingsSection == \ - name.lower(): + name: self.media_dock.widget(dock_index).hide() self.media_dock.removeItem(dock_index) diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index c0fd53938..053acb3f1 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -75,7 +75,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): elif plugin.status == PluginStatus.Disabled: status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) - item.setText(status_text % plugin.name) + item.setText(status_text % plugin.get_text('name_more')) # If the plugin has an icon, set it! if plugin.icon: item.setIcon(plugin.icon) @@ -103,10 +103,10 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): if self.pluginListWidget.currentItem() is None: self._clearDetails() return - plugin_name = self.pluginListWidget.currentItem().text().split(u' ')[0] + plugin_name_more = self.pluginListWidget.currentItem().text().split(u' ')[0] self.activePlugin = None for plugin in self.parent.plugin_manager.plugins: - if plugin.name == plugin_name: + if plugin.get_text('name_more') == plugin_name_more: self.activePlugin = plugin break if self.activePlugin: @@ -135,4 +135,4 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) self.pluginListWidget.currentItem().setText( - status_text % self.activePlugin.name) + status_text % self.activePlugin.get_text('name_more')) diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 9e1da2267..e77b57430 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -40,6 +40,7 @@ class AlertsPlugin(Plugin): log.info(u'Alerts Plugin loaded') def __init__(self, plugin_helpers): + self.set_plugin_translations() Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) self.weight = -3 self.icon = build_icon(u':/plugins/plugin_alerts.png') @@ -101,3 +102,31 @@ class AlertsPlugin(Plugin): '
The alert plugin controls the displaying of nursery alerts ' 'on the display screen') return about_text + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Alerts' + self.name_lower = u'alerts' + self.text = {} + # for context menu +# elf.text['context_edit'] = translate('AlertsPlugin', '&Edit Song') +# elf.text['context_delete'] = translate('AlertsPlugin', '&Delete Song') +# elf.text['context_preview'] = translate('AlertsPlugin', '&Preview Song') +# elf.text['context_live'] = translate('AlertsPlugin', '&Show Live') +# # forHeaders in mediamanagerdock +# elf.text['import'] = translate('AlertsPlugin', 'Import a Song') +# elf.text['file'] = translate('AlertsPlugin', 'Load a new Song') +# elf.text['new'] = translate('AlertsPlugin', 'Add a new Song') +# elf.text['edit'] = translate('AlertsPlugin', 'Edit the selected Song') +# elf.text['delete'] = translate('AlertsPlugin', 'Delete the selected Song') +# elf.text['delete_more'] = translate('AlertsPlugin', 'Delete the selected Songs') +# elf.text['preview'] = translate('AlertsPlugin', 'Preview the selected Song') +# elf.text['preview_more'] = translate('AlertsPlugin', 'Preview the selected Songs') +# elf.text['live'] = translate('AlertsPlugin', 'Send the selected Song live') +# elf.text['live_more'] = translate('AlertsPlugin', 'Send the selected Songs live') +# elf.text['service'] = translate('AlertsPlugin', 'Add the selected Song to the service') +# elf.text['service_more'] = translate('AlertsPlugin', 'Add the selected Songs to the service') +# # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('AlertsPlugin', 'Alert') + self.text['name_more'] = translate('AlertsPlugin', 'Alerts') diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index da542b23b..850516783 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -37,6 +37,7 @@ class BiblePlugin(Plugin): log.info(u'Bible Plugin loaded') def __init__(self, plugin_helpers): + self.set_plugin_translations() Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) self.weight = -9 self.icon_path = u':/plugins/plugin_bibles.png' @@ -116,3 +117,31 @@ class BiblePlugin(Plugin): The new name the plugin should now use. """ self.settings_tab.bible_theme = newTheme + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Bibles' + self.name_lower = u'bibles' + self.text = {} + #for context menu + self.text['context_edit'] = translate('BiblesPlugin', '&Edit Bible') + self.text['context_delete'] = translate('BiblesPlugin', '&Delete Bible') + self.text['context_preview'] = translate('BiblesPlugin', '&Preview Bible') + self.text['context_live'] = translate('BiblesPlugin', '&Show Live') + # forHeaders in mediamanagerdock + self.text['import'] = translate('BiblesPlugin', 'Import a Bible') + self.text['load'] = translate('BiblesPlugin', 'Load a new Bible') + self.text['new'] = translate('BiblesPlugin', 'Add a new Bible') + self.text['edit'] = translate('BiblesPlugin', 'Edit the selected Bible') + self.text['delete'] = translate('BiblesPlugin', 'Delete the selected Bible') + self.text['delete_more'] = translate('BiblesPlugin', 'Delete the selected Bibles') + self.text['preview'] = translate('BiblesPlugin', 'Preview the selected Bible') + self.text['preview_more'] = translate('BiblesPlugin', 'Preview the selected Bibles') + self.text['live'] = translate('BiblesPlugin', 'Send the selected Bible live') + self.text['live_more'] = translate('BiblesPlugin', 'Send the selected Bibles live') + self.text['service'] = translate('BiblesPlugin', 'Add the selected Verse to the service') + self.text['service_more'] = translate('BiblesPlugin', 'Add the selected Verses to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('BiblesPlugin', 'Bible') + self.text['name_more'] = translate('BiblesPlugin', 'Bibles') diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index e7850c65c..ac0febb82 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -54,8 +54,6 @@ class BibleMediaItem(MediaManagerItem): log.info(u'Bible Media Item loaded') def __init__(self, parent, icon, title): - self.PluginNameShort = u'Bible' - self.pluginNameVisible = translate('BiblesPlugin.MediaItem', 'Bible') self.IconPath = u'songs/song' self.ListViewWithDnD_class = BibleListView MediaManagerItem.__init__(self, parent, icon, title) diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 4e3819961..007b8d560 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -47,6 +47,7 @@ class CustomPlugin(Plugin): log.info(u'Custom Plugin loaded') def __init__(self, plugin_helpers): + self.set_plugin_translations() Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) self.weight = -5 self.custommanager = Manager(u'custom', init_schema) @@ -96,3 +97,31 @@ class CustomPlugin(Plugin): for custom in customsUsingTheme: custom.theme_name = newTheme self.custommanager.save_object(custom) + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Custom' + self.name_lower = u'custom' + self.text = {} + #for context menu + self.text['context_edit'] = translate('CustomsPlugin', '&Edit Custom') + self.text['context_delete'] = translate('CustomsPlugin', '&Delete Custom') + self.text['context_preview'] = translate('CustomsPlugin', '&Preview Custom') + self.text['context_live'] = translate('CustomsPlugin', '&Show Live') + # forHeaders in mediamanagerdock + self.text['import'] = translate('CustomsPlugin', 'Import a Custom') + self.text['load'] = translate('CustomsPlugin', 'Load a new Custom') + self.text['new'] = translate('CustomsPlugin', 'Add a new Custom') + self.text['edit'] = translate('CustomsPlugin', 'Edit the selected Custom') + self.text['delete'] = translate('CustomsPlugin', 'Delete the selected Custom') + self.text['delete_more'] = translate('CustomsPlugin', 'Delete the selected Custom') + self.text['preview'] = translate('CustomsPlugin', 'Preview the selected Custom') + self.text['preview_more'] = translate('CustomsPlugin', 'Preview the selected Custom') + self.text['live'] = translate('CustomsPlugin', 'Send the selected Custom live') + self.text['live_more'] = translate('CustomsPlugin', 'Send the selected Custom live') + self.text['service'] = translate('CustomsPlugin', 'Add the selected Custom to the service') + self.text['service_more'] = translate('CustomsPlugin', 'Add the selected Custom to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('CustomsPlugin', 'Custom') + self.text['name_more'] = translate('CustomsPlugin', 'Custom') diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 671a3679a..ab5039c34 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -47,8 +47,6 @@ class CustomMediaItem(MediaManagerItem): log.info(u'Custom Media Item loaded') def __init__(self, parent, icon, title): - self.PluginNameShort = u'Custom' - self.pluginNameVisible = translate('CustomPlugin.MediaItem', 'Custom') self.IconPath = u'custom/custom' # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index d34cd6a3c..ee303689e 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -35,6 +35,7 @@ class ImagePlugin(Plugin): log.info(u'Image Plugin loaded') def __init__(self, plugin_helpers): + self.set_plugin_translations() Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) self.weight = -7 self.icon_path = u':/plugins/plugin_images.png' @@ -57,3 +58,32 @@ class ImagePlugin(Plugin): 'selected image as a background instead of the background ' 'provided by the theme.') return about_text + # rimach + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Images' + self.name_lower = u'images' + self.text = {} + #for context menu + self.text['context_edit'] = translate('ImagePlugin', '&Edit Image') + self.text['context_delete'] = translate('ImagePlugin', '&Delete Image') + self.text['context_preview'] = translate('ImagePlugin', '&Preview Image') + self.text['context_live'] = translate('ImagePlugin', '&Show Live') + # forHeaders in mediamanagerdock + self.text['import'] = translate('ImagePlugin', 'Import a Image') + self.text['load'] = translate('ImagePlugin', 'Load a new Image') + self.text['new'] = translate('ImagePlugin', 'Add a new Image') + self.text['edit'] = translate('ImagePlugin', 'Edit the selected Image') + self.text['delete'] = translate('ImagePlugin', 'Delete the selected Image') + self.text['delete_more'] = translate('ImagePlugin', 'Delete the selected Images') + self.text['preview'] = translate('ImagePlugin', 'Preview the selected Image') + self.text['preview_more'] = translate('ImagePlugin', 'Preview the selected Images') + self.text['live'] = translate('ImagePlugin', 'Send the selected Image live') + self.text['live_more'] = translate('ImagePlugin', 'Send the selected Images live') + self.text['service'] = translate('ImagePlugin', 'Add the selected Image to the service') + self.text['service_more'] = translate('ImagePlugin', 'Add the selected Images to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('ImagePlugin', 'Image') + self.text['name_more'] = translate('ImagePlugin', 'Images') diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 93271a604..d6584acfe 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -50,8 +50,6 @@ class ImageMediaItem(MediaManagerItem): log.info(u'Image Media Item loaded') def __init__(self, parent, icon, title): - self.PluginNameShort = u'Image' - self.pluginNameVisible = translate('ImagePlugin.MediaItem', 'Image') self.IconPath = u'images/image' # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 447d4ccb5..c9a5df152 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -47,8 +47,6 @@ class MediaMediaItem(MediaManagerItem): log.info(u'%s MediaMediaItem loaded', __name__) def __init__(self, parent, icon, title): - self.PluginNameShort = u'Media' - self.pluginNameVisible = translate('MediaPlugin.MediaItem', 'Media') self.IconPath = u'images/image' self.background = False # this next is a class, not an instance of a class - it will diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index db326f843..7ff32b5b3 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -37,6 +37,7 @@ class MediaPlugin(Plugin): log.info(u'%s MediaPlugin loaded', __name__) def __init__(self, plugin_helpers): + self.set_plugin_translations() Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) self.weight = -6 self.icon_path = u':/plugins/plugin_media.png' @@ -76,3 +77,31 @@ class MediaPlugin(Plugin): about_text = translate('MediaPlugin', 'Media Plugin' '
The media plugin provides playback of audio and video.') return about_text + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Media' + self.name_lower = u'media' + self.text = {} + #for context menu + self.text['context_edit'] = translate('MediaPlugin', '&Edit Media') + self.text['context_delete'] = translate('MediaPlugin', '&Delete Media') + self.text['context_preview'] = translate('MediaPlugin', '&Preview Media') + self.text['context_live'] = translate('MediaPlugin', '&Show Live') + # forHeaders in mediamanagerdock + self.text['import'] = translate('MediaPlugin', 'Import a Media') + self.text['load'] = translate('MediaPlugin', 'Load a new Media') + self.text['new'] = translate('MediaPlugin', 'Add a new Media') + self.text['edit'] = translate('MediaPlugin', 'Edit the selected Media') + self.text['delete'] = translate('MediaPlugin', 'Delete the selected Media') + self.text['delete_more'] = translate('MediaPlugin', 'Delete the selected Media') + self.text['preview'] = translate('MediaPlugin', 'Preview the selected Media') + self.text['preview_more'] = translate('MediaPlugin', 'Preview the selected Media') + self.text['live'] = translate('MediaPlugin', 'Send the selected Media live') + self.text['live_more'] = translate('MediaPlugin', 'Send the selected Media live') + self.text['service'] = translate('MediaPlugin', 'Add the selected Media to the service') + self.text['service_more'] = translate('MediaPlugin', 'Add the selected Media to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('MediaPlugin', 'Media') + self.text['name_more'] = translate('MediaPlugin', 'Media') diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 001aeac4d..bb0c243ff 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -58,9 +58,6 @@ class PresentationMediaItem(MediaManagerItem): Constructor. Setup defaults """ self.controllers = controllers - self.PluginNameShort = u'Presentation' - self.pluginNameVisible = translate('PresentationPlugin.MediaItem', - 'Presentation') self.IconPath = u'presentations/presentation' self.Automatic = u'' # this next is a class, not an instance of a class - it will diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index e63063ffd..208c74349 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -51,6 +51,7 @@ class PresentationPlugin(Plugin): """ log.debug(u'Initialised') self.controllers = {} + self.set_plugin_translations() Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) self.weight = -8 self.icon_path = u':/plugins/plugin_presentations.png' @@ -143,3 +144,31 @@ class PresentationPlugin(Plugin): 'programs. The choice of available presentation programs is ' 'available to the user in a drop down box.') return about_text + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Presentations' + self.name_lower = u'presentations' + self.text = {} + #for context menu + self.text['context_edit'] = translate('PresentationPlugin', '&Edit Presentation') + self.text['context_delete'] = translate('PresentationPlugin', '&Delete Presentation') + self.text['context_preview'] = translate('PresentationPlugin', '&Preview Presentation') + self.text['context_live'] = translate('PresentationPlugin', '&Show Live') + # forHeaders in mediamanagerdock + self.text['import'] = translate('PresentationPlugin', 'Import a Presentation') + self.text['load'] = translate('PresentationPlugin', 'Load a new Presentation') + self.text['new'] = translate('PresentationPlugin', 'Add a new Presentation') + self.text['edit'] = translate('PresentationPlugin', 'Edit the selected Presentation') + self.text['delete'] = translate('PresentationPlugin', 'Delete the selected Presentation') + self.text['delete_more'] = translate('PresentationPlugin', 'Delete the selected Presentations') + self.text['preview'] = translate('PresentationPlugin', 'Preview the selected Presentation') + self.text['preview_more'] = translate('PresentationPlugin', 'Preview the selected Presentations') + self.text['live'] = translate('PresentationPlugin', 'Send the selected Presentation live') + self.text['live_more'] = translate('PresentationPlugin', 'Send the selected Presentations live') + self.text['service'] = translate('PresentationPlugin', 'Add the selected Presentation to the service') + self.text['service_more'] = translate('PresentationPlugin', 'Add the selected Presentations to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('PresentationPlugin', 'Presentation') + self.text['name_more'] = translate('PresentationPlugin', 'Presentations') diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 59ad9a99c..d9566b57f 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -38,6 +38,7 @@ class RemotesPlugin(Plugin): """ remotes constructor """ + self.set_plugin_translations() Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) self.icon = build_icon(u':/plugins/plugin_remote.png') self.weight = -1 @@ -76,3 +77,32 @@ class RemotesPlugin(Plugin): 'a running version of OpenLP on a different computer via a web ' 'browser or through the remote API.') return about_text + # rimach + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Remotes' + self.name_lower = u'remotes' + self.text = {} + #for context menu +# self.text['context_edit'] = translate('RemotePlugin', '&Edit Remotes') +# self.text['context_delete'] = translate('RemotePlugin', '&Delete Remotes') +# self.text['context_preview'] = translate('RemotePlugin', '&Preview Remotes') +# self.text['context_live'] = translate('RemotePlugin', '&Show Live') +# # forHeaders in mediamanagerdock +# self.text['import'] = translate('RemotePlugin', 'Import a Remotes') +# self.text['file'] = translate('RemotePlugin', 'Load a new Remotes') +# self.text['new'] = translate('RemotePlugin', 'Add a new Remotes') +# self.text['edit'] = translate('RemotePlugin', 'Edit the selected Remotes') +# self.text['delete'] = translate('RemotePlugin', 'Delete the selected Remotes') +# self.text['delete_more'] = translate('RemotePlugin', 'Delete the selected Remotes') +# self.text['preview'] = translate('RemotePlugin', 'Preview the selected Remotes') +# self.text['preview_more'] = translate('RemotePlugin', 'Preview the selected Remotes') +# self.text['live'] = translate('RemotePlugin', 'Send the selected Remotes live') +# self.text['live_more'] = translate('RemotePlugin', 'Send the selected Remotes live') +# self.text['service'] = translate('RemotePlugin', 'Add the selected Remotes to the service') +# self.text['service_more'] = translate('RemotePlugin', 'Add the selected Remotes to the service') +# # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('RemotePlugin', 'Remote') + self.text['name_more'] = translate('RemotePlugin', 'Remotes') diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 85ba1cf06..9299669a6 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -49,8 +49,6 @@ class SongMediaItem(MediaManagerItem): log.info(u'Song Media Item loaded') def __init__(self, parent, icon, title): - self.PluginNameShort = u'Song' - self.pluginNameVisible = translate('SongsPlugin.MediaItem', 'Song') self.IconPath = u'songs/song' self.ListViewWithDnD_class = SongListView MediaManagerItem.__init__(self, parent, icon, title) diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 0064be23a..ddbf8e955 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -50,6 +50,7 @@ class SongsPlugin(Plugin): """ Create and set up the Songs plugin. """ + self.set_plugin_translations() Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) self.weight = -10 self.manager = Manager(u'songs', init_schema) @@ -147,3 +148,31 @@ class SongsPlugin(Plugin): importer = class_(self.manager, **kwargs) importer.register(self.mediaItem.import_wizard) return importer + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Songs' + self.name_lower = u'songs' + self.text = {} + #for context menu + self.text['context_edit'] = translate('SongsPlugin', '&Edit Song') + self.text['context_delete'] = translate('SongsPlugin', '&Delete Song') + self.text['context_preview'] = translate('SongsPlugin', '&Preview Song') + self.text['context_live'] = translate('SongsPlugin', '&Show Live') + # forHeaders in mediamanagerdock + self.text['import'] = translate('SongsPlugin', 'Import a Song') + self.text['load'] = translate('SongsPlugin', 'Load a new Song') + self.text['new'] = translate('SongsPlugin', 'Add a new Song') + self.text['edit'] = translate('SongsPlugin', 'Edit the selected Song') + self.text['delete'] = translate('SongsPlugin', 'Delete the selected Song') + self.text['delete_more'] = translate('SongsPlugin', 'Delete the selected Songs') + self.text['preview'] = translate('SongsPlugin', 'Preview the selected Song') + self.text['preview_more'] = translate('SongsPlugin', 'Preview the selected Songs') + self.text['live'] = translate('SongsPlugin', 'Send the selected Song live') + self.text['live_more'] = translate('SongsPlugin', 'Send the selected Songs live') + self.text['service'] = translate('SongsPlugin', 'Add the selected Song to the service') + self.text['service_more'] = translate('SongsPlugin', 'Add the selected Songs to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('SongsPlugin', 'Song') + self.text['name_more'] = translate('SongsPlugin', 'Songs') diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index c8dfd06fc..73d0d21d4 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -41,6 +41,7 @@ class SongUsagePlugin(Plugin): log.info(u'SongUsage Plugin loaded') def __init__(self, plugin_helpers): + self.set_plugin_translations() Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) self.weight = -4 self.icon = build_icon(u':/plugins/plugin_songusage.png') @@ -162,3 +163,32 @@ class SongUsagePlugin(Plugin): '
This plugin tracks the usage of songs in ' 'services.') return about_text + + def set_plugin_translations(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'SongUsage' + self.name_lower = u'songusage' + self.text = {} +# #for context menu +# self.text['context_edit'] = translate('SongUsagePlugin', '&Edit SongUsage') +# self.text['context_delete'] = translate('SongUsagePlugin', '&Delete SongUsage') +# self.text['context_preview'] = translate('SongUsagePlugin', '&Preview SongUsage') +# self.text['context_live'] = translate('SongUsagePlugin', '&Show Live') +# # forHeaders in mediamanagerdock +# self.text['import'] = translate('SongUsagePlugin', 'Import a SongUsage') +# self.text['file'] = translate('SongUsagePlugin', 'Load a new SongUsage') +# self.text['new'] = translate('SongUsagePlugin', 'Add a new SongUsage') +# self.text['edit'] = translate('SongUsagePlugin', 'Edit the selected SongUsage') +# self.text['delete'] = translate('SongUsagePlugin', 'Delete the selected SongUsage') +# self.text['delete_more'] = translate('SongUsagePlugin', 'Delete the selected Songs') +# self.text['preview'] = translate('SongUsagePlugin', 'Preview the selected SongUsage') +# self.text['preview_more'] = translate('SongUsagePlugin', 'Preview the selected Songs') +# self.text['live'] = translate('SongUsagePlugin', 'Send the selected SongUsage live') +# self.text['live_more'] = translate('SongUsagePlugin', 'Send the selected Songs live') +# self.text['service'] = translate('SongUsagePlugin', 'Add the selected SongUsage to the service') +# self.text['service_more'] = translate('SongUsagePlugin', 'Add the selected Songs to the service') + # for names in mediamanagerdock and pluginlist + self.text['name'] = translate('SongUsagePlugin', 'SongUsage') + self.text['name_more'] = translate('SongUsagePlugin', 'Songs') diff --git a/resources/i18n/openlp_af.ts b/resources/i18n/openlp_af.ts index 47853ca2e..fc20ab5b7 100644 --- a/resources/i18n/openlp_af.ts +++ b/resources/i18n/openlp_af.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert W&aarskuwing - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Waarskuwings + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Bybel - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + &Vertoon Regstreeks + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bybel + + + + Bibles + Bybels + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bybel - - - + Quick Vinnig - + Advanced Gevorderd - + Version: Weergawe: - + Dual: Dubbel: - + Search type: - + Find: Vind: - + Search Soek - + Results: &Resultate: - + Book: Boek: - + Chapter: Hoofstuk: - + Verse: Vers: - + From: Vanaf: - + To: Aan: - + Verse Search Soek Vers - + Text Search Teks Soektog - + Clear - + Keep Behou - + No Book Found Geeb Boek Gevind nie - + No matching book could be found in this Bible. Geen bypassende boek kon in dié Bybel gevind word nie. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Redigeer Aangepaste Skyfies - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Voeg Nuwe By - + Add a new slide at bottom. - + Edit Redigeer - + Edit the selected slide. - + Edit All Redigeer Alles - + Edit all the slides at once. - + Save Stoor - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area Maak skoon die redigeer area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + &Vertoon Regstreeks + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + &Vertoon Regstreeks + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Beeld + + + + Images + Beelde + ImagePlugin.MediaItem - - Image - Beeld - - - + Select Image(s) Selekteer beeld(e) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Beeld(e) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + &Vertoon Regstreeks + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Media + MediaPlugin.MediaItem - - Media - Media - - - + Select Media Selekteer Media - + Replace Live Background - + Replace Background - + + Media + Media + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Tema Onderhoud - + Theme &name: - - &Visibility: - - - - - Opaque - Deursigtigheid - - - - Transparent - Deursigtig - - - + Type: Tipe: - + Solid Color Soliede Kleur - + Gradient Gradiënt - + Image Beeld - + Image: Beeld: - + Gradient: - + Horizontal Horisontaal - + Vertical Vertikaal - + Circular Sirkelvormig - + &Background - + Main Font Hoof Skrif - + Font: Skrif: - + Color: - + Size: Grootte: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normaal - + Bold Vetgedruk - + Italics Kursief - + Bold/Italics Bold/Italics - + Style: - + Display Location Vertoon Ligging - + Use default location - + X position: - + Y position: - + Width: Wydte: - + Height: Hoogte: - + px px - + &Main Font - + Footer Font Voetnota Skriftipe - + &Footer Font - + Outline Buitelyn - + Outline size: - + Outline color: - + Show outline: - + Shadow Skaduwee - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Belyning - + Horizontal align: - + Left Links - + Right Regs - + Center Middel - + Vertical align: - + Top - + Middle Middel - + Bottom Onder - + Slide Transition Skyfie Verandering - + Transition active - + &Other Options - + Preview Voorskou - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop Engels - + &File &Lêer - + &Import &Invoer - + &Export &Uitvoer - + &View &Bekyk - + M&ode M&odus - + &Tools &Gereedskap - + &Settings Ver&stellings - + &Language Taa&l - + &Help &Hulp - + Media Manager Media Bestuurder - + Service Manager Diens Bestuurder - + Theme Manager Tema Bestuurder - + &New &Nuwe - + New Service Nuwe Diens - + Create a new service. - + Ctrl+N Ctrl+N - + &Open Maak &Oop - + Open Service Maak Diens Oop - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Stoor - + Save Service Stoor Diens - + Save the current service to disk. - + Ctrl+S Ctrl+S - + Save &As... Stoor &As... - + Save Service As Stoor Diens As - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Uitgang - + Quit OpenLP Sluit OpenLP Af - + Alt+F4 Alt+F4 - + &Theme &Tema - + &Configure OpenLP... - + &Media Manager &Media Bestuurder - + Toggle Media Manager Wissel Media Bestuurder - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager &Tema Bestuurder - + Toggle Theme Manager Wissel Tema Bestuurder - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager &Diens Bestuurder - + Toggle Service Manager Wissel Diens Bestuurder - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Voorskou Paneel - + Toggle Preview Panel Wissel Voorskou Paneel - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List In&prop Lys - + List the Plugins Lys die Inproppe - + Alt+F7 Alt+F7 - + &User Guide &Gebruikers Gids - + &About &Aangaande - + More information about OpenLP Meer inligting aangaande OpenLP - + Ctrl+F1 Ctrl+F1 - + &Online Help &Aanlyn Hulp - + &Web Site &Web Tuiste - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Regstreeks - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated OpenLP Weergawe is Opdateer - + OpenLP Main Display Blanked OpenLP Hoof Vertoning Blanko - + The Main Display has been blanked out Die Hoof Skerm is blanko - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Wis geselekteerde item uit - - - + Preview %s - - Preview the selected item - Voorskou die geselekteerde item - - - - Send the selected item live - Stuur die geselekteerde item na regstreekse vertoning - - - + Add %s to Service - - Add the selected item(s) to the service - Voeg die geselekteerde item(s) by die diens - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Vertoon Regstreeks - + &Add to Service &Voeg by Diens - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Skep 'n nuwe diens - + Open Service Maak Diens Oop @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Laai 'n bestaande diens - + Save Service Stoor Diens @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo &Verander Item Tema - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Fout - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Regstreeks - + Preview Voorskou - - Move to first - Verskuif na eerste - - - + Move to previous Beweeg na vorige - + Move to next Verskuif na volgende - - Move to last - Verskuif na laaste posisie - - - + Hide - + Move to live Verskuif na regstreekse skerm - + Edit and re-preview Song Redigeer en sien weer 'n voorskou van die Lied - + Start continuous loop Begin aaneenlopende lus - + Stop continuous loop Stop deurlopende lus - + s s - + Delay between slides in seconds Vertraging in sekondes tussen skyfies - + Start playing media Begin media speel @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. Gaan na Vers + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Nuwe Tema @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error Fout @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists Tema Bestaan - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + &Vertoon Regstreeks + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Aanbieding + + + + Presentations + Aanbiedinge + PresentationPlugin.MediaItem - - Presentation - Aanbieding - - - + Select Presentation(s) Selekteer Aanbieding(e) - + Automatic - + Present using: Bied aan met: - + File Exists - + A presentation with that filename already exists. 'n Voorstelling met daardie lêernaam bestaan reeds. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Afstandbehere + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Liedere + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Lied - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + &Vertoon Regstreeks + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Lied + + + + Songs + Liedere + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Lied Redigeerder - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit R&edigeer - + Ed&it All - + &Delete - + Title && Lyrics Titel && Lirieke - + Authors Skrywers - + &Add to Song &Voeg by Lied - + &Remove &Verwyder - + &Manage Authors, Topics, Song Books - + Topic Onderwerp - + A&dd to Song Voeg by Lie&d - + R&emove V&erwyder - + Song Book Lied Boek - - - Authors, Topics && Song Book - - - - - Theme - Tema - - New &Theme + Song No.: - Copyright Information - Kopiereg Informasie - - - - © + Authors, Topics && Song Book + Theme + Tema + + + + New &Theme + + + + + Copyright Information + Kopiereg Informasie + + + + © + + + + CCLI number: - + Comments Kommentaar - + Theme, Copyright Info && Comments Tema, Kopiereg Informasie && Kommentaar - + Save && Preview Stoor && Voorskou - + Add Author - + This author does not exist, do you want to add them? - + Error Fout - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Redigeer Vers - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Invoer begin... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Selekteer Invoer Bron - + Select the import format, and where to import from. Selekteer die invoer formaat en van waar af om in te voer. - + Format: Formaat: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing Invoer - + Please wait while your songs are imported. - + Ready. Gereed. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Lied - - - + Song Maintenance Lied Onderhoud - + Maintain the lists of authors, topics and books Handhaaf die lys van skrywers, onderwerpe en boeke - + Search: Soek: - + Type: Tipe: - + Clear - + Search Soek - + Titles Titels - + Lyrics - + Authors Skrywers - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI Lisensie: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Invoer voltooi. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error Fout - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author Wis Skrywer Uit - + Are you sure you want to delete the selected author? Is u seker u wil die geselekteerde skrywer uitwis? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! Geen skrywer geselekteer nie! - + Delete Topic Wis Onderwerp Uit - + Are you sure you want to delete the selected topic? Is u seker u wil die geselekteerde onderwerp uitwis? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! Geen onderwerp geselekteer nie! - + Delete Book Wis Boek Uit - + Are you sure you want to delete the selected book? Is jy seker jy wil die geselekteerde boek uitwis? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! Geen boek geselekteer nie! diff --git a/resources/i18n/openlp_de.ts b/resources/i18n/openlp_de.ts index d805db01c..08b0e5cfe 100644 --- a/resources/i18n/openlp_de.ts +++ b/resources/i18n/openlp_de.ts @@ -3,19 +3,29 @@ AlertsPlugin - + &Alert &Hinweis - + Show an alert message. + Hinweis anzeigen + + + + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + + Alert + + + + + Alerts + Hinweise @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Bibel - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + &Zeige Live + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bibel + + + + Bibles + Bibeln + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bibel - - - + Quick Schnellsuche - + Advanced Erweitert - + Version: Version: - + Dual: Parallel: - + Find: Suchen: - + Search Suche - + Results: Ergebnisse: - + Book: Buch: - + Chapter: Kapitel: - + Verse: Vers: - + From: Von: - + To: Bis: - + Verse Search Stelle suchen - + Text Search Textsuche - + Clear - + Keep Behalten - + No Book Found Kein Buch gefunden - + No matching book could be found in this Bible. Das Buch wurde in dieser Bibelausgabe nicht gefunden. - + etc - + Search type: - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,62 +796,62 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Sonderfolien bearbeiten - + &Title: - + Add New Neues anfügen - + Edit Bearbeiten - + Edit All - + Save Speichern - + Delete Löschen - + Clear - + Clear edit area Aufräumen des Bearbeiten Bereiches - + Split Slide - + The&me: - + &Credits: @@ -771,37 +866,37 @@ Changes do not affect verses already in the service. Fehler - + Move slide down one position. - + Add a new slide at bottom. - + Edit the selected slide. - + Edit all the slides at once. - + Save the slide currently being edited. - + Delete the selected slide. - + Split a slide into two by inserting a slide splitter. @@ -821,7 +916,7 @@ Changes do not affect verses already in the service. - + Move slide up one position. @@ -829,109 +924,327 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - Sonderfolien - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + &Zeige Live + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + Sonderfolien + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + &Zeige Live + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Bild + + + + Images + + ImagePlugin.MediaItem - - Image - Bild - - - + Select Image(s) Bild(er) auswählen - + All Files - + Replace Live Background - + Image(s) Bild(er) - + Replace Background - + You must select an image to delete. - + You must select an image to replace the background with. - + You must select a media file to replace the background with. + + + Reset Live Background + + MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + &Zeige Live + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Medien + MediaPlugin.MediaItem - + Media Medien - + Select Media Medien auswählen - + Replace Live Background - + Replace Background - + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Designverwaltung - + Theme &name: - - &Visibility: - - - - - Opaque - Fest - - - - Transparent - Durchsichtig - - - + Type: Art: - + Solid Color Füllfarbe - + Gradient Farbverlauf - + Image Bild - + Image: Bild: - + Gradient: - + Horizontal Horizontal - + Vertical Vertikal - + Circular Radial - + &Background - + Main Font Hauptschriftart - + Font: Schriftart: - + Color: Farbe: - + Size: Größe: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normal - + Bold Fett - + Italics Kursiv - + Bold/Italics Fett/Kursiv - + Style: - + Display Location Anzeige Ort - + Use default location - + X position: - + Y position: - + Width: Breite: - + Height: Höhe: - + px px - + &Main Font - + Footer Font Schriftart der Fußzeile - + &Footer Font - + Outline Rand - + Outline size: - + Outline color: - + Show outline: - + Shadow Schatten - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Ausrichtung - + Horizontal align: - + Left Links - + Right Rechts - + Center Mitte - + Vertical align: - + Top Oben - + Middle Mittig - + Bottom Unten - + Slide Transition Folienübergang - + Transition active - + &Other Options - + Preview Vorschau - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1670,562 +1963,522 @@ This General Public License does not permit incorporating your program into prop Deutsch - + &File &Datei - + &Import &Importieren - + &Export &Exportieren - + &View &Ansicht - + M&ode M&odus - + &Tools &Extras - + &Settings Ein&stellungen - + &Language &Sprache - + &Help &Hilfe - + Media Manager Medienmanager - + Service Manager Ablaufverwaltung - + Theme Manager Designmanager - + &New &Neu - + New Service Neuer Ablauf - + Create a new service. - + Ctrl+N Strg+N - + &Open &Öffnen - + Open Service Öffnen Ablauf - + Open an existing service. - + Ctrl+O Strg+O - + &Save &Speichern - + Save Service Ablauf speichern - + Save the current service to disk. - + Ctrl+S Strg+S - + Save &As... Speichern &als... - + Save Service As Speicher Gottesdienst unter - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Beenden - + Quit OpenLP OpenLP beenden - + Alt+F4 Alt+F4 - + &Theme &Design - + &Configure OpenLP... - + &Media Manager &Medienmanager - + Toggle Media Manager Medienmanager ein/ausblenden - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager &Designmanager - + Toggle Theme Manager Designverwaltung ein/ausblenden - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager Ablauf&sverwaltung - + Toggle Service Manager Ablaufmanager ein/ausblenden - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Vorschaubereich - + Toggle Preview Panel Vorschaubereich ein/ausblenden - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List &Plugin-Liste - + List the Plugins Plugins auflisten - + Alt+F7 Alt+F7 - + &User Guide Ben&utzerhandbuch - + &About &Über - + More information about OpenLP Mehr Informationen über OpenLP - + Ctrl+F1 Strg+F1 - + &Online Help &Online Hilfe - + &Web Site &Webseite - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Live - + Set the view mode to Live. - - Version %s of OpenLP is now available for download (you are currently running version %s). - -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. - - - - + OpenLP Version Updated OpenLP-Version aktualisiert - + OpenLP Main Display Blanked Hauptbildschirm abgedunkelt - + The Main Display has been blanked out Die Projektion ist momentan nicht aktiv - + Save Changes to Service? Änderungen am Ablauf speichern? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s + + + 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/. + + OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Markiertes Element löschen - - - + Preview %s - - Preview the selected item - Zeige das auswählte Element in der Vorschau an - - - - Send the selected item live - Ausgewähltes Element Live anzeigen - - - + Add %s to Service - - Add the selected item(s) to the service - Füge Element(e) zum Ablauf hinzu - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Zeige Live - + &Add to Service &Zum Ablauf hinzufügen - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Sie müssen mindestens ein Element markieren - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2275,17 +2528,17 @@ You can download the latest version from <a href="http://openlp.org/&quo %s (Inactive) - + %s (Inaktiv) %s (Active) - + %s (Aktiv) %s (Disabled) - + %s (Deaktiviert) @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Erstelle neuen Ablauf - + Open Service Öffnen Ablauf @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Öffne Ablauf - + Save Service Ablauf speichern @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo &Design des Elements ändern - + Save Changes to Service? Änderungen am Ablauf speichern? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Fehler - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Live - + Preview Vorschau - - Move to first - Ganz nach vorn verschieben - - - + Move to previous Vorherige Folie anzeigen - + Move to next Verschiebe zum Nächsten - - Move to last - Zur letzten Folie - - - + Hide - + Move to live Verschieben zur Live Ansicht - + Edit and re-preview Song Lied bearbeiten und wieder anzeigen - + Start continuous loop Endlosschleife starten - + Stop continuous loop Endlosschleife beenden - + s s - + Delay between slides in seconds Pause zwischen den Folien in Sekunden - + Start playing media Abspielen @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. Springe zu + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Neues Design @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error Fehler @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists Design existiert - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + &Zeige Live + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Präsentation + + + + Presentations + Präsentationen + PresentationPlugin.MediaItem - - Presentation - Präsentation - - - + Select Presentation(s) Präsentation(en) auswählen - + Automatic - + Present using: Anzeigen mit: - + A presentation with that filename already exists. Eine Präsentation mit diesem Dateinamen existiert bereits. - + You must select an item to delete. - + File Exists - + Unsupported File - + This type of presentation is not supported @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Fernprojektion + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Lieder + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Lied - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + &Zeige Live + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Lied + + + + Songs + Lieder + SongsPlugin.AuthorsForm @@ -3074,250 +3525,255 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Lied bearbeiten - + &Title: - + &Lyrics: - + &Add - + &Edit &Bearbeiten - + Ed&it All - + &Delete - + Title && Lyrics Titel && Liedtext - + Authors Autoren - + &Add to Song Zum Lied &hinzufügen - + &Remove Entfe&rnen - + Topic Thema - + A&dd to Song Zum Lied &hinzufügen - + R&emove &Entfernen - + Song Book Liederbuch - + Theme Design - + New &Theme - + Copyright Information Copyright Angaben - + © - + Comments Kommentare - + Theme, Copyright Info && Comments Design, Copyrightinformationen && Kommentare - + Save && Preview Speichern && Vorschau - + Add Author - + This author does not exist, do you want to add them? - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + Add Book - + This song book does not exist, do you want to add it? - + Error Fehler - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Alt&ernate title: - + &Verse order: - + &Manage Authors, Topics, Song Books - + Authors, Topics && Song Book - + CCLI number: - + This author is already in the list. - + This topic is already in the list. + + + Song No.: + + SongsPlugin.EditVerseForm - + Edit Verse Bearbeite Vers - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + Starting import... Starte import ... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Importquelle auswählen - + Select the import format, and where to import from. Wähle das Import Format und woher der Import erfolgen soll. - + Format: Format: - + OpenLyrics - + OpenSong OpenSong - + Add Files... - + Remove File(s) - + Filename: - + Browse... - + Importing - + Please wait while your songs are imported. - + Ready. Fertig. - + %p% - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Lied - - - + Song Maintenance Liedverwaltung - + Maintain the lists of authors, topics and books Autoren, Designs und Bücher verwalten - + Search: Suche: - + Type: Art: - + Clear - + Search Suche - + Titles Titel - + Lyrics Liedtext - + Authors Autoren - + You must select an item to edit. - + You must select an item to delete. - + CCLI Licence: CCLI-Lizenz: - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importvorgang abgeschlossen. - + Your song import failed. @@ -3725,52 +4181,52 @@ The content encoding is not UTF-8. - + Error Fehler - + Delete Author Lösche Autor - + Are you sure you want to delete the selected author? Sind Sie sicher, dass Sie den ausgewählten Autor löschen wollen? - + No author selected! Sie haben keinen Autor ausgewählt! - + Delete Topic Lösche Thema - + Are you sure you want to delete the selected topic? Soll der gewählte Eintrag wirklich gelöscht werden? - + No topic selected! Kein Thema ausgewählt! - + Delete Book Buch löschen - + Are you sure you want to delete the selected book? Sind Sie sicher, dass das markierte Buch wirklich gelöscht werden soll? - + No book selected! Kein Buch ausgewählt! @@ -3780,62 +4236,62 @@ The content encoding is not UTF-8. - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + This author cannot be deleted, they are currently assigned to at least one song. - + This topic cannot be deleted, it is currently assigned to at least one song. - + This book cannot be deleted, it is currently assigned to at least one song. diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index 3d538ab1b..4fac40d62 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + + + + + Bibles + + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - - - - + Quick - + Advanced - + Version: - + Dual: - + Search type: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + No matching book could be found in this Bible. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + + + + + Images + + ImagePlugin.MediaItem - - Image - - - - + Select Image(s) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + + MediaPlugin.MediaItem - - Media - - - - + Select Media - + Replace Live Background - + Replace Background - + + Media + + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance - + Theme &name: - - &Visibility: - - - - - Opaque - - - - - Transparent - - - - + Type: - + Solid Color - + Gradient - + Image - + Image: - + Gradient: - + Horizontal - + Vertical - + Circular - + &Background - + Main Font - + Font: - + Color: - + Size: - + pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal - + Bold - + Italics - + Bold/Italics - + Style: - + Display Location - + Use default location - + X position: - + Y position: - + Width: - + Height: - + px - + &Main Font - + Footer Font - + &Footer Font - + 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 - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop - + &File - + &Import - + &Export - + &View - + M&ode - + &Tools - + &Settings - + &Language - + &Help - + Media Manager - + 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. - + Ctrl+Shift+S - + E&xit - + Quit OpenLP - + Alt+F4 - + &Theme - + &Configure OpenLP... - + &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 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 - + &Plugin List - + List the Plugins - + Alt+F7 - + &User Guide - + &About - + More information about OpenLP - + Ctrl+F1 - + &Online Help - + &Web Site - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated - + OpenLP Main Display Blanked - + The Main Display has been blanked out - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - - - - + Preview %s - - Preview the selected item - - - - - Send the selected item live - - - - + Add %s to Service - - Add the selected item(s) to the service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Open Service @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Service @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live - + Preview - - Move to first - - - - + Move to previous - + Move to next - - Move to last - - - - + Hide - + Move to live - + Edit and re-preview Song - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + + + + + Presentations + + PresentationPlugin.MediaItem - - Presentation - - - - + Select Presentation(s) - + Automatic - + Present using: - + File Exists - + A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + + + + + Songs + + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - - - Authors, Topics && Song Book - - - - - Theme - - - New &Theme + Song No.: - Copyright Information - - - - - © + Authors, Topics && Song Book - CCLI number: + Theme - Comments + New &Theme + Copyright Information + + + + + © + + + + + CCLI number: + + + + + Comments + + + + Theme, Copyright Info && Comments - + Save && Preview - + Add Author - + This author does not exist, do you want to add them? - + Error - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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: - + OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing - + Please wait while your songs are imported. - + Ready. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - - - - + Song Maintenance - + Maintain the lists of authors, topics and books - + Search: - + Type: - + Clear - + Search - + Titles - + Lyrics - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author - + Are you sure you want to delete the selected author? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! - + Delete Topic - + Are you sure you want to delete the selected topic? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! - + Delete Book - + Are you sure you want to delete the selected book? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! diff --git a/resources/i18n/openlp_en_GB.ts b/resources/i18n/openlp_en_GB.ts index 3503a2e29..0a7b926bb 100644 --- a/resources/i18n/openlp_en_GB.ts +++ b/resources/i18n/openlp_en_GB.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert &Alert - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Alerts + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + &Show Live + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bible + + + + Bibles + Bibles + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bible - - - + Quick Quick - + Advanced Advanced - + Version: Version: - + Dual: Dual: - + Search type: - + Find: Find: - + Search Search - + Results: Results: - + Book: Book: - + Chapter: Chapter: - + Verse: Verse: - + From: From: - + To: To: - + Verse Search Verse Search - + Text Search Text Search - + Clear Clear - + Keep Keep - + No Book Found No Book Found - + No matching book could be found in this Bible. No matching book could be found in this Bible. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Add New - + Add a new slide at bottom. - + Edit Edit - + Edit the selected slide. - + Edit All Edit All - + Edit all the slides at once. - + Save Save - + Save the slide currently being edited. - + Delete Delete - + Delete the selected slide. - + Clear Clear - + Clear edit area Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - Custom - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + &Show Live + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + Custom + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + &Show Live + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Image + + + + Images + Images + ImagePlugin.MediaItem - - Image - Image - - - + Select Image(s) Select Image(s) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Image(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + &Show Live + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Media + MediaPlugin.MediaItem - - Media - Media - - - + Select Media Select Media - + Replace Live Background - + Replace Background - + + Media + Media + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Theme Maintenance - + Theme &name: - - &Visibility: - - - - - Opaque - Opaque - - - - Transparent - Transparent - - - + Type: Type: - + Solid Color Solid Color - + Gradient Gradient - + Image Image - + Image: Image: - + Gradient: - + Horizontal Horizontal - + Vertical Vertical - + Circular - + &Background - + Main Font Main Font - + Font: Font: - + Color: - + Size: Size: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normal - + Bold Bold - + Italics Italics - + Bold/Italics Bold/Italics - + Style: - + Display Location Display Location - + Use default location - + X position: - + Y position: - + Width: Width: - + Height: Height: - + px px - + &Main Font - + Footer Font Footer Font - + &Footer Font - + Outline Outline - + Outline size: - + Outline color: - + Show outline: - + Shadow Shadow - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Alignment - + Horizontal align: - + Left Left - + Right Right - + Center Center - + Vertical align: - + Top Top - + Middle Middle - + Bottom Bottom - + Slide Transition Slide Transition - + Transition active - + &Other Options - + Preview Preview - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop English - + &File &File - + &Import &Import - + &Export &Export - + &View &View - + M&ode M&ode - + &Tools &Tools - + &Settings &Settings - + &Language &Language - + &Help &Help - + Media Manager Media Manager - + Service Manager Service Manager - + Theme Manager Theme Manager - + &New &New - + New Service New Service - + Create a new service. - + Ctrl+N Ctrl+N - + &Open &Open - + Open Service Open Service - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Save - + Save Service Save Service - + Save the current service to disk. - + Ctrl+S Ctrl+S - + Save &As... Save &As... - + Save Service As Save Service As - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit E&xit - + Quit OpenLP Quit OpenLP - + Alt+F4 Alt+F4 - + &Theme &Theme - + &Configure OpenLP... - + &Media Manager &Media Manager - + Toggle Media Manager Toggle Media Manager - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager &Theme Manager - + Toggle Theme Manager Toggle Theme Manager - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager &Service Manager - + Toggle Service Manager Toggle Service Manager - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Preview Panel - + Toggle Preview Panel Toggle Preview Panel - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List &Plugin List - + List the Plugins List the Plugins - + Alt+F7 Alt+F7 - + &User Guide &User Guide - + &About &About - + More information about OpenLP More information about OpenLP - + Ctrl+F1 Ctrl+F1 - + &Online Help &Online Help - + &Web Site &Web Site - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Live - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated OpenLP Version Updated - + OpenLP Main Display Blanked OpenLP Main Display Blanked - + The Main Display has been blanked out The Main Display has been blanked out - + Save Changes to Service? Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Delete the selected item - - - + Preview %s - - Preview the selected item - Preview the selected item - - - - Send the selected item live - Send the selected item live - - - + Add %s to Service - - Add the selected item(s) to the service - Add the selected item(s) to the service - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Show Live - + &Add to Service &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Create a new service - + Open Service Open Service @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Load an existing service - + Save Service Save Service @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo &Change Item Theme - + Save Changes to Service? Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Live - + Preview Preview - - Move to first - Move to first - - - + Move to previous Move to previous - + Move to next Move to next - - Move to last - Move to last - - - + Hide - + Move to live Move to live - + Edit and re-preview Song Edit and re-preview Song - + Start continuous loop Start continuous loop - + Stop continuous loop Stop continuous loop - + s s - + Delay between slides in seconds Delay between slides in seconds - + Start playing media Start playing media @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. Go to Verse + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme New Theme @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error Error @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists Theme Exists - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + &Show Live + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Presentation + + + + Presentations + Presentations + PresentationPlugin.MediaItem - - Presentation - Presentation - - - + Select Presentation(s) Select Presentation(s) - + Automatic - + Present using: Present using: - + File Exists - + A presentation with that filename already exists. A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Remotes + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Songs + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + &Show Live + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Song + + + + Songs + Songs + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Edit - + Ed&it All - + &Delete - + Title && Lyrics Title && Lyrics - + Authors Authors - + &Add to Song &Add to Song - + &Remove &Remove - + &Manage Authors, Topics, Song Books - + Topic Topic - + A&dd to Song A&dd to Song - + R&emove R&emove - + Song Book Song Book - - - Authors, Topics && Song Book - - - - - Theme - Theme - - New &Theme + Song No.: - Copyright Information - Copyright Information - - - - © + Authors, Topics && Song Book + Theme + Theme + + + + New &Theme + + + + + Copyright Information + Copyright Information + + + + © + + + + CCLI number: - + Comments Comments - + Theme, Copyright Info && Comments Theme, Copyright Info && Comments - + Save && Preview Save && Preview - + Add Author - + This author does not exist, do you want to add them? - + Error Error - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Edit Verse - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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 Import Source - + Select the import format, and where to import from. Select the import format, and where to import from. - + Format: Format: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing Importing - + Please wait while your songs are imported. - + Ready. Ready. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Song - - - + Song Maintenance Song Maintenance - + Maintain the lists of authors, topics and books Maintain the lists of authors, topics and books - + Search: Search: - + Type: Type: - + Clear Clear - + Search Search - + Titles - + Lyrics Lyrics - + Authors Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI Licence: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Finished import. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error Error - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author Delete Author - + Are you sure you want to delete the selected author? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! - + Delete Topic Delete Topic - + Are you sure you want to delete the selected topic? Are you sure you want to delete the selected topic? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! No topic selected! - + Delete Book Delete Book - + Are you sure you want to delete the selected book? Are you sure you want to delete the selected book? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! diff --git a/resources/i18n/openlp_en_ZA.ts b/resources/i18n/openlp_en_ZA.ts index 24faf3bc9..67a21d3ac 100644 --- a/resources/i18n/openlp_en_ZA.ts +++ b/resources/i18n/openlp_en_ZA.ts @@ -3,27 +3,37 @@ AlertsPlugin - + &Alert &Alert - + Show an alert message. Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Alerts + AlertsPlugin.AlertForm Alert Message - Alert Message + Alert Message @@ -38,7 +48,7 @@ &New - &New + &New @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. Alert message created and displayed. @@ -119,7 +129,7 @@ pt - pt + pt @@ -134,7 +144,7 @@ Location: - Location: + Location: @@ -154,7 +164,7 @@ Middle - Middle + Middle @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + &Show Live + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bible + + + + Bibles + Bibles + BiblesPlugin.BibleDB @@ -185,7 +285,7 @@ The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - The book you requested could not be found in this Bible. Please check your spelling and that this is a complete Bible not just one testament. + @@ -206,15 +306,7 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: - -Book Chapter -Book Chapter-Chapter -Book Chapter:Verse-Verse -Book Chapter:Verse-Verse,Verse-Verse -Book Chapter:Verse-Verse,Chapter:Verse-Verse -Book Chapter:Verse-Chapter:Verse - + @@ -222,17 +314,17 @@ Book Chapter:Verse-Chapter:Verse Bibles - Bibles + Bibles Verse Display - Verse Display + Verse Display Only show new chapter numbers - Only show new chapter numbers + Only show new chapter numbers @@ -563,112 +655,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bible - - - + Quick Quick - + Advanced Advanced - + Version: Version: - + Dual: Dual: - + Search type: Search type: - + Find: Find: - + Search Search - + Results: Results: - + Book: Book: - + Chapter: Chapter: - + Verse: Verse: - + From: From: - + To: To: - + Verse Search Verse Search - + Text Search Text Search - + Clear Clear - + Keep Keep - + No Book Found No Book Found - + No matching book could be found in this Bible. No matching book could be found in this Bible. - + etc etc - + Bible not fully loaded. Bible not fully loaded. @@ -684,7 +771,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -710,97 +797,97 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Edit Custom Slides - + Move slide down one position. Move slide down one position. - + &Title: &Title: - + Add New Add New - + Add a new slide at bottom. Add a new slide at bottom. - + Edit Edit - + Edit the selected slide. Edit the selected slide. - + Edit All Edit All - + Edit all the slides at once. Edit all the slides at once. - + Save Save - + Save the slide currently being edited. Save the slide currently being edited. - + Delete Delete - + Delete the selected slide. Delete the selected slide. - + Clear Clear - + Clear edit area Clear edit area - + Split Slide Split Slide - + Split a slide into two by inserting a slide splitter. Split a slide into two by inserting a slide splitter. - + The&me: The&me: - + &Credits: &Credits: @@ -830,117 +917,335 @@ Changes do not affect verses already in the service. You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Move slide up one position. - + Move slide up one position. CustomPlugin.MediaItem - - Custom - Custom - - - + You haven't selected an item to edit. You haven't selected an item to edit. - + You haven't selected an item to delete. You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + &Show Live + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + Custom + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + &Show Live + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Image + + + + Images + + ImagePlugin.MediaItem - - Image - Image - - - + Select Image(s) Select Image(s) - + All Files All Files - + Replace Live Background Replace Live Background - + Replace Background Replace Background - + You must select an image to delete. You must select an image to delete. - + Image(s) Image(s) - + You must select an image to replace the background with. You must select an image to replace the background with. - + You must select a media file to replace the background with. You must select a media file to replace the background with. + + + Reset Live Background + Reset Live Background + MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + &Show Live + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Media + MediaPlugin.MediaItem - + Media Media - + Select Media Select Media - + Replace Live Background Replace Live Background - + Replace Background Replace Background - + You must select a media file to delete. You must select a media file to delete. @@ -948,7 +1253,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files Image Files @@ -987,6 +1292,105 @@ OpenLP is written and maintained by volunteers. If you would like to see more fr Credits Credits + + + License + License + + + + Contribute + Contribute + + + + Close + Close + + + + build %s + build %s + + + + 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 + Andreas "googol" Preikschat + Christian "crichter" Richter + Philip "Phill" Ridout + Maikel Stuivenberg + Carsten "catini" Tingaard + Frode "frodus" Woldsund + +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, Ubuntu) + +Built With + Python: http://www.python.org/ + Qt4: http://qt.nokia.com/ + PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro + Oxygen Icons: http://oxygen-icons.org/ + + 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 + Andreas "googol" Preikschat + Christian "crichter" Richter + Philip "Phill" Ridout + Maikel Stuivenberg + Carsten "catini" Tingaard + Frode "frodus" Woldsund + +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, Ubuntu) + +Built With + Python: http://www.python.org/ + Qt4: http://qt.nokia.com/ + PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro + Oxygen Icons: http://oxygen-icons.org/ + + Copyright © 2004-2010 Raoul Snyman @@ -1120,236 +1524,7 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gno 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. - 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. - - - - License - License - - - - Contribute - Contribute - - - - Close - Close - - - - build %s - build %s - - - - 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 - Andreas "googol" Preikschat - Christian "crichter" Richter - Philip "Phill" Ridout - Maikel Stuivenberg - Carsten "catini" Tingaard - Frode "frodus" Woldsund - -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, Ubuntu) - -Built With - Python: http://www.python.org/ - Qt4: http://qt.nokia.com/ - PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro - Oxygen Icons: http://oxygen-icons.org/ - - 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 - Andreas "googol" Preikschat - Christian "crichter" Richter - Philip "Phill" Ridout - Maikel Stuivenberg - Carsten "catini" Tingaard - Frode "frodus" Woldsund - -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, Ubuntu) - -Built With - Python: http://www.python.org/ - Qt4: http://qt.nokia.com/ - PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro - Oxygen Icons: http://oxygen-icons.org/ - + @@ -1383,319 +1558,299 @@ Built With OpenLP.AmendThemeForm - + Theme Maintenance Theme Maintenance - + Theme &name: Theme &name: - - &Visibility: - &Visibility: - - - - Opaque - Opaque - - - - Transparent - Transparent - - - + Type: - Type: + Type: - + Solid Color - Solid Colour + Solid Colour - + Gradient - + Gradient - + Image - Image + Image - + Image: - + Image: - + Gradient: - + Gradient: - + Horizontal - Horizontal + Horizontal - + Vertical - Vertical + Vertical - + Circular - Circular + Circular - + &Background - + &Background - + Main Font - Main Font + Main Font - + Font: - + Font: - + Color: - + Color: - + Size: - + Size: - + pt - pt + pt - - Wrap indentation: - - - - + Adjust line spacing: - + Adjust line spacing: - + Normal - Normal + Normal - + Bold - Bold + Bold - + Italics - Italics + Italics - + Bold/Italics - + Bold/Italics - + Style: - + Style: - + Display Location - + Display Location - + Use default location - + Use default location - + X position: - + X position: - + Y position: - + Y position: - + Width: - Width: - - - - Height: - Height: - - - - px - px - - - - &Main Font - + Width: - Footer Font - Footer Font + Height: + Height: - + + px + px + + + + &Main Font + &Main Font + + + + Footer Font + Footer Font + + + &Footer Font - + &Footer Font + + + + Outline + Outline + + + + Outline size: + Outline size: + + + + Outline color: + Outline color: + + + + Show outline: + Show outline: + + + + Shadow + Shadow + + + + Shadow size: + Shadow size: + + + + Shadow color: + Shadow color: + + + + Show shadow: + Show shadow: + + + + Alignment + Alignment + + + + Horizontal align: + Horizontal align: + + + + Left + Left + + + + Right + Right + + + + Center + Centre - Outline - Outline + Vertical align: + Vertical align: - Outline size: - + Top + Top + + + + Middle + Middle - Outline color: - + Bottom + Bottom - Show outline: - + Slide Transition + Slide Transition - Shadow - Shadow + Transition active + Transition active - Shadow size: - - - - - Shadow color: - - - - - Show shadow: - - - - - Alignment - Alignment - - - - Horizontal align: - - - - - Left - - - - - Right - Right - - - - Center - Centre - - - - Vertical align: - - - - - Top - Top - - - - Middle - Middle - - - - Bottom - Bottom - - - - Slide Transition - Slide Transition - - - - Transition active - - - - &Other Options - + &Other Options - + Preview - Preview + Preview - + All Files - All Files + All Files - + Select Image - + Select Image - + First color: - + First color: - + Second color: - + Second color: - + Slide height is %s rows. - + Slide height is %s rows. @@ -1703,127 +1858,127 @@ Built With General - + General Monitors - + Monitors Select monitor for output display: - Select monitor for output display: + Select monitor for output display: Display if a single screen - + Display if a single screen Application Startup - Application Startup + Application Startup Show blank screen warning - Show blank screen warning + Show blank screen warning Automatically open the last service - Automatically open the last service + Automatically open the last service Show the splash screen - + Show the splash screen Application Settings - Application Settings + Application Settings CCLI Details - CCLI Details + CCLI Details CCLI number: - + CCLI number: SongSelect username: - + SongSelect username: SongSelect password: - + SongSelect password: Display Position - + Display Position X - + X Y - + Y Height - + Height Width - + Width Override display position - + Override display position Screen - + Screen primary - primary + primary Prompt to save before starting a new service - + Prompt to save before starting a new service Automatically preview next item in service - + Automatically preview next item in service Slide loop delay: - + Slide loop delay: sec - + sec @@ -1831,585 +1986,547 @@ Built With Language - + Language Please restart OpenLP to use your new language setting. - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - + OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 English - English - - - - &File - &File - - - - &Import - &Import + English - &Export - &Export + &File + &File - &View - &View + &Import + &Import - M&ode - + &Export + &Export - &Tools - + &View + &View + M&ode + M&ode + + + + &Tools + &Tools + + + &Settings - &Settings - - - - &Language - - - - - &Help - - - - - Media Manager - Media Manager - - - - Service Manager - Service Manager - - - - Theme Manager - - - - - &New - &New - - - - New Service - - - - - Create a new service. - - - - - Ctrl+N - Ctrl+N - - - - &Open - &Open - - - - Open Service - Open Service - - - - Open an existing service. - - - - - Ctrl+O - Ctrl+O - - - - &Save - &Save - - - - Save Service - - - - - Save the current service to disk. - - - - - Ctrl+S - Ctrl+S - - - - Save &As... - - - - - Save Service As - - - - - Save the current service under a new name. - - - - - Ctrl+Shift+S - - - - - E&xit - - - - - Quit OpenLP - Quit OpenLP - - - - Alt+F4 - Alt+F4 - - - - &Theme - + &Settings - &Configure OpenLP... - + &Language + &Language + + + + &Help + &Help + + + + Media Manager + Media Manager + + + + Service Manager + Service Manager + + + + Theme Manager + Theme Manager + + + + &New + &New + + + + New Service + New Service + + + + Create a new service. + Create a new service. + + + + Ctrl+N + Ctrl+N + + + + &Open + &Open + + + + Open Service + Open Service + + + + Open an existing service. + Open an existing service. + + + + Ctrl+O + Ctrl+O + + + + &Save + &Save + + + + Save Service + Save Service + + + + Save the current service to disk. + Save the current service to disk. + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Save &As... + + + + Save Service As + Save Service As + + + + Save the current service under a new name. + Save the current service under a new name. + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + E&xit + E&xit + + + + Quit OpenLP + Quit OpenLP + + + + Alt+F4 + Alt+F4 + + + + &Theme + &Theme - &Media Manager - + &Configure OpenLP... + &Configure OpenLP... - Toggle Media Manager - + &Media Manager + &Media Manager - Toggle the visibility of the media manager. - + Toggle Media Manager + Toggle Media Manager - F8 - F8 + Toggle the visibility of the media manager. + Toggle the visibility of the media manager. - &Theme Manager - + F8 + F8 - Toggle Theme Manager - Toggle Theme Manager + &Theme Manager + &Theme Manager - Toggle the visibility of the theme manager. - + Toggle Theme Manager + Toggle Theme Manager - F10 - + Toggle the visibility of the theme manager. + Toggle the visibility of the theme manager. - &Service Manager - &Service Manager + F10 + F10 - Toggle Service Manager - Toggle Service Manager. + &Service Manager + &Service Manager - Toggle the visibility of the service manager. - + Toggle Service Manager + Toggle Service Manager. - F9 - F9 + Toggle the visibility of the service manager. + Toggle the visibility of the service manager. - &Preview Panel - &Preview Panel + F9 + F9 - Toggle Preview Panel - Toggle Preview Panel + &Preview Panel + &Preview Panel - Toggle the visibility of the preview panel. - + Toggle Preview Panel + Toggle Preview Panel - F11 - + Toggle the visibility of the preview panel. + Toggle the visibility of the preview panel. - &Live Panel - + F11 + F11 - Toggle Live Panel - + &Live Panel + &Live Panel - Toggle the visibility of the live panel. - + Toggle Live Panel + Toggle Live Panel - F12 - + Toggle the visibility of the live panel. + Toggle the visibility of the live panel. - &Plugin List - + F12 + F12 - List the Plugins - List the plugins + &Plugin List + &Plugin List - Alt+F7 - Alt+F7 + List the Plugins + List the Plugins - &User Guide - &User Guide + Alt+F7 + Alt+F7 - &About - + &User Guide + &User Guide - - More information about OpenLP - + + &About + &About - Ctrl+F1 - Ctrl+F1 + More information about OpenLP + More information about OpenLP - &Online Help - + Ctrl+F1 + Ctrl+F1 - &Web Site - + &Online Help + &Online Help - &Auto Detect - + &Web Site + &Web Site - Use the system language, if available. - + &Auto Detect + &Auto Detect - - Set the interface language to %s - + + Use the system language, if available. + Use the system language, if available. - Add &Tool... - + Set the interface language to %s + Set the interface language to %s - Add an application to the list of tools. - + Add &Tool... + Add &Tool... - - &Default - + + Add an application to the list of tools. + Add an application to the list of tools. + &Default + &Default + + + Set the view mode back to the default. - + Set the view mode back to the default. - + &Setup - + &Setup - + Set the view mode to Setup. - + Set the view mode to Setup. - + &Live - &Live + &Live - + Set the view mode to Live. - + Set the view mode to Live. - + + OpenLP Version Updated + OpenLP Version Updated + + + + OpenLP Main Display Blanked + OpenLP Main Display Blanked + + + + The Main Display has been blanked out + The Main Display has been blanked out + + + + Save Changes to Service? + Save Changes to Service? + + + + Your service has changed. Do you want to save those changes? + Your service has changed. Do you want to save those changes? + + + + Default Theme: %s + Default Theme: %s + + + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. - - - - - OpenLP Version Updated - OpenLP Version Updated - - - - OpenLP Main Display Blanked - - - - - The Main Display has been blanked out - The Main Display has been blanked out - - - - Save Changes to Service? - Save Changes to Service? - - - - Your service has changed. Do you want to save those changes? - - - - - Default Theme: %s - +You can download the latest version from http://openlp.org/. + 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/. OpenLP.MediaManagerItem - + No Items Selected - + No Items Selected - + Import %s - + Import %s - - Import a %s - - - - + Load %s - + Load %s - - Load a new %s - - - - + New %s - + New %s - - Add a new %s - - - - + Edit %s - + Edit %s - - Edit the selected %s - - - - + Delete %s - + Delete %s - - Delete the selected item - Delete the selected item - - - + Preview %s - + Preview %s - - Preview the selected item - - - - - Send the selected item live - Send the selected item live. - - - + Add %s to Service - + Add %s to Service - - Add the selected item(s) to the service - Add the selected item(s) to the service. - - - + &Edit %s - + &Edit %s - + &Delete %s - + &Delete %s - + &Preview %s - + &Preview %s - + &Show Live - + &Show Live - + &Add to Service - + &Add to Service - + &Add to selected Service Item - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items to send live. - + You must select one or more items. - + You must select one or more items. - + No items selected - + No items selected - + You must select one or more items - You must select one or more items + You must select one or more items - + No Service Item Selected - + No Service Item Selected - + You must select an existing service item to add to. - + You must select an existing service item to add to. - + Invalid Service Item - + Invalid Service Item - + You must select a %s service item. - + You must select a %s service item. @@ -2417,56 +2534,56 @@ You can download the latest version from <a href="http://openlp.org/&quo Plugin List - + Plugin List Plugin Details - Plugin Details + Plugin Details Version: - Version: - - - - TextLabel - + Version: About: - + About: Status: - Status: + Status: Active - Active + Active Inactive - + Inactive %s (Inactive) - + %s (Inactive) %s (Active) - + %s (Active) %s (Disabled) + %s (Disabled) + + + + TextLabel @@ -2475,22 +2592,22 @@ You can download the latest version from <a href="http://openlp.org/&quo Reorder Service Item - + Reorder Service Item Up - + Up Delete - Delete + Delete Down - + Down @@ -2498,178 +2615,179 @@ You can download the latest version from <a href="http://openlp.org/&quo New Service - + New Service Create a new service - Create a new service + Create a new service - + Open Service - Open Service + Open Service Load an existing service - + Load an existing service - + Save Service - + Save Service Save this service - Save this service + Save this service Theme: - Theme: + Theme: Select a theme for the service - Select a theme for the service. + Select a theme for the service Move to &top - + Move to &top Move item to the top of the service. - + Move item to the top of the service. Move &up - + Move &up Move item up one position in the service. - + Move item up one position in the service. Move &down - + Move &down Move item down one position in the service. - + Move item down one position in the service. Move to &bottom - + Move to &bottom Move item to the end of the service. - + Move item to the end of the service. &Delete From Service - + &Delete From Service Delete the selected item from the service. - + Delete the selected item from the service. &Add New Item - + &Add New Item &Add to Selected Item - + &Add to Selected Item &Edit Item - + &Edit Item &Reorder Item - + &Reorder Item &Notes - + &Notes &Preview Verse - + &Preview Verse &Live Verse - &Live Verse + &Live Verse &Change Item Theme - &Change Item Theme + &Change Item Theme - + Save Changes to Service? - Save Changes to Service? + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - Error + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. +The content encoding is not UTF-8. - + File is not a valid service. - + File is not a valid service. - + Missing Display Handler - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it - + Your item cannot be displayed as there is no handler to display it @@ -2677,7 +2795,7 @@ The content encoding is not UTF-8. Service Item Notes - Service Item Notes + Service Item Notes @@ -2685,262 +2803,266 @@ The content encoding is not UTF-8. Configure OpenLP - + Configure OpenLP OpenLP.SlideController - + Live - Live + Live - + Preview - Preview + Preview - - Move to first - - - - + Move to previous - Move to previous + Move to previous + + + + Move to next + Move to next - Move to next - Move to next slide. - - - - Move to last - Move to last - - - Hide - + Hide - + Move to live - Move to live + Move to live - - Edit and re-preview Song - Edit and re-preview Song. - - - + Start continuous loop - Start continuous loop + Start continuous loop + + + + Stop continuous loop + Stop continuous loop + + + + s + s - Stop continuous loop - - - - - s - s - - - Delay between slides in seconds - Delay between slides in seconds. + Delay between slides in seconds - + Start playing media - Start playing media + Start playing media + + + + Edit and re-preview Song + Go to Verse - Go to Verse + + + + + OpenLP.SpellTextEdit + + + Spelling Suggestions + Spelling Suggestions + + + + Formatting Tags + Formatting Tags OpenLP.ThemeManager - + New Theme - + New Theme Create a new theme. - + Create a new theme. Edit Theme - Edit Theme + Edit Theme Edit a theme. - + Edit a theme. Delete Theme - Delete Theme + Delete Theme Delete a theme. - + Delete a theme. Import Theme - Import Theme + Import Theme Import a theme. - + Import a theme. Export Theme - Export Theme + Export Theme Export a theme. - + Export a theme. &Edit Theme - + &Edit Theme &Delete Theme - + &Delete Theme Set As &Global Default - + Set As &Global Default E&xport Theme - + E&xport Theme - + %s (default) - + %s (default) You must select a theme to edit. - + You must select a theme to edit. You must select a theme to delete. - + You must select a theme to delete. Delete Confirmation - + Delete Confirmation Delete theme? - + Delete theme? - + Error - Error + Error You are unable to delete the default theme. - + You are unable to delete the default theme. Theme %s is use in %s plugin. - + Theme %s is use in %s plugin. Theme %s is use by the service manager. - + Theme %s is use by the service manager. You have not selected a theme. - + You have not selected a theme. Save Theme - (%s) - Save Theme - (%s) + Save Theme - (%s) Theme Exported - + Theme Exported Your theme has been successfully exported. - + Your theme has been successfully exported. Theme Export Failed - + Theme Export Failed Your theme could not be exported due to an error. - + Your theme could not be exported due to an error. Select Theme Import File - + Select Theme Import File Theme (*.*) - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. +The content encoding is not UTF-8. - + File is not a valid theme. - + File is not a valid theme. - + Theme Exists - Theme Exists + Theme Exists - + A theme with this name already exists. Would you like to overwrite it? @@ -2950,103 +3072,188 @@ The content encoding is not UTF-8. Themes - Themes + Themes Global Theme - + Global Theme Theme Level - + Theme Level S&ong Level - + S&ong 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. - 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. + 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 - + &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. - 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. + 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 - + &Global Level Use the global theme, overriding any themes associated with either the service or the songs. - Use the global theme, overriding any themes associated with either the service or the songs. + Use the global theme, overriding any themes associated with either the service or the songs. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + + &Edit Presentation + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + &Show Live + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Presentation + + + + Presentations + Presentations + PresentationPlugin.MediaItem - - Presentation - Presentation - - - + Select Presentation(s) - + Select Presentation(s) - + Automatic - + Automatic - + Present using: - Present using: + Present using: - + File Exists - + File Exists - + A presentation with that filename already exists. - + A presentation with that filename already exists. - + Unsupported File - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. - + You must select an item to delete. @@ -3054,95 +3261,115 @@ The content encoding is not UTF-8. Presentations - + Presentations Available Controllers - Available Controllers + Available Controllers Advanced - Advanced + Advanced Allow presentation application to be overriden - + Allow presentation application to be overriden RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + + Remote + + + Remotes + Remotes + RemotePlugin.RemoteTab Remotes - Remotes + Remotes Serve on IP address: - + Serve on IP address: Port number: - + Port number: Server Settings - + Server Settings SongUsagePlugin - + &Song Usage Tracking - + &Song Usage Tracking - + &Delete Tracking Data - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + &Extract Tracking Data - + Generate a report on song usage. - + Generate a report on song usage. - + Toggle Tracking - + Toggle Tracking - + Toggle the tracking of song usage. + Toggle the tracking of song usage. + + + + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + + SongUsage - - <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + Songs @@ -3151,17 +3378,17 @@ The content encoding is not UTF-8. Delete Selected Song Usage Events? - + Delete Selected Song Usage Events? Are you sure you want to delete selected Song Usage data? - + Are you sure you want to delete selected Song Usage data? Delete Song Usage Data - + Delete Song Usage Data @@ -3169,44 +3396,134 @@ The content encoding is not UTF-8. Output File Location - Output File Location + Output File Location Song Usage Extraction - + Song Usage Extraction Select Date Range - + Select Date Range to - + to Report Location - Report Location + Report Location SongsPlugin - + &Song &Song - + Import songs using the import wizard. + Import songs using the import wizard. + + + + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + + &Edit Song - - <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + &Show Live + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Song + + + + Songs @@ -3215,291 +3532,296 @@ The content encoding is not UTF-8. Author Maintenance - Author Maintenance + Author Maintenance Display name: - + Display name: First name: - First name: + First name: Last name: - Last name: + Last name: Error - Error + Error You need to type in the first name of the author. - You need to type in the first name of the author. + You need to type in the first name of the author. You need to type in the last name of the author. - + You need to type in the last name of the author. You have not set a display name for the author, would you like me to combine the first and last names for you? - + You have not set a display name for the author, would you like me to combine the first and last names for you? SongsPlugin.EditSongForm - - - Song Editor - Song Editor - - - - &Title: - &Title: - - &Lyrics: - + Song Editor + Song Editor - - &Add - + + &Title: + &Title: - &Edit - - - - - Ed&it All - + &Lyrics: + &Lyrics: - &Delete - &Delete + &Add + &Add + &Edit + &Edit + + + + Ed&it All + Ed&it All + + + + &Delete + &Delete + + + Title && Lyrics - Title && Lyrics - - - - Authors - Authors - - - - &Add to Song - - - - - &Remove - &Remove + Title && Lyrics - &Manage Authors, Topics, Song Books - + Authors + Authors - Topic - Topic + &Add to Song + &Add to Song - A&dd to Song - + &Remove + &Remove - R&emove - + &Manage Authors, Topics, Song Books + &Manage Authors, Topics, Song Books - Song Book - + Topic + Topic - Authors, Topics && Song Book - + A&dd to Song + A&dd to Song + + + + R&emove + R&emove - Theme - Theme - - - - New &Theme - + Song Book + Song Book - Copyright Information - Copyright Information + Authors, Topics && Song Book + Authors, Topics && Song Book - - © - + + Theme + Theme + New &Theme + New &Theme + + + + Copyright Information + Copyright Information + + + + © + © + + + Comments - + Theme, Copyright Info && Comments - + Save && Preview Save && Preview - + Add Author - + This author does not exist, do you want to add them? - + Error Error - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? - + Alt&ernate title: - + &Verse order: - + CCLI number: + CCLI number: + + + + Song No.: SongsPlugin.EditVerseForm - + Edit Verse Edit Verse - + &Verse type: - + &Insert @@ -3507,315 +3829,315 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + Starting import... Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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 Import Source - + Select the import format, and where to import from. Select the import format, and where to import from. - + Format: Format: - + OpenLyrics - + OpenSong OpenSong - + Add Files... - + Remove File(s) - + Filename: - + Browse... - + Importing Importing - + Please wait while your songs are imported. - + Ready. Ready. - + %p% - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation + + + Select CCLI Files + + SongsPlugin.MediaItem - - Song - Song - - - + Song Maintenance - + Maintain the lists of authors, topics and books Maintain the lists of authors, topics and books - + Search: Search: - + Type: Type: - + Clear Clear - + Search Search - + Titles Titles - + Lyrics Lyrics - + Authors Authors - + You must select an item to edit. - + You must select an item to delete. - + You must select an item to delete. - + CCLI Licence: CCLI License: - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? @@ -3851,25 +4173,25 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © - + © SongsPlugin.SongImportForm - + Finished import. Finished import. - + Your song import failed. @@ -3899,12 +4221,12 @@ The content encoding is not UTF-8. &Add - + &Add &Edit - + &Edit @@ -3912,112 +4234,112 @@ The content encoding is not UTF-8. &Delete - + Error Error - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author - + Are you sure you want to delete the selected author? Are you sure you want to delete the selected author? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! No author selected! - + Delete Topic Delete Topic - + Are you sure you want to delete the selected topic? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! - + Delete Book Delete Book - + Are you sure you want to delete the selected book? Are you sure you want to delete the selected book? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! No book selected! diff --git a/resources/i18n/openlp_es.ts b/resources/i18n/openlp_es.ts index 93d04b1c4..11358db65 100644 --- a/resources/i18n/openlp_es.ts +++ b/resources/i18n/openlp_es.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert &Alerta - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Alertas + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Biblia - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + Mo&star En Vivo + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Biblia + + + + Bibles + Biblias + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Biblia - - - + Quick Rápida - + Advanced Avanzado - + Version: Versión: - + Dual: Paralela: - + Search type: - + Find: Encontrar: - + Search Buscar - + Results: Resultados: - + Book: Libro: - + Chapter: Capítulo: - + Verse: Versículo: - + From: Desde: - + To: Hasta: - + Verse Search Búsqueda de versículo - + Text Search Búsqueda de texto - + Clear Limpiar - + Keep Conservar - + No Book Found No se encontró el libro - + No matching book could be found in this Bible. No se encuentra un libro que concuerde, en esta Biblia. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Editar Diapositivas Personalizadas - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Agregar Nueva - + Add a new slide at bottom. - + Edit Editar - + Edit the selected slide. - + Edit All Editar Todo - + Edit all the slides at once. - + Save Guardar - + Save the slide currently being edited. - + Delete Eliminar - + Delete the selected slide. - + Clear Limpiar - + Clear edit area Limpiar el área de edición - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + Mo&star En Vivo + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + Mo&star En Vivo + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Imagen + + + + Images + Imágenes + ImagePlugin.MediaItem - - Image - Imagen - - - + Select Image(s) Seleccionar Imagen(es) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Imagen(es) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + Mo&star En Vivo + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Medios + MediaPlugin.MediaItem - - Media - Medios - - - + Select Media Seleccionar Medios - + Replace Live Background - + Replace Background - + + Media + Medios + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Mantenimiento de Temas - + Theme &name: - - &Visibility: - - - - - Opaque - Opaco - - - - Transparent - Transparente - - - + Type: Tipo: - + Solid Color Color Sólido - + Gradient Gradiente - + Image Imagen - + Image: Imagen: - + Gradient: - + Horizontal Horizontal - + Vertical Vertical - + Circular Circular - + &Background - + Main Font Tipo de Letra Principal - + Font: Fuente: - + Color: - + Size: Tamaño: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normal - + Bold Negrita - + Italics Cursiva - + Bold/Italics Negrita/Cursiva - + Style: - + Display Location Ubicación en la pantalla - + Use default location - + X position: - + Y position: - + Width: Ancho: - + Height: Altura: - + px px - + &Main Font - + Footer Font Fuente de Pie de Página - + &Footer Font - + Outline Contorno - + Outline size: - + Outline color: - + Show outline: - + Shadow Sombra - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Alineación - + Horizontal align: - + Left Izquierda - + Right Derecha - + Center Centro - + Vertical align: - + Top - + Middle Medio - + Bottom - + Slide Transition Transición de Diapositiva - + Transition active - + &Other Options - + Preview Vista Previa - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop Ingles - + &File &Archivo - + &Import &Importar - + &Export &Exportar - + &View &Ver - + M&ode M&odo - + &Tools &Herramientas - + &Settings &Preferencias - + &Language &Idioma - + &Help &Ayuda - + Media Manager Gestor de Medios - + Service Manager Gestor de Servicio - + Theme Manager Gestor de Temas - + &New &Nuevo - + New Service Servicio Nuevo - + Create a new service. - + Ctrl+N Ctrl+N - + &Open &Abrir - + Open Service Abrir Servicio - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Guardar - + Save Service Guardar Servicio - + Save the current service to disk. - + Ctrl+S Crtl+G - + Save &As... Guardar &Como... - + Save Service As Guardar Servicio Como - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Salir - + Quit OpenLP Salir de OpenLP - + Alt+F4 Alt+F4 - + &Theme &Tema - + &Configure OpenLP... - + &Media Manager Gestor de &Medios - + Toggle Media Manager Alternar Gestor de Medios - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager Gestor de &Temas - + Toggle Theme Manager Alternar Gestor de Temas - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager Gestor de &Servicio - + Toggle Service Manager Alternar Gestor de Servicio - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Panel de Vista Previa - + Toggle Preview Panel Alternar Panel de Vista Previa - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List Lista de &Plugins - + List the Plugins Lista de Plugins - + Alt+F7 Alt+F7 - + &User Guide Guía de &Usuario - + &About &Acerca De - + More information about OpenLP Más información acerca de OpenLP - + Ctrl+F1 Ctrl+F1 - + &Online Help &Ayuda En Línea - + &Web Site Sitio &Web - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live En &vivo - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated Versión de OpenLP Actualizada - + OpenLP Main Display Blanked Pantalla Principal de OpenLP en Blanco - + The Main Display has been blanked out La Pantalla Principal esta en negro - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Borrar el ítem seleccionado - - - + Preview %s - - Preview the selected item - Vista Previa del ítem seleccionado - - - - Send the selected item live - Enviar en vivo el ítem seleccionado - - - + Add %s to Service - - Add the selected item(s) to the service - Agregar el elemento(s) seleccionado al servicio - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Mo&star En Vivo - + &Add to Service &Agregar al Servicio - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Usted debe seleccionar uno o más elementos - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Crear un servicio nuevo - + Open Service Abrir Servicio @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Abrir un servicio existente - + Save Service Guardar Servicio @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo &Cambiar Tema de Ítem - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live En vivo - + Preview Vista Previa - - Move to first - Ir al principio - - - + Move to previous Regresar al anterior - + Move to next Ir al siguiente - - Move to last - Mover al final - - - + Hide - + Move to live Proyectar en vivo - + Edit and re-preview Song Editar y re-visualizar Canción - + Start continuous loop Iniciar bucle continuo - + Stop continuous loop Detener el bucle - + s s - + Delay between slides in seconds Espera entre diapositivas en segundos - + Start playing media Iniciar la reproducción de medios @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. Ir al Verso + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Tema Nuevo @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error Error @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists Ya existe el Tema - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + Mo&star En Vivo + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Presentación + + + + Presentations + Presentaciones + PresentationPlugin.MediaItem - - Presentation - Presentación - - - + Select Presentation(s) Seleccionar Presentación(es) - + Automatic - + Present using: Mostrar usando: - + File Exists - + A presentation with that filename already exists. Ya existe una presentación con ese nombre. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Remotas + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Canciones + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Canción - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + Mo&star En Vivo + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Canción + + + + Songs + Canciones + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Editor de Canción - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Editar - + Ed&it All - + &Delete - + Title && Lyrics Título && Letra - + Authors Autores - + &Add to Song &Agregar a Canción - + &Remove &Quitar - + &Manage Authors, Topics, Song Books - + Topic Categoría - + A&dd to Song A&gregar a Canción - + R&emove &Quitar - + Song Book Himnario - - - Authors, Topics && Song Book - - - - - Theme - Tema - - New &Theme + Song No.: - Copyright Information - Información de Derechos de Autor - - - - © + Authors, Topics && Song Book + Theme + Tema + + + + New &Theme + + + + + Copyright Information + Información de Derechos de Autor + + + + © + + + + CCLI number: - + Comments Comentarios - + Theme, Copyright Info && Comments Tema, Derechos de Autor && Comentarios - + Save && Preview Guardar && Vista Previa - + Add Author - + This author does not exist, do you want to add them? - + Error Error - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Editar Verso - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Iniciando importación... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Seleccione Origen de Importación - + Select the import format, and where to import from. Seleccione el formato y el lugar del cual importar. - + Format: Formato: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing Importando - + Please wait while your songs are imported. - + Ready. Listo. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Canción - - - + Song Maintenance - + Maintain the lists of authors, topics and books Administrar la lista de autores, categorías y libros - + Search: Buscar: - + Type: Tipo: - + Clear Limpiar - + Search Buscar - + Titles Títulos - + Lyrics Letra - + Authors Autores - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: Licencia CCLI: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importación finalizada. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error Error - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author Borrar Autor - + Are you sure you want to delete the selected author? ¿Está seguro que desea eliminar el autor seleccionado? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! ¡Ningún autor seleccionado! - + Delete Topic Borrar Categoría - + Are you sure you want to delete the selected topic? ¿Está seguro que desea eliminar la categoría seleccionada? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! ¡No seleccionó la categoría! - + Delete Book Eliminar Libro - + Are you sure you want to delete the selected book? ¿Está seguro de que quiere eliminar el libro seleccionado? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! ¡Ningún libro seleccionado! diff --git a/resources/i18n/openlp_et.ts b/resources/i18n/openlp_et.ts index d37314bdb..adc325c99 100644 --- a/resources/i18n/openlp_et.ts +++ b/resources/i18n/openlp_et.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + + + + + Bibles + + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - - - - + Quick - + Advanced - + Version: Versioon: - + Dual: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + etc - + No matching book could be found in this Bible. - + Search type: - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,47 +796,47 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Kohandatud slaidide muutmine - + Add New Uue lisamine - + Edit Muuda - + Edit All Kõigi muutmine - + Save Salvesta - + Delete Kustuta - + Clear Puhasta - + Clear edit area Muutmise ala puhastamine - + Split Slide Tükelda slaid @@ -756,52 +851,52 @@ Changes do not affect verses already in the service. Viga - + Move slide down one position. - + &Title: - + Add a new slide at bottom. - + Edit the selected slide. - + Edit all the slides at once. - + Save the slide currently being edited. - + Delete the selected slide. - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -821,7 +916,7 @@ Changes do not affect verses already in the service. - + Move slide up one position. @@ -829,109 +924,327 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Pilt + + + + Images + + ImagePlugin.MediaItem - - Image - Pilt - - - + Select Image(s) Pildi (piltide) valimine - + All Files - + Replace Live Background Ekraani tausta asendamine - + Image(s) Pilt(pildid) - + Replace Background - + You must select an image to delete. - + You must select an image to replace the background with. - + You must select a media file to replace the background with. + + + Reset Live Background + + MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + + MediaPlugin.MediaItem - + Media Meedia - + Select Media Meedia valimine - + Replace Live Background - + Replace Background - + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1207,317 +1520,297 @@ Built With OpenLP.AmendThemeForm - + Theme Maintenance Kujunduste haldus - + Theme &name: - - &Visibility: - - - - - Opaque - Läbipaistmatu - - - - Transparent - Läbipaistev - - - + Type: Liik: - + Solid Color Ühtlane värv - + Gradient Üleminek - + Image Pilt - + Image: Pilt: - + Gradient: - + Horizontal Horisontaalne - + Vertical Vertikaalne - + Circular Ümmargune - + &Background - + Main Font Peamine kirjastiil - + Font: Kirjastiil: - + Color: - + Size: Suurus: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Tavaline - + Bold Rasvane - + Italics Kursiiv - + Bold/Italics Rasvane/kaldkiri - + Style: - + Display Location Kuva asukoht - + Use default location - + X position: - + Y position: - + Width: Laius: - + Height: Kõrgus: - + px px - + &Main Font - + Footer Font Jaluse kirjatüüp - + &Footer Font - + Outline Välisjoon - + Outline size: - + Outline color: - + Show outline: - + Shadow Vari - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Joondus - + Horizontal align: - + Left Vasakul - + Right Paremal - + Center Keskel - + Vertical align: - + Top Üleval - + Middle Keskel - + Bottom All - + Slide Transition Slaidide üleminek - + Transition active - + &Other Options - + Preview Eelvaade - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1671,567 +1964,527 @@ Built With Eesti - + OpenLP 2.0 OpenLP 2.0 - + &File &Fail - + &Import &Impordi - + &Export &Ekspordi - + &View &Vaade - + M&ode &Režiim - + &Tools &Tööriistad - + &Settings &Sätted - + &Language &Keel - + &Help A&bi - + Media Manager Meediahaldur - + Service Manager Teenistuse haldur - + Theme Manager Kujunduse haldur - + &New &Uus - + New Service Uus teenistus - + Create a new service. - + Ctrl+N Ctrl+N - + &Open &Ava - + Open Service Teenistuse avamine - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Salvesta - + Save Service Salvesta teenistus - + Save the current service to disk. - + Ctrl+S Ctrl+S - + Save &As... Salvesta &kui... - + Save Service As Salvesta teenistus kui - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Välju - + Quit OpenLP Lahku OpenLPst - + Alt+F4 Alt+F4 - + &Theme &Kujundus - + &Configure OpenLP... - + &Media Manager &Meediahaldur - + Toggle Media Manager Meediahalduri lüliti - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager &Kujunduse haldur - + Toggle Theme Manager Kujunduse halduri lüliti - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager &Teenistuse haldur - + Toggle Service Manager Teenistuse halduri lüliti - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Eelvaatluspaneel - + Toggle Preview Panel Eelvaatluspaneeli lüliti - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List &Pluginate loend - + List the Plugins Pluginate loend - + Alt+F7 Alt+F7 - + &User Guide &Kasutajajuhend - + &About &Lähemalt - + More information about OpenLP Lähem teave OpenLP kohta - + Ctrl+F1 Ctrl+F1 - + &Online Help &Abi veebis - + &Web Site &Veebileht - + &Auto Detect &Isetuvastus - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... Lisa &tööriist... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Otse - + Set the view mode to Live. - - Version %s of OpenLP is now available for download (you are currently running version %s). - -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. - - - - + OpenLP Version Updated OpenLP uuendus - + OpenLP Main Display Blanked OpenLP peakuva on tühi - + The Main Display has been blanked out Peakuva on tühi - + Save Changes to Service? Kas salvestada teenistusse tehtud muudatused? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s + + + 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/. + + OpenLP.MediaManagerItem - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Valitud elemendi kustutamine - - - + Preview %s - - Preview the selected item - Valitud kirje eelvaatlus - - - - Send the selected item live - Valitud kirje saatmine ekraanile - - - + Add %s to Service - - Add the selected item(s) to the service - Valitud kirje(te) lisamine teenistusse - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Kuva ekraanil - + &Add to Service &Lisa teenistusele - + &Add to selected Service Item &Lisa valitud teenistuse elemendile - + No Items Selected Ühtegi elementi pole valitud - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Pead valima vähemalt ühe elemendi. - + No items selected Ühtegi elementi pole valitud - + You must select one or more items Pead valima vähemalt ühe elemendi - + No Service Item Selected Ühtegi teenistuse elementi pole valitud - + You must select an existing service item to add to. Pead valima olemasoleva teenistuse, millele lisada. - + Invalid Service Item Vigane teenistuse element - + You must select a %s service item. @@ -2330,7 +2583,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Uue teenistuse loomine - + Open Service Teenistuse avamine @@ -2340,7 +2593,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Välise teenistuse laadimine - + Save Service Salvesta teenistus @@ -2425,48 +2678,48 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Changes to Service? Kas salvestada teenistusse tehtud muudatused? - + Your service is unsaved, do you want to save those changes before creating a new one? See teenistus pole salvestatud, kas tahad selle uue avamist salvestada? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? See teenistus pole salvestatud, kas tahad enne uue avamist muudatused salvestada? - + Error Viga - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it Seda elementi pole võimalik näidata ekraanil, kuna puudub seda käsitsev programm @@ -2515,72 +2768,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Ekraan - + Preview Eelvaade - - Move to first - Liikumine esimesele - - - + Move to previous Eelmisele liikumine - + Move to next Liikumine järgmisele - - Move to last - Liikumine viimasele - - - + Hide - + Move to live Tõsta ekraanile - + Edit and re-preview Song Muuda ja kuva laulu eelvaade uuesti - + Start continuous loop Katkematu korduse alustamine - + Stop continuous loop Katkematu korduse lõpetamine - + s s - + Delay between slides in seconds Viivitus slaidide vahel sekundites - + Start playing media Meediaesituse alustamine @@ -2590,10 +2833,23 @@ The content encoding is not UTF-8. Liikumine salmile + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Uus kujundus @@ -2663,7 +2919,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2688,7 +2944,7 @@ The content encoding is not UTF-8. - + Error Viga @@ -2748,23 +3004,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. See fail ei ole sobilik kujundus. - + Theme Exists Kujundus on juba olemas - + A theme with this name already exists. Would you like to overwrite it? @@ -2820,55 +3076,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + + + + + Presentations + + PresentationPlugin.MediaItem - + Present using: - - Presentation - - - - + Select Presentation(s) - + Automatic - + A presentation with that filename already exists. - + You must select an item to delete. - + This type of presentation is not supported - + File Exists - + Unsupported File @@ -2899,10 +3240,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + + RemotePlugin.RemoteTab @@ -2930,45 +3281,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + + SongUsagePlugin.SongUsageDeleteForm @@ -3019,20 +3380,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + + + + + Songs + + SongsPlugin.AuthorsForm @@ -3080,250 +3531,255 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Lauluredaktor - + &Title: - + &Lyrics: - + &Add - + &Edit &Muuda - + Ed&it All - + &Delete &Kustuta - + Title && Lyrics Pealkiri && laulusõnad - + Authors Autorid - + &Add to Song &Lisa laulule - + &Remove &Eemalda - + Topic Teema - + A&dd to Song L&isa laulule - + R&emove &Eemalda - + Song Book Laulik - + Theme Kujundus - + Copyright Information Autoriõiguse andmed - + Comments Kommentaarid - + Theme, Copyright Info && Comments Kujundus, autoriõigus && kommentaarid - + Add Author - + This author does not exist, do you want to add them? - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + Add Book - + This song book does not exist, do you want to add it? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + New &Theme - + © - + Save && Preview - + Error Viga - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + &Manage Authors, Topics, Song Books - + Authors, Topics && Song Book - + This author is already in the list. - + This topic is already in the list. - + Alt&ernate title: - + &Verse order: - + CCLI number: + + + Song No.: + + SongsPlugin.EditVerseForm - + Edit Verse - + &Verse type: - + &Insert @@ -3331,315 +3787,315 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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: - + OpenLyrics - + OpenSong - + Add Files... - + Remove File(s) - + Filename: - + Browse... - + Importing - + Please wait while your songs are imported. - + Ready. - + %p% - + Starting import... - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + OpenLP 2.0 - + openlp.org 1.x - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation + + + Select CCLI Files + + SongsPlugin.MediaItem - - Song - - - - + Song Maintenance - + Search: - + Type: Liik: - + Clear - + Search - + Titles - + Lyrics - + Authors - + CCLI Licence: - + Maintain the lists of authors, topics and books - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? @@ -3675,12 +4131,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3688,12 +4144,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. @@ -3731,47 +4187,47 @@ The content encoding is not UTF-8. &Kustuta - + Delete Author - + Delete Topic - + Delete Book - + Error Viga - + Are you sure you want to delete the selected author? - + No author selected! - + Are you sure you want to delete the selected topic? - + No topic selected! - + Are you sure you want to delete the selected book? @@ -3781,67 +4237,67 @@ The content encoding is not UTF-8. - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + This author cannot be deleted, they are currently assigned to at least one song. - + This topic cannot be deleted, it is currently assigned to at least one song. - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! diff --git a/resources/i18n/openlp_hu.ts b/resources/i18n/openlp_hu.ts index ba662fc28..09cbf481e 100644 --- a/resources/i18n/openlp_hu.ts +++ b/resources/i18n/openlp_hu.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert &Figyelmeztetés - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Figyelmeztetések + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Biblia - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + Egyenes &adásba + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Biblia + + + + Bibles + Bibliák + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Biblia - - - + Quick Gyors - + Advanced Haladó - + Version: Verzió: - + Dual: Második: - + Search type: - + Find: Keresés: - + Search Keresés - + Results: Eredmények: - + Book: Könyv: - + Chapter: Fejezet: - + Verse: Vers: - + From: Innentől: - + To: Idáig: - + Verse Search Vers keresése - + Text Search Szöveg keresése - + Clear - + Keep Megtartása - + No Book Found Nincs ilyen könyv - + No matching book could be found in this Bible. Nem található ilyen könyv ebben a Bibliában. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Egyedi diák szerkesztése - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Új hozzáadása - + Add a new slide at bottom. - + Edit Szerkesztés - + Edit the selected slide. - + Edit All Összes szerkesztése - + Edit all the slides at once. - + Save Mentés - + Save the slide currently being edited. - + Delete Törlés - + Delete the selected slide. - + Clear - + Clear edit area Szerkesztő terület törlése - + Split Slide Dia kettéválasztása - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - Egyedi - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + Egyenes &adásba + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + Egyedi + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + Egyenes &adásba + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Kép + + + + Images + Képek + ImagePlugin.MediaItem - - Image - Kép - - - + Select Image(s) Kép(ek) kiválasztása - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Kép(ek) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + Egyenes &adásba + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Média + MediaPlugin.MediaItem - - Media - Média - - - + Select Media Média kiválasztása - + Replace Live Background - + Replace Background - + + Media + Média + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1334,317 +1647,297 @@ A GNU General Public License nem engedi meg, hogy a program része legyen szelle OpenLP.AmendThemeForm - + Theme Maintenance Témák kezelése - + Theme &name: - - &Visibility: - - - - - Opaque - Átlátszatlan - - - - Transparent - Átlátszó - - - + Type: Típus: - + Solid Color Homogén szín - + Gradient Színátmenet - + Image Kép - + Image: Kép: - + Gradient: - + Horizontal Vízszintes - + Vertical Függőleges - + Circular Körkörös - + &Background - + Main Font Alap betűkészlet - + Font: Betűkészlet: - + Color: - + Size: Méret: - + pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normál - + Bold Félkövér - + Italics Dőlt - + Bold/Italics Félkövér dőlt - + Style: - + Display Location Hely megjelenítése - + Use default location - + X position: - + Y position: - + Width: Szélesség: - + Height: Magasság: - + px - + &Main Font - + Footer Font Lábjegyzet betűkészlete - + &Footer Font - + Outline Körvonal - + Outline size: - + Outline color: - + Show outline: - + Shadow Árnyék - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Igazítás - + Horizontal align: - + Left Balra zárt - + Right Jobbra zárt - + Center Középre igazított - + Vertical align: - + Top - + Middle Középre - + Bottom - + Slide Transition Diaátmenet - + Transition active - + &Other Options - + Preview Előnézet - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1793,7 +2086,7 @@ A GNU General Public License nem engedi meg, hogy a program része legyen szelle OpenLP.MainWindow - + OpenLP 2.0 @@ -1803,404 +2096,404 @@ A GNU General Public License nem engedi meg, hogy a program része legyen szelle Magyar - + &File &Fájl - + &Import &Importálás - + &Export &Exportálás - + &View &Nézet - + M&ode &Mód - + &Tools &Eszközök - + &Settings &Beállítások - + &Language &Nyelv - + &Help &Súgó - + Media Manager Médiakezelő - + Service Manager Szolgálatkezelő - + Theme Manager Témakezelő - + &New &Új - + New Service Új szolgálat - + Create a new service. - + Ctrl+N - + &Open &Megnyitás - + Open Service Szolgálat megnyitása - + Open an existing service. - + Ctrl+O - + &Save - + Save Service Szolgálat mentése - + Save the current service to disk. - + Ctrl+S - + Save &As... Mentés má&sként... - + Save Service As Szolgálat mentése másként - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Kilépés - + Quit OpenLP OpenLP bezárása - + Alt+F4 - + &Theme &Téma - + &Configure OpenLP... - + &Media Manager &Médiakezelő - + Toggle Media Manager Médiakezelő átváltása - + Toggle the visibility of the media manager. - + F8 - + &Theme Manager &Témakezelő - + Toggle Theme Manager Témakezelő átváltása - + Toggle the visibility of the theme manager. - + F10 - + &Service Manager &Szolgálatkezelő - + Toggle Service Manager Szolgálatkezelő átváltása - + Toggle the visibility of the service manager. - + F9 - + &Preview Panel &Előnézet panel - + Toggle Preview Panel Előnézet panel átváltása - + Toggle the visibility of the preview panel. - + F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 - + &Plugin List &Bővítménylista - + List the Plugins Bővítmények listája - + Alt+F7 - + &User Guide &Felhasználói kézikönyv - + &About &Névjegy - + More information about OpenLP Több információ az OpenLP-ről - + Ctrl+F1 - + &Online Help &Online súgó - + &Web Site &Weboldal - + &Auto Detect &Automatikus felismerés - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... &Eszköz hozzáadása... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Egyenes adás - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated OpenLP verziófrissítés - + OpenLP Main Display Blanked Sötét OpenLP fő képernyő - + The Main Display has been blanked out A fő képernyő el lett sötétítve - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2208,157 +2501,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected Nincs kiválasztott elem - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Kiválasztott elem törlése - - - + Preview %s - - Preview the selected item - A kiválasztott elem előnézete - - - - Send the selected item live - A kiválasztott elem egyenes adásba küldése - - - + Add %s to Service - - Add the selected item(s) to the service - A kiválasztott elem(ek) hozzáadása a szolgálathoz - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Egyenes &adásba - + &Add to Service &Hozzáadás a szolgálathoz - + &Add to selected Service Item &Hozzáadás a kiválasztott szolgálat elemhez - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Ki kell választani egy vagy több elemet. - + No items selected Nincs kiválasztott elem - + You must select one or more items Ki kell választani egy vagy több elemet - + No Service Item Selected Nincs kiválasztott szolgálat elem - + You must select an existing service item to add to. Ki kell választani egy szolgálati elemet, amihez hozzá szeretné adni. - + Invalid Service Item Érvénytelen szolgálat elem - + You must select a %s service item. @@ -2457,7 +2710,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Új szolgálat létrehozása - + Open Service Szolgálat megnyitása @@ -2467,7 +2720,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Egy meglévő szolgálat betöltése - + Save Service Szolgálat mentése @@ -2577,48 +2830,48 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat létrehozná? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat megnyitná? - + Error Hiba - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler Hiányzó képernyő kezelő - + Your item cannot be displayed as there is no handler to display it Az elemet nem lehet megjeleníteni, mert nincs kezelő, amely megjelenítené @@ -2642,72 +2895,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Egyenes adás - + Preview Előnézet - - Move to first - Mozgatás az elsőre - - - + Move to previous Mozgatás az előzőre - + Move to next Mozgatás a következőre - - Move to last - Mozgatás az utolsóra - - - + Hide - + Move to live Mozgatás az egyenes adásban lévőre - + Edit and re-preview Song Dal szerkesztése, majd újra az előnézet megnyitása - + Start continuous loop Folyamatos vetítés indítása - + Stop continuous loop Folyamatos vetítés leállítása - + s mp - + Delay between slides in seconds Diák közötti késleltetés másodpercben - + Start playing media Médialejátszás indítása @@ -2717,10 +2960,23 @@ The content encoding is not UTF-8. Ugrás versszakra + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Új téma @@ -2790,7 +3046,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2815,7 +3071,7 @@ The content encoding is not UTF-8. - + Error Hiba @@ -2875,23 +3131,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. Nem érvényes témafájl. - + Theme Exists A téma már létezik - + A theme with this name already exists. Would you like to overwrite it? @@ -2947,55 +3203,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + Egyenes &adásba + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Bemutató + + + + Presentations + Bemutatók + PresentationPlugin.MediaItem - - Presentation - Bemutató - - - + Select Presentation(s) Bemutató(k) kiválasztása - + Automatic Automatikus - + Present using: Bemutató ezzel: - + File Exists - + A presentation with that filename already exists. Ilyen fájlnéven már létezik egy bemutató. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -3026,10 +3367,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Távvezérlés + RemotePlugin.RemoteTab @@ -3057,45 +3408,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Dalok + SongUsagePlugin.SongUsageDeleteForm @@ -3146,20 +3507,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Dal - + Import songs using the import wizard. Dalok importálása az importálás tündérrel. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + Egyenes &adásba + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Dal + + + + Songs + Dalok + SongsPlugin.AuthorsForm @@ -3207,232 +3658,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Dalszerkesztő - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Szerkesztés - + Ed&it All - + &Delete &Törlés - + Title && Lyrics Cím és dalszöveg - + Authors Szerzők - + &Add to Song &Hozzáadás dalhoz - + &Remove &Eltávolítás - + &Manage Authors, Topics, Song Books - + Topic Témakör - + A&dd to Song &Hozzáadás dalhoz - + R&emove &Eltávolítás - + Song Book Daloskönyv - - - Authors, Topics && Song Book - - - - - Theme - Téma - - New &Theme + Song No.: - Copyright Information - Szerzői jogi információ - - - - © + Authors, Topics && Song Book + Theme + Téma + + + + New &Theme + + + + + Copyright Information + Szerzői jogi információ + + + + © + + + + CCLI number: - + Comments Megjegyzések - + Theme, Copyright Info && Comments Téma, szerzői jogi infók és megjegyzések - + Save && Preview Mentés és előnézet - + Add Author - + This author does not exist, do you want to add them? - + Error Hiba - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3440,17 +3896,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Versszak szerkesztése - + &Verse type: - + &Insert @@ -3458,232 +3914,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected Nincsenek kijelölt OpenLyrics fájlok - + You need to add at least one OpenLyrics song file to import from. Meg kell adni legalább egy OpenLyrics dal fájlt az importáláshoz. - + No OpenSong Files Selected Nincsenek kijelölt OpenSong fájlok - + You need to add at least one OpenSong song file to import from. Meg kell adni legalább egy OpenSong dal fájlt az importáláshoz. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected Nincsenek kijelölt CCLI fájlok - + You need to add at least one CCLI file to import from. Meg kell adni legalább egy CCLI fájlt az importáláshoz. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Importálás indítása... - + Song Import Wizard Dalimportáló tündér - + Welcome to the Song Import Wizard Üdvözlet a dalimportáló tündérben - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. A tündérrel különféle formátumú dalokat lehet importálni. Az alább található Tovább gombra való kattintással indítható a folyamat első lépése a formátum kiválasztásával. - + Select Import Source Válassza ki az importálandó forrást - + Select the import format, and where to import from. Válassza ki a importálandó forrást és a helyet, ahonnan importálja. - + Format: Formátum: - + OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: Fájlnév: - + Browse... Tallózás... - + Add Files... Fájlok hozzáadása... - + Remove File(s) Fájlok törlése - + Importing Importálás - + Please wait while your songs are imported. Kérem, várjon, míg a dalok importálás alatt állnak. - + Ready. Kész. - + %p% @@ -3691,82 +4152,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Dal - - - + Song Maintenance Dalok kezelése - + Maintain the lists of authors, topics and books A szerzők, témakörök, könyvek listájának kezelése - + Search: Keresés: - + Type: Típus: - + Clear - + Search Keresés - + Titles Címek - + Lyrics Dalszöveg - + Authors Szerzők - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI licenc: @@ -3802,12 +4258,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3815,12 +4271,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Az importálás befejeződött. - + Your song import failed. @@ -3863,112 +4319,112 @@ The content encoding is not UTF-8. &Törlés - + Error Hiba - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author Szerző törlése - + Are you sure you want to delete the selected author? A kiválasztott szerző biztosan törölhető? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! Nincs kiválasztott szerző! - + Delete Topic Témakör törlése - + Are you sure you want to delete the selected topic? A kiválasztott témakör biztosan törölhető? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! Nincs kiválasztott témakör! - + Delete Book Könyv törlése - + Are you sure you want to delete the selected book? A kiválasztott könyv biztosan törölhető? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! Nincs kiválasztott könyv! diff --git a/resources/i18n/openlp_ko.ts b/resources/i18n/openlp_ko.ts index a74275115..93accb132 100644 --- a/resources/i18n/openlp_ko.ts +++ b/resources/i18n/openlp_ko.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + 성경 + + + + Bibles + + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - 성경 - - - + Quick 즉시 - + Advanced - + Version: - + Dual: - + Search type: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + No matching book could be found in this Bible. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + + + + + Images + + ImagePlugin.MediaItem - - Image - - - - + Select Image(s) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + + MediaPlugin.MediaItem - - Media - - - - + Select Media - + Replace Live Background - + Replace Background - + + Media + + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance - + Theme &name: - - &Visibility: - - - - - Opaque - - - - - Transparent - - - - + Type: - + Solid Color - + Gradient - + Image - + Image: - + Gradient: - + Horizontal - + Vertical - + Circular - + &Background - + Main Font - + Font: - + Color: - + Size: - + pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal - + Bold - + Italics - + Bold/Italics - + Style: - + Display Location - + Use default location - + X position: - + Y position: - + Width: - + Height: - + px - + &Main Font - + Footer Font - + &Footer Font - + 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 - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop - + &File - + &Import - + &Export - + &View - + M&ode - + &Tools - + &Settings - + &Language - + &Help - + Media Manager - + 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. - + Ctrl+Shift+S - + E&xit - + Quit OpenLP - + Alt+F4 - + &Theme - + &Configure OpenLP... - + &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 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 - + &Plugin List - + List the Plugins - + Alt+F7 - + &User Guide - + &About - + More information about OpenLP - + Ctrl+F1 - + &Online Help - + &Web Site - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated - + OpenLP Main Display Blanked - + The Main Display has been blanked out - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - - - - + Preview %s - - Preview the selected item - - - - - Send the selected item live - - - - + Add %s to Service - - Add the selected item(s) to the service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Open Service @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Service @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live - + Preview - - Move to first - - - - + Move to previous - + Move to next - - Move to last - - - - + Hide - + Move to live - + Edit and re-preview Song - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + + + + + Presentations + + PresentationPlugin.MediaItem - - Presentation - - - - + Select Presentation(s) - + Automatic - + Present using: - + File Exists - + A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + + + + + Songs + + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - - - Authors, Topics && Song Book - - - - - Theme - - - New &Theme + Song No.: - Copyright Information - - - - - © + Authors, Topics && Song Book - CCLI number: + Theme - Comments + New &Theme + Copyright Information + + + + + © + + + + + CCLI number: + + + + + Comments + + + + Theme, Copyright Info && Comments - + Save && Preview - + Add Author - + This author does not exist, do you want to add them? - + Error - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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: - + OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing - + Please wait while your songs are imported. - + Ready. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - - - - + Song Maintenance - + Maintain the lists of authors, topics and books - + Search: - + Type: - + Clear - + Search - + Titles - + Lyrics - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author - + Are you sure you want to delete the selected author? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! - + Delete Topic - + Are you sure you want to delete the selected topic? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! - + Delete Book - + Are you sure you want to delete the selected book? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! diff --git a/resources/i18n/openlp_nb.ts b/resources/i18n/openlp_nb.ts index 2bb0ae95e..80ff69b28 100644 --- a/resources/i18n/openlp_nb.ts +++ b/resources/i18n/openlp_nb.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bibel + + + + Bibles + Bibler + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bibel - - - + Quick Rask - + Advanced Avansert - + Version: - + Dual: Dobbel: - + Search type: - + Find: Finn: - + Search Søk - + Results: Resultat: - + Book: Bok: - + Chapter: Kapittel - + Verse: - + From: Fra: - + To: Til: - + Verse Search Søk i vers - + Text Search Tekstsøk - + Clear - + Keep Behold - + No Book Found Ingen bøker funnet - + No matching book could be found in this Bible. Finner ingen matchende bøker i denne Bibelen. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Rediger egendefinerte lysbilder - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Legg til Ny - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save Lagre - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + + + + + Images + + ImagePlugin.MediaItem - - Image - - - - + Select Image(s) Velg bilde(r) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Bilde(r) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + + MediaPlugin.MediaItem - - Media - - - - + Select Media Velg media - + Replace Live Background - + Replace Background - + + Media + + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Vedlikehold av tema - + Theme &name: - - &Visibility: - - - - - Opaque - Gjennomsiktighet - - - - Transparent - Gjennomsiktig - - - + Type: Type: - + Solid Color Ensfarget - + Gradient - + Image - + Image: - + Gradient: - + Horizontal - + Vertical Vertikal - + Circular - + &Background - + Main Font Hovedskrifttype - + Font: - + Color: - + Size: Størrelse: - + pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normal - + Bold Fet - + Italics Kursiv - + Bold/Italics - + Style: - + Display Location - + Use default location - + X position: - + Y position: - + Width: Bredde: - + Height: Høyde: - + px - + &Main Font - + Footer Font Skrifttype bunntekst - + &Footer Font - + Outline Omriss - + Outline size: - + Outline color: - + Show outline: - + Shadow Skygge - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Justering - + Horizontal align: - + Left - + Right - + Center Sentrert - + Vertical align: - + Top Topp - + Middle Midtstilt - + Bottom - + Slide Transition Lysbildeovergang - + Transition active - + &Other Options - + Preview - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop Norsk - + &File &Fil - + &Import &Import - + &Export &Eksporter - + &View &Vis - + M&ode - + &Tools - + &Settings &Innstillinger - + &Language &Språk - + &Help &Hjelp - + Media Manager Innholdselementer - + Service Manager - + Theme Manager - + &New &Ny - + New Service - + Create a new service. - + Ctrl+N Ctrl+N - + &Open &Åpne - + Open Service Åpne møteplan - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Lagre - + Save Service - + Save the current service to disk. - + Ctrl+S Ctrl+S - + Save &As... - + Save Service As - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Avslutt - + Quit OpenLP Avslutt OpenLP - + Alt+F4 Alt+F4 - + &Theme &Tema - + &Configure OpenLP... - + &Media Manager - + Toggle Media Manager - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager - + Toggle Theme Manager Åpne tema-behandler - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager - + Toggle Service Manager Vis møteplanlegger - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Forhåndsvisningspanel - + Toggle Preview Panel Vis forhåndsvisningspanel - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List &Tillegsliste - + List the Plugins Hent liste over tillegg - + Alt+F7 ALT+F7 - + &User Guide &Brukerveiledning - + &About &Om - + More information about OpenLP - + Ctrl+F1 Ctrl+F1 - + &Online Help - + &Web Site &Internett side - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... Legg til & Verktøy... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Direkte - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated OpenLP versjonen har blitt oppdatert - + OpenLP Main Display Blanked - + The Main Display has been blanked out - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - - - - + Preview %s - - Preview the selected item - - - - - Send the selected item live - - - - + Add %s to Service - - Add the selected item(s) to the service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service &Legg til i møteplan - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Opprett ny møteplan - + Open Service Åpne møteplan @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo - + Save Service @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo &Bytt objekttema - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) OpenLP møteplan (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Direkte - + Preview - - Move to first - - - - + Move to previous Flytt til forrige - + Move to next - - Move to last - Flytt til sist - - - + Hide - + Move to live - + Edit and re-preview Song Endre og forhåndsvis sang - + Start continuous loop Start kontinuerlig løkke - + Stop continuous loop - + s - + Delay between slides in seconds Forsinkelse mellom lysbilder i sekund - + Start playing media Start avspilling av media @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. Gå til vers + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. Filen er ikke et gyldig tema. - + Theme Exists Temaet eksisterer - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Presentasjon + + + + Presentations + + PresentationPlugin.MediaItem - - Presentation - Presentasjon - - - + Select Presentation(s) Velg presentasjon(er) - + Automatic Automatisk - + Present using: Presenter ved hjelp av: - + File Exists - + A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Fjernmeldinger + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Sanger + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Sang - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Sang + + + + Songs + Sanger + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Sangredigeringsverktøy - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Rediger - + Ed&it All - + &Delete - + Title && Lyrics Tittel && Sangtekst - + Authors - + &Add to Song - + &Remove &Fjern - + &Manage Authors, Topics, Song Books - + Topic Emne - + A&dd to Song - + R&emove &Fjern - + Song Book - - - Authors, Topics && Song Book - - - - - Theme - Tema - - New &Theme + Song No.: - Copyright Information - Copyright-informasjon - - - - © + Authors, Topics && Song Book - CCLI number: - + Theme + Tema - Comments + New &Theme + Copyright Information + Copyright-informasjon + + + + © + + + + + CCLI number: + + + + + Comments + + + + Theme, Copyright Info && Comments - + Save && Preview - + Add Author - + This author does not exist, do you want to add them? - + Error - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Rediger Vers - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Velg importeringskilde - + Select the import format, and where to import from. - + Format: Format: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing - + Please wait while your songs are imported. - + Ready. Klar. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Sang - - - + Song Maintenance - + Maintain the lists of authors, topics and books Rediger liste over forfattere, emner og bøker. - + Search: Søk: - + Type: Type: - + Clear - + Search Søk - + Titles Titler - + Lyrics - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI lisens: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Import fullført. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author - + Are you sure you want to delete the selected author? Er du sikker på at du vil slette den valgte forfatteren? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! Ingen forfatter er valgt! - + Delete Topic Slett emne - + Are you sure you want to delete the selected topic? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! - + Delete Book Slett bok - + Are you sure you want to delete the selected book? Er du sikker på at du vil slette den merkede boken? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! Ingen bok er valgt! diff --git a/resources/i18n/openlp_pt_BR.ts b/resources/i18n/openlp_pt_BR.ts index f0481854f..c5a331423 100644 --- a/resources/i18n/openlp_pt_BR.ts +++ b/resources/i18n/openlp_pt_BR.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert &Alerta - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Alertas + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Bíblia - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />Este plugin permite exibir versículos bíblicos de diferentes fontes durante o culto. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + &Mostrar Ao Vivo + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bíblia + + + + Bibles + Bíblias + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bíblia - - - + Quick Rápido - + Advanced Avançado - + Version: Versão: - + Dual: Duplo: - + Search type: Tipo de busca: - + Find: Buscar: - + Search Buscar - + Results: Resultados: - + Book: Livro: - + Chapter: Capítulo: - + Verse: Versículo: - + From: De: - + To: Para: - + Verse Search Busca de Versículos - + Text Search Busca de Texto - + Clear Limpar - + Keep Manter - + No Book Found Nenhum Livro Encontrado - + No matching book could be found in this Bible. Nenhum livro foi encontrado nesta Bíblia - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Editar Slides Customizados - + Move slide up one position. - + Move slide down one position. Mover slide uma posição para baixo. - + &Title: &Título: - + Add New Adicionar Novo - + Add a new slide at bottom. - + Edit Editar - + Edit the selected slide. Editar o slide selecionado. - + Edit All Editar Todos - + Edit all the slides at once. - + Save Salvar - + Save the slide currently being edited. - + Delete Deletar - + Delete the selected slide. - + Clear Limpar - + Clear edit area Limpar área de edição - + Split Slide - + Split a slide into two by inserting a slide splitter. Dividir um slide em dois, inserindo um divisor de slides. - + The&me: - + &Credits: &Créditos: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - Customizado - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + &Mostrar Ao Vivo + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + Customizado + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + &Mostrar Ao Vivo + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Imagem + + + + Images + Imagens + ImagePlugin.MediaItem - - Image - Imagem - - - + Select Image(s) Selecionar Imagem(s) - + All Files Todos os Arquivos - + Replace Live Background - + Replace Background Substituir Plano de Fundo - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Imagem(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + &Mostrar Ao Vivo + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Mídia + MediaPlugin.MediaItem - - Media - Mídia - - - + Select Media Selecionar Mídia - + Replace Live Background - + Replace Background Substituir Plano de Fundo - + + Media + Mídia + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1238,317 +1551,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Manutenção do Tema - + Theme &name: &Nome do Tema: - - &Visibility: - - - - - Opaque - Opaco - - - - Transparent - Transparente - - - + Type: Tipo: - + Solid Color Cor Sólida - + Gradient Gradiente - + Image Imagem - + Image: Imagem: - + Gradient: - + Horizontal Horizontal - + Vertical Vertical - + Circular Circular - + &Background - + Main Font Fonte Principal - + Font: Fonte: - + Color: - + Size: Tamanho: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normal - + Bold Negrito - + Italics Itálico - + Bold/Italics Negrito/Itálico - + Style: Estilo: - + Display Location Local de Exibição - + Use default location - + X position: - + Y position: - + Width: Largura: - + Height: Altura: - + px px - + &Main Font - + Footer Font Fonte do Rodapé - + &Footer Font Fonte do &Rodapé - + Outline Esboço - + Outline size: - + Outline color: - + Show outline: - + Shadow Sombra - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Alinhamento - + Horizontal align: - + Left Esquerda - + Right Direita - + Center Centralizar - + Vertical align: - + Top Topo - + Middle Meio - + Bottom - + Slide Transition Transição do Slide - + Transition active - + &Other Options &Outras Opções - + Preview - + All Files Todos os Arquivos - + Select Image Selecionar Imagem - + First color: - + Second color: - + Slide height is %s rows. @@ -1697,7 +1990,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1707,406 +2000,404 @@ This General Public License does not permit incorporating your program into prop Inglês - + &File &Arquivo - + &Import &Importar - + &Export &Exportar - + &View &Visualizar - + M&ode M&odo - + &Tools &Ferramentas - + &Settings &Configurações - + &Language &Idioma - + &Help &Ajuda - + Media Manager Gerenciador de Mídia - + Service Manager Gerenciador de Culto - + Theme Manager Gerenciador de Temas - + &New &Novo - + New Service Novo Culto - + Create a new service. - + Ctrl+N Ctrl+N - + &Open &Abrir - + Open Service - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Salvar - + Save Service Salvar Culto - + Save the current service to disk. - + Ctrl+S Ctrl+S - + Save &As... Salvar &Como... - + Save Service As Salvar Culto Como - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit S&air - + Quit OpenLP Fechar o OpenLP - + Alt+F4 Alt+F4 - + &Theme &Tema - + &Configure OpenLP... &Configurar o OpenLP... - + &Media Manager &Gerenciador de Mídia - + Toggle Media Manager Alternar Gerenciador de Mídia - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager &Gerenciador de Temas - + Toggle Theme Manager Alternar para Gerenciamento de Temas - + Toggle the visibility of the theme manager. Alternar a visibilidade do Gerenciador de Temas. - + F10 F10 - + &Service Manager &Gerenciador de Culto - + Toggle Service Manager Alternar para o Gerenciador de Cultos - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Painel de Pré-Visualização - + Toggle Preview Panel Alternar para Painel de Pré-Visualização - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List &Lista de Plugin - + List the Plugins Listar os Plugins - + Alt+F7 Alt+F7 - + &User Guide &Guia do Usuário - + &About &Sobre - + More information about OpenLP Mais informações sobre o OpenLP - + Ctrl+F1 Ctrl+F1 - + &Online Help &Ajuda Online - + &Web Site &Web Site - + &Auto Detect - + Use the system language, if available. Usar o idioma do sistema, caso disponível. - + Set the interface language to %s Definir o idioma da interface como %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Ao Vivo - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. - A versão %s do OpenLP já está disponível para download (você está usando a versão %s). - -Você pode baixar a versão mais recente em <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. + - + OpenLP Version Updated Versão do OpenLP Atualizada - + OpenLP Main Display Blanked Tela Principal do OpenLP em Branco - + The Main Display has been blanked out A Tela Principal foi apagada - + Save Changes to Service? Salvar Mudanças no Culto? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s Tema padrão: %s @@ -2114,157 +2405,117 @@ Você pode baixar a versão mais recente em <a href="http://openlp.org/& OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - Importar um %s - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - Adicionar um novo %s - - - + Edit %s - - Edit the selected %s - Editar o %s selecionado - - - + Delete %s - - Delete the selected item - Deletar o item selecionado - - - + Preview %s - - Preview the selected item - Pré-Visualizar o item selecionado - - - - Send the selected item live - Enviar o item selecionado para o ao vivo - - - + Add %s to Service Adicionar %s ao Culto - - Add the selected item(s) to the service - Adicionar o item selecionado ao culto - - - + &Edit %s - + &Delete %s &Deletar %s - + &Preview %s - + &Show Live &Mostrar Ao Vivo - + &Add to Service &Adicionar ao Culto - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Você precisa selecionar um ou mais itens. - + No items selected - + You must select one or more items Você precisa selecionar um ou mais itens - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2363,7 +2614,7 @@ Você pode baixar a versão mais recente em <a href="http://openlp.org/& Criar um novo culto - + Open Service @@ -2373,7 +2624,7 @@ Você pode baixar a versão mais recente em <a href="http://openlp.org/& Carregar um culto existente - + Save Service Salvar Culto @@ -2483,48 +2734,48 @@ Você pode baixar a versão mais recente em <a href="http://openlp.org/& &Alterar Tema do Item - + Save Changes to Service? Salvar Mudanças no Culto? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) Arquivo de Culto do OpenLP (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Erro - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2548,72 +2799,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Ao Vivo - + Preview - - Move to first - Mover para o primeiro - - - + Move to previous Mover para o anterior - + Move to next Mover para o próximo - - Move to last - Mover para o último - - - + Hide - + Move to live Mover para ao vivo - + Edit and re-preview Song Editar e pré-visualizar Música novamente - + Start continuous loop Iniciar repetição contínua - + Stop continuous loop Parar repetição contínua - + s s - + Delay between slides in seconds Intervalo entre slides em segundos - + Start playing media Iniciar a reprodução de mídia @@ -2623,10 +2864,23 @@ The content encoding is not UTF-8. Ir ao Versículo + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Novo Tema @@ -2696,7 +2950,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2721,7 +2975,7 @@ The content encoding is not UTF-8. - + Error Erro @@ -2781,24 +3035,24 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. O arquivo não é um tema válido. A codificação do conteúdo não é UTF-8. - + File is not a valid theme. O arquivo não é um tema válido. - + Theme Exists Tema Existe - + A theme with this name already exists. Would you like to overwrite it? Já existe um tema com este nome. Deseja sobreescrevê-lo? @@ -2854,55 +3108,140 @@ A codificação do conteúdo não é UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + &Mostrar Ao Vivo + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Apresentação + + + + Presentations + Apresentações + PresentationPlugin.MediaItem - - Presentation - Apresentação - - - + Select Presentation(s) Selecionar Apresentação(ões) - + Automatic - + Present using: Apresentar usando: - + File Exists - + A presentation with that filename already exists. Uma apresentação com este nome já existe. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2933,10 +3272,20 @@ A codificação do conteúdo não é UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Remoto + RemotePlugin.RemoteTab @@ -2964,45 +3313,55 @@ A codificação do conteúdo não é UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Músicas + SongUsagePlugin.SongUsageDeleteForm @@ -3053,20 +3412,110 @@ A codificação do conteúdo não é UTF-8. SongsPlugin - + &Song &Música - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + &Mostrar Ao Vivo + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Música + + + + Songs + Músicas + SongsPlugin.AuthorsForm @@ -3114,232 +3563,237 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.EditSongForm - + Song Editor Editor de Músicas - + &Title: &Título: - + Alt&ernate title: Título &Alternativo: - + &Lyrics: - + &Verse order: Ordem das &estrofes: - + &Add %Adicionar - + &Edit &Editar - + Ed&it All - + &Delete &Deletar - + Title && Lyrics Título && Letras - + Authors Autores - + &Add to Song &Adicionar à Música - + &Remove &Remover - + &Manage Authors, Topics, Song Books - + Topic Tópico - + A&dd to Song A&dicionar uma Música - + R&emove R&emover - + Song Book Livro de Músicas - - - Authors, Topics && Song Book - - - - - Theme - Tema - - New &Theme + Song No.: - Copyright Information - Informação de Direitos Autorais - - - - © + Authors, Topics && Song Book + Theme + Tema + + + + New &Theme + + + + + Copyright Information + Informação de Direitos Autorais + + + + © + + + + CCLI number: - + Comments Comentários - + Theme, Copyright Info && Comments Tema, Direitos Autorais && Comentários - + Save && Preview Salvar && Pré-Visualizar - + Add Author Adicionar Autor - + This author does not exist, do you want to add them? Este autor não existe, deseja adicioná-lo? - + Error Erro - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? Este tópico não existe, deseja adicioná-lo? - + This topic is already in the list. Este tópico já está na lista. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. Não há nenhum tópico válido selecionado. Selecione um tópico da lista, ou digite um novo tópico e clique em "Adicionar Tópico à Música" para adicionar o novo tópico. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? Você não adicionou nenhum autor a esta música. Deseja adicionar um agora? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? Este hinário não existe, deseja adicioná-lo? @@ -3347,17 +3801,17 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Editar Versículo - + &Verse type: Tipo de &Versículo: - + &Insert @@ -3365,232 +3819,237 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. Você precisa adicionar ao menos um arquivo CCLI para importação. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Iniciando importação... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Selecionar Origem da Importação - + Select the import format, and where to import from. Selecione o formato e de onde será a importação - + Format: Formato: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing Importando - + Please wait while your songs are imported. Por favor aguarde enquanto as músicas são importadas. - + Ready. Pronto. - + %p% @@ -3598,82 +4057,77 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.MediaItem - - Song - Música - - - + Song Maintenance Manutenção de Músicas - + Maintain the lists of authors, topics and books Gerenciar as listas de autores, tópicos e livros - + Search: Buscar: - + Type: Tipo: - + Clear Limpar - + Search Buscar - + Titles Títulos - + Lyrics Letras - + Authors Autores - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: Licença CCLI: @@ -3709,12 +4163,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3722,12 +4176,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImportForm - + Finished import. Importação Finalizada. - + Your song import failed. @@ -3770,112 +4224,112 @@ A codificação do conteúdo não é UTF-8. &Deletar - + Error Erro - + Could not add your author. - + This author already exists. - + Could not add your topic. Não foi possível adicionar o seu tópico. - + This topic already exists. - + Could not add your book. Não foi possível adicionar o livro. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. Não foi possível salvar o seu autor modificado, porque ele já existe. - + Could not save your modified topic, because it already exists. Não foi possível salvar o tópico modificado, porque ele já existe. - + Delete Author Deletar Autor - + Are you sure you want to delete the selected author? Você tem certeza que deseja deletar o autor selecionado? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! Nenhum autor selecionado! - + Delete Topic Deletar Tópico - + Are you sure you want to delete the selected topic? Você tem certeza que deseja deletar o tópico selecionado? - + This topic cannot be deleted, it is currently assigned to at least one song. Este tópico não pode ser removido, pois está associado a pelo menos uma música. - + No topic selected! Nenhum tópico selecionado! - + Delete Book Deletar Livro - + Are you sure you want to delete the selected book? Você tem certeza que deseja deletar o livro selecionado? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! Nenhum livro selecionado! diff --git a/resources/i18n/openlp_sv.ts b/resources/i18n/openlp_sv.ts index 606e6e21a..a34589a06 100644 --- a/resources/i18n/openlp_sv.ts +++ b/resources/i18n/openlp_sv.ts @@ -3,20 +3,30 @@ AlertsPlugin - + &Alert &Alarm - + Show an alert message. - + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen + + + Alert + + + + + Alerts + Alarm + AlertsPlugin.AlertForm @@ -79,7 +89,7 @@ AlertsPlugin.AlertsManager - + Alert message created and displayed. @@ -165,15 +175,105 @@ BiblesPlugin - + &Bible &Bibel - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. + + + &Edit Bible + + + + + &Delete Bible + + + + + &Preview Bible + + + + + &Show Live + &Visa Live + + + + Import a Bible + + + + + Load a new Bible + + + + + Add a new Bible + + + + + Edit the selected Bible + + + + + Delete the selected Bible + + + + + Delete the selected Bibles + + + + + Preview the selected Bible + + + + + Preview the selected Bibles + + + + + Send the selected Bible live + + + + + Send the selected Bibles live + + + + + Add the selected Verse to the service + + + + + Add the selected Verses to the service + + + + + Bible + Bibel + + + + Bibles + Biblar + BiblesPlugin.BibleDB @@ -554,112 +654,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - - Bible - Bibel - - - + Quick Snabb - + Advanced Avancerat - + Version: Version: - + Dual: Dubbel: - + Search type: - + Find: Hitta: - + Search Sök - + Results: Resultat: - + Book: Bok: - + Chapter: Kapitel: - + Verse: Vers: - + From: Från: - + To: Till: - + Verse Search Sök vers - + Text Search Textsökning - + Clear - + Keep Behåll - + No Book Found Ingen bok hittades - + No matching book could be found in this Bible. Ingen matchande bok kunde hittas i den här Bibeln. - + etc - + Bible not fully loaded. @@ -675,7 +770,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -701,102 +796,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Redigera anpassad bild - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Lägg till ny - + Add a new slide at bottom. - + Edit Redigera - + Edit the selected slide. - + Edit All Redigera alla - + Edit all the slides at once. - + Save Spara - + Save the slide currently being edited. - + Delete Ta bort - + Delete the selected slide. - + Clear - + Clear edit area Töm redigeringsområde - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -829,73 +924,226 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - Custom - - - - + You haven't selected an item to edit. - + You haven't selected an item to delete. + + CustomsPlugin + + + &Edit Custom + + + + + &Delete Custom + + + + + &Preview Custom + + + + + &Show Live + &Visa Live + + + + Import a Custom + + + + + Load a new Custom + + + + + Add a new Custom + + + + + Edit the selected Custom + + + + + Delete the selected Custom + + + + + Preview the selected Custom + + + + + Send the selected Custom live + + + + + Add the selected Custom to the service + + + + + Custom + + + ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + + + &Edit Image + + + + + &Delete Image + + + + + &Preview Image + + + + + &Show Live + &Visa Live + + + + Import a Image + + + + + Load a new Image + + + + + Add a new Image + + + + + Edit the selected Image + + + + + Delete the selected Image + + + + + Delete the selected Images + + + + + Preview the selected Image + + + + + Preview the selected Images + + + + + Send the selected Image live + + + + + Send the selected Images live + + + + + Add the selected Image to the service + + + + + Add the selected Images to the service + + + + + Image + Bild + + + + Images + Bilder + ImagePlugin.MediaItem - - Image - Bild - - - + Select Image(s) Välj bild(er) - + All Files - + Replace Live Background - + Replace Background - + + Reset Live Background + + + + You must select an image to delete. - + Image(s) Bilder - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -903,35 +1151,100 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + &Edit Media + + + + + &Delete Media + + + + + &Preview Media + + + + + &Show Live + &Visa Live + + + + Import a Media + + + + + Load a new Media + + + + + Add a new Media + + + + + Edit the selected Media + + + + + Delete the selected Media + + + + + Preview the selected Media + + + + + Send the selected Media live + + + + + Add the selected Media to the service + + + + + Media + Media + MediaPlugin.MediaItem - - Media - Media - - - + Select Media Välj media - + Replace Live Background - + Replace Background - + + Media + Media + + + You must select a media file to delete. @@ -939,7 +1252,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1201,317 +1514,297 @@ This General Public License does not permit incorporating your program into prop OpenLP.AmendThemeForm - + Theme Maintenance Temaunderhåll - + Theme &name: - - &Visibility: - - - - - Opaque - Ogenomskinlig - - - - Transparent - Genomskinlig - - - + Type: Typ: - + Solid Color Solid Färg - + Gradient Stegvis - + Image Bild - + Image: Bild: - + Gradient: - + Horizontal Horisontellt - + Vertical Vertikal - + Circular Cirkulär - + &Background - + Main Font Huvudfont - + Font: Font: - + Color: - + Size: Storlek: - + pt pt - - Wrap indentation: - - - - + Adjust line spacing: - + Normal Normal - + Bold Fetstil - + Italics Kursiv - + Bold/Italics Fetstil/kursiv - + Style: - + Display Location Visa plats - + Use default location - + X position: - + Y position: - + Width: Bredd: - + Height: Höjd: - + px px - + &Main Font - + Footer Font Sidfot-font - + &Footer Font - + Outline Kontur - + Outline size: - + Outline color: - + Show outline: - + Shadow Skugga - + Shadow size: - + Shadow color: - + Show shadow: - + Alignment Justering - + Horizontal align: - + Left Vänster - + Right Höger - + Center Centrera - + Vertical align: - + Top Topp - + Middle Mitten - + Bottom - + Slide Transition Bildövergång - + Transition active - + &Other Options - + Preview Förhandsgranska - + All Files - + Select Image - + First color: - + Second color: - + Slide height is %s rows. @@ -1660,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - + OpenLP 2.0 OpenLP 2.0 @@ -1670,404 +1963,404 @@ This General Public License does not permit incorporating your program into prop Engelska - + &File &Fil - + &Import &Importera - + &Export &Exportera - + &View &Visa - + M&ode &Läge - + &Tools &Verktyg - + &Settings &Inställningar - + &Language &Språk - + &Help &Hjälp - + Media Manager Mediahanterare - + Service Manager Mötesplaneringshanterare - + Theme Manager Temahanterare - + &New &Ny - + New Service - + Create a new service. - + Ctrl+N Ctrl+N - + &Open &Öppna - + Open Service - + Open an existing service. - + Ctrl+O Ctrl+O - + &Save &Spara - + Save Service - + Save the current service to disk. - + Ctrl+S Ctrl+S - + Save &As... S&para som... - + Save Service As Spara mötesplanering som... - + Save the current service under a new name. - + Ctrl+Shift+S - + E&xit &Avsluta - + Quit OpenLP Stäng OpenLP - + Alt+F4 Alt+F4 - + &Theme &Tema - + &Configure OpenLP... - + &Media Manager &Mediahanterare - + Toggle Media Manager Växla mediahanterare - + Toggle the visibility of the media manager. - + F8 F8 - + &Theme Manager &Temahanterare - + Toggle Theme Manager Växla temahanteraren - + Toggle the visibility of the theme manager. - + F10 F10 - + &Service Manager &Mötesplaneringshanterare - + Toggle Service Manager Växla mötesplaneringshanterare - + Toggle the visibility of the service manager. - + F9 F9 - + &Preview Panel &Förhandsgranskning - + Toggle Preview Panel Växla förhandsgranskningspanel - + Toggle the visibility of the preview panel. - + F11 F11 - + &Live Panel - + Toggle Live Panel - + Toggle the visibility of the live panel. - + F12 F12 - + &Plugin List &Pluginlista - + List the Plugins Lista Plugin - + Alt+F7 Alt+F7 - + &User Guide &Användarguide - + &About &Om - + More information about OpenLP Mer information om OpenLP - + Ctrl+F1 Ctrl+F1 - + &Online Help &Online-hjälp - + &Web Site &Webbsida - + &Auto Detect - + Use the system language, if available. - + Set the interface language to %s - + Add &Tool... - + Add an application to the list of tools. - + &Default - + Set the view mode back to the default. - + &Setup - + Set the view mode to Setup. - + &Live &Live - + Set the view mode to Live. - + Version %s of OpenLP is now available for download (you are currently running version %s). -You can download the latest version from <a href="http://openlp.org/">http://openlp.org/</a>. +You can download the latest version from http://openlp.org/. - + OpenLP Version Updated OpenLP-version uppdaterad - + OpenLP Main Display Blanked OpenLP huvuddisplay tömd - + The Main Display has been blanked out Huvuddisplayen har rensats - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s @@ -2075,157 +2368,117 @@ You can download the latest version from <a href="http://openlp.org/&quo OpenLP.MediaManagerItem - + No Items Selected - + Import %s - - Import a %s - - - - + Load %s - - Load a new %s - - - - + New %s - - Add a new %s - - - - + Edit %s - - Edit the selected %s - - - - + Delete %s - - Delete the selected item - Ta bort det valda objektet - - - + Preview %s - - Preview the selected item - Förhandsgranska det valda objektet - - - - Send the selected item live - Skicka det valda objektet till live - - - + Add %s to Service - - Add the selected item(s) to the service - Lägg till valda objekt till planeringen - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Visa Live - + &Add to Service &Lägg till i mötesplanering - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Du måste välja ett eller flera objekt - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2324,7 +2577,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Skapa en ny mötesplanering - + Open Service @@ -2334,7 +2587,7 @@ You can download the latest version from <a href="http://openlp.org/&quo Ladda en planering - + Save Service @@ -2444,48 +2697,48 @@ You can download the latest version from <a href="http://openlp.org/&quo &Byt objektets tema - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Fel - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2509,72 +2762,62 @@ The content encoding is not UTF-8. OpenLP.SlideController - + Live Live - + Preview Förhandsgranska - - Move to first - Flytta till första - - - + Move to previous Flytta till föregående - + Move to next Flytta till nästa - - Move to last - Flytta till sist - - - + Hide - + Move to live Flytta till live - + Edit and re-preview Song Ändra och åter-förhandsgranska sång - + Start continuous loop Börja oändlig loop - + Stop continuous loop Stoppa upprepad loop - + s s - + Delay between slides in seconds Fördröjning mellan bilder, i sekunder - + Start playing media Börja spela media @@ -2584,10 +2827,23 @@ The content encoding is not UTF-8. Hoppa till vers + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + OpenLP.ThemeManager - + New Theme Nytt Tema @@ -2657,7 +2913,7 @@ The content encoding is not UTF-8. - + %s (default) @@ -2682,7 +2938,7 @@ The content encoding is not UTF-8. - + Error Fel @@ -2742,23 +2998,23 @@ The content encoding is not UTF-8. - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. Filen är inte ett giltigt tema. - + Theme Exists Temat finns - + A theme with this name already exists. Would you like to overwrite it? @@ -2814,55 +3070,140 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + &Edit Presentation + + + + + &Delete Presentation + + + + + &Preview Presentation + + + + + &Show Live + &Visa Live + + + + Import a Presentation + + + + + Load a new Presentation + + + + + Add a new Presentation + + + + + Edit the selected Presentation + + + + + Delete the selected Presentation + + + + + Delete the selected Presentations + + + + + Preview the selected Presentation + + + + + Preview the selected Presentations + + + + + Send the selected Presentation live + + + + + Send the selected Presentations live + + + + + Add the selected Presentation to the service + + + + + Add the selected Presentations to the service + + + + + Presentation + Presentation + + + + Presentations + Presentationer + PresentationPlugin.MediaItem - - Presentation - Presentation - - - + Select Presentation(s) Välj presentation(er) - + Automatic Automatisk - + Present using: Presentera genom: - + File Exists - + A presentation with that filename already exists. En presentation med det namnet finns redan. - + Unsupported File - + This type of presentation is not supported - + You must select an item to delete. @@ -2893,10 +3234,20 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + Remote + + + + + Remotes + Fjärrstyrningar + RemotePlugin.RemoteTab @@ -2924,45 +3275,55 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + SongUsage + + + + + Songs + Sånger + SongUsagePlugin.SongUsageDeleteForm @@ -3013,20 +3374,110 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Sång - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + &Edit Song + + + + + &Delete Song + + + + + &Preview Song + + + + + &Show Live + &Visa Live + + + + Import a Song + + + + + Load a new Song + + + + + Add a new Song + + + + + Edit the selected Song + + + + + Delete the selected Song + + + + + Delete the selected Songs + + + + + Preview the selected Song + + + + + Preview the selected Songs + + + + + Send the selected Song live + + + + + Send the selected Songs live + + + + + Add the selected Song to the service + + + + + Add the selected Songs to the service + + + + + Song + Sång + + + + Songs + Sånger + SongsPlugin.AuthorsForm @@ -3074,232 +3525,237 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Sångredigerare - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Redigera - + Ed&it All - + &Delete - + Title && Lyrics Titel && Sångtexter - + Authors - + &Add to Song &Lägg till i sång - + &Remove &Ta bort - + &Manage Authors, Topics, Song Books - + Topic Ämne - + A&dd to Song Lägg till i sång - + R&emove Ta &bort - + Song Book Sångbok - - - Authors, Topics && Song Book - - - - - Theme - Tema - - New &Theme + Song No.: - Copyright Information - Copyright-information - - - - © + Authors, Topics && Song Book + Theme + Tema + + + + New &Theme + + + + + Copyright Information + Copyright-information + + + + © + + + + CCLI number: - + Comments Kommentarer - + Theme, Copyright Info && Comments Tema, copyright-info && kommentarer - + Save && Preview Spara && förhandsgranska - + Add Author - + This author does not exist, do you want to add them? - + Error Fel - + This author is already in the list. - + No Author Selected - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Add Topic - + This topic does not exist, do you want to add it? - + This topic is already in the list. - + No Topic Selected - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3307,17 +3763,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Redigera vers - + &Verse type: - + &Insert @@ -3325,232 +3781,237 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + + Select CCLI Files + + + + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Påbörjar import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Välj importkälla - + Select the import format, and where to import from. Välj format för import, och plats att importera från. - + Format: Format: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + Add Files... - + Remove File(s) - + Importing Importerar - + Please wait while your songs are imported. - + Ready. Redo. - + %p% @@ -3558,82 +4019,77 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - - Song - Sång - - - + Song Maintenance Sångunderhåll - + Maintain the lists of authors, topics and books Hantera listorna över författare, ämnen och böcker - + Search: Sök: - + Type: Typ: - + Clear - + Search Sök - + Titles Titlar - + Lyrics Sångtexter - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI-licens: @@ -3669,12 +4125,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -3682,12 +4138,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importen är färdig. - + Your song import failed. @@ -3730,112 +4186,112 @@ The content encoding is not UTF-8. - + Error Fel - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - + Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + Delete Author Ta bort låtskrivare - + Are you sure you want to delete the selected author? Är du säker på att du vill ta bort den valda låtskrivaren? - + This author cannot be deleted, they are currently assigned to at least one song. - + No author selected! Ingen författare vald! - + Delete Topic Ta bort ämne - + Are you sure you want to delete the selected topic? Är du säker på att du vill ta bort valt ämne? - + This topic cannot be deleted, it is currently assigned to at least one song. - + No topic selected! Inget ämne valt! - + Delete Book Ta bort bok - + Are you sure you want to delete the selected book? Är du säker på att du vill ta bort vald bok? - + This book cannot be deleted, it is currently assigned to at least one song. - + No book selected! Ingen bok vald! From 879dbbfee8694f8cccee545cbc1ac1c1906aac86 Mon Sep 17 00:00:00 2001 From: rimach Date: Sat, 4 Sep 2010 00:56:47 +0200 Subject: [PATCH 07/95] add translation code for MediaDocks and PluginList From 9d4e989da3c53b537835d32c25cfc5f5e89725fb Mon Sep 17 00:00:00 2001 From: rimach Date: Sat, 4 Sep 2010 00:57:41 +0200 Subject: [PATCH 08/95] add translation code for MediaDocks and PluginList From 24fbd63398961d459ba7a726c81feeab342f7501 Mon Sep 17 00:00:00 2001 From: rimach Date: Sat, 4 Sep 2010 01:02:11 +0200 Subject: [PATCH 09/95] From d4cabf96931d31dba19df9a5a95d813646e8b1df Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 10 Sep 2010 17:50:30 +0200 Subject: [PATCH 10/95] move translations from mediamanager to plugins with dict --- openlp/core/lib/__init__.py | 672 +-- openlp/core/lib/mediamanageritem.py | 1058 ++--- openlp/core/lib/plugin.py | 625 +-- openlp/core/ui/mediadockmanager.py | 168 +- openlp/core/ui/pluginform.py | 279 +- openlp/core/ui/slidecontroller.py | 1970 ++++---- openlp/plugins/alerts/alertsplugin.py | 249 +- openlp/plugins/bibles/bibleplugin.py | 317 +- openlp/plugins/custom/customplugin.py | 281 +- openlp/plugins/images/imageplugin.py | 200 +- openlp/plugins/media/mediaplugin.py | 236 +- .../presentations/presentationplugin.py | 361 +- openlp/plugins/remotes/remoteplugin.py | 201 +- openlp/plugins/songs/songsplugin.py | 374 +- openlp/plugins/songusage/songusageplugin.py | 373 +- resources/i18n/openlp_af.ts | 1113 +++-- resources/i18n/openlp_de.ts | 1113 +++-- resources/i18n/openlp_en.ts | 1105 +++-- resources/i18n/openlp_en_GB.ts | 1117 +++-- resources/i18n/openlp_en_ZA.ts | 1167 +++-- resources/i18n/openlp_es.ts | 1113 +++-- resources/i18n/openlp_et.ts | 889 ++-- resources/i18n/openlp_hu.ts | 1117 +++-- resources/i18n/openlp_ko.ts | 1105 +++-- resources/i18n/openlp_nb.ts | 1167 +++-- resources/i18n/openlp_pt_BR.ts | 1117 +++-- resources/i18n/openlp_sv.ts | 4136 +---------------- resources/images/about-new.bmp | Bin 28 files changed, 9612 insertions(+), 14011 deletions(-) mode change 100755 => 100644 resources/images/about-new.bmp diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 1f911491f..7fd4cc313 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -1,336 +1,336 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -The :mod:`lib` module contains most of the components and libraries that make -OpenLP work. -""" -import logging -import os.path -import types - -from PyQt4 import QtCore, QtGui - -log = logging.getLogger(__name__) - -# TODO make external and configurable in alpha 4 via a settings dialog -html_expands = [] - -html_expands.append({u'desc':u'Red', u'start tag':u'{r}', \ - u'start html':u'', \ - u'end tag':u'{/r}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Black', u'start tag':u'{b}', \ - u'start html':u'', \ - u'end tag':u'{/b}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', \ - u'start html':u'', \ - u'end tag':u'{/bl}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', \ - u'start html':u'', \ - u'end tag':u'{/y}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Green', u'start tag':u'{g}', \ - u'start html':u'', \ - u'end tag':u'{/g}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', \ - u'start html':u'', \ - u'end tag':u'{/pk}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', \ - u'start html':u'', \ - u'end tag':u'{/o}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', \ - u'start html':u'', \ - u'end tag':u'{/pp}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'White', u'start tag':u'{w}', \ - u'start html':u'', \ - u'end tag':u'{/w}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', \ - u'start html':u'', \ - u'end tag':u'{/su}', u'end html':u'', \ - u'protected':True}) -html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', \ - u'start html':u'', \ - u'end tag':u'{/sb}', u'end html':u'', \ - u'protected':True}) -html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', \ - u'start html':u'

', \ - u'end tag':u'{/p}', u'end html':u'

', \ - u'protected':True}) -html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', \ - u'start html':u'', \ - u'end tag':u'{/st}', \ - u'end html':u'', \ - u'protected':True}) -html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', \ - u'start html':u'', \ - u'end tag':u'{/it}', u'end html':u'', \ - u'protected':True}) - -def translate(context, text, comment=None): - """ - A special shortcut method to wrap around the Qt4 translation functions. - This abstracts the translation procedure so that we can change it if at a - later date if necessary, without having to redo the whole of OpenLP. - - ``context`` - The translation context, used to give each string a context or a - namespace. - - ``text`` - The text to put into the translation tables for translation. - - ``comment`` - An identifying string for when the same text is used in different roles - within the same context. - """ - return QtCore.QCoreApplication.translate(context, text, comment) - -def get_text_file_string(text_file): - """ - Open a file and return its content as unicode string. If the supplied file - name is not a file then the function returns False. If there is an error - loading the file or the content can't be decoded then the function will - return None. - - ``textfile`` - The name of the file. - """ - if not os.path.isfile(text_file): - return False - file_handle = None - content_string = None - try: - file_handle = open(text_file, u'r') - content = file_handle.read() - content_string = content.decode(u'utf-8') - except (IOError, UnicodeError): - log.exception(u'Failed to open text file %s' % text_file) - finally: - if file_handle: - file_handle.close() - return content_string - -def str_to_bool(stringvalue): - """ - Convert a string version of a boolean into a real boolean. - - ``stringvalue`` - The string value to examine and convert to a boolean type. - """ - if isinstance(stringvalue, bool): - return stringvalue - return unicode(stringvalue).strip().lower() in (u'true', u'yes', u'y') - -def build_icon(icon): - """ - Build a QIcon instance from an existing QIcon, a resource location, or a - physical file location. If the icon is a QIcon instance, that icon is - simply returned. If not, it builds a QIcon instance from the resource or - file name. - - ``icon`` - The icon to build. This can be a QIcon, a resource string in the form - ``:/resource/file.png``, or a file location like ``/path/to/file.png``. - """ - button_icon = QtGui.QIcon() - if isinstance(icon, QtGui.QIcon): - button_icon = icon - elif isinstance(icon, basestring): - if icon.startswith(u':/'): - button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, - QtGui.QIcon.Off) - else: - button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - elif isinstance(icon, QtGui.QImage): - button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - return button_icon - -def context_menu_action(base, icon, text, slot): - """ - Utility method to help build context menus for plugins - - ``base`` - The parent menu to add this menu item to - - ``icon`` - An icon for this action - - ``text`` - The text to display for this action - - ``slot`` - The code to run when this action is triggered - """ - action = QtGui.QAction(text, base) - if icon: - action.setIcon(build_icon(icon)) - QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) - return action - -def context_menu(base, icon, text): - """ - Utility method to help build context menus for plugins - - ``base`` - The parent object to add this menu to - - ``icon`` - An icon for this menu - - ``text`` - The text to display for this menu - """ - action = QtGui.QMenu(text, base) - action.setIcon(build_icon(icon)) - return action - -def context_menu_separator(base): - """ - Add a separator to a context menu - - ``base`` - The menu object to add the separator to - """ - action = QtGui.QAction(u'', base) - action.setSeparator(True) - return action - -def image_to_byte(image): - """ - Resize an image to fit on the current screen for the web and returns - it as a byte stream. - - ``image`` - The image to converted. - """ - byte_array = QtCore.QByteArray() - # use buffer to store pixmap into byteArray - buffie = QtCore.QBuffer(byte_array) - buffie.open(QtCore.QIODevice.WriteOnly) - if isinstance(image, QtGui.QImage): - pixmap = QtGui.QPixmap.fromImage(image) - else: - pixmap = QtGui.QPixmap(image) - pixmap.save(buffie, "PNG") - # convert to base64 encoding so does not get missed! - return byte_array.toBase64() - -def resize_image(image, width, height, background=QtCore.Qt.black): - """ - Resize an image to fit on the current screen. - - ``image`` - The image to resize. - - ``width`` - The new image width. - - ``height`` - The new image height. - - ``background`` - The background colour defaults to black. - - """ - preview = QtGui.QImage(image) - if not preview.isNull(): - # Only resize if different size - if preview.width() == width and preview.height == height: - return preview - preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, - QtCore.Qt.SmoothTransformation) - realw = preview.width() - realh = preview.height() - # and move it to the centre of the preview space - new_image = QtGui.QImage(width, height, - QtGui.QImage.Format_ARGB32_Premultiplied) - new_image.fill(background) - painter = QtGui.QPainter(new_image) - painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) - return new_image - -def check_item_selected(list_widget, message): - """ - Check if a list item is selected so an action may be performed on it - - ``list_widget`` - The list to check for selected items - - ``message`` - The message to give the user if no item is selected - """ - if not list_widget.selectedIndexes(): - QtGui.QMessageBox.information(list_widget.parent(), - translate('OpenLP.MediaManagerItem', 'No Items Selected'), message) - return False - return True - -def clean_tags(text): - """ - Remove Tags from text for display - """ - text = text.replace(u'
', u'\n') - for tag in html_expands: - text = text.replace(tag[u'start tag'], u'') - text = text.replace(tag[u'end tag'], u'') - return text - -def expand_tags(text): - """ - Expand tags HTML for display - """ - for tag in html_expands: - text = text.replace(tag[u'start tag'], tag[u'start html']) - text = text.replace(tag[u'end tag'], tag[u'end html']) - return text - -from spelltextedit import SpellTextEdit -from eventreceiver import Receiver -from settingsmanager import SettingsManager -from plugin import PluginStatus, Plugin -from pluginmanager import PluginManager -from settingstab import SettingsTab -from serviceitem import ServiceItem -from serviceitem import ServiceItemType -from serviceitem import ItemCapabilities -from htmlbuilder import build_html, build_lyrics_format_css, \ - build_lyrics_outline_css -from toolbar import OpenLPToolbar -from dockwidget import OpenLPDockWidget -from theme import ThemeLevel, ThemeXML -from renderer import Renderer -from rendermanager import RenderManager -from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +The :mod:`lib` module contains most of the components and libraries that make +OpenLP work. +""" +import logging +import os.path +import types + +from PyQt4 import QtCore, QtGui + +log = logging.getLogger(__name__) + +# TODO make external and configurable in alpha 4 via a settings dialog +html_expands = [] + +html_expands.append({u'desc':u'Red', u'start tag':u'{r}', \ + u'start html':u'', \ + u'end tag':u'{/r}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Black', u'start tag':u'{b}', \ + u'start html':u'', \ + u'end tag':u'{/b}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', \ + u'start html':u'', \ + u'end tag':u'{/bl}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', \ + u'start html':u'', \ + u'end tag':u'{/y}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Green', u'start tag':u'{g}', \ + u'start html':u'', \ + u'end tag':u'{/g}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', \ + u'start html':u'', \ + u'end tag':u'{/pk}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', \ + u'start html':u'', \ + u'end tag':u'{/o}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', \ + u'start html':u'', \ + u'end tag':u'{/pp}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'White', u'start tag':u'{w}', \ + u'start html':u'', \ + u'end tag':u'{/w}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', \ + u'start html':u'', \ + u'end tag':u'{/su}', u'end html':u'', \ + u'protected':True}) +html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', \ + u'start html':u'', \ + u'end tag':u'{/sb}', u'end html':u'', \ + u'protected':True}) +html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', \ + u'start html':u'

', \ + u'end tag':u'{/p}', u'end html':u'

', \ + u'protected':True}) +html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', \ + u'start html':u'', \ + u'end tag':u'{/st}', \ + u'end html':u'', \ + u'protected':True}) +html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', \ + u'start html':u'', \ + u'end tag':u'{/it}', u'end html':u'', \ + u'protected':True}) + +def translate(context, text, comment=None): + """ + A special shortcut method to wrap around the Qt4 translation functions. + This abstracts the translation procedure so that we can change it if at a + later date if necessary, without having to redo the whole of OpenLP. + + ``context`` + The translation context, used to give each string a context or a + namespace. + + ``text`` + The text to put into the translation tables for translation. + + ``comment`` + An identifying string for when the same text is used in different roles + within the same context. + """ + return QtCore.QCoreApplication.translate(context, text, comment) + +def get_text_file_string(text_file): + """ + Open a file and return its content as unicode string. If the supplied file + name is not a file then the function returns False. If there is an error + loading the file or the content can't be decoded then the function will + return None. + + ``textfile`` + The name of the file. + """ + if not os.path.isfile(text_file): + return False + file_handle = None + content_string = None + try: + file_handle = open(text_file, u'r') + content = file_handle.read() + content_string = content.decode(u'utf-8') + except (IOError, UnicodeError): + log.exception(u'Failed to open text file %s' % text_file) + finally: + if file_handle: + file_handle.close() + return content_string + +def str_to_bool(stringvalue): + """ + Convert a string version of a boolean into a real boolean. + + ``stringvalue`` + The string value to examine and convert to a boolean type. + """ + if isinstance(stringvalue, bool): + return stringvalue + return unicode(stringvalue).strip().lower() in (u'true', u'yes', u'y') + +def build_icon(icon): + """ + Build a QIcon instance from an existing QIcon, a resource location, or a + physical file location. If the icon is a QIcon instance, that icon is + simply returned. If not, it builds a QIcon instance from the resource or + file name. + + ``icon`` + The icon to build. This can be a QIcon, a resource string in the form + ``:/resource/file.png``, or a file location like ``/path/to/file.png``. + """ + button_icon = QtGui.QIcon() + if isinstance(icon, QtGui.QIcon): + button_icon = icon + elif isinstance(icon, basestring): + if icon.startswith(u':/'): + button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, + QtGui.QIcon.Off) + else: + button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + elif isinstance(icon, QtGui.QImage): + button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + return button_icon + +def context_menu_action(base, icon, text, slot): + """ + Utility method to help build context menus for plugins + + ``base`` + The parent menu to add this menu item to + + ``icon`` + An icon for this action + + ``text`` + The text to display for this action + + ``slot`` + The code to run when this action is triggered + """ + action = QtGui.QAction(text, base) + if icon: + action.setIcon(build_icon(icon)) + QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) + return action + +def context_menu(base, icon, text): + """ + Utility method to help build context menus for plugins + + ``base`` + The parent object to add this menu to + + ``icon`` + An icon for this menu + + ``text`` + The text to display for this menu + """ + action = QtGui.QMenu(text, base) + action.setIcon(build_icon(icon)) + return action + +def context_menu_separator(base): + """ + Add a separator to a context menu + + ``base`` + The menu object to add the separator to + """ + action = QtGui.QAction(u'', base) + action.setSeparator(True) + return action + +def image_to_byte(image): + """ + Resize an image to fit on the current screen for the web and returns + it as a byte stream. + + ``image`` + The image to converted. + """ + byte_array = QtCore.QByteArray() + # use buffer to store pixmap into byteArray + buffie = QtCore.QBuffer(byte_array) + buffie.open(QtCore.QIODevice.WriteOnly) + if isinstance(image, QtGui.QImage): + pixmap = QtGui.QPixmap.fromImage(image) + else: + pixmap = QtGui.QPixmap(image) + pixmap.save(buffie, "PNG") + # convert to base64 encoding so does not get missed! + return byte_array.toBase64() + +def resize_image(image, width, height, background=QtCore.Qt.black): + """ + Resize an image to fit on the current screen. + + ``image`` + The image to resize. + + ``width`` + The new image width. + + ``height`` + The new image height. + + ``background`` + The background colour defaults to black. + + """ + preview = QtGui.QImage(image) + if not preview.isNull(): + # Only resize if different size + if preview.width() == width and preview.height == height: + return preview + preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, + QtCore.Qt.SmoothTransformation) + realw = preview.width() + realh = preview.height() + # and move it to the centre of the preview space + new_image = QtGui.QImage(width, height, + QtGui.QImage.Format_ARGB32_Premultiplied) + new_image.fill(background) + painter = QtGui.QPainter(new_image) + painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) + return new_image + +def check_item_selected(list_widget, message): + """ + Check if a list item is selected so an action may be performed on it + + ``list_widget`` + The list to check for selected items + + ``message`` + The message to give the user if no item is selected + """ + if not list_widget.selectedIndexes(): + QtGui.QMessageBox.information(list_widget.parent(), + translate('OpenLP.MediaManagerItem', 'No Items Selected'), message) + return False + return True + +def clean_tags(text): + """ + Remove Tags from text for display + """ + text = text.replace(u'
', u'\n') + for tag in html_expands: + text = text.replace(tag[u'start tag'], u'') + text = text.replace(tag[u'end tag'], u'') + return text + +def expand_tags(text): + """ + Expand tags HTML for display + """ + for tag in html_expands: + text = text.replace(tag[u'start tag'], tag[u'start html']) + text = text.replace(tag[u'end tag'], tag[u'end html']) + return text + +from spelltextedit import SpellTextEdit +from eventreceiver import Receiver +from settingsmanager import SettingsManager +from plugin import PluginStatus, StringType, Plugin +from pluginmanager import PluginManager +from settingstab import SettingsTab +from serviceitem import ServiceItem +from serviceitem import ServiceItemType +from serviceitem import ItemCapabilities +from htmlbuilder import build_html, build_lyrics_format_css, \ + build_lyrics_outline_css +from toolbar import OpenLPToolbar +from dockwidget import OpenLPDockWidget +from theme import ThemeLevel, ThemeXML +from renderer import Renderer +from rendermanager import RenderManager +from mediamanageritem import MediaManagerItem +from baselistwithdnd import BaseListWithDnD diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 5056237ae..c49e37a19 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -1,527 +1,531 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -Provides the generic functions for interfacing plugins with the Media Manager. -""" -import logging -import os - -from PyQt4 import QtCore, QtGui - -from openlp.core.lib import context_menu_action, context_menu_separator, \ - SettingsManager, OpenLPToolbar, ServiceItem, build_icon, translate - -log = logging.getLogger(__name__) - -class MediaManagerItem(QtGui.QWidget): - """ - MediaManagerItem is a helper widget for plugins. - - None of the following *need* to be used, feel free to override - them completely in your plugin's implementation. Alternatively, - call them from your plugin before or after you've done extra - things that you need to. - - **Constructor Parameters** - - ``parent`` - The parent widget. Usually this will be the *Media Manager* - itself. This needs to be a class descended from ``QWidget``. - - ``icon`` - Either a ``QIcon``, a resource path, or a file name. This is - the icon which is displayed in the *Media Manager*. - - ``title`` - The title visible on the item in the *Media Manager*. - - **Member Variables** - - When creating a descendant class from this class for your plugin, - the following member variables should be set. - - ``self.OnNewPrompt`` - Defaults to *'Select Image(s)'*. - - ``self.OnNewFileMasks`` - Defaults to *'Images (*.jpg *jpeg *.gif *.png *.bmp)'*. This - assumes that the new action is to load a file. If not, you - need to override the ``OnNew`` method. - - ``self.ListViewWithDnD_class`` - This must be a **class**, not an object, descended from - ``openlp.core.lib.BaseListWithDnD`` that is not used in any - other part of OpenLP. - - ``self.PreviewFunction`` - This must be a method which returns a QImage to represent the - item (usually a preview). No scaling is required, that is - performed automatically by OpenLP when necessary. If this - method is not defined, a default will be used (treat the - filename as an image). - """ - log.info(u'Media Item loaded') - - def __init__(self, parent=None, icon=None, title=None): - """ - Constructor to create the media manager item. - """ - QtGui.QWidget.__init__(self) - self.parent = parent - self.settingsSection = parent.get_text('name_lower') - if isinstance(icon, QtGui.QIcon): - self.icon = icon - elif isinstance(icon, basestring): - self.icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - else: - self.icon = None - if title: - self.title = parent.get_text('name_more') - self.toolbar = None - self.remoteTriggered = None - self.serviceItemIconName = None - self.singleServiceItem = True - self.pageLayout = QtGui.QVBoxLayout(self) - self.pageLayout.setSpacing(0) - self.pageLayout.setContentsMargins(4, 0, 4, 0) - self.requiredIcons() - self.setupUi() - self.retranslateUi() - - def requiredIcons(self): - """ - This method is called to define the icons for the plugin. - It provides a default set and the plugin is able to override - the if required. - """ - self.hasImportIcon = False - self.hasNewIcon = True - self.hasEditIcon = True - self.hasFileIcon = False - self.hasDeleteIcon = True - self.addToServiceItem = False - - def retranslateUi(self): - """ - This method is called automatically to provide OpenLP with the - opportunity to translate the ``MediaManagerItem`` to another - language. - """ - pass - - def addToolbar(self): - """ - A method to help developers easily add a toolbar to the media - manager item. - """ - if self.toolbar is None: - self.toolbar = OpenLPToolbar(self) - self.pageLayout.addWidget(self.toolbar) - - def addToolbarButton( - self, title, tooltip, icon, slot=None, checkable=False): - """ - A method to help developers easily add a button to the toolbar. - - ``title`` - The title of the button. - - ``tooltip`` - The tooltip to be displayed when the mouse hovers over the - button. - - ``icon`` - The icon of the button. This can be an instance of QIcon, or a - string cotaining either the absolute path to the image, or an - internal resource path starting with ':/'. - - ``slot`` - The method to call when the button is clicked. - - ``objectname`` - The name of the button. - """ - # NB different order (when I broke this out, I didn't want to - # break compatability), but it makes sense for the icon to - # come before the tooltip (as you have to have an icon, but - # not neccesarily a tooltip) - self.toolbar.addToolbarButton(title, icon, tooltip, slot, checkable) - - def addToolbarSeparator(self): - """ - A very simple method to add a separator to the toolbar. - """ - self.toolbar.addSeparator() - - def setupUi(self): - """ - This method sets up the interface on the button. Plugin - developers use this to add and create toolbars, and the rest - of the interface of the media manager item. - """ - # Add a toolbar - self.addToolbar() - #Allow the plugin to define buttons at start of bar - self.addStartHeaderBar() - #Add the middle of the tool bar (pre defined) - self.addMiddleHeaderBar() - #Allow the plugin to define buttons at end of bar - self.addEndHeaderBar() - #Add the list view - self.addListViewToToolBar() - - def addMiddleHeaderBar(self): - """ - Create buttons for the media item toolbar - """ - ## Import Button ## - if self.hasImportIcon: - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'Import %s')) % - self.parent.name, - unicode(self.parent.get_text('import')), - u':/general/general_import.png', self.onImportClick) - ## File Button ## - if self.hasFileIcon: - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'Load %s')) % - self.parent.name, - unicode(self.parent.get_text('load')), - u':/general/general_open.png', self.onFileClick) - ## New Button ## - if self.hasNewIcon: - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'New %s')) % - self.parent.name, - unicode(self.parent.get_text('new')), - u':/general/general_new.png', self.onNewClick) - ## Edit Button ## - if self.hasEditIcon: - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'Edit %s')) % - self.parent.name, - unicode(self.parent.get_text('edit')), - u':/general/general_edit.png', self.onEditClick) - ## Delete Button ## - if self.hasDeleteIcon: - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'Delete %s')) % - self.parent.name, - unicode(self.parent.get_text('delete')), - u':/general/general_delete.png', self.onDeleteClick) - ## Separator Line ## - self.addToolbarSeparator() - ## Preview ## - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'Preview %s')) % - self.parent.name, - unicode(self.parent.get_text('preview')), - u':/general/general_preview.png', self.onPreviewClick) - ## Live Button ## - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', u'Go Live')), - unicode(self.parent.get_text('live')), - u':/general/general_live.png', self.onLiveClick) - ## Add to service Button ## - self.addToolbarButton( - unicode(translate('OpenLP.MediaManagerItem', 'Add %s to Service')) % - self.parent.name, - unicode(self.parent.get_text('service')), - u':/general/general_add.png', self.onAddClick) - - def addListViewToToolBar(self): - """ - Creates the main widget for listing items the media item is tracking - """ - #Add the List widget - self.listView = self.ListViewWithDnD_class(self) - self.listView.uniformItemSizes = True - self.listView.setGeometry(QtCore.QRect(10, 100, 256, 591)) - self.listView.setSpacing(1) - self.listView.setSelectionMode( - QtGui.QAbstractItemView.ExtendedSelection) - self.listView.setAlternatingRowColors(True) - self.listView.setDragEnabled(True) - self.listView.setObjectName(u'%sListView' % self.parent.name) - #Add to pageLayout - self.pageLayout.addWidget(self.listView) - #define and add the context menu - self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) - if self.hasEditIcon: - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_edit.png', - unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % - self.parent.name, - self.onEditClick)) - self.listView.addAction(context_menu_separator(self.listView)) - if self.hasDeleteIcon: - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_delete.png', - unicode(translate('OpenLP.MediaManagerItem', - '&Delete %s')) % - self.parent.name, - self.onDeleteClick)) - self.listView.addAction(context_menu_separator(self.listView)) - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_preview.png', - unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % - self.parent.name, - self.onPreviewClick)) - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_live.png', - translate('OpenLP.MediaManagerItem', '&Show Live'), - self.onLiveClick)) - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_add.png', - translate('OpenLP.MediaManagerItem', '&Add to Service'), - self.onAddClick)) - if self.addToServiceItem: - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_add.png', - translate('OpenLP.MediaManagerItem', - '&Add to selected Service Item'), - self.onAddEditClick)) - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): - QtCore.QObject.connect(self.listView, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onLiveClick) - else: - QtCore.QObject.connect(self.listView, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onPreviewClick) - - def initialise(self): - """ - Implement this method in your descendent media manager item to - do any UI or other initialisation. This method is called automatically. - """ - pass - - def addStartHeaderBar(self): - """ - Slot at start of toolbar for plugin to addwidgets - """ - pass - - def addEndHeaderBar(self): - """ - Slot at end of toolbar for plugin to add widgets - """ - pass - - def onFileClick(self): - """ - Add a file to the list widget to make it available for showing - """ - files = QtGui.QFileDialog.getOpenFileNames( - self, self.OnNewPrompt, - SettingsManager.get_last_dir(self.settingsSection), - self.OnNewFileMasks) - log.info(u'New files(s) %s', unicode(files)) - if files: - self.loadList(files) - lastDir = os.path.split(unicode(files[0]))[0] - SettingsManager.set_last_dir(self.settingsSection, lastDir) - SettingsManager.set_list(self.settingsSection, - self.settingsSection, self.getFileList()) - - def getFileList(self): - """ - Return the current list of files - """ - count = 0 - filelist = [] - while count < self.listView.count(): - bitem = self.listView.item(count) - filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) - filelist.append(filename) - count += 1 - return filelist - - def validate(self, file, thumb): - """ - Validates to see if the file still exists or thumbnail is up to date - """ - if not os.path.exists(file): - return False - if os.path.exists(thumb): - filedate = os.stat(file).st_mtime - thumbdate = os.stat(thumb).st_mtime - #if file updated rebuild icon - if filedate > thumbdate: - self.iconFromFile(file, thumb) - else: - self.iconFromFile(file, thumb) - return True - - def iconFromFile(self, file, thumb): - """ - Create a thumbnail icon from a given file - - ``file`` - The file to create the icon from - - ``thumb`` - The filename to save the thumbnail to - """ - icon = build_icon(unicode(file)) - pixmap = icon.pixmap(QtCore.QSize(88, 50)) - ext = os.path.splitext(thumb)[1].lower() - pixmap.save(thumb, ext[1:]) - return icon - - def loadList(self, list): - raise NotImplementedError(u'MediaManagerItem.loadList needs to be ' - u'defined by the plugin') - - def onNewClick(self): - raise NotImplementedError(u'MediaManagerItem.onNewClick needs to be ' - u'defined by the plugin') - - def onEditClick(self): - raise NotImplementedError(u'MediaManagerItem.onEditClick needs to be ' - u'defined by the plugin') - - def onDeleteClick(self): - raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' - u'be defined by the plugin') - - def generateSlideData(self, service_item, item): - raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' - u'to be defined by the plugin') - - def onPreviewClick(self): - """ - Preview an item by building a service item then adding that service - item to the preview slide controller. - """ - if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items to preview.')) - else: - log.debug(self.parent.name + u' Preview requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = True - self.parent.previewController.addServiceItem(service_item) - - def onLiveClick(self): - """ - Send an item live by building a service item then adding that service - item to the live slide controller. - """ - if not self.listView.selectedIndexes(): - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items to send live.')) - else: - log.debug(self.parent.name + u' Live requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = True - self.parent.liveController.addServiceItem(service_item) - - def onAddClick(self): - """ - Add a selected item to the current service - """ - if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items.')) - else: - #Is it posssible to process multiple list items to generate multiple - #service items? - if self.singleServiceItem or self.remoteTriggered: - log.debug(self.parent.name + u' Add requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = False - self.parent.serviceManager.addServiceItem(service_item, - replace=self.remoteTriggered) - else: - items = self.listView.selectedIndexes() - for item in items: - service_item = self.buildServiceItem(item) - if service_item: - service_item.from_plugin = False - self.parent.serviceManager.addServiceItem(service_item) - - def onAddEditClick(self): - """ - Add a selected item to an existing item in the current service. - """ - if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No items selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items')) - else: - log.debug(self.parent.name + u' Add requested') - service_item = self.parent.serviceManager.getServiceItem() - if not service_item: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', - 'No Service Item Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select an existing service item to add to.')) - elif self.title.lower() == service_item.name.lower(): - self.generateSlideData(service_item) - self.parent.serviceManager.addServiceItem(service_item, - replace=True) - else: - #Turn off the remote edit update message indicator - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', - 'Invalid Service Item'), - unicode(translate('OpenLP.MediaManagerItem', - 'You must select a %s service item.')) % self.title) - - def buildServiceItem(self, item=None): - """ - Common method for generating a service item - """ - service_item = ServiceItem(self.parent) - if self.serviceItemIconName: - service_item.add_icon(self.serviceItemIconName) - else: - service_item.add_icon(self.parent.icon_path) - if self.generateSlideData(service_item, item): - return service_item - else: - return None +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Provides the generic functions for interfacing plugins with the Media Manager. +""" +import logging +import os + +from PyQt4 import QtCore, QtGui + +from openlp.core.lib import context_menu_action, context_menu_separator, \ + SettingsManager, OpenLPToolbar, ServiceItem, StringType, build_icon, \ + translate + +log = logging.getLogger(__name__) + +class MediaManagerItem(QtGui.QWidget): + """ + MediaManagerItem is a helper widget for plugins. + + None of the following *need* to be used, feel free to override + them completely in your plugin's implementation. Alternatively, + call them from your plugin before or after you've done extra + things that you need to. + + **Constructor Parameters** + + ``parent`` + The parent widget. Usually this will be the *Media Manager* + itself. This needs to be a class descended from ``QWidget``. + + ``icon`` + Either a ``QIcon``, a resource path, or a file name. This is + the icon which is displayed in the *Media Manager*. + + ``title`` + The title visible on the item in the *Media Manager*. + + **Member Variables** + + When creating a descendant class from this class for your plugin, + the following member variables should be set. + + ``self.OnNewPrompt`` + Defaults to *'Select Image(s)'*. + + ``self.OnNewFileMasks`` + Defaults to *'Images (*.jpg *jpeg *.gif *.png *.bmp)'*. This + assumes that the new action is to load a file. If not, you + need to override the ``OnNew`` method. + + ``self.ListViewWithDnD_class`` + This must be a **class**, not an object, descended from + ``openlp.core.lib.BaseListWithDnD`` that is not used in any + other part of OpenLP. + + ``self.PreviewFunction`` + This must be a method which returns a QImage to represent the + item (usually a preview). No scaling is required, that is + performed automatically by OpenLP when necessary. If this + method is not defined, a default will be used (treat the + filename as an image). + """ + log.info(u'Media Item loaded') + + def __init__(self, parent=None, icon=None, title=None, plugin=None): + """ + Constructor to create the media manager item. + """ + QtGui.QWidget.__init__(self) + self.parent = parent + self.plugin = parent # rimach may changed + self.settingsSection = self.plugin.name_lower + if isinstance(icon, QtGui.QIcon): + self.icon = icon + elif isinstance(icon, basestring): + self.icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + else: + self.icon = None + if title: + nameString = self.plugin.getString(StringType.Name) + self.title = nameString[u'plural'] + self.toolbar = None + self.remoteTriggered = None + self.serviceItemIconName = None + self.singleServiceItem = True + self.pageLayout = QtGui.QVBoxLayout(self) + self.pageLayout.setSpacing(0) + self.pageLayout.setContentsMargins(4, 0, 4, 0) + self.requiredIcons() + self.setupUi() + self.retranslateUi() + + def requiredIcons(self): + """ + This method is called to define the icons for the plugin. + It provides a default set and the plugin is able to override + the if required. + """ + self.hasImportIcon = False + self.hasNewIcon = True + self.hasEditIcon = True + self.hasFileIcon = False + self.hasDeleteIcon = True + self.addToServiceItem = False + + def retranslateUi(self): + """ + This method is called automatically to provide OpenLP with the + opportunity to translate the ``MediaManagerItem`` to another + language. + """ + pass + + def addToolbar(self): + """ + A method to help developers easily add a toolbar to the media + manager item. + """ + if self.toolbar is None: + self.toolbar = OpenLPToolbar(self) + self.pageLayout.addWidget(self.toolbar) + + def addToolbarButton( + self, title, tooltip, icon, slot=None, checkable=False): + """ + A method to help developers easily add a button to the toolbar. + + ``title`` + The title of the button. + + ``tooltip`` + The tooltip to be displayed when the mouse hovers over the + button. + + ``icon`` + The icon of the button. This can be an instance of QIcon, or a + string cotaining either the absolute path to the image, or an + internal resource path starting with ':/'. + + ``slot`` + The method to call when the button is clicked. + + ``objectname`` + The name of the button. + """ + # NB different order (when I broke this out, I didn't want to + # break compatability), but it makes sense for the icon to + # come before the tooltip (as you have to have an icon, but + # not neccesarily a tooltip) + self.toolbar.addToolbarButton(title, icon, tooltip, slot, checkable) + + def addToolbarSeparator(self): + """ + A very simple method to add a separator to the toolbar. + """ + self.toolbar.addSeparator() + + def setupUi(self): + """ + This method sets up the interface on the button. Plugin + developers use this to add and create toolbars, and the rest + of the interface of the media manager item. + """ + # Add a toolbar + self.addToolbar() + #Allow the plugin to define buttons at start of bar + self.addStartHeaderBar() + #Add the middle of the tool bar (pre defined) + self.addMiddleHeaderBar() + #Allow the plugin to define buttons at end of bar + self.addEndHeaderBar() + #Add the list view + self.addListViewToToolBar() + + def addMiddleHeaderBar(self): + """ + Create buttons for the media item toolbar + """ + ## Import Button ## + if self.hasImportIcon: + importString = self.plugin.getString(StringType.Import) + self.addToolbarButton( + importString[u'title'], + importString[u'tooltip'], + u':/general/general_import.png', self.onImportClick) + ## Load Button ## + if self.hasFileIcon: + loadString = self.plugin.getString(StringType.Load) + self.addToolbarButton( + loadString[u'title'], + loadString[u'tooltip'], + u':/general/general_open.png', self.onFileClick) + ## New Button ## rimach + if self.hasNewIcon: + newString = self.plugin.getString(StringType.New) + self.addToolbarButton( + newString[u'title'], + newString[u'tooltip'], + u':/general/general_new.png', self.onNewClick) + ## Edit Button ## + if self.hasEditIcon: + editString = self.plugin.getString(StringType.Edit) + self.addToolbarButton( + editString[u'title'], + editString[u'tooltip'], + u':/general/general_edit.png', self.onEditClick) + ## Delete Button ## + if self.hasDeleteIcon: + deleteString = self.plugin.getString(StringType.Delete) + self.addToolbarButton( + deleteString[u'title'], + deleteString[u'tooltip'], + u':/general/general_delete.png', self.onDeleteClick) + ## Separator Line ## + self.addToolbarSeparator() + ## Preview ## + previewString = self.plugin.getString(StringType.Preview) + self.addToolbarButton( + previewString[u'title'], + previewString[u'tooltip'], + u':/general/general_preview.png', self.onPreviewClick) + ## Live Button ## + liveString = self.plugin.getString(StringType.Live) + self.addToolbarButton( + liveString[u'title'], + liveString[u'tooltip'], + u':/general/general_live.png', self.onLiveClick) + ## Add to service Button ## + serviceString = self.plugin.getString(StringType.Service) + self.addToolbarButton( + serviceString[u'title'], + serviceString[u'tooltip'], + u':/general/general_add.png', self.onAddClick) + + def addListViewToToolBar(self): + """ + Creates the main widget for listing items the media item is tracking + """ + #Add the List widget + self.listView = self.ListViewWithDnD_class(self) + self.listView.uniformItemSizes = True + self.listView.setGeometry(QtCore.QRect(10, 100, 256, 591)) + self.listView.setSpacing(1) + self.listView.setSelectionMode( + QtGui.QAbstractItemView.ExtendedSelection) + self.listView.setAlternatingRowColors(True) + self.listView.setDragEnabled(True) + self.listView.setObjectName(u'%sListView' % self.parent.name) + #Add to pageLayout + self.pageLayout.addWidget(self.listView) + #define and add the context menu + self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) + if self.hasEditIcon: + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_edit.png', + unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % + self.parent.name, + self.onEditClick)) + self.listView.addAction(context_menu_separator(self.listView)) + if self.hasDeleteIcon: + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_delete.png', + unicode(translate('OpenLP.MediaManagerItem', + '&Delete %s')) % + self.parent.name, + self.onDeleteClick)) + self.listView.addAction(context_menu_separator(self.listView)) + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_preview.png', + unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % + self.parent.name, + self.onPreviewClick)) + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_live.png', + translate('OpenLP.MediaManagerItem', '&Show Live'), + self.onLiveClick)) + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_add.png', + translate('OpenLP.MediaManagerItem', '&Add to Service'), + self.onAddClick)) + if self.addToServiceItem: + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_add.png', + translate('OpenLP.MediaManagerItem', + '&Add to selected Service Item'), + self.onAddEditClick)) + if QtCore.QSettings().value(u'advanced/double click live', + QtCore.QVariant(False)).toBool(): + QtCore.QObject.connect(self.listView, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onLiveClick) + else: + QtCore.QObject.connect(self.listView, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onPreviewClick) + + def initialise(self): + """ + Implement this method in your descendent media manager item to + do any UI or other initialisation. This method is called automatically. + """ + pass + + def addStartHeaderBar(self): + """ + Slot at start of toolbar for plugin to addwidgets + """ + pass + + def addEndHeaderBar(self): + """ + Slot at end of toolbar for plugin to add widgets + """ + pass + + def onFileClick(self): + """ + Add a file to the list widget to make it available for showing + """ + files = QtGui.QFileDialog.getOpenFileNames( + self, self.OnNewPrompt, + SettingsManager.get_last_dir(self.settingsSection), + self.OnNewFileMasks) + log.info(u'New files(s) %s', unicode(files)) + if files: + self.loadList(files) + lastDir = os.path.split(unicode(files[0]))[0] + SettingsManager.set_last_dir(self.settingsSection, lastDir) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) + + def getFileList(self): + """ + Return the current list of files + """ + count = 0 + filelist = [] + while count < self.listView.count(): + bitem = self.listView.item(count) + filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) + filelist.append(filename) + count += 1 + return filelist + + def validate(self, file, thumb): + """ + Validates to see if the file still exists or thumbnail is up to date + """ + if not os.path.exists(file): + return False + if os.path.exists(thumb): + filedate = os.stat(file).st_mtime + thumbdate = os.stat(thumb).st_mtime + #if file updated rebuild icon + if filedate > thumbdate: + self.iconFromFile(file, thumb) + else: + self.iconFromFile(file, thumb) + return True + + def iconFromFile(self, file, thumb): + """ + Create a thumbnail icon from a given file + + ``file`` + The file to create the icon from + + ``thumb`` + The filename to save the thumbnail to + """ + icon = build_icon(unicode(file)) + pixmap = icon.pixmap(QtCore.QSize(88, 50)) + ext = os.path.splitext(thumb)[1].lower() + pixmap.save(thumb, ext[1:]) + return icon + + def loadList(self, list): + raise NotImplementedError(u'MediaManagerItem.loadList needs to be ' + u'defined by the plugin') + + def onNewClick(self): + raise NotImplementedError(u'MediaManagerItem.onNewClick needs to be ' + u'defined by the plugin') + + def onEditClick(self): + raise NotImplementedError(u'MediaManagerItem.onEditClick needs to be ' + u'defined by the plugin') + + def onDeleteClick(self): + raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' + u'be defined by the plugin') + + def generateSlideData(self, service_item, item): + raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' + u'to be defined by the plugin') + + def onPreviewClick(self): + """ + Preview an item by building a service item then adding that service + item to the preview slide controller. + """ + if not self.listView.selectedIndexes() and not self.remoteTriggered: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No Items Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items to preview.')) + else: + log.debug(self.parent.name + u' Preview requested') + service_item = self.buildServiceItem() + if service_item: + service_item.from_plugin = True + self.parent.previewController.addServiceItem(service_item) + + def onLiveClick(self): + """ + Send an item live by building a service item then adding that service + item to the live slide controller. + """ + if not self.listView.selectedIndexes(): + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No Items Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items to send live.')) + else: + log.debug(self.parent.name + u' Live requested') + service_item = self.buildServiceItem() + if service_item: + service_item.from_plugin = True + self.parent.liveController.addServiceItem(service_item) + + def onAddClick(self): + """ + Add a selected item to the current service + """ + if not self.listView.selectedIndexes() and not self.remoteTriggered: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No Items Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items.')) + else: + #Is it posssible to process multiple list items to generate multiple + #service items? + if self.singleServiceItem or self.remoteTriggered: + log.debug(self.parent.name + u' Add requested') + service_item = self.buildServiceItem() + if service_item: + service_item.from_plugin = False + self.parent.serviceManager.addServiceItem(service_item, + replace=self.remoteTriggered) + else: + items = self.listView.selectedIndexes() + for item in items: + service_item = self.buildServiceItem(item) + if service_item: + service_item.from_plugin = False + self.parent.serviceManager.addServiceItem(service_item) + + def onAddEditClick(self): + """ + Add a selected item to an existing item in the current service. + """ + if not self.listView.selectedIndexes() and not self.remoteTriggered: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No items selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items')) + else: + log.debug(self.parent.name + u' Add requested') + service_item = self.parent.serviceManager.getServiceItem() + if not service_item: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', + 'No Service Item Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select an existing service item to add to.')) + elif self.title.lower() == service_item.name.lower(): + self.generateSlideData(service_item) + self.parent.serviceManager.addServiceItem(service_item, + replace=True) + else: + #Turn off the remote edit update message indicator + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', + 'Invalid Service Item'), + unicode(translate('OpenLP.MediaManagerItem', + 'You must select a %s service item.')) % self.title) + + def buildServiceItem(self, item=None): + """ + Common method for generating a service item + """ + service_item = ServiceItem(self.parent) + if self.serviceItemIconName: + service_item.add_icon(self.serviceItemIconName) + else: + service_item.add_icon(self.parent.icon_path) + if self.generateSlideData(service_item, item): + return service_item + else: + return None diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 7eee2dd6e..8f7fd4f38 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -1,306 +1,319 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -Provide the generic plugin functionality for OpenLP plugins. -""" -import logging - -from PyQt4 import QtCore - -from openlp.core.lib import Receiver - -log = logging.getLogger(__name__) - -class PluginStatus(object): - """ - Defines the status of the plugin - """ - Active = 1 - Inactive = 0 - Disabled = -1 - -class Plugin(QtCore.QObject): - """ - Base class for openlp plugins to inherit from. - - **Basic Attributes** - - ``name`` - The name that should appear in the plugins list. - - ``version`` - The version number of this iteration of the plugin. - - ``settingsSection`` - The namespace to store settings for the plugin. - - ``icon`` - An instance of QIcon, which holds an icon for this plugin. - - ``log`` - A log object used to log debugging messages. This is pre-instantiated. - - ``weight`` - A numerical value used to order the plugins. - - **Hook Functions** - - ``checkPreConditions()`` - Provides the Plugin with a handle to check if it can be loaded. - - ``getMediaManagerItem()`` - Returns an instance of MediaManagerItem to be used in the Media Manager. - - ``addImportMenuItem(import_menu)`` - Add an item to the Import menu. - - ``addExportMenuItem(export_menu)`` - Add an item to the Export menu. - - ``getSettingsTab()`` - Returns an instance of SettingsTabItem to be used in the Settings - dialog. - - ``addToMenu(menubar)`` - A method to add a menu item to anywhere in the menu, given the menu bar. - - ``handle_event(event)`` - A method use to handle events, given an Event object. - - ``about()`` - Used in the plugin manager, when a person clicks on the 'About' button. - - """ - log.info(u'loaded') - - def __init__(self, name, version=None, plugin_helpers=None): - """ - This is the constructor for the plugin object. This provides an easy - way for descendent plugins to populate common data. This method *must* - be overridden, like so:: - - class MyPlugin(Plugin): - def __init__(self): - Plugin.__init(self, u'MyPlugin', u'0.1') - - ``name`` - Defaults to *None*. The name of the plugin. - - ``version`` - Defaults to *None*. The version of the plugin. - - ``plugin_helpers`` - Defaults to *None*. A list of helper objects. - """ - QtCore.QObject.__init__(self) - self.name = name - if version: - self.version = version - self.settingsSection = self.name.lower() - self.icon = None - self.weight = 0 - self.status = PluginStatus.Inactive - # Set up logging - self.log = logging.getLogger(self.name) - self.previewController = plugin_helpers[u'preview'] - self.liveController = plugin_helpers[u'live'] - self.renderManager = plugin_helpers[u'render'] - self.serviceManager = plugin_helpers[u'service'] - self.settingsForm = plugin_helpers[u'settings form'] - self.mediadock = plugin_helpers[u'toolbox'] - self.pluginManager = plugin_helpers[u'pluginmanager'] - self.formparent = plugin_helpers[u'formparent'] - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'%s_add_service_item' % self.name), - self.processAddServiceEvent) - - def checkPreConditions(self): - """ - Provides the Plugin with a handle to check if it can be loaded. - Failing Preconditions does not stop a settings Tab being created - - Returns True or False. - """ - return True - - def setStatus(self): - """ - Sets the status of the plugin - """ - self.status = QtCore.QSettings().value( - self.settingsSection + u'/status', - QtCore.QVariant(PluginStatus.Inactive)).toInt()[0] - - def toggleStatus(self, new_status): - """ - Changes the status of the plugin and remembers it - """ - self.status = new_status - QtCore.QSettings().setValue( - self.settingsSection + u'/status', QtCore.QVariant(self.status)) - - def isActive(self): - """ - Indicates if the plugin is active - - Returns True or False. - """ - return self.status == PluginStatus.Active - - def getMediaManagerItem(self): - """ - Construct a MediaManagerItem object with all the buttons and things - you need, and return it for integration into openlp.org. - """ - pass - - def addImportMenuItem(self, importMenu): - """ - Create a menu item and add it to the "Import" menu. - - ``importMenu`` - The Import menu. - """ - pass - - def addExportMenuItem(self, exportMenu): - """ - Create a menu item and add it to the "Export" menu. - - ``exportMenu`` - The Export menu - """ - pass - - def addToolsMenuItem(self, toolsMenu): - """ - Create a menu item and add it to the "Tools" menu. - - ``toolsMenu`` - The Tools menu - """ - pass - - def getSettingsTab(self): - """ - Create a tab for the settings window. - """ - pass - - def addToMenu(self, menubar): - """ - Add menu items to the menu, given the menubar. - - ``menubar`` - The application's menu bar. - """ - pass - - def processAddServiceEvent(self, replace=False): - """ - Generic Drag and drop handler triggered from service_manager. - """ - log.debug(u'processAddServiceEvent event called for plugin %s' % - self.name) - if replace: - self.mediaItem.onAddEditClick() - else: - self.mediaItem.onAddClick() - - def about(self): - """ - Show a dialog when the user clicks on the 'About' button in the plugin - manager. - """ - raise NotImplementedError( - u'Plugin.about needs to be defined by the plugin') - - def initialise(self): - """ - Called by the plugin Manager to initialise anything it needs. - """ - if self.mediaItem: - self.mediaItem.initialise() - self.insertToolboxItem() - - def finalise(self): - """ - Called by the plugin Manager to cleanup things. - """ - self.removeToolboxItem() - - def removeToolboxItem(self): - """ - Called by the plugin to remove toolbar - """ - if self.mediaItem: - self.mediadock.remove_dock(self.name) - if self.settings_tab: - self.settingsForm.removeTab(self.name) - - def insertToolboxItem(self): - """ - Called by plugin to replace toolbar - """ - if self.mediaItem: - self.mediadock.insert_dock(self.mediaItem, self.icon, self.weight) - if self.settings_tab: - self.settingsForm.insertTab(self.settings_tab, self.weight) - - def usesTheme(self, theme): - """ - Called to find out if a plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Renames a theme a plugin is using making the plugin use the new name. - - ``oldTheme`` - The name of the theme the plugin should stop using. - - ``newTheme`` - The new name the plugin should now use. - """ - pass - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - pass - self.text = {} - - def get_text(self, content): - """ - Called to retrieve a translated piece of text for menues, context menues, ... - """ - if self.text.has_key(content): - return self.text[content] - else: - return self.name +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Provide the generic plugin functionality for OpenLP plugins. +""" +import logging + +from PyQt4 import QtCore + +from openlp.core.lib import Receiver + +log = logging.getLogger(__name__) + +class PluginStatus(object): + """ + Defines the status of the plugin + """ + Active = 1 + Inactive = 0 + Disabled = -1 + +class StringType(object): + Name = u'name' + Import = u'import' + Load = u'load' + New = u'new' + Edit = u'edit' + Delete = u'delete' + Preview = u'preview' + Live = u'live' + Service = u'service' + +class Plugin(QtCore.QObject): + """ + Base class for openlp plugins to inherit from. + + **Basic Attributes** + + ``name`` + The name that should appear in the plugins list. + + ``version`` + The version number of this iteration of the plugin. + + ``settingsSection`` + The namespace to store settings for the plugin. + + ``icon`` + An instance of QIcon, which holds an icon for this plugin. + + ``log`` + A log object used to log debugging messages. This is pre-instantiated. + + ``weight`` + A numerical value used to order the plugins. + + **Hook Functions** + + ``checkPreConditions()`` + Provides the Plugin with a handle to check if it can be loaded. + + ``getMediaManagerItem()`` + Returns an instance of MediaManagerItem to be used in the Media Manager. + + ``addImportMenuItem(import_menu)`` + Add an item to the Import menu. + + ``addExportMenuItem(export_menu)`` + Add an item to the Export menu. + + ``getSettingsTab()`` + Returns an instance of SettingsTabItem to be used in the Settings + dialog. + + ``addToMenu(menubar)`` + A method to add a menu item to anywhere in the menu, given the menu bar. + + ``handle_event(event)`` + A method use to handle events, given an Event object. + + ``about()`` + Used in the plugin manager, when a person clicks on the 'About' button. + + """ + log.info(u'loaded') + + def __init__(self, name, version=None, plugin_helpers=None): + """ + This is the constructor for the plugin object. This provides an easy + way for descendent plugins to populate common data. This method *must* + be overridden, like so:: + + class MyPlugin(Plugin): + def __init__(self): + Plugin.__init(self, u'MyPlugin', u'0.1') + + ``name`` + Defaults to *None*. The name of the plugin. + + ``version`` + Defaults to *None*. The version of the plugin. + + ``plugin_helpers`` + Defaults to *None*. A list of helper objects. + """ + QtCore.QObject.__init__(self) + self.name = name + self.set_plugin_strings() + if version: + self.version = version + self.settingsSection = self.name.lower() + self.icon = None + self.weight = 0 + self.status = PluginStatus.Inactive + # Set up logging + self.log = logging.getLogger(self.name) + self.previewController = plugin_helpers[u'preview'] + self.liveController = plugin_helpers[u'live'] + self.renderManager = plugin_helpers[u'render'] + self.serviceManager = plugin_helpers[u'service'] + self.settingsForm = plugin_helpers[u'settings form'] + self.mediadock = plugin_helpers[u'toolbox'] + self.pluginManager = plugin_helpers[u'pluginmanager'] + self.formparent = plugin_helpers[u'formparent'] + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'%s_add_service_item' % self.name), + self.processAddServiceEvent) + + def checkPreConditions(self): + """ + Provides the Plugin with a handle to check if it can be loaded. + Failing Preconditions does not stop a settings Tab being created + + Returns True or False. + """ + return True + + def setStatus(self): + """ + Sets the status of the plugin + """ + self.status = QtCore.QSettings().value( + self.settingsSection + u'/status', + QtCore.QVariant(PluginStatus.Inactive)).toInt()[0] + + def toggleStatus(self, new_status): + """ + Changes the status of the plugin and remembers it + """ + self.status = new_status + QtCore.QSettings().setValue( + self.settingsSection + u'/status', QtCore.QVariant(self.status)) + + def isActive(self): + """ + Indicates if the plugin is active + + Returns True or False. + """ + return self.status == PluginStatus.Active + + def getMediaManagerItem(self): + """ + Construct a MediaManagerItem object with all the buttons and things + you need, and return it for integration into openlp.org. + """ + pass + + def addImportMenuItem(self, importMenu): + """ + Create a menu item and add it to the "Import" menu. + + ``importMenu`` + The Import menu. + """ + pass + + def addExportMenuItem(self, exportMenu): + """ + Create a menu item and add it to the "Export" menu. + + ``exportMenu`` + The Export menu + """ + pass + + def addToolsMenuItem(self, toolsMenu): + """ + Create a menu item and add it to the "Tools" menu. + + ``toolsMenu`` + The Tools menu + """ + pass + + def getSettingsTab(self): + """ + Create a tab for the settings window. + """ + pass + + def addToMenu(self, menubar): + """ + Add menu items to the menu, given the menubar. + + ``menubar`` + The application's menu bar. + """ + pass + + def processAddServiceEvent(self, replace=False): + """ + Generic Drag and drop handler triggered from service_manager. + """ + log.debug(u'processAddServiceEvent event called for plugin %s' % + self.name) + if replace: + self.mediaItem.onAddEditClick() + else: + self.mediaItem.onAddClick() + + def about(self): + """ + Show a dialog when the user clicks on the 'About' button in the plugin + manager. + """ + raise NotImplementedError( + u'Plugin.about needs to be defined by the plugin') + + def initialise(self): + """ + Called by the plugin Manager to initialise anything it needs. + """ + if self.mediaItem: + self.mediaItem.initialise() + self.insertToolboxItem() + + def finalise(self): + """ + Called by the plugin Manager to cleanup things. + """ + self.removeToolboxItem() + + def removeToolboxItem(self): + """ + Called by the plugin to remove toolbar + """ + if self.mediaItem: + self.mediadock.remove_dock(self.name) + if self.settings_tab: + self.settingsForm.removeTab(self.name) + + def insertToolboxItem(self): + """ + Called by plugin to replace toolbar + """ + if self.mediaItem: + self.mediadock.insert_dock(self.mediaItem, self.icon, self.weight) + if self.settings_tab: + self.settingsForm.insertTab(self.settings_tab, self.weight) + + def usesTheme(self, theme): + """ + Called to find out if a plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Renames a theme a plugin is using making the plugin use the new name. + + ``oldTheme`` + The name of the theme the plugin should stop using. + + ``newTheme`` + The new name the plugin should now use. + """ + pass + + def getString(self, name): + if name in self.strings: + return self.strings[name] + else: + # do something here? + return None + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Plugin' + self.name_lower = u'plugin' + + self.strings = {} diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index 24a3fd64d..f3061a35a 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -1,84 +1,84 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -log = logging.getLogger(__name__) - -class MediaDockManager(object): - """ - Provide a repository for MediaManagerItems - """ - def __init__(self, media_dock): - """ - Initialise the media dock - """ - self.media_dock = media_dock - - def add_dock(self, media_item, icon, weight): - """ - Add a MediaManagerItem to the dock - - ``media_item`` - The item to add to the dock - - ``icon`` - An icon for this dock item - """ - log.info(u'Adding %s dock' % media_item.title) - self.media_dock.addItem(media_item, icon, media_item.title) - - def insert_dock(self, media_item, icon, weight): - """ - This should insert a dock item at a given location - This does not work as it gives a Segmentation error. - For now add at end of stack if not present - """ - log.debug(u'Inserting %s dock' % media_item.title) - match = False - for dock_index in range(0, self.media_dock.count()): - if self.media_dock.widget(dock_index).settingsSection == \ - media_item.parent.get_text('name_lower'): - match = True - break - if not match: - self.media_dock.addItem(media_item, icon, media_item.title) - - def remove_dock(self, name): - """ - Removes a MediaManagerItem from the dock - - ``name`` - The item to remove - """ - log.debug(u'remove %s dock' % name) - for dock_index in range(0, self.media_dock.count()): - if self.media_dock.widget(dock_index): - log.debug(u'%s %s' % (name, self.media_dock.widget(dock_index).settingsSection)) - if self.media_dock.widget(dock_index).settingsSection == \ - name: - self.media_dock.widget(dock_index).hide() - self.media_dock.removeItem(dock_index) +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +log = logging.getLogger(__name__) + +class MediaDockManager(object): + """ + Provide a repository for MediaManagerItems + """ + def __init__(self, media_dock): + """ + Initialise the media dock + """ + self.media_dock = media_dock + + def add_dock(self, media_item, icon, weight): + """ + Add a MediaManagerItem to the dock + + ``media_item`` + The item to add to the dock + + ``icon`` + An icon for this dock item + """ + log.info(u'Adding %s dock' % media_item.title) + self.media_dock.addItem(media_item, icon, media_item.title) + + def insert_dock(self, media_item, icon, weight): + """ + This should insert a dock item at a given location + This does not work as it gives a Segmentation error. + For now add at end of stack if not present + """ + log.debug(u'Inserting %s dock' % media_item.title) + match = False + for dock_index in range(0, self.media_dock.count()): + if self.media_dock.widget(dock_index).settingsSection == \ + media_item.parent.name_lower: + match = True + break + if not match: + self.media_dock.addItem(media_item, icon, media_item.title) + + def remove_dock(self, name): + """ + Removes a MediaManagerItem from the dock + + ``name`` + The item to remove + """ + log.debug(u'remove %s dock' % name) + for dock_index in range(0, self.media_dock.count()): + if self.media_dock.widget(dock_index): + log.debug(u'%s %s' % (name, self.media_dock.widget(dock_index).settingsSection)) + if self.media_dock.widget(dock_index).settingsSection == \ + name: + self.media_dock.widget(dock_index).hide() + self.media_dock.removeItem(dock_index) diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index 053acb3f1..6473acf7a 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -1,138 +1,141 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import PluginStatus, translate -from plugindialog import Ui_PluginViewDialog - -log = logging.getLogger(__name__) - -class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): - - def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) - self.parent = parent - self.activePlugin = None - self.programaticChange = False - self.setupUi(self) - self.load() - self._clearDetails() - # Right, now let's put some signals and slots together! - QtCore.QObject.connect( - self.pluginListWidget, - QtCore.SIGNAL(u'itemSelectionChanged()'), - self.onPluginListWidgetSelectionChanged) - QtCore.QObject.connect( - self.statusComboBox, - QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onStatusComboBoxChanged) - - def load(self): - """ - Load the plugin details into the screen - """ - self.pluginListWidget.clear() - for plugin in self.parent.plugin_manager.plugins: - item = QtGui.QListWidgetItem(self.pluginListWidget) - # We do this just to make 100% sure the status is an integer as - # sometimes when it's loaded from the config, it isn't cast to int. - plugin.status = int(plugin.status) - # Set the little status text in brackets next to the plugin name. - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Inactive)')) - if plugin.status == PluginStatus.Active: - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Active)')) - elif plugin.status == PluginStatus.Inactive: - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Inactive)')) - elif plugin.status == PluginStatus.Disabled: - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Disabled)')) - item.setText(status_text % plugin.get_text('name_more')) - # If the plugin has an icon, set it! - if plugin.icon: - item.setIcon(plugin.icon) - self.pluginListWidget.addItem(item) - - def _clearDetails(self): - self.statusComboBox.setCurrentIndex(-1) - self.versionNumberLabel.setText(u'') - self.aboutTextBrowser.setHtml(u'') - self.statusComboBox.setEnabled(False) - - def _setDetails(self): - log.debug('PluginStatus: %s', str(self.activePlugin.status)) - self.versionNumberLabel.setText(self.activePlugin.version) - self.aboutTextBrowser.setHtml(self.activePlugin.about()) - self.programaticChange = True - status = 1 - if self.activePlugin.status == PluginStatus.Active: - status = 0 - self.statusComboBox.setCurrentIndex(status) - self.statusComboBox.setEnabled(True) - self.programaticChange = False - - def onPluginListWidgetSelectionChanged(self): - if self.pluginListWidget.currentItem() is None: - self._clearDetails() - return - plugin_name_more = self.pluginListWidget.currentItem().text().split(u' ')[0] - self.activePlugin = None - for plugin in self.parent.plugin_manager.plugins: - if plugin.get_text('name_more') == plugin_name_more: - self.activePlugin = plugin - break - if self.activePlugin: - self._setDetails() - else: - self._clearDetails() - - def onStatusComboBoxChanged(self, status): - if self.programaticChange: - return - if status == 0: - self.activePlugin.toggleStatus(PluginStatus.Active) - self.activePlugin.initialise() - else: - self.activePlugin.toggleStatus(PluginStatus.Inactive) - self.activePlugin.finalise() - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Inactive)')) - if self.activePlugin.status == PluginStatus.Active: - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Active)')) - elif self.activePlugin.status == PluginStatus.Inactive: - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Inactive)')) - elif self.activePlugin.status == PluginStatus.Disabled: - status_text = unicode( - translate('OpenLP.PluginForm', '%s (Disabled)')) - self.pluginListWidget.currentItem().setText( - status_text % self.activePlugin.get_text('name_more')) +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import PluginStatus, StringType, translate +from plugindialog import Ui_PluginViewDialog + +log = logging.getLogger(__name__) + +class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): + + def __init__(self, parent=None): + QtGui.QDialog.__init__(self, parent) + self.parent = parent + self.activePlugin = None + self.programaticChange = False + self.setupUi(self) + self.load() + self._clearDetails() + # Right, now let's put some signals and slots together! + QtCore.QObject.connect( + self.pluginListWidget, + QtCore.SIGNAL(u'itemSelectionChanged()'), + self.onPluginListWidgetSelectionChanged) + QtCore.QObject.connect( + self.statusComboBox, + QtCore.SIGNAL(u'currentIndexChanged(int)'), + self.onStatusComboBoxChanged) + + def load(self): + """ + Load the plugin details into the screen + """ + self.pluginListWidget.clear() + for plugin in self.parent.plugin_manager.plugins: + item = QtGui.QListWidgetItem(self.pluginListWidget) + # We do this just to make 100% sure the status is an integer as + # sometimes when it's loaded from the config, it isn't cast to int. + plugin.status = int(plugin.status) + # Set the little status text in brackets next to the plugin name. + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Inactive)')) + if plugin.status == PluginStatus.Active: + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Active)')) + elif plugin.status == PluginStatus.Inactive: + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Inactive)')) + elif plugin.status == PluginStatus.Disabled: + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Disabled)')) + nameString = plugin.getString(StringType.Name) + item.setText(status_text % nameString[u'plural']) + # If the plugin has an icon, set it! + if plugin.icon: + item.setIcon(plugin.icon) + self.pluginListWidget.addItem(item) + + def _clearDetails(self): + self.statusComboBox.setCurrentIndex(-1) + self.versionNumberLabel.setText(u'') + self.aboutTextBrowser.setHtml(u'') + self.statusComboBox.setEnabled(False) + + def _setDetails(self): + log.debug('PluginStatus: %s', str(self.activePlugin.status)) + self.versionNumberLabel.setText(self.activePlugin.version) + self.aboutTextBrowser.setHtml(self.activePlugin.about()) + self.programaticChange = True + status = 1 + if self.activePlugin.status == PluginStatus.Active: + status = 0 + self.statusComboBox.setCurrentIndex(status) + self.statusComboBox.setEnabled(True) + self.programaticChange = False + + def onPluginListWidgetSelectionChanged(self): + if self.pluginListWidget.currentItem() is None: + self._clearDetails() + return + plugin_name_more = self.pluginListWidget.currentItem().text().split(u' ')[0] + self.activePlugin = None + for plugin in self.parent.plugin_manager.plugins: + nameString = plugin.getString(StringType.Name) + if nameString[u'plural'] == plugin_name_more: + self.activePlugin = plugin + break + if self.activePlugin: + self._setDetails() + else: + self._clearDetails() + + def onStatusComboBoxChanged(self, status): + if self.programaticChange: + return + if status == 0: + self.activePlugin.toggleStatus(PluginStatus.Active) + self.activePlugin.initialise() + else: + self.activePlugin.toggleStatus(PluginStatus.Inactive) + self.activePlugin.finalise() + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Inactive)')) + if self.activePlugin.status == PluginStatus.Active: + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Active)')) + elif self.activePlugin.status == PluginStatus.Inactive: + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Inactive)')) + elif self.activePlugin.status == PluginStatus.Disabled: + status_text = unicode( + translate('OpenLP.PluginForm', '%s (Disabled)')) + nameString = self.activePlugin.getString(StringType.Name) + self.pluginListWidget.currentItem().setText( + status_text % nameString[u'plural']) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 2ea985598..1bfd1e777 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -1,982 +1,988 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 -import os - -from PyQt4 import QtCore, QtGui -from PyQt4.phonon import Phonon - -from openlp.core.ui import HideMode, MainDisplay -from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \ - ItemCapabilities, translate - -log = logging.getLogger(__name__) - -class SlideList(QtGui.QTableWidget): - """ - Customised version of QTableWidget which can respond to keyboard - events. - """ - def __init__(self, parent=None, name=None): - QtGui.QTableWidget.__init__(self, parent.Controller) - self.parent = parent - self.hotkeyMap = { - QtCore.Qt.Key_Return: 'servicemanager_next_item', - QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', - QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', - QtCore.Qt.Key_0: 'servicemanager_next_item', - QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} - - def keyPressEvent(self, event): - if isinstance(event, QtGui.QKeyEvent): - #here accept the event and do something - if event.key() == QtCore.Qt.Key_Up: - self.parent.onSlideSelectedPrevious() - event.accept() - elif event.key() == QtCore.Qt.Key_Down: - self.parent.onSlideSelectedNext() - event.accept() - elif event.key() == QtCore.Qt.Key_PageUp: - self.parent.onSlideSelectedFirst() - event.accept() - elif event.key() == QtCore.Qt.Key_PageDown: - self.parent.onSlideSelectedLast() - event.accept() - elif event.key() in self.hotkeyMap and self.parent.isLive: - Receiver.send_message(self.hotkeyMap[event.key()]) - event.accept() - event.ignore() - else: - event.ignore() - -class SlideController(QtGui.QWidget): - """ - SlideController is the slide controller widget. This widget is what the - user uses to control the displaying of verses/slides/etc on the screen. - """ - def __init__(self, parent, settingsmanager, screens, isLive=False): - """ - Set up the Slide Controller. - """ - QtGui.QWidget.__init__(self, parent) - self.settingsmanager = settingsmanager - self.isLive = isLive - self.parent = parent - self.screens = screens - self.ratio = float(self.screens.current[u'size'].width()) / \ - float(self.screens.current[u'size'].height()) - self.display = MainDisplay(self, screens, isLive) - self.loopList = [ - u'Start Loop', - u'Loop Separator', - u'Image SpinBox' - ] - self.songEditList = [ - u'Edit Song', - ] - self.volume = 10 - self.timer_id = 0 - self.songEdit = False - self.selectedRow = 0 - self.serviceItem = None - self.alertTab = None - self.Panel = QtGui.QWidget(parent.ControlSplitter) - self.slideList = {} - # Layout for holding panel - self.PanelLayout = QtGui.QVBoxLayout(self.Panel) - self.PanelLayout.setSpacing(0) - self.PanelLayout.setMargin(0) - # Type label for the top of the slide controller - self.TypeLabel = QtGui.QLabel(self.Panel) - if self.isLive: - self.TypeLabel.setText(translate('OpenLP.SlideController', 'Live')) - self.split = 1 - self.typePrefix = u'live' - else: - self.TypeLabel.setText(translate('OpenLP.SlideController', - 'Preview')) - self.split = 0 - self.typePrefix = u'preview' - self.TypeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;') - self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter) - self.PanelLayout.addWidget(self.TypeLabel) - # Splitter - self.Splitter = QtGui.QSplitter(self.Panel) - self.Splitter.setOrientation(QtCore.Qt.Vertical) - self.Splitter.setOpaqueResize(False) - self.PanelLayout.addWidget(self.Splitter) - # Actual controller section - self.Controller = QtGui.QWidget(self.Splitter) - self.Controller.setGeometry(QtCore.QRect(0, 0, 100, 536)) - self.Controller.setSizePolicy( - QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, - QtGui.QSizePolicy.Maximum)) - self.ControllerLayout = QtGui.QVBoxLayout(self.Controller) - self.ControllerLayout.setSpacing(0) - self.ControllerLayout.setMargin(0) - # Controller list view - self.PreviewListWidget = SlideList(self) - self.PreviewListWidget.setColumnCount(1) - self.PreviewListWidget.horizontalHeader().setVisible(False) - self.PreviewListWidget.setColumnWidth( - 0, self.Controller.width()) - self.PreviewListWidget.isLive = self.isLive - self.PreviewListWidget.setObjectName(u'PreviewListWidget') - self.PreviewListWidget.setSelectionBehavior(1) - self.PreviewListWidget.setEditTriggers( - QtGui.QAbstractItemView.NoEditTriggers) - self.PreviewListWidget.setHorizontalScrollBarPolicy( - QtCore.Qt.ScrollBarAlwaysOff) - self.PreviewListWidget.setAlternatingRowColors(True) - self.ControllerLayout.addWidget(self.PreviewListWidget) - # Build the full toolbar - self.Toolbar = OpenLPToolbar(self) - sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, - QtGui.QSizePolicy.Fixed) - sizeToolbarPolicy.setHorizontalStretch(0) - sizeToolbarPolicy.setVerticalStretch(0) - sizeToolbarPolicy.setHeightForWidth( - self.Toolbar.sizePolicy().hasHeightForWidth()) - self.Toolbar.setSizePolicy(sizeToolbarPolicy) - self.Toolbar.addToolbarButton( - u'Previous Slide', u':/slides/slide_previous.png', - translate('OpenLP.SlideController', 'Move to previous'), - self.onSlideSelectedPrevious) - self.Toolbar.addToolbarButton( - u'Next Slide', u':/slides/slide_next.png', - translate('OpenLP.SlideController', 'Move to next'), - self.onSlideSelectedNext) - if self.isLive: - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.HideMenu = QtGui.QToolButton(self.Toolbar) - self.HideMenu.setText(translate('OpenLP.SlideController', 'Hide')) - self.HideMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup) - self.Toolbar.addToolbarWidget(u'Hide Menu', self.HideMenu) - self.HideMenu.setMenu(QtGui.QMenu( - translate('OpenLP.SlideController', 'Hide'), self.Toolbar)) - self.BlankScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_blank.png'), u'Blank Screen', self.HideMenu) - self.BlankScreen.setCheckable(True) - QtCore.QObject.connect(self.BlankScreen, - QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) - self.ThemeScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_theme.png'), u'Blank to Theme', self.HideMenu) - self.ThemeScreen.setCheckable(True) - QtCore.QObject.connect(self.ThemeScreen, - QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) - if self.screens.display_count > 1: - self.DesktopScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_desktop.png'), u'Show Desktop', - self.HideMenu) - self.DesktopScreen.setCheckable(True) - QtCore.QObject.connect(self.DesktopScreen, - QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) - self.HideMenu.setDefaultAction(self.BlankScreen) - self.HideMenu.menu().addAction(self.BlankScreen) - self.HideMenu.menu().addAction(self.ThemeScreen) - if self.screens.display_count > 1: - self.HideMenu.menu().addAction(self.DesktopScreen) - if not self.isLive: - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.Toolbar.addToolbarButton( - u'Go Live', u':/general/general_live.png', - translate('OpenLP.SlideController', 'Move to live'), - self.onGoLive) - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.Toolbar.addToolbarButton( - u'Edit Song', u':/general/general_edit.png', - translate('OpenLP.SlideController', 'Edit and re-preview Song'), - self.onEditSong) - if isLive: - self.Toolbar.addToolbarSeparator(u'Loop Separator') - self.Toolbar.addToolbarButton( - u'Start Loop', u':/media/media_time.png', - translate('OpenLP.SlideController', 'Start continuous loop'), - self.onStartLoop) - self.Toolbar.addToolbarButton( - u'Stop Loop', u':/media/media_stop.png', - translate('OpenLP.SlideController', 'Stop continuous loop'), - self.onStopLoop) - self.DelaySpinBox = QtGui.QSpinBox() - self.DelaySpinBox.setMinimum(1) - self.DelaySpinBox.setMaximum(180) - self.Toolbar.addToolbarWidget( - u'Image SpinBox', self.DelaySpinBox) - self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController', - 's')) - self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController', - 'Delay between slides in seconds')) - self.ControllerLayout.addWidget(self.Toolbar) - # Build a Media ToolBar - self.Mediabar = OpenLPToolbar(self) - self.Mediabar.addToolbarButton( - u'Media Start', u':/slides/media_playback_start.png', - translate('OpenLP.SlideController', 'Start playing media'), - self.onMediaPlay) - self.Mediabar.addToolbarButton( - u'Media Pause', u':/slides/media_playback_pause.png', - translate('OpenLP.SlideController', 'Start playing media'), - self.onMediaPause) - self.Mediabar.addToolbarButton( - u'Media Stop', u':/slides/media_playback_stop.png', - translate('OpenLP.SlideController', 'Start playing media'), - self.onMediaStop) - if not self.isLive: - self.seekSlider = Phonon.SeekSlider() - self.seekSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.seekSlider.setObjectName(u'seekSlider') - self.Mediabar.addToolbarWidget( - u'Seek Slider', self.seekSlider) - self.volumeSlider = Phonon.VolumeSlider() - self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.volumeSlider.setObjectName(u'volumeSlider') - self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) - else: - self.volumeSlider = QtGui.QSlider(QtCore.Qt.Horizontal) - self.volumeSlider.setTickInterval(1) - self.volumeSlider.setTickPosition(QtGui.QSlider.TicksAbove) - self.volumeSlider.setMinimum(0) - self.volumeSlider.setMaximum(10) - self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.volumeSlider.setObjectName(u'volumeSlider') - self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) - self.ControllerLayout.addWidget(self.Mediabar) - # Build the Song Toolbar - if isLive: - self.SongMenu = QtGui.QToolButton(self.Toolbar) - self.SongMenu.setText(translate('OpenLP.SlideController', - 'Go to')) - self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup) - self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu) - self.SongMenu.setMenu(QtGui.QMenu( - translate('OpenLP.SlideController', 'Go to'), - self.Toolbar)) - self.Toolbar.makeWidgetsInvisible([u'Song Menu']) - # Screen preview area - self.PreviewFrame = QtGui.QFrame(self.Splitter) - self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) - self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy( - QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Label)) - self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel) - self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken) - self.PreviewFrame.setObjectName(u'PreviewFrame') - self.grid = QtGui.QGridLayout(self.PreviewFrame) - self.grid.setMargin(8) - self.grid.setObjectName(u'grid') - self.SlideLayout = QtGui.QVBoxLayout() - self.SlideLayout.setSpacing(0) - self.SlideLayout.setMargin(0) - self.SlideLayout.setObjectName(u'SlideLayout') - self.mediaObject = Phonon.MediaObject(self) - self.video = Phonon.VideoWidget() - self.video.setVisible(False) - self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject) - Phonon.createPath(self.mediaObject, self.video) - Phonon.createPath(self.mediaObject, self.audio) - if not self.isLive: - self.video.setGeometry(QtCore.QRect(0, 0, 300, 225)) - self.video.setVisible(False) - self.SlideLayout.insertWidget(0, self.video) - # Actual preview screen - self.SlidePreview = QtGui.QLabel(self) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, - QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.SlidePreview.sizePolicy().hasHeightForWidth()) - self.SlidePreview.setSizePolicy(sizePolicy) - self.SlidePreview.setFixedSize( - QtCore.QSize(self.settingsmanager.slidecontroller_image, - self.settingsmanager.slidecontroller_image / self.ratio)) - self.SlidePreview.setFrameShape(QtGui.QFrame.Box) - self.SlidePreview.setFrameShadow(QtGui.QFrame.Plain) - self.SlidePreview.setLineWidth(1) - self.SlidePreview.setScaledContents(True) - self.SlidePreview.setObjectName(u'SlidePreview') - self.SlideLayout.insertWidget(0, self.SlidePreview) - self.grid.addLayout(self.SlideLayout, 0, 0, 1, 1) - # Signals - QtCore.QObject.connect(self.PreviewListWidget, - QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) - if not self.isLive: - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): - QtCore.QObject.connect(self.PreviewListWidget, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLive) - if isLive: - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), - self.receiveSpinDelay) - if isLive: - self.Toolbar.makeWidgetsInvisible(self.loopList) - self.Toolbar.actions[u'Stop Loop'].setVisible(False) - else: - self.Toolbar.makeWidgetsInvisible(self.songEditList) - self.Mediabar.setVisible(False) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_stop_loop' % self.typePrefix), - self.onStopLoop) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_first' % self.typePrefix), - self.onSlideSelectedFirst) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_next' % self.typePrefix), - self.onSlideSelectedNext) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_previous' % self.typePrefix), - self.onSlideSelectedPrevious) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_next_noloop' % self.typePrefix), - self.onSlideSelectedNextNoloop) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_previous_noloop' % - self.typePrefix), - self.onSlideSelectedPreviousNoloop) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_last' % self.typePrefix), - self.onSlideSelectedLast) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_change' % self.typePrefix), - self.onSlideChange) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_set' % self.typePrefix), - self.onSlideSelectedIndex) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_blank' % self.typePrefix), - self.onSlideBlank) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.typePrefix), - self.onSlideUnblank) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix), - self.onTextRequest) - QtCore.QObject.connect(self.Splitter, - QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) - if self.isLive: - QtCore.QObject.connect(self.volumeSlider, - QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) - - def screenSizeChanged(self): - """ - Settings dialog has changed the screen size of adjust output and - screen previews - """ - log.debug(u'screenSizeChanged live = %s' % self.isLive) - # rebuild display as screen size changed - self.display = MainDisplay(self, self.screens, self.isLive) - self.display.alertTab = self.alertTab - self.ratio = float(self.screens.current[u'size'].width()) / \ - float(self.screens.current[u'size'].height()) - self.display.setup() - self.SlidePreview.setFixedSize( - QtCore.QSize(self.settingsmanager.slidecontroller_image, - self.settingsmanager.slidecontroller_image / self.ratio)) - - def widthChanged(self): - """ - Handle changes of width from the splitter between the live and preview - controller. Event only issues when changes have finished - """ - log.debug(u'widthChanged live = %s' % self.isLive) - width = self.parent.ControlSplitter.sizes()[self.split] - height = width * self.parent.RenderManager.screen_ratio - self.PreviewListWidget.setColumnWidth(0, width) - # Sort out image heights (Songs, bibles excluded) - if self.serviceItem and not self.serviceItem.is_text(): - for framenumber in range(len(self.serviceItem.get_frames())): - self.PreviewListWidget.setRowHeight(framenumber, height) - - def trackSplitter(self, tab, pos): - """ - Splitter between the slide list and the preview panel - """ - pass - - def onSongBarHandler(self): - request = unicode(self.sender().text()) - slideno = self.slideList[request] - if slideno > self.PreviewListWidget.rowCount(): - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) - else: - self.PreviewListWidget.selectRow(slideno) - self.onSlideSelected() - - def receiveSpinDelay(self, value): - self.DelaySpinBox.setValue(int(value)) - - def enableToolBar(self, item): - """ - Allows the toolbars to be reconfigured based on Controller Type - and ServiceItem Type - """ - if self.isLive: - self.enableLiveToolBar(item) - else: - self.enablePreviewToolBar(item) - - def enableLiveToolBar(self, item): - """ - Allows the live toolbar to be customised - """ - self.Toolbar.setVisible(True) - self.Mediabar.setVisible(False) - self.Toolbar.makeWidgetsInvisible([u'Song Menu']) - self.Toolbar.makeWidgetsInvisible(self.loopList) - self.Toolbar.actions[u'Stop Loop'].setVisible(False) - if item.is_text(): - if QtCore.QSettings().value( - self.parent.songsSettingsSection + u'/show songbar', - QtCore.QVariant(True)).toBool() and len(self.slideList) > 0: - self.Toolbar.makeWidgetsVisible([u'Song Menu']) - if item.is_capable(ItemCapabilities.AllowsLoop) and \ - len(item.get_frames()) > 1: - self.Toolbar.makeWidgetsVisible(self.loopList) - if item.is_media(): - self.Toolbar.setVisible(False) - self.Mediabar.setVisible(True) - - def enablePreviewToolBar(self, item): - """ - Allows the Preview toolbar to be customised - """ - self.Toolbar.setVisible(True) - self.Mediabar.setVisible(False) - self.Toolbar.makeWidgetsInvisible(self.songEditList) - if item.is_capable(ItemCapabilities.AllowsEdit) and item.from_plugin: - self.Toolbar.makeWidgetsVisible(self.songEditList) - elif item.is_media(): - self.Toolbar.setVisible(False) - self.Mediabar.setVisible(True) - self.volumeSlider.setAudioOutput(self.audio) - - def refreshServiceItem(self): - """ - Method to update the service item if the screen has changed - """ - log.debug(u'refreshServiceItem live = %s' % self.isLive) - if self.serviceItem: - if self.serviceItem.is_text() or self.serviceItem.is_image(): - item = self.serviceItem - item.render() - self._processItem(item, self.selectedRow) - - def addServiceItem(self, item): - """ - Method to install the service item into the controller - Called by plugins - """ - log.debug(u'addServiceItem live = %s' % self.isLive) - item.render() - slideno = 0 - if self.songEdit: - slideno = self.selectedRow - self.songEdit = False - self._processItem(item, slideno) - - def replaceServiceManagerItem(self, item): - """ - Replacement item following a remote edit - """ - if item.__eq__(self.serviceItem): - self._processItem(item, self.PreviewListWidget.currentRow()) - - def addServiceManagerItem(self, item, slideno): - """ - Method to install the service item into the controller and - request the correct toolbar for the plugin. - Called by ServiceManager - """ - log.debug(u'addServiceManagerItem live = %s' % self.isLive) - # If service item is the same as the current on only change slide - if item.__eq__(self.serviceItem): - self.PreviewListWidget.selectRow(slideno) - self.onSlideSelected() - return - self._processItem(item, slideno) - - def _processItem(self, serviceItem, slideno): - """ - Loads a ServiceItem into the system from ServiceManager - Display the slide number passed - """ - log.debug(u'processManagerItem live = %s' % self.isLive) - self.onStopLoop() - # If old item was a command tell it to stop - if self.serviceItem: - if self.serviceItem.is_command(): - Receiver.send_message(u'%s_stop' % - self.serviceItem.name.lower(), [serviceItem, self.isLive]) - if self.serviceItem.is_media(): - self.onMediaStop() - if self.isLive: - blanked = self.BlankScreen.isChecked() - else: - blanked = False - Receiver.send_message(u'%s_start' % serviceItem.name.lower(), - [serviceItem, self.isLive, blanked, slideno]) - self.slideList = {} - width = self.parent.ControlSplitter.sizes()[self.split] - # Set pointing cursor when we have somthing to point at - self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor) - self.serviceItem = serviceItem - self.PreviewListWidget.clear() - self.PreviewListWidget.setRowCount(0) - 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) - item = QtGui.QTableWidgetItem() - slideHeight = 0 - if self.serviceItem.is_text(): - if frame[u'verseTag']: - bits = frame[u'verseTag'].split(u':') - tag = u'%s\n%s' % (bits[0][0], bits[1][0:] ) - tag1 = u'%s%s' % (bits[0][0], bits[1][0:] ) - row = tag - if self.isLive: - if tag1 not in self.slideList: - self.slideList[tag1] = framenumber - self.SongMenu.menu().addAction(tag1, - self.onSongBarHandler) - else: - row += 1 - item.setText(frame[u'text']) - else: - label = QtGui.QLabel() - label.setMargin(4) - pixmap = resize_image(frame[u'image'], - self.parent.RenderManager.width, - self.parent.RenderManager.height) - label.setScaledContents(True) - label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) - self.PreviewListWidget.setCellWidget(framenumber, 0, label) - slideHeight = width * self.parent.RenderManager.screen_ratio - row += 1 - 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.PreviewListWidget.viewport().size().width()) - if slideno > self.PreviewListWidget.rowCount(): - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) - else: - self.PreviewListWidget.selectRow(slideno) - self.enableToolBar(serviceItem) - # Pass to display for viewing - self.display.buildHtml(self.serviceItem) - if serviceItem.is_media(): - self.onMediaStart(serviceItem) - self.onSlideSelected() - self.PreviewListWidget.setFocus() - Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix, - [serviceItem]) - - def onTextRequest(self): - """ - Return the text for the current item in controller - """ - data = [] - if self.serviceItem: - for framenumber, frame in enumerate(self.serviceItem.get_frames()): - dataItem = {} - if self.serviceItem.is_text(): - dataItem[u'tag'] = unicode(frame[u'verseTag']) - dataItem[u'text'] = unicode(frame[u'html']) - else: - dataItem[u'tag'] = unicode(framenumber) - dataItem[u'text'] = u'' - dataItem[u'selected'] = \ - (self.PreviewListWidget.currentRow() == framenumber) - data.append(dataItem) - Receiver.send_message(u'slidecontroller_%s_text_response' - % self.typePrefix, data) - - # Screen event methods - def onSlideSelectedFirst(self): - """ - Go to the first slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_first' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command(): - self.updatePreview() - else: - self.PreviewListWidget.selectRow(0) - self.onSlideSelected() - - def onSlideSelectedIndex(self, message): - """ - Go to the requested slide - """ - index = int(message[0]) - if not self.serviceItem: - return - Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive, index]) - if self.serviceItem.is_command(): - self.updatePreview() - else: - self.PreviewListWidget.selectRow(index) - self.onSlideSelected() - - def mainDisplaySetBackground(self): - """ - Allow the main display to blank the main display at startup time - """ - log.debug(u'mainDisplaySetBackground live = %s' % self.isLive) - if not self.display.primary: - self.onHideDisplay(True) - - def onSlideBlank(self): - """ - Handle the slidecontroller blank event - """ - self.onBlankDisplay(True) - - def onSlideUnblank(self): - """ - Handle the slidecontroller unblank event - """ - self.onBlankDisplay(False) - - def onBlankDisplay(self, checked): - """ - Handle the blank screen button actions - """ - log.debug(u'onBlankDisplay %s' % checked) - self.HideMenu.setDefaultAction(self.BlankScreen) - self.BlankScreen.setChecked(checked) - self.ThemeScreen.setChecked(False) - if self.screens.display_count > 1: - self.DesktopScreen.setChecked(False) - QtCore.QSettings().setValue( - self.parent.generalSettingsSection + u'/screen blank', - QtCore.QVariant(checked)) - if checked: - Receiver.send_message(u'maindisplay_hide', HideMode.Blank) - else: - Receiver.send_message(u'maindisplay_show') - self.blankPlugin(checked) - - def onThemeDisplay(self, checked): - """ - Handle the Theme screen button - """ - log.debug(u'onThemeDisplay %s' % checked) - self.HideMenu.setDefaultAction(self.ThemeScreen) - self.BlankScreen.setChecked(False) - self.ThemeScreen.setChecked(checked) - if self.screens.display_count > 1: - self.DesktopScreen.setChecked(False) - if checked: - Receiver.send_message(u'maindisplay_hide', HideMode.Theme) - else: - Receiver.send_message(u'maindisplay_show') - self.blankPlugin(checked) - - def onHideDisplay(self, checked): - """ - Handle the Hide screen button - """ - log.debug(u'onHideDisplay %s' % checked) - self.HideMenu.setDefaultAction(self.DesktopScreen) - self.BlankScreen.setChecked(False) - self.ThemeScreen.setChecked(False) - if self.screens.display_count > 1: - self.DesktopScreen.setChecked(checked) - if checked: - Receiver.send_message(u'maindisplay_hide', HideMode.Screen) - else: - Receiver.send_message(u'maindisplay_show') - self.hidePlugin(checked) - - def blankPlugin(self, blank): - """ - Blank the display screen within a plugin if required. - """ - log.debug(u'blankPlugin %s ', blank) - if self.serviceItem is not None: - if blank: - Receiver.send_message(u'%s_blank' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - else: - Receiver.send_message(u'%s_unblank' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - - def hidePlugin(self, hide): - """ - Tell the plugin to hide the display screen. - """ - log.debug(u'hidePlugin %s ', hide) - if self.serviceItem is not None: - if hide: - Receiver.send_message(u'%s_hide' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - else: - Receiver.send_message(u'%s_unblank' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - - def onSlideSelected(self): - """ - Generate the preview when you click on a slide. - if this is the Live Controller also display on the screen - """ - row = self.PreviewListWidget.currentRow() - self.selectedRow = 0 - if row > -1 and row < self.PreviewListWidget.rowCount(): - Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive, row]) - if self.serviceItem.is_command() and self.isLive: - self.updatePreview() - else: - frame, raw_html = self.serviceItem.get_rendered_frame(row) - if self.serviceItem.is_text(): - frame = self.display.text(raw_html) - else: - self.display.image(frame) - if isinstance(frame, QtGui.QImage): - self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) - else: - self.SlidePreview.setPixmap(QtGui.QPixmap(frame)) - self.selectedRow = row - Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, - row) - - def onSlideChange(self, row): - """ - The slide has been changed. Update the slidecontroller accordingly - """ - self.PreviewListWidget.selectRow(row) - self.updatePreview() - Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, - row) - - def updatePreview(self): - if not self.screens.current[u'primary']: - # Grab now, but try again in a couple of seconds if slide change - # is slow - QtCore.QTimer.singleShot(0.5, self.grabMainDisplay) - QtCore.QTimer.singleShot(2.5, self.grabMainDisplay) - else: - label = self.PreviewListWidget.cellWidget( - self.PreviewListWidget.currentRow(), 1) - if label: - self.SlidePreview.setPixmap(label.pixmap()) - - def grabMainDisplay(self): - winid = QtGui.QApplication.desktop().winId() - rect = self.screens.current[u'size'] - winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), - rect.y(), rect.width(), rect.height()) - self.SlidePreview.setPixmap(winimg) - - def onSlideSelectedNextNoloop(self): - self.onSlideSelectedNext(False) - - def onSlideSelectedNext(self, loop=True): - """ - Go to the next slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command() and self.isLive: - self.updatePreview() - else: - row = self.PreviewListWidget.currentRow() + 1 - if row == self.PreviewListWidget.rowCount(): - if loop: - row = 0 - else: - Receiver.send_message('servicemanager_next_item') - return - self.PreviewListWidget.selectRow(row) - self.onSlideSelected() - - def onSlideSelectedPreviousNoloop(self): - self.onSlideSelectedPrevious(False) - - def onSlideSelectedPrevious(self, loop=True): - """ - Go to the previous slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command() and self.isLive: - self.updatePreview() - else: - row = self.PreviewListWidget.currentRow() - 1 - if row == -1: - if loop: - row = self.PreviewListWidget.rowCount() - 1 - else: - row = 0 - self.PreviewListWidget.selectRow(row) - self.onSlideSelected() - - def onSlideSelectedLast(self): - """ - Go to the last slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_last' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command(): - self.updatePreview() - else: - self.PreviewListWidget.selectRow( - self.PreviewListWidget.rowCount() - 1) - self.onSlideSelected() - - def onStartLoop(self): - """ - Start the timer loop running and store the timer id - """ - if self.PreviewListWidget.rowCount() > 1: - self.timer_id = self.startTimer( - int(self.DelaySpinBox.value()) * 1000) - self.Toolbar.actions[u'Stop Loop'].setVisible(True) - self.Toolbar.actions[u'Start Loop'].setVisible(False) - - def onStopLoop(self): - """ - Stop the timer loop running - """ - if self.timer_id != 0: - self.killTimer(self.timer_id) - self.timer_id = 0 - self.Toolbar.actions[u'Start Loop'].setVisible(True) - self.Toolbar.actions[u'Stop Loop'].setVisible(False) - - def timerEvent(self, event): - """ - If the timer event is for this window select next slide - """ - if event.timerId() == self.timer_id: - self.onSlideSelectedNext() - - def onEditSong(self): - """ - From the preview display requires the service Item to be editied - """ - self.songEdit = True - Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), - u'P:%s' % self.serviceItem.editId) - - def onGoLive(self): - """ - If preview copy slide item to live - """ - row = self.PreviewListWidget.currentRow() - if row > -1 and row < self.PreviewListWidget.rowCount(): - self.parent.LiveController.addServiceManagerItem( - self.serviceItem, row) - - def onMediaStart(self, item): - """ - Respond to the arrival of a media service item - """ - log.debug(u'SlideController onMediaStart') - if self.isLive: - file = os.path.join(item.get_frame_path(), item.get_frame_title()) - self.display.video(file, self.volume) - self.volumeSlider.setValue(self.volume) - else: - self.mediaObject.stop() - self.mediaObject.clearQueue() - file = os.path.join(item.get_frame_path(), item.get_frame_title()) - self.mediaObject.setCurrentSource(Phonon.MediaSource(file)) - self.seekSlider.setMediaObject(self.mediaObject) - self.seekSlider.show() - self.onMediaPlay() - - def mediaVolume(self): - """ - Respond to the release of Volume Slider - """ - log.debug(u'SlideController mediaVolume') - self.volume = self.volumeSlider.value() - self.display.videoVolume(self.volume) - - def onMediaPause(self): - """ - Respond to the Pause from the media Toolbar - """ - log.debug(u'SlideController onMediaPause') - if self.isLive: - self.display.videoPause() - else: - self.mediaObject.pause() - - def onMediaPlay(self): - """ - Respond to the Play from the media Toolbar - """ - log.debug(u'SlideController onMediaPlay') - if self.isLive: - self.display.videoPlay() - else: - self.SlidePreview.hide() - self.video.show() - self.mediaObject.play() - - def onMediaStop(self): - """ - Respond to the Stop from the media Toolbar - """ - log.debug(u'SlideController onMediaStop') - if self.isLive: - self.display.videoStop() - else: - self.mediaObject.stop() - self.video.hide() - self.SlidePreview.clear() - self.SlidePreview.show() +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 +import os + +from PyQt4 import QtCore, QtGui +from PyQt4.phonon import Phonon + +from openlp.core.ui import HideMode, MainDisplay +from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \ + ItemCapabilities, translate + +log = logging.getLogger(__name__) + +class SlideList(QtGui.QTableWidget): + """ + Customised version of QTableWidget which can respond to keyboard + events. + """ + def __init__(self, parent=None, name=None): + QtGui.QTableWidget.__init__(self, parent.Controller) + self.parent = parent + self.hotkeyMap = { + QtCore.Qt.Key_Return: 'servicemanager_next_item', + QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_0: 'servicemanager_next_item', + QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} + + def keyPressEvent(self, event): + if isinstance(event, QtGui.QKeyEvent): + #here accept the event and do something + if event.key() == QtCore.Qt.Key_Up: + self.parent.onSlideSelectedPrevious() + event.accept() + elif event.key() == QtCore.Qt.Key_Down: + self.parent.onSlideSelectedNext() + event.accept() + elif event.key() == QtCore.Qt.Key_PageUp: + self.parent.onSlideSelectedFirst() + event.accept() + elif event.key() == QtCore.Qt.Key_PageDown: + self.parent.onSlideSelectedLast() + event.accept() + elif event.key() in self.hotkeyMap and self.parent.isLive: + Receiver.send_message(self.hotkeyMap[event.key()]) + event.accept() + event.ignore() + else: + event.ignore() + +class SlideController(QtGui.QWidget): + """ + SlideController is the slide controller widget. This widget is what the + user uses to control the displaying of verses/slides/etc on the screen. + """ + def __init__(self, parent, settingsmanager, screens, isLive=False): + """ + Set up the Slide Controller. + """ + QtGui.QWidget.__init__(self, parent) + self.settingsmanager = settingsmanager + self.isLive = isLive + self.parent = parent + self.screens = screens + self.ratio = float(self.screens.current[u'size'].width()) / \ + float(self.screens.current[u'size'].height()) + self.display = MainDisplay(self, screens, isLive) + self.loopList = [ + u'Start Loop', + u'Loop Separator', + u'Image SpinBox' + ] + self.songEditList = [ + u'Edit Song', + ] + self.volume = 10 + self.timer_id = 0 + self.songEdit = False + self.selectedRow = 0 + self.serviceItem = None + self.alertTab = None + self.Panel = QtGui.QWidget(parent.ControlSplitter) + self.slideList = {} + # Layout for holding panel + self.PanelLayout = QtGui.QVBoxLayout(self.Panel) + self.PanelLayout.setSpacing(0) + self.PanelLayout.setMargin(0) + # Type label for the top of the slide controller + self.TypeLabel = QtGui.QLabel(self.Panel) + if self.isLive: + self.TypeLabel.setText(translate('OpenLP.SlideController', 'Live')) + self.split = 1 + self.typePrefix = u'live' + else: + self.TypeLabel.setText(translate('OpenLP.SlideController', + 'Preview')) + self.split = 0 + self.typePrefix = u'preview' + self.TypeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;') + self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter) + self.PanelLayout.addWidget(self.TypeLabel) + # Splitter + self.Splitter = QtGui.QSplitter(self.Panel) + self.Splitter.setOrientation(QtCore.Qt.Vertical) + self.Splitter.setOpaqueResize(False) + self.PanelLayout.addWidget(self.Splitter) + # Actual controller section + self.Controller = QtGui.QWidget(self.Splitter) + self.Controller.setGeometry(QtCore.QRect(0, 0, 100, 536)) + self.Controller.setSizePolicy( + QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, + QtGui.QSizePolicy.Maximum)) + self.ControllerLayout = QtGui.QVBoxLayout(self.Controller) + self.ControllerLayout.setSpacing(0) + self.ControllerLayout.setMargin(0) + # Controller list view + self.PreviewListWidget = SlideList(self) + self.PreviewListWidget.setColumnCount(1) + self.PreviewListWidget.horizontalHeader().setVisible(False) + self.PreviewListWidget.setColumnWidth( + 0, self.Controller.width()) + self.PreviewListWidget.isLive = self.isLive + self.PreviewListWidget.setObjectName(u'PreviewListWidget') + self.PreviewListWidget.setSelectionBehavior(1) + self.PreviewListWidget.setEditTriggers( + QtGui.QAbstractItemView.NoEditTriggers) + self.PreviewListWidget.setHorizontalScrollBarPolicy( + QtCore.Qt.ScrollBarAlwaysOff) + self.PreviewListWidget.setAlternatingRowColors(True) + self.ControllerLayout.addWidget(self.PreviewListWidget) + # Build the full toolbar + self.Toolbar = OpenLPToolbar(self) + sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + sizeToolbarPolicy.setHorizontalStretch(0) + sizeToolbarPolicy.setVerticalStretch(0) + sizeToolbarPolicy.setHeightForWidth( + self.Toolbar.sizePolicy().hasHeightForWidth()) + self.Toolbar.setSizePolicy(sizeToolbarPolicy) + self.Toolbar.addToolbarButton( + u'Previous Slide', u':/slides/slide_previous.png', + translate('OpenLP.SlideController', 'Move to previous'), + self.onSlideSelectedPrevious) + self.Toolbar.addToolbarButton( + u'Next Slide', u':/slides/slide_next.png', + translate('OpenLP.SlideController', 'Move to next'), + self.onSlideSelectedNext) + if self.isLive: + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.HideMenu = QtGui.QToolButton(self.Toolbar) + self.HideMenu.setText(translate('OpenLP.SlideController', 'Hide')) + self.HideMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup) + self.Toolbar.addToolbarWidget(u'Hide Menu', self.HideMenu) + self.HideMenu.setMenu(QtGui.QMenu( + translate('OpenLP.SlideController', 'Hide'), self.Toolbar)) + self.BlankScreen = QtGui.QAction(QtGui.QIcon( + u':/slides/slide_blank.png'), u'Blank Screen', self.HideMenu) + self.BlankScreen.setText( + translate('OpenLP.SlideController', 'Blank Screen')) + self.BlankScreen.setCheckable(True) + QtCore.QObject.connect(self.BlankScreen, + QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) + self.ThemeScreen = QtGui.QAction(QtGui.QIcon( + u':/slides/slide_theme.png'), u'Blank to Theme', self.HideMenu) + self.ThemeScreen.setText( + translate('OpenLP.SlideController', 'Blank to Theme')) + self.ThemeScreen.setCheckable(True) + QtCore.QObject.connect(self.ThemeScreen, + QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) + if self.screens.display_count > 1: + self.DesktopScreen = QtGui.QAction(QtGui.QIcon( + u':/slides/slide_desktop.png'), u'Show Desktop', + self.HideMenu) + self.DesktopScreen.setText( + translate('OpenLP.SlideController', 'Show Desktop')) + self.DesktopScreen.setCheckable(True) + QtCore.QObject.connect(self.DesktopScreen, + QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) + self.HideMenu.setDefaultAction(self.BlankScreen) + self.HideMenu.menu().addAction(self.BlankScreen) + self.HideMenu.menu().addAction(self.ThemeScreen) + if self.screens.display_count > 1: + self.HideMenu.menu().addAction(self.DesktopScreen) + if not self.isLive: + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + u'Go Live', u':/general/general_live.png', + translate('OpenLP.SlideController', 'Move to live'), + self.onGoLive) + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + u'Edit Song', u':/general/general_edit.png', + translate('OpenLP.SlideController', 'Edit and re-preview Song'), + self.onEditSong) + if isLive: + self.Toolbar.addToolbarSeparator(u'Loop Separator') + self.Toolbar.addToolbarButton( + u'Start Loop', u':/media/media_time.png', + translate('OpenLP.SlideController', 'Start continuous loop'), + self.onStartLoop) + self.Toolbar.addToolbarButton( + u'Stop Loop', u':/media/media_stop.png', + translate('OpenLP.SlideController', 'Stop continuous loop'), + self.onStopLoop) + self.DelaySpinBox = QtGui.QSpinBox() + self.DelaySpinBox.setMinimum(1) + self.DelaySpinBox.setMaximum(180) + self.Toolbar.addToolbarWidget( + u'Image SpinBox', self.DelaySpinBox) + self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController', + 's')) + self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController', + 'Delay between slides in seconds')) + self.ControllerLayout.addWidget(self.Toolbar) + # Build a Media ToolBar + self.Mediabar = OpenLPToolbar(self) + self.Mediabar.addToolbarButton( + u'Media Start', u':/slides/media_playback_start.png', + translate('OpenLP.SlideController', 'Start playing media'), + self.onMediaPlay) + self.Mediabar.addToolbarButton( + u'Media Pause', u':/slides/media_playback_pause.png', + translate('OpenLP.SlideController', 'Start playing media'), + self.onMediaPause) + self.Mediabar.addToolbarButton( + u'Media Stop', u':/slides/media_playback_stop.png', + translate('OpenLP.SlideController', 'Start playing media'), + self.onMediaStop) + if not self.isLive: + self.seekSlider = Phonon.SeekSlider() + self.seekSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.seekSlider.setObjectName(u'seekSlider') + self.Mediabar.addToolbarWidget( + u'Seek Slider', self.seekSlider) + self.volumeSlider = Phonon.VolumeSlider() + self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.volumeSlider.setObjectName(u'volumeSlider') + self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) + else: + self.volumeSlider = QtGui.QSlider(QtCore.Qt.Horizontal) + self.volumeSlider.setTickInterval(1) + self.volumeSlider.setTickPosition(QtGui.QSlider.TicksAbove) + self.volumeSlider.setMinimum(0) + self.volumeSlider.setMaximum(10) + self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.volumeSlider.setObjectName(u'volumeSlider') + self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) + self.ControllerLayout.addWidget(self.Mediabar) + # Build the Song Toolbar + if isLive: + self.SongMenu = QtGui.QToolButton(self.Toolbar) + self.SongMenu.setText(translate('OpenLP.SlideController', + 'Go to')) + self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup) + self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu) + self.SongMenu.setMenu(QtGui.QMenu( + translate('OpenLP.SlideController', 'Go to'), + self.Toolbar)) + self.Toolbar.makeWidgetsInvisible([u'Song Menu']) + # Screen preview area + self.PreviewFrame = QtGui.QFrame(self.Splitter) + self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) + self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy( + QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Label)) + self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel) + self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken) + self.PreviewFrame.setObjectName(u'PreviewFrame') + self.grid = QtGui.QGridLayout(self.PreviewFrame) + self.grid.setMargin(8) + self.grid.setObjectName(u'grid') + self.SlideLayout = QtGui.QVBoxLayout() + self.SlideLayout.setSpacing(0) + self.SlideLayout.setMargin(0) + self.SlideLayout.setObjectName(u'SlideLayout') + self.mediaObject = Phonon.MediaObject(self) + self.video = Phonon.VideoWidget() + self.video.setVisible(False) + self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject) + Phonon.createPath(self.mediaObject, self.video) + Phonon.createPath(self.mediaObject, self.audio) + if not self.isLive: + self.video.setGeometry(QtCore.QRect(0, 0, 300, 225)) + self.video.setVisible(False) + self.SlideLayout.insertWidget(0, self.video) + # Actual preview screen + self.SlidePreview = QtGui.QLabel(self) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth( + self.SlidePreview.sizePolicy().hasHeightForWidth()) + self.SlidePreview.setSizePolicy(sizePolicy) + self.SlidePreview.setFixedSize( + QtCore.QSize(self.settingsmanager.slidecontroller_image, + self.settingsmanager.slidecontroller_image / self.ratio)) + self.SlidePreview.setFrameShape(QtGui.QFrame.Box) + self.SlidePreview.setFrameShadow(QtGui.QFrame.Plain) + self.SlidePreview.setLineWidth(1) + self.SlidePreview.setScaledContents(True) + self.SlidePreview.setObjectName(u'SlidePreview') + self.SlideLayout.insertWidget(0, self.SlidePreview) + self.grid.addLayout(self.SlideLayout, 0, 0, 1, 1) + # Signals + QtCore.QObject.connect(self.PreviewListWidget, + QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) + if not self.isLive: + if QtCore.QSettings().value(u'advanced/double click live', + QtCore.QVariant(False)).toBool(): + QtCore.QObject.connect(self.PreviewListWidget, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLive) + if isLive: + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), + self.receiveSpinDelay) + if isLive: + self.Toolbar.makeWidgetsInvisible(self.loopList) + self.Toolbar.actions[u'Stop Loop'].setVisible(False) + else: + self.Toolbar.makeWidgetsInvisible(self.songEditList) + self.Mediabar.setVisible(False) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_stop_loop' % self.typePrefix), + self.onStopLoop) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_first' % self.typePrefix), + self.onSlideSelectedFirst) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_next' % self.typePrefix), + self.onSlideSelectedNext) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_previous' % self.typePrefix), + self.onSlideSelectedPrevious) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_next_noloop' % self.typePrefix), + self.onSlideSelectedNextNoloop) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_previous_noloop' % + self.typePrefix), + self.onSlideSelectedPreviousNoloop) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_last' % self.typePrefix), + self.onSlideSelectedLast) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_change' % self.typePrefix), + self.onSlideChange) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_set' % self.typePrefix), + self.onSlideSelectedIndex) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_blank' % self.typePrefix), + self.onSlideBlank) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.typePrefix), + self.onSlideUnblank) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix), + self.onTextRequest) + QtCore.QObject.connect(self.Splitter, + QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) + if self.isLive: + QtCore.QObject.connect(self.volumeSlider, + QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) + + def screenSizeChanged(self): + """ + Settings dialog has changed the screen size of adjust output and + screen previews + """ + log.debug(u'screenSizeChanged live = %s' % self.isLive) + # rebuild display as screen size changed + self.display = MainDisplay(self, self.screens, self.isLive) + self.display.alertTab = self.alertTab + self.ratio = float(self.screens.current[u'size'].width()) / \ + float(self.screens.current[u'size'].height()) + self.display.setup() + self.SlidePreview.setFixedSize( + QtCore.QSize(self.settingsmanager.slidecontroller_image, + self.settingsmanager.slidecontroller_image / self.ratio)) + + def widthChanged(self): + """ + Handle changes of width from the splitter between the live and preview + controller. Event only issues when changes have finished + """ + log.debug(u'widthChanged live = %s' % self.isLive) + width = self.parent.ControlSplitter.sizes()[self.split] + height = width * self.parent.RenderManager.screen_ratio + self.PreviewListWidget.setColumnWidth(0, width) + # Sort out image heights (Songs, bibles excluded) + if self.serviceItem and not self.serviceItem.is_text(): + for framenumber in range(len(self.serviceItem.get_frames())): + self.PreviewListWidget.setRowHeight(framenumber, height) + + def trackSplitter(self, tab, pos): + """ + Splitter between the slide list and the preview panel + """ + pass + + def onSongBarHandler(self): + request = unicode(self.sender().text()) + slideno = self.slideList[request] + if slideno > self.PreviewListWidget.rowCount(): + self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + else: + self.PreviewListWidget.selectRow(slideno) + self.onSlideSelected() + + def receiveSpinDelay(self, value): + self.DelaySpinBox.setValue(int(value)) + + def enableToolBar(self, item): + """ + Allows the toolbars to be reconfigured based on Controller Type + and ServiceItem Type + """ + if self.isLive: + self.enableLiveToolBar(item) + else: + self.enablePreviewToolBar(item) + + def enableLiveToolBar(self, item): + """ + Allows the live toolbar to be customised + """ + self.Toolbar.setVisible(True) + self.Mediabar.setVisible(False) + self.Toolbar.makeWidgetsInvisible([u'Song Menu']) + self.Toolbar.makeWidgetsInvisible(self.loopList) + self.Toolbar.actions[u'Stop Loop'].setVisible(False) + if item.is_text(): + if QtCore.QSettings().value( + self.parent.songsSettingsSection + u'/show songbar', + QtCore.QVariant(True)).toBool() and len(self.slideList) > 0: + self.Toolbar.makeWidgetsVisible([u'Song Menu']) + if item.is_capable(ItemCapabilities.AllowsLoop) and \ + len(item.get_frames()) > 1: + self.Toolbar.makeWidgetsVisible(self.loopList) + if item.is_media(): + self.Toolbar.setVisible(False) + self.Mediabar.setVisible(True) + + def enablePreviewToolBar(self, item): + """ + Allows the Preview toolbar to be customised + """ + self.Toolbar.setVisible(True) + self.Mediabar.setVisible(False) + self.Toolbar.makeWidgetsInvisible(self.songEditList) + if item.is_capable(ItemCapabilities.AllowsEdit) and item.from_plugin: + self.Toolbar.makeWidgetsVisible(self.songEditList) + elif item.is_media(): + self.Toolbar.setVisible(False) + self.Mediabar.setVisible(True) + self.volumeSlider.setAudioOutput(self.audio) + + def refreshServiceItem(self): + """ + Method to update the service item if the screen has changed + """ + log.debug(u'refreshServiceItem live = %s' % self.isLive) + if self.serviceItem: + if self.serviceItem.is_text() or self.serviceItem.is_image(): + item = self.serviceItem + item.render() + self._processItem(item, self.selectedRow) + + def addServiceItem(self, item): + """ + Method to install the service item into the controller + Called by plugins + """ + log.debug(u'addServiceItem live = %s' % self.isLive) + item.render() + slideno = 0 + if self.songEdit: + slideno = self.selectedRow + self.songEdit = False + self._processItem(item, slideno) + + def replaceServiceManagerItem(self, item): + """ + Replacement item following a remote edit + """ + if item.__eq__(self.serviceItem): + self._processItem(item, self.PreviewListWidget.currentRow()) + + def addServiceManagerItem(self, item, slideno): + """ + Method to install the service item into the controller and + request the correct toolbar for the plugin. + Called by ServiceManager + """ + log.debug(u'addServiceManagerItem live = %s' % self.isLive) + # If service item is the same as the current on only change slide + if item.__eq__(self.serviceItem): + self.PreviewListWidget.selectRow(slideno) + self.onSlideSelected() + return + self._processItem(item, slideno) + + def _processItem(self, serviceItem, slideno): + """ + Loads a ServiceItem into the system from ServiceManager + Display the slide number passed + """ + log.debug(u'processManagerItem live = %s' % self.isLive) + self.onStopLoop() + # If old item was a command tell it to stop + if self.serviceItem: + if self.serviceItem.is_command(): + Receiver.send_message(u'%s_stop' % + self.serviceItem.name.lower(), [serviceItem, self.isLive]) + if self.serviceItem.is_media(): + self.onMediaStop() + if self.isLive: + blanked = self.BlankScreen.isChecked() + else: + blanked = False + Receiver.send_message(u'%s_start' % serviceItem.name.lower(), + [serviceItem, self.isLive, blanked, slideno]) + self.slideList = {} + width = self.parent.ControlSplitter.sizes()[self.split] + # Set pointing cursor when we have somthing to point at + self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor) + self.serviceItem = serviceItem + self.PreviewListWidget.clear() + self.PreviewListWidget.setRowCount(0) + 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) + item = QtGui.QTableWidgetItem() + slideHeight = 0 + if self.serviceItem.is_text(): + if frame[u'verseTag']: + bits = frame[u'verseTag'].split(u':') + tag = u'%s\n%s' % (bits[0][0], bits[1][0:] ) + tag1 = u'%s%s' % (bits[0][0], bits[1][0:] ) + row = tag + if self.isLive: + if tag1 not in self.slideList: + self.slideList[tag1] = framenumber + self.SongMenu.menu().addAction(tag1, + self.onSongBarHandler) + else: + row += 1 + item.setText(frame[u'text']) + else: + label = QtGui.QLabel() + label.setMargin(4) + pixmap = resize_image(frame[u'image'], + self.parent.RenderManager.width, + self.parent.RenderManager.height) + label.setScaledContents(True) + label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) + self.PreviewListWidget.setCellWidget(framenumber, 0, label) + slideHeight = width * self.parent.RenderManager.screen_ratio + row += 1 + 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.PreviewListWidget.viewport().size().width()) + if slideno > self.PreviewListWidget.rowCount(): + self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + else: + self.PreviewListWidget.selectRow(slideno) + self.enableToolBar(serviceItem) + # Pass to display for viewing + self.display.buildHtml(self.serviceItem) + if serviceItem.is_media(): + self.onMediaStart(serviceItem) + self.onSlideSelected() + self.PreviewListWidget.setFocus() + Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix, + [serviceItem]) + + def onTextRequest(self): + """ + Return the text for the current item in controller + """ + data = [] + if self.serviceItem: + for framenumber, frame in enumerate(self.serviceItem.get_frames()): + dataItem = {} + if self.serviceItem.is_text(): + dataItem[u'tag'] = unicode(frame[u'verseTag']) + dataItem[u'text'] = unicode(frame[u'html']) + else: + dataItem[u'tag'] = unicode(framenumber) + dataItem[u'text'] = u'' + dataItem[u'selected'] = \ + (self.PreviewListWidget.currentRow() == framenumber) + data.append(dataItem) + Receiver.send_message(u'slidecontroller_%s_text_response' + % self.typePrefix, data) + + # Screen event methods + def onSlideSelectedFirst(self): + """ + Go to the first slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_first' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command(): + self.updatePreview() + else: + self.PreviewListWidget.selectRow(0) + self.onSlideSelected() + + def onSlideSelectedIndex(self, message): + """ + Go to the requested slide + """ + index = int(message[0]) + if not self.serviceItem: + return + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive, index]) + if self.serviceItem.is_command(): + self.updatePreview() + else: + self.PreviewListWidget.selectRow(index) + self.onSlideSelected() + + def mainDisplaySetBackground(self): + """ + Allow the main display to blank the main display at startup time + """ + log.debug(u'mainDisplaySetBackground live = %s' % self.isLive) + if not self.display.primary: + self.onHideDisplay(True) + + def onSlideBlank(self): + """ + Handle the slidecontroller blank event + """ + self.onBlankDisplay(True) + + def onSlideUnblank(self): + """ + Handle the slidecontroller unblank event + """ + self.onBlankDisplay(False) + + def onBlankDisplay(self, checked): + """ + Handle the blank screen button actions + """ + log.debug(u'onBlankDisplay %s' % checked) + self.HideMenu.setDefaultAction(self.BlankScreen) + self.BlankScreen.setChecked(checked) + self.ThemeScreen.setChecked(False) + if self.screens.display_count > 1: + self.DesktopScreen.setChecked(False) + QtCore.QSettings().setValue( + self.parent.generalSettingsSection + u'/screen blank', + QtCore.QVariant(checked)) + if checked: + Receiver.send_message(u'maindisplay_hide', HideMode.Blank) + else: + Receiver.send_message(u'maindisplay_show') + self.blankPlugin(checked) + + def onThemeDisplay(self, checked): + """ + Handle the Theme screen button + """ + log.debug(u'onThemeDisplay %s' % checked) + self.HideMenu.setDefaultAction(self.ThemeScreen) + self.BlankScreen.setChecked(False) + self.ThemeScreen.setChecked(checked) + if self.screens.display_count > 1: + self.DesktopScreen.setChecked(False) + if checked: + Receiver.send_message(u'maindisplay_hide', HideMode.Theme) + else: + Receiver.send_message(u'maindisplay_show') + self.blankPlugin(checked) + + def onHideDisplay(self, checked): + """ + Handle the Hide screen button + """ + log.debug(u'onHideDisplay %s' % checked) + self.HideMenu.setDefaultAction(self.DesktopScreen) + self.BlankScreen.setChecked(False) + self.ThemeScreen.setChecked(False) + if self.screens.display_count > 1: + self.DesktopScreen.setChecked(checked) + if checked: + Receiver.send_message(u'maindisplay_hide', HideMode.Screen) + else: + Receiver.send_message(u'maindisplay_show') + self.hidePlugin(checked) + + def blankPlugin(self, blank): + """ + Blank the display screen within a plugin if required. + """ + log.debug(u'blankPlugin %s ', blank) + if self.serviceItem is not None: + if blank: + Receiver.send_message(u'%s_blank' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + else: + Receiver.send_message(u'%s_unblank' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + + def hidePlugin(self, hide): + """ + Tell the plugin to hide the display screen. + """ + log.debug(u'hidePlugin %s ', hide) + if self.serviceItem is not None: + if hide: + Receiver.send_message(u'%s_hide' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + else: + Receiver.send_message(u'%s_unblank' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + + def onSlideSelected(self): + """ + Generate the preview when you click on a slide. + if this is the Live Controller also display on the screen + """ + row = self.PreviewListWidget.currentRow() + self.selectedRow = 0 + if row > -1 and row < self.PreviewListWidget.rowCount(): + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive, row]) + if self.serviceItem.is_command() and self.isLive: + self.updatePreview() + else: + frame, raw_html = self.serviceItem.get_rendered_frame(row) + if self.serviceItem.is_text(): + frame = self.display.text(raw_html) + else: + self.display.image(frame) + if isinstance(frame, QtGui.QImage): + self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) + else: + self.SlidePreview.setPixmap(QtGui.QPixmap(frame)) + self.selectedRow = row + Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, + row) + + def onSlideChange(self, row): + """ + The slide has been changed. Update the slidecontroller accordingly + """ + self.PreviewListWidget.selectRow(row) + self.updatePreview() + Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, + row) + + def updatePreview(self): + if not self.screens.current[u'primary']: + # Grab now, but try again in a couple of seconds if slide change + # is slow + QtCore.QTimer.singleShot(0.5, self.grabMainDisplay) + QtCore.QTimer.singleShot(2.5, self.grabMainDisplay) + else: + label = self.PreviewListWidget.cellWidget( + self.PreviewListWidget.currentRow(), 1) + if label: + self.SlidePreview.setPixmap(label.pixmap()) + + def grabMainDisplay(self): + winid = QtGui.QApplication.desktop().winId() + rect = self.screens.current[u'size'] + winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), + rect.y(), rect.width(), rect.height()) + self.SlidePreview.setPixmap(winimg) + + def onSlideSelectedNextNoloop(self): + self.onSlideSelectedNext(False) + + def onSlideSelectedNext(self, loop=True): + """ + Go to the next slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command() and self.isLive: + self.updatePreview() + else: + row = self.PreviewListWidget.currentRow() + 1 + if row == self.PreviewListWidget.rowCount(): + if loop: + row = 0 + else: + Receiver.send_message('servicemanager_next_item') + return + self.PreviewListWidget.selectRow(row) + self.onSlideSelected() + + def onSlideSelectedPreviousNoloop(self): + self.onSlideSelectedPrevious(False) + + def onSlideSelectedPrevious(self, loop=True): + """ + Go to the previous slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command() and self.isLive: + self.updatePreview() + else: + row = self.PreviewListWidget.currentRow() - 1 + if row == -1: + if loop: + row = self.PreviewListWidget.rowCount() - 1 + else: + row = 0 + self.PreviewListWidget.selectRow(row) + self.onSlideSelected() + + def onSlideSelectedLast(self): + """ + Go to the last slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_last' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command(): + self.updatePreview() + else: + self.PreviewListWidget.selectRow( + self.PreviewListWidget.rowCount() - 1) + self.onSlideSelected() + + def onStartLoop(self): + """ + Start the timer loop running and store the timer id + """ + if self.PreviewListWidget.rowCount() > 1: + self.timer_id = self.startTimer( + int(self.DelaySpinBox.value()) * 1000) + self.Toolbar.actions[u'Stop Loop'].setVisible(True) + self.Toolbar.actions[u'Start Loop'].setVisible(False) + + def onStopLoop(self): + """ + Stop the timer loop running + """ + if self.timer_id != 0: + self.killTimer(self.timer_id) + self.timer_id = 0 + self.Toolbar.actions[u'Start Loop'].setVisible(True) + self.Toolbar.actions[u'Stop Loop'].setVisible(False) + + def timerEvent(self, event): + """ + If the timer event is for this window select next slide + """ + if event.timerId() == self.timer_id: + self.onSlideSelectedNext() + + def onEditSong(self): + """ + From the preview display requires the service Item to be editied + """ + self.songEdit = True + Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), + u'P:%s' % self.serviceItem.editId) + + def onGoLive(self): + """ + If preview copy slide item to live + """ + row = self.PreviewListWidget.currentRow() + if row > -1 and row < self.PreviewListWidget.rowCount(): + self.parent.LiveController.addServiceManagerItem( + self.serviceItem, row) + + def onMediaStart(self, item): + """ + Respond to the arrival of a media service item + """ + log.debug(u'SlideController onMediaStart') + if self.isLive: + file = os.path.join(item.get_frame_path(), item.get_frame_title()) + self.display.video(file, self.volume) + self.volumeSlider.setValue(self.volume) + else: + self.mediaObject.stop() + self.mediaObject.clearQueue() + file = os.path.join(item.get_frame_path(), item.get_frame_title()) + self.mediaObject.setCurrentSource(Phonon.MediaSource(file)) + self.seekSlider.setMediaObject(self.mediaObject) + self.seekSlider.show() + self.onMediaPlay() + + def mediaVolume(self): + """ + Respond to the release of Volume Slider + """ + log.debug(u'SlideController mediaVolume') + self.volume = self.volumeSlider.value() + self.display.videoVolume(self.volume) + + def onMediaPause(self): + """ + Respond to the Pause from the media Toolbar + """ + log.debug(u'SlideController onMediaPause') + if self.isLive: + self.display.videoPause() + else: + self.mediaObject.pause() + + def onMediaPlay(self): + """ + Respond to the Play from the media Toolbar + """ + log.debug(u'SlideController onMediaPlay') + if self.isLive: + self.display.videoPlay() + else: + self.SlidePreview.hide() + self.video.show() + self.mediaObject.play() + + def onMediaStop(self): + """ + Respond to the Stop from the media Toolbar + """ + log.debug(u'SlideController onMediaStop') + if self.isLive: + self.display.videoStop() + else: + self.mediaObject.stop() + self.video.hide() + self.SlidePreview.clear() + self.SlidePreview.show() diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index e77b57430..e07329f87 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -1,132 +1,117 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import Plugin, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.alerts.lib import AlertsManager, AlertsTab -from openlp.plugins.alerts.lib.db import init_schema -from openlp.plugins.alerts.forms import AlertForm - -log = logging.getLogger(__name__) - -class AlertsPlugin(Plugin): - log.info(u'Alerts Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_translations() - Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) - self.weight = -3 - self.icon = build_icon(u':/plugins/plugin_alerts.png') - self.alertsmanager = AlertsManager(self) - self.manager = Manager(u'alerts', init_schema) - self.alertForm = AlertForm(self) - - def getSettingsTab(self): - """ - Return the settings tab for the Alerts plugin - """ - self.alertsTab = AlertsTab(self) - return self.alertsTab - - def addToolsMenuItem(self, tools_menu): - """ - Give the alerts plugin the opportunity to add items to the - **Tools** menu. - - ``tools_menu`` - The actual **Tools** menu item, so that your actions can - use it as their parent. - """ - log.info(u'add tools menu') - self.toolsAlertItem = QtGui.QAction(tools_menu) - self.toolsAlertItem.setIcon(build_icon(u':/plugins/plugin_alerts.png')) - self.toolsAlertItem.setObjectName(u'toolsAlertItem') - self.toolsAlertItem.setText(translate('AlertsPlugin', '&Alert')) - self.toolsAlertItem.setStatusTip( - translate('AlertsPlugin', 'Show an alert message.')) - self.toolsAlertItem.setShortcut(u'F7') - self.serviceManager.parent.ToolsMenu.addAction(self.toolsAlertItem) - QtCore.QObject.connect(self.toolsAlertItem, - QtCore.SIGNAL(u'triggered()'), self.onAlertsTrigger) - self.toolsAlertItem.setVisible(False) - - def initialise(self): - log.info(u'Alerts Initialising') - Plugin.initialise(self) - self.toolsAlertItem.setVisible(True) - self.liveController.alertTab = self.alertsTab - - def finalise(self): - log.info(u'Alerts Finalising') - Plugin.finalise(self) - self.toolsAlertItem.setVisible(False) - - def toggleAlertsState(self): - self.alertsActive = not self.alertsActive - QtCore.QSettings().setValue(self.settingsSection + u'/active', - QtCore.QVariant(self.alertsActive)) - - def onAlertsTrigger(self): - self.alertForm.loadList() - self.alertForm.exec_() - - def about(self): - about_text = translate('AlertsPlugin', 'Alerts Plugin' - '
The alert plugin controls the displaying of nursery alerts ' - 'on the display screen') - return about_text - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Alerts' - self.name_lower = u'alerts' - self.text = {} - # for context menu -# elf.text['context_edit'] = translate('AlertsPlugin', '&Edit Song') -# elf.text['context_delete'] = translate('AlertsPlugin', '&Delete Song') -# elf.text['context_preview'] = translate('AlertsPlugin', '&Preview Song') -# elf.text['context_live'] = translate('AlertsPlugin', '&Show Live') -# # forHeaders in mediamanagerdock -# elf.text['import'] = translate('AlertsPlugin', 'Import a Song') -# elf.text['file'] = translate('AlertsPlugin', 'Load a new Song') -# elf.text['new'] = translate('AlertsPlugin', 'Add a new Song') -# elf.text['edit'] = translate('AlertsPlugin', 'Edit the selected Song') -# elf.text['delete'] = translate('AlertsPlugin', 'Delete the selected Song') -# elf.text['delete_more'] = translate('AlertsPlugin', 'Delete the selected Songs') -# elf.text['preview'] = translate('AlertsPlugin', 'Preview the selected Song') -# elf.text['preview_more'] = translate('AlertsPlugin', 'Preview the selected Songs') -# elf.text['live'] = translate('AlertsPlugin', 'Send the selected Song live') -# elf.text['live_more'] = translate('AlertsPlugin', 'Send the selected Songs live') -# elf.text['service'] = translate('AlertsPlugin', 'Add the selected Song to the service') -# elf.text['service_more'] = translate('AlertsPlugin', 'Add the selected Songs to the service') -# # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('AlertsPlugin', 'Alert') - self.text['name_more'] = translate('AlertsPlugin', 'Alerts') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.alerts.lib import AlertsManager, AlertsTab +from openlp.plugins.alerts.lib.db import init_schema +from openlp.plugins.alerts.forms import AlertForm + +log = logging.getLogger(__name__) + +class AlertsPlugin(Plugin): + log.info(u'Alerts Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) + self.weight = -3 + self.icon = build_icon(u':/plugins/plugin_alerts.png') + self.alertsmanager = AlertsManager(self) + self.manager = Manager(u'alerts', init_schema) + self.alertForm = AlertForm(self) + + def getSettingsTab(self): + """ + Return the settings tab for the Alerts plugin + """ + self.alertsTab = AlertsTab(self) + return self.alertsTab + + def addToolsMenuItem(self, tools_menu): + """ + Give the alerts plugin the opportunity to add items to the + **Tools** menu. + + ``tools_menu`` + The actual **Tools** menu item, so that your actions can + use it as their parent. + """ + log.info(u'add tools menu') + self.toolsAlertItem = QtGui.QAction(tools_menu) + self.toolsAlertItem.setIcon(build_icon(u':/plugins/plugin_alerts.png')) + self.toolsAlertItem.setObjectName(u'toolsAlertItem') + self.toolsAlertItem.setText(translate('AlertsPlugin', '&Alert')) + self.toolsAlertItem.setStatusTip( + translate('AlertsPlugin', 'Show an alert message.')) + self.toolsAlertItem.setShortcut(u'F7') + self.serviceManager.parent.ToolsMenu.addAction(self.toolsAlertItem) + QtCore.QObject.connect(self.toolsAlertItem, + QtCore.SIGNAL(u'triggered()'), self.onAlertsTrigger) + self.toolsAlertItem.setVisible(False) + + def initialise(self): + log.info(u'Alerts Initialising') + Plugin.initialise(self) + self.toolsAlertItem.setVisible(True) + self.liveController.alertTab = self.alertsTab + + def finalise(self): + log.info(u'Alerts Finalising') + Plugin.finalise(self) + self.toolsAlertItem.setVisible(False) + + def toggleAlertsState(self): + self.alertsActive = not self.alertsActive + QtCore.QSettings().setValue(self.settingsSection + u'/active', + QtCore.QVariant(self.alertsActive)) + + def onAlertsTrigger(self): + self.alertForm.loadList() + self.alertForm.exec_() + + def about(self): + about_text = translate('AlertsPlugin', 'Alerts Plugin' + '
The alert plugin controls the displaying of nursery alerts ' + 'on the display screen') + return about_text + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Alerts' + self.name_lower = u'alerts' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('AlertsPlugin', 'Alert'), + u'plural': translate('AlertsPlugin', 'Alerts') + } diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 850516783..f706a50a3 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -1,147 +1,170 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import Plugin, build_icon, translate -from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem - -log = logging.getLogger(__name__) - -class BiblePlugin(Plugin): - log.info(u'Bible Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_translations() - Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) - self.weight = -9 - self.icon_path = u':/plugins/plugin_bibles.png' - self.icon = build_icon(self.icon_path) - self.manager = None - - def initialise(self): - log.info(u'bibles Initialising') - if self.manager is None: - self.manager = BibleManager(self) - Plugin.initialise(self) - self.importBibleItem.setVisible(True) - self.exportBibleItem.setVisible(True) - - def finalise(self): - log.info(u'Plugin Finalise') - Plugin.finalise(self) - self.importBibleItem.setVisible(False) - self.exportBibleItem.setVisible(False) - - def getSettingsTab(self): - return BiblesTab(self.name) - - def getMediaManagerItem(self): - # Create the BibleManagerItem object. - return BibleMediaItem(self, self.icon, self.name) - - def addImportMenuItem(self, import_menu): - self.importBibleItem = QtGui.QAction(import_menu) - self.importBibleItem.setObjectName(u'importBibleItem') - import_menu.addAction(self.importBibleItem) - self.importBibleItem.setText( - translate('BiblesPlugin', '&Bible')) - # signals and slots - QtCore.QObject.connect(self.importBibleItem, - QtCore.SIGNAL(u'triggered()'), self.onBibleImportClick) - self.importBibleItem.setVisible(False) - - def addExportMenuItem(self, export_menu): - self.exportBibleItem = QtGui.QAction(export_menu) - self.exportBibleItem.setObjectName(u'exportBibleItem') - export_menu.addAction(self.exportBibleItem) - self.exportBibleItem.setText(translate( - 'BiblesPlugin', '&Bible')) - self.exportBibleItem.setVisible(False) - - def onBibleImportClick(self): - if self.mediaItem: - self.mediaItem.onImportClick() - - def about(self): - about_text = translate('BiblesPlugin', 'Bible Plugin' - '
The Bible plugin provides the ability to display bible ' - 'verses from different sources during the service.') - return about_text - - def usesTheme(self, theme): - """ - Called to find out if the bible plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - if self.settings_tab.bible_theme == theme: - return True - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Rename the theme the bible plugin is using making the plugin use the - new name. - - ``oldTheme`` - The name of the theme the plugin should stop using. Unused for - this particular plugin. - - ``newTheme`` - The new name the plugin should now use. - """ - self.settings_tab.bible_theme = newTheme - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Bibles' - self.name_lower = u'bibles' - self.text = {} - #for context menu - self.text['context_edit'] = translate('BiblesPlugin', '&Edit Bible') - self.text['context_delete'] = translate('BiblesPlugin', '&Delete Bible') - self.text['context_preview'] = translate('BiblesPlugin', '&Preview Bible') - self.text['context_live'] = translate('BiblesPlugin', '&Show Live') - # forHeaders in mediamanagerdock - self.text['import'] = translate('BiblesPlugin', 'Import a Bible') - self.text['load'] = translate('BiblesPlugin', 'Load a new Bible') - self.text['new'] = translate('BiblesPlugin', 'Add a new Bible') - self.text['edit'] = translate('BiblesPlugin', 'Edit the selected Bible') - self.text['delete'] = translate('BiblesPlugin', 'Delete the selected Bible') - self.text['delete_more'] = translate('BiblesPlugin', 'Delete the selected Bibles') - self.text['preview'] = translate('BiblesPlugin', 'Preview the selected Bible') - self.text['preview_more'] = translate('BiblesPlugin', 'Preview the selected Bibles') - self.text['live'] = translate('BiblesPlugin', 'Send the selected Bible live') - self.text['live_more'] = translate('BiblesPlugin', 'Send the selected Bibles live') - self.text['service'] = translate('BiblesPlugin', 'Add the selected Verse to the service') - self.text['service_more'] = translate('BiblesPlugin', 'Add the selected Verses to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('BiblesPlugin', 'Bible') - self.text['name_more'] = translate('BiblesPlugin', 'Bibles') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem + +log = logging.getLogger(__name__) + +class BiblePlugin(Plugin): + log.info(u'Bible Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) + self.weight = -9 + self.icon_path = u':/plugins/plugin_bibles.png' + self.icon = build_icon(self.icon_path) + self.manager = None + + def initialise(self): + log.info(u'bibles Initialising') + if self.manager is None: + self.manager = BibleManager(self) + Plugin.initialise(self) + self.importBibleItem.setVisible(True) + self.exportBibleItem.setVisible(True) + + def finalise(self): + log.info(u'Plugin Finalise') + Plugin.finalise(self) + self.importBibleItem.setVisible(False) + self.exportBibleItem.setVisible(False) + + def getSettingsTab(self): + return BiblesTab(self.name) + + def getMediaManagerItem(self): + # Create the BibleManagerItem object. + return BibleMediaItem(self, self.icon, self.name) + + def addImportMenuItem(self, import_menu): + self.importBibleItem = QtGui.QAction(import_menu) + self.importBibleItem.setObjectName(u'importBibleItem') + import_menu.addAction(self.importBibleItem) + self.importBibleItem.setText( + translate('BiblesPlugin', '&Bible')) + # signals and slots + QtCore.QObject.connect(self.importBibleItem, + QtCore.SIGNAL(u'triggered()'), self.onBibleImportClick) + self.importBibleItem.setVisible(False) + + def addExportMenuItem(self, export_menu): + self.exportBibleItem = QtGui.QAction(export_menu) + self.exportBibleItem.setObjectName(u'exportBibleItem') + export_menu.addAction(self.exportBibleItem) + self.exportBibleItem.setText(translate( + 'BiblesPlugin', '&Bible')) + self.exportBibleItem.setVisible(False) + + def onBibleImportClick(self): + if self.mediaItem: + self.mediaItem.onImportClick() + + def about(self): + about_text = translate('BiblesPlugin', 'Bible Plugin' + '
The Bible plugin provides the ability to display bible ' + 'verses from different sources during the service.') + return about_text + + def usesTheme(self, theme): + """ + Called to find out if the bible plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + if self.settings_tab.bible_theme == theme: + return True + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Rename the theme the bible plugin is using making the plugin use the + new name. + + ``oldTheme`` + The name of the theme the plugin should stop using. Unused for + this particular plugin. + + ``newTheme`` + The new name the plugin should now use. + """ + self.settings_tab.bible_theme = newTheme + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Bibles' + self.name_lower = u'Bibles' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('BiblesPlugin', 'Bible'), + u'plural': translate('BiblesPlugin', 'Bibles') + } + + # Middle Header Bar + ## Import Button ## + self.strings[StringType.Import] = { + u'title': translate('BiblesPlugin', 'Import'), + u'tooltip': translate('BiblesPlugin', 'Import a Bible') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('BiblesPlugin', 'Add'), + u'tooltip': translate('BiblesPlugin', 'Add a new Bible') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('BiblesPlugin', 'Edit'), + u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('BiblesPlugin', 'Delete'), + u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('BiblesPlugin', 'Preview'), + u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('BiblesPlugin', 'Live'), + u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('BiblesPlugin', 'Service'), + u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') + } diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 007b8d560..e387369ee 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -1,127 +1,154 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 forms import EditCustomForm - -from openlp.core.lib import Plugin, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.custom.lib import CustomMediaItem, CustomTab -from openlp.plugins.custom.lib.db import CustomSlide, init_schema - -log = logging.getLogger(__name__) - -class CustomPlugin(Plugin): - """ - This plugin enables the user to create, edit and display - custom slide shows. Custom shows are divided into slides. - Each show is able to have it's own theme. - Custom shows are designed to replace the use of songs where - the songs plugin has become restrictive. Examples could be - Welcome slides, Bible Reading information, Orders of service. - """ - log.info(u'Custom Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_translations() - Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) - self.weight = -5 - self.custommanager = Manager(u'custom', init_schema) - self.edit_custom_form = EditCustomForm(self.custommanager) - self.icon_path = u':/plugins/plugin_custom.png' - self.icon = build_icon(self.icon_path) - - def getSettingsTab(self): - return CustomTab(self.name) - - def getMediaManagerItem(self): - # Create the CustomManagerItem object - return CustomMediaItem(self, self.icon, self.name) - - def about(self): - about_text = translate('CustomPlugin', 'Custom Plugin' - '
The custom plugin provides the ability to set up custom ' - 'text slides that can be displayed on the screen the same way ' - 'songs are. This plugin provides greater freedom over the songs ' - 'plugin.') - return about_text - - def usesTheme(self, theme): - """ - Called to find out if the custom plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - if self.custommanager.get_all_objects(CustomSlide, - CustomSlide.theme_name == theme): - return True - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Renames a theme the custom plugin is using making the plugin use the - new name. - - ``oldTheme`` - The name of the theme the plugin should stop using. - - ``newTheme`` - The new name the plugin should now use. - """ - customsUsingTheme = self.custommanager.get_all_objects(CustomSlide, - CustomSlide.theme_name == oldTheme) - for custom in customsUsingTheme: - custom.theme_name = newTheme - self.custommanager.save_object(custom) - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Custom' - self.name_lower = u'custom' - self.text = {} - #for context menu - self.text['context_edit'] = translate('CustomsPlugin', '&Edit Custom') - self.text['context_delete'] = translate('CustomsPlugin', '&Delete Custom') - self.text['context_preview'] = translate('CustomsPlugin', '&Preview Custom') - self.text['context_live'] = translate('CustomsPlugin', '&Show Live') - # forHeaders in mediamanagerdock - self.text['import'] = translate('CustomsPlugin', 'Import a Custom') - self.text['load'] = translate('CustomsPlugin', 'Load a new Custom') - self.text['new'] = translate('CustomsPlugin', 'Add a new Custom') - self.text['edit'] = translate('CustomsPlugin', 'Edit the selected Custom') - self.text['delete'] = translate('CustomsPlugin', 'Delete the selected Custom') - self.text['delete_more'] = translate('CustomsPlugin', 'Delete the selected Custom') - self.text['preview'] = translate('CustomsPlugin', 'Preview the selected Custom') - self.text['preview_more'] = translate('CustomsPlugin', 'Preview the selected Custom') - self.text['live'] = translate('CustomsPlugin', 'Send the selected Custom live') - self.text['live_more'] = translate('CustomsPlugin', 'Send the selected Custom live') - self.text['service'] = translate('CustomsPlugin', 'Add the selected Custom to the service') - self.text['service_more'] = translate('CustomsPlugin', 'Add the selected Custom to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('CustomsPlugin', 'Custom') - self.text['name_more'] = translate('CustomsPlugin', 'Custom') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 forms import EditCustomForm + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.custom.lib import CustomMediaItem, CustomTab +from openlp.plugins.custom.lib.db import CustomSlide, init_schema + +log = logging.getLogger(__name__) + +class CustomPlugin(Plugin): + """ + This plugin enables the user to create, edit and display + custom slide shows. Custom shows are divided into slides. + Each show is able to have it's own theme. + Custom shows are designed to replace the use of Customs where + the Customs plugin has become restrictive. Examples could be + Welcome slides, Bible Reading information, Orders of service. + """ + log.info(u'Custom Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) + self.weight = -5 + self.custommanager = Manager(u'custom', init_schema) + self.edit_custom_form = EditCustomForm(self.custommanager) + self.icon_path = u':/plugins/plugin_custom.png' + self.icon = build_icon(self.icon_path) + + def getSettingsTab(self): + return CustomTab(self.name) + + def getMediaManagerItem(self): + # Create the CustomManagerItem object + return CustomMediaItem(self, self.icon, self.name) + + def about(self): + about_text = translate('CustomPlugin', 'Custom Plugin' + '
The custom plugin provides the ability to set up custom ' + 'text slides that can be displayed on the screen the same way ' + 'Customs are. This plugin provides greater freedom over the Customs ' + 'plugin.') + return about_text + + def usesTheme(self, theme): + """ + Called to find out if the custom plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + if self.custommanager.get_all_objects(CustomSlide, + CustomSlide.theme_name == theme): + return True + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Renames a theme the custom plugin is using making the plugin use the + new name. + + ``oldTheme`` + The name of the theme the plugin should stop using. + + ``newTheme`` + The new name the plugin should now use. + """ + customsUsingTheme = self.custommanager.get_all_objects(CustomSlide, + CustomSlide.theme_name == oldTheme) + for custom in customsUsingTheme: + custom.theme_name = newTheme + self.custommanager.save_object(custom) + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Custom' + self.name_lower = u'custom' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('CustomsPlugin', 'Custom'), + u'plural': translate('CustomsPlugin', 'Customs') + } + + # Middle Header Bar + ## Import Button ## + self.strings[StringType.Import] = { + u'title': translate('CustomsPlugin', 'Import'), + u'tooltip': translate('CustomsPlugin', 'Import a Custom') + } + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('CustomsPlugin', 'Load'), + u'tooltip': translate('CustomsPlugin', 'Load a new Custom') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('CustomsPlugin', 'Add'), + u'tooltip': translate('CustomsPlugin', 'Add a new Custom') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('CustomsPlugin', 'Edit'), + u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('CustomsPlugin', 'Delete'), + u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('CustomsPlugin', 'Preview'), + u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('CustomsPlugin', 'Live'), + u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('CustomsPlugin', 'Service'), + u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') + } diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index ee303689e..0f2f08e26 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -1,89 +1,111 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 openlp.core.lib import Plugin, build_icon, translate -from openlp.plugins.images.lib import ImageMediaItem - -log = logging.getLogger(__name__) - -class ImagePlugin(Plugin): - log.info(u'Image Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_translations() - Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) - self.weight = -7 - self.icon_path = u':/plugins/plugin_images.png' - self.icon = build_icon(self.icon_path) - - def getMediaManagerItem(self): - # Create the MediaManagerItem object - return ImageMediaItem(self, self.icon, self.name) - - def about(self): - about_text = translate('ImagePlugin', 'Image Plugin' - '
The image plugin provides displaying of images.
One ' - 'of the distinguishing features of this plugin is the ability to ' - 'group a number of images together in the service manager, making ' - 'the displaying of multiple images easier. This plugin can also ' - 'make use of OpenLP\'s "timed looping" feature to create a slide ' - 'show that runs automatically. In addition to this, images from ' - 'the plugin can be used to override the current theme\'s ' - 'background, which renders text-based items like songs with the ' - 'selected image as a background instead of the background ' - 'provided by the theme.') - return about_text - # rimach - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Images' - self.name_lower = u'images' - self.text = {} - #for context menu - self.text['context_edit'] = translate('ImagePlugin', '&Edit Image') - self.text['context_delete'] = translate('ImagePlugin', '&Delete Image') - self.text['context_preview'] = translate('ImagePlugin', '&Preview Image') - self.text['context_live'] = translate('ImagePlugin', '&Show Live') - # forHeaders in mediamanagerdock - self.text['import'] = translate('ImagePlugin', 'Import a Image') - self.text['load'] = translate('ImagePlugin', 'Load a new Image') - self.text['new'] = translate('ImagePlugin', 'Add a new Image') - self.text['edit'] = translate('ImagePlugin', 'Edit the selected Image') - self.text['delete'] = translate('ImagePlugin', 'Delete the selected Image') - self.text['delete_more'] = translate('ImagePlugin', 'Delete the selected Images') - self.text['preview'] = translate('ImagePlugin', 'Preview the selected Image') - self.text['preview_more'] = translate('ImagePlugin', 'Preview the selected Images') - self.text['live'] = translate('ImagePlugin', 'Send the selected Image live') - self.text['live_more'] = translate('ImagePlugin', 'Send the selected Images live') - self.text['service'] = translate('ImagePlugin', 'Add the selected Image to the service') - self.text['service_more'] = translate('ImagePlugin', 'Add the selected Images to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('ImagePlugin', 'Image') - self.text['name_more'] = translate('ImagePlugin', 'Images') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.plugins.images.lib import ImageMediaItem + +log = logging.getLogger(__name__) + +class ImagePlugin(Plugin): + log.info(u'Image Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) + self.weight = -7 + self.icon_path = u':/plugins/plugin_images.png' + self.icon = build_icon(self.icon_path) + + def getMediaManagerItem(self): + # Create the MediaManagerItem object + return ImageMediaItem(self, self.icon, self.name) + + def about(self): + about_text = translate('ImagePlugin', 'Image Plugin' + '
The image plugin provides displaying of images.
One ' + 'of the distinguishing features of this plugin is the ability to ' + 'group a number of images together in the service manager, making ' + 'the displaying of multiple images easier. This plugin can also ' + 'make use of OpenLP\'s "timed looping" feature to create a slide ' + 'show that runs automatically. In addition to this, images from ' + 'the plugin can be used to override the current theme\'s ' + 'background, which renders text-based items like Images with the ' + 'selected image as a background instead of the background ' + 'provided by the theme.') + return about_text + # rimach + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Images' + self.name_lower = u'images' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('ImagePlugin', 'Image'), + u'plural': translate('ImagePlugin', 'Images') + } + + # Middle Header Bar + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('ImagePlugin', 'Load'), + u'tooltip': translate('ImagePlugin', 'Load a new Image') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('ImagePlugin', 'Add'), + u'tooltip': translate('ImagePlugin', 'Add a new Image') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('ImagePlugin', 'Edit'), + u'tooltip': translate('ImagePlugin', 'Edit the selected Image') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('ImagePlugin', 'Delete'), + u'tooltip': translate('ImagePlugin', 'Delete the selected Image') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('ImagePlugin', 'Preview'), + u'tooltip': translate('ImagePlugin', 'Preview the selected Image') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('ImagePlugin', 'Live'), + u'tooltip': translate('ImagePlugin', 'Send the selected Image live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('ImagePlugin', 'Service'), + u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') + } diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 7ff32b5b3..0ffa8cfbd 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -1,107 +1,129 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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.phonon import Phonon - -from openlp.core.lib import Plugin, build_icon, translate -from openlp.plugins.media.lib import MediaMediaItem - -log = logging.getLogger(__name__) - -class MediaPlugin(Plugin): - log.info(u'%s MediaPlugin loaded', __name__) - - def __init__(self, plugin_helpers): - self.set_plugin_translations() - Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) - self.weight = -6 - self.icon_path = u':/plugins/plugin_media.png' - self.icon = build_icon(self.icon_path) - # passed with drag and drop messages - self.dnd_id = u'Media' - self.audio_list = u'' - self.video_list = u'' - for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): - mimetype = unicode(mimetype) - type = mimetype.split(u'audio/x-') - self.audio_list, mimetype = self._addToList(self.audio_list, - type, mimetype) - type = mimetype.split(u'audio/') - self.audio_list, mimetype = self._addToList(self.audio_list, - type, mimetype) - type = mimetype.split(u'video/x-') - self.video_list, mimetype = self._addToList(self.video_list, - type, mimetype) - type = mimetype.split(u'video/') - self.video_list, mimetype = self._addToList(self.video_list, - type, mimetype) - - def _addToList(self, list, value, type): - if len(value) == 2: - if list.find(value[1]) == -1: - list += u'*.%s ' % value[1] - self.serviceManager.supportedSuffixes(value[1]) - type = u'' - return list, type - - def getMediaManagerItem(self): - # Create the MediaManagerItem object - return MediaMediaItem(self, self.icon, self.name) - - def about(self): - about_text = translate('MediaPlugin', 'Media Plugin' - '
The media plugin provides playback of audio and video.') - return about_text - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Media' - self.name_lower = u'media' - self.text = {} - #for context menu - self.text['context_edit'] = translate('MediaPlugin', '&Edit Media') - self.text['context_delete'] = translate('MediaPlugin', '&Delete Media') - self.text['context_preview'] = translate('MediaPlugin', '&Preview Media') - self.text['context_live'] = translate('MediaPlugin', '&Show Live') - # forHeaders in mediamanagerdock - self.text['import'] = translate('MediaPlugin', 'Import a Media') - self.text['load'] = translate('MediaPlugin', 'Load a new Media') - self.text['new'] = translate('MediaPlugin', 'Add a new Media') - self.text['edit'] = translate('MediaPlugin', 'Edit the selected Media') - self.text['delete'] = translate('MediaPlugin', 'Delete the selected Media') - self.text['delete_more'] = translate('MediaPlugin', 'Delete the selected Media') - self.text['preview'] = translate('MediaPlugin', 'Preview the selected Media') - self.text['preview_more'] = translate('MediaPlugin', 'Preview the selected Media') - self.text['live'] = translate('MediaPlugin', 'Send the selected Media live') - self.text['live_more'] = translate('MediaPlugin', 'Send the selected Media live') - self.text['service'] = translate('MediaPlugin', 'Add the selected Media to the service') - self.text['service_more'] = translate('MediaPlugin', 'Add the selected Media to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('MediaPlugin', 'Media') - self.text['name_more'] = translate('MediaPlugin', 'Media') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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.phonon import Phonon + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.plugins.media.lib import MediaMediaItem + +log = logging.getLogger(__name__) + +class MediaPlugin(Plugin): + log.info(u'%s MediaPlugin loaded', __name__) + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) + self.weight = -6 + self.icon_path = u':/plugins/plugin_media.png' + self.icon = build_icon(self.icon_path) + # passed with drag and drop messages + self.dnd_id = u'Media' + self.audio_list = u'' + self.video_list = u'' + for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): + mimetype = unicode(mimetype) + type = mimetype.split(u'audio/x-') + self.audio_list, mimetype = self._addToList(self.audio_list, + type, mimetype) + type = mimetype.split(u'audio/') + self.audio_list, mimetype = self._addToList(self.audio_list, + type, mimetype) + type = mimetype.split(u'video/x-') + self.video_list, mimetype = self._addToList(self.video_list, + type, mimetype) + type = mimetype.split(u'video/') + self.video_list, mimetype = self._addToList(self.video_list, + type, mimetype) + + def _addToList(self, list, value, type): + if len(value) == 2: + if list.find(value[1]) == -1: + list += u'*.%s ' % value[1] + self.serviceManager.supportedSuffixes(value[1]) + type = u'' + return list, type + + def getMediaManagerItem(self): + # Create the MediaManagerItem object + return MediaMediaItem(self, self.icon, self.name) + + def about(self): + about_text = translate('MediaPlugin', 'Media Plugin' + '
The media plugin provides playback of audio and video.') + return about_text + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Media' + self.name_lower = u'media' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('MediaPlugin', 'Media'), + u'plural': translate('MediaPlugin', 'Medias') + } + + # Middle Header Bar + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('MediaPlugin', 'Load'), + u'tooltip': translate('MediaPlugin', 'Load a new Media') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('MediaPlugin', 'Add'), + u'tooltip': translate('MediaPlugin', 'Add a new Media') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('MediaPlugin', 'Edit'), + u'tooltip': translate('MediaPlugin', 'Edit the selected Media') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('MediaPlugin', 'Delete'), + u'tooltip': translate('MediaPlugin', 'Delete the selected Media') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('MediaPlugin', 'Preview'), + u'tooltip': translate('MediaPlugin', 'Preview the selected Media') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('MediaPlugin', 'Live'), + u'tooltip': translate('MediaPlugin', 'Send the selected Media live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('MediaPlugin', 'Service'), + u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') + } diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 208c74349..e3df350d8 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -1,174 +1,187 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -The :mod:`presentationplugin` module provides the ability for OpenLP to display -presentations from a variety of document formats. -""" -import os -import logging - -from openlp.core.lib import Plugin, build_icon, translate -from openlp.core.utils import AppLocation -from openlp.plugins.presentations.lib import PresentationController, \ - PresentationMediaItem, PresentationTab - -log = logging.getLogger(__name__) - -class PresentationPlugin(Plugin): - """ - This plugin allowed a Presentation to be opened, controlled and displayed - on the output display. The plugin controls third party applications such - as OpenOffice.org Impress, Microsoft PowerPoint and the PowerPoint viewer - """ - log = logging.getLogger(u'PresentationPlugin') - - def __init__(self, plugin_helpers): - """ - PluginPresentation constructor. - """ - log.debug(u'Initialised') - self.controllers = {} - self.set_plugin_translations() - Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) - self.weight = -8 - self.icon_path = u':/plugins/plugin_presentations.png' - self.icon = build_icon(self.icon_path) - - def getSettingsTab(self): - """ - Create the settings Tab - """ - return PresentationTab(self.name, self.controllers) - - def initialise(self): - """ - Initialise the plugin. Determine which controllers are enabled - are start their processes. - """ - log.info(u'Presentations Initialising') - Plugin.initialise(self) - self.insertToolboxItem() - for controller in self.controllers: - if self.controllers[controller].enabled(): - self.controllers[controller].start_process() - self.mediaItem.buildFileMaskString() - - def finalise(self): - """ - Finalise the plugin. Ask all the enabled presentation applications - to close down their applications and release resources. - """ - log.info(u'Plugin Finalise') - #Ask each controller to tidy up - for key in self.controllers: - controller = self.controllers[key] - if controller.enabled(): - controller.kill() - Plugin.finalise(self) - - def getMediaManagerItem(self): - """ - Create the Media Manager List - """ - return PresentationMediaItem( - self, self.icon, self.name, self.controllers) - - def registerControllers(self, controller): - """ - Register each presentation controller (Impress, PPT etc) and - store for later use - """ - self.controllers[controller.name] = controller - - def checkPreConditions(self): - """ - Check to see if we have any presentation software available - If Not do not install the plugin. - """ - log.debug(u'checkPreConditions') - controller_dir = os.path.join( - AppLocation.get_directory(AppLocation.PluginsDir), - u'presentations', u'lib') - for filename in os.listdir(controller_dir): - if filename.endswith(u'controller.py') and \ - not filename == 'presentationcontroller.py': - path = os.path.join(controller_dir, filename) - if os.path.isfile(path): - modulename = u'openlp.plugins.presentations.lib.' + \ - os.path.splitext(filename)[0] - log.debug(u'Importing controller %s', modulename) - try: - __import__(modulename, globals(), locals(), []) - except ImportError: - log.exception(u'Failed to import %s on path %s', - modulename, path) - controller_classes = PresentationController.__subclasses__() - for controller_class in controller_classes: - controller = controller_class(self) - self.registerControllers(controller) - if self.controllers: - return True - else: - return False - - def about(self): - """ - Return information about this plugin - """ - about_text = translate('PresentationPlugin', 'Presentation ' - 'Plugin
The presentation plugin provides 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.') - return about_text - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Presentations' - self.name_lower = u'presentations' - self.text = {} - #for context menu - self.text['context_edit'] = translate('PresentationPlugin', '&Edit Presentation') - self.text['context_delete'] = translate('PresentationPlugin', '&Delete Presentation') - self.text['context_preview'] = translate('PresentationPlugin', '&Preview Presentation') - self.text['context_live'] = translate('PresentationPlugin', '&Show Live') - # forHeaders in mediamanagerdock - self.text['import'] = translate('PresentationPlugin', 'Import a Presentation') - self.text['load'] = translate('PresentationPlugin', 'Load a new Presentation') - self.text['new'] = translate('PresentationPlugin', 'Add a new Presentation') - self.text['edit'] = translate('PresentationPlugin', 'Edit the selected Presentation') - self.text['delete'] = translate('PresentationPlugin', 'Delete the selected Presentation') - self.text['delete_more'] = translate('PresentationPlugin', 'Delete the selected Presentations') - self.text['preview'] = translate('PresentationPlugin', 'Preview the selected Presentation') - self.text['preview_more'] = translate('PresentationPlugin', 'Preview the selected Presentations') - self.text['live'] = translate('PresentationPlugin', 'Send the selected Presentation live') - self.text['live_more'] = translate('PresentationPlugin', 'Send the selected Presentations live') - self.text['service'] = translate('PresentationPlugin', 'Add the selected Presentation to the service') - self.text['service_more'] = translate('PresentationPlugin', 'Add the selected Presentations to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('PresentationPlugin', 'Presentation') - self.text['name_more'] = translate('PresentationPlugin', 'Presentations') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +The :mod:`presentationplugin` module provides the ability for OpenLP to display +presentations from a variety of document formats. +""" +import os +import logging + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.utils import AppLocation +from openlp.plugins.presentations.lib import PresentationController, \ + PresentationMediaItem, PresentationTab + +log = logging.getLogger(__name__) + +class PresentationPlugin(Plugin): + """ + This plugin allowed a Presentation to be opened, controlled and displayed + on the output display. The plugin controls third party applications such + as OpenOffice.org Impress, Microsoft PowerPoint and the PowerPoint viewer + """ + log = logging.getLogger(u'PresentationPlugin') + + def __init__(self, plugin_helpers): + """ + PluginPresentation constructor. + """ + log.debug(u'Initialised') + self.controllers = {} + self.set_plugin_strings() + Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) + self.weight = -8 + self.icon_path = u':/plugins/plugin_presentations.png' + self.icon = build_icon(self.icon_path) + + def getSettingsTab(self): + """ + Create the settings Tab + """ + return PresentationTab(self.name, self.controllers) + + def initialise(self): + """ + Initialise the plugin. Determine which controllers are enabled + are start their processes. + """ + log.info(u'Presentations Initialising') + Plugin.initialise(self) + self.insertToolboxItem() + for controller in self.controllers: + if self.controllers[controller].enabled(): + self.controllers[controller].start_process() + self.mediaItem.buildFileMaskString() + + def finalise(self): + """ + Finalise the plugin. Ask all the enabled presentation applications + to close down their applications and release resources. + """ + log.info(u'Plugin Finalise') + #Ask each controller to tidy up + for key in self.controllers: + controller = self.controllers[key] + if controller.enabled(): + controller.kill() + Plugin.finalise(self) + + def getMediaManagerItem(self): + """ + Create the Media Manager List + """ + return PresentationMediaItem( + self, self.icon, self.name, self.controllers) + + def registerControllers(self, controller): + """ + Register each presentation controller (Impress, PPT etc) and + store for later use + """ + self.controllers[controller.name] = controller + + def checkPreConditions(self): + """ + Check to see if we have any presentation software available + If Not do not install the plugin. + """ + log.debug(u'checkPreConditions') + controller_dir = os.path.join( + AppLocation.get_directory(AppLocation.PluginsDir), + u'presentations', u'lib') + for filename in os.listdir(controller_dir): + if filename.endswith(u'controller.py') and \ + not filename == 'presentationcontroller.py': + path = os.path.join(controller_dir, filename) + if os.path.isfile(path): + modulename = u'openlp.plugins.presentations.lib.' + \ + os.path.splitext(filename)[0] + log.debug(u'Importing controller %s', modulename) + try: + __import__(modulename, globals(), locals(), []) + except ImportError: + log.exception(u'Failed to import %s on path %s', + modulename, path) + controller_classes = PresentationController.__subclasses__() + for controller_class in controller_classes: + controller = controller_class(self) + self.registerControllers(controller) + if self.controllers: + return True + else: + return False + + def about(self): + """ + Return information about this plugin + """ + about_text = translate('PresentationPlugin', 'Presentation ' + 'Plugin
The presentation plugin provides 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.') + return about_text + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Presentations' + self.name_lower = u'presentations' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('PresentationPlugin', 'Presentation'), + u'plural': translate('PresentationPlugin', 'Presentations') + } + + # Middle Header Bar + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('PresentationPlugin', 'Load'), + u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('PresentationPlugin', 'Delete'), + u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('PresentationPlugin', 'Preview'), + u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('PresentationPlugin', 'Live'), + u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('PresentationPlugin', 'Service'), + u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') + } diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index d9566b57f..bf42c6d57 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -1,108 +1,93 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 openlp.core.lib import Plugin, translate, build_icon -from openlp.plugins.remotes.lib import RemoteTab, HttpServer - -log = logging.getLogger(__name__) - -class RemotesPlugin(Plugin): - log.info(u'Remote Plugin loaded') - - def __init__(self, plugin_helpers): - """ - remotes constructor - """ - self.set_plugin_translations() - Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) - self.icon = build_icon(u':/plugins/plugin_remote.png') - self.weight = -1 - self.server = None - - def initialise(self): - """ - Initialise the remotes plugin, and start the http server - """ - log.debug(u'initialise') - Plugin.initialise(self) - self.insertToolboxItem() - self.server = HttpServer(self) - - def finalise(self): - """ - Tidy up and close down the http server - """ - log.debug(u'finalise') - Plugin.finalise(self) - if self.server: - self.server.close() - - def getSettingsTab(self): - """ - Create the settings Tab - """ - return RemoteTab(self.name) - - def about(self): - """ - Information about this plugin - """ - about_text = translate('RemotePlugin', 'Remote Plugin' - '
The remote plugin provides the ability to send messages to ' - 'a running version of OpenLP on a different computer via a web ' - 'browser or through the remote API.') - return about_text - # rimach - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Remotes' - self.name_lower = u'remotes' - self.text = {} - #for context menu -# self.text['context_edit'] = translate('RemotePlugin', '&Edit Remotes') -# self.text['context_delete'] = translate('RemotePlugin', '&Delete Remotes') -# self.text['context_preview'] = translate('RemotePlugin', '&Preview Remotes') -# self.text['context_live'] = translate('RemotePlugin', '&Show Live') -# # forHeaders in mediamanagerdock -# self.text['import'] = translate('RemotePlugin', 'Import a Remotes') -# self.text['file'] = translate('RemotePlugin', 'Load a new Remotes') -# self.text['new'] = translate('RemotePlugin', 'Add a new Remotes') -# self.text['edit'] = translate('RemotePlugin', 'Edit the selected Remotes') -# self.text['delete'] = translate('RemotePlugin', 'Delete the selected Remotes') -# self.text['delete_more'] = translate('RemotePlugin', 'Delete the selected Remotes') -# self.text['preview'] = translate('RemotePlugin', 'Preview the selected Remotes') -# self.text['preview_more'] = translate('RemotePlugin', 'Preview the selected Remotes') -# self.text['live'] = translate('RemotePlugin', 'Send the selected Remotes live') -# self.text['live_more'] = translate('RemotePlugin', 'Send the selected Remotes live') -# self.text['service'] = translate('RemotePlugin', 'Add the selected Remotes to the service') -# self.text['service_more'] = translate('RemotePlugin', 'Add the selected Remotes to the service') -# # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('RemotePlugin', 'Remote') - self.text['name_more'] = translate('RemotePlugin', 'Remotes') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 openlp.core.lib import Plugin, StringType, translate, build_icon +from openlp.plugins.remotes.lib import RemoteTab, HttpServer + +log = logging.getLogger(__name__) + +class RemotesPlugin(Plugin): + log.info(u'Remote Plugin loaded') + + def __init__(self, plugin_helpers): + """ + remotes constructor + """ + self.set_plugin_strings() + Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) + self.icon = build_icon(u':/plugins/plugin_remote.png') + self.weight = -1 + self.server = None + + def initialise(self): + """ + Initialise the remotes plugin, and start the http server + """ + log.debug(u'initialise') + Plugin.initialise(self) + self.insertToolboxItem() + self.server = HttpServer(self) + + def finalise(self): + """ + Tidy up and close down the http server + """ + log.debug(u'finalise') + Plugin.finalise(self) + if self.server: + self.server.close() + + def getSettingsTab(self): + """ + Create the settings Tab + """ + return RemoteTab(self.name) + + def about(self): + """ + Information about this plugin + """ + about_text = translate('RemotePlugin', 'Remote Plugin' + '
The remote plugin provides the ability to send messages to ' + 'a running version of OpenLP on a different computer via a web ' + 'browser or through the remote API.') + return about_text + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Remotes' + self.name_lower = u'remotes' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('RemotePlugin', 'Remote'), + u'plural': translate('RemotePlugin', 'Remotes') + } diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index ddbf8e955..839a42b8f 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -1,178 +1,196 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import Plugin, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.songs.lib import SongMediaItem, SongsTab -from openlp.plugins.songs.lib.db import init_schema, Song -from openlp.plugins.songs.lib.importer import SongFormat - -log = logging.getLogger(__name__) - -class SongsPlugin(Plugin): - """ - This is the number 1 plugin, if importance were placed on any - plugins. This plugin enables the user to create, edit and display - songs. Songs are divided into verses, and the verse order can be - specified. Authors, topics and song books can be assigned to songs - as well. - """ - log.info(u'Song Plugin loaded') - - def __init__(self, plugin_helpers): - """ - Create and set up the Songs plugin. - """ - self.set_plugin_translations() - Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) - self.weight = -10 - self.manager = Manager(u'songs', init_schema) - self.icon_path = u':/plugins/plugin_songs.png' - self.icon = build_icon(self.icon_path) - - def getSettingsTab(self): - return SongsTab(self.name) - - def initialise(self): - log.info(u'Songs Initialising') - Plugin.initialise(self) - self.mediaItem.displayResultsSong( - self.manager.get_all_objects(Song, order_by_ref=Song.title)) - - def getMediaManagerItem(self): - """ - Create the MediaManagerItem object, which is displaed in the - Media Manager. - """ - return SongMediaItem(self, self.icon, self.name) - - def addImportMenuItem(self, import_menu): - """ - Give the Songs plugin the opportunity to add items to the - **Import** menu. - - ``import_menu`` - The actual **Import** menu item, so that your actions can - use it as their parent. - """ - # Main song import menu item - will eventually be the only one - self.SongImportItem = QtGui.QAction(import_menu) - self.SongImportItem.setObjectName(u'SongImportItem') - self.SongImportItem.setText(translate( - 'SongsPlugin', '&Song')) - self.SongImportItem.setToolTip(translate('SongsPlugin', - 'Import songs using the import wizard.')) - import_menu.addAction(self.SongImportItem) - # Signals and slots - QtCore.QObject.connect(self.SongImportItem, - QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked) - - def addExportMenuItem(self, export_menu): - """ - Give the Songs plugin the opportunity to add items to the - **Export** menu. - - ``export_menu`` - The actual **Export** menu item, so that your actions can - use it as their parent. - """ - # No menu items for now. - pass - - def onSongImportItemClicked(self): - if self.mediaItem: - self.mediaItem.onImportClick() - - def about(self): - about_text = translate('SongsPlugin', 'Songs Plugin' - '
The songs plugin provides the ability to display and ' - 'manage songs.') - return about_text - - def usesTheme(self, theme): - """ - Called to find out if the song plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - if self.manager.get_all_objects(Song, Song.theme_name == theme): - return True - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Renames a theme the song plugin is using making the plugin use the new - name. - - ``oldTheme`` - The name of the theme the plugin should stop using. - - ``newTheme`` - The new name the plugin should now use. - """ - songsUsingTheme = self.manager.get_all_objects(Song, - Song.theme_name == oldTheme) - for song in songsUsingTheme: - song.theme_name = newTheme - self.custommanager.save_object(song) - - def importSongs(self, format, **kwargs): - class_ = SongFormat.get_class(format) - importer = class_(self.manager, **kwargs) - importer.register(self.mediaItem.import_wizard) - return importer - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Songs' - self.name_lower = u'songs' - self.text = {} - #for context menu - self.text['context_edit'] = translate('SongsPlugin', '&Edit Song') - self.text['context_delete'] = translate('SongsPlugin', '&Delete Song') - self.text['context_preview'] = translate('SongsPlugin', '&Preview Song') - self.text['context_live'] = translate('SongsPlugin', '&Show Live') - # forHeaders in mediamanagerdock - self.text['import'] = translate('SongsPlugin', 'Import a Song') - self.text['load'] = translate('SongsPlugin', 'Load a new Song') - self.text['new'] = translate('SongsPlugin', 'Add a new Song') - self.text['edit'] = translate('SongsPlugin', 'Edit the selected Song') - self.text['delete'] = translate('SongsPlugin', 'Delete the selected Song') - self.text['delete_more'] = translate('SongsPlugin', 'Delete the selected Songs') - self.text['preview'] = translate('SongsPlugin', 'Preview the selected Song') - self.text['preview_more'] = translate('SongsPlugin', 'Preview the selected Songs') - self.text['live'] = translate('SongsPlugin', 'Send the selected Song live') - self.text['live_more'] = translate('SongsPlugin', 'Send the selected Songs live') - self.text['service'] = translate('SongsPlugin', 'Add the selected Song to the service') - self.text['service_more'] = translate('SongsPlugin', 'Add the selected Songs to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('SongsPlugin', 'Song') - self.text['name_more'] = translate('SongsPlugin', 'Songs') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.songs.lib import SongMediaItem, SongsTab +from openlp.plugins.songs.lib.db import init_schema, Song +from openlp.plugins.songs.lib.importer import SongFormat + +log = logging.getLogger(__name__) + +class SongsPlugin(Plugin): + """ + This is the number 1 plugin, if importance were placed on any + plugins. This plugin enables the user to create, edit and display + songs. Songs are divided into verses, and the verse order can be + specified. Authors, topics and song books can be assigned to songs + as well. + """ + log.info(u'Song Plugin loaded') + + def __init__(self, plugin_helpers): + """ + Create and set up the Songs plugin. + """ + self.set_plugin_strings() + Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) + self.weight = -10 + self.manager = Manager(u'songs', init_schema) + self.icon_path = u':/plugins/plugin_songs.png' + self.icon = build_icon(self.icon_path) + + def getSettingsTab(self): + return SongsTab(self.name) + + def initialise(self): + log.info(u'Songs Initialising') + Plugin.initialise(self) + self.mediaItem.displayResultsSong( + self.manager.get_all_objects(Song, order_by_ref=Song.title)) + + def getMediaManagerItem(self): + """ + Create the MediaManagerItem object, which is displaed in the + Media Manager. + """ + return SongMediaItem(self, self.icon, self.name) + + def addImportMenuItem(self, import_menu): + """ + Give the Songs plugin the opportunity to add items to the + **Import** menu. + + ``import_menu`` + The actual **Import** menu item, so that your actions can + use it as their parent. + """ + # Main song import menu item - will eventually be the only one + self.SongImportItem = QtGui.QAction(import_menu) + self.SongImportItem.setObjectName(u'SongImportItem') + self.SongImportItem.setText(translate( + 'SongsPlugin', '&Song')) + self.SongImportItem.setToolTip(translate('SongsPlugin', + 'Import songs using the import wizard.')) + import_menu.addAction(self.SongImportItem) + # Signals and slots + QtCore.QObject.connect(self.SongImportItem, + QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked) + + def addExportMenuItem(self, export_menu): + """ + Give the Songs plugin the opportunity to add items to the + **Export** menu. + + ``export_menu`` + The actual **Export** menu item, so that your actions can + use it as their parent. + """ + # No menu items for now. + pass + + def onSongImportItemClicked(self): + if self.mediaItem: + self.mediaItem.onImportClick() + + def about(self): + about_text = translate('SongsPlugin', 'Songs Plugin' + '
The songs plugin provides the ability to display and ' + 'manage songs.') + return about_text + + def usesTheme(self, theme): + """ + Called to find out if the song plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + if self.manager.get_all_objects(Song, Song.theme_name == theme): + return True + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Renames a theme the song plugin is using making the plugin use the new + name. + + ``oldTheme`` + The name of the theme the plugin should stop using. + + ``newTheme`` + The new name the plugin should now use. + """ + songsUsingTheme = self.manager.get_all_objects(Song, + Song.theme_name == oldTheme) + for song in songsUsingTheme: + song.theme_name = newTheme + self.custommanager.save_object(song) + + def importSongs(self, format, **kwargs): + class_ = SongFormat.get_class(format) + importer = class_(self.manager, **kwargs) + importer.register(self.mediaItem.import_wizard) + return importer + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Songs' + self.name_lower = u'songs' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('SongsPlugin', 'Song'), + u'plural': translate('SongsPlugin', 'Songs') + } + + # Middle Header Bar + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('SongsPlugin', 'Add'), + u'tooltip': translate('SongsPlugin', 'Add a new Song') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('SongsPlugin', 'Edit'), + u'tooltip': translate('SongsPlugin', 'Edit the selected Song') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('SongsPlugin', 'Delete'), + u'tooltip': translate('SongsPlugin', 'Delete the selected Song') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('SongsPlugin', 'Preview'), + u'tooltip': translate('SongsPlugin', 'Preview the selected Song') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('SongsPlugin', 'Live'), + u'tooltip': translate('SongsPlugin', 'Send the selected Song live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('SongsPlugin', 'Service'), + u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') + } diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 73d0d21d4..ac9007e6e 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -1,194 +1,179 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 datetime import datetime - -from PyQt4 import QtCore, QtGui - -from openlp.core.lib import Plugin, Receiver, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.songusage.forms import SongUsageDetailForm, \ - SongUsageDeleteForm -from openlp.plugins.songusage.lib.db import init_schema, SongUsageItem - -log = logging.getLogger(__name__) - -class SongUsagePlugin(Plugin): - log.info(u'SongUsage Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_translations() - Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) - self.weight = -4 - self.icon = build_icon(u':/plugins/plugin_songusage.png') - self.songusagemanager = None - self.songusageActive = False - - def addToolsMenuItem(self, tools_menu): - """ - Give the SongUsage plugin the opportunity to add items to the - **Tools** menu. - - ``tools_menu`` - The actual **Tools** menu item, so that your actions can - use it as their parent. - """ - log.info(u'add tools menu') - self.toolsMenu = tools_menu - self.SongUsageMenu = QtGui.QMenu(tools_menu) - self.SongUsageMenu.setObjectName(u'SongUsageMenu') - self.SongUsageMenu.setTitle(translate( - 'SongUsagePlugin', '&Song Usage Tracking')) - #SongUsage Delete - self.SongUsageDelete = QtGui.QAction(tools_menu) - self.SongUsageDelete.setText(translate('SongUsagePlugin', - '&Delete Tracking Data')) - self.SongUsageDelete.setStatusTip(translate('SongUsagePlugin', - 'Delete song usage data up to a specified date.')) - self.SongUsageDelete.setObjectName(u'SongUsageDelete') - #SongUsage Report - self.SongUsageReport = QtGui.QAction(tools_menu) - self.SongUsageReport.setText( - translate('SongUsagePlugin', '&Extract Tracking Data')) - self.SongUsageReport.setStatusTip( - translate('SongUsagePlugin', 'Generate a report on song usage.')) - self.SongUsageReport.setObjectName(u'SongUsageReport') - #SongUsage activation - self.SongUsageStatus = QtGui.QAction(tools_menu) - self.SongUsageStatus.setCheckable(True) - self.SongUsageStatus.setChecked(False) - self.SongUsageStatus.setText(translate( - 'SongUsagePlugin', 'Toggle Tracking')) - self.SongUsageStatus.setStatusTip(translate('SongUsagePlugin', - 'Toggle the tracking of song usage.')) - self.SongUsageStatus.setShortcut(u'F4') - self.SongUsageStatus.setObjectName(u'SongUsageStatus') - #Add Menus together - self.toolsMenu.addAction(self.SongUsageMenu.menuAction()) - self.SongUsageMenu.addAction(self.SongUsageStatus) - self.SongUsageMenu.addSeparator() - self.SongUsageMenu.addAction(self.SongUsageDelete) - self.SongUsageMenu.addAction(self.SongUsageReport) - # Signals and slots - QtCore.QObject.connect(self.SongUsageStatus, - QtCore.SIGNAL(u'visibilityChanged(bool)'), - self.SongUsageStatus.setChecked) - QtCore.QObject.connect(self.SongUsageStatus, - QtCore.SIGNAL(u'triggered(bool)'), - self.toggleSongUsageState) - QtCore.QObject.connect(self.SongUsageDelete, - QtCore.SIGNAL(u'triggered()'), self.onSongUsageDelete) - QtCore.QObject.connect(self.SongUsageReport, - QtCore.SIGNAL(u'triggered()'), self.onSongUsageReport) - self.SongUsageMenu.menuAction().setVisible(False) - - def initialise(self): - log.info(u'SongUsage Initialising') - Plugin.initialise(self) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_live_started'), - self.onReceiveSongUsage) - self.SongUsageActive = QtCore.QSettings().value( - self.settingsSection + u'/active', - QtCore.QVariant(False)).toBool() - self.SongUsageStatus.setChecked(self.SongUsageActive) - if self.songusagemanager is None: - self.songusagemanager = Manager(u'songusage', init_schema) - self.SongUsagedeleteform = SongUsageDeleteForm(self.songusagemanager, - self.formparent) - self.SongUsagedetailform = SongUsageDetailForm(self, self.formparent) - self.SongUsageMenu.menuAction().setVisible(True) - - def finalise(self): - log.info(u'Plugin Finalise') - self.SongUsageMenu.menuAction().setVisible(False) - #stop any events being processed - self.SongUsageActive = False - - def toggleSongUsageState(self): - self.SongUsageActive = not self.SongUsageActive - QtCore.QSettings().setValue(self.settingsSection + u'/active', - QtCore.QVariant(self.SongUsageActive)) - - def onReceiveSongUsage(self, item): - """ - Song Usage for live song from SlideController - """ - audit = item[0].audit - if self.SongUsageActive and audit: - song_usage_item = SongUsageItem() - song_usage_item.usagedate = datetime.today() - song_usage_item.usagetime = datetime.now().time() - song_usage_item.title = audit[0] - song_usage_item.copyright = audit[2] - song_usage_item.ccl_number = audit[3] - song_usage_item.authors = u'' - for author in audit[1]: - song_usage_item.authors += author + u' ' - self.songusagemanager.save_object(song_usage_item) - - def onSongUsageDelete(self): - self.SongUsagedeleteform.exec_() - - def onSongUsageReport(self): - self.SongUsagedetailform.initialise() - self.SongUsagedetailform.exec_() - - def about(self): - about_text = translate('SongUsagePlugin', 'SongUsage Plugin' - '
This plugin tracks the usage of songs in ' - 'services.') - return about_text - - def set_plugin_translations(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'SongUsage' - self.name_lower = u'songusage' - self.text = {} -# #for context menu -# self.text['context_edit'] = translate('SongUsagePlugin', '&Edit SongUsage') -# self.text['context_delete'] = translate('SongUsagePlugin', '&Delete SongUsage') -# self.text['context_preview'] = translate('SongUsagePlugin', '&Preview SongUsage') -# self.text['context_live'] = translate('SongUsagePlugin', '&Show Live') -# # forHeaders in mediamanagerdock -# self.text['import'] = translate('SongUsagePlugin', 'Import a SongUsage') -# self.text['file'] = translate('SongUsagePlugin', 'Load a new SongUsage') -# self.text['new'] = translate('SongUsagePlugin', 'Add a new SongUsage') -# self.text['edit'] = translate('SongUsagePlugin', 'Edit the selected SongUsage') -# self.text['delete'] = translate('SongUsagePlugin', 'Delete the selected SongUsage') -# self.text['delete_more'] = translate('SongUsagePlugin', 'Delete the selected Songs') -# self.text['preview'] = translate('SongUsagePlugin', 'Preview the selected SongUsage') -# self.text['preview_more'] = translate('SongUsagePlugin', 'Preview the selected Songs') -# self.text['live'] = translate('SongUsagePlugin', 'Send the selected SongUsage live') -# self.text['live_more'] = translate('SongUsagePlugin', 'Send the selected Songs live') -# self.text['service'] = translate('SongUsagePlugin', 'Add the selected SongUsage to the service') -# self.text['service_more'] = translate('SongUsagePlugin', 'Add the selected Songs to the service') - # for names in mediamanagerdock and pluginlist - self.text['name'] = translate('SongUsagePlugin', 'SongUsage') - self.text['name_more'] = translate('SongUsagePlugin', 'Songs') +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 datetime import datetime + +from PyQt4 import QtCore, QtGui + +from openlp.core.lib import Plugin, StringType, Receiver, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.songusage.forms import SongUsageDetailForm, \ + SongUsageDeleteForm +from openlp.plugins.songusage.lib.db import init_schema, SongUsageItem + +log = logging.getLogger(__name__) + +class SongUsagePlugin(Plugin): + log.info(u'SongUsage Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) + self.weight = -4 + self.icon = build_icon(u':/plugins/plugin_songusage.png') + self.songusagemanager = None + self.songusageActive = False + + def addToolsMenuItem(self, tools_menu): + """ + Give the SongUsage plugin the opportunity to add items to the + **Tools** menu. + + ``tools_menu`` + The actual **Tools** menu item, so that your actions can + use it as their parent. + """ + log.info(u'add tools menu') + self.toolsMenu = tools_menu + self.SongUsageMenu = QtGui.QMenu(tools_menu) + self.SongUsageMenu.setObjectName(u'SongUsageMenu') + self.SongUsageMenu.setTitle(translate( + 'SongUsagePlugin', '&Song Usage Tracking')) + #SongUsage Delete + self.SongUsageDelete = QtGui.QAction(tools_menu) + self.SongUsageDelete.setText(translate('SongUsagePlugin', + '&Delete Tracking Data')) + self.SongUsageDelete.setStatusTip(translate('SongUsagePlugin', + 'Delete song usage data up to a specified date.')) + self.SongUsageDelete.setObjectName(u'SongUsageDelete') + #SongUsage Report + self.SongUsageReport = QtGui.QAction(tools_menu) + self.SongUsageReport.setText( + translate('SongUsagePlugin', '&Extract Tracking Data')) + self.SongUsageReport.setStatusTip( + translate('SongUsagePlugin', 'Generate a report on song usage.')) + self.SongUsageReport.setObjectName(u'SongUsageReport') + #SongUsage activation + self.SongUsageStatus = QtGui.QAction(tools_menu) + self.SongUsageStatus.setCheckable(True) + self.SongUsageStatus.setChecked(False) + self.SongUsageStatus.setText(translate( + 'SongUsagePlugin', 'Toggle Tracking')) + self.SongUsageStatus.setStatusTip(translate('SongUsagePlugin', + 'Toggle the tracking of song usage.')) + self.SongUsageStatus.setShortcut(u'F4') + self.SongUsageStatus.setObjectName(u'SongUsageStatus') + #Add Menus together + self.toolsMenu.addAction(self.SongUsageMenu.menuAction()) + self.SongUsageMenu.addAction(self.SongUsageStatus) + self.SongUsageMenu.addSeparator() + self.SongUsageMenu.addAction(self.SongUsageDelete) + self.SongUsageMenu.addAction(self.SongUsageReport) + # Signals and slots + QtCore.QObject.connect(self.SongUsageStatus, + QtCore.SIGNAL(u'visibilityChanged(bool)'), + self.SongUsageStatus.setChecked) + QtCore.QObject.connect(self.SongUsageStatus, + QtCore.SIGNAL(u'triggered(bool)'), + self.toggleSongUsageState) + QtCore.QObject.connect(self.SongUsageDelete, + QtCore.SIGNAL(u'triggered()'), self.onSongUsageDelete) + QtCore.QObject.connect(self.SongUsageReport, + QtCore.SIGNAL(u'triggered()'), self.onSongUsageReport) + self.SongUsageMenu.menuAction().setVisible(False) + + def initialise(self): + log.info(u'SongUsage Initialising') + Plugin.initialise(self) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_live_started'), + self.onReceiveSongUsage) + self.SongUsageActive = QtCore.QSettings().value( + self.settingsSection + u'/active', + QtCore.QVariant(False)).toBool() + self.SongUsageStatus.setChecked(self.SongUsageActive) + if self.songusagemanager is None: + self.songusagemanager = Manager(u'songusage', init_schema) + self.SongUsagedeleteform = SongUsageDeleteForm(self.songusagemanager, + self.formparent) + self.SongUsagedetailform = SongUsageDetailForm(self, self.formparent) + self.SongUsageMenu.menuAction().setVisible(True) + + def finalise(self): + log.info(u'Plugin Finalise') + self.SongUsageMenu.menuAction().setVisible(False) + #stop any events being processed + self.SongUsageActive = False + + def toggleSongUsageState(self): + self.SongUsageActive = not self.SongUsageActive + QtCore.QSettings().setValue(self.settingsSection + u'/active', + QtCore.QVariant(self.SongUsageActive)) + + def onReceiveSongUsage(self, item): + """ + Song Usage for live song from SlideController + """ + audit = item[0].audit + if self.SongUsageActive and audit: + song_usage_item = SongUsageItem() + song_usage_item.usagedate = datetime.today() + song_usage_item.usagetime = datetime.now().time() + song_usage_item.title = audit[0] + song_usage_item.copyright = audit[2] + song_usage_item.ccl_number = audit[3] + song_usage_item.authors = u'' + for author in audit[1]: + song_usage_item.authors += author + u' ' + self.songusagemanager.save_object(song_usage_item) + + def onSongUsageDelete(self): + self.SongUsagedeleteform.exec_() + + def onSongUsageReport(self): + self.SongUsagedetailform.initialise() + self.SongUsagedetailform.exec_() + + def about(self): + about_text = translate('SongUsagePlugin', 'SongUsage Plugin' + '
This plugin tracks the usage of songs in ' + 'services.') + return about_text + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'SongUsage' + self.name_lower = u'songusage' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('SongUsagePlugin', 'SongUsage'), + u'plural': translate('SongUsagePlugin', 'SongUsage') + } diff --git a/resources/i18n/openlp_af.ts b/resources/i18n/openlp_af.ts index fc20ab5b7..57c62f996 100644 --- a/resources/i18n/openlp_af.ts +++ b/resources/i18n/openlp_af.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Waarskuwings @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - &Vertoon Regstreeks - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bybel - + Bibles Bybels + + + Import + Invoer + + + + Import a Bible + + + + + Add + Byvoeg + + + + Add a new Bible + + + + + Edit + Redigeer + + + + Edit the selected Bible + + + + + Delete + + + + + Delete the selected Bible + + + + + Preview + Voorskou + + + + Preview the selected Bible + + + + + Live + Regstreeks + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + +
BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Gevorderd - + Version: Weergawe: - + Dual: Dubbel: - + Search type: - + Find: Vind: - + Search Soek - + Results: &Resultate: - + Book: Boek: - + Chapter: Hoofstuk: - + Verse: Vers: - + From: Vanaf: - + To: Aan: - + Verse Search Soek Vers - + Text Search Teks Soektog - + Clear - + Keep Behou - + No Book Found Geeb Boek Gevind nie - + No matching book could be found in this Bible. Geen bypassende boek kon in dié Bybel gevind word nie. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Redigeer Aangepaste Skyfies - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Voeg Nuwe By - + Add a new slide at bottom. - + Edit Redigeer - + Edit the selected slide. - + Edit All Redigeer Alles - + Edit all the slides at once. - + Save Stoor - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area Maak skoon die redigeer area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,69 +926,94 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - &Vertoon Regstreeks - - - - Import a Custom + Custom - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import + Invoer + + + + Import a Custom - - Preview the selected Custom - - - - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom + + Add + Byvoeg + + + + Add a new Custom + + + + + Edit + Redigeer + + + + Edit the selected Custom + + + + + Delete + + + + + Delete the selected Custom + + + + + Preview + Voorskou + + + + Preview the selected Custom + + + + + Live + Regstreeks + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service @@ -1006,99 +1021,89 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - &Vertoon Regstreeks - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Beeld - + Images Beelde + + + Load + + + + + Load a new Image + + + + + Add + Byvoeg + + + + Add a new Image + + + + + Edit + Redigeer + + + + Edit the selected Image + + + + + Delete + + + + + Delete the selected Image + + + + + Preview + Voorskou + + + + Preview the selected Image + + + + + Live + Regstreeks + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + +
ImagePlugin.MediaItem @@ -1155,70 +1160,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - &Vertoon Regstreeks + Media + Media - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias + Load + + + + + Load a new Media + + + + + Add + Byvoeg + + + + Add a new Media + + + + + Edit + Redigeer + + + + Edit the selected Media + + + + + Delete + + + + Delete the selected Media - + + Preview + Voorskou + + + Preview the selected Media - + + Live + Regstreeks + + + Send the selected Media live - - Add the selected Media to the service + + Service - - Media - Media + + Add the selected Media to the service + @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Vertoon Regstreeks - + &Add to Service &Voeg by Diens - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Inprop Lys - + Plugin Details Inprop Besonderhede - + Version: Weergawe: - + TextLabel TeksEtiket - + About: Aangaande: - + Status: Status: - + Active Aktief - + Inactive Onaktief - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. Voorskou - + Move to previous Beweeg na vorige - + Move to next Verskuif na volgende - + Hide - + Move to live Verskuif na regstreekse skerm - + Edit and re-preview Song Redigeer en sien weer 'n voorskou van die Lied - + Start continuous loop Begin aaneenlopende lus - + Stop continuous loop Stop deurlopende lus - + s s - + Delay between slides in seconds Vertraging in sekondes tussen skyfies - + Start playing media Begin media speel - - Go to Verse - Gaan na Vers + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,95 +3073,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - &Vertoon Regstreeks - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Aanbieding - + Presentations Aanbiedinge + + + Load + + + + + Load a new Presentation + + + + + Delete + + + + + Delete the selected Presentation + + + + + Preview + Voorskou + + + + Preview the selected Presentation + + + + + Live + Regstreeks + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3239,12 +3207,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Afstandbehere @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - Liedere - SongUsagePlugin.SongUsageDeleteForm @@ -3388,96 +3351,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - &Vertoon Regstreeks - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Lied - + Songs Liedere + + + Add + Byvoeg + + + + Add a new Song + + + + + Edit + Redigeer + + + + Edit the selected Song + + + + + Delete + + + + + Delete the selected Song + + + + + Preview + Voorskou + + + + Preview the selected Song + + + + + Live + Regstreeks + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3675,7 +3618,7 @@ The content encoding is not UTF-8. - + Error Fout @@ -3720,42 +3663,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Redigeer Vers - + &Verse type: - + &Insert @@ -3781,127 +3724,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Invoer begin... @@ -4015,6 +3958,16 @@ The content encoding is not UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4089,7 +4042,7 @@ The content encoding is not UTF-8. - + CCLI Licence: CCLI Lisensie: @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Invoer voltooi. - + Your song import failed. diff --git a/resources/i18n/openlp_de.ts b/resources/i18n/openlp_de.ts index 08b0e5cfe..144ea4862 100644 --- a/resources/i18n/openlp_de.ts +++ b/resources/i18n/openlp_de.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Hinweise @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - &Zeige Live - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bibel - + Bibles Bibeln + + + Import + Import + + + + Import a Bible + + + + + Add + Hinzufügen + + + + Add a new Bible + + + + + Edit + Bearbeiten + + + + Edit the selected Bible + + + + + Delete + Löschen + + + + Delete the selected Bible + + + + + Preview + Vorschau + + + + Preview the selected Bible + + + + + Live + Live + + + + Send the selected Bible live + + + + + Service + Ablauf + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Erweitert - + Version: Version: - + Dual: Parallel: - + Find: Suchen: - + Search Suche - + Results: Ergebnisse: - + Book: Buch: - + Chapter: Kapitel: - + Verse: Vers: - + From: Von: - + To: Bis: - + Verse Search Stelle suchen - + Text Search Textsuche - + Clear - + Keep Behalten - + No Book Found Kein Buch gefunden - + No matching book could be found in this Bible. Das Buch wurde in dieser Bibelausgabe nicht gefunden. - + etc - + Search type: - + Bible not fully loaded. @@ -771,8 +761,8 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + @@ -796,62 +786,62 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Sonderfolien bearbeiten - + &Title: - + Add New Neues anfügen - + Edit Bearbeiten - + Edit All - + Save Speichern - + Delete Löschen - + Clear - + Clear edit area Aufräumen des Bearbeiten Bereiches - + Split Slide - + The&me: - + &Credits: @@ -866,37 +856,37 @@ Changes do not affect verses already in the service. Fehler - + Move slide down one position. - + Add a new slide at bottom. - + Edit the selected slide. - + Edit all the slides at once. - + Save the slide currently being edited. - + Delete the selected slide. - + Split a slide into two by inserting a slide splitter. @@ -916,7 +906,7 @@ Changes do not affect verses already in the service. - + Move slide up one position. @@ -936,169 +926,184 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - &Zeige Live + Custom + Sonderfolien - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs + Import + Import + + + + Import a Custom + + + + + Load + Laden + + + + Load a new Custom + + + + + Add + Hinzufügen + + + + Add a new Custom + + + + + Edit + Bearbeiten + + + + Edit the selected Custom + + + + + Delete + Löschen + + + Delete the selected Custom - + + Preview + Vorschau + + + Preview the selected Custom - + + Live + Live + + + Send the selected Custom live - - Add the selected Custom to the service - + + Service + Ablauf - - Custom - Sonderfolien + + Add the selected Custom to the service + ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - &Zeige Live - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Bild - + Images + + + Load + Laden + + + + Load a new Image + + + + + Add + Hinzufügen + + + + Add a new Image + + + + + Edit + Bearbeiten + + + + Edit the selected Image + + + + + Delete + Löschen + + + + Delete the selected Image + + + + + Preview + Vorschau + + + + Preview the selected Image + + + + + Live + Live + + + + Send the selected Image live + + + + + Service + Ablauf + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,70 +1160,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - &Zeige Live + Media + Medien - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias + Load + Laden + + + + Load a new Media + + + + + Add + Hinzufügen + + + + Add a new Media + + + + + Edit + Bearbeiten + + + + Edit the selected Media + + + + + Delete + Löschen + + + Delete the selected Media - + + Preview + Vorschau + + + Preview the selected Media - + + Live + Live + + + Send the selected Media live - - Add the selected Media to the service - + + Service + Ablauf - - Media - Medien + + Add the selected Media to the service + @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Zeige Live - + &Add to Service &Zum Ablauf hinzufügen - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Sie müssen mindestens ein Element markieren - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Plugin-Liste - + Plugin Details Plugin-Details - + Version: Version: - + TextLabel Text Beschriftung - + About: Über: - + Status: Status: - + Active Aktiv - + Inactive Inaktiv - + %s (Inactive) %s (Inaktiv) - + %s (Active) %s (Aktiv) - + %s (Disabled) %s (Deaktiviert) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. Vorschau - + Move to previous Vorherige Folie anzeigen - + Move to next Verschiebe zum Nächsten - + Hide - + Move to live Verschieben zur Live Ansicht - + Edit and re-preview Song Lied bearbeiten und wieder anzeigen - + Start continuous loop Endlosschleife starten - + Stop continuous loop Endlosschleife beenden - + s s - + Delay between slides in seconds Pause zwischen den Folien in Sekunden - + Start playing media Abspielen - - Go to Verse - Springe zu + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,95 +3073,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - &Zeige Live - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Präsentation - + Presentations Präsentationen + + + Load + Laden + + + + Load a new Presentation + + + + + Delete + Löschen + + + + Delete the selected Presentation + + + + + Preview + Vorschau + + + + Preview the selected Presentation + + + + + Live + Live + + + + Send the selected Presentation live + + + + + Service + Ablauf + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3239,12 +3207,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Fernprojektion @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - Lieder - SongUsagePlugin.SongUsageDeleteForm @@ -3388,96 +3351,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - &Zeige Live - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Lied - + Songs Lieder + + + Add + Hinzufügen + + + + Add a new Song + Füge ein neues Lied hinzu + + + + Edit + Bearbeiten + + + + Edit the selected Song + Bearbeite das akuelle Lied + + + + Delete + Löschen + + + + Delete the selected Song + Markiertes Lied löschen + + + + Preview + Vorschau + + + + Preview the selected Song + Vorschau des markierten Liedes + + + + Live + Live + + + + Send the selected Song live + Markiertes Lied vorführen + + + + Service + Ablauf + + + + Add the selected Song to the service + Markierten Titel zum Ablauf hinzufügen + SongsPlugin.AuthorsForm @@ -3675,47 +3618,47 @@ The content encoding is not UTF-8. - + Add Book - + This song book does not exist, do you want to add it? - + Error Fehler - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Bearbeite Vers - + &Verse type: - + &Insert @@ -3781,37 +3724,37 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + Starting import... Starte import ... @@ -3896,92 +3839,92 @@ The content encoding is not UTF-8. - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files @@ -4015,6 +3958,16 @@ The content encoding is not UTF-8. Generic Document/Presentation + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4074,7 +4027,7 @@ The content encoding is not UTF-8. - + CCLI Licence: CCLI-Lizenz: @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importvorgang abgeschlossen. - + Your song import failed. diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index 4fac40d62..da8da1006 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible - + Bibles + + + Import + + + + + Import a Bible + + + + + Add + + + + + Add a new Bible + + + + + Edit + + + + + Edit the selected Bible + + + + + Delete + + + + + Delete the selected Bible + + + + + Preview + + + + + Preview the selected Bible + + + + + Live + + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. - + Version: - + Dual: - + Search type: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + No matching book could be found in this Bible. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,69 +926,94 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live + Custom - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import - - Preview the selected Custom + + Import a Custom - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom + + Add + + + + + Add a new Custom + + + + + Edit + + + + + Edit the selected Custom + + + + + Delete + + + + + Delete the selected Custom + + + + + Preview + + + + + Preview the selected Custom + + + + + Live + + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service @@ -1006,99 +1021,89 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image - + Images + + + Load + + + + + Load a new Image + + + + + Add + + + + + Add a new Image + + + + + Edit + + + + + Edit the selected Image + + + + + Delete + + + + + Delete the selected Image + + + + + Preview + + + + + Preview the selected Image + + + + + Live + + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,69 +1160,84 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live + Media - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias - Delete the selected Media + Load - - Preview the selected Media + + Load a new Media - - Send the selected Media live + + Add - Add the selected Media to the service + Add a new Media - - Media + + Edit + + + + + Edit the selected Media + + + + + Delete + + + + + Delete the selected Media + + + + + Preview + + + + + Preview the selected Media + + + + + Live + + + + + Send the selected Media live + + + + + Service + + + + + Add the selected Media to the service @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List - + Plugin Details - + Version: - + TextLabel - + About: - + Status: - + Active - + Inactive - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. - + Move to previous - + Move to next - + Hide - + Move to live - + Edit and re-preview Song - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media - - Go to Verse + + Go to OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,95 +3073,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation - + Presentations + + + Load + + + + + Load a new Presentation + + + + + Delete + + + + + Delete the selected Presentation + + + + + Preview + + + + + Preview the selected Presentation + + + + + Live + + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3239,12 +3207,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - - SongUsagePlugin.SongUsageDeleteForm @@ -3388,96 +3351,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song - + Songs + + + Add + + + + + Add a new Song + + + + + Edit + + + + + Edit the selected Song + + + + + Delete + + + + + Delete the selected Song + + + + + Preview + + + + + Preview the selected Song + + + + + Live + + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3675,7 +3618,7 @@ The content encoding is not UTF-8. - + Error @@ -3720,42 +3663,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse - + &Verse type: - + &Insert @@ -3781,127 +3724,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... @@ -4015,6 +3958,16 @@ The content encoding is not UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4089,7 +4042,7 @@ The content encoding is not UTF-8. - + CCLI Licence: @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. diff --git a/resources/i18n/openlp_en_GB.ts b/resources/i18n/openlp_en_GB.ts index 0a7b926bb..6f9616304 100644 --- a/resources/i18n/openlp_en_GB.ts +++ b/resources/i18n/openlp_en_GB.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alerts @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - &Show Live - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bible - + Bibles Bibles + + + Import + Import + + + + Import a Bible + + + + + Add + Add + + + + Add a new Bible + + + + + Edit + Edit + + + + Edit the selected Bible + + + + + Delete + Delete + + + + Delete the selected Bible + + + + + Preview + Preview + + + + Preview the selected Bible + + + + + Live + Live + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Advanced - + Version: Version: - + Dual: Dual: - + Search type: - + Find: Find: - + Search Search - + Results: Results: - + Book: Book: - + Chapter: Chapter: - + Verse: Verse: - + From: From: - + To: To: - + Verse Search Verse Search - + Text Search Text Search - + Clear Clear - + Keep Keep - + No Book Found No Book Found - + No matching book could be found in this Bible. No matching book could be found in this Bible. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Add New - + Add a new slide at bottom. - + Edit Edit - + Edit the selected slide. - + Edit All Edit All - + Edit all the slides at once. - + Save Save - + Save the slide currently being edited. - + Delete Delete - + Delete the selected slide. - + Clear Clear - + Clear edit area Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,169 +926,184 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - &Show Live + Custom + Custom - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import + Import + + + + Import a Custom - - Preview the selected Custom - - - - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom - Custom + + Add + Add + + + + Add a new Custom + + + + + Edit + Edit + + + + Edit the selected Custom + + + + + Delete + Delete + + + + Delete the selected Custom + + + + + Preview + Preview + + + + Preview the selected Custom + + + + + Live + Live + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service + ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - &Show Live - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Image - + Images Images + + + Load + + + + + Load a new Image + + + + + Add + Add + + + + Add a new Image + + + + + Edit + Edit + + + + Edit the selected Image + + + + + Delete + Delete + + + + Delete the selected Image + + + + + Preview + Preview + + + + Preview the selected Image + + + + + Live + Live + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,70 +1160,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - &Show Live + Media + Media - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias + Load + + + + + Load a new Media + + + + + Add + Add + + + + Add a new Media + + + + + Edit + Edit + + + + Edit the selected Media + + + + + Delete + Delete + + + Delete the selected Media - + + Preview + Preview + + + Preview the selected Media - + + Live + Live + + + Send the selected Media live - - Add the selected Media to the service + + Service - - Media - Media + + Add the selected Media to the service + @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Show Live - + &Add to Service &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Plugin List - + Plugin Details Plugin Details - + Version: Version: - + TextLabel TextLabel - + About: About: - + Status: Status: - + Active Active - + Inactive Inactive - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. Preview - + Move to previous Move to previous - + Move to next Move to next - + Hide - + Move to live Move to live - + Edit and re-preview Song Edit and re-preview Song - + Start continuous loop Start continuous loop - + Stop continuous loop Stop continuous loop - + s s - + Delay between slides in seconds Delay between slides in seconds - + Start playing media Start playing media - - Go to Verse - Go to Verse + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,95 +3073,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - &Show Live - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Presentation - + Presentations Presentations + + + Load + + + + + Load a new Presentation + + + + + Delete + Delete + + + + Delete the selected Presentation + + + + + Preview + Preview + + + + Preview the selected Presentation + + + + + Live + Live + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3239,12 +3207,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Remotes @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - Songs - SongUsagePlugin.SongUsageDeleteForm @@ -3388,96 +3351,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - &Show Live - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Song - + Songs Songs + + + Add + Add + + + + Add a new Song + + + + + Edit + Edit + + + + Edit the selected Song + + + + + Delete + Delete + + + + Delete the selected Song + + + + + Preview + Preview + + + + Preview the selected Song + + + + + Live + Live + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3675,7 +3618,7 @@ The content encoding is not UTF-8. - + Error Error @@ -3720,42 +3663,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Edit Verse - + &Verse type: - + &Insert @@ -3781,127 +3724,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Starting import... @@ -4015,6 +3958,16 @@ The content encoding is not UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4089,7 +4042,7 @@ The content encoding is not UTF-8. - + CCLI Licence: CCLI Licence: @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Finished import. - + Your song import failed. diff --git a/resources/i18n/openlp_en_ZA.ts b/resources/i18n/openlp_en_ZA.ts index 67a21d3ac..1f853c652 100644 --- a/resources/i18n/openlp_en_ZA.ts +++ b/resources/i18n/openlp_en_ZA.ts @@ -18,12 +18,12 @@ <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alerts @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - &Show Live - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bible - + Bibles Bibles + + + Import + + + + + Import a Bible + + + + + Add + + + + + Add a new Bible + + + + + Edit + Edit + + + + Edit the selected Bible + + + + + Delete + Delete + + + + Delete the selected Bible + + + + + Preview + Preview + + + + Preview the selected Bible + + + + + Live + Live + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -665,97 +655,97 @@ Changes do not affect verses already in the service. Advanced - + Version: Version: - + Dual: Dual: - + Search type: Search type: - + Find: Find: - + Search Search - + Results: Results: - + Book: Book: - + Chapter: Chapter: - + Verse: Verse: - + From: From: - + To: To: - + Verse Search Verse Search - + Text Search Text Search - + Clear Clear - + Keep Keep - + No Book Found No Book Found - + No matching book could be found in this Bible. No matching book could be found in this Bible. - + etc etc - + Bible not fully loaded. Bible not fully loaded. @@ -772,8 +762,8 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + @@ -797,97 +787,97 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Edit Custom Slides - + Move slide down one position. Move slide down one position. - + &Title: &Title: - + Add New Add New - + Add a new slide at bottom. Add a new slide at bottom. - + Edit Edit - + Edit the selected slide. Edit the selected slide. - + Edit All Edit All - + Edit all the slides at once. Edit all the slides at once. - + Save Save - + Save the slide currently being edited. Save the slide currently being edited. - + Delete Delete - + Delete the selected slide. Delete the selected slide. - + Clear Clear - + Clear edit area Clear edit area - + Split Slide Split Slide - + Split a slide into two by inserting a slide splitter. Split a slide into two by inserting a slide splitter. - + The&me: The&me: - + &Credits: &Credits: @@ -917,7 +907,7 @@ Changes do not affect verses already in the service. You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Move slide up one position. Move slide up one position. @@ -937,169 +927,184 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - &Show Live + Custom + Custom - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import - - Preview the selected Custom + + Import a Custom - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom - Custom + + Add + + + + + Add a new Custom + + + + + Edit + Edit + + + + Edit the selected Custom + + + + + Delete + Delete + + + + Delete the selected Custom + + + + + Preview + Preview + + + + Preview the selected Custom + + + + + Live + Live + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service + ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - &Show Live - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Image - + Images + + + Load + + + + + Load a new Image + + + + + Add + + + + + Add a new Image + + + + + Edit + Edit + + + + Edit the selected Image + + + + + Delete + Delete + + + + Delete the selected Image + + + + + Preview + Preview + + + + Preview the selected Image + + + + + Live + Live + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1156,70 +1161,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - &Show Live + Media + Media - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias - Delete the selected Media + Load - - Preview the selected Media + + Load a new Media - - Send the selected Media live + + Add - Add the selected Media to the service + Add a new Media - - Media - Media + + Edit + Edit + + + + Edit the selected Media + + + + + Delete + Delete + + + + Delete the selected Media + + + + + Preview + Preview + + + + Preview the selected Media + + + + + Live + Live + + + + Send the selected Media live + + + + + Service + + + + + Add the selected Media to the service + @@ -1853,6 +1873,19 @@ This General Public License does not permit incorporating your program into prop Slide height is %s rows. + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2414,117 +2447,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected No Items Selected - - Import %s - Import %s - - - - Load %s - Load %s - - - - New %s - New %s - - - - Edit %s - Edit %s - - - - Delete %s - Delete %s - - - - Preview %s - Preview %s - - - - Add %s to Service - Add %s to Service - - - + &Edit %s &Edit %s - + &Delete %s &Delete %s - + &Preview %s &Preview %s - + &Show Live &Show Live - + &Add to Service &Add to Service - + &Add to selected Service Item &Add to selected Service Item - + You must select one or more items to preview. You must select one or more items to preview. - + You must select one or more items to send live. You must select one or more items to send live. - + You must select one or more items. You must select one or more items. - + No items selected No items selected - + You must select one or more items You must select one or more items - + No Service Item Selected No Service Item Selected - + You must select an existing service item to add to. You must select an existing service item to add to. - + Invalid Service Item Invalid Service Item - + You must select a %s service item. You must select a %s service item. @@ -2532,57 +2530,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Plugin List - + Plugin Details Plugin Details - + Version: Version: - + About: About: - + Status: Status: - + Active Active - + Inactive Inactive - + %s (Inactive) %s (Inactive) - + %s (Active) %s (Active) - + %s (Disabled) %s (Disabled) - + TextLabel @@ -2819,70 +2817,70 @@ The content encoding is not UTF-8. Preview - + Move to previous Move to previous - + Move to next Move to next - + Hide Hide - + Move to live Move to live - + Start continuous loop Start continuous loop - + Stop continuous loop Stop continuous loop - + s s - + Delay between slides in seconds Delay between slides in seconds - + Start playing media Start playing media - + Edit and re-preview Song - - Go to Verse + + Go to OpenLP.SpellTextEdit - + Spelling Suggestions Spelling Suggestions - + Formatting Tags Formatting Tags @@ -3123,95 +3121,65 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - &Show Live - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Presentation - + Presentations Presentations + + + Load + + + + + Load a new Presentation + + + + + Delete + Delete + + + + Delete the selected Presentation + + + + + Preview + Preview + + + + Preview the selected Presentation + + + + + Live + Live + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3248,7 +3216,7 @@ The content encoding is not UTF-8. This type of presentation is not supported - + This type of presentation is not supported @@ -3287,12 +3255,12 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remotes @@ -3363,15 +3331,10 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage - - - Songs - - SongUsagePlugin.SongUsageDeleteForm @@ -3436,96 +3399,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - &Show Live - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Song - + Songs + + + Add + + + + + Add a new Song + + + + + Edit + Edit + + + + Edit the selected Song + + + + + Delete + Delete + + + + Delete the selected Song + + + + + Preview + Preview + + + + Preview the selected Song + + + + + Live + Live + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3680,127 +3623,127 @@ The content encoding is not UTF-8. Comments - + Comments Theme, Copyright Info && Comments - + Theme, Copyright Info && Comments Save && Preview - Save && Preview + Save && Preview Add Author - + Add Author This author does not exist, do you want to add them? - + This author does not exist, do you want to add them? - + Error - Error + Error This author is already in the list. - + This author is already in the list. No Author Selected - + No Author Selected You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. Add Topic - + Add Topic This topic does not exist, do you want to add it? - + This topic does not exist, do you want to add it? This topic is already in the list. - + This topic is already in the list. No Topic Selected - + No Topic Selected You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You need to type in a song title. - + You need to type in a song title. - + You need to type in at least one verse. - + You need to type in at least one verse. - + Warning - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + Add Book - + This song book does not exist, do you want to add it? - + This song book does not exist, do you want to add it? Alt&ernate title: - + Alt&ernate title: &Verse order: - + &Verse order: CCLI number: - CCLI number: + CCLI number: @@ -3811,17 +3754,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Edit Verse - + &Verse type: - + &Insert @@ -3829,37 +3772,37 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + Starting import... Starting import... @@ -3944,87 +3887,87 @@ The content encoding is not UTF-8. - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files @@ -4059,10 +4002,20 @@ The content encoding is not UTF-8. - + Select CCLI Files + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4122,7 +4075,7 @@ The content encoding is not UTF-8. You must select an item to delete. - + CCLI Licence: CCLI License: @@ -4173,12 +4126,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © © @@ -4186,12 +4139,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Finished import. - + Your song import failed. diff --git a/resources/i18n/openlp_es.ts b/resources/i18n/openlp_es.ts index 11358db65..543ddbcb8 100644 --- a/resources/i18n/openlp_es.ts +++ b/resources/i18n/openlp_es.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alertas @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - Mo&star En Vivo - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Biblia - + Bibles Biblias + + + Import + Importar + + + + Import a Bible + + + + + Add + Agregar + + + + Add a new Bible + + + + + Edit + Editar + + + + Edit the selected Bible + + + + + Delete + Eliminar + + + + Delete the selected Bible + + + + + Preview + Vista Previa + + + + Preview the selected Bible + + + + + Live + En vivo + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Avanzado - + Version: Versión: - + Dual: Paralela: - + Search type: - + Find: Encontrar: - + Search Buscar - + Results: Resultados: - + Book: Libro: - + Chapter: Capítulo: - + Verse: Versículo: - + From: Desde: - + To: Hasta: - + Verse Search Búsqueda de versículo - + Text Search Búsqueda de texto - + Clear Limpiar - + Keep Conservar - + No Book Found No se encontró el libro - + No matching book could be found in this Bible. No se encuentra un libro que concuerde, en esta Biblia. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Editar Diapositivas Personalizadas - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Agregar Nueva - + Add a new slide at bottom. - + Edit Editar - + Edit the selected slide. - + Edit All Editar Todo - + Edit all the slides at once. - + Save Guardar - + Save the slide currently being edited. - + Delete Eliminar - + Delete the selected slide. - + Clear Limpiar - + Clear edit area Limpiar el área de edición - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,69 +926,94 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - Mo&star En Vivo - - - - Import a Custom + Custom - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import + Importar + + + + Import a Custom - - Preview the selected Custom - - - - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom + + Add + Agregar + + + + Add a new Custom + + + + + Edit + Editar + + + + Edit the selected Custom + + + + + Delete + Eliminar + + + + Delete the selected Custom + + + + + Preview + Vista Previa + + + + Preview the selected Custom + + + + + Live + En vivo + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service @@ -1006,99 +1021,89 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - Mo&star En Vivo - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Imagen - + Images Imágenes + + + Load + + + + + Load a new Image + + + + + Add + Agregar + + + + Add a new Image + + + + + Edit + Editar + + + + Edit the selected Image + + + + + Delete + Eliminar + + + + Delete the selected Image + + + + + Preview + Vista Previa + + + + Preview the selected Image + + + + + Live + En vivo + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,70 +1160,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - Mo&star En Vivo + Media + Medios - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias + Load + + + + + Load a new Media + + + + + Add + Agregar + + + + Add a new Media + + + + + Edit + Editar + + + + Edit the selected Media + + + + + Delete + Eliminar + + + Delete the selected Media - + + Preview + Vista Previa + + + Preview the selected Media - + + Live + En vivo + + + Send the selected Media live - - Add the selected Media to the service + + Service - - Media - Medios + + Add the selected Media to the service + @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Mo&star En Vivo - + &Add to Service &Agregar al Servicio - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Usted debe seleccionar uno o más elementos - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Lista de Plugins - + Plugin Details Detalles de Plugin - + Version: Versión: - + TextLabel TextLabel - + About: Acerca de: - + Status: Estado: - + Active Activo - + Inactive Inactivo - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. Vista Previa - + Move to previous Regresar al anterior - + Move to next Ir al siguiente - + Hide - + Move to live Proyectar en vivo - + Edit and re-preview Song Editar y re-visualizar Canción - + Start continuous loop Iniciar bucle continuo - + Stop continuous loop Detener el bucle - + s s - + Delay between slides in seconds Espera entre diapositivas en segundos - + Start playing media Iniciar la reproducción de medios - - Go to Verse - Ir al Verso + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,95 +3073,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - Mo&star En Vivo - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Presentación - + Presentations Presentaciones + + + Load + + + + + Load a new Presentation + + + + + Delete + Eliminar + + + + Delete the selected Presentation + + + + + Preview + Vista Previa + + + + Preview the selected Presentation + + + + + Live + En vivo + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3239,12 +3207,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Remotas @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - Canciones - SongUsagePlugin.SongUsageDeleteForm @@ -3388,96 +3351,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - Mo&star En Vivo - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Canción - + Songs Canciones + + + Add + Agregar + + + + Add a new Song + + + + + Edit + Editar + + + + Edit the selected Song + + + + + Delete + Eliminar + + + + Delete the selected Song + + + + + Preview + Vista Previa + + + + Preview the selected Song + + + + + Live + En vivo + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3675,7 +3618,7 @@ The content encoding is not UTF-8. - + Error Error @@ -3720,42 +3663,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Editar Verso - + &Verse type: - + &Insert @@ -3781,127 +3724,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Iniciando importación... @@ -4015,6 +3958,16 @@ The content encoding is not UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4089,7 +4042,7 @@ The content encoding is not UTF-8. - + CCLI Licence: Licencia CCLI: @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importación finalizada. - + Your song import failed. diff --git a/resources/i18n/openlp_et.ts b/resources/i18n/openlp_et.ts index adc325c99..e7328bfc9 100644 --- a/resources/i18n/openlp_et.ts +++ b/resources/i18n/openlp_et.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -185,95 +185,85 @@ - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - - - &Show Live - - - - + Import a Bible - - Load a new Bible - - - - + Add a new Bible - + Edit the selected Bible - + Delete the selected Bible - - Delete the selected Bibles - - - - + Preview the selected Bible - - Preview the selected Bibles - - - - + Send the selected Bible live - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - + Bible - + Bibles + + + Import + + + + + Add + + + + + Edit + + + + + Delete + + + + + Preview + + + + + Live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. - + Version: Versioon: - + Dual: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + etc - + No matching book could be found in this Bible. - + Search type: - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,47 +786,47 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Kohandatud slaidide muutmine - + Add New Uue lisamine - + Edit Muuda - + Edit All Kõigi muutmine - + Save Salvesta - + Delete Kustuta - + Clear Puhasta - + Clear edit area Muutmise ala puhastamine - + Split Slide Tükelda slaid @@ -851,52 +841,52 @@ Changes do not affect verses already in the service. Viga - + Move slide down one position. - + &Title: - + Add a new slide at bottom. - + Edit the selected slide. - + Edit all the slides at once. - + Save the slide currently being edited. - + Delete the selected slide. - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -916,7 +906,7 @@ Changes do not affect verses already in the service. - + Move slide up one position. @@ -937,168 +927,183 @@ Changes do not affect verses already in the service. CustomsPlugin - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - - - &Show Live - - - - + Import a Custom - + Load a new Custom - + Add a new Custom - + Edit the selected Custom - + Delete the selected Custom - + Preview the selected Custom - + Send the selected Custom live - + Add the selected Custom to the service - + Custom + + + Customs + + + + + Import + + + + + Load + + + + + Add + + + + + Edit + + + + + Delete + + + + + Preview + + + + + Live + + + + + Service + + ImagePlugin - - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image - - - - - &Show Live - - - - - Import a Image - - - - + Load a new Image - + Add a new Image - + Edit the selected Image - + Delete the selected Image - - Delete the selected Images - - - - + Preview the selected Image - - Preview the selected Images - - - - + Send the selected Image live - - Send the selected Images live - - - - + Add the selected Image to the service - - Add the selected Images to the service - - - - + Image Pilt - + Images + + + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. + + + + + Load + + + + + Add + + + + + Edit + + + + + Delete + + + + + Preview + + + + + Live + + + + + Service + + ImagePlugin.MediaItem @@ -1156,70 +1161,85 @@ Changes do not affect verses already in the service. - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - - - &Show Live - - - - - Import a Media - - - - + Load a new Media - + Add a new Media - + Edit the selected Media - + Delete the selected Media - + Preview the selected Media - + Send the selected Media live - + Add the selected Media to the service - + Media + + + Medias + + + + + Load + + + + + Add + + + + + Edit + + + + + Delete + + + + + Preview + + + + + Live + + + + + Service + + MediaPlugin.MediaItem @@ -1815,6 +1835,19 @@ Built With + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2374,117 +2407,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Kuva ekraanil - + &Add to Service &Lisa teenistusele - + &Add to selected Service Item &Lisa valitud teenistuse elemendile - + No Items Selected Ühtegi elementi pole valitud - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Pead valima vähemalt ühe elemendi. - + No items selected Ühtegi elementi pole valitud - + You must select one or more items Pead valima vähemalt ühe elemendi - + No Service Item Selected Ühtegi teenistuse elementi pole valitud - + You must select an existing service item to add to. Pead valima olemasoleva teenistuse, millele lisada. - + Invalid Service Item Vigane teenistuse element - + You must select a %s service item. @@ -2492,57 +2490,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Pluginate loend - + Plugin Details Plugina andmed - + Version: Versioon: - + TextLabel TekstiPealdis - + About: Kirjeldus: - + Status: Olek: - + Active Aktiivne - + Inactive Pole aktiivne - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2778,70 +2776,70 @@ The content encoding is not UTF-8. Eelvaade - + Move to previous Eelmisele liikumine - + Move to next Liikumine järgmisele - + Hide - + Move to live Tõsta ekraanile - + Edit and re-preview Song Muuda ja kuva laulu eelvaade uuesti - + Start continuous loop Katkematu korduse alustamine - + Stop continuous loop Katkematu korduse lõpetamine - + s s - + Delay between slides in seconds Viivitus slaidide vahel sekundites - + Start playing media Meediaesituse alustamine - - Go to Verse - Liikumine salmile + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3081,95 +3079,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - - - - - Import a Presentation - - - - + Load a new Presentation - - Add a new Presentation - - - - - Edit the selected Presentation - - - - + Delete the selected Presentation - - Delete the selected Presentations - - - - + Preview the selected Presentation - - Preview the selected Presentations - - - - + Send the selected Presentation live - - Send the selected Presentations live - - - - + Add the selected Presentation to the service - - Add the selected Presentations to the service - - - - + Presentation - + Presentations + + + Load + + + + + Delete + + + + + Preview + + + + + Live + + + + + Service + + PresentationPlugin.MediaItem @@ -3245,12 +3213,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3321,15 +3289,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - - SongUsagePlugin.SongUsageDeleteForm @@ -3395,95 +3358,75 @@ The content encoding is not UTF-8. - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - - - &Show Live - - - - - Import a Song - - - - - Load a new Song - - - - + Add a new Song - + Edit the selected Song - + Delete the selected Song - - Delete the selected Songs - - - - + Preview the selected Song - - Preview the selected Songs - - - - + Send the selected Song live - - Send the selected Songs live - - - - + Add the selected Song to the service - - Add the selected Songs to the service - - - - + Song - + Songs + + + Add + + + + + Edit + + + + + Delete + + + + + Preview + + + + + Live + + + + + Service + + SongsPlugin.AuthorsForm @@ -3666,17 +3609,17 @@ The content encoding is not UTF-8. - + Add Book - + This song book does not exist, do you want to add it? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. @@ -3696,32 +3639,32 @@ The content encoding is not UTF-8. - + Error Viga - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? @@ -3769,17 +3712,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse - + &Verse type: - + &Insert @@ -3787,32 +3730,32 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. @@ -3897,92 +3840,92 @@ The content encoding is not UTF-8. - + Starting import... - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files @@ -4017,10 +3960,20 @@ The content encoding is not UTF-8. - + Select CCLI Files + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4065,7 +4018,7 @@ The content encoding is not UTF-8. - + CCLI Licence: @@ -4131,12 +4084,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4144,12 +4097,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. diff --git a/resources/i18n/openlp_hu.ts b/resources/i18n/openlp_hu.ts index 09cbf481e..5d9cf2804 100644 --- a/resources/i18n/openlp_hu.ts +++ b/resources/i18n/openlp_hu.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Figyelmeztetések @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - Egyenes &adásba - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Biblia - + Bibles Bibliák + + + Import + Importálás + + + + Import a Bible + + + + + Add + Hozzáadás + + + + Add a new Bible + + + + + Edit + Szerkesztés + + + + Edit the selected Bible + + + + + Delete + Törlés + + + + Delete the selected Bible + + + + + Preview + Előnézet + + + + Preview the selected Bible + + + + + Live + Egyenes adás + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Haladó - + Version: Verzió: - + Dual: Második: - + Search type: - + Find: Keresés: - + Search Keresés - + Results: Eredmények: - + Book: Könyv: - + Chapter: Fejezet: - + Verse: Vers: - + From: Innentől: - + To: Idáig: - + Verse Search Vers keresése - + Text Search Szöveg keresése - + Clear - + Keep Megtartása - + No Book Found Nincs ilyen könyv - + No matching book could be found in this Bible. Nem található ilyen könyv ebben a Bibliában. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Egyedi diák szerkesztése - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Új hozzáadása - + Add a new slide at bottom. - + Edit Szerkesztés - + Edit the selected slide. - + Edit All Összes szerkesztése - + Edit all the slides at once. - + Save Mentés - + Save the slide currently being edited. - + Delete Törlés - + Delete the selected slide. - + Clear - + Clear edit area Szerkesztő terület törlése - + Split Slide Dia kettéválasztása - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,169 +926,184 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - Egyenes &adásba + Custom + Egyedi - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import + Importálás + + + + Import a Custom - - Preview the selected Custom - - - - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom - Egyedi + + Add + Hozzáadás + + + + Add a new Custom + + + + + Edit + Szerkesztés + + + + Edit the selected Custom + + + + + Delete + Törlés + + + + Delete the selected Custom + + + + + Preview + Előnézet + + + + Preview the selected Custom + + + + + Live + Egyenes adás + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service + ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - Egyenes &adásba - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Kép - + Images Képek + + + Load + + + + + Load a new Image + + + + + Add + Hozzáadás + + + + Add a new Image + + + + + Edit + Szerkesztés + + + + Edit the selected Image + + + + + Delete + Törlés + + + + Delete the selected Image + + + + + Preview + Előnézet + + + + Preview the selected Image + + + + + Live + Egyenes adás + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,70 +1160,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - Egyenes &adásba + Media + Média - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias + Load + + + + + Load a new Media + + + + + Add + Hozzáadás + + + + Add a new Media + + + + + Edit + Szerkesztés + + + + Edit the selected Media + + + + + Delete + Törlés + + + Delete the selected Media - + + Preview + Előnézet + + + Preview the selected Media - + + Live + Egyenes adás + + + Send the selected Media live - - Add the selected Media to the service + + Service - - Media - Média + + Add the selected Media to the service + @@ -1942,6 +1962,19 @@ A GNU General Public License nem engedi meg, hogy a program része legyen szelle + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2501,117 +2534,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected Nincs kiválasztott elem - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Egyenes &adásba - + &Add to Service &Hozzáadás a szolgálathoz - + &Add to selected Service Item &Hozzáadás a kiválasztott szolgálat elemhez - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Ki kell választani egy vagy több elemet. - + No items selected Nincs kiválasztott elem - + You must select one or more items Ki kell választani egy vagy több elemet - + No Service Item Selected Nincs kiválasztott szolgálat elem - + You must select an existing service item to add to. Ki kell választani egy szolgálati elemet, amihez hozzá szeretné adni. - + Invalid Service Item Érvénytelen szolgálat elem - + You must select a %s service item. @@ -2619,57 +2617,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Bővítménylista - + Plugin Details Bővítmény részletei - + Version: Verzió: - + TextLabel Szövegcímke - + About: Névjegy: - + Status: Állapot: - + Active Aktív - + Inactive Inaktív - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2905,70 +2903,70 @@ The content encoding is not UTF-8. Előnézet - + Move to previous Mozgatás az előzőre - + Move to next Mozgatás a következőre - + Hide - + Move to live Mozgatás az egyenes adásban lévőre - + Edit and re-preview Song Dal szerkesztése, majd újra az előnézet megnyitása - + Start continuous loop Folyamatos vetítés indítása - + Stop continuous loop Folyamatos vetítés leállítása - + s mp - + Delay between slides in seconds Diák közötti késleltetés másodpercben - + Start playing media Médialejátszás indítása - - Go to Verse - Ugrás versszakra + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3208,95 +3206,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - Egyenes &adásba - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Bemutató - + Presentations Bemutatók + + + Load + + + + + Load a new Presentation + + + + + Delete + Törlés + + + + Delete the selected Presentation + + + + + Preview + Előnézet + + + + Preview the selected Presentation + + + + + Live + Egyenes adás + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3372,12 +3340,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Távvezérlés @@ -3448,15 +3416,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - Dalok - SongUsagePlugin.SongUsageDeleteForm @@ -3521,96 +3484,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - Egyenes &adásba - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Dal - + Songs Dalok + + + Add + Hozzáadás + + + + Add a new Song + + + + + Edit + Szerkesztés + + + + Edit the selected Song + + + + + Delete + Törlés + + + + Delete the selected Song + + + + + Preview + Előnézet + + + + Preview the selected Song + + + + + Live + Egyenes adás + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3808,7 +3751,7 @@ The content encoding is not UTF-8. - + Error Hiba @@ -3853,42 +3796,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3896,17 +3839,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Versszak szerkesztése - + &Verse type: - + &Insert @@ -3914,127 +3857,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected Nincsenek kijelölt OpenLyrics fájlok - + You need to add at least one OpenLyrics song file to import from. Meg kell adni legalább egy OpenLyrics dal fájlt az importáláshoz. - + No OpenSong Files Selected Nincsenek kijelölt OpenSong fájlok - + You need to add at least one OpenSong song file to import from. Meg kell adni legalább egy OpenSong dal fájlt az importáláshoz. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected Nincsenek kijelölt CCLI fájlok - + You need to add at least one CCLI file to import from. Meg kell adni legalább egy CCLI fájlt az importáláshoz. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Importálás indítása... @@ -4148,6 +4091,16 @@ The content encoding is not UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4222,7 +4175,7 @@ The content encoding is not UTF-8. - + CCLI Licence: CCLI licenc: @@ -4258,12 +4211,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4271,12 +4224,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Az importálás befejeződött. - + Your song import failed. diff --git a/resources/i18n/openlp_ko.ts b/resources/i18n/openlp_ko.ts index 93accb132..e0905186f 100644 --- a/resources/i18n/openlp_ko.ts +++ b/resources/i18n/openlp_ko.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible 성경 - + Bibles + + + Import + + + + + Import a Bible + + + + + Add + + + + + Add a new Bible + + + + + Edit + + + + + Edit the selected Bible + + + + + Delete + + + + + Delete the selected Bible + + + + + Preview + + + + + Preview the selected Bible + + + + + Live + + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. - + Version: - + Dual: - + Search type: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + No matching book could be found in this Bible. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,69 +926,94 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live + Custom - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import - - Preview the selected Custom + + Import a Custom - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom + + Add + + + + + Add a new Custom + + + + + Edit + + + + + Edit the selected Custom + + + + + Delete + + + + + Delete the selected Custom + + + + + Preview + + + + + Preview the selected Custom + + + + + Live + + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service @@ -1006,99 +1021,89 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image - + Images + + + Load + + + + + Load a new Image + + + + + Add + + + + + Add a new Image + + + + + Edit + + + + + Edit the selected Image + + + + + Delete + + + + + Delete the selected Image + + + + + Preview + + + + + Preview the selected Image + + + + + Live + + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,69 +1160,84 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live + Media - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias - Delete the selected Media + Load - - Preview the selected Media + + Load a new Media - - Send the selected Media live + + Add - Add the selected Media to the service + Add a new Media - - Media + + Edit + + + + + Edit the selected Media + + + + + Delete + + + + + Delete the selected Media + + + + + Preview + + + + + Preview the selected Media + + + + + Live + + + + + Send the selected Media live + + + + + Service + + + + + Add the selected Media to the service @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List - + Plugin Details - + Version: - + TextLabel - + About: - + Status: - + Active - + Inactive - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. - + Move to previous - + Move to next - + Hide - + Move to live - + Edit and re-preview Song - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media - - Go to Verse + + Go to OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,95 +3073,65 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation - + Presentations + + + Load + + + + + Load a new Presentation + + + + + Delete + + + + + Delete the selected Presentation + + + + + Preview + + + + + Preview the selected Presentation + + + + + Live + + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3239,12 +3207,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - - SongUsagePlugin.SongUsageDeleteForm @@ -3388,96 +3351,76 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song - + Songs + + + Add + + + + + Add a new Song + + + + + Edit + + + + + Edit the selected Song + + + + + Delete + + + + + Delete the selected Song + + + + + Preview + + + + + Preview the selected Song + + + + + Live + + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3675,7 +3618,7 @@ The content encoding is not UTF-8. - + Error @@ -3720,42 +3663,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse - + &Verse type: - + &Insert @@ -3781,127 +3724,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... @@ -4015,6 +3958,16 @@ The content encoding is not UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4089,7 +4042,7 @@ The content encoding is not UTF-8. - + CCLI Licence: @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. diff --git a/resources/i18n/openlp_nb.ts b/resources/i18n/openlp_nb.ts index 80ff69b28..bf8d38b9c 100644 --- a/resources/i18n/openlp_nb.ts +++ b/resources/i18n/openlp_nb.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bibel - + Bibles Bibler + + + Import + + + + + Import a Bible + + + + + Add + + + + + Add a new Bible + + + + + Edit + + + + + Edit the selected Bible + + + + + Delete + + + + + Delete the selected Bible + + + + + Preview + + + + + Preview the selected Bible + + + + + Live + Direkte + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Avansert - + Version: - + Dual: Dobbel: - + Search type: - + Find: Finn: - + Search Søk - + Results: Resultat: - + Book: Bok: - + Chapter: Kapittel - + Verse: - + From: Fra: - + To: Til: - + Verse Search Søk i vers - + Text Search Tekstsøk - + Clear - + Keep Behold - + No Book Found Ingen bøker funnet - + No matching book could be found in this Bible. Finner ingen matchende bøker i denne Bibelen. - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Rediger egendefinerte lysbilder - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Legg til Ny - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save Lagre - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -936,69 +926,94 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live + Custom - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import - - Preview the selected Custom + + Import a Custom - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom + + Add + + + + + Add a new Custom + + + + + Edit + + + + + Edit the selected Custom + + + + + Delete + + + + + Delete the selected Custom + + + + + Preview + + + + + Preview the selected Custom + + + + + Live + Direkte + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service @@ -1006,99 +1021,89 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image - + Images + + + Load + + + + + Load a new Image + + + + + Add + + + + + Add a new Image + + + + + Edit + + + + + Edit the selected Image + + + + + Delete + + + + + Delete the selected Image + + + + + Preview + + + + + Preview the selected Image + + + + + Live + Direkte + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,69 +1160,84 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live + Media - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias - Delete the selected Media + Load - - Preview the selected Media + + Load a new Media - - Send the selected Media live + + Add - Add the selected Media to the service + Add a new Media - - Media + + Edit + + + + + Edit the selected Media + + + + + Delete + + + + + Delete the selected Media + + + + + Preview + + + + + Preview the selected Media + + + + + Live + Direkte + + + + Send the selected Media live + + + + + Service + + + + + Add the selected Media to the service @@ -1809,6 +1829,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2368,117 +2401,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service &Legg til i møteplan - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2486,57 +2484,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List - + Plugin Details - + Version: - + TextLabel - + About: Om: - + Status: Status: - + Active Aktiv - + Inactive - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2772,70 +2770,70 @@ The content encoding is not UTF-8. - + Move to previous Flytt til forrige - + Move to next - + Hide - + Move to live - + Edit and re-preview Song Endre og forhåndsvis sang - + Start continuous loop Start kontinuerlig løkke - + Stop continuous loop - + s - + Delay between slides in seconds Forsinkelse mellom lysbilder i sekund - + Start playing media Start avspilling av media - - Go to Verse - Gå til vers + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3075,112 +3073,82 @@ The content encoding is not UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Presentasjon - + Presentations + + + Load + + + + + Load a new Presentation + + + + + Delete + + + + + Delete the selected Presentation + + + + + Preview + + + + + Preview the selected Presentation + + + + + Live + Direkte + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem Select Presentation(s) - Velg presentasjon(er) + Automatic - Automatisk + Present using: - Presenter ved hjelp av: + @@ -3223,7 +3191,7 @@ The content encoding is not UTF-8. Advanced - Avansert + @@ -3239,14 +3207,14 @@ The content encoding is not UTF-8. - + Remote - + Remotes - Fjernmeldinger + @@ -3254,7 +3222,7 @@ The content encoding is not UTF-8. Remotes - Fjernmeldinger + @@ -3315,15 +3283,10 @@ The content encoding is not UTF-8. - + SongUsage - - - Songs - Sanger - SongUsagePlugin.SongUsageDeleteForm @@ -3353,12 +3316,12 @@ The content encoding is not UTF-8. Select Date Range - Velg dato-område + to - til + @@ -3376,7 +3339,7 @@ The content encoding is not UTF-8. &Song - &Sang + @@ -3388,95 +3351,75 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live + Song - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song + + Songs - Delete the selected Songs + Add - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live + Add a new Song - Add the selected Song to the service + Edit - Add the selected Songs to the service + Edit the selected Song - - Song - Sang + + Delete + - - Songs - Sanger + + Delete the selected Song + + + + + Preview + + + + + Preview the selected Song + + + + + Live + Direkte + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + @@ -3484,7 +3427,7 @@ The content encoding is not UTF-8. Author Maintenance - Behandle forfatterdata + @@ -3494,12 +3437,12 @@ The content encoding is not UTF-8. First name: - Fornavn: + Last name: - Etternavn: + @@ -3509,7 +3452,7 @@ The content encoding is not UTF-8. You need to type in the first name of the author. - Du må skrive inn forfatterens fornavn. + @@ -3527,7 +3470,7 @@ The content encoding is not UTF-8. Song Editor - Sangredigeringsverktøy + @@ -3557,7 +3500,7 @@ The content encoding is not UTF-8. &Edit - &Rediger + @@ -3572,7 +3515,7 @@ The content encoding is not UTF-8. Title && Lyrics - Tittel && Sangtekst + @@ -3587,7 +3530,7 @@ The content encoding is not UTF-8. &Remove - &Fjern + @@ -3597,7 +3540,7 @@ The content encoding is not UTF-8. Topic - Emne + @@ -3607,7 +3550,7 @@ The content encoding is not UTF-8. R&emove - &Fjern + @@ -3627,7 +3570,7 @@ The content encoding is not UTF-8. Theme - Tema + @@ -3637,7 +3580,7 @@ The content encoding is not UTF-8. Copyright Information - Copyright-informasjon + @@ -3675,7 +3618,7 @@ The content encoding is not UTF-8. - + Error @@ -3720,42 +3663,42 @@ The content encoding is not UTF-8. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? @@ -3763,17 +3706,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm - + Edit Verse - Rediger Vers + - + &Verse type: - + &Insert @@ -3781,127 +3724,127 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... @@ -3923,7 +3866,7 @@ The content encoding is not UTF-8. Select Import Source - Velg importeringskilde + @@ -3933,12 +3876,12 @@ The content encoding is not UTF-8. Format: - Format: + OpenLP 2.0 - OpenLP 2.0 + @@ -3953,7 +3896,7 @@ The content encoding is not UTF-8. OpenSong - OpenSong + @@ -4008,13 +3951,23 @@ The content encoding is not UTF-8. Ready. - Klar. + %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4026,17 +3979,17 @@ The content encoding is not UTF-8. Maintain the lists of authors, topics and books - Rediger liste over forfattere, emner og bøker. + Search: - Søk: + Type: - Type: + @@ -4046,12 +3999,12 @@ The content encoding is not UTF-8. Search - Søk + Titles - Titler + @@ -4089,9 +4042,9 @@ The content encoding is not UTF-8. - + CCLI Licence: - CCLI lisens: + @@ -4125,12 +4078,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4138,12 +4091,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - Import fullført. + - + Your song import failed. @@ -4163,7 +4116,7 @@ The content encoding is not UTF-8. Topics - Emne + @@ -4178,7 +4131,7 @@ The content encoding is not UTF-8. &Edit - &Rediger + @@ -4243,7 +4196,7 @@ The content encoding is not UTF-8. Are you sure you want to delete the selected author? - Er du sikker på at du vil slette den valgte forfatteren? + @@ -4253,12 +4206,12 @@ The content encoding is not UTF-8. No author selected! - Ingen forfatter er valgt! + Delete Topic - Slett emne + @@ -4278,12 +4231,12 @@ The content encoding is not UTF-8. Delete Book - Slett bok + Are you sure you want to delete the selected book? - Er du sikker på at du vil slette den merkede boken? + @@ -4293,7 +4246,7 @@ The content encoding is not UTF-8. No book selected! - Ingen bok er valgt! + @@ -4301,7 +4254,7 @@ The content encoding is not UTF-8. Songs - Sanger + @@ -4329,7 +4282,7 @@ The content encoding is not UTF-8. Topic name: - Emnenavn: + @@ -4339,7 +4292,7 @@ The content encoding is not UTF-8. You need to type in a topic name! - Skriv inn et emnenavn! + @@ -4347,7 +4300,7 @@ The content encoding is not UTF-8. Verse - Vers + @@ -4362,7 +4315,7 @@ The content encoding is not UTF-8. Pre-Chorus - Pre-Chorus + @@ -4377,7 +4330,7 @@ The content encoding is not UTF-8. Other - Annet + diff --git a/resources/i18n/openlp_pt_BR.ts b/resources/i18n/openlp_pt_BR.ts index c5a331423..c72283199 100644 --- a/resources/i18n/openlp_pt_BR.ts +++ b/resources/i18n/openlp_pt_BR.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alertas @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />Este plugin permite exibir versículos bíblicos de diferentes fontes durante o culto. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - &Mostrar Ao Vivo - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bíblia - + Bibles Bíblias + + + Import + Importar + + + + Import a Bible + + + + + Add + Adicionar + + + + Add a new Bible + + + + + Edit + Editar + + + + Edit the selected Bible + + + + + Delete + Deletar + + + + Delete the selected Bible + + + + + Preview + + + + + Preview the selected Bible + + + + + Live + Ao Vivo + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -664,97 +654,97 @@ Changes do not affect verses already in the service. Avançado - + Version: Versão: - + Dual: Duplo: - + Search type: Tipo de busca: - + Find: Buscar: - + Search Buscar - + Results: Resultados: - + Book: Livro: - + Chapter: Capítulo: - + Verse: Versículo: - + From: De: - + To: Para: - + Verse Search Busca de Versículos - + Text Search Busca de Texto - + Clear Limpar - + Keep Manter - + No Book Found Nenhum Livro Encontrado - + No matching book could be found in this Bible. Nenhum livro foi encontrado nesta Bíblia - + etc - + Bible not fully loaded. @@ -771,7 +761,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -796,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Editar Slides Customizados - + Move slide up one position. - + Move slide down one position. Mover slide uma posição para baixo. - + &Title: &Título: - + Add New Adicionar Novo - + Add a new slide at bottom. - + Edit Editar - + Edit the selected slide. Editar o slide selecionado. - + Edit All Editar Todos - + Edit all the slides at once. - + Save Salvar - + Save the slide currently being edited. - + Delete Deletar - + Delete the selected slide. - + Clear Limpar - + Clear edit area Limpar área de edição - + Split Slide - + Split a slide into two by inserting a slide splitter. Dividir um slide em dois, inserindo um divisor de slides. - + The&me: - + &Credits: &Créditos: @@ -936,169 +926,184 @@ Changes do not affect verses already in the service. CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - &Show Live - &Mostrar Ao Vivo + Custom + Customizado - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom + + Customs - Delete the selected Custom + Import + Importar + + + + Import a Custom - - Preview the selected Custom - - - - - Send the selected Custom live + + Load - Add the selected Custom to the service + Load a new Custom - - Custom - Customizado + + Add + Adicionar + + + + Add a new Custom + + + + + Edit + Editar + + + + Edit the selected Custom + + + + + Delete + Deletar + + + + Delete the selected Custom + + + + + Preview + + + + + Preview the selected Custom + + + + + Live + Ao Vivo + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service + ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - &Show Live - &Mostrar Ao Vivo - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - Image Imagem - + Images Imagens + + + Load + + + + + Load a new Image + + + + + Add + Adicionar + + + + Add a new Image + + + + + Edit + Editar + + + + Edit the selected Image + + + + + Delete + Deletar + + + + Delete the selected Image + + + + + Preview + + + + + Preview the selected Image + + + + + Live + Ao Vivo + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + ImagePlugin.MediaItem @@ -1155,70 +1160,85 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - &Show Live - &Mostrar Ao Vivo + Media + Mídia - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media + + Medias + Load + + + + + Load a new Media + + + + + Add + Adicionar + + + + Add a new Media + + + + + Edit + Editar + + + + Edit the selected Media + + + + + Delete + Deletar + + + Delete the selected Media - + + Preview + + + + Preview the selected Media - + + Live + Ao Vivo + + + Send the selected Media live - - Add the selected Media to the service + + Service - - Media - Mídia + + Add the selected Media to the service + @@ -1846,6 +1866,19 @@ This General Public License does not permit incorporating your program into prop + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + OpenLP.GeneralTab @@ -2405,117 +2438,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - Adicionar %s ao Culto - - - + &Edit %s - + &Delete %s &Deletar %s - + &Preview %s - + &Show Live &Mostrar Ao Vivo - + &Add to Service &Adicionar ao Culto - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Você precisa selecionar um ou mais itens. - + No items selected - + You must select one or more items Você precisa selecionar um ou mais itens - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2523,57 +2521,57 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm - + Plugin List Lista de Plugins - + Plugin Details Detalhes do Plugin - + Version: Versão: - + TextLabel TextLabel - + About: Sobre: - + Status: Status: - + Active Ativo - + Inactive Inativo - + %s (Inactive) %s (Inativo) - + %s (Active) - + %s (Disabled) @@ -2809,70 +2807,70 @@ The content encoding is not UTF-8. - + Move to previous Mover para o anterior - + Move to next Mover para o próximo - + Hide - + Move to live Mover para ao vivo - + Edit and re-preview Song Editar e pré-visualizar Música novamente - + Start continuous loop Iniciar repetição contínua - + Stop continuous loop Parar repetição contínua - + s s - + Delay between slides in seconds Intervalo entre slides em segundos - + Start playing media Iniciar a reprodução de mídia - - Go to Verse - Ir ao Versículo + + Go to + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -3113,95 +3111,65 @@ A codificação do conteúdo não é UTF-8. - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - &Mostrar Ao Vivo - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - + Presentation Apresentação - + Presentations Apresentações + + + Load + + + + + Load a new Presentation + + + + + Delete + Deletar + + + + Delete the selected Presentation + + + + + Preview + + + + + Preview the selected Presentation + + + + + Live + Ao Vivo + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem @@ -3277,12 +3245,12 @@ A codificação do conteúdo não é UTF-8. - + Remote - + Remotes Remoto @@ -3353,15 +3321,10 @@ A codificação do conteúdo não é UTF-8. - + SongUsage - - - Songs - Músicas - SongUsagePlugin.SongUsageDeleteForm @@ -3426,96 +3389,76 @@ A codificação do conteúdo não é UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - &Show Live - &Mostrar Ao Vivo - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - Song Música - + Songs Músicas + + + Add + Adicionar + + + + Add a new Song + + + + + Edit + Editar + + + + Edit the selected Song + + + + + Delete + Deletar + + + + Delete the selected Song + + + + + Preview + + + + + Preview the selected Song + + + + + Live + Ao Vivo + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm @@ -3713,7 +3656,7 @@ A codificação do conteúdo não é UTF-8. Este autor não existe, deseja adicioná-lo? - + Error Erro @@ -3758,42 +3701,42 @@ A codificação do conteúdo não é UTF-8. Não há nenhum tópico válido selecionado. Selecione um tópico da lista, ou digite um novo tópico e clique em "Adicionar Tópico à Música" para adicionar o novo tópico. - + You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? Você não adicionou nenhum autor a esta música. Deseja adicionar um agora? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Add Book - + This song book does not exist, do you want to add it? Este hinário não existe, deseja adicioná-lo? @@ -3801,17 +3744,17 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.EditVerseForm - + Edit Verse Editar Versículo - + &Verse type: Tipo de &Versículo: - + &Insert @@ -3819,127 +3762,127 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No OpenLyrics Files Selected - + You need to add at least one OpenLyrics song file to import from. - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. Você precisa adicionar ao menos um arquivo CCLI para importação. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select OpenLyrics Files - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Iniciando importação... @@ -4053,6 +3996,16 @@ A codificação do conteúdo não é UTF-8. %p% + + + Importing "%s"... + + + + + Importing %s... + + SongsPlugin.MediaItem @@ -4127,7 +4080,7 @@ A codificação do conteúdo não é UTF-8. - + CCLI Licence: Licença CCLI: @@ -4163,12 +4116,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4176,12 +4129,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImportForm - + Finished import. Importação Finalizada. - + Your song import failed. diff --git a/resources/i18n/openlp_sv.ts b/resources/i18n/openlp_sv.ts index a34589a06..e4f003d8c 100644 --- a/resources/i18n/openlp_sv.ts +++ b/resources/i18n/openlp_sv.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alarm @@ -184,96 +184,86 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - &Edit Bible - - - - - &Delete Bible - - - - - &Preview Bible - - - &Show Live - &Visa Live - - - - Import a Bible - - - - - Load a new Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Delete the selected Bibles - - - - - Preview the selected Bible - - - - - Preview the selected Bibles - - - - - Send the selected Bible live - - - - - Send the selected Bibles live - - - - - Add the selected Verse to the service - - - - - Add the selected Verses to the service - - - - Bible Bibel - + Bibles Biblar + + + Import + Importera + + + + Import a Bible + + + + + Add + Lägg till + + + + Add a new Bible + + + + + Edit + Redigera + + + + Edit the selected Bible + + + + + Delete + Ta bort + + + + Delete the selected Bible + + + + + Preview + Förhandsgranska + + + + Preview the selected Bible + + + + + Live + Live + + + + Send the selected Bible live + + + + + Service + + + + + Add the selected Bible to the service + + BiblesPlugin.BibleDB @@ -402,3982 +392,4 @@ Changes do not affect verses already in the service. - 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. - Den här guiden hjälper dig importera biblar från en mängd olika format. Klicka på nästa-knappen nedan för att börja proceduren genom att välja ett format att importera från. - - - - Select Import Source - Välj importkälla - - - - Select the import format, and where to import from. - Välj format för import, och plats att importera från. - - - - Format: - Format: - - - - OSIS - OSIS - - - - CSV - CSV - - - - OpenSong - OpenSong - - - - Web Download - Webbnedladdning - - - - File location: - - - - - Books location: - - - - - Verse location: - - - - - Bible filename: - - - - - Location: - - - - - Crosswalk - Crosswalk - - - - BibleGateway - BibleGateway - - - - Bible: - Bibel: - - - - Download Options - Alternativ för nedladdning - - - - Server: - Server: - - - - Username: - Användarnamn: - - - - Password: - Lösenord: - - - - Proxy Server (Optional) - Proxyserver (Frivilligt) - - - - License Details - Licensdetaljer - - - - Set up the Bible's license details. - Skriv in Bibelns licensdetaljer. - - - - Version name: - - - - - Copyright: - Copyright: - - - - Permission: - Rättigheter: - - - - Importing - Importerar - - - - Please wait while your Bible is imported. - Vänligen vänta medan din Bibel importeras. - - - - Ready. - Redo. - - - - Invalid Bible Location - Felaktig bibelplacering - - - - You need to specify a file to import your Bible from. - Du måste ange en fil att importera dina Biblar från. - - - - Invalid Books File - Ogiltig bokfil - - - - You need to specify a file with books of the Bible to use in the import. - Du måste välja en fil med Bibelböcker att använda i importen. - - - - Invalid Verse File - Ogiltid versfil - - - - You need to specify a file of Bible verses to import. - Du måste specificera en fil med Bibelverser att importera. - - - - Invalid OpenSong Bible - Ogiltig OpenSong-bibel - - - - You need to specify an OpenSong Bible file to import. - Du måste ange en OpenSong Bibel-fil att importera. - - - - Empty Version Name - Tomt versionsnamn - - - - You need to specify a version name for your Bible. - Du måste ange ett versionsnamn för din Bibel. - - - - Empty Copyright - Tom copyright-information - - - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Du måste infoga copyright-information för din Bibel! Biblar i den publika domänen måste innehålla det. - - - - Bible Exists - Bibel existerar - - - - This Bible already exists! Please import a different Bible or first delete the existing one. - Bibeln existerar redan! Importera en annan BIbel eller ta bort den som finns. - - - - Open OSIS File - - - - - Open Books CSV File - - - - - Open Verses CSV File - - - - - Open OpenSong Bible - Öppna OpenSong Bibel - - - - Starting import... - Påbörjar import... - - - - Finished import. - Importen är färdig. - - - - Your Bible import failed. - Din Bibelimport misslyckades. - - - - BiblesPlugin.MediaItem - - - Quick - Snabb - - - - Advanced - Avancerat - - - - Version: - Version: - - - - Dual: - Dubbel: - - - - Search type: - - - - - Find: - Hitta: - - - - Search - Sök - - - - Results: - Resultat: - - - - Book: - Bok: - - - - Chapter: - Kapitel: - - - - Verse: - Vers: - - - - From: - Från: - - - - To: - Till: - - - - Verse Search - Sök vers - - - - Text Search - Textsökning - - - - Clear - - - - - Keep - Behåll - - - - No Book Found - Ingen bok hittades - - - - No matching book could be found in this Bible. - Ingen matchande bok kunde hittas i den här Bibeln. - - - - etc - - - - - Bible not fully loaded. - - - - - BiblesPlugin.Opensong - - - Importing - Importerar - - - - CustomPlugin - - - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. - - - - - CustomPlugin.CustomTab - - - Custom - - - - - Custom Display - Anpassad Visning - - - - Display footer - - - - - CustomPlugin.EditCustomForm - - - Edit Custom Slides - Redigera anpassad bild - - - - Move slide up one position. - - - - - Move slide down one position. - - - - - &Title: - - - - - Add New - Lägg till ny - - - - Add a new slide at bottom. - - - - - Edit - Redigera - - - - Edit the selected slide. - - - - - Edit All - Redigera alla - - - - Edit all the slides at once. - - - - - Save - Spara - - - - Save the slide currently being edited. - - - - - Delete - Ta bort - - - - Delete the selected slide. - - - - - Clear - - - - - Clear edit area - Töm redigeringsområde - - - - Split Slide - - - - - Split a slide into two by inserting a slide splitter. - - - - - The&me: - - - - - &Credits: - - - - - Save && Preview - Spara && förhandsgranska - - - - Error - Fel - - - - You need to type in a title. - - - - - You need to add at least one slide - - - - - You have one or more unsaved slides, please either save your slide(s) or clear your changes. - - - - - CustomPlugin.MediaItem - - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - - &Edit Custom - - - - - &Delete Custom - - - - - &Preview Custom - - - - - &Show Live - &Visa Live - - - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom - - - - - Delete the selected Custom - - - - - Preview the selected Custom - - - - - Send the selected Custom live - - - - - Add the selected Custom to the service - - - - - Custom - - - - - ImagePlugin - - - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. - - - - - &Edit Image - - - - - &Delete Image - - - - - &Preview Image - - - - - &Show Live - &Visa Live - - - - Import a Image - - - - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Delete the selected Images - - - - - Preview the selected Image - - - - - Preview the selected Images - - - - - Send the selected Image live - - - - - Send the selected Images live - - - - - Add the selected Image to the service - - - - - Add the selected Images to the service - - - - - Image - Bild - - - - Images - Bilder - - - - ImagePlugin.MediaItem - - - Select Image(s) - Välj bild(er) - - - - All Files - - - - - Replace Live Background - - - - - Replace Background - - - - - Reset Live Background - - - - - You must select an image to delete. - - - - - Image(s) - Bilder - - - - You must select an image to replace the background with. - - - - - You must select a media file to replace the background with. - - - - - MediaPlugin - - - <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - - - &Edit Media - - - - - &Delete Media - - - - - &Preview Media - - - - - &Show Live - &Visa Live - - - - Import a Media - - - - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media - - - - - Delete the selected Media - - - - - Preview the selected Media - - - - - Send the selected Media live - - - - - Add the selected Media to the service - - - - - Media - Media - - - - MediaPlugin.MediaItem - - - Select Media - Välj media - - - - Replace Live Background - - - - - Replace Background - - - - - Media - Media - - - - You must select a media file to delete. - - - - - OpenLP - - - Image Files - - - - - OpenLP.AboutForm - - - About OpenLP - Om OpenLP - - - - 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. - - - - - About - Om - - - - 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 - Andreas "googol" Preikschat - Christian "crichter" Richter - Philip "Phill" Ridout - Maikel Stuivenberg - Carsten "catini" Tingaard - Frode "frodus" Woldsund - -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, Ubuntu) - -Built With - Python: http://www.python.org/ - Qt4: http://qt.nokia.com/ - PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro - Oxygen Icons: http://oxygen-icons.org/ - - - - - - Credits - Credits - - - - 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. - - - - - License - Licens - - - - Contribute - Bidra - - - - Close - Stäng - - - - build %s - - - - - OpenLP.AdvancedTab - - - Advanced - Avancerat - - - - UI Settings - - - - - Number of recent files to display: - - - - - Remember active media manager tab on startup - - - - - Double-click to send items straight to live (requires restart) - - - - - OpenLP.AmendThemeForm - - - Theme Maintenance - Temaunderhåll - - - - Theme &name: - - - - - Type: - Typ: - - - - Solid Color - Solid Färg - - - - Gradient - Stegvis - - - - Image - Bild - - - - Image: - Bild: - - - - Gradient: - - - - - Horizontal - Horisontellt - - - - Vertical - Vertikal - - - - Circular - Cirkulär - - - - &Background - - - - - Main Font - Huvudfont - - - - Font: - Font: - - - - Color: - - - - - Size: - Storlek: - - - - pt - pt - - - - Adjust line spacing: - - - - - Normal - Normal - - - - Bold - Fetstil - - - - Italics - Kursiv - - - - Bold/Italics - Fetstil/kursiv - - - - Style: - - - - - Display Location - Visa plats - - - - Use default location - - - - - X position: - - - - - Y position: - - - - - Width: - Bredd: - - - - Height: - Höjd: - - - - px - px - - - - &Main Font - - - - - Footer Font - Sidfot-font - - - - &Footer Font - - - - - Outline - Kontur - - - - Outline size: - - - - - Outline color: - - - - - Show outline: - - - - - Shadow - Skugga - - - - Shadow size: - - - - - Shadow color: - - - - - Show shadow: - - - - - Alignment - Justering - - - - Horizontal align: - - - - - Left - Vänster - - - - Right - Höger - - - - Center - Centrera - - - - Vertical align: - - - - - Top - Topp - - - - Middle - Mitten - - - - Bottom - - - - - Slide Transition - Bildövergång - - - - Transition active - - - - - &Other Options - - - - - Preview - Förhandsgranska - - - - All Files - - - - - Select Image - - - - - First color: - - - - - Second color: - - - - - Slide height is %s rows. - - - - - OpenLP.GeneralTab - - - General - Allmänt - - - - Monitors - Skärmar - - - - Select monitor for output display: - Välj skärm för utsignal: - - - - Display if a single screen - - - - - Application Startup - Programstart - - - - Show blank screen warning - Visa varning vid tom skärm - - - - Automatically open the last service - Öppna automatiskt den senaste planeringen - - - - Show the splash screen - Visa startbilden - - - - Application Settings - Programinställningar - - - - Prompt to save before starting a new service - - - - - Automatically preview next item in service - - - - - Slide loop delay: - - - - - sec - - - - - CCLI Details - CCLI-detaljer - - - - CCLI number: - - - - - SongSelect username: - - - - - SongSelect password: - - - - - Display Position - - - - - X - - - - - Y - - - - - Height - - - - - Width - - - - - Override display position - - - - - Screen - Skärm - - - - primary - primär - - - - OpenLP.LanguageManager - - - Language - - - - - Please restart OpenLP to use your new language setting. - - - - - OpenLP.MainWindow - - - OpenLP 2.0 - OpenLP 2.0 - - - - English - Engelska - - - - &File - &Fil - - - - &Import - &Importera - - - - &Export - &Exportera - - - - &View - &Visa - - - - M&ode - &Läge - - - - &Tools - &Verktyg - - - - &Settings - &Inställningar - - - - &Language - &Språk - - - - &Help - &Hjälp - - - - Media Manager - Mediahanterare - - - - Service Manager - Mötesplaneringshanterare - - - - Theme Manager - Temahanterare - - - - &New - &Ny - - - - New Service - - - - - Create a new service. - - - - - Ctrl+N - Ctrl+N - - - - &Open - &Öppna - - - - Open Service - - - - - Open an existing service. - - - - - Ctrl+O - Ctrl+O - - - - &Save - &Spara - - - - Save Service - - - - - Save the current service to disk. - - - - - Ctrl+S - Ctrl+S - - - - Save &As... - S&para som... - - - - Save Service As - Spara mötesplanering som... - - - - Save the current service under a new name. - - - - - Ctrl+Shift+S - - - - - E&xit - &Avsluta - - - - Quit OpenLP - Stäng OpenLP - - - - Alt+F4 - Alt+F4 - - - - &Theme - &Tema - - - - &Configure OpenLP... - - - - - &Media Manager - &Mediahanterare - - - - Toggle Media Manager - Växla mediahanterare - - - - Toggle the visibility of the media manager. - - - - - F8 - F8 - - - - &Theme Manager - &Temahanterare - - - - Toggle Theme Manager - Växla temahanteraren - - - - Toggle the visibility of the theme manager. - - - - - F10 - F10 - - - - &Service Manager - &Mötesplaneringshanterare - - - - Toggle Service Manager - Växla mötesplaneringshanterare - - - - Toggle the visibility of the service manager. - - - - - F9 - F9 - - - - &Preview Panel - &Förhandsgranskning - - - - Toggle Preview Panel - Växla förhandsgranskningspanel - - - - Toggle the visibility of the preview panel. - - - - - F11 - F11 - - - - &Live Panel - - - - - Toggle Live Panel - - - - - Toggle the visibility of the live panel. - - - - - F12 - F12 - - - - &Plugin List - &Pluginlista - - - - List the Plugins - Lista Plugin - - - - Alt+F7 - Alt+F7 - - - - &User Guide - &Användarguide - - - - &About - &Om - - - - More information about OpenLP - Mer information om OpenLP - - - - Ctrl+F1 - Ctrl+F1 - - - - &Online Help - &Online-hjälp - - - - &Web Site - &Webbsida - - - - &Auto Detect - - - - - Use the system language, if available. - - - - - Set the interface language to %s - - - - - Add &Tool... - - - - - Add an application to the list of tools. - - - - - &Default - - - - - Set the view mode back to the default. - - - - - &Setup - - - - - Set the view mode to Setup. - - - - - &Live - &Live - - - - Set the view mode to 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/. - - - - - OpenLP Version Updated - OpenLP-version uppdaterad - - - - OpenLP Main Display Blanked - OpenLP huvuddisplay tömd - - - - The Main Display has been blanked out - Huvuddisplayen har rensats - - - - Save Changes to Service? - - - - - Your service has changed. Do you want to save those changes? - - - - - Default Theme: %s - - - - - OpenLP.MediaManagerItem - - - No Items Selected - - - - - Import %s - - - - - Load %s - - - - - New %s - - - - - Edit %s - - - - - Delete %s - - - - - Preview %s - - - - - Add %s to Service - - - - - &Edit %s - - - - - &Delete %s - - - - - &Preview %s - - - - - &Show Live - &Visa Live - - - - &Add to Service - &Lägg till i mötesplanering - - - - &Add to selected Service Item - - - - - You must select one or more items to preview. - - - - - You must select one or more items to send live. - - - - - You must select one or more items. - - - - - No items selected - - - - - You must select one or more items - Du måste välja ett eller flera objekt - - - - No Service Item Selected - - - - - You must select an existing service item to add to. - - - - - Invalid Service Item - - - - - You must select a %s service item. - - - - - OpenLP.PluginForm - - - Plugin List - Pluginlista - - - - Plugin Details - Plugindetaljer - - - - Version: - Version: - - - - TextLabel - TextLabel - - - - About: - Om: - - - - Status: - Status: - - - - Active - Aktiv - - - - Inactive - Inaktiv - - - - %s (Inactive) - - - - - %s (Active) - - - - - %s (Disabled) - - - - - OpenLP.ServiceItemEditForm - - - Reorder Service Item - - - - - Up - - - - - Delete - Ta bort - - - - Down - - - - - OpenLP.ServiceManager - - - New Service - - - - - Create a new service - Skapa en ny mötesplanering - - - - Open Service - - - - - Load an existing service - Ladda en planering - - - - Save Service - - - - - Save this service - Spara denna mötesplanering - - - - Theme: - Tema: - - - - Select a theme for the service - Välj ett tema för planeringen - - - - Move to &top - Flytta till &toppen - - - - Move item to the top of the service. - - - - - Move &up - Flytta &upp - - - - Move item up one position in the service. - - - - - Move &down - Flytta &ner - - - - Move item down one position in the service. - - - - - Move to &bottom - Flytta längst &ner - - - - Move item to the end of the service. - - - - - &Delete From Service - &Ta bort från mötesplanering - - - - Delete the selected item from the service. - - - - - &Add New Item - - - - - &Add to Selected Item - - - - - &Edit Item - &Redigera objekt - - - - &Reorder Item - - - - - &Notes - &Anteckningar - - - - &Preview Verse - &Förhandsgranska Vers - - - - &Live Verse - &Live-vers - - - - &Change Item Theme - &Byt objektets tema - - - - Save Changes to Service? - - - - - Your service is unsaved, do you want to save those changes before creating a new one? - - - - - OpenLP Service Files (*.osz) - - - - - Your current service is unsaved, do you want to save the changes before opening a new one? - - - - - Error - Fel - - - - File is not a valid service. -The content encoding is not UTF-8. - - - - - File is not a valid service. - - - - - Missing Display Handler - - - - - Your item cannot be displayed as there is no handler to display it - - - - - OpenLP.ServiceNoteForm - - - Service Item Notes - Mötesanteckningar - - - - OpenLP.SettingsForm - - - Configure OpenLP - - - - - OpenLP.SlideController - - - Live - Live - - - - Preview - Förhandsgranska - - - - Move to previous - Flytta till föregående - - - - Move to next - Flytta till nästa - - - - Hide - - - - - Move to live - Flytta till live - - - - Edit and re-preview Song - Ändra och åter-förhandsgranska sång - - - - Start continuous loop - Börja oändlig loop - - - - Stop continuous loop - Stoppa upprepad loop - - - - s - s - - - - Delay between slides in seconds - Fördröjning mellan bilder, i sekunder - - - - Start playing media - Börja spela media - - - - Go to Verse - Hoppa till vers - - - - OpenLP.SpellTextEdit - - - Spelling Suggestions - - - - - Formatting Tags - - - - - OpenLP.ThemeManager - - - New Theme - Nytt Tema - - - - Create a new theme. - - - - - Edit Theme - Redigera tema - - - - Edit a theme. - - - - - Delete Theme - Ta bort tema - - - - Delete a theme. - - - - - Import Theme - Importera tema - - - - Import a theme. - - - - - Export Theme - Exportera tema - - - - Export a theme. - - - - - &Edit Theme - - - - - &Delete Theme - - - - - Set As &Global Default - - - - - E&xport Theme - - - - - %s (default) - - - - - You must select a theme to edit. - - - - - You must select a theme to delete. - - - - - Delete Confirmation - - - - - Delete theme? - - - - - Error - Fel - - - - You are unable to delete the default theme. - Du kan inte ta bort standardtemat. - - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - - - - - You have not selected a theme. - Du har inte valt ett tema. - - - - Save Theme - (%s) - Spara tema - (%s) - - - - Theme Exported - - - - - Your theme has been successfully exported. - - - - - Theme Export Failed - - - - - Your theme could not be exported due to an error. - - - - - Select Theme Import File - Välj tema importfil - - - - Theme (*.*) - - - - - File is not a valid theme. -The content encoding is not UTF-8. - - - - - File is not a valid theme. - Filen är inte ett giltigt tema. - - - - Theme Exists - Temat finns - - - - A theme with this name already exists. Would you like to overwrite it? - - - - - OpenLP.ThemesTab - - - Themes - Teman - - - - Global Theme - - - - - Theme Level - - - - - S&ong 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. - Använd temat för varje sång i databasen indviduellt. Om en sång inte har ett associerat tema, använd planeringens schema. Om planeringen inte har ett tema, använd globala temat. - - - - &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. - Använd temat för mötesplaneringen, och ignorera sångernas indviduella teman. Om mötesplaneringen inte har ett tema använd då det globala temat. - - - - &Global Level - - - - - Use the global theme, overriding any themes associated with either the service or the songs. - Använd det globala temat, ignorerar teman associerade med mötesplaneringen eller sångerna. - - - - PresentationPlugin - - - <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - - - &Edit Presentation - - - - - &Delete Presentation - - - - - &Preview Presentation - - - - - &Show Live - &Visa Live - - - - Import a Presentation - - - - - Load a new Presentation - - - - - Add a new Presentation - - - - - Edit the selected Presentation - - - - - Delete the selected Presentation - - - - - Delete the selected Presentations - - - - - Preview the selected Presentation - - - - - Preview the selected Presentations - - - - - Send the selected Presentation live - - - - - Send the selected Presentations live - - - - - Add the selected Presentation to the service - - - - - Add the selected Presentations to the service - - - - - Presentation - Presentation - - - - Presentations - Presentationer - - - - PresentationPlugin.MediaItem - - - Select Presentation(s) - Välj presentation(er) - - - - Automatic - Automatisk - - - - Present using: - Presentera genom: - - - - File Exists - - - - - A presentation with that filename already exists. - En presentation med det namnet finns redan. - - - - Unsupported File - - - - - This type of presentation is not supported - - - - - You must select an item to delete. - - - - - PresentationPlugin.PresentationTab - - - Presentations - Presentationer - - - - Available Controllers - Tillgängliga Presentationsprogram - - - - Advanced - Avancerat - - - - Allow presentation application to be overriden - - - - - RemotePlugin - - - <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - - - Remote - - - - - Remotes - Fjärrstyrningar - - - - RemotePlugin.RemoteTab - - - Remotes - Fjärrstyrningar - - - - Serve on IP address: - - - - - Port number: - - - - - Server Settings - - - - - SongUsagePlugin - - - &Song Usage Tracking - - - - - &Delete Tracking Data - - - - - Delete song usage data up to a specified date. - - - - - &Extract Tracking Data - - - - - Generate a report on song usage. - - - - - Toggle Tracking - - - - - Toggle the tracking of song usage. - - - - - <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - - - SongUsage - - - - - Songs - Sånger - - - - SongUsagePlugin.SongUsageDeleteForm - - - Delete Song Usage Data - - - - - Delete Selected Song Usage Events? - Ta bort valda sånganvändningsdata? - - - - Are you sure you want to delete selected Song Usage data? - Vill du verkligen ta bort vald sånganvändningsdata? - - - - SongUsagePlugin.SongUsageDetailForm - - - Song Usage Extraction - Sånganvändningsutdrag - - - - Select Date Range - Välj datumspann - - - - to - till - - - - Report Location - Rapportera placering - - - - Output File Location - Utfil sökväg - - - - SongsPlugin - - - &Song - &Sång - - - - Import songs using the import wizard. - - - - - <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - - - &Edit Song - - - - - &Delete Song - - - - - &Preview Song - - - - - &Show Live - &Visa Live - - - - Import a Song - - - - - Load a new Song - - - - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Delete the selected Songs - - - - - Preview the selected Song - - - - - Preview the selected Songs - - - - - Send the selected Song live - - - - - Send the selected Songs live - - - - - Add the selected Song to the service - - - - - Add the selected Songs to the service - - - - - Song - Sång - - - - Songs - Sånger - - - - SongsPlugin.AuthorsForm - - - Author Maintenance - Författare underhåll - - - - Display name: - Visningsnamn: - - - - First name: - Förnamn: - - - - Last name: - Efternamn: - - - - Error - Fel - - - - You need to type in the first name of the author. - Du måste ange låtskrivarens förnamn. - - - - You need to type in the last name of the author. - Du måste ange författarens efternamn. - - - - You have not set a display name for the author, would you like me to combine the first and last names for you? - - - - - SongsPlugin.EditSongForm - - - Song Editor - Sångredigerare - - - - &Title: - - - - - Alt&ernate title: - - - - - &Lyrics: - - - - - &Verse order: - - - - - &Add - - - - - &Edit - &Redigera - - - - Ed&it All - - - - - &Delete - - - - - Title && Lyrics - Titel && Sångtexter - - - - Authors - - - - - &Add to Song - &Lägg till i sång - - - - &Remove - &Ta bort - - - - &Manage Authors, Topics, Song Books - - - - - Topic - Ämne - - - - A&dd to Song - Lägg till i sång - - - - R&emove - Ta &bort - - - - Song Book - Sångbok - - - - Song No.: - - - - - Authors, Topics && Song Book - - - - - Theme - Tema - - - - New &Theme - - - - - Copyright Information - Copyright-information - - - - © - - - - - CCLI number: - - - - - Comments - Kommentarer - - - - Theme, Copyright Info && Comments - Tema, copyright-info && kommentarer - - - - Save && Preview - Spara && förhandsgranska - - - - Add Author - - - - - This author does not exist, do you want to add them? - - - - - Error - Fel - - - - This author is already in the list. - - - - - No Author Selected - - - - - You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - - - - - Add Topic - - - - - This topic does not exist, do you want to add it? - - - - - This topic is already in the list. - - - - - No Topic Selected - - - - - You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - - - - - You need to type in a song title. - - - - - You need to type in at least one verse. - - - - - Warning - - - - - You have not added any authors for this song. Do you want to add an author now? - - - - - The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - - - - - You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - - - - - Add Book - - - - - This song book does not exist, do you want to add it? - - - - - SongsPlugin.EditVerseForm - - - Edit Verse - Redigera vers - - - - &Verse type: - - - - - &Insert - - - - - SongsPlugin.ImportWizardForm - - - No OpenLP 2.0 Song Database Selected - - - - - You need to select an OpenLP 2.0 song database file to import from. - - - - - No openlp.org 1.x Song Database Selected - - - - - You need to select an openlp.org 1.x song database file to import from. - - - - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - - No OpenSong Files Selected - - - - - You need to add at least one OpenSong song file to import from. - - - - - No Words of Worship Files Selected - - - - - You need to add at least one Words of Worship file to import from. - - - - - No CCLI Files Selected - - - - - You need to add at least one CCLI file to import from. - - - - - No Songs of Fellowship File Selected - - - - - You need to add at least one Songs of Fellowship file to import from. - - - - - No Document/Presentation Selected - - - - - You need to add at least one document or presentation file to import from. - - - - - Select OpenLP 2.0 Database File - - - - - Select openlp.org 1.x Database File - - - - - Select OpenLyrics Files - - - - - Select Open Song Files - - - - - Select Words of Worship Files - - - - - Select CCLI Files - - - - - Select Songs of Fellowship Files - - - - - Select Document/Presentation Files - - - - - Starting import... - Påbörjar import... - - - - Song Import Wizard - - - - - Welcome to the Song Import Wizard - - - - - This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - - - - - Select Import Source - Välj importkälla - - - - Select the import format, and where to import from. - Välj format för import, och plats att importera från. - - - - Format: - Format: - - - - OpenLP 2.0 - OpenLP 2.0 - - - - openlp.org 1.x - - - - - OpenLyrics - - - - - OpenSong - OpenSong - - - - Words of Worship - - - - - CCLI/SongSelect - - - - - Songs of Fellowship - - - - - Generic Document/Presentation - - - - - Filename: - - - - - Browse... - - - - - Add Files... - - - - - Remove File(s) - - - - - Importing - Importerar - - - - Please wait while your songs are imported. - - - - - Ready. - Redo. - - - - %p% - - - - - SongsPlugin.MediaItem - - - Song Maintenance - Sångunderhåll - - - - Maintain the lists of authors, topics and books - Hantera listorna över författare, ämnen och böcker - - - - Search: - Sök: - - - - Type: - Typ: - - - - Clear - - - - - Search - Sök - - - - Titles - Titlar - - - - Lyrics - Sångtexter - - - - Authors - - - - - You must select an item to edit. - - - - - You must select an item to delete. - - - - - Are you sure you want to delete the selected song? - - - - - Are you sure you want to delete the %d selected songs? - - - - - Delete Song(s)? - - - - - CCLI Licence: - CCLI-licens: - - - - SongsPlugin.SongBookForm - - - Song Book Maintenance - - - - - &Name: - - - - - &Publisher: - - - - - Error - Fel - - - - You need to type in a name for the book. - - - - - SongsPlugin.SongImport - - - copyright - - - - - © - - - - - SongsPlugin.SongImportForm - - - Finished import. - Importen är färdig. - - - - Your song import failed. - - - - - SongsPlugin.SongMaintenanceForm - - - Song Maintenance - Sångunderhåll - - - - Authors - - - - - Topics - Ämnen - - - - Song Books - - - - - &Add - - - - - &Edit - &Redigera - - - - &Delete - - - - - Error - Fel - - - - Could not add your author. - - - - - This author already exists. - - - - - Could not add your topic. - - - - - This topic already exists. - - - - - Could not add your book. - - - - - This book already exists. - - - - - Could not save your changes. - - - - - Could not save your modified author, because he already exists. - - - - - Could not save your modified topic, because it already exists. - - - - - Delete Author - Ta bort låtskrivare - - - - Are you sure you want to delete the selected author? - Är du säker på att du vill ta bort den valda låtskrivaren? - - - - This author cannot be deleted, they are currently assigned to at least one song. - - - - - No author selected! - Ingen författare vald! - - - - Delete Topic - Ta bort ämne - - - - Are you sure you want to delete the selected topic? - Är du säker på att du vill ta bort valt ämne? - - - - This topic cannot be deleted, it is currently assigned to at least one song. - - - - - No topic selected! - Inget ämne valt! - - - - Delete Book - Ta bort bok - - - - Are you sure you want to delete the selected book? - Är du säker på att du vill ta bort vald bok? - - - - This book cannot be deleted, it is currently assigned to at least one song. - - - - - No book selected! - Ingen bok vald! - - - - SongsPlugin.SongsTab - - - Songs - Sånger - - - - Songs Mode - Sångläge - - - - Enable search as you type - - - - - Display verses on live tool bar - - - - - SongsPlugin.TopicsForm - - - Topic Maintenance - Ämnesunderhåll - - - - Topic name: - Ämnesnamn: - - - - Error - Fel - - - - You need to type in a topic name! - Du måste skriva in ett namn på ämnet! - - - - SongsPlugin.VerseType - - - Verse - Vers - - - - Chorus - Refräng - - - - Bridge - Brygga - - - - Pre-Chorus - Brygga - - - - Intro - Intro - - - - Ending - Ending - - - - Other - Övrigt - - - + 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. \ No newline at end of file diff --git a/resources/images/about-new.bmp b/resources/images/about-new.bmp old mode 100755 new mode 100644 From 6d7e7d7ad2d2f000ea337d0e6b22cd40377d2c84 Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 10 Sep 2010 21:21:14 +0200 Subject: [PATCH 11/95] hopefully Line ending corrected and resolve merge conflict, part2 --- openlp/core/ui/mediadockmanager.py | 168 +- openlp/core/ui/slidecontroller.py | 1976 ++++++++--------- openlp/plugins/alerts/alertsplugin.py | 234 +- openlp/plugins/bibles/bibleplugin.py | 340 +-- openlp/plugins/custom/customplugin.py | 308 +-- openlp/plugins/images/imageplugin.py | 222 +- openlp/plugins/media/mediaplugin.py | 258 +-- .../presentations/presentationplugin.py | 374 ++-- openlp/plugins/remotes/remoteplugin.py | 186 +- openlp/plugins/songs/songsplugin.py | 392 ++-- openlp/plugins/songusage/songusageplugin.py | 358 +-- 11 files changed, 2408 insertions(+), 2408 deletions(-) diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index f3061a35a..cca6b8448 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -1,84 +1,84 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -log = logging.getLogger(__name__) - -class MediaDockManager(object): - """ - Provide a repository for MediaManagerItems - """ - def __init__(self, media_dock): - """ - Initialise the media dock - """ - self.media_dock = media_dock - - def add_dock(self, media_item, icon, weight): - """ - Add a MediaManagerItem to the dock - - ``media_item`` - The item to add to the dock - - ``icon`` - An icon for this dock item - """ - log.info(u'Adding %s dock' % media_item.title) - self.media_dock.addItem(media_item, icon, media_item.title) - - def insert_dock(self, media_item, icon, weight): - """ - This should insert a dock item at a given location - This does not work as it gives a Segmentation error. - For now add at end of stack if not present - """ - log.debug(u'Inserting %s dock' % media_item.title) - match = False - for dock_index in range(0, self.media_dock.count()): - if self.media_dock.widget(dock_index).settingsSection == \ - media_item.parent.name_lower: - match = True - break - if not match: - self.media_dock.addItem(media_item, icon, media_item.title) - - def remove_dock(self, name): - """ - Removes a MediaManagerItem from the dock - - ``name`` - The item to remove - """ - log.debug(u'remove %s dock' % name) - for dock_index in range(0, self.media_dock.count()): - if self.media_dock.widget(dock_index): - log.debug(u'%s %s' % (name, self.media_dock.widget(dock_index).settingsSection)) - if self.media_dock.widget(dock_index).settingsSection == \ - name: - self.media_dock.widget(dock_index).hide() - self.media_dock.removeItem(dock_index) +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +log = logging.getLogger(__name__) + +class MediaDockManager(object): + """ + Provide a repository for MediaManagerItems + """ + def __init__(self, media_dock): + """ + Initialise the media dock + """ + self.media_dock = media_dock + + def add_dock(self, media_item, icon, weight): + """ + Add a MediaManagerItem to the dock + + ``media_item`` + The item to add to the dock + + ``icon`` + An icon for this dock item + """ + log.info(u'Adding %s dock' % media_item.title) + self.media_dock.addItem(media_item, icon, media_item.title) + + def insert_dock(self, media_item, icon, weight): + """ + This should insert a dock item at a given location + This does not work as it gives a Segmentation error. + For now add at end of stack if not present + """ + log.debug(u'Inserting %s dock' % media_item.title) + match = False + for dock_index in range(0, self.media_dock.count()): + if self.media_dock.widget(dock_index).settingsSection == \ + media_item.parent.name_lower: + match = True + break + if not match: + self.media_dock.addItem(media_item, icon, media_item.title) + + def remove_dock(self, name): + """ + Removes a MediaManagerItem from the dock + + ``name`` + The item to remove + """ + log.debug(u'remove %s dock' % name) + for dock_index in range(0, self.media_dock.count()): + if self.media_dock.widget(dock_index): + log.debug(u'%s %s' % (name, self.media_dock.widget(dock_index).settingsSection)) + if self.media_dock.widget(dock_index).settingsSection == \ + name: + self.media_dock.widget(dock_index).hide() + self.media_dock.removeItem(dock_index) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 1bfd1e777..15a404db1 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -1,988 +1,988 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 -import os - -from PyQt4 import QtCore, QtGui -from PyQt4.phonon import Phonon - -from openlp.core.ui import HideMode, MainDisplay -from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \ - ItemCapabilities, translate - -log = logging.getLogger(__name__) - -class SlideList(QtGui.QTableWidget): - """ - Customised version of QTableWidget which can respond to keyboard - events. - """ - def __init__(self, parent=None, name=None): - QtGui.QTableWidget.__init__(self, parent.Controller) - self.parent = parent - self.hotkeyMap = { - QtCore.Qt.Key_Return: 'servicemanager_next_item', - QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', - QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', - QtCore.Qt.Key_0: 'servicemanager_next_item', - QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} - - def keyPressEvent(self, event): - if isinstance(event, QtGui.QKeyEvent): - #here accept the event and do something - if event.key() == QtCore.Qt.Key_Up: - self.parent.onSlideSelectedPrevious() - event.accept() - elif event.key() == QtCore.Qt.Key_Down: - self.parent.onSlideSelectedNext() - event.accept() - elif event.key() == QtCore.Qt.Key_PageUp: - self.parent.onSlideSelectedFirst() - event.accept() - elif event.key() == QtCore.Qt.Key_PageDown: - self.parent.onSlideSelectedLast() - event.accept() - elif event.key() in self.hotkeyMap and self.parent.isLive: - Receiver.send_message(self.hotkeyMap[event.key()]) - event.accept() - event.ignore() - else: - event.ignore() - -class SlideController(QtGui.QWidget): - """ - SlideController is the slide controller widget. This widget is what the - user uses to control the displaying of verses/slides/etc on the screen. - """ - def __init__(self, parent, settingsmanager, screens, isLive=False): - """ - Set up the Slide Controller. - """ - QtGui.QWidget.__init__(self, parent) - self.settingsmanager = settingsmanager - self.isLive = isLive - self.parent = parent - self.screens = screens - self.ratio = float(self.screens.current[u'size'].width()) / \ - float(self.screens.current[u'size'].height()) - self.display = MainDisplay(self, screens, isLive) - self.loopList = [ - u'Start Loop', - u'Loop Separator', - u'Image SpinBox' - ] - self.songEditList = [ - u'Edit Song', - ] - self.volume = 10 - self.timer_id = 0 - self.songEdit = False - self.selectedRow = 0 - self.serviceItem = None - self.alertTab = None - self.Panel = QtGui.QWidget(parent.ControlSplitter) - self.slideList = {} - # Layout for holding panel - self.PanelLayout = QtGui.QVBoxLayout(self.Panel) - self.PanelLayout.setSpacing(0) - self.PanelLayout.setMargin(0) - # Type label for the top of the slide controller - self.TypeLabel = QtGui.QLabel(self.Panel) - if self.isLive: - self.TypeLabel.setText(translate('OpenLP.SlideController', 'Live')) - self.split = 1 - self.typePrefix = u'live' - else: - self.TypeLabel.setText(translate('OpenLP.SlideController', - 'Preview')) - self.split = 0 - self.typePrefix = u'preview' - self.TypeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;') - self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter) - self.PanelLayout.addWidget(self.TypeLabel) - # Splitter - self.Splitter = QtGui.QSplitter(self.Panel) - self.Splitter.setOrientation(QtCore.Qt.Vertical) - self.Splitter.setOpaqueResize(False) - self.PanelLayout.addWidget(self.Splitter) - # Actual controller section - self.Controller = QtGui.QWidget(self.Splitter) - self.Controller.setGeometry(QtCore.QRect(0, 0, 100, 536)) - self.Controller.setSizePolicy( - QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, - QtGui.QSizePolicy.Maximum)) - self.ControllerLayout = QtGui.QVBoxLayout(self.Controller) - self.ControllerLayout.setSpacing(0) - self.ControllerLayout.setMargin(0) - # Controller list view - self.PreviewListWidget = SlideList(self) - self.PreviewListWidget.setColumnCount(1) - self.PreviewListWidget.horizontalHeader().setVisible(False) - self.PreviewListWidget.setColumnWidth( - 0, self.Controller.width()) - self.PreviewListWidget.isLive = self.isLive - self.PreviewListWidget.setObjectName(u'PreviewListWidget') - self.PreviewListWidget.setSelectionBehavior(1) - self.PreviewListWidget.setEditTriggers( - QtGui.QAbstractItemView.NoEditTriggers) - self.PreviewListWidget.setHorizontalScrollBarPolicy( - QtCore.Qt.ScrollBarAlwaysOff) - self.PreviewListWidget.setAlternatingRowColors(True) - self.ControllerLayout.addWidget(self.PreviewListWidget) - # Build the full toolbar - self.Toolbar = OpenLPToolbar(self) - sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, - QtGui.QSizePolicy.Fixed) - sizeToolbarPolicy.setHorizontalStretch(0) - sizeToolbarPolicy.setVerticalStretch(0) - sizeToolbarPolicy.setHeightForWidth( - self.Toolbar.sizePolicy().hasHeightForWidth()) - self.Toolbar.setSizePolicy(sizeToolbarPolicy) - self.Toolbar.addToolbarButton( - u'Previous Slide', u':/slides/slide_previous.png', - translate('OpenLP.SlideController', 'Move to previous'), - self.onSlideSelectedPrevious) - self.Toolbar.addToolbarButton( - u'Next Slide', u':/slides/slide_next.png', - translate('OpenLP.SlideController', 'Move to next'), - self.onSlideSelectedNext) - if self.isLive: - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.HideMenu = QtGui.QToolButton(self.Toolbar) - self.HideMenu.setText(translate('OpenLP.SlideController', 'Hide')) - self.HideMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup) - self.Toolbar.addToolbarWidget(u'Hide Menu', self.HideMenu) - self.HideMenu.setMenu(QtGui.QMenu( - translate('OpenLP.SlideController', 'Hide'), self.Toolbar)) - self.BlankScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_blank.png'), u'Blank Screen', self.HideMenu) - self.BlankScreen.setText( - translate('OpenLP.SlideController', 'Blank Screen')) - self.BlankScreen.setCheckable(True) - QtCore.QObject.connect(self.BlankScreen, - QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) - self.ThemeScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_theme.png'), u'Blank to Theme', self.HideMenu) - self.ThemeScreen.setText( - translate('OpenLP.SlideController', 'Blank to Theme')) - self.ThemeScreen.setCheckable(True) - QtCore.QObject.connect(self.ThemeScreen, - QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) - if self.screens.display_count > 1: - self.DesktopScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_desktop.png'), u'Show Desktop', - self.HideMenu) - self.DesktopScreen.setText( - translate('OpenLP.SlideController', 'Show Desktop')) - self.DesktopScreen.setCheckable(True) - QtCore.QObject.connect(self.DesktopScreen, - QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) - self.HideMenu.setDefaultAction(self.BlankScreen) - self.HideMenu.menu().addAction(self.BlankScreen) - self.HideMenu.menu().addAction(self.ThemeScreen) - if self.screens.display_count > 1: - self.HideMenu.menu().addAction(self.DesktopScreen) - if not self.isLive: - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.Toolbar.addToolbarButton( - u'Go Live', u':/general/general_live.png', - translate('OpenLP.SlideController', 'Move to live'), - self.onGoLive) - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.Toolbar.addToolbarButton( - u'Edit Song', u':/general/general_edit.png', - translate('OpenLP.SlideController', 'Edit and re-preview Song'), - self.onEditSong) - if isLive: - self.Toolbar.addToolbarSeparator(u'Loop Separator') - self.Toolbar.addToolbarButton( - u'Start Loop', u':/media/media_time.png', - translate('OpenLP.SlideController', 'Start continuous loop'), - self.onStartLoop) - self.Toolbar.addToolbarButton( - u'Stop Loop', u':/media/media_stop.png', - translate('OpenLP.SlideController', 'Stop continuous loop'), - self.onStopLoop) - self.DelaySpinBox = QtGui.QSpinBox() - self.DelaySpinBox.setMinimum(1) - self.DelaySpinBox.setMaximum(180) - self.Toolbar.addToolbarWidget( - u'Image SpinBox', self.DelaySpinBox) - self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController', - 's')) - self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController', - 'Delay between slides in seconds')) - self.ControllerLayout.addWidget(self.Toolbar) - # Build a Media ToolBar - self.Mediabar = OpenLPToolbar(self) - self.Mediabar.addToolbarButton( - u'Media Start', u':/slides/media_playback_start.png', - translate('OpenLP.SlideController', 'Start playing media'), - self.onMediaPlay) - self.Mediabar.addToolbarButton( - u'Media Pause', u':/slides/media_playback_pause.png', - translate('OpenLP.SlideController', 'Start playing media'), - self.onMediaPause) - self.Mediabar.addToolbarButton( - u'Media Stop', u':/slides/media_playback_stop.png', - translate('OpenLP.SlideController', 'Start playing media'), - self.onMediaStop) - if not self.isLive: - self.seekSlider = Phonon.SeekSlider() - self.seekSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.seekSlider.setObjectName(u'seekSlider') - self.Mediabar.addToolbarWidget( - u'Seek Slider', self.seekSlider) - self.volumeSlider = Phonon.VolumeSlider() - self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.volumeSlider.setObjectName(u'volumeSlider') - self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) - else: - self.volumeSlider = QtGui.QSlider(QtCore.Qt.Horizontal) - self.volumeSlider.setTickInterval(1) - self.volumeSlider.setTickPosition(QtGui.QSlider.TicksAbove) - self.volumeSlider.setMinimum(0) - self.volumeSlider.setMaximum(10) - self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.volumeSlider.setObjectName(u'volumeSlider') - self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) - self.ControllerLayout.addWidget(self.Mediabar) - # Build the Song Toolbar - if isLive: - self.SongMenu = QtGui.QToolButton(self.Toolbar) - self.SongMenu.setText(translate('OpenLP.SlideController', - 'Go to')) - self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup) - self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu) - self.SongMenu.setMenu(QtGui.QMenu( - translate('OpenLP.SlideController', 'Go to'), - self.Toolbar)) - self.Toolbar.makeWidgetsInvisible([u'Song Menu']) - # Screen preview area - self.PreviewFrame = QtGui.QFrame(self.Splitter) - self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) - self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy( - QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Label)) - self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel) - self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken) - self.PreviewFrame.setObjectName(u'PreviewFrame') - self.grid = QtGui.QGridLayout(self.PreviewFrame) - self.grid.setMargin(8) - self.grid.setObjectName(u'grid') - self.SlideLayout = QtGui.QVBoxLayout() - self.SlideLayout.setSpacing(0) - self.SlideLayout.setMargin(0) - self.SlideLayout.setObjectName(u'SlideLayout') - self.mediaObject = Phonon.MediaObject(self) - self.video = Phonon.VideoWidget() - self.video.setVisible(False) - self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject) - Phonon.createPath(self.mediaObject, self.video) - Phonon.createPath(self.mediaObject, self.audio) - if not self.isLive: - self.video.setGeometry(QtCore.QRect(0, 0, 300, 225)) - self.video.setVisible(False) - self.SlideLayout.insertWidget(0, self.video) - # Actual preview screen - self.SlidePreview = QtGui.QLabel(self) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, - QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.SlidePreview.sizePolicy().hasHeightForWidth()) - self.SlidePreview.setSizePolicy(sizePolicy) - self.SlidePreview.setFixedSize( - QtCore.QSize(self.settingsmanager.slidecontroller_image, - self.settingsmanager.slidecontroller_image / self.ratio)) - self.SlidePreview.setFrameShape(QtGui.QFrame.Box) - self.SlidePreview.setFrameShadow(QtGui.QFrame.Plain) - self.SlidePreview.setLineWidth(1) - self.SlidePreview.setScaledContents(True) - self.SlidePreview.setObjectName(u'SlidePreview') - self.SlideLayout.insertWidget(0, self.SlidePreview) - self.grid.addLayout(self.SlideLayout, 0, 0, 1, 1) - # Signals - QtCore.QObject.connect(self.PreviewListWidget, - QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) - if not self.isLive: - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): - QtCore.QObject.connect(self.PreviewListWidget, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLive) - if isLive: - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), - self.receiveSpinDelay) - if isLive: - self.Toolbar.makeWidgetsInvisible(self.loopList) - self.Toolbar.actions[u'Stop Loop'].setVisible(False) - else: - self.Toolbar.makeWidgetsInvisible(self.songEditList) - self.Mediabar.setVisible(False) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_stop_loop' % self.typePrefix), - self.onStopLoop) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_first' % self.typePrefix), - self.onSlideSelectedFirst) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_next' % self.typePrefix), - self.onSlideSelectedNext) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_previous' % self.typePrefix), - self.onSlideSelectedPrevious) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_next_noloop' % self.typePrefix), - self.onSlideSelectedNextNoloop) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_previous_noloop' % - self.typePrefix), - self.onSlideSelectedPreviousNoloop) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_last' % self.typePrefix), - self.onSlideSelectedLast) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_change' % self.typePrefix), - self.onSlideChange) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_set' % self.typePrefix), - self.onSlideSelectedIndex) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_blank' % self.typePrefix), - self.onSlideBlank) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.typePrefix), - self.onSlideUnblank) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix), - self.onTextRequest) - QtCore.QObject.connect(self.Splitter, - QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) - if self.isLive: - QtCore.QObject.connect(self.volumeSlider, - QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) - - def screenSizeChanged(self): - """ - Settings dialog has changed the screen size of adjust output and - screen previews - """ - log.debug(u'screenSizeChanged live = %s' % self.isLive) - # rebuild display as screen size changed - self.display = MainDisplay(self, self.screens, self.isLive) - self.display.alertTab = self.alertTab - self.ratio = float(self.screens.current[u'size'].width()) / \ - float(self.screens.current[u'size'].height()) - self.display.setup() - self.SlidePreview.setFixedSize( - QtCore.QSize(self.settingsmanager.slidecontroller_image, - self.settingsmanager.slidecontroller_image / self.ratio)) - - def widthChanged(self): - """ - Handle changes of width from the splitter between the live and preview - controller. Event only issues when changes have finished - """ - log.debug(u'widthChanged live = %s' % self.isLive) - width = self.parent.ControlSplitter.sizes()[self.split] - height = width * self.parent.RenderManager.screen_ratio - self.PreviewListWidget.setColumnWidth(0, width) - # Sort out image heights (Songs, bibles excluded) - if self.serviceItem and not self.serviceItem.is_text(): - for framenumber in range(len(self.serviceItem.get_frames())): - self.PreviewListWidget.setRowHeight(framenumber, height) - - def trackSplitter(self, tab, pos): - """ - Splitter between the slide list and the preview panel - """ - pass - - def onSongBarHandler(self): - request = unicode(self.sender().text()) - slideno = self.slideList[request] - if slideno > self.PreviewListWidget.rowCount(): - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) - else: - self.PreviewListWidget.selectRow(slideno) - self.onSlideSelected() - - def receiveSpinDelay(self, value): - self.DelaySpinBox.setValue(int(value)) - - def enableToolBar(self, item): - """ - Allows the toolbars to be reconfigured based on Controller Type - and ServiceItem Type - """ - if self.isLive: - self.enableLiveToolBar(item) - else: - self.enablePreviewToolBar(item) - - def enableLiveToolBar(self, item): - """ - Allows the live toolbar to be customised - """ - self.Toolbar.setVisible(True) - self.Mediabar.setVisible(False) - self.Toolbar.makeWidgetsInvisible([u'Song Menu']) - self.Toolbar.makeWidgetsInvisible(self.loopList) - self.Toolbar.actions[u'Stop Loop'].setVisible(False) - if item.is_text(): - if QtCore.QSettings().value( - self.parent.songsSettingsSection + u'/show songbar', - QtCore.QVariant(True)).toBool() and len(self.slideList) > 0: - self.Toolbar.makeWidgetsVisible([u'Song Menu']) - if item.is_capable(ItemCapabilities.AllowsLoop) and \ - len(item.get_frames()) > 1: - self.Toolbar.makeWidgetsVisible(self.loopList) - if item.is_media(): - self.Toolbar.setVisible(False) - self.Mediabar.setVisible(True) - - def enablePreviewToolBar(self, item): - """ - Allows the Preview toolbar to be customised - """ - self.Toolbar.setVisible(True) - self.Mediabar.setVisible(False) - self.Toolbar.makeWidgetsInvisible(self.songEditList) - if item.is_capable(ItemCapabilities.AllowsEdit) and item.from_plugin: - self.Toolbar.makeWidgetsVisible(self.songEditList) - elif item.is_media(): - self.Toolbar.setVisible(False) - self.Mediabar.setVisible(True) - self.volumeSlider.setAudioOutput(self.audio) - - def refreshServiceItem(self): - """ - Method to update the service item if the screen has changed - """ - log.debug(u'refreshServiceItem live = %s' % self.isLive) - if self.serviceItem: - if self.serviceItem.is_text() or self.serviceItem.is_image(): - item = self.serviceItem - item.render() - self._processItem(item, self.selectedRow) - - def addServiceItem(self, item): - """ - Method to install the service item into the controller - Called by plugins - """ - log.debug(u'addServiceItem live = %s' % self.isLive) - item.render() - slideno = 0 - if self.songEdit: - slideno = self.selectedRow - self.songEdit = False - self._processItem(item, slideno) - - def replaceServiceManagerItem(self, item): - """ - Replacement item following a remote edit - """ - if item.__eq__(self.serviceItem): - self._processItem(item, self.PreviewListWidget.currentRow()) - - def addServiceManagerItem(self, item, slideno): - """ - Method to install the service item into the controller and - request the correct toolbar for the plugin. - Called by ServiceManager - """ - log.debug(u'addServiceManagerItem live = %s' % self.isLive) - # If service item is the same as the current on only change slide - if item.__eq__(self.serviceItem): - self.PreviewListWidget.selectRow(slideno) - self.onSlideSelected() - return - self._processItem(item, slideno) - - def _processItem(self, serviceItem, slideno): - """ - Loads a ServiceItem into the system from ServiceManager - Display the slide number passed - """ - log.debug(u'processManagerItem live = %s' % self.isLive) - self.onStopLoop() - # If old item was a command tell it to stop - if self.serviceItem: - if self.serviceItem.is_command(): - Receiver.send_message(u'%s_stop' % - self.serviceItem.name.lower(), [serviceItem, self.isLive]) - if self.serviceItem.is_media(): - self.onMediaStop() - if self.isLive: - blanked = self.BlankScreen.isChecked() - else: - blanked = False - Receiver.send_message(u'%s_start' % serviceItem.name.lower(), - [serviceItem, self.isLive, blanked, slideno]) - self.slideList = {} - width = self.parent.ControlSplitter.sizes()[self.split] - # Set pointing cursor when we have somthing to point at - self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor) - self.serviceItem = serviceItem - self.PreviewListWidget.clear() - self.PreviewListWidget.setRowCount(0) - 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) - item = QtGui.QTableWidgetItem() - slideHeight = 0 - if self.serviceItem.is_text(): - if frame[u'verseTag']: - bits = frame[u'verseTag'].split(u':') - tag = u'%s\n%s' % (bits[0][0], bits[1][0:] ) - tag1 = u'%s%s' % (bits[0][0], bits[1][0:] ) - row = tag - if self.isLive: - if tag1 not in self.slideList: - self.slideList[tag1] = framenumber - self.SongMenu.menu().addAction(tag1, - self.onSongBarHandler) - else: - row += 1 - item.setText(frame[u'text']) - else: - label = QtGui.QLabel() - label.setMargin(4) - pixmap = resize_image(frame[u'image'], - self.parent.RenderManager.width, - self.parent.RenderManager.height) - label.setScaledContents(True) - label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) - self.PreviewListWidget.setCellWidget(framenumber, 0, label) - slideHeight = width * self.parent.RenderManager.screen_ratio - row += 1 - 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.PreviewListWidget.viewport().size().width()) - if slideno > self.PreviewListWidget.rowCount(): - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) - else: - self.PreviewListWidget.selectRow(slideno) - self.enableToolBar(serviceItem) - # Pass to display for viewing - self.display.buildHtml(self.serviceItem) - if serviceItem.is_media(): - self.onMediaStart(serviceItem) - self.onSlideSelected() - self.PreviewListWidget.setFocus() - Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix, - [serviceItem]) - - def onTextRequest(self): - """ - Return the text for the current item in controller - """ - data = [] - if self.serviceItem: - for framenumber, frame in enumerate(self.serviceItem.get_frames()): - dataItem = {} - if self.serviceItem.is_text(): - dataItem[u'tag'] = unicode(frame[u'verseTag']) - dataItem[u'text'] = unicode(frame[u'html']) - else: - dataItem[u'tag'] = unicode(framenumber) - dataItem[u'text'] = u'' - dataItem[u'selected'] = \ - (self.PreviewListWidget.currentRow() == framenumber) - data.append(dataItem) - Receiver.send_message(u'slidecontroller_%s_text_response' - % self.typePrefix, data) - - # Screen event methods - def onSlideSelectedFirst(self): - """ - Go to the first slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_first' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command(): - self.updatePreview() - else: - self.PreviewListWidget.selectRow(0) - self.onSlideSelected() - - def onSlideSelectedIndex(self, message): - """ - Go to the requested slide - """ - index = int(message[0]) - if not self.serviceItem: - return - Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive, index]) - if self.serviceItem.is_command(): - self.updatePreview() - else: - self.PreviewListWidget.selectRow(index) - self.onSlideSelected() - - def mainDisplaySetBackground(self): - """ - Allow the main display to blank the main display at startup time - """ - log.debug(u'mainDisplaySetBackground live = %s' % self.isLive) - if not self.display.primary: - self.onHideDisplay(True) - - def onSlideBlank(self): - """ - Handle the slidecontroller blank event - """ - self.onBlankDisplay(True) - - def onSlideUnblank(self): - """ - Handle the slidecontroller unblank event - """ - self.onBlankDisplay(False) - - def onBlankDisplay(self, checked): - """ - Handle the blank screen button actions - """ - log.debug(u'onBlankDisplay %s' % checked) - self.HideMenu.setDefaultAction(self.BlankScreen) - self.BlankScreen.setChecked(checked) - self.ThemeScreen.setChecked(False) - if self.screens.display_count > 1: - self.DesktopScreen.setChecked(False) - QtCore.QSettings().setValue( - self.parent.generalSettingsSection + u'/screen blank', - QtCore.QVariant(checked)) - if checked: - Receiver.send_message(u'maindisplay_hide', HideMode.Blank) - else: - Receiver.send_message(u'maindisplay_show') - self.blankPlugin(checked) - - def onThemeDisplay(self, checked): - """ - Handle the Theme screen button - """ - log.debug(u'onThemeDisplay %s' % checked) - self.HideMenu.setDefaultAction(self.ThemeScreen) - self.BlankScreen.setChecked(False) - self.ThemeScreen.setChecked(checked) - if self.screens.display_count > 1: - self.DesktopScreen.setChecked(False) - if checked: - Receiver.send_message(u'maindisplay_hide', HideMode.Theme) - else: - Receiver.send_message(u'maindisplay_show') - self.blankPlugin(checked) - - def onHideDisplay(self, checked): - """ - Handle the Hide screen button - """ - log.debug(u'onHideDisplay %s' % checked) - self.HideMenu.setDefaultAction(self.DesktopScreen) - self.BlankScreen.setChecked(False) - self.ThemeScreen.setChecked(False) - if self.screens.display_count > 1: - self.DesktopScreen.setChecked(checked) - if checked: - Receiver.send_message(u'maindisplay_hide', HideMode.Screen) - else: - Receiver.send_message(u'maindisplay_show') - self.hidePlugin(checked) - - def blankPlugin(self, blank): - """ - Blank the display screen within a plugin if required. - """ - log.debug(u'blankPlugin %s ', blank) - if self.serviceItem is not None: - if blank: - Receiver.send_message(u'%s_blank' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - else: - Receiver.send_message(u'%s_unblank' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - - def hidePlugin(self, hide): - """ - Tell the plugin to hide the display screen. - """ - log.debug(u'hidePlugin %s ', hide) - if self.serviceItem is not None: - if hide: - Receiver.send_message(u'%s_hide' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - else: - Receiver.send_message(u'%s_unblank' - % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - - def onSlideSelected(self): - """ - Generate the preview when you click on a slide. - if this is the Live Controller also display on the screen - """ - row = self.PreviewListWidget.currentRow() - self.selectedRow = 0 - if row > -1 and row < self.PreviewListWidget.rowCount(): - Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive, row]) - if self.serviceItem.is_command() and self.isLive: - self.updatePreview() - else: - frame, raw_html = self.serviceItem.get_rendered_frame(row) - if self.serviceItem.is_text(): - frame = self.display.text(raw_html) - else: - self.display.image(frame) - if isinstance(frame, QtGui.QImage): - self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) - else: - self.SlidePreview.setPixmap(QtGui.QPixmap(frame)) - self.selectedRow = row - Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, - row) - - def onSlideChange(self, row): - """ - The slide has been changed. Update the slidecontroller accordingly - """ - self.PreviewListWidget.selectRow(row) - self.updatePreview() - Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, - row) - - def updatePreview(self): - if not self.screens.current[u'primary']: - # Grab now, but try again in a couple of seconds if slide change - # is slow - QtCore.QTimer.singleShot(0.5, self.grabMainDisplay) - QtCore.QTimer.singleShot(2.5, self.grabMainDisplay) - else: - label = self.PreviewListWidget.cellWidget( - self.PreviewListWidget.currentRow(), 1) - if label: - self.SlidePreview.setPixmap(label.pixmap()) - - def grabMainDisplay(self): - winid = QtGui.QApplication.desktop().winId() - rect = self.screens.current[u'size'] - winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), - rect.y(), rect.width(), rect.height()) - self.SlidePreview.setPixmap(winimg) - - def onSlideSelectedNextNoloop(self): - self.onSlideSelectedNext(False) - - def onSlideSelectedNext(self, loop=True): - """ - Go to the next slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command() and self.isLive: - self.updatePreview() - else: - row = self.PreviewListWidget.currentRow() + 1 - if row == self.PreviewListWidget.rowCount(): - if loop: - row = 0 - else: - Receiver.send_message('servicemanager_next_item') - return - self.PreviewListWidget.selectRow(row) - self.onSlideSelected() - - def onSlideSelectedPreviousNoloop(self): - self.onSlideSelectedPrevious(False) - - def onSlideSelectedPrevious(self, loop=True): - """ - Go to the previous slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command() and self.isLive: - self.updatePreview() - else: - row = self.PreviewListWidget.currentRow() - 1 - if row == -1: - if loop: - row = self.PreviewListWidget.rowCount() - 1 - else: - row = 0 - self.PreviewListWidget.selectRow(row) - self.onSlideSelected() - - def onSlideSelectedLast(self): - """ - Go to the last slide. - """ - if not self.serviceItem: - return - Receiver.send_message(u'%s_last' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) - if self.serviceItem.is_command(): - self.updatePreview() - else: - self.PreviewListWidget.selectRow( - self.PreviewListWidget.rowCount() - 1) - self.onSlideSelected() - - def onStartLoop(self): - """ - Start the timer loop running and store the timer id - """ - if self.PreviewListWidget.rowCount() > 1: - self.timer_id = self.startTimer( - int(self.DelaySpinBox.value()) * 1000) - self.Toolbar.actions[u'Stop Loop'].setVisible(True) - self.Toolbar.actions[u'Start Loop'].setVisible(False) - - def onStopLoop(self): - """ - Stop the timer loop running - """ - if self.timer_id != 0: - self.killTimer(self.timer_id) - self.timer_id = 0 - self.Toolbar.actions[u'Start Loop'].setVisible(True) - self.Toolbar.actions[u'Stop Loop'].setVisible(False) - - def timerEvent(self, event): - """ - If the timer event is for this window select next slide - """ - if event.timerId() == self.timer_id: - self.onSlideSelectedNext() - - def onEditSong(self): - """ - From the preview display requires the service Item to be editied - """ - self.songEdit = True - Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), - u'P:%s' % self.serviceItem.editId) - - def onGoLive(self): - """ - If preview copy slide item to live - """ - row = self.PreviewListWidget.currentRow() - if row > -1 and row < self.PreviewListWidget.rowCount(): - self.parent.LiveController.addServiceManagerItem( - self.serviceItem, row) - - def onMediaStart(self, item): - """ - Respond to the arrival of a media service item - """ - log.debug(u'SlideController onMediaStart') - if self.isLive: - file = os.path.join(item.get_frame_path(), item.get_frame_title()) - self.display.video(file, self.volume) - self.volumeSlider.setValue(self.volume) - else: - self.mediaObject.stop() - self.mediaObject.clearQueue() - file = os.path.join(item.get_frame_path(), item.get_frame_title()) - self.mediaObject.setCurrentSource(Phonon.MediaSource(file)) - self.seekSlider.setMediaObject(self.mediaObject) - self.seekSlider.show() - self.onMediaPlay() - - def mediaVolume(self): - """ - Respond to the release of Volume Slider - """ - log.debug(u'SlideController mediaVolume') - self.volume = self.volumeSlider.value() - self.display.videoVolume(self.volume) - - def onMediaPause(self): - """ - Respond to the Pause from the media Toolbar - """ - log.debug(u'SlideController onMediaPause') - if self.isLive: - self.display.videoPause() - else: - self.mediaObject.pause() - - def onMediaPlay(self): - """ - Respond to the Play from the media Toolbar - """ - log.debug(u'SlideController onMediaPlay') - if self.isLive: - self.display.videoPlay() - else: - self.SlidePreview.hide() - self.video.show() - self.mediaObject.play() - - def onMediaStop(self): - """ - Respond to the Stop from the media Toolbar - """ - log.debug(u'SlideController onMediaStop') - if self.isLive: - self.display.videoStop() - else: - self.mediaObject.stop() - self.video.hide() - self.SlidePreview.clear() - self.SlidePreview.show() +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 +import os + +from PyQt4 import QtCore, QtGui +from PyQt4.phonon import Phonon + +from openlp.core.ui import HideMode, MainDisplay +from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \ + ItemCapabilities, translate + +log = logging.getLogger(__name__) + +class SlideList(QtGui.QTableWidget): + """ + Customised version of QTableWidget which can respond to keyboard + events. + """ + def __init__(self, parent=None, name=None): + QtGui.QTableWidget.__init__(self, parent.Controller) + self.parent = parent + self.hotkeyMap = { + QtCore.Qt.Key_Return: 'servicemanager_next_item', + QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_0: 'servicemanager_next_item', + QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} + + def keyPressEvent(self, event): + if isinstance(event, QtGui.QKeyEvent): + #here accept the event and do something + if event.key() == QtCore.Qt.Key_Up: + self.parent.onSlideSelectedPrevious() + event.accept() + elif event.key() == QtCore.Qt.Key_Down: + self.parent.onSlideSelectedNext() + event.accept() + elif event.key() == QtCore.Qt.Key_PageUp: + self.parent.onSlideSelectedFirst() + event.accept() + elif event.key() == QtCore.Qt.Key_PageDown: + self.parent.onSlideSelectedLast() + event.accept() + elif event.key() in self.hotkeyMap and self.parent.isLive: + Receiver.send_message(self.hotkeyMap[event.key()]) + event.accept() + event.ignore() + else: + event.ignore() + +class SlideController(QtGui.QWidget): + """ + SlideController is the slide controller widget. This widget is what the + user uses to control the displaying of verses/slides/etc on the screen. + """ + def __init__(self, parent, settingsmanager, screens, isLive=False): + """ + Set up the Slide Controller. + """ + QtGui.QWidget.__init__(self, parent) + self.settingsmanager = settingsmanager + self.isLive = isLive + self.parent = parent + self.screens = screens + self.ratio = float(self.screens.current[u'size'].width()) / \ + float(self.screens.current[u'size'].height()) + self.display = MainDisplay(self, screens, isLive) + self.loopList = [ + u'Start Loop', + u'Loop Separator', + u'Image SpinBox' + ] + self.songEditList = [ + u'Edit Song', + ] + self.volume = 10 + self.timer_id = 0 + self.songEdit = False + self.selectedRow = 0 + self.serviceItem = None + self.alertTab = None + self.Panel = QtGui.QWidget(parent.ControlSplitter) + self.slideList = {} + # Layout for holding panel + self.PanelLayout = QtGui.QVBoxLayout(self.Panel) + self.PanelLayout.setSpacing(0) + self.PanelLayout.setMargin(0) + # Type label for the top of the slide controller + self.TypeLabel = QtGui.QLabel(self.Panel) + if self.isLive: + self.TypeLabel.setText(translate('OpenLP.SlideController', 'Live')) + self.split = 1 + self.typePrefix = u'live' + else: + self.TypeLabel.setText(translate('OpenLP.SlideController', + 'Preview')) + self.split = 0 + self.typePrefix = u'preview' + self.TypeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;') + self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter) + self.PanelLayout.addWidget(self.TypeLabel) + # Splitter + self.Splitter = QtGui.QSplitter(self.Panel) + self.Splitter.setOrientation(QtCore.Qt.Vertical) + self.Splitter.setOpaqueResize(False) + self.PanelLayout.addWidget(self.Splitter) + # Actual controller section + self.Controller = QtGui.QWidget(self.Splitter) + self.Controller.setGeometry(QtCore.QRect(0, 0, 100, 536)) + self.Controller.setSizePolicy( + QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, + QtGui.QSizePolicy.Maximum)) + self.ControllerLayout = QtGui.QVBoxLayout(self.Controller) + self.ControllerLayout.setSpacing(0) + self.ControllerLayout.setMargin(0) + # Controller list view + self.PreviewListWidget = SlideList(self) + self.PreviewListWidget.setColumnCount(1) + self.PreviewListWidget.horizontalHeader().setVisible(False) + self.PreviewListWidget.setColumnWidth( + 0, self.Controller.width()) + self.PreviewListWidget.isLive = self.isLive + self.PreviewListWidget.setObjectName(u'PreviewListWidget') + self.PreviewListWidget.setSelectionBehavior(1) + self.PreviewListWidget.setEditTriggers( + QtGui.QAbstractItemView.NoEditTriggers) + self.PreviewListWidget.setHorizontalScrollBarPolicy( + QtCore.Qt.ScrollBarAlwaysOff) + self.PreviewListWidget.setAlternatingRowColors(True) + self.ControllerLayout.addWidget(self.PreviewListWidget) + # Build the full toolbar + self.Toolbar = OpenLPToolbar(self) + sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + sizeToolbarPolicy.setHorizontalStretch(0) + sizeToolbarPolicy.setVerticalStretch(0) + sizeToolbarPolicy.setHeightForWidth( + self.Toolbar.sizePolicy().hasHeightForWidth()) + self.Toolbar.setSizePolicy(sizeToolbarPolicy) + self.Toolbar.addToolbarButton( + u'Previous Slide', u':/slides/slide_previous.png', + translate('OpenLP.SlideController', 'Move to previous'), + self.onSlideSelectedPrevious) + self.Toolbar.addToolbarButton( + u'Next Slide', u':/slides/slide_next.png', + translate('OpenLP.SlideController', 'Move to next'), + self.onSlideSelectedNext) + if self.isLive: + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.HideMenu = QtGui.QToolButton(self.Toolbar) + self.HideMenu.setText(translate('OpenLP.SlideController', 'Hide')) + self.HideMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup) + self.Toolbar.addToolbarWidget(u'Hide Menu', self.HideMenu) + self.HideMenu.setMenu(QtGui.QMenu( + translate('OpenLP.SlideController', 'Hide'), self.Toolbar)) + self.BlankScreen = QtGui.QAction(QtGui.QIcon( + u':/slides/slide_blank.png'), u'Blank Screen', self.HideMenu) + self.BlankScreen.setText( + translate('OpenLP.SlideController', 'Blank Screen')) + self.BlankScreen.setCheckable(True) + QtCore.QObject.connect(self.BlankScreen, + QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) + self.ThemeScreen = QtGui.QAction(QtGui.QIcon( + u':/slides/slide_theme.png'), u'Blank to Theme', self.HideMenu) + self.ThemeScreen.setText( + translate('OpenLP.SlideController', 'Blank to Theme')) + self.ThemeScreen.setCheckable(True) + QtCore.QObject.connect(self.ThemeScreen, + QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) + if self.screens.display_count > 1: + self.DesktopScreen = QtGui.QAction(QtGui.QIcon( + u':/slides/slide_desktop.png'), u'Show Desktop', + self.HideMenu) + self.DesktopScreen.setText( + translate('OpenLP.SlideController', 'Show Desktop')) + self.DesktopScreen.setCheckable(True) + QtCore.QObject.connect(self.DesktopScreen, + QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) + self.HideMenu.setDefaultAction(self.BlankScreen) + self.HideMenu.menu().addAction(self.BlankScreen) + self.HideMenu.menu().addAction(self.ThemeScreen) + if self.screens.display_count > 1: + self.HideMenu.menu().addAction(self.DesktopScreen) + if not self.isLive: + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + u'Go Live', u':/general/general_live.png', + translate('OpenLP.SlideController', 'Move to live'), + self.onGoLive) + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + u'Edit Song', u':/general/general_edit.png', + translate('OpenLP.SlideController', 'Edit and re-preview Song'), + self.onEditSong) + if isLive: + self.Toolbar.addToolbarSeparator(u'Loop Separator') + self.Toolbar.addToolbarButton( + u'Start Loop', u':/media/media_time.png', + translate('OpenLP.SlideController', 'Start continuous loop'), + self.onStartLoop) + self.Toolbar.addToolbarButton( + u'Stop Loop', u':/media/media_stop.png', + translate('OpenLP.SlideController', 'Stop continuous loop'), + self.onStopLoop) + self.DelaySpinBox = QtGui.QSpinBox() + self.DelaySpinBox.setMinimum(1) + self.DelaySpinBox.setMaximum(180) + self.Toolbar.addToolbarWidget( + u'Image SpinBox', self.DelaySpinBox) + self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController', + 's')) + self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController', + 'Delay between slides in seconds')) + self.ControllerLayout.addWidget(self.Toolbar) + # Build a Media ToolBar + self.Mediabar = OpenLPToolbar(self) + self.Mediabar.addToolbarButton( + u'Media Start', u':/slides/media_playback_start.png', + translate('OpenLP.SlideController', 'Start playing media'), + self.onMediaPlay) + self.Mediabar.addToolbarButton( + u'Media Pause', u':/slides/media_playback_pause.png', + translate('OpenLP.SlideController', 'Start playing media'), + self.onMediaPause) + self.Mediabar.addToolbarButton( + u'Media Stop', u':/slides/media_playback_stop.png', + translate('OpenLP.SlideController', 'Start playing media'), + self.onMediaStop) + if not self.isLive: + self.seekSlider = Phonon.SeekSlider() + self.seekSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.seekSlider.setObjectName(u'seekSlider') + self.Mediabar.addToolbarWidget( + u'Seek Slider', self.seekSlider) + self.volumeSlider = Phonon.VolumeSlider() + self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.volumeSlider.setObjectName(u'volumeSlider') + self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) + else: + self.volumeSlider = QtGui.QSlider(QtCore.Qt.Horizontal) + self.volumeSlider.setTickInterval(1) + self.volumeSlider.setTickPosition(QtGui.QSlider.TicksAbove) + self.volumeSlider.setMinimum(0) + self.volumeSlider.setMaximum(10) + self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.volumeSlider.setObjectName(u'volumeSlider') + self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) + self.ControllerLayout.addWidget(self.Mediabar) + # Build the Song Toolbar + if isLive: + self.SongMenu = QtGui.QToolButton(self.Toolbar) + self.SongMenu.setText(translate('OpenLP.SlideController', + 'Go to')) + self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup) + self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu) + self.SongMenu.setMenu(QtGui.QMenu( + translate('OpenLP.SlideController', 'Go to'), + self.Toolbar)) + self.Toolbar.makeWidgetsInvisible([u'Song Menu']) + # Screen preview area + self.PreviewFrame = QtGui.QFrame(self.Splitter) + self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) + self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy( + QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Label)) + self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel) + self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken) + self.PreviewFrame.setObjectName(u'PreviewFrame') + self.grid = QtGui.QGridLayout(self.PreviewFrame) + self.grid.setMargin(8) + self.grid.setObjectName(u'grid') + self.SlideLayout = QtGui.QVBoxLayout() + self.SlideLayout.setSpacing(0) + self.SlideLayout.setMargin(0) + self.SlideLayout.setObjectName(u'SlideLayout') + self.mediaObject = Phonon.MediaObject(self) + self.video = Phonon.VideoWidget() + self.video.setVisible(False) + self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject) + Phonon.createPath(self.mediaObject, self.video) + Phonon.createPath(self.mediaObject, self.audio) + if not self.isLive: + self.video.setGeometry(QtCore.QRect(0, 0, 300, 225)) + self.video.setVisible(False) + self.SlideLayout.insertWidget(0, self.video) + # Actual preview screen + self.SlidePreview = QtGui.QLabel(self) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth( + self.SlidePreview.sizePolicy().hasHeightForWidth()) + self.SlidePreview.setSizePolicy(sizePolicy) + self.SlidePreview.setFixedSize( + QtCore.QSize(self.settingsmanager.slidecontroller_image, + self.settingsmanager.slidecontroller_image / self.ratio)) + self.SlidePreview.setFrameShape(QtGui.QFrame.Box) + self.SlidePreview.setFrameShadow(QtGui.QFrame.Plain) + self.SlidePreview.setLineWidth(1) + self.SlidePreview.setScaledContents(True) + self.SlidePreview.setObjectName(u'SlidePreview') + self.SlideLayout.insertWidget(0, self.SlidePreview) + self.grid.addLayout(self.SlideLayout, 0, 0, 1, 1) + # Signals + QtCore.QObject.connect(self.PreviewListWidget, + QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) + if not self.isLive: + if QtCore.QSettings().value(u'advanced/double click live', + QtCore.QVariant(False)).toBool(): + QtCore.QObject.connect(self.PreviewListWidget, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLive) + if isLive: + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), + self.receiveSpinDelay) + if isLive: + self.Toolbar.makeWidgetsInvisible(self.loopList) + self.Toolbar.actions[u'Stop Loop'].setVisible(False) + else: + self.Toolbar.makeWidgetsInvisible(self.songEditList) + self.Mediabar.setVisible(False) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_stop_loop' % self.typePrefix), + self.onStopLoop) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_first' % self.typePrefix), + self.onSlideSelectedFirst) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_next' % self.typePrefix), + self.onSlideSelectedNext) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_previous' % self.typePrefix), + self.onSlideSelectedPrevious) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_next_noloop' % self.typePrefix), + self.onSlideSelectedNextNoloop) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_previous_noloop' % + self.typePrefix), + self.onSlideSelectedPreviousNoloop) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_last' % self.typePrefix), + self.onSlideSelectedLast) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_change' % self.typePrefix), + self.onSlideChange) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_set' % self.typePrefix), + self.onSlideSelectedIndex) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_blank' % self.typePrefix), + self.onSlideBlank) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.typePrefix), + self.onSlideUnblank) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix), + self.onTextRequest) + QtCore.QObject.connect(self.Splitter, + QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) + if self.isLive: + QtCore.QObject.connect(self.volumeSlider, + QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) + + def screenSizeChanged(self): + """ + Settings dialog has changed the screen size of adjust output and + screen previews + """ + log.debug(u'screenSizeChanged live = %s' % self.isLive) + # rebuild display as screen size changed + self.display = MainDisplay(self, self.screens, self.isLive) + self.display.alertTab = self.alertTab + self.ratio = float(self.screens.current[u'size'].width()) / \ + float(self.screens.current[u'size'].height()) + self.display.setup() + self.SlidePreview.setFixedSize( + QtCore.QSize(self.settingsmanager.slidecontroller_image, + self.settingsmanager.slidecontroller_image / self.ratio)) + + def widthChanged(self): + """ + Handle changes of width from the splitter between the live and preview + controller. Event only issues when changes have finished + """ + log.debug(u'widthChanged live = %s' % self.isLive) + width = self.parent.ControlSplitter.sizes()[self.split] + height = width * self.parent.RenderManager.screen_ratio + self.PreviewListWidget.setColumnWidth(0, width) + # Sort out image heights (Songs, bibles excluded) + if self.serviceItem and not self.serviceItem.is_text(): + for framenumber in range(len(self.serviceItem.get_frames())): + self.PreviewListWidget.setRowHeight(framenumber, height) + + def trackSplitter(self, tab, pos): + """ + Splitter between the slide list and the preview panel + """ + pass + + def onSongBarHandler(self): + request = unicode(self.sender().text()) + slideno = self.slideList[request] + if slideno > self.PreviewListWidget.rowCount(): + self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + else: + self.PreviewListWidget.selectRow(slideno) + self.onSlideSelected() + + def receiveSpinDelay(self, value): + self.DelaySpinBox.setValue(int(value)) + + def enableToolBar(self, item): + """ + Allows the toolbars to be reconfigured based on Controller Type + and ServiceItem Type + """ + if self.isLive: + self.enableLiveToolBar(item) + else: + self.enablePreviewToolBar(item) + + def enableLiveToolBar(self, item): + """ + Allows the live toolbar to be customised + """ + self.Toolbar.setVisible(True) + self.Mediabar.setVisible(False) + self.Toolbar.makeWidgetsInvisible([u'Song Menu']) + self.Toolbar.makeWidgetsInvisible(self.loopList) + self.Toolbar.actions[u'Stop Loop'].setVisible(False) + if item.is_text(): + if QtCore.QSettings().value( + self.parent.songsSettingsSection + u'/show songbar', + QtCore.QVariant(True)).toBool() and len(self.slideList) > 0: + self.Toolbar.makeWidgetsVisible([u'Song Menu']) + if item.is_capable(ItemCapabilities.AllowsLoop) and \ + len(item.get_frames()) > 1: + self.Toolbar.makeWidgetsVisible(self.loopList) + if item.is_media(): + self.Toolbar.setVisible(False) + self.Mediabar.setVisible(True) + + def enablePreviewToolBar(self, item): + """ + Allows the Preview toolbar to be customised + """ + self.Toolbar.setVisible(True) + self.Mediabar.setVisible(False) + self.Toolbar.makeWidgetsInvisible(self.songEditList) + if item.is_capable(ItemCapabilities.AllowsEdit) and item.from_plugin: + self.Toolbar.makeWidgetsVisible(self.songEditList) + elif item.is_media(): + self.Toolbar.setVisible(False) + self.Mediabar.setVisible(True) + self.volumeSlider.setAudioOutput(self.audio) + + def refreshServiceItem(self): + """ + Method to update the service item if the screen has changed + """ + log.debug(u'refreshServiceItem live = %s' % self.isLive) + if self.serviceItem: + if self.serviceItem.is_text() or self.serviceItem.is_image(): + item = self.serviceItem + item.render() + self._processItem(item, self.selectedRow) + + def addServiceItem(self, item): + """ + Method to install the service item into the controller + Called by plugins + """ + log.debug(u'addServiceItem live = %s' % self.isLive) + item.render() + slideno = 0 + if self.songEdit: + slideno = self.selectedRow + self.songEdit = False + self._processItem(item, slideno) + + def replaceServiceManagerItem(self, item): + """ + Replacement item following a remote edit + """ + if item.__eq__(self.serviceItem): + self._processItem(item, self.PreviewListWidget.currentRow()) + + def addServiceManagerItem(self, item, slideno): + """ + Method to install the service item into the controller and + request the correct toolbar for the plugin. + Called by ServiceManager + """ + log.debug(u'addServiceManagerItem live = %s' % self.isLive) + # If service item is the same as the current on only change slide + if item.__eq__(self.serviceItem): + self.PreviewListWidget.selectRow(slideno) + self.onSlideSelected() + return + self._processItem(item, slideno) + + def _processItem(self, serviceItem, slideno): + """ + Loads a ServiceItem into the system from ServiceManager + Display the slide number passed + """ + log.debug(u'processManagerItem live = %s' % self.isLive) + self.onStopLoop() + # If old item was a command tell it to stop + if self.serviceItem: + if self.serviceItem.is_command(): + Receiver.send_message(u'%s_stop' % + self.serviceItem.name.lower(), [serviceItem, self.isLive]) + if self.serviceItem.is_media(): + self.onMediaStop() + if self.isLive: + blanked = self.BlankScreen.isChecked() + else: + blanked = False + Receiver.send_message(u'%s_start' % serviceItem.name.lower(), + [serviceItem, self.isLive, blanked, slideno]) + self.slideList = {} + width = self.parent.ControlSplitter.sizes()[self.split] + # Set pointing cursor when we have somthing to point at + self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor) + self.serviceItem = serviceItem + self.PreviewListWidget.clear() + self.PreviewListWidget.setRowCount(0) + 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) + item = QtGui.QTableWidgetItem() + slideHeight = 0 + if self.serviceItem.is_text(): + if frame[u'verseTag']: + bits = frame[u'verseTag'].split(u':') + tag = u'%s\n%s' % (bits[0][0], bits[1][0:] ) + tag1 = u'%s%s' % (bits[0][0], bits[1][0:] ) + row = tag + if self.isLive: + if tag1 not in self.slideList: + self.slideList[tag1] = framenumber + self.SongMenu.menu().addAction(tag1, + self.onSongBarHandler) + else: + row += 1 + item.setText(frame[u'text']) + else: + label = QtGui.QLabel() + label.setMargin(4) + pixmap = resize_image(frame[u'image'], + self.parent.RenderManager.width, + self.parent.RenderManager.height) + label.setScaledContents(True) + label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) + self.PreviewListWidget.setCellWidget(framenumber, 0, label) + slideHeight = width * self.parent.RenderManager.screen_ratio + row += 1 + 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.PreviewListWidget.viewport().size().width()) + if slideno > self.PreviewListWidget.rowCount(): + self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + else: + self.PreviewListWidget.selectRow(slideno) + self.enableToolBar(serviceItem) + # Pass to display for viewing + self.display.buildHtml(self.serviceItem) + if serviceItem.is_media(): + self.onMediaStart(serviceItem) + self.onSlideSelected() + self.PreviewListWidget.setFocus() + Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix, + [serviceItem]) + + def onTextRequest(self): + """ + Return the text for the current item in controller + """ + data = [] + if self.serviceItem: + for framenumber, frame in enumerate(self.serviceItem.get_frames()): + dataItem = {} + if self.serviceItem.is_text(): + dataItem[u'tag'] = unicode(frame[u'verseTag']) + dataItem[u'text'] = unicode(frame[u'html']) + else: + dataItem[u'tag'] = unicode(framenumber) + dataItem[u'text'] = u'' + dataItem[u'selected'] = \ + (self.PreviewListWidget.currentRow() == framenumber) + data.append(dataItem) + Receiver.send_message(u'slidecontroller_%s_text_response' + % self.typePrefix, data) + + # Screen event methods + def onSlideSelectedFirst(self): + """ + Go to the first slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_first' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command(): + self.updatePreview() + else: + self.PreviewListWidget.selectRow(0) + self.onSlideSelected() + + def onSlideSelectedIndex(self, message): + """ + Go to the requested slide + """ + index = int(message[0]) + if not self.serviceItem: + return + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive, index]) + if self.serviceItem.is_command(): + self.updatePreview() + else: + self.PreviewListWidget.selectRow(index) + self.onSlideSelected() + + def mainDisplaySetBackground(self): + """ + Allow the main display to blank the main display at startup time + """ + log.debug(u'mainDisplaySetBackground live = %s' % self.isLive) + if not self.display.primary: + self.onHideDisplay(True) + + def onSlideBlank(self): + """ + Handle the slidecontroller blank event + """ + self.onBlankDisplay(True) + + def onSlideUnblank(self): + """ + Handle the slidecontroller unblank event + """ + self.onBlankDisplay(False) + + def onBlankDisplay(self, checked): + """ + Handle the blank screen button actions + """ + log.debug(u'onBlankDisplay %s' % checked) + self.HideMenu.setDefaultAction(self.BlankScreen) + self.BlankScreen.setChecked(checked) + self.ThemeScreen.setChecked(False) + if self.screens.display_count > 1: + self.DesktopScreen.setChecked(False) + QtCore.QSettings().setValue( + self.parent.generalSettingsSection + u'/screen blank', + QtCore.QVariant(checked)) + if checked: + Receiver.send_message(u'maindisplay_hide', HideMode.Blank) + else: + Receiver.send_message(u'maindisplay_show') + self.blankPlugin(checked) + + def onThemeDisplay(self, checked): + """ + Handle the Theme screen button + """ + log.debug(u'onThemeDisplay %s' % checked) + self.HideMenu.setDefaultAction(self.ThemeScreen) + self.BlankScreen.setChecked(False) + self.ThemeScreen.setChecked(checked) + if self.screens.display_count > 1: + self.DesktopScreen.setChecked(False) + if checked: + Receiver.send_message(u'maindisplay_hide', HideMode.Theme) + else: + Receiver.send_message(u'maindisplay_show') + self.blankPlugin(checked) + + def onHideDisplay(self, checked): + """ + Handle the Hide screen button + """ + log.debug(u'onHideDisplay %s' % checked) + self.HideMenu.setDefaultAction(self.DesktopScreen) + self.BlankScreen.setChecked(False) + self.ThemeScreen.setChecked(False) + if self.screens.display_count > 1: + self.DesktopScreen.setChecked(checked) + if checked: + Receiver.send_message(u'maindisplay_hide', HideMode.Screen) + else: + Receiver.send_message(u'maindisplay_show') + self.hidePlugin(checked) + + def blankPlugin(self, blank): + """ + Blank the display screen within a plugin if required. + """ + log.debug(u'blankPlugin %s ', blank) + if self.serviceItem is not None: + if blank: + Receiver.send_message(u'%s_blank' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + else: + Receiver.send_message(u'%s_unblank' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + + def hidePlugin(self, hide): + """ + Tell the plugin to hide the display screen. + """ + log.debug(u'hidePlugin %s ', hide) + if self.serviceItem is not None: + if hide: + Receiver.send_message(u'%s_hide' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + else: + Receiver.send_message(u'%s_unblank' + % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + + def onSlideSelected(self): + """ + Generate the preview when you click on a slide. + if this is the Live Controller also display on the screen + """ + row = self.PreviewListWidget.currentRow() + self.selectedRow = 0 + if row > -1 and row < self.PreviewListWidget.rowCount(): + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive, row]) + if self.serviceItem.is_command() and self.isLive: + self.updatePreview() + else: + frame, raw_html = self.serviceItem.get_rendered_frame(row) + if self.serviceItem.is_text(): + frame = self.display.text(raw_html) + else: + self.display.image(frame) + if isinstance(frame, QtGui.QImage): + self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) + else: + self.SlidePreview.setPixmap(QtGui.QPixmap(frame)) + self.selectedRow = row + Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, + row) + + def onSlideChange(self, row): + """ + The slide has been changed. Update the slidecontroller accordingly + """ + self.PreviewListWidget.selectRow(row) + self.updatePreview() + Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, + row) + + def updatePreview(self): + if not self.screens.current[u'primary']: + # Grab now, but try again in a couple of seconds if slide change + # is slow + QtCore.QTimer.singleShot(0.5, self.grabMainDisplay) + QtCore.QTimer.singleShot(2.5, self.grabMainDisplay) + else: + label = self.PreviewListWidget.cellWidget( + self.PreviewListWidget.currentRow(), 1) + if label: + self.SlidePreview.setPixmap(label.pixmap()) + + def grabMainDisplay(self): + winid = QtGui.QApplication.desktop().winId() + rect = self.screens.current[u'size'] + winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), + rect.y(), rect.width(), rect.height()) + self.SlidePreview.setPixmap(winimg) + + def onSlideSelectedNextNoloop(self): + self.onSlideSelectedNext(False) + + def onSlideSelectedNext(self, loop=True): + """ + Go to the next slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command() and self.isLive: + self.updatePreview() + else: + row = self.PreviewListWidget.currentRow() + 1 + if row == self.PreviewListWidget.rowCount(): + if loop: + row = 0 + else: + Receiver.send_message('servicemanager_next_item') + return + self.PreviewListWidget.selectRow(row) + self.onSlideSelected() + + def onSlideSelectedPreviousNoloop(self): + self.onSlideSelectedPrevious(False) + + def onSlideSelectedPrevious(self, loop=True): + """ + Go to the previous slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command() and self.isLive: + self.updatePreview() + else: + row = self.PreviewListWidget.currentRow() - 1 + if row == -1: + if loop: + row = self.PreviewListWidget.rowCount() - 1 + else: + row = 0 + self.PreviewListWidget.selectRow(row) + self.onSlideSelected() + + def onSlideSelectedLast(self): + """ + Go to the last slide. + """ + if not self.serviceItem: + return + Receiver.send_message(u'%s_last' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive]) + if self.serviceItem.is_command(): + self.updatePreview() + else: + self.PreviewListWidget.selectRow( + self.PreviewListWidget.rowCount() - 1) + self.onSlideSelected() + + def onStartLoop(self): + """ + Start the timer loop running and store the timer id + """ + if self.PreviewListWidget.rowCount() > 1: + self.timer_id = self.startTimer( + int(self.DelaySpinBox.value()) * 1000) + self.Toolbar.actions[u'Stop Loop'].setVisible(True) + self.Toolbar.actions[u'Start Loop'].setVisible(False) + + def onStopLoop(self): + """ + Stop the timer loop running + """ + if self.timer_id != 0: + self.killTimer(self.timer_id) + self.timer_id = 0 + self.Toolbar.actions[u'Start Loop'].setVisible(True) + self.Toolbar.actions[u'Stop Loop'].setVisible(False) + + def timerEvent(self, event): + """ + If the timer event is for this window select next slide + """ + if event.timerId() == self.timer_id: + self.onSlideSelectedNext() + + def onEditSong(self): + """ + From the preview display requires the service Item to be editied + """ + self.songEdit = True + Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), + u'P:%s' % self.serviceItem.editId) + + def onGoLive(self): + """ + If preview copy slide item to live + """ + row = self.PreviewListWidget.currentRow() + if row > -1 and row < self.PreviewListWidget.rowCount(): + self.parent.LiveController.addServiceManagerItem( + self.serviceItem, row) + + def onMediaStart(self, item): + """ + Respond to the arrival of a media service item + """ + log.debug(u'SlideController onMediaStart') + if self.isLive: + file = os.path.join(item.get_frame_path(), item.get_frame_title()) + self.display.video(file, self.volume) + self.volumeSlider.setValue(self.volume) + else: + self.mediaObject.stop() + self.mediaObject.clearQueue() + file = os.path.join(item.get_frame_path(), item.get_frame_title()) + self.mediaObject.setCurrentSource(Phonon.MediaSource(file)) + self.seekSlider.setMediaObject(self.mediaObject) + self.seekSlider.show() + self.onMediaPlay() + + def mediaVolume(self): + """ + Respond to the release of Volume Slider + """ + log.debug(u'SlideController mediaVolume') + self.volume = self.volumeSlider.value() + self.display.videoVolume(self.volume) + + def onMediaPause(self): + """ + Respond to the Pause from the media Toolbar + """ + log.debug(u'SlideController onMediaPause') + if self.isLive: + self.display.videoPause() + else: + self.mediaObject.pause() + + def onMediaPlay(self): + """ + Respond to the Play from the media Toolbar + """ + log.debug(u'SlideController onMediaPlay') + if self.isLive: + self.display.videoPlay() + else: + self.SlidePreview.hide() + self.video.show() + self.mediaObject.play() + + def onMediaStop(self): + """ + Respond to the Stop from the media Toolbar + """ + log.debug(u'SlideController onMediaStop') + if self.isLive: + self.display.videoStop() + else: + self.mediaObject.stop() + self.video.hide() + self.SlidePreview.clear() + self.SlidePreview.show() diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index e07329f87..d7cd08b70 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -1,117 +1,117 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.alerts.lib import AlertsManager, AlertsTab -from openlp.plugins.alerts.lib.db import init_schema -from openlp.plugins.alerts.forms import AlertForm - -log = logging.getLogger(__name__) - -class AlertsPlugin(Plugin): - log.info(u'Alerts Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_strings() - Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) - self.weight = -3 - self.icon = build_icon(u':/plugins/plugin_alerts.png') - self.alertsmanager = AlertsManager(self) - self.manager = Manager(u'alerts', init_schema) - self.alertForm = AlertForm(self) - - def getSettingsTab(self): - """ - Return the settings tab for the Alerts plugin - """ - self.alertsTab = AlertsTab(self) - return self.alertsTab - - def addToolsMenuItem(self, tools_menu): - """ - Give the alerts plugin the opportunity to add items to the - **Tools** menu. - - ``tools_menu`` - The actual **Tools** menu item, so that your actions can - use it as their parent. - """ - log.info(u'add tools menu') - self.toolsAlertItem = QtGui.QAction(tools_menu) - self.toolsAlertItem.setIcon(build_icon(u':/plugins/plugin_alerts.png')) - self.toolsAlertItem.setObjectName(u'toolsAlertItem') - self.toolsAlertItem.setText(translate('AlertsPlugin', '&Alert')) - self.toolsAlertItem.setStatusTip( - translate('AlertsPlugin', 'Show an alert message.')) - self.toolsAlertItem.setShortcut(u'F7') - self.serviceManager.parent.ToolsMenu.addAction(self.toolsAlertItem) - QtCore.QObject.connect(self.toolsAlertItem, - QtCore.SIGNAL(u'triggered()'), self.onAlertsTrigger) - self.toolsAlertItem.setVisible(False) - - def initialise(self): - log.info(u'Alerts Initialising') - Plugin.initialise(self) - self.toolsAlertItem.setVisible(True) - self.liveController.alertTab = self.alertsTab - - def finalise(self): - log.info(u'Alerts Finalising') - Plugin.finalise(self) - self.toolsAlertItem.setVisible(False) - - def toggleAlertsState(self): - self.alertsActive = not self.alertsActive - QtCore.QSettings().setValue(self.settingsSection + u'/active', - QtCore.QVariant(self.alertsActive)) - - def onAlertsTrigger(self): - self.alertForm.loadList() - self.alertForm.exec_() - - def about(self): - about_text = translate('AlertsPlugin', 'Alerts Plugin' - '
The alert plugin controls the displaying of nursery alerts ' - 'on the display screen') - return about_text - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Alerts' - self.name_lower = u'alerts' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('AlertsPlugin', 'Alert'), - u'plural': translate('AlertsPlugin', 'Alerts') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.alerts.lib import AlertsManager, AlertsTab +from openlp.plugins.alerts.lib.db import init_schema +from openlp.plugins.alerts.forms import AlertForm + +log = logging.getLogger(__name__) + +class AlertsPlugin(Plugin): + log.info(u'Alerts Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) + self.weight = -3 + self.icon = build_icon(u':/plugins/plugin_alerts.png') + self.alertsmanager = AlertsManager(self) + self.manager = Manager(u'alerts', init_schema) + self.alertForm = AlertForm(self) + + def getSettingsTab(self): + """ + Return the settings tab for the Alerts plugin + """ + self.alertsTab = AlertsTab(self) + return self.alertsTab + + def addToolsMenuItem(self, tools_menu): + """ + Give the alerts plugin the opportunity to add items to the + **Tools** menu. + + ``tools_menu`` + The actual **Tools** menu item, so that your actions can + use it as their parent. + """ + log.info(u'add tools menu') + self.toolsAlertItem = QtGui.QAction(tools_menu) + self.toolsAlertItem.setIcon(build_icon(u':/plugins/plugin_alerts.png')) + self.toolsAlertItem.setObjectName(u'toolsAlertItem') + self.toolsAlertItem.setText(translate('AlertsPlugin', '&Alert')) + self.toolsAlertItem.setStatusTip( + translate('AlertsPlugin', 'Show an alert message.')) + self.toolsAlertItem.setShortcut(u'F7') + self.serviceManager.parent.ToolsMenu.addAction(self.toolsAlertItem) + QtCore.QObject.connect(self.toolsAlertItem, + QtCore.SIGNAL(u'triggered()'), self.onAlertsTrigger) + self.toolsAlertItem.setVisible(False) + + def initialise(self): + log.info(u'Alerts Initialising') + Plugin.initialise(self) + self.toolsAlertItem.setVisible(True) + self.liveController.alertTab = self.alertsTab + + def finalise(self): + log.info(u'Alerts Finalising') + Plugin.finalise(self) + self.toolsAlertItem.setVisible(False) + + def toggleAlertsState(self): + self.alertsActive = not self.alertsActive + QtCore.QSettings().setValue(self.settingsSection + u'/active', + QtCore.QVariant(self.alertsActive)) + + def onAlertsTrigger(self): + self.alertForm.loadList() + self.alertForm.exec_() + + def about(self): + about_text = translate('AlertsPlugin', 'Alerts Plugin' + '
The alert plugin controls the displaying of nursery alerts ' + 'on the display screen') + return about_text + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Alerts' + self.name_lower = u'alerts' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('AlertsPlugin', 'Alert'), + u'plural': translate('AlertsPlugin', 'Alerts') + } diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index f706a50a3..5bbaf7f1b 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -1,170 +1,170 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem - -log = logging.getLogger(__name__) - -class BiblePlugin(Plugin): - log.info(u'Bible Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_strings() - Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) - self.weight = -9 - self.icon_path = u':/plugins/plugin_bibles.png' - self.icon = build_icon(self.icon_path) - self.manager = None - - def initialise(self): - log.info(u'bibles Initialising') - if self.manager is None: - self.manager = BibleManager(self) - Plugin.initialise(self) - self.importBibleItem.setVisible(True) - self.exportBibleItem.setVisible(True) - - def finalise(self): - log.info(u'Plugin Finalise') - Plugin.finalise(self) - self.importBibleItem.setVisible(False) - self.exportBibleItem.setVisible(False) - - def getSettingsTab(self): - return BiblesTab(self.name) - - def getMediaManagerItem(self): - # Create the BibleManagerItem object. - return BibleMediaItem(self, self.icon, self.name) - - def addImportMenuItem(self, import_menu): - self.importBibleItem = QtGui.QAction(import_menu) - self.importBibleItem.setObjectName(u'importBibleItem') - import_menu.addAction(self.importBibleItem) - self.importBibleItem.setText( - translate('BiblesPlugin', '&Bible')) - # signals and slots - QtCore.QObject.connect(self.importBibleItem, - QtCore.SIGNAL(u'triggered()'), self.onBibleImportClick) - self.importBibleItem.setVisible(False) - - def addExportMenuItem(self, export_menu): - self.exportBibleItem = QtGui.QAction(export_menu) - self.exportBibleItem.setObjectName(u'exportBibleItem') - export_menu.addAction(self.exportBibleItem) - self.exportBibleItem.setText(translate( - 'BiblesPlugin', '&Bible')) - self.exportBibleItem.setVisible(False) - - def onBibleImportClick(self): - if self.mediaItem: - self.mediaItem.onImportClick() - - def about(self): - about_text = translate('BiblesPlugin', 'Bible Plugin' - '
The Bible plugin provides the ability to display bible ' - 'verses from different sources during the service.') - return about_text - - def usesTheme(self, theme): - """ - Called to find out if the bible plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - if self.settings_tab.bible_theme == theme: - return True - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Rename the theme the bible plugin is using making the plugin use the - new name. - - ``oldTheme`` - The name of the theme the plugin should stop using. Unused for - this particular plugin. - - ``newTheme`` - The new name the plugin should now use. - """ - self.settings_tab.bible_theme = newTheme - - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Bibles' - self.name_lower = u'Bibles' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('BiblesPlugin', 'Bible'), - u'plural': translate('BiblesPlugin', 'Bibles') - } - - # Middle Header Bar - ## Import Button ## - self.strings[StringType.Import] = { - u'title': translate('BiblesPlugin', 'Import'), - u'tooltip': translate('BiblesPlugin', 'Import a Bible') - } - ## New Button ## - self.strings[StringType.New] = { - u'title': translate('BiblesPlugin', 'Add'), - u'tooltip': translate('BiblesPlugin', 'Add a new Bible') - } - ## Edit Button ## - self.strings[StringType.Edit] = { - u'title': translate('BiblesPlugin', 'Edit'), - u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') - } - ## Delete Button ## - self.strings[StringType.Delete] = { - u'title': translate('BiblesPlugin', 'Delete'), - u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') - } - ## Preview ## - self.strings[StringType.Preview] = { - u'title': translate('BiblesPlugin', 'Preview'), - u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') - } - ## Live Button ## - self.strings[StringType.Live] = { - u'title': translate('BiblesPlugin', 'Live'), - u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') - } - ## Add to service Button ## - self.strings[StringType.Service] = { - u'title': translate('BiblesPlugin', 'Service'), - u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem + +log = logging.getLogger(__name__) + +class BiblePlugin(Plugin): + log.info(u'Bible Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) + self.weight = -9 + self.icon_path = u':/plugins/plugin_bibles.png' + self.icon = build_icon(self.icon_path) + self.manager = None + + def initialise(self): + log.info(u'bibles Initialising') + if self.manager is None: + self.manager = BibleManager(self) + Plugin.initialise(self) + self.importBibleItem.setVisible(True) + self.exportBibleItem.setVisible(True) + + def finalise(self): + log.info(u'Plugin Finalise') + Plugin.finalise(self) + self.importBibleItem.setVisible(False) + self.exportBibleItem.setVisible(False) + + def getSettingsTab(self): + return BiblesTab(self.name) + + def getMediaManagerItem(self): + # Create the BibleManagerItem object. + return BibleMediaItem(self, self.icon, self.name) + + def addImportMenuItem(self, import_menu): + self.importBibleItem = QtGui.QAction(import_menu) + self.importBibleItem.setObjectName(u'importBibleItem') + import_menu.addAction(self.importBibleItem) + self.importBibleItem.setText( + translate('BiblesPlugin', '&Bible')) + # signals and slots + QtCore.QObject.connect(self.importBibleItem, + QtCore.SIGNAL(u'triggered()'), self.onBibleImportClick) + self.importBibleItem.setVisible(False) + + def addExportMenuItem(self, export_menu): + self.exportBibleItem = QtGui.QAction(export_menu) + self.exportBibleItem.setObjectName(u'exportBibleItem') + export_menu.addAction(self.exportBibleItem) + self.exportBibleItem.setText(translate( + 'BiblesPlugin', '&Bible')) + self.exportBibleItem.setVisible(False) + + def onBibleImportClick(self): + if self.mediaItem: + self.mediaItem.onImportClick() + + def about(self): + about_text = translate('BiblesPlugin', 'Bible Plugin' + '
The Bible plugin provides the ability to display bible ' + 'verses from different sources during the service.') + return about_text + + def usesTheme(self, theme): + """ + Called to find out if the bible plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + if self.settings_tab.bible_theme == theme: + return True + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Rename the theme the bible plugin is using making the plugin use the + new name. + + ``oldTheme`` + The name of the theme the plugin should stop using. Unused for + this particular plugin. + + ``newTheme`` + The new name the plugin should now use. + """ + self.settings_tab.bible_theme = newTheme + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Bibles' + self.name_lower = u'Bibles' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('BiblesPlugin', 'Bible'), + u'plural': translate('BiblesPlugin', 'Bibles') + } + + # Middle Header Bar + ## Import Button ## + self.strings[StringType.Import] = { + u'title': translate('BiblesPlugin', 'Import'), + u'tooltip': translate('BiblesPlugin', 'Import a Bible') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('BiblesPlugin', 'Add'), + u'tooltip': translate('BiblesPlugin', 'Add a new Bible') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('BiblesPlugin', 'Edit'), + u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('BiblesPlugin', 'Delete'), + u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('BiblesPlugin', 'Preview'), + u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('BiblesPlugin', 'Live'), + u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('BiblesPlugin', 'Service'), + u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') + } diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index e387369ee..d61e2f09c 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -1,154 +1,154 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 forms import EditCustomForm - -from openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.custom.lib import CustomMediaItem, CustomTab -from openlp.plugins.custom.lib.db import CustomSlide, init_schema - -log = logging.getLogger(__name__) - -class CustomPlugin(Plugin): - """ - This plugin enables the user to create, edit and display - custom slide shows. Custom shows are divided into slides. - Each show is able to have it's own theme. - Custom shows are designed to replace the use of Customs where - the Customs plugin has become restrictive. Examples could be - Welcome slides, Bible Reading information, Orders of service. - """ - log.info(u'Custom Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_strings() - Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) - self.weight = -5 - self.custommanager = Manager(u'custom', init_schema) - self.edit_custom_form = EditCustomForm(self.custommanager) - self.icon_path = u':/plugins/plugin_custom.png' - self.icon = build_icon(self.icon_path) - - def getSettingsTab(self): - return CustomTab(self.name) - - def getMediaManagerItem(self): - # Create the CustomManagerItem object - return CustomMediaItem(self, self.icon, self.name) - - def about(self): - about_text = translate('CustomPlugin', 'Custom Plugin' - '
The custom plugin provides the ability to set up custom ' - 'text slides that can be displayed on the screen the same way ' - 'Customs are. This plugin provides greater freedom over the Customs ' - 'plugin.') - return about_text - - def usesTheme(self, theme): - """ - Called to find out if the custom plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - if self.custommanager.get_all_objects(CustomSlide, - CustomSlide.theme_name == theme): - return True - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Renames a theme the custom plugin is using making the plugin use the - new name. - - ``oldTheme`` - The name of the theme the plugin should stop using. - - ``newTheme`` - The new name the plugin should now use. - """ - customsUsingTheme = self.custommanager.get_all_objects(CustomSlide, - CustomSlide.theme_name == oldTheme) - for custom in customsUsingTheme: - custom.theme_name = newTheme - self.custommanager.save_object(custom) - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Custom' - self.name_lower = u'custom' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('CustomsPlugin', 'Custom'), - u'plural': translate('CustomsPlugin', 'Customs') - } - - # Middle Header Bar - ## Import Button ## - self.strings[StringType.Import] = { - u'title': translate('CustomsPlugin', 'Import'), - u'tooltip': translate('CustomsPlugin', 'Import a Custom') - } - ## Load Button ## - self.strings[StringType.Load] = { - u'title': translate('CustomsPlugin', 'Load'), - u'tooltip': translate('CustomsPlugin', 'Load a new Custom') - } - ## New Button ## - self.strings[StringType.New] = { - u'title': translate('CustomsPlugin', 'Add'), - u'tooltip': translate('CustomsPlugin', 'Add a new Custom') - } - ## Edit Button ## - self.strings[StringType.Edit] = { - u'title': translate('CustomsPlugin', 'Edit'), - u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') - } - ## Delete Button ## - self.strings[StringType.Delete] = { - u'title': translate('CustomsPlugin', 'Delete'), - u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') - } - ## Preview ## - self.strings[StringType.Preview] = { - u'title': translate('CustomsPlugin', 'Preview'), - u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') - } - ## Live Button ## - self.strings[StringType.Live] = { - u'title': translate('CustomsPlugin', 'Live'), - u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') - } - ## Add to service Button ## - self.strings[StringType.Service] = { - u'title': translate('CustomsPlugin', 'Service'), - u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 forms import EditCustomForm + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.custom.lib import CustomMediaItem, CustomTab +from openlp.plugins.custom.lib.db import CustomSlide, init_schema + +log = logging.getLogger(__name__) + +class CustomPlugin(Plugin): + """ + This plugin enables the user to create, edit and display + custom slide shows. Custom shows are divided into slides. + Each show is able to have it's own theme. + Custom shows are designed to replace the use of Customs where + the Customs plugin has become restrictive. Examples could be + Welcome slides, Bible Reading information, Orders of service. + """ + log.info(u'Custom Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) + self.weight = -5 + self.custommanager = Manager(u'custom', init_schema) + self.edit_custom_form = EditCustomForm(self.custommanager) + self.icon_path = u':/plugins/plugin_custom.png' + self.icon = build_icon(self.icon_path) + + def getSettingsTab(self): + return CustomTab(self.name) + + def getMediaManagerItem(self): + # Create the CustomManagerItem object + return CustomMediaItem(self, self.icon, self.name) + + def about(self): + about_text = translate('CustomPlugin', 'Custom Plugin' + '
The custom plugin provides the ability to set up custom ' + 'text slides that can be displayed on the screen the same way ' + 'Customs are. This plugin provides greater freedom over the Customs ' + 'plugin.') + return about_text + + def usesTheme(self, theme): + """ + Called to find out if the custom plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + if self.custommanager.get_all_objects(CustomSlide, + CustomSlide.theme_name == theme): + return True + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Renames a theme the custom plugin is using making the plugin use the + new name. + + ``oldTheme`` + The name of the theme the plugin should stop using. + + ``newTheme`` + The new name the plugin should now use. + """ + customsUsingTheme = self.custommanager.get_all_objects(CustomSlide, + CustomSlide.theme_name == oldTheme) + for custom in customsUsingTheme: + custom.theme_name = newTheme + self.custommanager.save_object(custom) + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Custom' + self.name_lower = u'custom' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('CustomsPlugin', 'Custom'), + u'plural': translate('CustomsPlugin', 'Customs') + } + + # Middle Header Bar + ## Import Button ## + self.strings[StringType.Import] = { + u'title': translate('CustomsPlugin', 'Import'), + u'tooltip': translate('CustomsPlugin', 'Import a Custom') + } + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('CustomsPlugin', 'Load'), + u'tooltip': translate('CustomsPlugin', 'Load a new Custom') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('CustomsPlugin', 'Add'), + u'tooltip': translate('CustomsPlugin', 'Add a new Custom') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('CustomsPlugin', 'Edit'), + u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('CustomsPlugin', 'Delete'), + u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('CustomsPlugin', 'Preview'), + u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('CustomsPlugin', 'Live'), + u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('CustomsPlugin', 'Service'), + u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') + } diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 0f2f08e26..3aa981681 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -1,111 +1,111 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.plugins.images.lib import ImageMediaItem - -log = logging.getLogger(__name__) - -class ImagePlugin(Plugin): - log.info(u'Image Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_strings() - Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) - self.weight = -7 - self.icon_path = u':/plugins/plugin_images.png' - self.icon = build_icon(self.icon_path) - - def getMediaManagerItem(self): - # Create the MediaManagerItem object - return ImageMediaItem(self, self.icon, self.name) - - def about(self): - about_text = translate('ImagePlugin', 'Image Plugin' - '
The image plugin provides displaying of images.
One ' - 'of the distinguishing features of this plugin is the ability to ' - 'group a number of images together in the service manager, making ' - 'the displaying of multiple images easier. This plugin can also ' - 'make use of OpenLP\'s "timed looping" feature to create a slide ' - 'show that runs automatically. In addition to this, images from ' - 'the plugin can be used to override the current theme\'s ' - 'background, which renders text-based items like Images with the ' - 'selected image as a background instead of the background ' - 'provided by the theme.') - return about_text - # rimach - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Images' - self.name_lower = u'images' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('ImagePlugin', 'Image'), - u'plural': translate('ImagePlugin', 'Images') - } - - # Middle Header Bar - ## Load Button ## - self.strings[StringType.Load] = { - u'title': translate('ImagePlugin', 'Load'), - u'tooltip': translate('ImagePlugin', 'Load a new Image') - } - ## New Button ## - self.strings[StringType.New] = { - u'title': translate('ImagePlugin', 'Add'), - u'tooltip': translate('ImagePlugin', 'Add a new Image') - } - ## Edit Button ## - self.strings[StringType.Edit] = { - u'title': translate('ImagePlugin', 'Edit'), - u'tooltip': translate('ImagePlugin', 'Edit the selected Image') - } - ## Delete Button ## - self.strings[StringType.Delete] = { - u'title': translate('ImagePlugin', 'Delete'), - u'tooltip': translate('ImagePlugin', 'Delete the selected Image') - } - ## Preview ## - self.strings[StringType.Preview] = { - u'title': translate('ImagePlugin', 'Preview'), - u'tooltip': translate('ImagePlugin', 'Preview the selected Image') - } - ## Live Button ## - self.strings[StringType.Live] = { - u'title': translate('ImagePlugin', 'Live'), - u'tooltip': translate('ImagePlugin', 'Send the selected Image live') - } - ## Add to service Button ## - self.strings[StringType.Service] = { - u'title': translate('ImagePlugin', 'Service'), - u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.plugins.images.lib import ImageMediaItem + +log = logging.getLogger(__name__) + +class ImagePlugin(Plugin): + log.info(u'Image Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) + self.weight = -7 + self.icon_path = u':/plugins/plugin_images.png' + self.icon = build_icon(self.icon_path) + + def getMediaManagerItem(self): + # Create the MediaManagerItem object + return ImageMediaItem(self, self.icon, self.name) + + def about(self): + about_text = translate('ImagePlugin', 'Image Plugin' + '
The image plugin provides displaying of images.
One ' + 'of the distinguishing features of this plugin is the ability to ' + 'group a number of images together in the service manager, making ' + 'the displaying of multiple images easier. This plugin can also ' + 'make use of OpenLP\'s "timed looping" feature to create a slide ' + 'show that runs automatically. In addition to this, images from ' + 'the plugin can be used to override the current theme\'s ' + 'background, which renders text-based items like Images with the ' + 'selected image as a background instead of the background ' + 'provided by the theme.') + return about_text + # rimach + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Images' + self.name_lower = u'images' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('ImagePlugin', 'Image'), + u'plural': translate('ImagePlugin', 'Images') + } + + # Middle Header Bar + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('ImagePlugin', 'Load'), + u'tooltip': translate('ImagePlugin', 'Load a new Image') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('ImagePlugin', 'Add'), + u'tooltip': translate('ImagePlugin', 'Add a new Image') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('ImagePlugin', 'Edit'), + u'tooltip': translate('ImagePlugin', 'Edit the selected Image') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('ImagePlugin', 'Delete'), + u'tooltip': translate('ImagePlugin', 'Delete the selected Image') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('ImagePlugin', 'Preview'), + u'tooltip': translate('ImagePlugin', 'Preview the selected Image') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('ImagePlugin', 'Live'), + u'tooltip': translate('ImagePlugin', 'Send the selected Image live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('ImagePlugin', 'Service'), + u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') + } diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 0ffa8cfbd..6c8a2eaea 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -1,129 +1,129 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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.phonon import Phonon - -from openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.plugins.media.lib import MediaMediaItem - -log = logging.getLogger(__name__) - -class MediaPlugin(Plugin): - log.info(u'%s MediaPlugin loaded', __name__) - - def __init__(self, plugin_helpers): - self.set_plugin_strings() - Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) - self.weight = -6 - self.icon_path = u':/plugins/plugin_media.png' - self.icon = build_icon(self.icon_path) - # passed with drag and drop messages - self.dnd_id = u'Media' - self.audio_list = u'' - self.video_list = u'' - for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): - mimetype = unicode(mimetype) - type = mimetype.split(u'audio/x-') - self.audio_list, mimetype = self._addToList(self.audio_list, - type, mimetype) - type = mimetype.split(u'audio/') - self.audio_list, mimetype = self._addToList(self.audio_list, - type, mimetype) - type = mimetype.split(u'video/x-') - self.video_list, mimetype = self._addToList(self.video_list, - type, mimetype) - type = mimetype.split(u'video/') - self.video_list, mimetype = self._addToList(self.video_list, - type, mimetype) - - def _addToList(self, list, value, type): - if len(value) == 2: - if list.find(value[1]) == -1: - list += u'*.%s ' % value[1] - self.serviceManager.supportedSuffixes(value[1]) - type = u'' - return list, type - - def getMediaManagerItem(self): - # Create the MediaManagerItem object - return MediaMediaItem(self, self.icon, self.name) - - def about(self): - about_text = translate('MediaPlugin', 'Media Plugin' - '
The media plugin provides playback of audio and video.') - return about_text - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Media' - self.name_lower = u'media' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('MediaPlugin', 'Media'), - u'plural': translate('MediaPlugin', 'Medias') - } - - # Middle Header Bar - ## Load Button ## - self.strings[StringType.Load] = { - u'title': translate('MediaPlugin', 'Load'), - u'tooltip': translate('MediaPlugin', 'Load a new Media') - } - ## New Button ## - self.strings[StringType.New] = { - u'title': translate('MediaPlugin', 'Add'), - u'tooltip': translate('MediaPlugin', 'Add a new Media') - } - ## Edit Button ## - self.strings[StringType.Edit] = { - u'title': translate('MediaPlugin', 'Edit'), - u'tooltip': translate('MediaPlugin', 'Edit the selected Media') - } - ## Delete Button ## - self.strings[StringType.Delete] = { - u'title': translate('MediaPlugin', 'Delete'), - u'tooltip': translate('MediaPlugin', 'Delete the selected Media') - } - ## Preview ## - self.strings[StringType.Preview] = { - u'title': translate('MediaPlugin', 'Preview'), - u'tooltip': translate('MediaPlugin', 'Preview the selected Media') - } - ## Live Button ## - self.strings[StringType.Live] = { - u'title': translate('MediaPlugin', 'Live'), - u'tooltip': translate('MediaPlugin', 'Send the selected Media live') - } - ## Add to service Button ## - self.strings[StringType.Service] = { - u'title': translate('MediaPlugin', 'Service'), - u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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.phonon import Phonon + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.plugins.media.lib import MediaMediaItem + +log = logging.getLogger(__name__) + +class MediaPlugin(Plugin): + log.info(u'%s MediaPlugin loaded', __name__) + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) + self.weight = -6 + self.icon_path = u':/plugins/plugin_media.png' + self.icon = build_icon(self.icon_path) + # passed with drag and drop messages + self.dnd_id = u'Media' + self.audio_list = u'' + self.video_list = u'' + for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): + mimetype = unicode(mimetype) + type = mimetype.split(u'audio/x-') + self.audio_list, mimetype = self._addToList(self.audio_list, + type, mimetype) + type = mimetype.split(u'audio/') + self.audio_list, mimetype = self._addToList(self.audio_list, + type, mimetype) + type = mimetype.split(u'video/x-') + self.video_list, mimetype = self._addToList(self.video_list, + type, mimetype) + type = mimetype.split(u'video/') + self.video_list, mimetype = self._addToList(self.video_list, + type, mimetype) + + def _addToList(self, list, value, type): + if len(value) == 2: + if list.find(value[1]) == -1: + list += u'*.%s ' % value[1] + self.serviceManager.supportedSuffixes(value[1]) + type = u'' + return list, type + + def getMediaManagerItem(self): + # Create the MediaManagerItem object + return MediaMediaItem(self, self.icon, self.name) + + def about(self): + about_text = translate('MediaPlugin', 'Media Plugin' + '
The media plugin provides playback of audio and video.') + return about_text + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Media' + self.name_lower = u'media' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('MediaPlugin', 'Media'), + u'plural': translate('MediaPlugin', 'Medias') + } + + # Middle Header Bar + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('MediaPlugin', 'Load'), + u'tooltip': translate('MediaPlugin', 'Load a new Media') + } + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('MediaPlugin', 'Add'), + u'tooltip': translate('MediaPlugin', 'Add a new Media') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('MediaPlugin', 'Edit'), + u'tooltip': translate('MediaPlugin', 'Edit the selected Media') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('MediaPlugin', 'Delete'), + u'tooltip': translate('MediaPlugin', 'Delete the selected Media') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('MediaPlugin', 'Preview'), + u'tooltip': translate('MediaPlugin', 'Preview the selected Media') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('MediaPlugin', 'Live'), + u'tooltip': translate('MediaPlugin', 'Send the selected Media live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('MediaPlugin', 'Service'), + u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') + } diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index e3df350d8..d53931e28 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -1,187 +1,187 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -The :mod:`presentationplugin` module provides the ability for OpenLP to display -presentations from a variety of document formats. -""" -import os -import logging - -from openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.core.utils import AppLocation -from openlp.plugins.presentations.lib import PresentationController, \ - PresentationMediaItem, PresentationTab - -log = logging.getLogger(__name__) - -class PresentationPlugin(Plugin): - """ - This plugin allowed a Presentation to be opened, controlled and displayed - on the output display. The plugin controls third party applications such - as OpenOffice.org Impress, Microsoft PowerPoint and the PowerPoint viewer - """ - log = logging.getLogger(u'PresentationPlugin') - - def __init__(self, plugin_helpers): - """ - PluginPresentation constructor. - """ - log.debug(u'Initialised') - self.controllers = {} - self.set_plugin_strings() - Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) - self.weight = -8 - self.icon_path = u':/plugins/plugin_presentations.png' - self.icon = build_icon(self.icon_path) - - def getSettingsTab(self): - """ - Create the settings Tab - """ - return PresentationTab(self.name, self.controllers) - - def initialise(self): - """ - Initialise the plugin. Determine which controllers are enabled - are start their processes. - """ - log.info(u'Presentations Initialising') - Plugin.initialise(self) - self.insertToolboxItem() - for controller in self.controllers: - if self.controllers[controller].enabled(): - self.controllers[controller].start_process() - self.mediaItem.buildFileMaskString() - - def finalise(self): - """ - Finalise the plugin. Ask all the enabled presentation applications - to close down their applications and release resources. - """ - log.info(u'Plugin Finalise') - #Ask each controller to tidy up - for key in self.controllers: - controller = self.controllers[key] - if controller.enabled(): - controller.kill() - Plugin.finalise(self) - - def getMediaManagerItem(self): - """ - Create the Media Manager List - """ - return PresentationMediaItem( - self, self.icon, self.name, self.controllers) - - def registerControllers(self, controller): - """ - Register each presentation controller (Impress, PPT etc) and - store for later use - """ - self.controllers[controller.name] = controller - - def checkPreConditions(self): - """ - Check to see if we have any presentation software available - If Not do not install the plugin. - """ - log.debug(u'checkPreConditions') - controller_dir = os.path.join( - AppLocation.get_directory(AppLocation.PluginsDir), - u'presentations', u'lib') - for filename in os.listdir(controller_dir): - if filename.endswith(u'controller.py') and \ - not filename == 'presentationcontroller.py': - path = os.path.join(controller_dir, filename) - if os.path.isfile(path): - modulename = u'openlp.plugins.presentations.lib.' + \ - os.path.splitext(filename)[0] - log.debug(u'Importing controller %s', modulename) - try: - __import__(modulename, globals(), locals(), []) - except ImportError: - log.exception(u'Failed to import %s on path %s', - modulename, path) - controller_classes = PresentationController.__subclasses__() - for controller_class in controller_classes: - controller = controller_class(self) - self.registerControllers(controller) - if self.controllers: - return True - else: - return False - - def about(self): - """ - Return information about this plugin - """ - about_text = translate('PresentationPlugin', 'Presentation ' - 'Plugin
The presentation plugin provides 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.') - return about_text - - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Presentations' - self.name_lower = u'presentations' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('PresentationPlugin', 'Presentation'), - u'plural': translate('PresentationPlugin', 'Presentations') - } - - # Middle Header Bar - ## Load Button ## - self.strings[StringType.Load] = { - u'title': translate('PresentationPlugin', 'Load'), - u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') - } - ## Delete Button ## - self.strings[StringType.Delete] = { - u'title': translate('PresentationPlugin', 'Delete'), - u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') - } - ## Preview ## - self.strings[StringType.Preview] = { - u'title': translate('PresentationPlugin', 'Preview'), - u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') - } - ## Live Button ## - self.strings[StringType.Live] = { - u'title': translate('PresentationPlugin', 'Live'), - u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') - } - ## Add to service Button ## - self.strings[StringType.Service] = { - u'title': translate('PresentationPlugin', 'Service'), - u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +The :mod:`presentationplugin` module provides the ability for OpenLP to display +presentations from a variety of document formats. +""" +import os +import logging + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.utils import AppLocation +from openlp.plugins.presentations.lib import PresentationController, \ + PresentationMediaItem, PresentationTab + +log = logging.getLogger(__name__) + +class PresentationPlugin(Plugin): + """ + This plugin allowed a Presentation to be opened, controlled and displayed + on the output display. The plugin controls third party applications such + as OpenOffice.org Impress, Microsoft PowerPoint and the PowerPoint viewer + """ + log = logging.getLogger(u'PresentationPlugin') + + def __init__(self, plugin_helpers): + """ + PluginPresentation constructor. + """ + log.debug(u'Initialised') + self.controllers = {} + self.set_plugin_strings() + Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) + self.weight = -8 + self.icon_path = u':/plugins/plugin_presentations.png' + self.icon = build_icon(self.icon_path) + + def getSettingsTab(self): + """ + Create the settings Tab + """ + return PresentationTab(self.name, self.controllers) + + def initialise(self): + """ + Initialise the plugin. Determine which controllers are enabled + are start their processes. + """ + log.info(u'Presentations Initialising') + Plugin.initialise(self) + self.insertToolboxItem() + for controller in self.controllers: + if self.controllers[controller].enabled(): + self.controllers[controller].start_process() + self.mediaItem.buildFileMaskString() + + def finalise(self): + """ + Finalise the plugin. Ask all the enabled presentation applications + to close down their applications and release resources. + """ + log.info(u'Plugin Finalise') + #Ask each controller to tidy up + for key in self.controllers: + controller = self.controllers[key] + if controller.enabled(): + controller.kill() + Plugin.finalise(self) + + def getMediaManagerItem(self): + """ + Create the Media Manager List + """ + return PresentationMediaItem( + self, self.icon, self.name, self.controllers) + + def registerControllers(self, controller): + """ + Register each presentation controller (Impress, PPT etc) and + store for later use + """ + self.controllers[controller.name] = controller + + def checkPreConditions(self): + """ + Check to see if we have any presentation software available + If Not do not install the plugin. + """ + log.debug(u'checkPreConditions') + controller_dir = os.path.join( + AppLocation.get_directory(AppLocation.PluginsDir), + u'presentations', u'lib') + for filename in os.listdir(controller_dir): + if filename.endswith(u'controller.py') and \ + not filename == 'presentationcontroller.py': + path = os.path.join(controller_dir, filename) + if os.path.isfile(path): + modulename = u'openlp.plugins.presentations.lib.' + \ + os.path.splitext(filename)[0] + log.debug(u'Importing controller %s', modulename) + try: + __import__(modulename, globals(), locals(), []) + except ImportError: + log.exception(u'Failed to import %s on path %s', + modulename, path) + controller_classes = PresentationController.__subclasses__() + for controller_class in controller_classes: + controller = controller_class(self) + self.registerControllers(controller) + if self.controllers: + return True + else: + return False + + def about(self): + """ + Return information about this plugin + """ + about_text = translate('PresentationPlugin', 'Presentation ' + 'Plugin
The presentation plugin provides 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.') + return about_text + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Presentations' + self.name_lower = u'presentations' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('PresentationPlugin', 'Presentation'), + u'plural': translate('PresentationPlugin', 'Presentations') + } + + # Middle Header Bar + ## Load Button ## + self.strings[StringType.Load] = { + u'title': translate('PresentationPlugin', 'Load'), + u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('PresentationPlugin', 'Delete'), + u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('PresentationPlugin', 'Preview'), + u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('PresentationPlugin', 'Live'), + u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('PresentationPlugin', 'Service'), + u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') + } diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index bf42c6d57..088e47fc7 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -1,93 +1,93 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 openlp.core.lib import Plugin, StringType, translate, build_icon -from openlp.plugins.remotes.lib import RemoteTab, HttpServer - -log = logging.getLogger(__name__) - -class RemotesPlugin(Plugin): - log.info(u'Remote Plugin loaded') - - def __init__(self, plugin_helpers): - """ - remotes constructor - """ - self.set_plugin_strings() - Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) - self.icon = build_icon(u':/plugins/plugin_remote.png') - self.weight = -1 - self.server = None - - def initialise(self): - """ - Initialise the remotes plugin, and start the http server - """ - log.debug(u'initialise') - Plugin.initialise(self) - self.insertToolboxItem() - self.server = HttpServer(self) - - def finalise(self): - """ - Tidy up and close down the http server - """ - log.debug(u'finalise') - Plugin.finalise(self) - if self.server: - self.server.close() - - def getSettingsTab(self): - """ - Create the settings Tab - """ - return RemoteTab(self.name) - - def about(self): - """ - Information about this plugin - """ - about_text = translate('RemotePlugin', 'Remote Plugin' - '
The remote plugin provides the ability to send messages to ' - 'a running version of OpenLP on a different computer via a web ' - 'browser or through the remote API.') - return about_text - - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Remotes' - self.name_lower = u'remotes' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('RemotePlugin', 'Remote'), - u'plural': translate('RemotePlugin', 'Remotes') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 openlp.core.lib import Plugin, StringType, translate, build_icon +from openlp.plugins.remotes.lib import RemoteTab, HttpServer + +log = logging.getLogger(__name__) + +class RemotesPlugin(Plugin): + log.info(u'Remote Plugin loaded') + + def __init__(self, plugin_helpers): + """ + remotes constructor + """ + self.set_plugin_strings() + Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) + self.icon = build_icon(u':/plugins/plugin_remote.png') + self.weight = -1 + self.server = None + + def initialise(self): + """ + Initialise the remotes plugin, and start the http server + """ + log.debug(u'initialise') + Plugin.initialise(self) + self.insertToolboxItem() + self.server = HttpServer(self) + + def finalise(self): + """ + Tidy up and close down the http server + """ + log.debug(u'finalise') + Plugin.finalise(self) + if self.server: + self.server.close() + + def getSettingsTab(self): + """ + Create the settings Tab + """ + return RemoteTab(self.name) + + def about(self): + """ + Information about this plugin + """ + about_text = translate('RemotePlugin', 'Remote Plugin' + '
The remote plugin provides the ability to send messages to ' + 'a running version of OpenLP on a different computer via a web ' + 'browser or through the remote API.') + return about_text + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Remotes' + self.name_lower = u'remotes' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('RemotePlugin', 'Remote'), + u'plural': translate('RemotePlugin', 'Remotes') + } diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 839a42b8f..54d85083a 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -1,196 +1,196 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 - -from openlp.core.lib import Plugin, StringType, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.songs.lib import SongMediaItem, SongsTab -from openlp.plugins.songs.lib.db import init_schema, Song -from openlp.plugins.songs.lib.importer import SongFormat - -log = logging.getLogger(__name__) - -class SongsPlugin(Plugin): - """ - This is the number 1 plugin, if importance were placed on any - plugins. This plugin enables the user to create, edit and display - songs. Songs are divided into verses, and the verse order can be - specified. Authors, topics and song books can be assigned to songs - as well. - """ - log.info(u'Song Plugin loaded') - - def __init__(self, plugin_helpers): - """ - Create and set up the Songs plugin. - """ - self.set_plugin_strings() - Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) - self.weight = -10 - self.manager = Manager(u'songs', init_schema) - self.icon_path = u':/plugins/plugin_songs.png' - self.icon = build_icon(self.icon_path) - - def getSettingsTab(self): - return SongsTab(self.name) - - def initialise(self): - log.info(u'Songs Initialising') - Plugin.initialise(self) - self.mediaItem.displayResultsSong( - self.manager.get_all_objects(Song, order_by_ref=Song.title)) - - def getMediaManagerItem(self): - """ - Create the MediaManagerItem object, which is displaed in the - Media Manager. - """ - return SongMediaItem(self, self.icon, self.name) - - def addImportMenuItem(self, import_menu): - """ - Give the Songs plugin the opportunity to add items to the - **Import** menu. - - ``import_menu`` - The actual **Import** menu item, so that your actions can - use it as their parent. - """ - # Main song import menu item - will eventually be the only one - self.SongImportItem = QtGui.QAction(import_menu) - self.SongImportItem.setObjectName(u'SongImportItem') - self.SongImportItem.setText(translate( - 'SongsPlugin', '&Song')) - self.SongImportItem.setToolTip(translate('SongsPlugin', - 'Import songs using the import wizard.')) - import_menu.addAction(self.SongImportItem) - # Signals and slots - QtCore.QObject.connect(self.SongImportItem, - QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked) - - def addExportMenuItem(self, export_menu): - """ - Give the Songs plugin the opportunity to add items to the - **Export** menu. - - ``export_menu`` - The actual **Export** menu item, so that your actions can - use it as their parent. - """ - # No menu items for now. - pass - - def onSongImportItemClicked(self): - if self.mediaItem: - self.mediaItem.onImportClick() - - def about(self): - about_text = translate('SongsPlugin', 'Songs Plugin' - '
The songs plugin provides the ability to display and ' - 'manage songs.') - return about_text - - def usesTheme(self, theme): - """ - Called to find out if the song plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - if self.manager.get_all_objects(Song, Song.theme_name == theme): - return True - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Renames a theme the song plugin is using making the plugin use the new - name. - - ``oldTheme`` - The name of the theme the plugin should stop using. - - ``newTheme`` - The new name the plugin should now use. - """ - songsUsingTheme = self.manager.get_all_objects(Song, - Song.theme_name == oldTheme) - for song in songsUsingTheme: - song.theme_name = newTheme - self.custommanager.save_object(song) - - def importSongs(self, format, **kwargs): - class_ = SongFormat.get_class(format) - importer = class_(self.manager, **kwargs) - importer.register(self.mediaItem.import_wizard) - return importer - - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Songs' - self.name_lower = u'songs' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('SongsPlugin', 'Song'), - u'plural': translate('SongsPlugin', 'Songs') - } - - # Middle Header Bar - ## New Button ## - self.strings[StringType.New] = { - u'title': translate('SongsPlugin', 'Add'), - u'tooltip': translate('SongsPlugin', 'Add a new Song') - } - ## Edit Button ## - self.strings[StringType.Edit] = { - u'title': translate('SongsPlugin', 'Edit'), - u'tooltip': translate('SongsPlugin', 'Edit the selected Song') - } - ## Delete Button ## - self.strings[StringType.Delete] = { - u'title': translate('SongsPlugin', 'Delete'), - u'tooltip': translate('SongsPlugin', 'Delete the selected Song') - } - ## Preview ## - self.strings[StringType.Preview] = { - u'title': translate('SongsPlugin', 'Preview'), - u'tooltip': translate('SongsPlugin', 'Preview the selected Song') - } - ## Live Button ## - self.strings[StringType.Live] = { - u'title': translate('SongsPlugin', 'Live'), - u'tooltip': translate('SongsPlugin', 'Send the selected Song live') - } - ## Add to service Button ## - self.strings[StringType.Service] = { - u'title': translate('SongsPlugin', 'Service'), - u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 + +from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.songs.lib import SongMediaItem, SongsTab +from openlp.plugins.songs.lib.db import init_schema, Song +from openlp.plugins.songs.lib.importer import SongFormat + +log = logging.getLogger(__name__) + +class SongsPlugin(Plugin): + """ + This is the number 1 plugin, if importance were placed on any + plugins. This plugin enables the user to create, edit and display + songs. Songs are divided into verses, and the verse order can be + specified. Authors, topics and song books can be assigned to songs + as well. + """ + log.info(u'Song Plugin loaded') + + def __init__(self, plugin_helpers): + """ + Create and set up the Songs plugin. + """ + self.set_plugin_strings() + Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) + self.weight = -10 + self.manager = Manager(u'songs', init_schema) + self.icon_path = u':/plugins/plugin_songs.png' + self.icon = build_icon(self.icon_path) + + def getSettingsTab(self): + return SongsTab(self.name) + + def initialise(self): + log.info(u'Songs Initialising') + Plugin.initialise(self) + self.mediaItem.displayResultsSong( + self.manager.get_all_objects(Song, order_by_ref=Song.title)) + + def getMediaManagerItem(self): + """ + Create the MediaManagerItem object, which is displaed in the + Media Manager. + """ + return SongMediaItem(self, self.icon, self.name) + + def addImportMenuItem(self, import_menu): + """ + Give the Songs plugin the opportunity to add items to the + **Import** menu. + + ``import_menu`` + The actual **Import** menu item, so that your actions can + use it as their parent. + """ + # Main song import menu item - will eventually be the only one + self.SongImportItem = QtGui.QAction(import_menu) + self.SongImportItem.setObjectName(u'SongImportItem') + self.SongImportItem.setText(translate( + 'SongsPlugin', '&Song')) + self.SongImportItem.setToolTip(translate('SongsPlugin', + 'Import songs using the import wizard.')) + import_menu.addAction(self.SongImportItem) + # Signals and slots + QtCore.QObject.connect(self.SongImportItem, + QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked) + + def addExportMenuItem(self, export_menu): + """ + Give the Songs plugin the opportunity to add items to the + **Export** menu. + + ``export_menu`` + The actual **Export** menu item, so that your actions can + use it as their parent. + """ + # No menu items for now. + pass + + def onSongImportItemClicked(self): + if self.mediaItem: + self.mediaItem.onImportClick() + + def about(self): + about_text = translate('SongsPlugin', 'Songs Plugin' + '
The songs plugin provides the ability to display and ' + 'manage songs.') + return about_text + + def usesTheme(self, theme): + """ + Called to find out if the song plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + if self.manager.get_all_objects(Song, Song.theme_name == theme): + return True + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Renames a theme the song plugin is using making the plugin use the new + name. + + ``oldTheme`` + The name of the theme the plugin should stop using. + + ``newTheme`` + The new name the plugin should now use. + """ + songsUsingTheme = self.manager.get_all_objects(Song, + Song.theme_name == oldTheme) + for song in songsUsingTheme: + song.theme_name = newTheme + self.custommanager.save_object(song) + + def importSongs(self, format, **kwargs): + class_ = SongFormat.get_class(format) + importer = class_(self.manager, **kwargs) + importer.register(self.mediaItem.import_wizard) + return importer + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Songs' + self.name_lower = u'songs' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('SongsPlugin', 'Song'), + u'plural': translate('SongsPlugin', 'Songs') + } + + # Middle Header Bar + ## New Button ## + self.strings[StringType.New] = { + u'title': translate('SongsPlugin', 'Add'), + u'tooltip': translate('SongsPlugin', 'Add a new Song') + } + ## Edit Button ## + self.strings[StringType.Edit] = { + u'title': translate('SongsPlugin', 'Edit'), + u'tooltip': translate('SongsPlugin', 'Edit the selected Song') + } + ## Delete Button ## + self.strings[StringType.Delete] = { + u'title': translate('SongsPlugin', 'Delete'), + u'tooltip': translate('SongsPlugin', 'Delete the selected Song') + } + ## Preview ## + self.strings[StringType.Preview] = { + u'title': translate('SongsPlugin', 'Preview'), + u'tooltip': translate('SongsPlugin', 'Preview the selected Song') + } + ## Live Button ## + self.strings[StringType.Live] = { + u'title': translate('SongsPlugin', 'Live'), + u'tooltip': translate('SongsPlugin', 'Send the selected Song live') + } + ## Add to service Button ## + self.strings[StringType.Service] = { + u'title': translate('SongsPlugin', 'Service'), + u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') + } diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index ac9007e6e..2a734e830 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -1,179 +1,179 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 datetime import datetime - -from PyQt4 import QtCore, QtGui - -from openlp.core.lib import Plugin, StringType, Receiver, build_icon, translate -from openlp.core.lib.db import Manager -from openlp.plugins.songusage.forms import SongUsageDetailForm, \ - SongUsageDeleteForm -from openlp.plugins.songusage.lib.db import init_schema, SongUsageItem - -log = logging.getLogger(__name__) - -class SongUsagePlugin(Plugin): - log.info(u'SongUsage Plugin loaded') - - def __init__(self, plugin_helpers): - self.set_plugin_strings() - Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) - self.weight = -4 - self.icon = build_icon(u':/plugins/plugin_songusage.png') - self.songusagemanager = None - self.songusageActive = False - - def addToolsMenuItem(self, tools_menu): - """ - Give the SongUsage plugin the opportunity to add items to the - **Tools** menu. - - ``tools_menu`` - The actual **Tools** menu item, so that your actions can - use it as their parent. - """ - log.info(u'add tools menu') - self.toolsMenu = tools_menu - self.SongUsageMenu = QtGui.QMenu(tools_menu) - self.SongUsageMenu.setObjectName(u'SongUsageMenu') - self.SongUsageMenu.setTitle(translate( - 'SongUsagePlugin', '&Song Usage Tracking')) - #SongUsage Delete - self.SongUsageDelete = QtGui.QAction(tools_menu) - self.SongUsageDelete.setText(translate('SongUsagePlugin', - '&Delete Tracking Data')) - self.SongUsageDelete.setStatusTip(translate('SongUsagePlugin', - 'Delete song usage data up to a specified date.')) - self.SongUsageDelete.setObjectName(u'SongUsageDelete') - #SongUsage Report - self.SongUsageReport = QtGui.QAction(tools_menu) - self.SongUsageReport.setText( - translate('SongUsagePlugin', '&Extract Tracking Data')) - self.SongUsageReport.setStatusTip( - translate('SongUsagePlugin', 'Generate a report on song usage.')) - self.SongUsageReport.setObjectName(u'SongUsageReport') - #SongUsage activation - self.SongUsageStatus = QtGui.QAction(tools_menu) - self.SongUsageStatus.setCheckable(True) - self.SongUsageStatus.setChecked(False) - self.SongUsageStatus.setText(translate( - 'SongUsagePlugin', 'Toggle Tracking')) - self.SongUsageStatus.setStatusTip(translate('SongUsagePlugin', - 'Toggle the tracking of song usage.')) - self.SongUsageStatus.setShortcut(u'F4') - self.SongUsageStatus.setObjectName(u'SongUsageStatus') - #Add Menus together - self.toolsMenu.addAction(self.SongUsageMenu.menuAction()) - self.SongUsageMenu.addAction(self.SongUsageStatus) - self.SongUsageMenu.addSeparator() - self.SongUsageMenu.addAction(self.SongUsageDelete) - self.SongUsageMenu.addAction(self.SongUsageReport) - # Signals and slots - QtCore.QObject.connect(self.SongUsageStatus, - QtCore.SIGNAL(u'visibilityChanged(bool)'), - self.SongUsageStatus.setChecked) - QtCore.QObject.connect(self.SongUsageStatus, - QtCore.SIGNAL(u'triggered(bool)'), - self.toggleSongUsageState) - QtCore.QObject.connect(self.SongUsageDelete, - QtCore.SIGNAL(u'triggered()'), self.onSongUsageDelete) - QtCore.QObject.connect(self.SongUsageReport, - QtCore.SIGNAL(u'triggered()'), self.onSongUsageReport) - self.SongUsageMenu.menuAction().setVisible(False) - - def initialise(self): - log.info(u'SongUsage Initialising') - Plugin.initialise(self) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_live_started'), - self.onReceiveSongUsage) - self.SongUsageActive = QtCore.QSettings().value( - self.settingsSection + u'/active', - QtCore.QVariant(False)).toBool() - self.SongUsageStatus.setChecked(self.SongUsageActive) - if self.songusagemanager is None: - self.songusagemanager = Manager(u'songusage', init_schema) - self.SongUsagedeleteform = SongUsageDeleteForm(self.songusagemanager, - self.formparent) - self.SongUsagedetailform = SongUsageDetailForm(self, self.formparent) - self.SongUsageMenu.menuAction().setVisible(True) - - def finalise(self): - log.info(u'Plugin Finalise') - self.SongUsageMenu.menuAction().setVisible(False) - #stop any events being processed - self.SongUsageActive = False - - def toggleSongUsageState(self): - self.SongUsageActive = not self.SongUsageActive - QtCore.QSettings().setValue(self.settingsSection + u'/active', - QtCore.QVariant(self.SongUsageActive)) - - def onReceiveSongUsage(self, item): - """ - Song Usage for live song from SlideController - """ - audit = item[0].audit - if self.SongUsageActive and audit: - song_usage_item = SongUsageItem() - song_usage_item.usagedate = datetime.today() - song_usage_item.usagetime = datetime.now().time() - song_usage_item.title = audit[0] - song_usage_item.copyright = audit[2] - song_usage_item.ccl_number = audit[3] - song_usage_item.authors = u'' - for author in audit[1]: - song_usage_item.authors += author + u' ' - self.songusagemanager.save_object(song_usage_item) - - def onSongUsageDelete(self): - self.SongUsagedeleteform.exec_() - - def onSongUsageReport(self): - self.SongUsagedetailform.initialise() - self.SongUsagedetailform.exec_() - - def about(self): - about_text = translate('SongUsagePlugin', 'SongUsage Plugin' - '
This plugin tracks the usage of songs in ' - 'services.') - return about_text - - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'SongUsage' - self.name_lower = u'songusage' - - self.strings = {} - # for names in mediamanagerdock and pluginlist - self.strings[StringType.Name] = { - u'singular': translate('SongUsagePlugin', 'SongUsage'), - u'plural': translate('SongUsagePlugin', 'SongUsage') - } +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 datetime import datetime + +from PyQt4 import QtCore, QtGui + +from openlp.core.lib import Plugin, StringType, Receiver, build_icon, translate +from openlp.core.lib.db import Manager +from openlp.plugins.songusage.forms import SongUsageDetailForm, \ + SongUsageDeleteForm +from openlp.plugins.songusage.lib.db import init_schema, SongUsageItem + +log = logging.getLogger(__name__) + +class SongUsagePlugin(Plugin): + log.info(u'SongUsage Plugin loaded') + + def __init__(self, plugin_helpers): + self.set_plugin_strings() + Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) + self.weight = -4 + self.icon = build_icon(u':/plugins/plugin_songusage.png') + self.songusagemanager = None + self.songusageActive = False + + def addToolsMenuItem(self, tools_menu): + """ + Give the SongUsage plugin the opportunity to add items to the + **Tools** menu. + + ``tools_menu`` + The actual **Tools** menu item, so that your actions can + use it as their parent. + """ + log.info(u'add tools menu') + self.toolsMenu = tools_menu + self.SongUsageMenu = QtGui.QMenu(tools_menu) + self.SongUsageMenu.setObjectName(u'SongUsageMenu') + self.SongUsageMenu.setTitle(translate( + 'SongUsagePlugin', '&Song Usage Tracking')) + #SongUsage Delete + self.SongUsageDelete = QtGui.QAction(tools_menu) + self.SongUsageDelete.setText(translate('SongUsagePlugin', + '&Delete Tracking Data')) + self.SongUsageDelete.setStatusTip(translate('SongUsagePlugin', + 'Delete song usage data up to a specified date.')) + self.SongUsageDelete.setObjectName(u'SongUsageDelete') + #SongUsage Report + self.SongUsageReport = QtGui.QAction(tools_menu) + self.SongUsageReport.setText( + translate('SongUsagePlugin', '&Extract Tracking Data')) + self.SongUsageReport.setStatusTip( + translate('SongUsagePlugin', 'Generate a report on song usage.')) + self.SongUsageReport.setObjectName(u'SongUsageReport') + #SongUsage activation + self.SongUsageStatus = QtGui.QAction(tools_menu) + self.SongUsageStatus.setCheckable(True) + self.SongUsageStatus.setChecked(False) + self.SongUsageStatus.setText(translate( + 'SongUsagePlugin', 'Toggle Tracking')) + self.SongUsageStatus.setStatusTip(translate('SongUsagePlugin', + 'Toggle the tracking of song usage.')) + self.SongUsageStatus.setShortcut(u'F4') + self.SongUsageStatus.setObjectName(u'SongUsageStatus') + #Add Menus together + self.toolsMenu.addAction(self.SongUsageMenu.menuAction()) + self.SongUsageMenu.addAction(self.SongUsageStatus) + self.SongUsageMenu.addSeparator() + self.SongUsageMenu.addAction(self.SongUsageDelete) + self.SongUsageMenu.addAction(self.SongUsageReport) + # Signals and slots + QtCore.QObject.connect(self.SongUsageStatus, + QtCore.SIGNAL(u'visibilityChanged(bool)'), + self.SongUsageStatus.setChecked) + QtCore.QObject.connect(self.SongUsageStatus, + QtCore.SIGNAL(u'triggered(bool)'), + self.toggleSongUsageState) + QtCore.QObject.connect(self.SongUsageDelete, + QtCore.SIGNAL(u'triggered()'), self.onSongUsageDelete) + QtCore.QObject.connect(self.SongUsageReport, + QtCore.SIGNAL(u'triggered()'), self.onSongUsageReport) + self.SongUsageMenu.menuAction().setVisible(False) + + def initialise(self): + log.info(u'SongUsage Initialising') + Plugin.initialise(self) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'slidecontroller_live_started'), + self.onReceiveSongUsage) + self.SongUsageActive = QtCore.QSettings().value( + self.settingsSection + u'/active', + QtCore.QVariant(False)).toBool() + self.SongUsageStatus.setChecked(self.SongUsageActive) + if self.songusagemanager is None: + self.songusagemanager = Manager(u'songusage', init_schema) + self.SongUsagedeleteform = SongUsageDeleteForm(self.songusagemanager, + self.formparent) + self.SongUsagedetailform = SongUsageDetailForm(self, self.formparent) + self.SongUsageMenu.menuAction().setVisible(True) + + def finalise(self): + log.info(u'Plugin Finalise') + self.SongUsageMenu.menuAction().setVisible(False) + #stop any events being processed + self.SongUsageActive = False + + def toggleSongUsageState(self): + self.SongUsageActive = not self.SongUsageActive + QtCore.QSettings().setValue(self.settingsSection + u'/active', + QtCore.QVariant(self.SongUsageActive)) + + def onReceiveSongUsage(self, item): + """ + Song Usage for live song from SlideController + """ + audit = item[0].audit + if self.SongUsageActive and audit: + song_usage_item = SongUsageItem() + song_usage_item.usagedate = datetime.today() + song_usage_item.usagetime = datetime.now().time() + song_usage_item.title = audit[0] + song_usage_item.copyright = audit[2] + song_usage_item.ccl_number = audit[3] + song_usage_item.authors = u'' + for author in audit[1]: + song_usage_item.authors += author + u' ' + self.songusagemanager.save_object(song_usage_item) + + def onSongUsageDelete(self): + self.SongUsagedeleteform.exec_() + + def onSongUsageReport(self): + self.SongUsagedetailform.initialise() + self.SongUsagedetailform.exec_() + + def about(self): + about_text = translate('SongUsagePlugin', 'SongUsage Plugin' + '
This plugin tracks the usage of songs in ' + 'services.') + return about_text + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'SongUsage' + self.name_lower = u'songusage' + + self.strings = {} + # for names in mediamanagerdock and pluginlist + self.strings[StringType.Name] = { + u'singular': translate('SongUsagePlugin', 'SongUsage'), + u'plural': translate('SongUsagePlugin', 'SongUsage') + } From d542e2762a17ce909d9df3b53bb1feb8cd8ce48b Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 10 Sep 2010 21:47:33 +0200 Subject: [PATCH 12/95] hopefully Line ending corrected part3 --- openlp/core/lib/__init__.py | 672 ++--- openlp/core/lib/mediamanageritem.py | 1062 +++---- openlp/core/lib/plugin.py | 638 ++--- resources/i18n/openlp_af.ts | 191 +- resources/i18n/openlp_de.ts | 261 +- resources/i18n/openlp_en.ts | 191 +- resources/i18n/openlp_en_GB.ts | 191 +- resources/i18n/openlp_en_ZA.ts | 191 +- resources/i18n/openlp_es.ts | 191 +- resources/i18n/openlp_et.ts | 191 +- resources/i18n/openlp_hu.ts | 191 +- resources/i18n/openlp_ko.ts | 191 +- resources/i18n/openlp_nb.ts | 291 +- resources/i18n/openlp_pt_BR.ts | 191 +- resources/i18n/openlp_sv.ts | 3962 ++++++++++++++++++++++++++- 15 files changed, 6363 insertions(+), 2242 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 7fd4cc313..87cbbce6d 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -1,336 +1,336 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -The :mod:`lib` module contains most of the components and libraries that make -OpenLP work. -""" -import logging -import os.path -import types - -from PyQt4 import QtCore, QtGui - -log = logging.getLogger(__name__) - -# TODO make external and configurable in alpha 4 via a settings dialog -html_expands = [] - -html_expands.append({u'desc':u'Red', u'start tag':u'{r}', \ - u'start html':u'', \ - u'end tag':u'{/r}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Black', u'start tag':u'{b}', \ - u'start html':u'', \ - u'end tag':u'{/b}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', \ - u'start html':u'', \ - u'end tag':u'{/bl}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', \ - u'start html':u'', \ - u'end tag':u'{/y}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Green', u'start tag':u'{g}', \ - u'start html':u'', \ - u'end tag':u'{/g}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', \ - u'start html':u'', \ - u'end tag':u'{/pk}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', \ - u'start html':u'', \ - u'end tag':u'{/o}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', \ - u'start html':u'', \ - u'end tag':u'{/pp}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'White', u'start tag':u'{w}', \ - u'start html':u'', \ - u'end tag':u'{/w}', u'end html':u'', \ - u'protected':False}) -html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', \ - u'start html':u'', \ - u'end tag':u'{/su}', u'end html':u'', \ - u'protected':True}) -html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', \ - u'start html':u'', \ - u'end tag':u'{/sb}', u'end html':u'', \ - u'protected':True}) -html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', \ - u'start html':u'

', \ - u'end tag':u'{/p}', u'end html':u'

', \ - u'protected':True}) -html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', \ - u'start html':u'', \ - u'end tag':u'{/st}', \ - u'end html':u'', \ - u'protected':True}) -html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', \ - u'start html':u'', \ - u'end tag':u'{/it}', u'end html':u'', \ - u'protected':True}) - -def translate(context, text, comment=None): - """ - A special shortcut method to wrap around the Qt4 translation functions. - This abstracts the translation procedure so that we can change it if at a - later date if necessary, without having to redo the whole of OpenLP. - - ``context`` - The translation context, used to give each string a context or a - namespace. - - ``text`` - The text to put into the translation tables for translation. - - ``comment`` - An identifying string for when the same text is used in different roles - within the same context. - """ - return QtCore.QCoreApplication.translate(context, text, comment) - -def get_text_file_string(text_file): - """ - Open a file and return its content as unicode string. If the supplied file - name is not a file then the function returns False. If there is an error - loading the file or the content can't be decoded then the function will - return None. - - ``textfile`` - The name of the file. - """ - if not os.path.isfile(text_file): - return False - file_handle = None - content_string = None - try: - file_handle = open(text_file, u'r') - content = file_handle.read() - content_string = content.decode(u'utf-8') - except (IOError, UnicodeError): - log.exception(u'Failed to open text file %s' % text_file) - finally: - if file_handle: - file_handle.close() - return content_string - -def str_to_bool(stringvalue): - """ - Convert a string version of a boolean into a real boolean. - - ``stringvalue`` - The string value to examine and convert to a boolean type. - """ - if isinstance(stringvalue, bool): - return stringvalue - return unicode(stringvalue).strip().lower() in (u'true', u'yes', u'y') - -def build_icon(icon): - """ - Build a QIcon instance from an existing QIcon, a resource location, or a - physical file location. If the icon is a QIcon instance, that icon is - simply returned. If not, it builds a QIcon instance from the resource or - file name. - - ``icon`` - The icon to build. This can be a QIcon, a resource string in the form - ``:/resource/file.png``, or a file location like ``/path/to/file.png``. - """ - button_icon = QtGui.QIcon() - if isinstance(icon, QtGui.QIcon): - button_icon = icon - elif isinstance(icon, basestring): - if icon.startswith(u':/'): - button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, - QtGui.QIcon.Off) - else: - button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - elif isinstance(icon, QtGui.QImage): - button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - return button_icon - -def context_menu_action(base, icon, text, slot): - """ - Utility method to help build context menus for plugins - - ``base`` - The parent menu to add this menu item to - - ``icon`` - An icon for this action - - ``text`` - The text to display for this action - - ``slot`` - The code to run when this action is triggered - """ - action = QtGui.QAction(text, base) - if icon: - action.setIcon(build_icon(icon)) - QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) - return action - -def context_menu(base, icon, text): - """ - Utility method to help build context menus for plugins - - ``base`` - The parent object to add this menu to - - ``icon`` - An icon for this menu - - ``text`` - The text to display for this menu - """ - action = QtGui.QMenu(text, base) - action.setIcon(build_icon(icon)) - return action - -def context_menu_separator(base): - """ - Add a separator to a context menu - - ``base`` - The menu object to add the separator to - """ - action = QtGui.QAction(u'', base) - action.setSeparator(True) - return action - -def image_to_byte(image): - """ - Resize an image to fit on the current screen for the web and returns - it as a byte stream. - - ``image`` - The image to converted. - """ - byte_array = QtCore.QByteArray() - # use buffer to store pixmap into byteArray - buffie = QtCore.QBuffer(byte_array) - buffie.open(QtCore.QIODevice.WriteOnly) - if isinstance(image, QtGui.QImage): - pixmap = QtGui.QPixmap.fromImage(image) - else: - pixmap = QtGui.QPixmap(image) - pixmap.save(buffie, "PNG") - # convert to base64 encoding so does not get missed! - return byte_array.toBase64() - -def resize_image(image, width, height, background=QtCore.Qt.black): - """ - Resize an image to fit on the current screen. - - ``image`` - The image to resize. - - ``width`` - The new image width. - - ``height`` - The new image height. - - ``background`` - The background colour defaults to black. - - """ - preview = QtGui.QImage(image) - if not preview.isNull(): - # Only resize if different size - if preview.width() == width and preview.height == height: - return preview - preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, - QtCore.Qt.SmoothTransformation) - realw = preview.width() - realh = preview.height() - # and move it to the centre of the preview space - new_image = QtGui.QImage(width, height, - QtGui.QImage.Format_ARGB32_Premultiplied) - new_image.fill(background) - painter = QtGui.QPainter(new_image) - painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) - return new_image - -def check_item_selected(list_widget, message): - """ - Check if a list item is selected so an action may be performed on it - - ``list_widget`` - The list to check for selected items - - ``message`` - The message to give the user if no item is selected - """ - if not list_widget.selectedIndexes(): - QtGui.QMessageBox.information(list_widget.parent(), - translate('OpenLP.MediaManagerItem', 'No Items Selected'), message) - return False - return True - -def clean_tags(text): - """ - Remove Tags from text for display - """ - text = text.replace(u'
', u'\n') - for tag in html_expands: - text = text.replace(tag[u'start tag'], u'') - text = text.replace(tag[u'end tag'], u'') - return text - -def expand_tags(text): - """ - Expand tags HTML for display - """ - for tag in html_expands: - text = text.replace(tag[u'start tag'], tag[u'start html']) - text = text.replace(tag[u'end tag'], tag[u'end html']) - return text - -from spelltextedit import SpellTextEdit -from eventreceiver import Receiver -from settingsmanager import SettingsManager -from plugin import PluginStatus, StringType, Plugin -from pluginmanager import PluginManager -from settingstab import SettingsTab -from serviceitem import ServiceItem -from serviceitem import ServiceItemType -from serviceitem import ItemCapabilities -from htmlbuilder import build_html, build_lyrics_format_css, \ - build_lyrics_outline_css -from toolbar import OpenLPToolbar -from dockwidget import OpenLPDockWidget -from theme import ThemeLevel, ThemeXML -from renderer import Renderer -from rendermanager import RenderManager -from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +The :mod:`lib` module contains most of the components and libraries that make +OpenLP work. +""" +import logging +import os.path +import types + +from PyQt4 import QtCore, QtGui + +log = logging.getLogger(__name__) + +# TODO make external and configurable in alpha 4 via a settings dialog +html_expands = [] + +html_expands.append({u'desc':u'Red', u'start tag':u'{r}', \ + u'start html':u'', \ + u'end tag':u'{/r}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Black', u'start tag':u'{b}', \ + u'start html':u'', \ + u'end tag':u'{/b}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', \ + u'start html':u'', \ + u'end tag':u'{/bl}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', \ + u'start html':u'', \ + u'end tag':u'{/y}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Green', u'start tag':u'{g}', \ + u'start html':u'', \ + u'end tag':u'{/g}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', \ + u'start html':u'', \ + u'end tag':u'{/pk}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', \ + u'start html':u'', \ + u'end tag':u'{/o}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', \ + u'start html':u'', \ + u'end tag':u'{/pp}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'White', u'start tag':u'{w}', \ + u'start html':u'', \ + u'end tag':u'{/w}', u'end html':u'', \ + u'protected':False}) +html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', \ + u'start html':u'', \ + u'end tag':u'{/su}', u'end html':u'', \ + u'protected':True}) +html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', \ + u'start html':u'', \ + u'end tag':u'{/sb}', u'end html':u'', \ + u'protected':True}) +html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', \ + u'start html':u'

', \ + u'end tag':u'{/p}', u'end html':u'

', \ + u'protected':True}) +html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', \ + u'start html':u'', \ + u'end tag':u'{/st}', \ + u'end html':u'', \ + u'protected':True}) +html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', \ + u'start html':u'', \ + u'end tag':u'{/it}', u'end html':u'', \ + u'protected':True}) + +def translate(context, text, comment=None): + """ + A special shortcut method to wrap around the Qt4 translation functions. + This abstracts the translation procedure so that we can change it if at a + later date if necessary, without having to redo the whole of OpenLP. + + ``context`` + The translation context, used to give each string a context or a + namespace. + + ``text`` + The text to put into the translation tables for translation. + + ``comment`` + An identifying string for when the same text is used in different roles + within the same context. + """ + return QtCore.QCoreApplication.translate(context, text, comment) + +def get_text_file_string(text_file): + """ + Open a file and return its content as unicode string. If the supplied file + name is not a file then the function returns False. If there is an error + loading the file or the content can't be decoded then the function will + return None. + + ``textfile`` + The name of the file. + """ + if not os.path.isfile(text_file): + return False + file_handle = None + content_string = None + try: + file_handle = open(text_file, u'r') + content = file_handle.read() + content_string = content.decode(u'utf-8') + except (IOError, UnicodeError): + log.exception(u'Failed to open text file %s' % text_file) + finally: + if file_handle: + file_handle.close() + return content_string + +def str_to_bool(stringvalue): + """ + Convert a string version of a boolean into a real boolean. + + ``stringvalue`` + The string value to examine and convert to a boolean type. + """ + if isinstance(stringvalue, bool): + return stringvalue + return unicode(stringvalue).strip().lower() in (u'true', u'yes', u'y') + +def build_icon(icon): + """ + Build a QIcon instance from an existing QIcon, a resource location, or a + physical file location. If the icon is a QIcon instance, that icon is + simply returned. If not, it builds a QIcon instance from the resource or + file name. + + ``icon`` + The icon to build. This can be a QIcon, a resource string in the form + ``:/resource/file.png``, or a file location like ``/path/to/file.png``. + """ + button_icon = QtGui.QIcon() + if isinstance(icon, QtGui.QIcon): + button_icon = icon + elif isinstance(icon, basestring): + if icon.startswith(u':/'): + button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, + QtGui.QIcon.Off) + else: + button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + elif isinstance(icon, QtGui.QImage): + button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + return button_icon + +def context_menu_action(base, icon, text, slot): + """ + Utility method to help build context menus for plugins + + ``base`` + The parent menu to add this menu item to + + ``icon`` + An icon for this action + + ``text`` + The text to display for this action + + ``slot`` + The code to run when this action is triggered + """ + action = QtGui.QAction(text, base) + if icon: + action.setIcon(build_icon(icon)) + QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) + return action + +def context_menu(base, icon, text): + """ + Utility method to help build context menus for plugins + + ``base`` + The parent object to add this menu to + + ``icon`` + An icon for this menu + + ``text`` + The text to display for this menu + """ + action = QtGui.QMenu(text, base) + action.setIcon(build_icon(icon)) + return action + +def context_menu_separator(base): + """ + Add a separator to a context menu + + ``base`` + The menu object to add the separator to + """ + action = QtGui.QAction(u'', base) + action.setSeparator(True) + return action + +def image_to_byte(image): + """ + Resize an image to fit on the current screen for the web and returns + it as a byte stream. + + ``image`` + The image to converted. + """ + byte_array = QtCore.QByteArray() + # use buffer to store pixmap into byteArray + buffie = QtCore.QBuffer(byte_array) + buffie.open(QtCore.QIODevice.WriteOnly) + if isinstance(image, QtGui.QImage): + pixmap = QtGui.QPixmap.fromImage(image) + else: + pixmap = QtGui.QPixmap(image) + pixmap.save(buffie, "PNG") + # convert to base64 encoding so does not get missed! + return byte_array.toBase64() + +def resize_image(image, width, height, background=QtCore.Qt.black): + """ + Resize an image to fit on the current screen. + + ``image`` + The image to resize. + + ``width`` + The new image width. + + ``height`` + The new image height. + + ``background`` + The background colour defaults to black. + + """ + preview = QtGui.QImage(image) + if not preview.isNull(): + # Only resize if different size + if preview.width() == width and preview.height == height: + return preview + preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, + QtCore.Qt.SmoothTransformation) + realw = preview.width() + realh = preview.height() + # and move it to the centre of the preview space + new_image = QtGui.QImage(width, height, + QtGui.QImage.Format_ARGB32_Premultiplied) + new_image.fill(background) + painter = QtGui.QPainter(new_image) + painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) + return new_image + +def check_item_selected(list_widget, message): + """ + Check if a list item is selected so an action may be performed on it + + ``list_widget`` + The list to check for selected items + + ``message`` + The message to give the user if no item is selected + """ + if not list_widget.selectedIndexes(): + QtGui.QMessageBox.information(list_widget.parent(), + translate('OpenLP.MediaManagerItem', 'No Items Selected'), message) + return False + return True + +def clean_tags(text): + """ + Remove Tags from text for display + """ + text = text.replace(u'
', u'\n') + for tag in html_expands: + text = text.replace(tag[u'start tag'], u'') + text = text.replace(tag[u'end tag'], u'') + return text + +def expand_tags(text): + """ + Expand tags HTML for display + """ + for tag in html_expands: + text = text.replace(tag[u'start tag'], tag[u'start html']) + text = text.replace(tag[u'end tag'], tag[u'end html']) + return text + +from spelltextedit import SpellTextEdit +from eventreceiver import Receiver +from settingsmanager import SettingsManager +from plugin import PluginStatus, StringType, Plugin +from pluginmanager import PluginManager +from settingstab import SettingsTab +from serviceitem import ServiceItem +from serviceitem import ServiceItemType +from serviceitem import ItemCapabilities +from htmlbuilder import build_html, build_lyrics_format_css, \ + build_lyrics_outline_css +from toolbar import OpenLPToolbar +from dockwidget import OpenLPDockWidget +from theme import ThemeLevel, ThemeXML +from renderer import Renderer +from rendermanager import RenderManager +from mediamanageritem import MediaManagerItem +from baselistwithdnd import BaseListWithDnD diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index c49e37a19..ce4e63d16 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -1,531 +1,531 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -Provides the generic functions for interfacing plugins with the Media Manager. -""" -import logging -import os - -from PyQt4 import QtCore, QtGui - -from openlp.core.lib import context_menu_action, context_menu_separator, \ - SettingsManager, OpenLPToolbar, ServiceItem, StringType, build_icon, \ - translate - -log = logging.getLogger(__name__) - -class MediaManagerItem(QtGui.QWidget): - """ - MediaManagerItem is a helper widget for plugins. - - None of the following *need* to be used, feel free to override - them completely in your plugin's implementation. Alternatively, - call them from your plugin before or after you've done extra - things that you need to. - - **Constructor Parameters** - - ``parent`` - The parent widget. Usually this will be the *Media Manager* - itself. This needs to be a class descended from ``QWidget``. - - ``icon`` - Either a ``QIcon``, a resource path, or a file name. This is - the icon which is displayed in the *Media Manager*. - - ``title`` - The title visible on the item in the *Media Manager*. - - **Member Variables** - - When creating a descendant class from this class for your plugin, - the following member variables should be set. - - ``self.OnNewPrompt`` - Defaults to *'Select Image(s)'*. - - ``self.OnNewFileMasks`` - Defaults to *'Images (*.jpg *jpeg *.gif *.png *.bmp)'*. This - assumes that the new action is to load a file. If not, you - need to override the ``OnNew`` method. - - ``self.ListViewWithDnD_class`` - This must be a **class**, not an object, descended from - ``openlp.core.lib.BaseListWithDnD`` that is not used in any - other part of OpenLP. - - ``self.PreviewFunction`` - This must be a method which returns a QImage to represent the - item (usually a preview). No scaling is required, that is - performed automatically by OpenLP when necessary. If this - method is not defined, a default will be used (treat the - filename as an image). - """ - log.info(u'Media Item loaded') - - def __init__(self, parent=None, icon=None, title=None, plugin=None): - """ - Constructor to create the media manager item. - """ - QtGui.QWidget.__init__(self) - self.parent = parent - self.plugin = parent # rimach may changed - self.settingsSection = self.plugin.name_lower - if isinstance(icon, QtGui.QIcon): - self.icon = icon - elif isinstance(icon, basestring): - self.icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - else: - self.icon = None - if title: - nameString = self.plugin.getString(StringType.Name) - self.title = nameString[u'plural'] - self.toolbar = None - self.remoteTriggered = None - self.serviceItemIconName = None - self.singleServiceItem = True - self.pageLayout = QtGui.QVBoxLayout(self) - self.pageLayout.setSpacing(0) - self.pageLayout.setContentsMargins(4, 0, 4, 0) - self.requiredIcons() - self.setupUi() - self.retranslateUi() - - def requiredIcons(self): - """ - This method is called to define the icons for the plugin. - It provides a default set and the plugin is able to override - the if required. - """ - self.hasImportIcon = False - self.hasNewIcon = True - self.hasEditIcon = True - self.hasFileIcon = False - self.hasDeleteIcon = True - self.addToServiceItem = False - - def retranslateUi(self): - """ - This method is called automatically to provide OpenLP with the - opportunity to translate the ``MediaManagerItem`` to another - language. - """ - pass - - def addToolbar(self): - """ - A method to help developers easily add a toolbar to the media - manager item. - """ - if self.toolbar is None: - self.toolbar = OpenLPToolbar(self) - self.pageLayout.addWidget(self.toolbar) - - def addToolbarButton( - self, title, tooltip, icon, slot=None, checkable=False): - """ - A method to help developers easily add a button to the toolbar. - - ``title`` - The title of the button. - - ``tooltip`` - The tooltip to be displayed when the mouse hovers over the - button. - - ``icon`` - The icon of the button. This can be an instance of QIcon, or a - string cotaining either the absolute path to the image, or an - internal resource path starting with ':/'. - - ``slot`` - The method to call when the button is clicked. - - ``objectname`` - The name of the button. - """ - # NB different order (when I broke this out, I didn't want to - # break compatability), but it makes sense for the icon to - # come before the tooltip (as you have to have an icon, but - # not neccesarily a tooltip) - self.toolbar.addToolbarButton(title, icon, tooltip, slot, checkable) - - def addToolbarSeparator(self): - """ - A very simple method to add a separator to the toolbar. - """ - self.toolbar.addSeparator() - - def setupUi(self): - """ - This method sets up the interface on the button. Plugin - developers use this to add and create toolbars, and the rest - of the interface of the media manager item. - """ - # Add a toolbar - self.addToolbar() - #Allow the plugin to define buttons at start of bar - self.addStartHeaderBar() - #Add the middle of the tool bar (pre defined) - self.addMiddleHeaderBar() - #Allow the plugin to define buttons at end of bar - self.addEndHeaderBar() - #Add the list view - self.addListViewToToolBar() - - def addMiddleHeaderBar(self): - """ - Create buttons for the media item toolbar - """ - ## Import Button ## - if self.hasImportIcon: - importString = self.plugin.getString(StringType.Import) - self.addToolbarButton( - importString[u'title'], - importString[u'tooltip'], - u':/general/general_import.png', self.onImportClick) - ## Load Button ## - if self.hasFileIcon: - loadString = self.plugin.getString(StringType.Load) - self.addToolbarButton( - loadString[u'title'], - loadString[u'tooltip'], - u':/general/general_open.png', self.onFileClick) - ## New Button ## rimach - if self.hasNewIcon: - newString = self.plugin.getString(StringType.New) - self.addToolbarButton( - newString[u'title'], - newString[u'tooltip'], - u':/general/general_new.png', self.onNewClick) - ## Edit Button ## - if self.hasEditIcon: - editString = self.plugin.getString(StringType.Edit) - self.addToolbarButton( - editString[u'title'], - editString[u'tooltip'], - u':/general/general_edit.png', self.onEditClick) - ## Delete Button ## - if self.hasDeleteIcon: - deleteString = self.plugin.getString(StringType.Delete) - self.addToolbarButton( - deleteString[u'title'], - deleteString[u'tooltip'], - u':/general/general_delete.png', self.onDeleteClick) - ## Separator Line ## - self.addToolbarSeparator() - ## Preview ## - previewString = self.plugin.getString(StringType.Preview) - self.addToolbarButton( - previewString[u'title'], - previewString[u'tooltip'], - u':/general/general_preview.png', self.onPreviewClick) - ## Live Button ## - liveString = self.plugin.getString(StringType.Live) - self.addToolbarButton( - liveString[u'title'], - liveString[u'tooltip'], - u':/general/general_live.png', self.onLiveClick) - ## Add to service Button ## - serviceString = self.plugin.getString(StringType.Service) - self.addToolbarButton( - serviceString[u'title'], - serviceString[u'tooltip'], - u':/general/general_add.png', self.onAddClick) - - def addListViewToToolBar(self): - """ - Creates the main widget for listing items the media item is tracking - """ - #Add the List widget - self.listView = self.ListViewWithDnD_class(self) - self.listView.uniformItemSizes = True - self.listView.setGeometry(QtCore.QRect(10, 100, 256, 591)) - self.listView.setSpacing(1) - self.listView.setSelectionMode( - QtGui.QAbstractItemView.ExtendedSelection) - self.listView.setAlternatingRowColors(True) - self.listView.setDragEnabled(True) - self.listView.setObjectName(u'%sListView' % self.parent.name) - #Add to pageLayout - self.pageLayout.addWidget(self.listView) - #define and add the context menu - self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) - if self.hasEditIcon: - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_edit.png', - unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % - self.parent.name, - self.onEditClick)) - self.listView.addAction(context_menu_separator(self.listView)) - if self.hasDeleteIcon: - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_delete.png', - unicode(translate('OpenLP.MediaManagerItem', - '&Delete %s')) % - self.parent.name, - self.onDeleteClick)) - self.listView.addAction(context_menu_separator(self.listView)) - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_preview.png', - unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % - self.parent.name, - self.onPreviewClick)) - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_live.png', - translate('OpenLP.MediaManagerItem', '&Show Live'), - self.onLiveClick)) - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_add.png', - translate('OpenLP.MediaManagerItem', '&Add to Service'), - self.onAddClick)) - if self.addToServiceItem: - self.listView.addAction( - context_menu_action( - self.listView, u':/general/general_add.png', - translate('OpenLP.MediaManagerItem', - '&Add to selected Service Item'), - self.onAddEditClick)) - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): - QtCore.QObject.connect(self.listView, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onLiveClick) - else: - QtCore.QObject.connect(self.listView, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onPreviewClick) - - def initialise(self): - """ - Implement this method in your descendent media manager item to - do any UI or other initialisation. This method is called automatically. - """ - pass - - def addStartHeaderBar(self): - """ - Slot at start of toolbar for plugin to addwidgets - """ - pass - - def addEndHeaderBar(self): - """ - Slot at end of toolbar for plugin to add widgets - """ - pass - - def onFileClick(self): - """ - Add a file to the list widget to make it available for showing - """ - files = QtGui.QFileDialog.getOpenFileNames( - self, self.OnNewPrompt, - SettingsManager.get_last_dir(self.settingsSection), - self.OnNewFileMasks) - log.info(u'New files(s) %s', unicode(files)) - if files: - self.loadList(files) - lastDir = os.path.split(unicode(files[0]))[0] - SettingsManager.set_last_dir(self.settingsSection, lastDir) - SettingsManager.set_list(self.settingsSection, - self.settingsSection, self.getFileList()) - - def getFileList(self): - """ - Return the current list of files - """ - count = 0 - filelist = [] - while count < self.listView.count(): - bitem = self.listView.item(count) - filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) - filelist.append(filename) - count += 1 - return filelist - - def validate(self, file, thumb): - """ - Validates to see if the file still exists or thumbnail is up to date - """ - if not os.path.exists(file): - return False - if os.path.exists(thumb): - filedate = os.stat(file).st_mtime - thumbdate = os.stat(thumb).st_mtime - #if file updated rebuild icon - if filedate > thumbdate: - self.iconFromFile(file, thumb) - else: - self.iconFromFile(file, thumb) - return True - - def iconFromFile(self, file, thumb): - """ - Create a thumbnail icon from a given file - - ``file`` - The file to create the icon from - - ``thumb`` - The filename to save the thumbnail to - """ - icon = build_icon(unicode(file)) - pixmap = icon.pixmap(QtCore.QSize(88, 50)) - ext = os.path.splitext(thumb)[1].lower() - pixmap.save(thumb, ext[1:]) - return icon - - def loadList(self, list): - raise NotImplementedError(u'MediaManagerItem.loadList needs to be ' - u'defined by the plugin') - - def onNewClick(self): - raise NotImplementedError(u'MediaManagerItem.onNewClick needs to be ' - u'defined by the plugin') - - def onEditClick(self): - raise NotImplementedError(u'MediaManagerItem.onEditClick needs to be ' - u'defined by the plugin') - - def onDeleteClick(self): - raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' - u'be defined by the plugin') - - def generateSlideData(self, service_item, item): - raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' - u'to be defined by the plugin') - - def onPreviewClick(self): - """ - Preview an item by building a service item then adding that service - item to the preview slide controller. - """ - if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items to preview.')) - else: - log.debug(self.parent.name + u' Preview requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = True - self.parent.previewController.addServiceItem(service_item) - - def onLiveClick(self): - """ - Send an item live by building a service item then adding that service - item to the live slide controller. - """ - if not self.listView.selectedIndexes(): - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items to send live.')) - else: - log.debug(self.parent.name + u' Live requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = True - self.parent.liveController.addServiceItem(service_item) - - def onAddClick(self): - """ - Add a selected item to the current service - """ - if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items.')) - else: - #Is it posssible to process multiple list items to generate multiple - #service items? - if self.singleServiceItem or self.remoteTriggered: - log.debug(self.parent.name + u' Add requested') - service_item = self.buildServiceItem() - if service_item: - service_item.from_plugin = False - self.parent.serviceManager.addServiceItem(service_item, - replace=self.remoteTriggered) - else: - items = self.listView.selectedIndexes() - for item in items: - service_item = self.buildServiceItem(item) - if service_item: - service_item.from_plugin = False - self.parent.serviceManager.addServiceItem(service_item) - - def onAddEditClick(self): - """ - Add a selected item to an existing item in the current service. - """ - if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No items selected'), - translate('OpenLP.MediaManagerItem', - 'You must select one or more items')) - else: - log.debug(self.parent.name + u' Add requested') - service_item = self.parent.serviceManager.getServiceItem() - if not service_item: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', - 'No Service Item Selected'), - translate('OpenLP.MediaManagerItem', - 'You must select an existing service item to add to.')) - elif self.title.lower() == service_item.name.lower(): - self.generateSlideData(service_item) - self.parent.serviceManager.addServiceItem(service_item, - replace=True) - else: - #Turn off the remote edit update message indicator - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', - 'Invalid Service Item'), - unicode(translate('OpenLP.MediaManagerItem', - 'You must select a %s service item.')) % self.title) - - def buildServiceItem(self, item=None): - """ - Common method for generating a service item - """ - service_item = ServiceItem(self.parent) - if self.serviceItemIconName: - service_item.add_icon(self.serviceItemIconName) - else: - service_item.add_icon(self.parent.icon_path) - if self.generateSlideData(service_item, item): - return service_item - else: - return None +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Provides the generic functions for interfacing plugins with the Media Manager. +""" +import logging +import os + +from PyQt4 import QtCore, QtGui + +from openlp.core.lib import context_menu_action, context_menu_separator, \ + SettingsManager, OpenLPToolbar, ServiceItem, StringType, build_icon, \ + translate + +log = logging.getLogger(__name__) + +class MediaManagerItem(QtGui.QWidget): + """ + MediaManagerItem is a helper widget for plugins. + + None of the following *need* to be used, feel free to override + them completely in your plugin's implementation. Alternatively, + call them from your plugin before or after you've done extra + things that you need to. + + **Constructor Parameters** + + ``parent`` + The parent widget. Usually this will be the *Media Manager* + itself. This needs to be a class descended from ``QWidget``. + + ``icon`` + Either a ``QIcon``, a resource path, or a file name. This is + the icon which is displayed in the *Media Manager*. + + ``title`` + The title visible on the item in the *Media Manager*. + + **Member Variables** + + When creating a descendant class from this class for your plugin, + the following member variables should be set. + + ``self.OnNewPrompt`` + Defaults to *'Select Image(s)'*. + + ``self.OnNewFileMasks`` + Defaults to *'Images (*.jpg *jpeg *.gif *.png *.bmp)'*. This + assumes that the new action is to load a file. If not, you + need to override the ``OnNew`` method. + + ``self.ListViewWithDnD_class`` + This must be a **class**, not an object, descended from + ``openlp.core.lib.BaseListWithDnD`` that is not used in any + other part of OpenLP. + + ``self.PreviewFunction`` + This must be a method which returns a QImage to represent the + item (usually a preview). No scaling is required, that is + performed automatically by OpenLP when necessary. If this + method is not defined, a default will be used (treat the + filename as an image). + """ + log.info(u'Media Item loaded') + + def __init__(self, parent=None, icon=None, title=None, plugin=None): + """ + Constructor to create the media manager item. + """ + QtGui.QWidget.__init__(self) + self.parent = parent + self.plugin = parent # rimach may changed + self.settingsSection = self.plugin.name_lower + if isinstance(icon, QtGui.QIcon): + self.icon = icon + elif isinstance(icon, basestring): + self.icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + else: + self.icon = None + if title: + nameString = self.plugin.getString(StringType.Name) + self.title = nameString[u'plural'] + self.toolbar = None + self.remoteTriggered = None + self.serviceItemIconName = None + self.singleServiceItem = True + self.pageLayout = QtGui.QVBoxLayout(self) + self.pageLayout.setSpacing(0) + self.pageLayout.setContentsMargins(4, 0, 4, 0) + self.requiredIcons() + self.setupUi() + self.retranslateUi() + + def requiredIcons(self): + """ + This method is called to define the icons for the plugin. + It provides a default set and the plugin is able to override + the if required. + """ + self.hasImportIcon = False + self.hasNewIcon = True + self.hasEditIcon = True + self.hasFileIcon = False + self.hasDeleteIcon = True + self.addToServiceItem = False + + def retranslateUi(self): + """ + This method is called automatically to provide OpenLP with the + opportunity to translate the ``MediaManagerItem`` to another + language. + """ + pass + + def addToolbar(self): + """ + A method to help developers easily add a toolbar to the media + manager item. + """ + if self.toolbar is None: + self.toolbar = OpenLPToolbar(self) + self.pageLayout.addWidget(self.toolbar) + + def addToolbarButton( + self, title, tooltip, icon, slot=None, checkable=False): + """ + A method to help developers easily add a button to the toolbar. + + ``title`` + The title of the button. + + ``tooltip`` + The tooltip to be displayed when the mouse hovers over the + button. + + ``icon`` + The icon of the button. This can be an instance of QIcon, or a + string cotaining either the absolute path to the image, or an + internal resource path starting with ':/'. + + ``slot`` + The method to call when the button is clicked. + + ``objectname`` + The name of the button. + """ + # NB different order (when I broke this out, I didn't want to + # break compatability), but it makes sense for the icon to + # come before the tooltip (as you have to have an icon, but + # not neccesarily a tooltip) + self.toolbar.addToolbarButton(title, icon, tooltip, slot, checkable) + + def addToolbarSeparator(self): + """ + A very simple method to add a separator to the toolbar. + """ + self.toolbar.addSeparator() + + def setupUi(self): + """ + This method sets up the interface on the button. Plugin + developers use this to add and create toolbars, and the rest + of the interface of the media manager item. + """ + # Add a toolbar + self.addToolbar() + #Allow the plugin to define buttons at start of bar + self.addStartHeaderBar() + #Add the middle of the tool bar (pre defined) + self.addMiddleHeaderBar() + #Allow the plugin to define buttons at end of bar + self.addEndHeaderBar() + #Add the list view + self.addListViewToToolBar() + + def addMiddleHeaderBar(self): + """ + Create buttons for the media item toolbar + """ + ## Import Button ## + if self.hasImportIcon: + importString = self.plugin.getString(StringType.Import) + self.addToolbarButton( + importString[u'title'], + importString[u'tooltip'], + u':/general/general_import.png', self.onImportClick) + ## Load Button ## + if self.hasFileIcon: + loadString = self.plugin.getString(StringType.Load) + self.addToolbarButton( + loadString[u'title'], + loadString[u'tooltip'], + u':/general/general_open.png', self.onFileClick) + ## New Button ## rimach + if self.hasNewIcon: + newString = self.plugin.getString(StringType.New) + self.addToolbarButton( + newString[u'title'], + newString[u'tooltip'], + u':/general/general_new.png', self.onNewClick) + ## Edit Button ## + if self.hasEditIcon: + editString = self.plugin.getString(StringType.Edit) + self.addToolbarButton( + editString[u'title'], + editString[u'tooltip'], + u':/general/general_edit.png', self.onEditClick) + ## Delete Button ## + if self.hasDeleteIcon: + deleteString = self.plugin.getString(StringType.Delete) + self.addToolbarButton( + deleteString[u'title'], + deleteString[u'tooltip'], + u':/general/general_delete.png', self.onDeleteClick) + ## Separator Line ## + self.addToolbarSeparator() + ## Preview ## + previewString = self.plugin.getString(StringType.Preview) + self.addToolbarButton( + previewString[u'title'], + previewString[u'tooltip'], + u':/general/general_preview.png', self.onPreviewClick) + ## Live Button ## + liveString = self.plugin.getString(StringType.Live) + self.addToolbarButton( + liveString[u'title'], + liveString[u'tooltip'], + u':/general/general_live.png', self.onLiveClick) + ## Add to service Button ## + serviceString = self.plugin.getString(StringType.Service) + self.addToolbarButton( + serviceString[u'title'], + serviceString[u'tooltip'], + u':/general/general_add.png', self.onAddClick) + + def addListViewToToolBar(self): + """ + Creates the main widget for listing items the media item is tracking + """ + #Add the List widget + self.listView = self.ListViewWithDnD_class(self) + self.listView.uniformItemSizes = True + self.listView.setGeometry(QtCore.QRect(10, 100, 256, 591)) + self.listView.setSpacing(1) + self.listView.setSelectionMode( + QtGui.QAbstractItemView.ExtendedSelection) + self.listView.setAlternatingRowColors(True) + self.listView.setDragEnabled(True) + self.listView.setObjectName(u'%sListView' % self.parent.name) + #Add to pageLayout + self.pageLayout.addWidget(self.listView) + #define and add the context menu + self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) + if self.hasEditIcon: + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_edit.png', + unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % + self.parent.name, + self.onEditClick)) + self.listView.addAction(context_menu_separator(self.listView)) + if self.hasDeleteIcon: + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_delete.png', + unicode(translate('OpenLP.MediaManagerItem', + '&Delete %s')) % + self.parent.name, + self.onDeleteClick)) + self.listView.addAction(context_menu_separator(self.listView)) + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_preview.png', + unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % + self.parent.name, + self.onPreviewClick)) + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_live.png', + translate('OpenLP.MediaManagerItem', '&Show Live'), + self.onLiveClick)) + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_add.png', + translate('OpenLP.MediaManagerItem', '&Add to Service'), + self.onAddClick)) + if self.addToServiceItem: + self.listView.addAction( + context_menu_action( + self.listView, u':/general/general_add.png', + translate('OpenLP.MediaManagerItem', + '&Add to selected Service Item'), + self.onAddEditClick)) + if QtCore.QSettings().value(u'advanced/double click live', + QtCore.QVariant(False)).toBool(): + QtCore.QObject.connect(self.listView, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onLiveClick) + else: + QtCore.QObject.connect(self.listView, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onPreviewClick) + + def initialise(self): + """ + Implement this method in your descendent media manager item to + do any UI or other initialisation. This method is called automatically. + """ + pass + + def addStartHeaderBar(self): + """ + Slot at start of toolbar for plugin to addwidgets + """ + pass + + def addEndHeaderBar(self): + """ + Slot at end of toolbar for plugin to add widgets + """ + pass + + def onFileClick(self): + """ + Add a file to the list widget to make it available for showing + """ + files = QtGui.QFileDialog.getOpenFileNames( + self, self.OnNewPrompt, + SettingsManager.get_last_dir(self.settingsSection), + self.OnNewFileMasks) + log.info(u'New files(s) %s', unicode(files)) + if files: + self.loadList(files) + lastDir = os.path.split(unicode(files[0]))[0] + SettingsManager.set_last_dir(self.settingsSection, lastDir) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) + + def getFileList(self): + """ + Return the current list of files + """ + count = 0 + filelist = [] + while count < self.listView.count(): + bitem = self.listView.item(count) + filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) + filelist.append(filename) + count += 1 + return filelist + + def validate(self, file, thumb): + """ + Validates to see if the file still exists or thumbnail is up to date + """ + if not os.path.exists(file): + return False + if os.path.exists(thumb): + filedate = os.stat(file).st_mtime + thumbdate = os.stat(thumb).st_mtime + #if file updated rebuild icon + if filedate > thumbdate: + self.iconFromFile(file, thumb) + else: + self.iconFromFile(file, thumb) + return True + + def iconFromFile(self, file, thumb): + """ + Create a thumbnail icon from a given file + + ``file`` + The file to create the icon from + + ``thumb`` + The filename to save the thumbnail to + """ + icon = build_icon(unicode(file)) + pixmap = icon.pixmap(QtCore.QSize(88, 50)) + ext = os.path.splitext(thumb)[1].lower() + pixmap.save(thumb, ext[1:]) + return icon + + def loadList(self, list): + raise NotImplementedError(u'MediaManagerItem.loadList needs to be ' + u'defined by the plugin') + + def onNewClick(self): + raise NotImplementedError(u'MediaManagerItem.onNewClick needs to be ' + u'defined by the plugin') + + def onEditClick(self): + raise NotImplementedError(u'MediaManagerItem.onEditClick needs to be ' + u'defined by the plugin') + + def onDeleteClick(self): + raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' + u'be defined by the plugin') + + def generateSlideData(self, service_item, item): + raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' + u'to be defined by the plugin') + + def onPreviewClick(self): + """ + Preview an item by building a service item then adding that service + item to the preview slide controller. + """ + if not self.listView.selectedIndexes() and not self.remoteTriggered: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No Items Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items to preview.')) + else: + log.debug(self.parent.name + u' Preview requested') + service_item = self.buildServiceItem() + if service_item: + service_item.from_plugin = True + self.parent.previewController.addServiceItem(service_item) + + def onLiveClick(self): + """ + Send an item live by building a service item then adding that service + item to the live slide controller. + """ + if not self.listView.selectedIndexes(): + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No Items Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items to send live.')) + else: + log.debug(self.parent.name + u' Live requested') + service_item = self.buildServiceItem() + if service_item: + service_item.from_plugin = True + self.parent.liveController.addServiceItem(service_item) + + def onAddClick(self): + """ + Add a selected item to the current service + """ + if not self.listView.selectedIndexes() and not self.remoteTriggered: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No Items Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items.')) + else: + #Is it posssible to process multiple list items to generate multiple + #service items? + if self.singleServiceItem or self.remoteTriggered: + log.debug(self.parent.name + u' Add requested') + service_item = self.buildServiceItem() + if service_item: + service_item.from_plugin = False + self.parent.serviceManager.addServiceItem(service_item, + replace=self.remoteTriggered) + else: + items = self.listView.selectedIndexes() + for item in items: + service_item = self.buildServiceItem(item) + if service_item: + service_item.from_plugin = False + self.parent.serviceManager.addServiceItem(service_item) + + def onAddEditClick(self): + """ + Add a selected item to an existing item in the current service. + """ + if not self.listView.selectedIndexes() and not self.remoteTriggered: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', 'No items selected'), + translate('OpenLP.MediaManagerItem', + 'You must select one or more items')) + else: + log.debug(self.parent.name + u' Add requested') + service_item = self.parent.serviceManager.getServiceItem() + if not service_item: + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', + 'No Service Item Selected'), + translate('OpenLP.MediaManagerItem', + 'You must select an existing service item to add to.')) + elif self.title.lower() == service_item.name.lower(): + self.generateSlideData(service_item) + self.parent.serviceManager.addServiceItem(service_item, + replace=True) + else: + #Turn off the remote edit update message indicator + QtGui.QMessageBox.information(self, + translate('OpenLP.MediaManagerItem', + 'Invalid Service Item'), + unicode(translate('OpenLP.MediaManagerItem', + 'You must select a %s service item.')) % self.title) + + def buildServiceItem(self, item=None): + """ + Common method for generating a service item + """ + service_item = ServiceItem(self.parent) + if self.serviceItemIconName: + service_item.add_icon(self.serviceItemIconName) + else: + service_item.add_icon(self.parent.icon_path) + if self.generateSlideData(service_item, item): + return service_item + else: + return None diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 8f7fd4f38..fd0515038 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -1,319 +1,319 @@ -# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # -# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # -# Carsten Tinggaard, Frode Woldsund # -# --------------------------------------------------------------------------- # -# 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 # -############################################################################### -""" -Provide the generic plugin functionality for OpenLP plugins. -""" -import logging - -from PyQt4 import QtCore - -from openlp.core.lib import Receiver - -log = logging.getLogger(__name__) - -class PluginStatus(object): - """ - Defines the status of the plugin - """ - Active = 1 - Inactive = 0 - Disabled = -1 - -class StringType(object): - Name = u'name' - Import = u'import' - Load = u'load' - New = u'new' - Edit = u'edit' - Delete = u'delete' - Preview = u'preview' - Live = u'live' - Service = u'service' - -class Plugin(QtCore.QObject): - """ - Base class for openlp plugins to inherit from. - - **Basic Attributes** - - ``name`` - The name that should appear in the plugins list. - - ``version`` - The version number of this iteration of the plugin. - - ``settingsSection`` - The namespace to store settings for the plugin. - - ``icon`` - An instance of QIcon, which holds an icon for this plugin. - - ``log`` - A log object used to log debugging messages. This is pre-instantiated. - - ``weight`` - A numerical value used to order the plugins. - - **Hook Functions** - - ``checkPreConditions()`` - Provides the Plugin with a handle to check if it can be loaded. - - ``getMediaManagerItem()`` - Returns an instance of MediaManagerItem to be used in the Media Manager. - - ``addImportMenuItem(import_menu)`` - Add an item to the Import menu. - - ``addExportMenuItem(export_menu)`` - Add an item to the Export menu. - - ``getSettingsTab()`` - Returns an instance of SettingsTabItem to be used in the Settings - dialog. - - ``addToMenu(menubar)`` - A method to add a menu item to anywhere in the menu, given the menu bar. - - ``handle_event(event)`` - A method use to handle events, given an Event object. - - ``about()`` - Used in the plugin manager, when a person clicks on the 'About' button. - - """ - log.info(u'loaded') - - def __init__(self, name, version=None, plugin_helpers=None): - """ - This is the constructor for the plugin object. This provides an easy - way for descendent plugins to populate common data. This method *must* - be overridden, like so:: - - class MyPlugin(Plugin): - def __init__(self): - Plugin.__init(self, u'MyPlugin', u'0.1') - - ``name`` - Defaults to *None*. The name of the plugin. - - ``version`` - Defaults to *None*. The version of the plugin. - - ``plugin_helpers`` - Defaults to *None*. A list of helper objects. - """ - QtCore.QObject.__init__(self) - self.name = name - self.set_plugin_strings() - if version: - self.version = version - self.settingsSection = self.name.lower() - self.icon = None - self.weight = 0 - self.status = PluginStatus.Inactive - # Set up logging - self.log = logging.getLogger(self.name) - self.previewController = plugin_helpers[u'preview'] - self.liveController = plugin_helpers[u'live'] - self.renderManager = plugin_helpers[u'render'] - self.serviceManager = plugin_helpers[u'service'] - self.settingsForm = plugin_helpers[u'settings form'] - self.mediadock = plugin_helpers[u'toolbox'] - self.pluginManager = plugin_helpers[u'pluginmanager'] - self.formparent = plugin_helpers[u'formparent'] - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'%s_add_service_item' % self.name), - self.processAddServiceEvent) - - def checkPreConditions(self): - """ - Provides the Plugin with a handle to check if it can be loaded. - Failing Preconditions does not stop a settings Tab being created - - Returns True or False. - """ - return True - - def setStatus(self): - """ - Sets the status of the plugin - """ - self.status = QtCore.QSettings().value( - self.settingsSection + u'/status', - QtCore.QVariant(PluginStatus.Inactive)).toInt()[0] - - def toggleStatus(self, new_status): - """ - Changes the status of the plugin and remembers it - """ - self.status = new_status - QtCore.QSettings().setValue( - self.settingsSection + u'/status', QtCore.QVariant(self.status)) - - def isActive(self): - """ - Indicates if the plugin is active - - Returns True or False. - """ - return self.status == PluginStatus.Active - - def getMediaManagerItem(self): - """ - Construct a MediaManagerItem object with all the buttons and things - you need, and return it for integration into openlp.org. - """ - pass - - def addImportMenuItem(self, importMenu): - """ - Create a menu item and add it to the "Import" menu. - - ``importMenu`` - The Import menu. - """ - pass - - def addExportMenuItem(self, exportMenu): - """ - Create a menu item and add it to the "Export" menu. - - ``exportMenu`` - The Export menu - """ - pass - - def addToolsMenuItem(self, toolsMenu): - """ - Create a menu item and add it to the "Tools" menu. - - ``toolsMenu`` - The Tools menu - """ - pass - - def getSettingsTab(self): - """ - Create a tab for the settings window. - """ - pass - - def addToMenu(self, menubar): - """ - Add menu items to the menu, given the menubar. - - ``menubar`` - The application's menu bar. - """ - pass - - def processAddServiceEvent(self, replace=False): - """ - Generic Drag and drop handler triggered from service_manager. - """ - log.debug(u'processAddServiceEvent event called for plugin %s' % - self.name) - if replace: - self.mediaItem.onAddEditClick() - else: - self.mediaItem.onAddClick() - - def about(self): - """ - Show a dialog when the user clicks on the 'About' button in the plugin - manager. - """ - raise NotImplementedError( - u'Plugin.about needs to be defined by the plugin') - - def initialise(self): - """ - Called by the plugin Manager to initialise anything it needs. - """ - if self.mediaItem: - self.mediaItem.initialise() - self.insertToolboxItem() - - def finalise(self): - """ - Called by the plugin Manager to cleanup things. - """ - self.removeToolboxItem() - - def removeToolboxItem(self): - """ - Called by the plugin to remove toolbar - """ - if self.mediaItem: - self.mediadock.remove_dock(self.name) - if self.settings_tab: - self.settingsForm.removeTab(self.name) - - def insertToolboxItem(self): - """ - Called by plugin to replace toolbar - """ - if self.mediaItem: - self.mediadock.insert_dock(self.mediaItem, self.icon, self.weight) - if self.settings_tab: - self.settingsForm.insertTab(self.settings_tab, self.weight) - - def usesTheme(self, theme): - """ - Called to find out if a plugin is currently using a theme. - - Returns True if the theme is being used, otherwise returns False. - """ - return False - - def renameTheme(self, oldTheme, newTheme): - """ - Renames a theme a plugin is using making the plugin use the new name. - - ``oldTheme`` - The name of the theme the plugin should stop using. - - ``newTheme`` - The new name the plugin should now use. - """ - pass - - def getString(self, name): - if name in self.strings: - return self.strings[name] - else: - # do something here? - return None - - def set_plugin_strings(self): - """ - Called to define all translatable texts of the plugin - """ - self.name = u'Plugin' - self.name_lower = u'plugin' - - self.strings = {} +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Provide the generic plugin functionality for OpenLP plugins. +""" +import logging + +from PyQt4 import QtCore + +from openlp.core.lib import Receiver + +log = logging.getLogger(__name__) + +class PluginStatus(object): + """ + Defines the status of the plugin + """ + Active = 1 + Inactive = 0 + Disabled = -1 + +class StringType(object): + Name = u'name' + Import = u'import' + Load = u'load' + New = u'new' + Edit = u'edit' + Delete = u'delete' + Preview = u'preview' + Live = u'live' + Service = u'service' + +class Plugin(QtCore.QObject): + """ + Base class for openlp plugins to inherit from. + + **Basic Attributes** + + ``name`` + The name that should appear in the plugins list. + + ``version`` + The version number of this iteration of the plugin. + + ``settingsSection`` + The namespace to store settings for the plugin. + + ``icon`` + An instance of QIcon, which holds an icon for this plugin. + + ``log`` + A log object used to log debugging messages. This is pre-instantiated. + + ``weight`` + A numerical value used to order the plugins. + + **Hook Functions** + + ``checkPreConditions()`` + Provides the Plugin with a handle to check if it can be loaded. + + ``getMediaManagerItem()`` + Returns an instance of MediaManagerItem to be used in the Media Manager. + + ``addImportMenuItem(import_menu)`` + Add an item to the Import menu. + + ``addExportMenuItem(export_menu)`` + Add an item to the Export menu. + + ``getSettingsTab()`` + Returns an instance of SettingsTabItem to be used in the Settings + dialog. + + ``addToMenu(menubar)`` + A method to add a menu item to anywhere in the menu, given the menu bar. + + ``handle_event(event)`` + A method use to handle events, given an Event object. + + ``about()`` + Used in the plugin manager, when a person clicks on the 'About' button. + + """ + log.info(u'loaded') + + def __init__(self, name, version=None, plugin_helpers=None): + """ + This is the constructor for the plugin object. This provides an easy + way for descendent plugins to populate common data. This method *must* + be overridden, like so:: + + class MyPlugin(Plugin): + def __init__(self): + Plugin.__init(self, u'MyPlugin', u'0.1') + + ``name`` + Defaults to *None*. The name of the plugin. + + ``version`` + Defaults to *None*. The version of the plugin. + + ``plugin_helpers`` + Defaults to *None*. A list of helper objects. + """ + QtCore.QObject.__init__(self) + self.name = name + self.set_plugin_strings() + if version: + self.version = version + self.settingsSection = self.name.lower() + self.icon = None + self.weight = 0 + self.status = PluginStatus.Inactive + # Set up logging + self.log = logging.getLogger(self.name) + self.previewController = plugin_helpers[u'preview'] + self.liveController = plugin_helpers[u'live'] + self.renderManager = plugin_helpers[u'render'] + self.serviceManager = plugin_helpers[u'service'] + self.settingsForm = plugin_helpers[u'settings form'] + self.mediadock = plugin_helpers[u'toolbox'] + self.pluginManager = plugin_helpers[u'pluginmanager'] + self.formparent = plugin_helpers[u'formparent'] + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'%s_add_service_item' % self.name), + self.processAddServiceEvent) + + def checkPreConditions(self): + """ + Provides the Plugin with a handle to check if it can be loaded. + Failing Preconditions does not stop a settings Tab being created + + Returns True or False. + """ + return True + + def setStatus(self): + """ + Sets the status of the plugin + """ + self.status = QtCore.QSettings().value( + self.settingsSection + u'/status', + QtCore.QVariant(PluginStatus.Inactive)).toInt()[0] + + def toggleStatus(self, new_status): + """ + Changes the status of the plugin and remembers it + """ + self.status = new_status + QtCore.QSettings().setValue( + self.settingsSection + u'/status', QtCore.QVariant(self.status)) + + def isActive(self): + """ + Indicates if the plugin is active + + Returns True or False. + """ + return self.status == PluginStatus.Active + + def getMediaManagerItem(self): + """ + Construct a MediaManagerItem object with all the buttons and things + you need, and return it for integration into openlp.org. + """ + pass + + def addImportMenuItem(self, importMenu): + """ + Create a menu item and add it to the "Import" menu. + + ``importMenu`` + The Import menu. + """ + pass + + def addExportMenuItem(self, exportMenu): + """ + Create a menu item and add it to the "Export" menu. + + ``exportMenu`` + The Export menu + """ + pass + + def addToolsMenuItem(self, toolsMenu): + """ + Create a menu item and add it to the "Tools" menu. + + ``toolsMenu`` + The Tools menu + """ + pass + + def getSettingsTab(self): + """ + Create a tab for the settings window. + """ + pass + + def addToMenu(self, menubar): + """ + Add menu items to the menu, given the menubar. + + ``menubar`` + The application's menu bar. + """ + pass + + def processAddServiceEvent(self, replace=False): + """ + Generic Drag and drop handler triggered from service_manager. + """ + log.debug(u'processAddServiceEvent event called for plugin %s' % + self.name) + if replace: + self.mediaItem.onAddEditClick() + else: + self.mediaItem.onAddClick() + + def about(self): + """ + Show a dialog when the user clicks on the 'About' button in the plugin + manager. + """ + raise NotImplementedError( + u'Plugin.about needs to be defined by the plugin') + + def initialise(self): + """ + Called by the plugin Manager to initialise anything it needs. + """ + if self.mediaItem: + self.mediaItem.initialise() + self.insertToolboxItem() + + def finalise(self): + """ + Called by the plugin Manager to cleanup things. + """ + self.removeToolboxItem() + + def removeToolboxItem(self): + """ + Called by the plugin to remove toolbar + """ + if self.mediaItem: + self.mediadock.remove_dock(self.name) + if self.settings_tab: + self.settingsForm.removeTab(self.name) + + def insertToolboxItem(self): + """ + Called by plugin to replace toolbar + """ + if self.mediaItem: + self.mediadock.insert_dock(self.mediaItem, self.icon, self.weight) + if self.settings_tab: + self.settingsForm.insertTab(self.settings_tab, self.weight) + + def usesTheme(self, theme): + """ + Called to find out if a plugin is currently using a theme. + + Returns True if the theme is being used, otherwise returns False. + """ + return False + + def renameTheme(self, oldTheme, newTheme): + """ + Renames a theme a plugin is using making the plugin use the new name. + + ``oldTheme`` + The name of the theme the plugin should stop using. + + ``newTheme`` + The new name the plugin should now use. + """ + pass + + def getString(self, name): + if name in self.strings: + return self.strings[name] + else: + # do something here? + return None + + def set_plugin_strings(self): + """ + Called to define all translatable texts of the plugin + """ + self.name = u'Plugin' + self.name_lower = u'plugin' + + self.strings = {} diff --git a/resources/i18n/openlp_af.ts b/resources/i18n/openlp_af.ts index 57c62f996..b78a1fb53 100644 --- a/resources/i18n/openlp_af.ts +++ b/resources/i18n/openlp_af.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Waarskuwings @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import Invoer - + Import a Custom - + Load - + Load a new Custom - + Add Byvoeg - + Add a new Custom - + Edit Redigeer - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview Voorskou - + Preview the selected Custom - + Live Regstreeks - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image Beeld - + Images Beelde - + Load - + Load a new Image - + Add Byvoeg - + Add a new Image - + Edit Redigeer - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview Voorskou - + Preview the selected Image - + Live Regstreeks - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media Media - + Medias - + Load - + Load a new Media - + Add Byvoeg - + Add a new Media - + Edit Redigeer - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview Voorskou - + Preview the selected Media - + Live Regstreeks - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2524,17 +2524,17 @@ You can download the latest version from http://openlp.org/. Onaktief - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. Skep 'n nuwe diens - + Open Service Maak Diens Oop @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. &Verander Item Tema - + Save Changes to Service? @@ -2710,33 +2710,33 @@ 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? - + Error Fout - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + + Blank Screen + Blanko Skerm + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live Verskuif na regstreekse skerm - + Edit and re-preview Song Redigeer en sien weer 'n voorskou van die Lied - + Start continuous loop Begin aaneenlopende lus - + Stop continuous loop Stop deurlopende lus - + s s - + Delay between slides in seconds Vertraging in sekondes tussen skyfies - + Start playing media Begin media speel - + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation Aanbieding - + Presentations Aanbiedinge - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview Voorskou - + Preview the selected Presentation - + Live Regstreeks - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3207,12 +3222,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Afstandbehere @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_de.ts b/resources/i18n/openlp_de.ts index 144ea4862..308a424e3 100644 --- a/resources/i18n/openlp_de.ts +++ b/resources/i18n/openlp_de.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Hinweise @@ -197,7 +197,7 @@ Import - Import + @@ -207,7 +207,7 @@ Add - Hinzufügen + @@ -257,7 +257,7 @@ Service - Ablauf + @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Sonderfolien - + Customs - + Import - Import + - + Import a Custom - + Load - Laden + - + Load a new Custom - + Add - Hinzufügen + - + Add a new Custom - + Edit Bearbeiten - + Edit the selected Custom - + Delete Löschen - + Delete the selected Custom - + Preview Vorschau - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - Ablauf + - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image Bild - + Images - + Load - Laden + - + Load a new Image - + Add - Hinzufügen + - + Add a new Image - + Edit Bearbeiten - + Edit the selected Image - + Delete Löschen - + Delete the selected Image - + Preview Vorschau - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - Ablauf + - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media Medien - + Medias - + Load - Laden + - + Load a new Media - + Add - Hinzufügen + - + Add a new Media - + Edit Bearbeiten - + Edit the selected Media - + Delete Löschen - + Delete the selected Media - + Preview Vorschau - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - Ablauf + - + Add the selected Media to the service @@ -2523,20 +2523,20 @@ You can download the latest version from http://openlp.org/. Inactive Inaktiv - - - %s (Inactive) - %s (Inaktiv) - - - - %s (Active) - %s (Aktiv) - + %s (Inactive) + + + + + %s (Active) + + + + %s (Disabled) - %s (Deaktiviert) + @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. Erstelle neuen Ablauf - + Open Service Öffnen Ablauf @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. &Design des Elements ändern - + Save Changes to Service? Änderungen am Ablauf speichern? @@ -2710,33 +2710,33 @@ 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? - + Error Fehler - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + Move to live Verschieben zur Live Ansicht - + Edit and re-preview Song Lied bearbeiten und wieder anzeigen - + Start continuous loop Endlosschleife starten - + Stop continuous loop Endlosschleife beenden - + s s - + Delay between slides in seconds Pause zwischen den Folien in Sekunden - + Start playing media Abspielen - + + Blank Screen + + + + + Blank to Theme + + + + + Show Desktop + + + + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation Präsentation - + Presentations Präsentationen - + Load - Laden + - + Load a new Presentation - + Delete Löschen - + Delete the selected Presentation - + Preview Vorschau - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - Ablauf + - + Add the selected Presentation to the service @@ -3207,12 +3222,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Fernprojektion @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -3364,62 +3379,62 @@ The content encoding is not UTF-8. Add - Hinzufügen + Add a new Song - Füge ein neues Lied hinzu + Edit - Bearbeiten + Bearbeiten Edit the selected Song - Bearbeite das akuelle Lied + Delete - Löschen + Löschen Delete the selected Song - Markiertes Lied löschen + Preview - Vorschau + Vorschau Preview the selected Song - Vorschau des markierten Liedes + Live - Live + Live Send the selected Song live - Markiertes Lied vorführen + Service - Ablauf + Add the selected Song to the service - Markierten Titel zum Ablauf hinzufügen + @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts index da8da1006..8831a8320 100644 --- a/resources/i18n/openlp_en.ts +++ b/resources/i18n/openlp_en.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview - + Preview the selected Image - + Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview - + Preview the selected Media - + Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2524,17 +2524,17 @@ You can download the latest version from http://openlp.org/. - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. - + Open Service @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. - + Save Changes to Service? @@ -2710,33 +2710,33 @@ 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? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + + Blank Screen + + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live - + Edit and re-preview Song - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media - + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation - + Presentations - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3207,12 +3222,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_en_GB.ts b/resources/i18n/openlp_en_GB.ts index 6f9616304..60aa34560 100644 --- a/resources/i18n/openlp_en_GB.ts +++ b/resources/i18n/openlp_en_GB.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alerts @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Custom - + Customs - + Import Import - + Import a Custom - + Load - + Load a new Custom - + Add Add - + Add a new Custom - + Edit Edit - + Edit the selected Custom - + Delete Delete - + Delete the selected Custom - + Preview Preview - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image Image - + Images Images - + Load - + Load a new Image - + Add Add - + Add a new Image - + Edit Edit - + Edit the selected Image - + Delete Delete - + Delete the selected Image - + Preview Preview - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media Media - + Medias - + Load - + Load a new Media - + Add Add - + Add a new Media - + Edit Edit - + Edit the selected Media - + Delete Delete - + Delete the selected Media - + Preview Preview - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2524,17 +2524,17 @@ You can download the latest version from http://openlp.org/. Inactive - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. Create a new service - + Open Service Open Service @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. &Change Item Theme - + Save Changes to Service? Save Changes to Service? @@ -2710,33 +2710,33 @@ 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? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + + Blank Screen + Blank Screen + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live Move to live - + Edit and re-preview Song Edit and re-preview Song - + Start continuous loop Start continuous loop - + Stop continuous loop Stop continuous loop - + s s - + Delay between slides in seconds Delay between slides in seconds - + Start playing media Start playing media - + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation Presentation - + Presentations Presentations - + Load - + Load a new Presentation - + Delete Delete - + Delete the selected Presentation - + Preview Preview - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3207,12 +3222,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Remotes @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_en_ZA.ts b/resources/i18n/openlp_en_ZA.ts index 1f853c652..13cda068f 100644 --- a/resources/i18n/openlp_en_ZA.ts +++ b/resources/i18n/openlp_en_ZA.ts @@ -18,12 +18,12 @@ <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alerts @@ -928,92 +928,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit Edit - + Edit the selected Custom - + Delete Delete - + Delete the selected Custom - + Preview Preview - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1026,82 +1026,82 @@ Changes do not affect verses already in the service. - + Image Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit Edit - + Edit the selected Image - + Delete Delete - + Delete the selected Image - + Preview Preview - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1162,82 +1162,82 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit Edit - + Edit the selected Media - + Delete Delete - + Delete the selected Media - + Preview Preview - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2565,17 +2565,17 @@ You can download the latest version from http://openlp.org/. Inactive - + %s (Inactive) %s (Inactive) - + %s (Active) %s (Active) - + %s (Disabled) %s (Disabled) @@ -2621,7 +2621,7 @@ You can download the latest version from http://openlp.org/. Create a new service - + Open Service Open Service @@ -2741,7 +2741,7 @@ You can download the latest version from http://openlp.org/. &Change Item Theme - + Save Changes to Service? Save Changes to Service? @@ -2756,34 +2756,34 @@ You can download the latest version from http://openlp.org/. OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. File is not a valid service. - + Missing Display Handler Missing Display Handler - + Your item cannot be displayed as there is no handler to display it Your item cannot be displayed as there is no handler to display it @@ -2832,42 +2832,57 @@ The content encoding is not UTF-8. Hide - + Move to live Move to live - + Start continuous loop Start continuous loop - + Stop continuous loop Stop continuous loop - + s s - + Delay between slides in seconds Delay between slides in seconds - + Start playing media Start playing media - + + Blank Screen + + + + + Blank to Theme + + + + + Show Desktop + + + + Edit and re-preview Song - + Go to @@ -3121,62 +3136,62 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Presentation - + Presentations Presentations - + Load - + Load a new Presentation - + Delete Delete - + Delete the selected Presentation - + Preview Preview - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3255,12 +3270,12 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remotes @@ -3331,7 +3346,7 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -4126,12 +4141,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © © diff --git a/resources/i18n/openlp_es.ts b/resources/i18n/openlp_es.ts index 543ddbcb8..6e0db7cb7 100644 --- a/resources/i18n/openlp_es.ts +++ b/resources/i18n/openlp_es.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alertas @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import Importar - + Import a Custom - + Load - + Load a new Custom - + Add Agregar - + Add a new Custom - + Edit Editar - + Edit the selected Custom - + Delete Eliminar - + Delete the selected Custom - + Preview Vista Previa - + Preview the selected Custom - + Live En vivo - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image Imagen - + Images Imágenes - + Load - + Load a new Image - + Add Agregar - + Add a new Image - + Edit Editar - + Edit the selected Image - + Delete Eliminar - + Delete the selected Image - + Preview Vista Previa - + Preview the selected Image - + Live En vivo - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media Medios - + Medias - + Load - + Load a new Media - + Add Agregar - + Add a new Media - + Edit Editar - + Edit the selected Media - + Delete Eliminar - + Delete the selected Media - + Preview Vista Previa - + Preview the selected Media - + Live En vivo - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2524,17 +2524,17 @@ You can download the latest version from http://openlp.org/. Inactivo - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. Crear un servicio nuevo - + Open Service Abrir Servicio @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. &Cambiar Tema de Ítem - + Save Changes to Service? @@ -2710,33 +2710,33 @@ 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? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + + Blank Screen + Pantalla en Blanco + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live Proyectar en vivo - + Edit and re-preview Song Editar y re-visualizar Canción - + Start continuous loop Iniciar bucle continuo - + Stop continuous loop Detener el bucle - + s s - + Delay between slides in seconds Espera entre diapositivas en segundos - + Start playing media Iniciar la reproducción de medios - + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation Presentación - + Presentations Presentaciones - + Load - + Load a new Presentation - + Delete Eliminar - + Delete the selected Presentation - + Preview Vista Previa - + Preview the selected Presentation - + Live En vivo - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3207,12 +3222,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Remotas @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_et.ts b/resources/i18n/openlp_et.ts index e7328bfc9..6279c90ca 100644 --- a/resources/i18n/openlp_et.ts +++ b/resources/i18n/openlp_et.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Import a Custom - + Load a new Custom - + Add a new Custom - + Edit the selected Custom - + Delete the selected Custom - + Preview the selected Custom - + Send the selected Custom live - + Add the selected Custom to the service - + Custom - + Customs - + Import - + Load - + Add - + Edit - + Delete - + Preview - + Live - + Service @@ -1020,47 +1020,47 @@ Changes do not affect verses already in the service. ImagePlugin - + Load a new Image - + Add a new Image - + Edit the selected Image - + Delete the selected Image - + Preview the selected Image - + Send the selected Image live - + Add the selected Image to the service - + Image Pilt - + Images @@ -1070,37 +1070,37 @@ Changes do not affect verses already in the service. - + Load - + Add - + Edit - + Delete - + Preview - + Live - + Service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Load a new Media - + Add a new Media - + Edit the selected Media - + Delete the selected Media - + Preview the selected Media - + Send the selected Media live - + Add the selected Media to the service - + Media - + Medias - + Load - + Add - + Edit - + Delete - + Preview - + Live - + Service @@ -2530,17 +2530,17 @@ You can download the latest version from http://openlp.org/. Pole aktiivne - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2581,7 +2581,7 @@ You can download the latest version from http://openlp.org/. Uue teenistuse loomine - + Open Service Teenistuse avamine @@ -2676,7 +2676,7 @@ You can download the latest version from http://openlp.org/. - + Save Changes to Service? Kas salvestada teenistusse tehtud muudatused? @@ -2691,33 +2691,33 @@ 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? See teenistus pole salvestatud, kas tahad enne uue avamist muudatused salvestada? - + Error Viga - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it Seda elementi pole võimalik näidata ekraanil, kuna puudub seda käsitsev programm @@ -2791,45 +2791,60 @@ The content encoding is not UTF-8. - + Move to live Tõsta ekraanile - + Edit and re-preview Song Muuda ja kuva laulu eelvaade uuesti - + Start continuous loop Katkematu korduse alustamine - + Stop continuous loop Katkematu korduse lõpetamine - + s s - + Delay between slides in seconds Viivitus slaidide vahel sekundites - + Start playing media Meediaesituse alustamine - + Go to + + + Blank Screen + + + + + Blank to Theme + + + + + Show Desktop + + OpenLP.SpellTextEdit @@ -3079,62 +3094,62 @@ The content encoding is not UTF-8. - + Load a new Presentation - + Delete the selected Presentation - + Preview the selected Presentation - + Send the selected Presentation live - + Add the selected Presentation to the service - + Presentation - + Presentations - + Load - + Delete - + Preview - + Live - + Service @@ -3213,12 +3228,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3289,7 +3304,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4084,12 +4099,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_hu.ts b/resources/i18n/openlp_hu.ts index 5d9cf2804..37001ce41 100644 --- a/resources/i18n/openlp_hu.ts +++ b/resources/i18n/openlp_hu.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Figyelmeztetések @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Egyedi - + Customs - + Import Importálás - + Import a Custom - + Load - + Load a new Custom - + Add Hozzáadás - + Add a new Custom - + Edit Szerkesztés - + Edit the selected Custom - + Delete Törlés - + Delete the selected Custom - + Preview Előnézet - + Preview the selected Custom - + Live Egyenes adás - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image Kép - + Images Képek - + Load - + Load a new Image - + Add Hozzáadás - + Add a new Image - + Edit Szerkesztés - + Edit the selected Image - + Delete Törlés - + Delete the selected Image - + Preview Előnézet - + Preview the selected Image - + Live Egyenes adás - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media Média - + Medias - + Load - + Load a new Media - + Add Hozzáadás - + Add a new Media - + Edit Szerkesztés - + Edit the selected Media - + Delete Törlés - + Delete the selected Media - + Preview Előnézet - + Preview the selected Media - + Live Egyenes adás - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2657,17 +2657,17 @@ You can download the latest version from http://openlp.org/. Inaktív - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2708,7 +2708,7 @@ You can download the latest version from http://openlp.org/. Új szolgálat létrehozása - + Open Service Szolgálat megnyitása @@ -2828,7 +2828,7 @@ You can download the latest version from http://openlp.org/. - + Save Changes to Service? @@ -2843,33 +2843,33 @@ 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? A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat megnyitná? - + Error Hiba - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler Hiányzó képernyő kezelő - + Your item cannot be displayed as there is no handler to display it Az elemet nem lehet megjeleníteni, mert nincs kezelő, amely megjelenítené @@ -2918,42 +2918,57 @@ The content encoding is not UTF-8. - + + Blank Screen + Elsötétített képernyő + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live Mozgatás az egyenes adásban lévőre - + Edit and re-preview Song Dal szerkesztése, majd újra az előnézet megnyitása - + Start continuous loop Folyamatos vetítés indítása - + Stop continuous loop Folyamatos vetítés leállítása - + s mp - + Delay between slides in seconds Diák közötti késleltetés másodpercben - + Start playing media Médialejátszás indítása - + Go to @@ -3206,62 +3221,62 @@ The content encoding is not UTF-8. - + Presentation Bemutató - + Presentations Bemutatók - + Load - + Load a new Presentation - + Delete Törlés - + Delete the selected Presentation - + Preview Előnézet - + Preview the selected Presentation - + Live Egyenes adás - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3340,12 +3355,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Távvezérlés @@ -3416,7 +3431,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4211,12 +4226,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_ko.ts b/resources/i18n/openlp_ko.ts index e0905186f..64359a01b 100644 --- a/resources/i18n/openlp_ko.ts +++ b/resources/i18n/openlp_ko.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview - + Preview the selected Image - + Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview - + Preview the selected Media - + Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2524,17 +2524,17 @@ You can download the latest version from http://openlp.org/. - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. - + Open Service @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. - + Save Changes to Service? @@ -2710,33 +2710,33 @@ 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? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + + Blank Screen + + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live - + Edit and re-preview Song - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media - + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation - + Presentations - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3207,12 +3222,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_nb.ts b/resources/i18n/openlp_nb.ts index bf8d38b9c..0e5300bd2 100644 --- a/resources/i18n/openlp_nb.ts +++ b/resources/i18n/openlp_nb.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live Direkte - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview - + Preview the selected Image - + Live Direkte - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview - + Preview the selected Media - + Live Direkte - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2524,17 +2524,17 @@ You can download the latest version from http://openlp.org/. - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2575,7 @@ You can download the latest version from http://openlp.org/. Opprett ny møteplan - + Open Service Åpne møteplan @@ -2695,7 +2695,7 @@ You can download the latest version from http://openlp.org/. &Bytt objekttema - + Save Changes to Service? @@ -2710,33 +2710,33 @@ You can download the latest version from http://openlp.org/. OpenLP møteplan (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2785,42 +2785,57 @@ The content encoding is not UTF-8. - + + Blank Screen + + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live - + Edit and re-preview Song Endre og forhåndsvis sang - + Start continuous loop Start kontinuerlig løkke - + Stop continuous loop - + s - + Delay between slides in seconds Forsinkelse mellom lysbilder i sekund - + Start playing media Start avspilling av media - + Go to @@ -3073,62 +3088,62 @@ The content encoding is not UTF-8. - + Presentation Presentasjon - + Presentations - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live Direkte - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3138,17 +3153,17 @@ The content encoding is not UTF-8. Select Presentation(s) - + Velg presentasjon(er) Automatic - + Automatisk Present using: - + Presenter ved hjelp av: @@ -3191,7 +3206,7 @@ The content encoding is not UTF-8. Advanced - + Avansert @@ -3207,14 +3222,14 @@ The content encoding is not UTF-8. - + Remote - + Remotes - + Fjernmeldinger @@ -3222,7 +3237,7 @@ The content encoding is not UTF-8. Remotes - + Fjernmeldinger @@ -3283,7 +3298,7 @@ The content encoding is not UTF-8. - + SongUsage @@ -3316,12 +3331,12 @@ The content encoding is not UTF-8. Select Date Range - + Velg dato-område to - + til @@ -3339,7 +3354,7 @@ The content encoding is not UTF-8. &Song - + &Sang @@ -3354,12 +3369,12 @@ The content encoding is not UTF-8. Song - + Sang Songs - + Sanger @@ -3427,7 +3442,7 @@ The content encoding is not UTF-8. Author Maintenance - + Behandle forfatterdata @@ -3437,12 +3452,12 @@ The content encoding is not UTF-8. First name: - + Fornavn: Last name: - + Etternavn: @@ -3452,7 +3467,7 @@ The content encoding is not UTF-8. You need to type in the first name of the author. - + Du må skrive inn forfatterens fornavn. @@ -3470,7 +3485,7 @@ The content encoding is not UTF-8. Song Editor - + Sangredigeringsverktøy @@ -3500,7 +3515,7 @@ The content encoding is not UTF-8. &Edit - + &Rediger @@ -3515,7 +3530,7 @@ The content encoding is not UTF-8. Title && Lyrics - + Tittel && Sangtekst @@ -3530,7 +3545,7 @@ The content encoding is not UTF-8. &Remove - + &Fjern @@ -3540,7 +3555,7 @@ The content encoding is not UTF-8. Topic - + Emne @@ -3550,7 +3565,7 @@ The content encoding is not UTF-8. R&emove - + &Fjern @@ -3570,7 +3585,7 @@ The content encoding is not UTF-8. Theme - + Tema @@ -3580,7 +3595,7 @@ The content encoding is not UTF-8. Copyright Information - + Copyright-informasjon @@ -3708,7 +3723,7 @@ The content encoding is not UTF-8. Edit Verse - + Rediger Vers @@ -3866,7 +3881,7 @@ The content encoding is not UTF-8. Select Import Source - + Velg importeringskilde @@ -3876,12 +3891,12 @@ The content encoding is not UTF-8. Format: - + Format: OpenLP 2.0 - + OpenLP 2.0 @@ -3896,7 +3911,7 @@ The content encoding is not UTF-8. OpenSong - + OpenSong @@ -3951,7 +3966,7 @@ The content encoding is not UTF-8. Ready. - + Klar. @@ -3979,17 +3994,17 @@ The content encoding is not UTF-8. Maintain the lists of authors, topics and books - + Rediger liste over forfattere, emner og bøker. Search: - + Søk: Type: - + Type: @@ -3999,12 +4014,12 @@ The content encoding is not UTF-8. Search - + Søk Titles - + Titler @@ -4044,7 +4059,7 @@ The content encoding is not UTF-8. CCLI Licence: - + CCLI lisens: @@ -4078,12 +4093,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4093,7 +4108,7 @@ The content encoding is not UTF-8. Finished import. - + Import fullført. @@ -4116,7 +4131,7 @@ The content encoding is not UTF-8. Topics - + Emne @@ -4131,7 +4146,7 @@ The content encoding is not UTF-8. &Edit - + &Rediger @@ -4196,7 +4211,7 @@ The content encoding is not UTF-8. Are you sure you want to delete the selected author? - + Er du sikker på at du vil slette den valgte forfatteren? @@ -4206,12 +4221,12 @@ The content encoding is not UTF-8. No author selected! - + Ingen forfatter er valgt! Delete Topic - + Slett emne @@ -4231,12 +4246,12 @@ The content encoding is not UTF-8. Delete Book - + Slett bok Are you sure you want to delete the selected book? - + Er du sikker på at du vil slette den merkede boken? @@ -4246,7 +4261,7 @@ The content encoding is not UTF-8. No book selected! - + Ingen bok er valgt! @@ -4254,7 +4269,7 @@ The content encoding is not UTF-8. Songs - + Sanger @@ -4282,7 +4297,7 @@ The content encoding is not UTF-8. Topic name: - + Emnenavn: @@ -4292,7 +4307,7 @@ The content encoding is not UTF-8. You need to type in a topic name! - + Skriv inn et emnenavn! @@ -4300,7 +4315,7 @@ The content encoding is not UTF-8. Verse - + Vers @@ -4315,7 +4330,7 @@ The content encoding is not UTF-8. Pre-Chorus - + Pre-Chorus @@ -4330,7 +4345,7 @@ The content encoding is not UTF-8. Other - + Annet diff --git a/resources/i18n/openlp_pt_BR.ts b/resources/i18n/openlp_pt_BR.ts index c72283199..62789d706 100644 --- a/resources/i18n/openlp_pt_BR.ts +++ b/resources/i18n/openlp_pt_BR.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alertas @@ -927,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Customizado - + Customs - + Import Importar - + Import a Custom - + Load - + Load a new Custom - + Add Adicionar - + Add a new Custom - + Edit Editar - + Edit the selected Custom - + Delete Deletar - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live Ao Vivo - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1025,82 +1025,82 @@ Changes do not affect verses already in the service. - + Image Imagem - + Images Imagens - + Load - + Load a new Image - + Add Adicionar - + Add a new Image - + Edit Editar - + Edit the selected Image - + Delete Deletar - + Delete the selected Image - + Preview - + Preview the selected Image - + Live Ao Vivo - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1161,82 +1161,82 @@ Changes do not affect verses already in the service. - + Media Mídia - + Medias - + Load - + Load a new Media - + Add Adicionar - + Add a new Media - + Edit Editar - + Edit the selected Media - + Delete Deletar - + Delete the selected Media - + Preview - + Preview the selected Media - + Live Ao Vivo - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -2561,17 +2561,17 @@ You can download the latest version from http://openlp.org/. Inativo - + %s (Inactive) %s (Inativo) - + %s (Active) - + %s (Disabled) @@ -2612,7 +2612,7 @@ You can download the latest version from http://openlp.org/. Criar um novo culto - + Open Service @@ -2732,7 +2732,7 @@ You can download the latest version from http://openlp.org/. &Alterar Tema do Item - + Save Changes to Service? Salvar Mudanças no Culto? @@ -2747,33 +2747,33 @@ You can download the latest version from http://openlp.org/. Arquivo de Culto do OpenLP (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Erro - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2822,42 +2822,57 @@ The content encoding is not UTF-8. - + + Blank Screen + Tela em Branco + + + + Blank to Theme + + + + + Show Desktop + + + + Move to live Mover para ao vivo - + Edit and re-preview Song Editar e pré-visualizar Música novamente - + Start continuous loop Iniciar repetição contínua - + Stop continuous loop Parar repetição contínua - + s s - + Delay between slides in seconds Intervalo entre slides em segundos - + Start playing media Iniciar a reprodução de mídia - + Go to @@ -3111,62 +3126,62 @@ A codificação do conteúdo não é UTF-8. - + Presentation Apresentação - + Presentations Apresentações - + Load - + Load a new Presentation - + Delete Deletar - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live Ao Vivo - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3245,12 +3260,12 @@ A codificação do conteúdo não é UTF-8. - + Remote - + Remotes Remoto @@ -3321,7 +3336,7 @@ A codificação do conteúdo não é UTF-8. - + SongUsage @@ -4116,12 +4131,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImport - + copyright - + © diff --git a/resources/i18n/openlp_sv.ts b/resources/i18n/openlp_sv.ts index e4f003d8c..9f5130c5b 100644 --- a/resources/i18n/openlp_sv.ts +++ b/resources/i18n/openlp_sv.ts @@ -18,12 +18,12 @@ - + Alert - + Alerts Alarm @@ -392,4 +392,3960 @@ Changes do not affect verses already in the service. - 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. \ No newline at end of file + 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. + Den här guiden hjälper dig importera biblar från en mängd olika format. Klicka på nästa-knappen nedan för att börja proceduren genom att välja ett format att importera från. + + + + Select Import Source + Välj importkälla + + + + Select the import format, and where to import from. + Välj format för import, och plats att importera från. + + + + Format: + Format: + + + + OSIS + OSIS + + + + CSV + CSV + + + + OpenSong + OpenSong + + + + Web Download + Webbnedladdning + + + + File location: + + + + + Books location: + + + + + Verse location: + + + + + Bible filename: + + + + + Location: + + + + + Crosswalk + Crosswalk + + + + BibleGateway + BibleGateway + + + + Bible: + Bibel: + + + + Download Options + Alternativ för nedladdning + + + + Server: + Server: + + + + Username: + Användarnamn: + + + + Password: + Lösenord: + + + + Proxy Server (Optional) + Proxyserver (Frivilligt) + + + + License Details + Licensdetaljer + + + + Set up the Bible's license details. + Skriv in Bibelns licensdetaljer. + + + + Version name: + + + + + Copyright: + Copyright: + + + + Permission: + Rättigheter: + + + + Importing + Importerar + + + + Please wait while your Bible is imported. + Vänligen vänta medan din Bibel importeras. + + + + Ready. + Redo. + + + + Invalid Bible Location + Felaktig bibelplacering + + + + You need to specify a file to import your Bible from. + Du måste ange en fil att importera dina Biblar från. + + + + Invalid Books File + Ogiltig bokfil + + + + You need to specify a file with books of the Bible to use in the import. + Du måste välja en fil med Bibelböcker att använda i importen. + + + + Invalid Verse File + Ogiltid versfil + + + + You need to specify a file of Bible verses to import. + Du måste specificera en fil med Bibelverser att importera. + + + + Invalid OpenSong Bible + Ogiltig OpenSong-bibel + + + + You need to specify an OpenSong Bible file to import. + Du måste ange en OpenSong Bibel-fil att importera. + + + + Empty Version Name + Tomt versionsnamn + + + + You need to specify a version name for your Bible. + Du måste ange ett versionsnamn för din Bibel. + + + + Empty Copyright + Tom copyright-information + + + + You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. + Du måste infoga copyright-information för din Bibel! Biblar i den publika domänen måste innehålla det. + + + + Bible Exists + Bibel existerar + + + + This Bible already exists! Please import a different Bible or first delete the existing one. + Bibeln existerar redan! Importera en annan BIbel eller ta bort den som finns. + + + + Open OSIS File + + + + + Open Books CSV File + + + + + Open Verses CSV File + + + + + Open OpenSong Bible + Öppna OpenSong Bibel + + + + Starting import... + Påbörjar import... + + + + Finished import. + Importen är färdig. + + + + Your Bible import failed. + Din Bibelimport misslyckades. + + + + BiblesPlugin.MediaItem + + + Quick + Snabb + + + + Advanced + Avancerat + + + + Version: + Version: + + + + Dual: + Dubbel: + + + + Search type: + + + + + Find: + Hitta: + + + + Search + Sök + + + + Results: + Resultat: + + + + Book: + Bok: + + + + Chapter: + Kapitel: + + + + Verse: + Vers: + + + + From: + Från: + + + + To: + Till: + + + + Verse Search + Sök vers + + + + Text Search + Textsökning + + + + Clear + + + + + Keep + Behåll + + + + No Book Found + Ingen bok hittades + + + + No matching book could be found in this Bible. + Ingen matchande bok kunde hittas i den här Bibeln. + + + + etc + + + + + Bible not fully loaded. + + + + + BiblesPlugin.Opensong + + + Importing + Importerar + + + + CustomPlugin + + + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + + + + + CustomPlugin.CustomTab + + + Custom + + + + + Custom Display + Anpassad Visning + + + + Display footer + + + + + CustomPlugin.EditCustomForm + + + Edit Custom Slides + Redigera anpassad bild + + + + Move slide up one position. + + + + + Move slide down one position. + + + + + &Title: + + + + + Add New + Lägg till ny + + + + Add a new slide at bottom. + + + + + Edit + Redigera + + + + Edit the selected slide. + + + + + Edit All + Redigera alla + + + + Edit all the slides at once. + + + + + Save + Spara + + + + Save the slide currently being edited. + + + + + Delete + Ta bort + + + + Delete the selected slide. + + + + + Clear + + + + + Clear edit area + Töm redigeringsområde + + + + Split Slide + + + + + Split a slide into two by inserting a slide splitter. + + + + + The&me: + + + + + &Credits: + + + + + Save && Preview + Spara && förhandsgranska + + + + Error + Fel + + + + You need to type in a title. + + + + + You need to add at least one slide + + + + + You have one or more unsaved slides, please either save your slide(s) or clear your changes. + + + + + CustomPlugin.MediaItem + + + You haven't selected an item to edit. + + + + + You haven't selected an item to delete. + + + + + CustomsPlugin + + + Custom + + + + + Customs + + + + + Import + Importera + + + + Import a Custom + + + + + Load + + + + + Load a new Custom + + + + + Add + Lägg till + + + + Add a new Custom + + + + + Edit + Redigera + + + + Edit the selected Custom + + + + + Delete + Ta bort + + + + Delete the selected Custom + + + + + Preview + Förhandsgranska + + + + Preview the selected Custom + + + + + Live + Live + + + + Send the selected Custom live + + + + + Service + + + + + Add the selected Custom to the service + + + + + ImagePlugin + + + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. + + + + + Image + Bild + + + + Images + Bilder + + + + Load + + + + + Load a new Image + + + + + Add + Lägg till + + + + Add a new Image + + + + + Edit + Redigera + + + + Edit the selected Image + + + + + Delete + Ta bort + + + + Delete the selected Image + + + + + Preview + Förhandsgranska + + + + Preview the selected Image + + + + + Live + Live + + + + Send the selected Image live + + + + + Service + + + + + Add the selected Image to the service + + + + + ImagePlugin.MediaItem + + + Select Image(s) + Välj bild(er) + + + + All Files + + + + + Replace Live Background + + + + + Replace Background + + + + + Reset Live Background + + + + + You must select an image to delete. + + + + + Image(s) + Bilder + + + + You must select an image to replace the background with. + + + + + You must select a media file to replace the background with. + + + + + MediaPlugin + + + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. + + + + + Media + Media + + + + Medias + + + + + Load + + + + + Load a new Media + + + + + Add + Lägg till + + + + Add a new Media + + + + + Edit + Redigera + + + + Edit the selected Media + + + + + Delete + Ta bort + + + + Delete the selected Media + + + + + Preview + Förhandsgranska + + + + Preview the selected Media + + + + + Live + Live + + + + Send the selected Media live + + + + + Service + + + + + Add the selected Media to the service + + + + + MediaPlugin.MediaItem + + + Select Media + Välj media + + + + Replace Live Background + + + + + Replace Background + + + + + Media + Media + + + + You must select a media file to delete. + + + + + OpenLP + + + Image Files + + + + + OpenLP.AboutForm + + + About OpenLP + Om OpenLP + + + + 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. + + + + + About + Om + + + + 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 + Andreas "googol" Preikschat + Christian "crichter" Richter + Philip "Phill" Ridout + Maikel Stuivenberg + Carsten "catini" Tingaard + Frode "frodus" Woldsund + +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, Ubuntu) + +Built With + Python: http://www.python.org/ + Qt4: http://qt.nokia.com/ + PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro + Oxygen Icons: http://oxygen-icons.org/ + + + + + + Credits + Credits + + + + 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. + + + + + License + Licens + + + + Contribute + Bidra + + + + Close + Stäng + + + + build %s + + + + + OpenLP.AdvancedTab + + + Advanced + Avancerat + + + + UI Settings + + + + + Number of recent files to display: + + + + + Remember active media manager tab on startup + + + + + Double-click to send items straight to live (requires restart) + + + + + OpenLP.AmendThemeForm + + + Theme Maintenance + Temaunderhåll + + + + Theme &name: + + + + + Type: + Typ: + + + + Solid Color + Solid Färg + + + + Gradient + Stegvis + + + + Image + Bild + + + + Image: + Bild: + + + + Gradient: + + + + + Horizontal + Horisontellt + + + + Vertical + Vertikal + + + + Circular + Cirkulär + + + + &Background + + + + + Main Font + Huvudfont + + + + Font: + Font: + + + + Color: + + + + + Size: + Storlek: + + + + pt + pt + + + + Adjust line spacing: + + + + + Normal + Normal + + + + Bold + Fetstil + + + + Italics + Kursiv + + + + Bold/Italics + Fetstil/kursiv + + + + Style: + + + + + Display Location + Visa plats + + + + Use default location + + + + + X position: + + + + + Y position: + + + + + Width: + Bredd: + + + + Height: + Höjd: + + + + px + px + + + + &Main Font + + + + + Footer Font + Sidfot-font + + + + &Footer Font + + + + + Outline + Kontur + + + + Outline size: + + + + + Outline color: + + + + + Show outline: + + + + + Shadow + Skugga + + + + Shadow size: + + + + + Shadow color: + + + + + Show shadow: + + + + + Alignment + Justering + + + + Horizontal align: + + + + + Left + Vänster + + + + Right + Höger + + + + Center + Centrera + + + + Vertical align: + + + + + Top + Topp + + + + Middle + Mitten + + + + Bottom + + + + + Slide Transition + Bildövergång + + + + Transition active + + + + + &Other Options + + + + + Preview + Förhandsgranska + + + + All Files + + + + + Select Image + + + + + First color: + + + + + Second color: + + + + + Slide height is %s rows. + + + + + OpenLP.ExceptionDialog + + + Error Occured + + + + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + + + OpenLP.GeneralTab + + + General + Allmänt + + + + Monitors + Skärmar + + + + Select monitor for output display: + Välj skärm för utsignal: + + + + Display if a single screen + + + + + Application Startup + Programstart + + + + Show blank screen warning + Visa varning vid tom skärm + + + + Automatically open the last service + Öppna automatiskt den senaste planeringen + + + + Show the splash screen + Visa startbilden + + + + Application Settings + Programinställningar + + + + Prompt to save before starting a new service + + + + + Automatically preview next item in service + + + + + Slide loop delay: + + + + + sec + + + + + CCLI Details + CCLI-detaljer + + + + CCLI number: + + + + + SongSelect username: + + + + + SongSelect password: + + + + + Display Position + + + + + X + + + + + Y + + + + + Height + + + + + Width + + + + + Override display position + + + + + Screen + Skärm + + + + primary + primär + + + + OpenLP.LanguageManager + + + Language + + + + + Please restart OpenLP to use your new language setting. + + + + + OpenLP.MainWindow + + + OpenLP 2.0 + OpenLP 2.0 + + + + English + Engelska + + + + &File + &Fil + + + + &Import + &Importera + + + + &Export + &Exportera + + + + &View + &Visa + + + + M&ode + &Läge + + + + &Tools + &Verktyg + + + + &Settings + &Inställningar + + + + &Language + &Språk + + + + &Help + &Hjälp + + + + Media Manager + Mediahanterare + + + + Service Manager + Mötesplaneringshanterare + + + + Theme Manager + Temahanterare + + + + &New + &Ny + + + + New Service + + + + + Create a new service. + + + + + Ctrl+N + Ctrl+N + + + + &Open + &Öppna + + + + Open Service + + + + + Open an existing service. + + + + + Ctrl+O + Ctrl+O + + + + &Save + &Spara + + + + Save Service + + + + + Save the current service to disk. + + + + + Ctrl+S + Ctrl+S + + + + Save &As... + S&para som... + + + + Save Service As + Spara mötesplanering som... + + + + Save the current service under a new name. + + + + + Ctrl+Shift+S + + + + + E&xit + &Avsluta + + + + Quit OpenLP + Stäng OpenLP + + + + Alt+F4 + Alt+F4 + + + + &Theme + &Tema + + + + &Configure OpenLP... + + + + + &Media Manager + &Mediahanterare + + + + Toggle Media Manager + Växla mediahanterare + + + + Toggle the visibility of the media manager. + + + + + F8 + F8 + + + + &Theme Manager + &Temahanterare + + + + Toggle Theme Manager + Växla temahanteraren + + + + Toggle the visibility of the theme manager. + + + + + F10 + F10 + + + + &Service Manager + &Mötesplaneringshanterare + + + + Toggle Service Manager + Växla mötesplaneringshanterare + + + + Toggle the visibility of the service manager. + + + + + F9 + F9 + + + + &Preview Panel + &Förhandsgranskning + + + + Toggle Preview Panel + Växla förhandsgranskningspanel + + + + Toggle the visibility of the preview panel. + + + + + F11 + F11 + + + + &Live Panel + + + + + Toggle Live Panel + + + + + Toggle the visibility of the live panel. + + + + + F12 + F12 + + + + &Plugin List + &Pluginlista + + + + List the Plugins + Lista Plugin + + + + Alt+F7 + Alt+F7 + + + + &User Guide + &Användarguide + + + + &About + &Om + + + + More information about OpenLP + Mer information om OpenLP + + + + Ctrl+F1 + Ctrl+F1 + + + + &Online Help + &Online-hjälp + + + + &Web Site + &Webbsida + + + + &Auto Detect + + + + + Use the system language, if available. + + + + + Set the interface language to %s + + + + + Add &Tool... + + + + + Add an application to the list of tools. + + + + + &Default + + + + + Set the view mode back to the default. + + + + + &Setup + + + + + Set the view mode to Setup. + + + + + &Live + &Live + + + + Set the view mode to 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/. + + + + + OpenLP Version Updated + OpenLP-version uppdaterad + + + + OpenLP Main Display Blanked + OpenLP huvuddisplay tömd + + + + The Main Display has been blanked out + Huvuddisplayen har rensats + + + + Save Changes to Service? + + + + + Your service has changed. Do you want to save those changes? + + + + + Default Theme: %s + + + + + OpenLP.MediaManagerItem + + + No Items Selected + + + + + &Edit %s + + + + + &Delete %s + + + + + &Preview %s + + + + + &Show Live + &Visa Live + + + + &Add to Service + &Lägg till i mötesplanering + + + + &Add to selected Service Item + + + + + You must select one or more items to preview. + + + + + You must select one or more items to send live. + + + + + You must select one or more items. + + + + + No items selected + + + + + You must select one or more items + Du måste välja ett eller flera objekt + + + + No Service Item Selected + + + + + You must select an existing service item to add to. + + + + + Invalid Service Item + + + + + You must select a %s service item. + + + + + OpenLP.PluginForm + + + Plugin List + Pluginlista + + + + Plugin Details + Plugindetaljer + + + + Version: + Version: + + + + TextLabel + TextLabel + + + + About: + Om: + + + + Status: + Status: + + + + Active + Aktiv + + + + Inactive + Inaktiv + + + + %s (Inactive) + + + + + %s (Active) + + + + + %s (Disabled) + + + + + OpenLP.ServiceItemEditForm + + + Reorder Service Item + + + + + Up + + + + + Delete + Ta bort + + + + Down + + + + + OpenLP.ServiceManager + + + New Service + + + + + Create a new service + Skapa en ny mötesplanering + + + + Open Service + + + + + Load an existing service + Ladda en planering + + + + Save Service + + + + + Save this service + Spara denna mötesplanering + + + + Theme: + Tema: + + + + Select a theme for the service + Välj ett tema för planeringen + + + + Move to &top + Flytta till &toppen + + + + Move item to the top of the service. + + + + + Move &up + Flytta &upp + + + + Move item up one position in the service. + + + + + Move &down + Flytta &ner + + + + Move item down one position in the service. + + + + + Move to &bottom + Flytta längst &ner + + + + Move item to the end of the service. + + + + + &Delete From Service + &Ta bort från mötesplanering + + + + Delete the selected item from the service. + + + + + &Add New Item + + + + + &Add to Selected Item + + + + + &Edit Item + &Redigera objekt + + + + &Reorder Item + + + + + &Notes + &Anteckningar + + + + &Preview Verse + &Förhandsgranska Vers + + + + &Live Verse + &Live-vers + + + + &Change Item Theme + &Byt objektets tema + + + + Save Changes to Service? + + + + + Your service is unsaved, do you want to save those changes before creating a new one? + + + + + OpenLP Service Files (*.osz) + + + + + Your current service is unsaved, do you want to save the changes before opening a new one? + + + + + Error + Fel + + + + File is not a valid service. +The content encoding is not UTF-8. + + + + + File is not a valid service. + + + + + Missing Display Handler + + + + + Your item cannot be displayed as there is no handler to display it + + + + + OpenLP.ServiceNoteForm + + + Service Item Notes + Mötesanteckningar + + + + OpenLP.SettingsForm + + + Configure OpenLP + + + + + OpenLP.SlideController + + + Live + Live + + + + Preview + Förhandsgranska + + + + Move to previous + Flytta till föregående + + + + Move to next + Flytta till nästa + + + + Hide + + + + + Blank Screen + Töm skärm + + + + Blank to Theme + + + + + Show Desktop + + + + + Move to live + Flytta till live + + + + Edit and re-preview Song + Ändra och åter-förhandsgranska sång + + + + Start continuous loop + Börja oändlig loop + + + + Stop continuous loop + Stoppa upprepad loop + + + + s + s + + + + Delay between slides in seconds + Fördröjning mellan bilder, i sekunder + + + + Start playing media + Börja spela media + + + + Go to + + + + + OpenLP.SpellTextEdit + + + Spelling Suggestions + + + + + Formatting Tags + + + + + OpenLP.ThemeManager + + + New Theme + Nytt Tema + + + + Create a new theme. + + + + + Edit Theme + Redigera tema + + + + Edit a theme. + + + + + Delete Theme + Ta bort tema + + + + Delete a theme. + + + + + Import Theme + Importera tema + + + + Import a theme. + + + + + Export Theme + Exportera tema + + + + Export a theme. + + + + + &Edit Theme + + + + + &Delete Theme + + + + + Set As &Global Default + + + + + E&xport Theme + + + + + %s (default) + + + + + You must select a theme to edit. + + + + + You must select a theme to delete. + + + + + Delete Confirmation + + + + + Delete theme? + + + + + Error + Fel + + + + You are unable to delete the default theme. + Du kan inte ta bort standardtemat. + + + + Theme %s is use in %s plugin. + + + + + Theme %s is use by the service manager. + + + + + You have not selected a theme. + Du har inte valt ett tema. + + + + Save Theme - (%s) + Spara tema - (%s) + + + + Theme Exported + + + + + Your theme has been successfully exported. + + + + + Theme Export Failed + + + + + Your theme could not be exported due to an error. + + + + + Select Theme Import File + Välj tema importfil + + + + Theme (*.*) + + + + + File is not a valid theme. +The content encoding is not UTF-8. + + + + + File is not a valid theme. + Filen är inte ett giltigt tema. + + + + Theme Exists + Temat finns + + + + A theme with this name already exists. Would you like to overwrite it? + + + + + OpenLP.ThemesTab + + + Themes + Teman + + + + Global Theme + + + + + Theme Level + + + + + S&ong 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. + Använd temat för varje sång i databasen indviduellt. Om en sång inte har ett associerat tema, använd planeringens schema. Om planeringen inte har ett tema, använd globala temat. + + + + &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. + Använd temat för mötesplaneringen, och ignorera sångernas indviduella teman. Om mötesplaneringen inte har ett tema använd då det globala temat. + + + + &Global Level + + + + + Use the global theme, overriding any themes associated with either the service or the songs. + Använd det globala temat, ignorerar teman associerade med mötesplaneringen eller sångerna. + + + + PresentationPlugin + + + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. + + + + + Presentation + Presentation + + + + Presentations + Presentationer + + + + Load + + + + + Load a new Presentation + + + + + Delete + Ta bort + + + + Delete the selected Presentation + + + + + Preview + Förhandsgranska + + + + Preview the selected Presentation + + + + + Live + Live + + + + Send the selected Presentation live + + + + + Service + + + + + Add the selected Presentation to the service + + + + + PresentationPlugin.MediaItem + + + Select Presentation(s) + Välj presentation(er) + + + + Automatic + Automatisk + + + + Present using: + Presentera genom: + + + + File Exists + + + + + A presentation with that filename already exists. + En presentation med det namnet finns redan. + + + + Unsupported File + + + + + This type of presentation is not supported + + + + + You must select an item to delete. + + + + + PresentationPlugin.PresentationTab + + + Presentations + Presentationer + + + + Available Controllers + Tillgängliga Presentationsprogram + + + + Advanced + Avancerat + + + + Allow presentation application to be overriden + + + + + RemotePlugin + + + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. + + + + + Remote + + + + + Remotes + Fjärrstyrningar + + + + RemotePlugin.RemoteTab + + + Remotes + Fjärrstyrningar + + + + Serve on IP address: + + + + + Port number: + + + + + Server Settings + + + + + SongUsagePlugin + + + &Song Usage Tracking + + + + + &Delete Tracking Data + + + + + Delete song usage data up to a specified date. + + + + + &Extract Tracking Data + + + + + Generate a report on song usage. + + + + + Toggle Tracking + + + + + Toggle the tracking of song usage. + + + + + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. + + + + + SongUsage + + + + + SongUsagePlugin.SongUsageDeleteForm + + + Delete Song Usage Data + + + + + Delete Selected Song Usage Events? + Ta bort valda sånganvändningsdata? + + + + Are you sure you want to delete selected Song Usage data? + Vill du verkligen ta bort vald sånganvändningsdata? + + + + SongUsagePlugin.SongUsageDetailForm + + + Song Usage Extraction + Sånganvändningsutdrag + + + + Select Date Range + Välj datumspann + + + + to + till + + + + Report Location + Rapportera placering + + + + Output File Location + Utfil sökväg + + + + SongsPlugin + + + &Song + &Sång + + + + Import songs using the import wizard. + + + + + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. + + + + + Song + Sång + + + + Songs + Sånger + + + + Add + Lägg till + + + + Add a new Song + + + + + Edit + Redigera + + + + Edit the selected Song + + + + + Delete + Ta bort + + + + Delete the selected Song + + + + + Preview + Förhandsgranska + + + + Preview the selected Song + + + + + Live + Live + + + + Send the selected Song live + + + + + Service + + + + + Add the selected Song to the service + + + + + SongsPlugin.AuthorsForm + + + Author Maintenance + Författare underhåll + + + + Display name: + Visningsnamn: + + + + First name: + Förnamn: + + + + Last name: + Efternamn: + + + + Error + Fel + + + + You need to type in the first name of the author. + Du måste ange låtskrivarens förnamn. + + + + You need to type in the last name of the author. + Du måste ange författarens efternamn. + + + + You have not set a display name for the author, would you like me to combine the first and last names for you? + + + + + SongsPlugin.EditSongForm + + + Song Editor + Sångredigerare + + + + &Title: + + + + + Alt&ernate title: + + + + + &Lyrics: + + + + + &Verse order: + + + + + &Add + + + + + &Edit + &Redigera + + + + Ed&it All + + + + + &Delete + + + + + Title && Lyrics + Titel && Sångtexter + + + + Authors + + + + + &Add to Song + &Lägg till i sång + + + + &Remove + &Ta bort + + + + &Manage Authors, Topics, Song Books + + + + + Topic + Ämne + + + + A&dd to Song + Lägg till i sång + + + + R&emove + Ta &bort + + + + Song Book + Sångbok + + + + Song No.: + + + + + Authors, Topics && Song Book + + + + + Theme + Tema + + + + New &Theme + + + + + Copyright Information + Copyright-information + + + + © + + + + + CCLI number: + + + + + Comments + Kommentarer + + + + Theme, Copyright Info && Comments + Tema, copyright-info && kommentarer + + + + Save && Preview + Spara && förhandsgranska + + + + Add Author + + + + + This author does not exist, do you want to add them? + + + + + Error + Fel + + + + This author is already in the list. + + + + + No Author Selected + + + + + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. + + + + + Add Topic + + + + + This topic does not exist, do you want to add it? + + + + + This topic is already in the list. + + + + + No Topic Selected + + + + + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. + + + + + You need to type in a song title. + + + + + You need to type in at least one verse. + + + + + Warning + + + + + You have not added any authors for this song. Do you want to add an author now? + + + + + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. + + + + + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? + + + + + Add Book + + + + + This song book does not exist, do you want to add it? + + + + + SongsPlugin.EditVerseForm + + + Edit Verse + Redigera vers + + + + &Verse type: + + + + + &Insert + + + + + SongsPlugin.ImportWizardForm + + + No OpenLP 2.0 Song Database Selected + + + + + You need to select an OpenLP 2.0 song database file to import from. + + + + + No openlp.org 1.x Song Database Selected + + + + + You need to select an openlp.org 1.x song database file to import from. + + + + + No OpenLyrics Files Selected + + + + + You need to add at least one OpenLyrics song file to import from. + + + + + No OpenSong Files Selected + + + + + You need to add at least one OpenSong song file to import from. + + + + + No Words of Worship Files Selected + + + + + You need to add at least one Words of Worship file to import from. + + + + + No CCLI Files Selected + + + + + You need to add at least one CCLI file to import from. + + + + + No Songs of Fellowship File Selected + + + + + You need to add at least one Songs of Fellowship file to import from. + + + + + No Document/Presentation Selected + + + + + You need to add at least one document or presentation file to import from. + + + + + Select OpenLP 2.0 Database File + + + + + Select openlp.org 1.x Database File + + + + + Select OpenLyrics Files + + + + + Select Open Song Files + + + + + Select Words of Worship Files + + + + + Select CCLI Files + + + + + Select Songs of Fellowship Files + + + + + Select Document/Presentation Files + + + + + Starting import... + Påbörjar import... + + + + Song Import Wizard + + + + + Welcome to the Song Import Wizard + + + + + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. + + + + + Select Import Source + Välj importkälla + + + + Select the import format, and where to import from. + Välj format för import, och plats att importera från. + + + + Format: + Format: + + + + OpenLP 2.0 + OpenLP 2.0 + + + + openlp.org 1.x + + + + + OpenLyrics + + + + + OpenSong + OpenSong + + + + Words of Worship + + + + + CCLI/SongSelect + + + + + Songs of Fellowship + + + + + Generic Document/Presentation + + + + + Filename: + + + + + Browse... + + + + + Add Files... + + + + + Remove File(s) + + + + + Importing + Importerar + + + + Please wait while your songs are imported. + + + + + Ready. + Redo. + + + + %p% + + + + + Importing "%s"... + + + + + Importing %s... + + + + + SongsPlugin.MediaItem + + + Song Maintenance + Sångunderhåll + + + + Maintain the lists of authors, topics and books + Hantera listorna över författare, ämnen och böcker + + + + Search: + Sök: + + + + Type: + Typ: + + + + Clear + + + + + Search + Sök + + + + Titles + Titlar + + + + Lyrics + Sångtexter + + + + Authors + + + + + You must select an item to edit. + + + + + You must select an item to delete. + + + + + Are you sure you want to delete the selected song? + + + + + Are you sure you want to delete the %d selected songs? + + + + + Delete Song(s)? + + + + + CCLI Licence: + CCLI-licens: + + + + SongsPlugin.SongBookForm + + + Song Book Maintenance + + + + + &Name: + + + + + &Publisher: + + + + + Error + Fel + + + + You need to type in a name for the book. + + + + + SongsPlugin.SongImport + + + copyright + + + + + © + + + + + SongsPlugin.SongImportForm + + + Finished import. + Importen är färdig. + + + + Your song import failed. + + + + + SongsPlugin.SongMaintenanceForm + + + Song Maintenance + Sångunderhåll + + + + Authors + + + + + Topics + Ämnen + + + + Song Books + + + + + &Add + + + + + &Edit + &Redigera + + + + &Delete + + + + + Error + Fel + + + + Could not add your author. + + + + + This author already exists. + + + + + Could not add your topic. + + + + + This topic already exists. + + + + + Could not add your book. + + + + + This book already exists. + + + + + Could not save your changes. + + + + + Could not save your modified author, because he already exists. + + + + + Could not save your modified topic, because it already exists. + + + + + Delete Author + Ta bort låtskrivare + + + + Are you sure you want to delete the selected author? + Är du säker på att du vill ta bort den valda låtskrivaren? + + + + This author cannot be deleted, they are currently assigned to at least one song. + + + + + No author selected! + Ingen författare vald! + + + + Delete Topic + Ta bort ämne + + + + Are you sure you want to delete the selected topic? + Är du säker på att du vill ta bort valt ämne? + + + + This topic cannot be deleted, it is currently assigned to at least one song. + + + + + No topic selected! + Inget ämne valt! + + + + Delete Book + Ta bort bok + + + + Are you sure you want to delete the selected book? + Är du säker på att du vill ta bort vald bok? + + + + This book cannot be deleted, it is currently assigned to at least one song. + + + + + No book selected! + Ingen bok vald! + + + + SongsPlugin.SongsTab + + + Songs + Sånger + + + + Songs Mode + Sångläge + + + + Enable search as you type + + + + + Display verses on live tool bar + + + + + SongsPlugin.TopicsForm + + + Topic Maintenance + Ämnesunderhåll + + + + Topic name: + Ämnesnamn: + + + + Error + Fel + + + + You need to type in a topic name! + Du måste skriva in ett namn på ämnet! + + + + SongsPlugin.VerseType + + + Verse + Vers + + + + Chorus + Refräng + + + + Bridge + Brygga + + + + Pre-Chorus + Brygga + + + + Intro + Intro + + + + Ending + Ending + + + + Other + Övrigt + + + From e2c8ee11f223433b120944c26e7207a03515922b Mon Sep 17 00:00:00 2001 From: rimach Date: Sun, 12 Sep 2010 23:03:16 +0200 Subject: [PATCH 13/95] Fix removing dock with translation --- .bzrignore | 0 LICENSE | 0 MANIFEST.in | 0 OpenLP.spec | 0 copyright.txt | 0 demo_theme.xml | 0 documentation/Makefile | 0 documentation/PluginDevelopersGuide.txt | 0 documentation/SongFormat.txt | 0 documentation/make.bat | 0 documentation/plugin.txt | 0 documentation/source/conf.py | 0 documentation/source/core/index.rst | 0 documentation/source/core/lib.rst | 0 documentation/source/core/theme.rst | 0 documentation/source/index.rst | 0 documentation/source/openlp.rst | 0 documentation/source/plugins/bibles.rst | 0 documentation/source/plugins/index.rst | 0 documentation/source/plugins/songs.rst | 0 openlp/.version | 0 openlp/__init__.py | 0 openlp/core/__init__.py | 0 openlp/core/lib/__init__.py | 0 openlp/core/lib/baselistwithdnd.py | 0 openlp/core/lib/db.py | 0 openlp/core/lib/dockwidget.py | 0 openlp/core/lib/eventreceiver.py | 0 openlp/core/lib/htmlbuilder.py | 0 openlp/core/lib/mediamanageritem.py | 2 +- openlp/core/lib/plugin.py | 6 +++--- openlp/core/lib/pluginmanager.py | 0 openlp/core/lib/renderer.py | 0 openlp/core/lib/rendermanager.py | 0 openlp/core/lib/serviceitem.py | 0 openlp/core/lib/settingsmanager.py | 0 openlp/core/lib/settingstab.py | 0 openlp/core/lib/spelltextedit.py | 0 openlp/core/lib/theme.py | 0 openlp/core/lib/toolbar.py | 0 openlp/core/theme/__init__.py | 0 openlp/core/theme/theme.py | 0 openlp/core/ui/__init__.py | 0 openlp/core/ui/aboutdialog.py | 0 openlp/core/ui/aboutform.py | 0 openlp/core/ui/advancedtab.py | 0 openlp/core/ui/amendthemedialog.py | 0 openlp/core/ui/amendthemeform.py | 0 openlp/core/ui/exceptiondialog.py | 0 openlp/core/ui/exceptionform.py | 0 openlp/core/ui/generaltab.py | 0 openlp/core/ui/maindisplay.py | 0 openlp/core/ui/mainwindow.py | 0 openlp/core/ui/mediadockmanager.py | 0 openlp/core/ui/plugindialog.py | 0 openlp/core/ui/pluginform.py | 0 openlp/core/ui/screen.py | 0 openlp/core/ui/serviceitemeditdialog.py | 0 openlp/core/ui/serviceitemeditform.py | 0 openlp/core/ui/servicemanager.py | 0 openlp/core/ui/servicenotedialog.py | 0 openlp/core/ui/servicenoteform.py | 0 openlp/core/ui/settingsdialog.py | 0 openlp/core/ui/settingsform.py | 0 openlp/core/ui/slidecontroller.py | 0 openlp/core/ui/splashscreen.py | 0 openlp/core/ui/thememanager.py | 0 openlp/core/ui/themestab.py | 0 openlp/core/utils/__init__.py | 0 openlp/core/utils/languagemanager.py | 0 openlp/plugins/__init__.py | 0 openlp/plugins/alerts/__init__.py | 0 openlp/plugins/alerts/alertsplugin.py | 1 - openlp/plugins/alerts/forms/__init__.py | 0 openlp/plugins/alerts/forms/alertdialog.py | 0 openlp/plugins/alerts/forms/alertform.py | 0 openlp/plugins/alerts/lib/__init__.py | 0 openlp/plugins/alerts/lib/alertsmanager.py | 0 openlp/plugins/alerts/lib/alertstab.py | 0 openlp/plugins/alerts/lib/db.py | 0 openlp/plugins/bibles/__init__.py | 0 openlp/plugins/bibles/bibleplugin.py | 1 - openlp/plugins/bibles/forms/__init__.py | 0 openlp/plugins/bibles/forms/bibleimportwizard.py | 0 openlp/plugins/bibles/forms/importwizardform.py | 0 openlp/plugins/bibles/lib/__init__.py | 0 openlp/plugins/bibles/lib/biblestab.py | 0 openlp/plugins/bibles/lib/csvbible.py | 0 openlp/plugins/bibles/lib/db.py | 0 openlp/plugins/bibles/lib/http.py | 0 openlp/plugins/bibles/lib/manager.py | 0 openlp/plugins/bibles/lib/mediaitem.py | 0 openlp/plugins/bibles/lib/opensong.py | 0 openlp/plugins/bibles/lib/osis.py | 0 openlp/plugins/bibles/resources/biblegateway.csv | 0 openlp/plugins/bibles/resources/crosswalkbooks.csv | 0 openlp/plugins/bibles/resources/httpbooks.sqlite | Bin openlp/plugins/bibles/resources/osisbooks.csv | 0 openlp/plugins/custom/__init__.py | 0 openlp/plugins/custom/customplugin.py | 1 - openlp/plugins/custom/forms/__init__.py | 0 openlp/plugins/custom/forms/editcustomdialog.py | 0 openlp/plugins/custom/forms/editcustomform.py | 0 openlp/plugins/custom/lib/__init__.py | 0 openlp/plugins/custom/lib/customtab.py | 0 openlp/plugins/custom/lib/customxmlhandler.py | 0 openlp/plugins/custom/lib/db.py | 0 openlp/plugins/custom/lib/mediaitem.py | 0 openlp/plugins/images/__init__.py | 0 openlp/plugins/images/imageplugin.py | 3 +-- openlp/plugins/images/lib/__init__.py | 0 openlp/plugins/images/lib/mediaitem.py | 0 openlp/plugins/media/__init__.py | 0 openlp/plugins/media/lib/__init__.py | 0 openlp/plugins/media/lib/mediaitem.py | 0 openlp/plugins/media/mediaplugin.py | 1 - openlp/plugins/presentations/__init__.py | 0 openlp/plugins/presentations/lib/__init__.py | 0 .../plugins/presentations/lib/impresscontroller.py | 0 openlp/plugins/presentations/lib/mediaitem.py | 0 openlp/plugins/presentations/lib/messagelistener.py | 0 .../presentations/lib/powerpointcontroller.py | 0 .../plugins/presentations/lib/pptviewcontroller.py | 0 .../plugins/presentations/lib/pptviewlib/README.TXT | 0 .../plugins/presentations/lib/pptviewlib/ppttest.py | 0 .../presentations/lib/pptviewlib/pptviewlib.cpp | 0 .../presentations/lib/pptviewlib/pptviewlib.dll | Bin .../presentations/lib/pptviewlib/pptviewlib.h | 0 .../presentations/lib/pptviewlib/pptviewlib.vcproj | 0 .../plugins/presentations/lib/pptviewlib/test.ppt | Bin .../presentations/lib/presentationcontroller.py | 0 openlp/plugins/presentations/lib/presentationtab.py | 0 openlp/plugins/presentations/presentationplugin.py | 1 - openlp/plugins/remotes/__init__.py | 0 openlp/plugins/remotes/html/index.html | 0 openlp/plugins/remotes/html/init.js | 0 openlp/plugins/remotes/html/openlp.js | 0 openlp/plugins/remotes/html/openlp.service.js | 0 openlp/plugins/remotes/html/style.css | 0 openlp/plugins/remotes/lib/__init__.py | 0 openlp/plugins/remotes/lib/httpserver.py | 0 openlp/plugins/remotes/lib/remotetab.py | 0 openlp/plugins/remotes/remoteplugin.py | 1 - openlp/plugins/songs/__init__.py | 0 openlp/plugins/songs/forms/__init__.py | 0 openlp/plugins/songs/forms/authorsdialog.py | 0 openlp/plugins/songs/forms/authorsform.py | 0 openlp/plugins/songs/forms/editsongdialog.py | 0 openlp/plugins/songs/forms/editsongform.py | 0 openlp/plugins/songs/forms/editversedialog.py | 0 openlp/plugins/songs/forms/editverseform.py | 0 openlp/plugins/songs/forms/songbookdialog.py | 0 openlp/plugins/songs/forms/songbookform.py | 0 openlp/plugins/songs/forms/songimportform.py | 0 openlp/plugins/songs/forms/songimportwizard.py | 0 openlp/plugins/songs/forms/songmaintenancedialog.py | 0 openlp/plugins/songs/forms/songmaintenanceform.py | 0 openlp/plugins/songs/forms/topicsdialog.py | 0 openlp/plugins/songs/forms/topicsform.py | 0 openlp/plugins/songs/lib/__init__.py | 0 openlp/plugins/songs/lib/db.py | 0 openlp/plugins/songs/lib/importer.py | 0 openlp/plugins/songs/lib/mediaitem.py | 0 openlp/plugins/songs/lib/olp1import.py | 0 openlp/plugins/songs/lib/olpimport.py | 0 openlp/plugins/songs/lib/oooimport.py | 0 openlp/plugins/songs/lib/opensongimport.py | 0 openlp/plugins/songs/lib/sofimport.py | 0 openlp/plugins/songs/lib/songimport.py | 0 openlp/plugins/songs/lib/songstab.py | 0 openlp/plugins/songs/lib/songxml.py | 0 openlp/plugins/songs/lib/test/test.opensong | 0 openlp/plugins/songs/lib/test/test.opensong.zip | Bin openlp/plugins/songs/lib/test/test2.opensong | 0 .../plugins/songs/lib/test/test_importing_lots.py | 0 .../plugins/songs/lib/test/test_opensongimport.py | 0 openlp/plugins/songs/lib/wowimport.py | 0 openlp/plugins/songs/lib/xml.py | 0 openlp/plugins/songs/songsplugin.py | 1 - openlp/plugins/songusage/__init__.py | 0 openlp/plugins/songusage/forms/__init__.py | 0 .../songusage/forms/songusagedeletedialog.py | 0 .../plugins/songusage/forms/songusagedeleteform.py | 0 .../songusage/forms/songusagedetaildialog.py | 0 .../plugins/songusage/forms/songusagedetailform.py | 0 openlp/plugins/songusage/lib/__init__.py | 0 openlp/plugins/songusage/lib/db.py | 0 openlp/plugins/songusage/songusageplugin.py | 1 - resources/.config/openlp/openlp.conf | 0 resources/.local/share/openlp/bibles/asv.sqlite | Bin .../.local/share/openlp/themes/Bible Readings.png | Bin .../openlp/themes/Bible Readings/Bible Readings.xml | 0 .../share/openlp/themes/Bible Readings/open6_2.jpg | Bin resources/.local/share/openlp/themes/Blue.png | Bin resources/.local/share/openlp/themes/Blue/Blue.xml | 0 resources/.local/share/openlp/themes/theme1.png | Bin .../.local/share/openlp/themes/theme1/theme1.xml | 0 resources/.local/share/openlp/themes/theme2.png | Bin .../.local/share/openlp/themes/theme2/theme2.xml | 0 resources/.local/share/openlp/themes/theme3.png | Bin .../.local/share/openlp/themes/theme3/sunset2.jpg | Bin .../.local/share/openlp/themes/theme3/theme3.xml | 0 resources/.openlp/data/bible/asv.sqlite | Bin resources/.openlp/openlp.conf | 0 resources/.openlp/openlp.conf_posix | 0 resources/.openlp/openlp.conf_win | 0 resources/Fedora/191/OpenLP.spec | 0 resources/bibles/afr1953.osis | 0 resources/bibles/kjc.osis | 0 resources/bibles/osisbooks_en.txt | 0 resources/forms/about.ui | 0 resources/forms/alertdialog.ui | 0 resources/forms/amendthemedialog.ui | 0 resources/forms/authorsdialog.ui | 0 resources/forms/bibleimportdialog.ui | 0 resources/forms/bibleimportwizard.ui | 0 resources/forms/displaytab.ui | 0 resources/forms/editcustomdialog.ui | 0 resources/forms/editsongdialog.ui | 0 resources/forms/editversedialog.ui | 0 resources/forms/exceptiondialog.ui | 0 resources/forms/mainwindow.ui | 0 resources/forms/plugindialoglistform.ui | 0 resources/forms/serviceitemeditdialog.ui | 0 resources/forms/servicenotedialog.ui | 0 resources/forms/settings.ui | 0 resources/forms/songbookdialog.ui | 0 resources/forms/songexport.ui | 0 resources/forms/songimportwizard.ui | 0 resources/forms/songmaintenance.ui | 0 resources/forms/songusagedeletedialog.ui | 0 resources/forms/songusagedetaildialog.ui | 0 resources/forms/splashscreen.ui | 0 resources/forms/themewizard.ui | 0 resources/forms/topicsdialog.ui | 0 resources/i18n/openlp_af.ts | 0 resources/i18n/openlp_de.ts | 8 ++++---- resources/i18n/openlp_en.ts | 0 resources/i18n/openlp_en_GB.ts | 0 resources/i18n/openlp_en_ZA.ts | 0 resources/i18n/openlp_es.ts | 0 resources/i18n/openlp_et.ts | 0 resources/i18n/openlp_hu.ts | 0 resources/i18n/openlp_ko.ts | 0 resources/i18n/openlp_nb.ts | 0 resources/i18n/openlp_pt_BR.ts | 0 resources/i18n/openlp_sv.ts | 0 resources/images/OpenLP.ico | Bin resources/images/about-new.bmp | Bin resources/images/author_add.png | Bin resources/images/author_delete.png | Bin resources/images/author_edit.png | Bin resources/images/author_maintenance.png | Bin resources/images/book_add.png | Bin resources/images/book_delete.png | Bin resources/images/book_edit.png | Bin resources/images/book_maintenance.png | Bin resources/images/custom_delete.png | Bin resources/images/custom_edit.png | Bin resources/images/custom_new.png | Bin resources/images/exception.png | Bin resources/images/export_load.png | Bin resources/images/export_move_to_list.png | Bin resources/images/export_remove.png | Bin resources/images/export_selectall.png | Bin resources/images/general_add.png | Bin resources/images/general_delete.png | Bin resources/images/general_edit.png | Bin resources/images/general_export.png | Bin resources/images/general_import.png | Bin resources/images/general_live.png | Bin resources/images/general_new.png | Bin resources/images/general_open.png | Bin resources/images/general_preview.png | Bin resources/images/general_save.png | Bin resources/images/image_clapperboard.png | Bin resources/images/image_delete.png | Bin resources/images/image_load.png | Bin resources/images/import_load.png | Bin resources/images/import_move_to_list.png | Bin resources/images/import_remove.png | Bin resources/images/import_selectall.png | Bin resources/images/media_playback_pause.png | Bin resources/images/media_playback_start.png | Bin resources/images/media_playback_stop.png | Bin resources/images/media_stop.png | Bin resources/images/media_time.png | Bin resources/images/messagebox_critical.png | Bin resources/images/messagebox_info.png | Bin resources/images/messagebox_warning.png | Bin resources/images/openlp-2.qrc | 0 resources/images/openlp-about-logo.png | Bin resources/images/openlp-about-logo.svg | 0 resources/images/openlp-default-dualdisplay.svg | 0 resources/images/openlp-logo-128x128.png | Bin resources/images/openlp-logo-16x16.png | Bin resources/images/openlp-logo-256x256.png | Bin resources/images/openlp-logo-32x32.png | Bin resources/images/openlp-logo-420x420.png | Bin resources/images/openlp-logo-48x48.png | Bin resources/images/openlp-logo-64x64.png | Bin resources/images/openlp-logo.svg | 0 resources/images/openlp-splash-screen.png | Bin resources/images/openlp-splash-screen.svg | 0 resources/images/openlp.org-icon-32.bmp | Bin resources/images/openlp.org.ico | Bin resources/images/openlp.svg | 0 resources/images/plugin_alerts.png | Bin resources/images/plugin_bibles.png | Bin resources/images/plugin_custom.png | Bin resources/images/plugin_images.png | Bin resources/images/plugin_media.png | Bin resources/images/plugin_presentations.png | Bin resources/images/plugin_remote.png | Bin resources/images/plugin_songs.png | Bin resources/images/plugin_songusage.png | Bin resources/images/presentation_delete.png | Bin resources/images/presentation_load.png | Bin resources/images/service_bottom.png | Bin resources/images/service_delete.png | Bin resources/images/service_down.png | Bin resources/images/service_edit.png | Bin resources/images/service_item_notes.png | Bin resources/images/service_new.png | Bin resources/images/service_notes.png | Bin resources/images/service_open.png | Bin resources/images/service_save.png | Bin resources/images/service_top.png | Bin resources/images/service_up.png | Bin resources/images/settings_plugin_list.png | Bin resources/images/slide_blank.png | Bin resources/images/slide_close.png | Bin resources/images/slide_desktop.png | Bin resources/images/slide_first.png | Bin resources/images/slide_last.png | Bin resources/images/slide_next.png | Bin resources/images/slide_previous.png | Bin resources/images/slide_theme.png | Bin resources/images/song_author_edit.png | Bin resources/images/song_book_edit.png | Bin resources/images/song_delete.png | Bin resources/images/song_edit.png | Bin resources/images/song_export.png | Bin resources/images/song_maintenance.png | Bin resources/images/song_new.png | Bin resources/images/song_topic_edit.png | Bin resources/images/splash-screen-new.bmp | Bin resources/images/system_about.png | Bin resources/images/system_add.png | Bin resources/images/system_close.png | Bin resources/images/system_contribute.png | Bin resources/images/system_exit.png | Bin resources/images/system_help_contents.png | Bin resources/images/system_live.png | Bin resources/images/system_mediamanager.png | Bin resources/images/system_preview.png | Bin resources/images/system_servicemanager.png | Bin resources/images/system_settings.png | Bin resources/images/system_thememanager.png | Bin resources/images/theme_delete.png | Bin resources/images/theme_edit.png | Bin resources/images/theme_export.png | Bin resources/images/theme_import.png | Bin resources/images/theme_new.png | Bin resources/images/tools_add.png | Bin resources/images/tools_alert.png | Bin resources/images/topic_add.png | Bin resources/images/topic_delete.png | Bin resources/images/topic_edit.png | Bin resources/images/topic_maintenance.png | Bin resources/images/video_delete.png | Bin resources/images/video_load.png | Bin resources/images/wizard_importbible.bmp | Bin resources/images/wizard_importsong.bmp | Bin resources/innosetup/LICENSE.txt | 0 resources/innosetup/OpenLP-2.0.iss | 0 resources/innosetup/OpenLP.ico | Bin resources/innosetup/OpenLP.reg | Bin resources/innosetup/openlp.conf | 0 resources/openlp.desktop | 0 ...enlp.plugins.presentations.presentationplugin.py | 0 resources/pyinstaller/hook-openlp.py | 0 resources/songs/songs.sqlite | Bin resources/videos/AspectRatioTest-16-9-ana.h264.mp4 | Bin resources/videos/AspectRatioTest-16-9-squ.h264.mp4 | Bin resources/videos/AspectRatioTest-16-9-squ.xvid.avi | Bin resources/videos/AspectRatioTest-4-3-ana.h264.mp4 | Bin resources/videos/AspectRatioTest-4-3-squ.h264.mp4 | Bin resources/videos/AspectRatioTest-4-3-squ.xvid.avi | Bin resources/videos/AspectRatioTest-rand-squ.h264.mp4 | Bin resources/videos/left-720.png | Bin resources/videos/normal-720.png | Bin resources/videos/right-720.png | Bin resources/videos/synctest.24.avs | 0 resources/videos/synctest.24.muxed.avi | Bin resources/videos/synctest.24.muxed.mp4 | Bin resources/videos/synctest.25.avs | 0 resources/videos/synctest.25.muxed.avi | Bin resources/videos/synctest.30.avs | 0 resources/videos/synctest.30.muxed.avi | Bin resources/videos/synctest.30.small.avs | 0 resources/videos/synctest.30.small.muxed.avi | Bin resources/videos/synctest.avsi | 0 scripts/resources.patch | 0 scripts/windows-builder.py | 0 405 files changed, 9 insertions(+), 18 deletions(-) mode change 100644 => 100755 .bzrignore mode change 100644 => 100755 LICENSE mode change 100644 => 100755 MANIFEST.in mode change 100644 => 100755 OpenLP.spec mode change 100644 => 100755 copyright.txt mode change 100644 => 100755 demo_theme.xml mode change 100644 => 100755 documentation/Makefile mode change 100644 => 100755 documentation/PluginDevelopersGuide.txt mode change 100644 => 100755 documentation/SongFormat.txt mode change 100644 => 100755 documentation/make.bat mode change 100644 => 100755 documentation/plugin.txt mode change 100644 => 100755 documentation/source/conf.py mode change 100644 => 100755 documentation/source/core/index.rst mode change 100644 => 100755 documentation/source/core/lib.rst mode change 100644 => 100755 documentation/source/core/theme.rst mode change 100644 => 100755 documentation/source/index.rst mode change 100644 => 100755 documentation/source/openlp.rst mode change 100644 => 100755 documentation/source/plugins/bibles.rst mode change 100644 => 100755 documentation/source/plugins/index.rst mode change 100644 => 100755 documentation/source/plugins/songs.rst mode change 100644 => 100755 openlp/.version mode change 100644 => 100755 openlp/__init__.py mode change 100644 => 100755 openlp/core/__init__.py mode change 100644 => 100755 openlp/core/lib/__init__.py mode change 100644 => 100755 openlp/core/lib/baselistwithdnd.py mode change 100644 => 100755 openlp/core/lib/db.py mode change 100644 => 100755 openlp/core/lib/dockwidget.py mode change 100644 => 100755 openlp/core/lib/eventreceiver.py mode change 100644 => 100755 openlp/core/lib/htmlbuilder.py mode change 100644 => 100755 openlp/core/lib/mediamanageritem.py mode change 100644 => 100755 openlp/core/lib/plugin.py mode change 100644 => 100755 openlp/core/lib/pluginmanager.py mode change 100644 => 100755 openlp/core/lib/renderer.py mode change 100644 => 100755 openlp/core/lib/rendermanager.py mode change 100644 => 100755 openlp/core/lib/serviceitem.py mode change 100644 => 100755 openlp/core/lib/settingsmanager.py mode change 100644 => 100755 openlp/core/lib/settingstab.py mode change 100644 => 100755 openlp/core/lib/spelltextedit.py mode change 100644 => 100755 openlp/core/lib/theme.py mode change 100644 => 100755 openlp/core/lib/toolbar.py mode change 100644 => 100755 openlp/core/theme/__init__.py mode change 100644 => 100755 openlp/core/theme/theme.py mode change 100644 => 100755 openlp/core/ui/__init__.py mode change 100644 => 100755 openlp/core/ui/aboutdialog.py mode change 100644 => 100755 openlp/core/ui/aboutform.py mode change 100644 => 100755 openlp/core/ui/advancedtab.py mode change 100644 => 100755 openlp/core/ui/amendthemedialog.py mode change 100644 => 100755 openlp/core/ui/amendthemeform.py mode change 100644 => 100755 openlp/core/ui/exceptiondialog.py mode change 100644 => 100755 openlp/core/ui/exceptionform.py mode change 100644 => 100755 openlp/core/ui/generaltab.py mode change 100644 => 100755 openlp/core/ui/maindisplay.py mode change 100644 => 100755 openlp/core/ui/mainwindow.py mode change 100644 => 100755 openlp/core/ui/mediadockmanager.py mode change 100644 => 100755 openlp/core/ui/plugindialog.py mode change 100644 => 100755 openlp/core/ui/pluginform.py mode change 100644 => 100755 openlp/core/ui/screen.py mode change 100644 => 100755 openlp/core/ui/serviceitemeditdialog.py mode change 100644 => 100755 openlp/core/ui/serviceitemeditform.py mode change 100644 => 100755 openlp/core/ui/servicemanager.py mode change 100644 => 100755 openlp/core/ui/servicenotedialog.py mode change 100644 => 100755 openlp/core/ui/servicenoteform.py mode change 100644 => 100755 openlp/core/ui/settingsdialog.py mode change 100644 => 100755 openlp/core/ui/settingsform.py mode change 100644 => 100755 openlp/core/ui/slidecontroller.py mode change 100644 => 100755 openlp/core/ui/splashscreen.py mode change 100644 => 100755 openlp/core/ui/thememanager.py mode change 100644 => 100755 openlp/core/ui/themestab.py mode change 100644 => 100755 openlp/core/utils/__init__.py mode change 100644 => 100755 openlp/core/utils/languagemanager.py mode change 100644 => 100755 openlp/plugins/__init__.py mode change 100644 => 100755 openlp/plugins/alerts/__init__.py mode change 100644 => 100755 openlp/plugins/alerts/alertsplugin.py mode change 100644 => 100755 openlp/plugins/alerts/forms/__init__.py mode change 100644 => 100755 openlp/plugins/alerts/forms/alertdialog.py mode change 100644 => 100755 openlp/plugins/alerts/forms/alertform.py mode change 100644 => 100755 openlp/plugins/alerts/lib/__init__.py mode change 100644 => 100755 openlp/plugins/alerts/lib/alertsmanager.py mode change 100644 => 100755 openlp/plugins/alerts/lib/alertstab.py mode change 100644 => 100755 openlp/plugins/alerts/lib/db.py mode change 100644 => 100755 openlp/plugins/bibles/__init__.py mode change 100644 => 100755 openlp/plugins/bibles/bibleplugin.py mode change 100644 => 100755 openlp/plugins/bibles/forms/__init__.py mode change 100644 => 100755 openlp/plugins/bibles/forms/bibleimportwizard.py mode change 100644 => 100755 openlp/plugins/bibles/forms/importwizardform.py mode change 100644 => 100755 openlp/plugins/bibles/lib/__init__.py mode change 100644 => 100755 openlp/plugins/bibles/lib/biblestab.py mode change 100644 => 100755 openlp/plugins/bibles/lib/csvbible.py mode change 100644 => 100755 openlp/plugins/bibles/lib/db.py mode change 100644 => 100755 openlp/plugins/bibles/lib/http.py mode change 100644 => 100755 openlp/plugins/bibles/lib/manager.py mode change 100644 => 100755 openlp/plugins/bibles/lib/mediaitem.py mode change 100644 => 100755 openlp/plugins/bibles/lib/opensong.py mode change 100644 => 100755 openlp/plugins/bibles/lib/osis.py mode change 100644 => 100755 openlp/plugins/bibles/resources/biblegateway.csv mode change 100644 => 100755 openlp/plugins/bibles/resources/crosswalkbooks.csv mode change 100644 => 100755 openlp/plugins/bibles/resources/httpbooks.sqlite mode change 100644 => 100755 openlp/plugins/bibles/resources/osisbooks.csv mode change 100644 => 100755 openlp/plugins/custom/__init__.py mode change 100644 => 100755 openlp/plugins/custom/customplugin.py mode change 100644 => 100755 openlp/plugins/custom/forms/__init__.py mode change 100644 => 100755 openlp/plugins/custom/forms/editcustomdialog.py mode change 100644 => 100755 openlp/plugins/custom/forms/editcustomform.py mode change 100644 => 100755 openlp/plugins/custom/lib/__init__.py mode change 100644 => 100755 openlp/plugins/custom/lib/customtab.py mode change 100644 => 100755 openlp/plugins/custom/lib/customxmlhandler.py mode change 100644 => 100755 openlp/plugins/custom/lib/db.py mode change 100644 => 100755 openlp/plugins/custom/lib/mediaitem.py mode change 100644 => 100755 openlp/plugins/images/__init__.py mode change 100644 => 100755 openlp/plugins/images/imageplugin.py mode change 100644 => 100755 openlp/plugins/images/lib/__init__.py mode change 100644 => 100755 openlp/plugins/images/lib/mediaitem.py mode change 100644 => 100755 openlp/plugins/media/__init__.py mode change 100644 => 100755 openlp/plugins/media/lib/__init__.py mode change 100644 => 100755 openlp/plugins/media/lib/mediaitem.py mode change 100644 => 100755 openlp/plugins/media/mediaplugin.py mode change 100644 => 100755 openlp/plugins/presentations/__init__.py mode change 100644 => 100755 openlp/plugins/presentations/lib/__init__.py mode change 100644 => 100755 openlp/plugins/presentations/lib/impresscontroller.py mode change 100644 => 100755 openlp/plugins/presentations/lib/mediaitem.py mode change 100644 => 100755 openlp/plugins/presentations/lib/messagelistener.py mode change 100644 => 100755 openlp/plugins/presentations/lib/powerpointcontroller.py mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewcontroller.py mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/README.TXT mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/ppttest.py mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj mode change 100644 => 100755 openlp/plugins/presentations/lib/pptviewlib/test.ppt mode change 100644 => 100755 openlp/plugins/presentations/lib/presentationcontroller.py mode change 100644 => 100755 openlp/plugins/presentations/lib/presentationtab.py mode change 100644 => 100755 openlp/plugins/presentations/presentationplugin.py mode change 100644 => 100755 openlp/plugins/remotes/__init__.py mode change 100644 => 100755 openlp/plugins/remotes/html/index.html mode change 100644 => 100755 openlp/plugins/remotes/html/init.js mode change 100644 => 100755 openlp/plugins/remotes/html/openlp.js mode change 100644 => 100755 openlp/plugins/remotes/html/openlp.service.js mode change 100644 => 100755 openlp/plugins/remotes/html/style.css mode change 100644 => 100755 openlp/plugins/remotes/lib/__init__.py mode change 100644 => 100755 openlp/plugins/remotes/lib/httpserver.py mode change 100644 => 100755 openlp/plugins/remotes/lib/remotetab.py mode change 100644 => 100755 openlp/plugins/remotes/remoteplugin.py mode change 100644 => 100755 openlp/plugins/songs/__init__.py mode change 100644 => 100755 openlp/plugins/songs/forms/__init__.py mode change 100644 => 100755 openlp/plugins/songs/forms/authorsdialog.py mode change 100644 => 100755 openlp/plugins/songs/forms/authorsform.py mode change 100644 => 100755 openlp/plugins/songs/forms/editsongdialog.py mode change 100644 => 100755 openlp/plugins/songs/forms/editsongform.py mode change 100644 => 100755 openlp/plugins/songs/forms/editversedialog.py mode change 100644 => 100755 openlp/plugins/songs/forms/editverseform.py mode change 100644 => 100755 openlp/plugins/songs/forms/songbookdialog.py mode change 100644 => 100755 openlp/plugins/songs/forms/songbookform.py mode change 100644 => 100755 openlp/plugins/songs/forms/songimportform.py mode change 100644 => 100755 openlp/plugins/songs/forms/songimportwizard.py mode change 100644 => 100755 openlp/plugins/songs/forms/songmaintenancedialog.py mode change 100644 => 100755 openlp/plugins/songs/forms/songmaintenanceform.py mode change 100644 => 100755 openlp/plugins/songs/forms/topicsdialog.py mode change 100644 => 100755 openlp/plugins/songs/forms/topicsform.py mode change 100644 => 100755 openlp/plugins/songs/lib/__init__.py mode change 100644 => 100755 openlp/plugins/songs/lib/db.py mode change 100644 => 100755 openlp/plugins/songs/lib/importer.py mode change 100644 => 100755 openlp/plugins/songs/lib/mediaitem.py mode change 100644 => 100755 openlp/plugins/songs/lib/olp1import.py mode change 100644 => 100755 openlp/plugins/songs/lib/olpimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/oooimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/opensongimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/sofimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/songimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/songstab.py mode change 100644 => 100755 openlp/plugins/songs/lib/songxml.py mode change 100644 => 100755 openlp/plugins/songs/lib/test/test.opensong mode change 100644 => 100755 openlp/plugins/songs/lib/test/test.opensong.zip mode change 100644 => 100755 openlp/plugins/songs/lib/test/test2.opensong mode change 100644 => 100755 openlp/plugins/songs/lib/test/test_importing_lots.py mode change 100644 => 100755 openlp/plugins/songs/lib/test/test_opensongimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/wowimport.py mode change 100644 => 100755 openlp/plugins/songs/lib/xml.py mode change 100644 => 100755 openlp/plugins/songs/songsplugin.py mode change 100644 => 100755 openlp/plugins/songusage/__init__.py mode change 100644 => 100755 openlp/plugins/songusage/forms/__init__.py mode change 100644 => 100755 openlp/plugins/songusage/forms/songusagedeletedialog.py mode change 100644 => 100755 openlp/plugins/songusage/forms/songusagedeleteform.py mode change 100644 => 100755 openlp/plugins/songusage/forms/songusagedetaildialog.py mode change 100644 => 100755 openlp/plugins/songusage/forms/songusagedetailform.py mode change 100644 => 100755 openlp/plugins/songusage/lib/__init__.py mode change 100644 => 100755 openlp/plugins/songusage/lib/db.py mode change 100644 => 100755 openlp/plugins/songusage/songusageplugin.py mode change 100644 => 100755 resources/.config/openlp/openlp.conf mode change 100644 => 100755 resources/.local/share/openlp/bibles/asv.sqlite mode change 100644 => 100755 resources/.local/share/openlp/themes/Bible Readings.png mode change 100644 => 100755 resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml mode change 100644 => 100755 resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg mode change 100644 => 100755 resources/.local/share/openlp/themes/Blue.png mode change 100644 => 100755 resources/.local/share/openlp/themes/Blue/Blue.xml mode change 100644 => 100755 resources/.local/share/openlp/themes/theme1.png mode change 100644 => 100755 resources/.local/share/openlp/themes/theme1/theme1.xml mode change 100644 => 100755 resources/.local/share/openlp/themes/theme2.png mode change 100644 => 100755 resources/.local/share/openlp/themes/theme2/theme2.xml mode change 100644 => 100755 resources/.local/share/openlp/themes/theme3.png mode change 100644 => 100755 resources/.local/share/openlp/themes/theme3/sunset2.jpg mode change 100644 => 100755 resources/.local/share/openlp/themes/theme3/theme3.xml mode change 100644 => 100755 resources/.openlp/data/bible/asv.sqlite mode change 100644 => 100755 resources/.openlp/openlp.conf mode change 100644 => 100755 resources/.openlp/openlp.conf_posix mode change 100644 => 100755 resources/.openlp/openlp.conf_win mode change 100644 => 100755 resources/Fedora/191/OpenLP.spec mode change 100644 => 100755 resources/bibles/afr1953.osis mode change 100644 => 100755 resources/bibles/kjc.osis mode change 100644 => 100755 resources/bibles/osisbooks_en.txt mode change 100644 => 100755 resources/forms/about.ui mode change 100644 => 100755 resources/forms/alertdialog.ui mode change 100644 => 100755 resources/forms/amendthemedialog.ui mode change 100644 => 100755 resources/forms/authorsdialog.ui mode change 100644 => 100755 resources/forms/bibleimportdialog.ui mode change 100644 => 100755 resources/forms/bibleimportwizard.ui mode change 100644 => 100755 resources/forms/displaytab.ui mode change 100644 => 100755 resources/forms/editcustomdialog.ui mode change 100644 => 100755 resources/forms/editsongdialog.ui mode change 100644 => 100755 resources/forms/editversedialog.ui mode change 100644 => 100755 resources/forms/exceptiondialog.ui mode change 100644 => 100755 resources/forms/mainwindow.ui mode change 100644 => 100755 resources/forms/plugindialoglistform.ui mode change 100644 => 100755 resources/forms/serviceitemeditdialog.ui mode change 100644 => 100755 resources/forms/servicenotedialog.ui mode change 100644 => 100755 resources/forms/settings.ui mode change 100644 => 100755 resources/forms/songbookdialog.ui mode change 100644 => 100755 resources/forms/songexport.ui mode change 100644 => 100755 resources/forms/songimportwizard.ui mode change 100644 => 100755 resources/forms/songmaintenance.ui mode change 100644 => 100755 resources/forms/songusagedeletedialog.ui mode change 100644 => 100755 resources/forms/songusagedetaildialog.ui mode change 100644 => 100755 resources/forms/splashscreen.ui mode change 100644 => 100755 resources/forms/themewizard.ui mode change 100644 => 100755 resources/forms/topicsdialog.ui mode change 100644 => 100755 resources/i18n/openlp_af.ts mode change 100644 => 100755 resources/i18n/openlp_de.ts mode change 100644 => 100755 resources/i18n/openlp_en.ts mode change 100644 => 100755 resources/i18n/openlp_en_GB.ts mode change 100644 => 100755 resources/i18n/openlp_en_ZA.ts mode change 100644 => 100755 resources/i18n/openlp_es.ts mode change 100644 => 100755 resources/i18n/openlp_et.ts mode change 100644 => 100755 resources/i18n/openlp_hu.ts mode change 100644 => 100755 resources/i18n/openlp_ko.ts mode change 100644 => 100755 resources/i18n/openlp_nb.ts mode change 100644 => 100755 resources/i18n/openlp_pt_BR.ts mode change 100644 => 100755 resources/i18n/openlp_sv.ts mode change 100644 => 100755 resources/images/OpenLP.ico mode change 100644 => 100755 resources/images/about-new.bmp mode change 100644 => 100755 resources/images/author_add.png mode change 100644 => 100755 resources/images/author_delete.png mode change 100644 => 100755 resources/images/author_edit.png mode change 100644 => 100755 resources/images/author_maintenance.png mode change 100644 => 100755 resources/images/book_add.png mode change 100644 => 100755 resources/images/book_delete.png mode change 100644 => 100755 resources/images/book_edit.png mode change 100644 => 100755 resources/images/book_maintenance.png mode change 100644 => 100755 resources/images/custom_delete.png mode change 100644 => 100755 resources/images/custom_edit.png mode change 100644 => 100755 resources/images/custom_new.png mode change 100644 => 100755 resources/images/exception.png mode change 100644 => 100755 resources/images/export_load.png mode change 100644 => 100755 resources/images/export_move_to_list.png mode change 100644 => 100755 resources/images/export_remove.png mode change 100644 => 100755 resources/images/export_selectall.png mode change 100644 => 100755 resources/images/general_add.png mode change 100644 => 100755 resources/images/general_delete.png mode change 100644 => 100755 resources/images/general_edit.png mode change 100644 => 100755 resources/images/general_export.png mode change 100644 => 100755 resources/images/general_import.png mode change 100644 => 100755 resources/images/general_live.png mode change 100644 => 100755 resources/images/general_new.png mode change 100644 => 100755 resources/images/general_open.png mode change 100644 => 100755 resources/images/general_preview.png mode change 100644 => 100755 resources/images/general_save.png mode change 100644 => 100755 resources/images/image_clapperboard.png mode change 100644 => 100755 resources/images/image_delete.png mode change 100644 => 100755 resources/images/image_load.png mode change 100644 => 100755 resources/images/import_load.png mode change 100644 => 100755 resources/images/import_move_to_list.png mode change 100644 => 100755 resources/images/import_remove.png mode change 100644 => 100755 resources/images/import_selectall.png mode change 100644 => 100755 resources/images/media_playback_pause.png mode change 100644 => 100755 resources/images/media_playback_start.png mode change 100644 => 100755 resources/images/media_playback_stop.png mode change 100644 => 100755 resources/images/media_stop.png mode change 100644 => 100755 resources/images/media_time.png mode change 100644 => 100755 resources/images/messagebox_critical.png mode change 100644 => 100755 resources/images/messagebox_info.png mode change 100644 => 100755 resources/images/messagebox_warning.png mode change 100644 => 100755 resources/images/openlp-2.qrc mode change 100644 => 100755 resources/images/openlp-about-logo.png mode change 100644 => 100755 resources/images/openlp-about-logo.svg mode change 100644 => 100755 resources/images/openlp-default-dualdisplay.svg mode change 100644 => 100755 resources/images/openlp-logo-128x128.png mode change 100644 => 100755 resources/images/openlp-logo-16x16.png mode change 100644 => 100755 resources/images/openlp-logo-256x256.png mode change 100644 => 100755 resources/images/openlp-logo-32x32.png mode change 100644 => 100755 resources/images/openlp-logo-420x420.png mode change 100644 => 100755 resources/images/openlp-logo-48x48.png mode change 100644 => 100755 resources/images/openlp-logo-64x64.png mode change 100644 => 100755 resources/images/openlp-logo.svg mode change 100644 => 100755 resources/images/openlp-splash-screen.png mode change 100644 => 100755 resources/images/openlp-splash-screen.svg mode change 100644 => 100755 resources/images/openlp.org-icon-32.bmp mode change 100644 => 100755 resources/images/openlp.org.ico mode change 100644 => 100755 resources/images/openlp.svg mode change 100644 => 100755 resources/images/plugin_alerts.png mode change 100644 => 100755 resources/images/plugin_bibles.png mode change 100644 => 100755 resources/images/plugin_custom.png mode change 100644 => 100755 resources/images/plugin_images.png mode change 100644 => 100755 resources/images/plugin_media.png mode change 100644 => 100755 resources/images/plugin_presentations.png mode change 100644 => 100755 resources/images/plugin_remote.png mode change 100644 => 100755 resources/images/plugin_songs.png mode change 100644 => 100755 resources/images/plugin_songusage.png mode change 100644 => 100755 resources/images/presentation_delete.png mode change 100644 => 100755 resources/images/presentation_load.png mode change 100644 => 100755 resources/images/service_bottom.png mode change 100644 => 100755 resources/images/service_delete.png mode change 100644 => 100755 resources/images/service_down.png mode change 100644 => 100755 resources/images/service_edit.png mode change 100644 => 100755 resources/images/service_item_notes.png mode change 100644 => 100755 resources/images/service_new.png mode change 100644 => 100755 resources/images/service_notes.png mode change 100644 => 100755 resources/images/service_open.png mode change 100644 => 100755 resources/images/service_save.png mode change 100644 => 100755 resources/images/service_top.png mode change 100644 => 100755 resources/images/service_up.png mode change 100644 => 100755 resources/images/settings_plugin_list.png mode change 100644 => 100755 resources/images/slide_blank.png mode change 100644 => 100755 resources/images/slide_close.png mode change 100644 => 100755 resources/images/slide_desktop.png mode change 100644 => 100755 resources/images/slide_first.png mode change 100644 => 100755 resources/images/slide_last.png mode change 100644 => 100755 resources/images/slide_next.png mode change 100644 => 100755 resources/images/slide_previous.png mode change 100644 => 100755 resources/images/slide_theme.png mode change 100644 => 100755 resources/images/song_author_edit.png mode change 100644 => 100755 resources/images/song_book_edit.png mode change 100644 => 100755 resources/images/song_delete.png mode change 100644 => 100755 resources/images/song_edit.png mode change 100644 => 100755 resources/images/song_export.png mode change 100644 => 100755 resources/images/song_maintenance.png mode change 100644 => 100755 resources/images/song_new.png mode change 100644 => 100755 resources/images/song_topic_edit.png mode change 100644 => 100755 resources/images/splash-screen-new.bmp mode change 100644 => 100755 resources/images/system_about.png mode change 100644 => 100755 resources/images/system_add.png mode change 100644 => 100755 resources/images/system_close.png mode change 100644 => 100755 resources/images/system_contribute.png mode change 100644 => 100755 resources/images/system_exit.png mode change 100644 => 100755 resources/images/system_help_contents.png mode change 100644 => 100755 resources/images/system_live.png mode change 100644 => 100755 resources/images/system_mediamanager.png mode change 100644 => 100755 resources/images/system_preview.png mode change 100644 => 100755 resources/images/system_servicemanager.png mode change 100644 => 100755 resources/images/system_settings.png mode change 100644 => 100755 resources/images/system_thememanager.png mode change 100644 => 100755 resources/images/theme_delete.png mode change 100644 => 100755 resources/images/theme_edit.png mode change 100644 => 100755 resources/images/theme_export.png mode change 100644 => 100755 resources/images/theme_import.png mode change 100644 => 100755 resources/images/theme_new.png mode change 100644 => 100755 resources/images/tools_add.png mode change 100644 => 100755 resources/images/tools_alert.png mode change 100644 => 100755 resources/images/topic_add.png mode change 100644 => 100755 resources/images/topic_delete.png mode change 100644 => 100755 resources/images/topic_edit.png mode change 100644 => 100755 resources/images/topic_maintenance.png mode change 100644 => 100755 resources/images/video_delete.png mode change 100644 => 100755 resources/images/video_load.png mode change 100644 => 100755 resources/images/wizard_importbible.bmp mode change 100644 => 100755 resources/images/wizard_importsong.bmp mode change 100644 => 100755 resources/innosetup/LICENSE.txt mode change 100644 => 100755 resources/innosetup/OpenLP-2.0.iss mode change 100644 => 100755 resources/innosetup/OpenLP.ico mode change 100644 => 100755 resources/innosetup/OpenLP.reg mode change 100644 => 100755 resources/innosetup/openlp.conf mode change 100644 => 100755 resources/openlp.desktop mode change 100644 => 100755 resources/pyinstaller/hook-openlp.plugins.presentations.presentationplugin.py mode change 100644 => 100755 resources/pyinstaller/hook-openlp.py mode change 100644 => 100755 resources/songs/songs.sqlite mode change 100644 => 100755 resources/videos/AspectRatioTest-16-9-ana.h264.mp4 mode change 100644 => 100755 resources/videos/AspectRatioTest-16-9-squ.h264.mp4 mode change 100644 => 100755 resources/videos/AspectRatioTest-16-9-squ.xvid.avi mode change 100644 => 100755 resources/videos/AspectRatioTest-4-3-ana.h264.mp4 mode change 100644 => 100755 resources/videos/AspectRatioTest-4-3-squ.h264.mp4 mode change 100644 => 100755 resources/videos/AspectRatioTest-4-3-squ.xvid.avi mode change 100644 => 100755 resources/videos/AspectRatioTest-rand-squ.h264.mp4 mode change 100644 => 100755 resources/videos/left-720.png mode change 100644 => 100755 resources/videos/normal-720.png mode change 100644 => 100755 resources/videos/right-720.png mode change 100644 => 100755 resources/videos/synctest.24.avs mode change 100644 => 100755 resources/videos/synctest.24.muxed.avi mode change 100644 => 100755 resources/videos/synctest.24.muxed.mp4 mode change 100644 => 100755 resources/videos/synctest.25.avs mode change 100644 => 100755 resources/videos/synctest.25.muxed.avi mode change 100644 => 100755 resources/videos/synctest.30.avs mode change 100644 => 100755 resources/videos/synctest.30.muxed.avi mode change 100644 => 100755 resources/videos/synctest.30.small.avs mode change 100644 => 100755 resources/videos/synctest.30.small.muxed.avi mode change 100644 => 100755 resources/videos/synctest.avsi mode change 100644 => 100755 scripts/resources.patch mode change 100644 => 100755 scripts/windows-builder.py diff --git a/.bzrignore b/.bzrignore old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/MANIFEST.in b/MANIFEST.in old mode 100644 new mode 100755 diff --git a/OpenLP.spec b/OpenLP.spec old mode 100644 new mode 100755 diff --git a/copyright.txt b/copyright.txt old mode 100644 new mode 100755 diff --git a/demo_theme.xml b/demo_theme.xml old mode 100644 new mode 100755 diff --git a/documentation/Makefile b/documentation/Makefile old mode 100644 new mode 100755 diff --git a/documentation/PluginDevelopersGuide.txt b/documentation/PluginDevelopersGuide.txt old mode 100644 new mode 100755 diff --git a/documentation/SongFormat.txt b/documentation/SongFormat.txt old mode 100644 new mode 100755 diff --git a/documentation/make.bat b/documentation/make.bat old mode 100644 new mode 100755 diff --git a/documentation/plugin.txt b/documentation/plugin.txt old mode 100644 new mode 100755 diff --git a/documentation/source/conf.py b/documentation/source/conf.py old mode 100644 new mode 100755 diff --git a/documentation/source/core/index.rst b/documentation/source/core/index.rst old mode 100644 new mode 100755 diff --git a/documentation/source/core/lib.rst b/documentation/source/core/lib.rst old mode 100644 new mode 100755 diff --git a/documentation/source/core/theme.rst b/documentation/source/core/theme.rst old mode 100644 new mode 100755 diff --git a/documentation/source/index.rst b/documentation/source/index.rst old mode 100644 new mode 100755 diff --git a/documentation/source/openlp.rst b/documentation/source/openlp.rst old mode 100644 new mode 100755 diff --git a/documentation/source/plugins/bibles.rst b/documentation/source/plugins/bibles.rst old mode 100644 new mode 100755 diff --git a/documentation/source/plugins/index.rst b/documentation/source/plugins/index.rst old mode 100644 new mode 100755 diff --git a/documentation/source/plugins/songs.rst b/documentation/source/plugins/songs.rst old mode 100644 new mode 100755 diff --git a/openlp/.version b/openlp/.version old mode 100644 new mode 100755 diff --git a/openlp/__init__.py b/openlp/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/baselistwithdnd.py b/openlp/core/lib/baselistwithdnd.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py old mode 100644 new mode 100755 index ce4e63d16..c5560168d --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -215,7 +215,7 @@ class MediaManagerItem(QtGui.QWidget): loadString[u'title'], loadString[u'tooltip'], u':/general/general_open.png', self.onFileClick) - ## New Button ## rimach + ## New Button ## if self.hasNewIcon: newString = self.plugin.getString(StringType.New) self.addToolbarButton( diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py old mode 100644 new mode 100755 index fd0515038..38b9d5af6 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -127,8 +127,8 @@ class Plugin(QtCore.QObject): Defaults to *None*. A list of helper objects. """ QtCore.QObject.__init__(self) - self.name = name self.set_plugin_strings() + self.name = name if version: self.version = version self.settingsSection = self.name.lower() @@ -269,7 +269,7 @@ class Plugin(QtCore.QObject): Called by the plugin to remove toolbar """ if self.mediaItem: - self.mediadock.remove_dock(self.name) + self.mediadock.remove_dock(self.name_lower) if self.settings_tab: self.settingsForm.removeTab(self.name) @@ -315,5 +315,5 @@ class Plugin(QtCore.QObject): """ self.name = u'Plugin' self.name_lower = u'plugin' - + self.strings = {} diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py old mode 100644 new mode 100755 diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py old mode 100644 new mode 100755 diff --git a/openlp/core/theme/__init__.py b/openlp/core/theme/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/aboutform.py b/openlp/core/ui/aboutform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/exceptiondialog.py b/openlp/core/ui/exceptiondialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/serviceitemeditform.py b/openlp/core/ui/serviceitemeditform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/servicenotedialog.py b/openlp/core/ui/servicenotedialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/servicenoteform.py b/openlp/core/ui/servicenoteform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/splashscreen.py b/openlp/core/ui/splashscreen.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py old mode 100644 new mode 100755 diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py old mode 100644 new mode 100755 diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/__init__.py b/openlp/plugins/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/__init__.py b/openlp/plugins/alerts/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py old mode 100644 new mode 100755 index d7cd08b70..0b89f642c --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -40,7 +40,6 @@ class AlertsPlugin(Plugin): log.info(u'Alerts Plugin loaded') def __init__(self, plugin_helpers): - self.set_plugin_strings() Plugin.__init__(self, u'Alerts', u'1.9.2', plugin_helpers) self.weight = -3 self.icon = build_icon(u':/plugins/plugin_alerts.png') diff --git a/openlp/plugins/alerts/forms/__init__.py b/openlp/plugins/alerts/forms/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/lib/__init__.py b/openlp/plugins/alerts/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/lib/alertsmanager.py b/openlp/plugins/alerts/lib/alertsmanager.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/alerts/lib/db.py b/openlp/plugins/alerts/lib/db.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/__init__.py b/openlp/plugins/bibles/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py old mode 100644 new mode 100755 index 5bbaf7f1b..5c24f9230 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -37,7 +37,6 @@ class BiblePlugin(Plugin): log.info(u'Bible Plugin loaded') def __init__(self, plugin_helpers): - self.set_plugin_strings() Plugin.__init__(self, u'Bibles', u'1.9.2', plugin_helpers) self.weight = -9 self.icon_path = u':/plugins/plugin_bibles.png' diff --git a/openlp/plugins/bibles/forms/__init__.py b/openlp/plugins/bibles/forms/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/resources/biblegateway.csv b/openlp/plugins/bibles/resources/biblegateway.csv old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/resources/crosswalkbooks.csv b/openlp/plugins/bibles/resources/crosswalkbooks.csv old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/resources/httpbooks.sqlite b/openlp/plugins/bibles/resources/httpbooks.sqlite old mode 100644 new mode 100755 diff --git a/openlp/plugins/bibles/resources/osisbooks.csv b/openlp/plugins/bibles/resources/osisbooks.csv old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/__init__.py b/openlp/plugins/custom/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py old mode 100644 new mode 100755 index d61e2f09c..7abbad04c --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -47,7 +47,6 @@ class CustomPlugin(Plugin): log.info(u'Custom Plugin loaded') def __init__(self, plugin_helpers): - self.set_plugin_strings() Plugin.__init__(self, u'Custom', u'1.9.2', plugin_helpers) self.weight = -5 self.custommanager = Manager(u'custom', init_schema) diff --git a/openlp/plugins/custom/forms/__init__.py b/openlp/plugins/custom/forms/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/lib/__init__.py b/openlp/plugins/custom/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/lib/customtab.py b/openlp/plugins/custom/lib/customtab.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/lib/customxmlhandler.py b/openlp/plugins/custom/lib/customxmlhandler.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/lib/db.py b/openlp/plugins/custom/lib/db.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/images/__init__.py b/openlp/plugins/images/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py old mode 100644 new mode 100755 index 3aa981681..88d93e5ca --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -35,7 +35,6 @@ class ImagePlugin(Plugin): log.info(u'Image Plugin loaded') def __init__(self, plugin_helpers): - self.set_plugin_strings() Plugin.__init__(self, u'Images', u'1.9.2', plugin_helpers) self.weight = -7 self.icon_path = u':/plugins/plugin_images.png' @@ -58,7 +57,7 @@ class ImagePlugin(Plugin): 'selected image as a background instead of the background ' 'provided by the theme.') return about_text - # rimach + def set_plugin_strings(self): """ Called to define all translatable texts of the plugin diff --git a/openlp/plugins/images/lib/__init__.py b/openlp/plugins/images/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/media/__init__.py b/openlp/plugins/media/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/media/lib/__init__.py b/openlp/plugins/media/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py old mode 100644 new mode 100755 index 6c8a2eaea..1be50b1ba --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -37,7 +37,6 @@ class MediaPlugin(Plugin): log.info(u'%s MediaPlugin loaded', __name__) def __init__(self, plugin_helpers): - self.set_plugin_strings() Plugin.__init__(self, u'Media', u'1.9.2', plugin_helpers) self.weight = -6 self.icon_path = u':/plugins/plugin_media.png' diff --git a/openlp/plugins/presentations/__init__.py b/openlp/plugins/presentations/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/__init__.py b/openlp/plugins/presentations/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewcontroller.py b/openlp/plugins/presentations/lib/pptviewcontroller.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/README.TXT b/openlp/plugins/presentations/lib/pptviewlib/README.TXT old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/ppttest.py b/openlp/plugins/presentations/lib/pptviewlib/ppttest.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/pptviewlib/test.ppt b/openlp/plugins/presentations/lib/pptviewlib/test.ppt old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/presentationcontroller.py b/openlp/plugins/presentations/lib/presentationcontroller.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py old mode 100644 new mode 100755 index d53931e28..1a5b0a329 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -51,7 +51,6 @@ class PresentationPlugin(Plugin): """ log.debug(u'Initialised') self.controllers = {} - self.set_plugin_strings() Plugin.__init__(self, u'Presentations', u'1.9.2', plugin_helpers) self.weight = -8 self.icon_path = u':/plugins/plugin_presentations.png' diff --git a/openlp/plugins/remotes/__init__.py b/openlp/plugins/remotes/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/html/index.html b/openlp/plugins/remotes/html/index.html old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/html/init.js b/openlp/plugins/remotes/html/init.js old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/html/openlp.js b/openlp/plugins/remotes/html/openlp.js old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/html/openlp.service.js b/openlp/plugins/remotes/html/openlp.service.js old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/html/style.css b/openlp/plugins/remotes/html/style.css old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/lib/__init__.py b/openlp/plugins/remotes/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py old mode 100644 new mode 100755 index 088e47fc7..ff5bcecd8 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -38,7 +38,6 @@ class RemotesPlugin(Plugin): """ remotes constructor """ - self.set_plugin_strings() Plugin.__init__(self, u'Remotes', u'1.9.2', plugin_helpers) self.icon = build_icon(u':/plugins/plugin_remote.png') self.weight = -1 diff --git a/openlp/plugins/songs/__init__.py b/openlp/plugins/songs/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/authorsform.py b/openlp/plugins/songs/forms/authorsform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/songbookform.py b/openlp/plugins/songs/forms/songbookform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/forms/topicsform.py b/openlp/plugins/songs/forms/topicsform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/db.py b/openlp/plugins/songs/lib/db.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/sofimport.py b/openlp/plugins/songs/lib/sofimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/songstab.py b/openlp/plugins/songs/lib/songstab.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/songxml.py b/openlp/plugins/songs/lib/songxml.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/test/test.opensong b/openlp/plugins/songs/lib/test/test.opensong old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/test/test.opensong.zip b/openlp/plugins/songs/lib/test/test.opensong.zip old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/test/test2.opensong b/openlp/plugins/songs/lib/test/test2.opensong old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/test/test_importing_lots.py b/openlp/plugins/songs/lib/test/test_importing_lots.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/test/test_opensongimport.py b/openlp/plugins/songs/lib/test/test_opensongimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py old mode 100644 new mode 100755 index 54d85083a..815e9cb4d --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -50,7 +50,6 @@ class SongsPlugin(Plugin): """ Create and set up the Songs plugin. """ - self.set_plugin_strings() Plugin.__init__(self, u'Songs', u'1.9.2', plugin_helpers) self.weight = -10 self.manager = Manager(u'songs', init_schema) diff --git a/openlp/plugins/songusage/__init__.py b/openlp/plugins/songusage/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/forms/__init__.py b/openlp/plugins/songusage/forms/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/forms/songusagedeletedialog.py b/openlp/plugins/songusage/forms/songusagedeletedialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/forms/songusagedeleteform.py b/openlp/plugins/songusage/forms/songusagedeleteform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/forms/songusagedetaildialog.py b/openlp/plugins/songusage/forms/songusagedetaildialog.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/lib/__init__.py b/openlp/plugins/songusage/lib/__init__.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/lib/db.py b/openlp/plugins/songusage/lib/db.py old mode 100644 new mode 100755 diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py old mode 100644 new mode 100755 index 2a734e830..ddcca32a2 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -41,7 +41,6 @@ class SongUsagePlugin(Plugin): log.info(u'SongUsage Plugin loaded') def __init__(self, plugin_helpers): - self.set_plugin_strings() Plugin.__init__(self, u'SongUsage', u'1.9.2', plugin_helpers) self.weight = -4 self.icon = build_icon(u':/plugins/plugin_songusage.png') diff --git a/resources/.config/openlp/openlp.conf b/resources/.config/openlp/openlp.conf old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/bibles/asv.sqlite b/resources/.local/share/openlp/bibles/asv.sqlite old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/Bible Readings.png b/resources/.local/share/openlp/themes/Bible Readings.png old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml b/resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg b/resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/Blue.png b/resources/.local/share/openlp/themes/Blue.png old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/Blue/Blue.xml b/resources/.local/share/openlp/themes/Blue/Blue.xml old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme1.png b/resources/.local/share/openlp/themes/theme1.png old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme1/theme1.xml b/resources/.local/share/openlp/themes/theme1/theme1.xml old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme2.png b/resources/.local/share/openlp/themes/theme2.png old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme2/theme2.xml b/resources/.local/share/openlp/themes/theme2/theme2.xml old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme3.png b/resources/.local/share/openlp/themes/theme3.png old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme3/sunset2.jpg b/resources/.local/share/openlp/themes/theme3/sunset2.jpg old mode 100644 new mode 100755 diff --git a/resources/.local/share/openlp/themes/theme3/theme3.xml b/resources/.local/share/openlp/themes/theme3/theme3.xml old mode 100644 new mode 100755 diff --git a/resources/.openlp/data/bible/asv.sqlite b/resources/.openlp/data/bible/asv.sqlite old mode 100644 new mode 100755 diff --git a/resources/.openlp/openlp.conf b/resources/.openlp/openlp.conf old mode 100644 new mode 100755 diff --git a/resources/.openlp/openlp.conf_posix b/resources/.openlp/openlp.conf_posix old mode 100644 new mode 100755 diff --git a/resources/.openlp/openlp.conf_win b/resources/.openlp/openlp.conf_win old mode 100644 new mode 100755 diff --git a/resources/Fedora/191/OpenLP.spec b/resources/Fedora/191/OpenLP.spec old mode 100644 new mode 100755 diff --git a/resources/bibles/afr1953.osis b/resources/bibles/afr1953.osis old mode 100644 new mode 100755 diff --git a/resources/bibles/kjc.osis b/resources/bibles/kjc.osis old mode 100644 new mode 100755 diff --git a/resources/bibles/osisbooks_en.txt b/resources/bibles/osisbooks_en.txt old mode 100644 new mode 100755 diff --git a/resources/forms/about.ui b/resources/forms/about.ui old mode 100644 new mode 100755 diff --git a/resources/forms/alertdialog.ui b/resources/forms/alertdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/amendthemedialog.ui b/resources/forms/amendthemedialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/authorsdialog.ui b/resources/forms/authorsdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/bibleimportdialog.ui b/resources/forms/bibleimportdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/bibleimportwizard.ui b/resources/forms/bibleimportwizard.ui old mode 100644 new mode 100755 diff --git a/resources/forms/displaytab.ui b/resources/forms/displaytab.ui old mode 100644 new mode 100755 diff --git a/resources/forms/editcustomdialog.ui b/resources/forms/editcustomdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/editsongdialog.ui b/resources/forms/editsongdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/editversedialog.ui b/resources/forms/editversedialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/exceptiondialog.ui b/resources/forms/exceptiondialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/mainwindow.ui b/resources/forms/mainwindow.ui old mode 100644 new mode 100755 diff --git a/resources/forms/plugindialoglistform.ui b/resources/forms/plugindialoglistform.ui old mode 100644 new mode 100755 diff --git a/resources/forms/serviceitemeditdialog.ui b/resources/forms/serviceitemeditdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/servicenotedialog.ui b/resources/forms/servicenotedialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/settings.ui b/resources/forms/settings.ui old mode 100644 new mode 100755 diff --git a/resources/forms/songbookdialog.ui b/resources/forms/songbookdialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/songexport.ui b/resources/forms/songexport.ui old mode 100644 new mode 100755 diff --git a/resources/forms/songimportwizard.ui b/resources/forms/songimportwizard.ui old mode 100644 new mode 100755 diff --git a/resources/forms/songmaintenance.ui b/resources/forms/songmaintenance.ui old mode 100644 new mode 100755 diff --git a/resources/forms/songusagedeletedialog.ui b/resources/forms/songusagedeletedialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/songusagedetaildialog.ui b/resources/forms/songusagedetaildialog.ui old mode 100644 new mode 100755 diff --git a/resources/forms/splashscreen.ui b/resources/forms/splashscreen.ui old mode 100644 new mode 100755 diff --git a/resources/forms/themewizard.ui b/resources/forms/themewizard.ui old mode 100644 new mode 100755 diff --git a/resources/forms/topicsdialog.ui b/resources/forms/topicsdialog.ui old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_af.ts b/resources/i18n/openlp_af.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_de.ts b/resources/i18n/openlp_de.ts old mode 100644 new mode 100755 index 308a424e3..7e8b14dbb --- a/resources/i18n/openlp_de.ts +++ b/resources/i18n/openlp_de.ts @@ -2822,22 +2822,22 @@ The content encoding is not UTF-8. Blank Screen - + Livebild schwarz Blank to Theme - + Livebild Hintergrund Show Desktop - + Livebild Transparent Go to - + Gehe zu diff --git a/resources/i18n/openlp_en.ts b/resources/i18n/openlp_en.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_en_GB.ts b/resources/i18n/openlp_en_GB.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_en_ZA.ts b/resources/i18n/openlp_en_ZA.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_es.ts b/resources/i18n/openlp_es.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_et.ts b/resources/i18n/openlp_et.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_hu.ts b/resources/i18n/openlp_hu.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_ko.ts b/resources/i18n/openlp_ko.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_nb.ts b/resources/i18n/openlp_nb.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_pt_BR.ts b/resources/i18n/openlp_pt_BR.ts old mode 100644 new mode 100755 diff --git a/resources/i18n/openlp_sv.ts b/resources/i18n/openlp_sv.ts old mode 100644 new mode 100755 diff --git a/resources/images/OpenLP.ico b/resources/images/OpenLP.ico old mode 100644 new mode 100755 diff --git a/resources/images/about-new.bmp b/resources/images/about-new.bmp old mode 100644 new mode 100755 diff --git a/resources/images/author_add.png b/resources/images/author_add.png old mode 100644 new mode 100755 diff --git a/resources/images/author_delete.png b/resources/images/author_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/author_edit.png b/resources/images/author_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/author_maintenance.png b/resources/images/author_maintenance.png old mode 100644 new mode 100755 diff --git a/resources/images/book_add.png b/resources/images/book_add.png old mode 100644 new mode 100755 diff --git a/resources/images/book_delete.png b/resources/images/book_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/book_edit.png b/resources/images/book_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/book_maintenance.png b/resources/images/book_maintenance.png old mode 100644 new mode 100755 diff --git a/resources/images/custom_delete.png b/resources/images/custom_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/custom_edit.png b/resources/images/custom_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/custom_new.png b/resources/images/custom_new.png old mode 100644 new mode 100755 diff --git a/resources/images/exception.png b/resources/images/exception.png old mode 100644 new mode 100755 diff --git a/resources/images/export_load.png b/resources/images/export_load.png old mode 100644 new mode 100755 diff --git a/resources/images/export_move_to_list.png b/resources/images/export_move_to_list.png old mode 100644 new mode 100755 diff --git a/resources/images/export_remove.png b/resources/images/export_remove.png old mode 100644 new mode 100755 diff --git a/resources/images/export_selectall.png b/resources/images/export_selectall.png old mode 100644 new mode 100755 diff --git a/resources/images/general_add.png b/resources/images/general_add.png old mode 100644 new mode 100755 diff --git a/resources/images/general_delete.png b/resources/images/general_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/general_edit.png b/resources/images/general_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/general_export.png b/resources/images/general_export.png old mode 100644 new mode 100755 diff --git a/resources/images/general_import.png b/resources/images/general_import.png old mode 100644 new mode 100755 diff --git a/resources/images/general_live.png b/resources/images/general_live.png old mode 100644 new mode 100755 diff --git a/resources/images/general_new.png b/resources/images/general_new.png old mode 100644 new mode 100755 diff --git a/resources/images/general_open.png b/resources/images/general_open.png old mode 100644 new mode 100755 diff --git a/resources/images/general_preview.png b/resources/images/general_preview.png old mode 100644 new mode 100755 diff --git a/resources/images/general_save.png b/resources/images/general_save.png old mode 100644 new mode 100755 diff --git a/resources/images/image_clapperboard.png b/resources/images/image_clapperboard.png old mode 100644 new mode 100755 diff --git a/resources/images/image_delete.png b/resources/images/image_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/image_load.png b/resources/images/image_load.png old mode 100644 new mode 100755 diff --git a/resources/images/import_load.png b/resources/images/import_load.png old mode 100644 new mode 100755 diff --git a/resources/images/import_move_to_list.png b/resources/images/import_move_to_list.png old mode 100644 new mode 100755 diff --git a/resources/images/import_remove.png b/resources/images/import_remove.png old mode 100644 new mode 100755 diff --git a/resources/images/import_selectall.png b/resources/images/import_selectall.png old mode 100644 new mode 100755 diff --git a/resources/images/media_playback_pause.png b/resources/images/media_playback_pause.png old mode 100644 new mode 100755 diff --git a/resources/images/media_playback_start.png b/resources/images/media_playback_start.png old mode 100644 new mode 100755 diff --git a/resources/images/media_playback_stop.png b/resources/images/media_playback_stop.png old mode 100644 new mode 100755 diff --git a/resources/images/media_stop.png b/resources/images/media_stop.png old mode 100644 new mode 100755 diff --git a/resources/images/media_time.png b/resources/images/media_time.png old mode 100644 new mode 100755 diff --git a/resources/images/messagebox_critical.png b/resources/images/messagebox_critical.png old mode 100644 new mode 100755 diff --git a/resources/images/messagebox_info.png b/resources/images/messagebox_info.png old mode 100644 new mode 100755 diff --git a/resources/images/messagebox_warning.png b/resources/images/messagebox_warning.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc old mode 100644 new mode 100755 diff --git a/resources/images/openlp-about-logo.png b/resources/images/openlp-about-logo.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-about-logo.svg b/resources/images/openlp-about-logo.svg old mode 100644 new mode 100755 diff --git a/resources/images/openlp-default-dualdisplay.svg b/resources/images/openlp-default-dualdisplay.svg old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-128x128.png b/resources/images/openlp-logo-128x128.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-16x16.png b/resources/images/openlp-logo-16x16.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-256x256.png b/resources/images/openlp-logo-256x256.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-32x32.png b/resources/images/openlp-logo-32x32.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-420x420.png b/resources/images/openlp-logo-420x420.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-48x48.png b/resources/images/openlp-logo-48x48.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo-64x64.png b/resources/images/openlp-logo-64x64.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-logo.svg b/resources/images/openlp-logo.svg old mode 100644 new mode 100755 diff --git a/resources/images/openlp-splash-screen.png b/resources/images/openlp-splash-screen.png old mode 100644 new mode 100755 diff --git a/resources/images/openlp-splash-screen.svg b/resources/images/openlp-splash-screen.svg old mode 100644 new mode 100755 diff --git a/resources/images/openlp.org-icon-32.bmp b/resources/images/openlp.org-icon-32.bmp old mode 100644 new mode 100755 diff --git a/resources/images/openlp.org.ico b/resources/images/openlp.org.ico old mode 100644 new mode 100755 diff --git a/resources/images/openlp.svg b/resources/images/openlp.svg old mode 100644 new mode 100755 diff --git a/resources/images/plugin_alerts.png b/resources/images/plugin_alerts.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_bibles.png b/resources/images/plugin_bibles.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_custom.png b/resources/images/plugin_custom.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_images.png b/resources/images/plugin_images.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_media.png b/resources/images/plugin_media.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_presentations.png b/resources/images/plugin_presentations.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_remote.png b/resources/images/plugin_remote.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_songs.png b/resources/images/plugin_songs.png old mode 100644 new mode 100755 diff --git a/resources/images/plugin_songusage.png b/resources/images/plugin_songusage.png old mode 100644 new mode 100755 diff --git a/resources/images/presentation_delete.png b/resources/images/presentation_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/presentation_load.png b/resources/images/presentation_load.png old mode 100644 new mode 100755 diff --git a/resources/images/service_bottom.png b/resources/images/service_bottom.png old mode 100644 new mode 100755 diff --git a/resources/images/service_delete.png b/resources/images/service_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/service_down.png b/resources/images/service_down.png old mode 100644 new mode 100755 diff --git a/resources/images/service_edit.png b/resources/images/service_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/service_item_notes.png b/resources/images/service_item_notes.png old mode 100644 new mode 100755 diff --git a/resources/images/service_new.png b/resources/images/service_new.png old mode 100644 new mode 100755 diff --git a/resources/images/service_notes.png b/resources/images/service_notes.png old mode 100644 new mode 100755 diff --git a/resources/images/service_open.png b/resources/images/service_open.png old mode 100644 new mode 100755 diff --git a/resources/images/service_save.png b/resources/images/service_save.png old mode 100644 new mode 100755 diff --git a/resources/images/service_top.png b/resources/images/service_top.png old mode 100644 new mode 100755 diff --git a/resources/images/service_up.png b/resources/images/service_up.png old mode 100644 new mode 100755 diff --git a/resources/images/settings_plugin_list.png b/resources/images/settings_plugin_list.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_blank.png b/resources/images/slide_blank.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_close.png b/resources/images/slide_close.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_desktop.png b/resources/images/slide_desktop.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_first.png b/resources/images/slide_first.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_last.png b/resources/images/slide_last.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_next.png b/resources/images/slide_next.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_previous.png b/resources/images/slide_previous.png old mode 100644 new mode 100755 diff --git a/resources/images/slide_theme.png b/resources/images/slide_theme.png old mode 100644 new mode 100755 diff --git a/resources/images/song_author_edit.png b/resources/images/song_author_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/song_book_edit.png b/resources/images/song_book_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/song_delete.png b/resources/images/song_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/song_edit.png b/resources/images/song_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/song_export.png b/resources/images/song_export.png old mode 100644 new mode 100755 diff --git a/resources/images/song_maintenance.png b/resources/images/song_maintenance.png old mode 100644 new mode 100755 diff --git a/resources/images/song_new.png b/resources/images/song_new.png old mode 100644 new mode 100755 diff --git a/resources/images/song_topic_edit.png b/resources/images/song_topic_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/splash-screen-new.bmp b/resources/images/splash-screen-new.bmp old mode 100644 new mode 100755 diff --git a/resources/images/system_about.png b/resources/images/system_about.png old mode 100644 new mode 100755 diff --git a/resources/images/system_add.png b/resources/images/system_add.png old mode 100644 new mode 100755 diff --git a/resources/images/system_close.png b/resources/images/system_close.png old mode 100644 new mode 100755 diff --git a/resources/images/system_contribute.png b/resources/images/system_contribute.png old mode 100644 new mode 100755 diff --git a/resources/images/system_exit.png b/resources/images/system_exit.png old mode 100644 new mode 100755 diff --git a/resources/images/system_help_contents.png b/resources/images/system_help_contents.png old mode 100644 new mode 100755 diff --git a/resources/images/system_live.png b/resources/images/system_live.png old mode 100644 new mode 100755 diff --git a/resources/images/system_mediamanager.png b/resources/images/system_mediamanager.png old mode 100644 new mode 100755 diff --git a/resources/images/system_preview.png b/resources/images/system_preview.png old mode 100644 new mode 100755 diff --git a/resources/images/system_servicemanager.png b/resources/images/system_servicemanager.png old mode 100644 new mode 100755 diff --git a/resources/images/system_settings.png b/resources/images/system_settings.png old mode 100644 new mode 100755 diff --git a/resources/images/system_thememanager.png b/resources/images/system_thememanager.png old mode 100644 new mode 100755 diff --git a/resources/images/theme_delete.png b/resources/images/theme_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/theme_edit.png b/resources/images/theme_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/theme_export.png b/resources/images/theme_export.png old mode 100644 new mode 100755 diff --git a/resources/images/theme_import.png b/resources/images/theme_import.png old mode 100644 new mode 100755 diff --git a/resources/images/theme_new.png b/resources/images/theme_new.png old mode 100644 new mode 100755 diff --git a/resources/images/tools_add.png b/resources/images/tools_add.png old mode 100644 new mode 100755 diff --git a/resources/images/tools_alert.png b/resources/images/tools_alert.png old mode 100644 new mode 100755 diff --git a/resources/images/topic_add.png b/resources/images/topic_add.png old mode 100644 new mode 100755 diff --git a/resources/images/topic_delete.png b/resources/images/topic_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/topic_edit.png b/resources/images/topic_edit.png old mode 100644 new mode 100755 diff --git a/resources/images/topic_maintenance.png b/resources/images/topic_maintenance.png old mode 100644 new mode 100755 diff --git a/resources/images/video_delete.png b/resources/images/video_delete.png old mode 100644 new mode 100755 diff --git a/resources/images/video_load.png b/resources/images/video_load.png old mode 100644 new mode 100755 diff --git a/resources/images/wizard_importbible.bmp b/resources/images/wizard_importbible.bmp old mode 100644 new mode 100755 diff --git a/resources/images/wizard_importsong.bmp b/resources/images/wizard_importsong.bmp old mode 100644 new mode 100755 diff --git a/resources/innosetup/LICENSE.txt b/resources/innosetup/LICENSE.txt old mode 100644 new mode 100755 diff --git a/resources/innosetup/OpenLP-2.0.iss b/resources/innosetup/OpenLP-2.0.iss old mode 100644 new mode 100755 diff --git a/resources/innosetup/OpenLP.ico b/resources/innosetup/OpenLP.ico old mode 100644 new mode 100755 diff --git a/resources/innosetup/OpenLP.reg b/resources/innosetup/OpenLP.reg old mode 100644 new mode 100755 diff --git a/resources/innosetup/openlp.conf b/resources/innosetup/openlp.conf old mode 100644 new mode 100755 diff --git a/resources/openlp.desktop b/resources/openlp.desktop old mode 100644 new mode 100755 diff --git a/resources/pyinstaller/hook-openlp.plugins.presentations.presentationplugin.py b/resources/pyinstaller/hook-openlp.plugins.presentations.presentationplugin.py old mode 100644 new mode 100755 diff --git a/resources/pyinstaller/hook-openlp.py b/resources/pyinstaller/hook-openlp.py old mode 100644 new mode 100755 diff --git a/resources/songs/songs.sqlite b/resources/songs/songs.sqlite old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-16-9-ana.h264.mp4 b/resources/videos/AspectRatioTest-16-9-ana.h264.mp4 old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-16-9-squ.h264.mp4 b/resources/videos/AspectRatioTest-16-9-squ.h264.mp4 old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-16-9-squ.xvid.avi b/resources/videos/AspectRatioTest-16-9-squ.xvid.avi old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-4-3-ana.h264.mp4 b/resources/videos/AspectRatioTest-4-3-ana.h264.mp4 old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-4-3-squ.h264.mp4 b/resources/videos/AspectRatioTest-4-3-squ.h264.mp4 old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-4-3-squ.xvid.avi b/resources/videos/AspectRatioTest-4-3-squ.xvid.avi old mode 100644 new mode 100755 diff --git a/resources/videos/AspectRatioTest-rand-squ.h264.mp4 b/resources/videos/AspectRatioTest-rand-squ.h264.mp4 old mode 100644 new mode 100755 diff --git a/resources/videos/left-720.png b/resources/videos/left-720.png old mode 100644 new mode 100755 diff --git a/resources/videos/normal-720.png b/resources/videos/normal-720.png old mode 100644 new mode 100755 diff --git a/resources/videos/right-720.png b/resources/videos/right-720.png old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.24.avs b/resources/videos/synctest.24.avs old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.24.muxed.avi b/resources/videos/synctest.24.muxed.avi old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.24.muxed.mp4 b/resources/videos/synctest.24.muxed.mp4 old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.25.avs b/resources/videos/synctest.25.avs old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.25.muxed.avi b/resources/videos/synctest.25.muxed.avi old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.30.avs b/resources/videos/synctest.30.avs old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.30.muxed.avi b/resources/videos/synctest.30.muxed.avi old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.30.small.avs b/resources/videos/synctest.30.small.avs old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.30.small.muxed.avi b/resources/videos/synctest.30.small.muxed.avi old mode 100644 new mode 100755 diff --git a/resources/videos/synctest.avsi b/resources/videos/synctest.avsi old mode 100644 new mode 100755 diff --git a/scripts/resources.patch b/scripts/resources.patch old mode 100644 new mode 100755 diff --git a/scripts/windows-builder.py b/scripts/windows-builder.py old mode 100644 new mode 100755 From 22304d491d742da496a1031a76c656fc2e989fc3 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 14 Sep 2010 19:46:21 +0200 Subject: [PATCH 14/95] correct coding rules, some optimizations --- openlp/core/lib/mediamanageritem.py | 6 +++--- openlp/core/lib/plugin.py | 3 +-- openlp/core/ui/mediadockmanager.py | 13 ++++++------- openlp/core/ui/pluginform.py | 12 ++++++------ openlp/core/utils/languagemanager.py | 4 ++-- openlp/plugins/alerts/alertsplugin.py | 4 ++-- openlp/plugins/bibles/bibleplugin.py | 4 +--- openlp/plugins/custom/customplugin.py | 4 +--- openlp/plugins/images/imageplugin.py | 4 +--- openlp/plugins/media/mediaplugin.py | 4 +--- openlp/plugins/presentations/presentationplugin.py | 4 +--- openlp/plugins/remotes/remoteplugin.py | 3 +-- openlp/plugins/songs/songsplugin.py | 4 +--- openlp/plugins/songusage/songusageplugin.py | 3 +-- scripts/translation_utils.py | 13 +++++++++++++ 15 files changed, 41 insertions(+), 44 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 0d1c1ccb7..796abaa22 100755 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -92,7 +92,7 @@ class MediaManagerItem(QtGui.QWidget): """ QtGui.QWidget.__init__(self) self.parent = parent - # TODO: may the plugin is not the parent? + # TODO: plugin is not the parent, so add this to the calling plugins self.plugin = parent self.settingsSection = self.plugin.name_lower if isinstance(icon, QtGui.QIcon): @@ -103,8 +103,8 @@ class MediaManagerItem(QtGui.QWidget): else: self.icon = None if title: - nameString = self.plugin.getString(StringType.Name) - self.title = nameString[u'plural'] + name_string = self.plugin.getString(StringType.Name) + self.title = name_string[u'plural'] self.toolbar = None self.remoteTriggered = None self.serviceItemIconName = None diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 21eebf0cf..82acb2986 100755 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -269,7 +269,7 @@ class Plugin(QtCore.QObject): Called by the plugin to remove toolbar """ if self.mediaItem: - self.mediadock.remove_dock(self.name) + self.mediadock.remove_dock(self.mediaItem) if self.settings_tab: self.settingsForm.removeTab(self.name) @@ -315,5 +315,4 @@ class Plugin(QtCore.QObject): """ self.name = u'Plugin' self.name_lower = u'plugin' - self.strings = {} diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index cbfeea274..172288031 100755 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -61,24 +61,23 @@ class MediaDockManager(object): match = False for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index).settingsSection == \ - media_item.plugin.name: + media_item.plugin.name_lower: match = True break if not match: self.media_dock.addItem(media_item, icon, media_item.plugin.name) - def remove_dock(self, name): + def remove_dock(self, media_item): """ Removes a MediaManagerItem from the dock - ``name`` - The item to remove + ``media_item`` + The item to add to the dock """ - log.debug(u'remove %s dock' % name) + log.debug(u'remove %s dock' % media_item.plugin.name) for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index): - log.debug(u'%s %s' % (name, self.media_dock.widget(dock_index).settingsSection)) if self.media_dock.widget(dock_index).settingsSection == \ - name: + media_item.plugin.name_lower: self.media_dock.widget(dock_index).hide() self.media_dock.removeItem(dock_index) diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index 042ecf49f..a3d1a4dce 100755 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -78,8 +78,8 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): elif plugin.status == PluginStatus.Disabled: status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) - nameString = plugin.getString(StringType.Name) - item.setText(status_text % nameString[u'plural']) + name_string = plugin.getString(StringType.Name) + item.setText(status_text % name_string[u'plural']) # If the plugin has an icon, set it! if plugin.icon: item.setIcon(plugin.icon) @@ -110,8 +110,8 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): plugin_name_more = self.pluginListWidget.currentItem().text().split(u' ')[0] self.activePlugin = None for plugin in self.parent.plugin_manager.plugins: - nameString = plugin.getString(StringType.Name) - if nameString[u'plural'] == plugin_name_more: + name_string = plugin.getString(StringType.Name) + if name_string[u'plural'] == plugin_name_more: self.activePlugin = plugin break if self.activePlugin: @@ -139,6 +139,6 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): elif self.activePlugin.status == PluginStatus.Disabled: status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) - nameString = self.activePlugin.getString(StringType.Name) + name_string = self.activePlugin.getString(StringType.Name) self.pluginListWidget.currentItem().setText( - status_text % nameString[u'plural']) + status_text % name_string[u'plural']) diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index a264e15a9..417082321 100755 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -57,7 +57,7 @@ class LanguageManager(object): lang_path = AppLocation.get_directory(AppLocation.AppDir) lang_path = os.path.join(lang_path, u'i18n') app_translator = QtCore.QTranslator() - if app_translator.load("openlp_" + language, lang_path): + if app_translator.load(language, lang_path): return app_translator @staticmethod @@ -130,7 +130,7 @@ class LanguageManager(object): LanguageManager.__qmList__ = {} qm_files = LanguageManager.find_qm_files() for i, qmf in enumerate(qm_files): - reg_ex = QtCore.QRegExp("^.*openlp_(.*).qm") + reg_ex = QtCore.QRegExp("^(.*).qm") if reg_ex.exactMatch(qmf): lang_name = reg_ex.cap(1) LanguageManager.__qmList__[u'%#2i %s' % (i+1, diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 63f3ed291..b711d583a 100755 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -101,16 +101,16 @@ class AlertsPlugin(Plugin): '
The alert plugin controls the displaying of nursery alerts ' 'on the display screen') return about_text + def setPluginStrings(self): """ Called to define all translatable texts of the plugin """ self.name = u'Alerts' self.name_lower = u'alerts' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('AlertsPlugin', 'Alert'), u'plural': translate('AlertsPlugin', 'Alerts') - } \ No newline at end of file + } diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 3bb3138a1..fda395b00 100755 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -123,14 +123,12 @@ class BiblePlugin(Plugin): """ self.name = u'Bibles' self.name_lower = u'Bibles' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('BiblesPlugin', 'Bible'), u'plural': translate('BiblesPlugin', 'Bibles') } - # Middle Header Bar ## Import Button ## self.strings[StringType.Import] = { @@ -166,4 +164,4 @@ class BiblePlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index b6614828e..2e2e4b744 100755 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -102,14 +102,12 @@ class CustomPlugin(Plugin): """ self.name = u'Custom' self.name_lower = u'custom' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('CustomsPlugin', 'Custom'), u'plural': translate('CustomsPlugin', 'Customs') } - # Middle Header Bar ## Import Button ## self.strings[StringType.Import] = { @@ -150,4 +148,4 @@ class CustomPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('CustomsPlugin', 'Service'), u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 3163eb2c0..7cba1cc21 100755 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -64,14 +64,12 @@ class ImagePlugin(Plugin): """ self.name = u'Images' self.name_lower = u'images' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('ImagePlugin', 'Image'), u'plural': translate('ImagePlugin', 'Images') } - # Middle Header Bar ## Load Button ## self.strings[StringType.Load] = { @@ -107,4 +105,4 @@ class ImagePlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('ImagePlugin', 'Service'), u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index c7712e722..bb00bbd61 100755 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -82,14 +82,12 @@ class MediaPlugin(Plugin): """ self.name = u'Media' self.name_lower = u'media' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('MediaPlugin', 'Media'), u'plural': translate('MediaPlugin', 'Medias') } - # Middle Header Bar ## Load Button ## self.strings[StringType.Load] = { @@ -125,4 +123,4 @@ class MediaPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index ce8e6aa99..5c32002f6 100755 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -150,14 +150,12 @@ class PresentationPlugin(Plugin): """ self.name = u'Presentations' self.name_lower = u'presentations' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('PresentationPlugin', 'Presentation'), u'plural': translate('PresentationPlugin', 'Presentations') } - # Middle Header Bar ## Load Button ## self.strings[StringType.Load] = { @@ -183,4 +181,4 @@ class PresentationPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('PresentationPlugin', 'Service'), u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 1743c4b98..3f4540ae9 100755 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -83,10 +83,9 @@ class RemotesPlugin(Plugin): """ self.name = u'Remotes' self.name_lower = u'remotes' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('RemotePlugin', 'Remote'), u'plural': translate('RemotePlugin', 'Remotes') - } \ No newline at end of file + } diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 2e8ed32ee..3d564806f 100755 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -154,14 +154,12 @@ class SongsPlugin(Plugin): """ self.name = u'Songs' self.name_lower = u'songs' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('SongsPlugin', 'Song'), u'plural': translate('SongsPlugin', 'Songs') } - # Middle Header Bar ## New Button ## self.strings[StringType.New] = { @@ -192,4 +190,4 @@ class SongsPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('SongsPlugin', 'Service'), u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 087818756..92863a403 100755 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -169,10 +169,9 @@ class SongUsagePlugin(Plugin): """ self.name = u'SongUsage' self.name_lower = u'songusage' - self.strings = {} # for names in mediamanagerdock and pluginlist self.strings[StringType.Name] = { u'singular': translate('SongUsagePlugin', 'SongUsage'), u'plural': translate('SongUsagePlugin', 'SongUsage') - } \ No newline at end of file + } diff --git a/scripts/translation_utils.py b/scripts/translation_utils.py index f52af4984..6d8997677 100755 --- a/scripts/translation_utils.py +++ b/scripts/translation_utils.py @@ -52,6 +52,7 @@ This is done easily via the ``-d``, ``-p`` and ``-u`` options:: import os import urllib import re +from shutil import copy from optparse import OptionParser from PyQt4 import QtCore @@ -227,6 +228,7 @@ def update_translations(): else: os.chdir(os.path.abspath(u'..')) run(u'pylupdate4 -verbose -noobsolete openlp.pro') + os.chdir(os.path.abspath(u'scripts')) def generate_binaries(): print u'Generate the related *.qm files' @@ -239,6 +241,17 @@ def generate_binaries(): else: os.chdir(os.path.abspath(u'..')) run(u'lrelease openlp.pro') + os.chdir(os.path.abspath(u'scripts')) + src_path = os.path.join(os.path.abspath(u'..'), u'resources', u'i18n') + dest_path = os.path.join(os.path.abspath(u'..'), u'openlp', u'i18n') + if not os.path.exists(dest_path): + os.makedirs(dest_path) + src_list = os.listdir(src_path) + for file in src_list: + if re.search('.qm$', file): + copy(os.path.join(src_path, u'%s' % file), + os.path.join(dest_path, u'%s' % file)) + def create_translation(language): """ From 43b7e84106c3e958362d5f24d8846de4d4bf78ab Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 14 Sep 2010 19:49:21 +0200 Subject: [PATCH 15/95] Head --- resources/i18n/af.ts | 671 ++++------ resources/i18n/de.ts | 642 ++++----- resources/i18n/en.ts | 668 ++++------ resources/i18n/en_GB.ts | 671 ++++------ resources/i18n/en_ZA.ts | 918 ++++--------- resources/i18n/es.ts | 671 ++++------ resources/i18n/et.ts | 2723 ++++++++++++++++++--------------------- resources/i18n/hu.ts | 671 ++++------ resources/i18n/ko.ts | 668 ++++------ resources/i18n/nb.ts | 671 ++++------ resources/i18n/pt_BR.ts | 672 ++++------ resources/i18n/sv.ts | 671 ++++------ 12 files changed, 3772 insertions(+), 6545 deletions(-) diff --git a/resources/i18n/af.ts b/resources/i18n/af.ts index c27c90037..e0cf10b78 100755 --- a/resources/i18n/af.ts +++ b/resources/i18n/af.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert W&aarskuwing - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Waarskuwings @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Bybel - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Bybel - + Bibles Bybels - + Import Invoer - + Import a Bible - + Add Byvoeg - + Add a new Bible - + Edit Redigeer - + Edit the selected Bible - + Delete - + Delete the selected Bible - + Preview Voorskou - + Preview the selected Bible - + Live Regstreeks - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. Geen bypassende boek kon in dié Bybel gevind word nie. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Redigeer Aangepaste Skyfies - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Voeg Nuwe By - + Add a new slide at bottom. - + Edit Redigeer - + Edit the selected slide. - + Edit All Redigeer Alles - + Edit all the slides at once. - + Save Stoor - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area Maak skoon die redigeer area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import Invoer - + Import a Custom - + Load - + Load a new Custom - + Add Byvoeg - + Add a new Custom - + Edit Redigeer - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview Voorskou - + Preview the selected Custom - + Live Regstreeks - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Beeld - + Images Beelde - + Load - + Load a new Image - + Add Byvoeg - + Add a new Image - + Edit Redigeer - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview Voorskou - + Preview the selected Image - + Live Regstreeks - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Beeld(e) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Media - + Medias - + Load - + Load a new Media - + Add Byvoeg - + Add a new Media - + Edit Redigeer - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview Voorskou - + Preview the selected Media - + Live Regstreeks - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - Media - - - ->>>>>>> MERGE-SOURCE Select Media Selekteer Media @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media Media -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,15 +1985,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + Nuwe Diens + + + + Open Service + Maak Diens Oop + + + + Save Service + Stoor Diens + OpenLP 2.0 OpenLP 2.0 - - English - Engels + + AddHereYourLanguageName + @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New &Nuwe - - - New Service - Nuwe Diens - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open Maak &Oop - - - Open Service - Maak Diens Oop - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save &Stoor - - - Save Service - Stoor Diens - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + Engels + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Vertoon Regstreeks - + &Add to Service &Voeg by Diens - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Inprop Lys -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Inprop Besonderhede -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Weergawe: -<<<<<<< TREE - - TextLabel - TeksEtiket - - -======= ->>>>>>> MERGE-SOURCE - + About: Aangaande: - + Status: Status: - + Active Aktief - + Inactive Onaktief @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. Skep 'n nuwe diens -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Maak Diens Oop @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. Laai 'n bestaande diens - + Save Service Stoor Diens @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. &Verander Item Tema -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Fout -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. Voorskou -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Beweeg na vorige -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Verskuif na volgende -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen Blanko Skerm @@ -2898,96 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live Verskuif na regstreekse skerm -<<<<<<< TREE - Edit and re-preview Song - Redigeer en sien weer 'n voorskou van die Lied -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Begin aaneenlopende lus -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Stop deurlopende lus -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Vertraging in sekondes tussen skyfies -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Begin media speel -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3167,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3226,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Aanbieding - + Presentations Aanbiedinge - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview Voorskou - + Preview the selected Presentation - + Live Regstreeks - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3324,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3365,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Afstandbehere @@ -3406,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3500,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Lied - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Lied - + Songs Liedere - + Add Byvoeg - + Add a new Song - + Edit Redigeer - + Edit the selected Song - + Delete - + Delete the selected Song - + Preview Voorskou - + Preview the selected Song - + Live Regstreeks - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3631,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Lied Redigeerder - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit R&edigeer - + Ed&it All - + &Delete - + Title && Lyrics Titel && Lirieke - + Authors Skrywers - + &Add to Song &Voeg by Lied - + &Remove &Verwyder - + &Manage Authors, Topics, Song Books - + Topic Onderwerp - + A&dd to Song Voeg by Lie&d - + R&emove V&erwyder - + Song Book Lied Boek - - Song No.: + + Book: + Boek: + + + + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Kopiereg Informasie - + © - + CCLI number: - + Comments Kommentaar - + Theme, Copyright Info && Comments Tema, Kopiereg Informasie && Kommentaar @@ -3781,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Fout @@ -3830,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3905,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Redigeer Vers -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4055,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Invoer begin... @@ -4174,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4293,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4314,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Invoer voltooi. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/de.ts b/resources/i18n/de.ts index 439766ef3..9fcddc120 100755 --- a/resources/i18n/de.ts +++ b/resources/i18n/de.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Hinweis - + Show an alert message. Hinweis anzeigen -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Hinweise @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Bibel - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Bibel - + Bibles Bibeln - + Import - + Import a Bible - + Add - + Add a new Bible - + Edit Bearbeiten - + Edit the selected Bible - + Delete Löschen - + Delete the selected Bible - + Preview Vorschau - + Preview the selected Bible - + Live Live - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -738,11 +734,7 @@ Changes do not affect verses already in the service. Das Buch wurde in dieser Bibelausgabe nicht gefunden. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc @@ -752,11 +744,7 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,62 +786,62 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Sonderfolien bearbeiten - + &Title: - + Add New Neues anfügen - + Edit Bearbeiten - + Edit All - + Save Speichern - + Delete Löschen - + Clear - + Clear edit area Aufräumen des Bearbeiten Bereiches - + Split Slide - + The&me: - + &Credits: @@ -868,37 +856,37 @@ Changes do not affect verses already in the service. Fehler - + Move slide down one position. - + Add a new slide at bottom. - + Edit the selected slide. - + Edit all the slides at once. - + Save the slide currently being edited. - + Delete the selected slide. - + Split a slide into two by inserting a slide splitter. @@ -918,7 +906,7 @@ Changes do not affect verses already in the service. - + Move slide up one position. @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Sonderfolien - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit Bearbeiten - + Edit the selected Custom - + Delete Löschen - + Delete the selected Custom - + Preview Vorschau - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Bild - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit Bearbeiten - + Edit the selected Image - + Delete Löschen - + Delete the selected Image - + Preview Vorschau - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1135,11 +1123,7 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Bild(er) @@ -1149,38 +1133,22 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Medien - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit Bearbeiten - + Edit the selected Media - + Delete Löschen - + Delete the selected Media - + Preview Vorschau - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,11 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Media Medien @@ -1300,11 +1264,7 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1312,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2430,6 +2390,11 @@ This General Public License does not permit incorporating your program into prop Default Theme: %s + + + AddHereYourLanguageName + + Version %s of OpenLP is now available for download (you are currently running version %s). @@ -2441,82 +2406,82 @@ You can download the latest version from http://openlp.org/. OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Zeige Live - + &Add to Service &Zum Ablauf hinzufügen - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Sie müssen mindestens ein Element markieren - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2524,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Plugin-Liste -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Plugin-Details -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Version: -<<<<<<< TREE - - TextLabel - Text Beschriftung - - -======= ->>>>>>> MERGE-SOURCE - + About: Über: - + Status: Status: - + Active Aktiv - + Inactive Inaktiv @@ -2630,11 +2575,7 @@ You can download the latest version from http://openlp.org/. Erstelle neuen Ablauf -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Öffnen Ablauf @@ -2644,7 +2585,7 @@ You can download the latest version from http://openlp.org/. Öffne Ablauf - + Save Service Ablauf speichern @@ -2754,68 +2695,48 @@ You can download the latest version from http://openlp.org/. &Design des Elements ändern -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? Änderungen am Ablauf speichern? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Fehler -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2849,140 +2770,85 @@ The content encoding is not UTF-8. Vorschau -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Vorherige Folie anzeigen -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Verschiebe zum Nächsten -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to live Verschieben zur Live Ansicht - -<<<<<<< TREE - - Edit and re-preview Song - Lied bearbeiten und wieder anzeigen - -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Endlosschleife starten -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Endlosschleife beenden -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Pause zwischen den Folien in Sekunden -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Abspielen -<<<<<<< TREE Blank Screen - Livebild schwarz + Blank to Theme - Livebild Hintergrund + Show Desktop - Livebild Transparent + - - Go to - Gehe zu -======= - + Edit and re-preview song - + Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3162,13 +3028,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? - -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3222,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Präsentation - + Presentations Präsentationen - + Load - + Load a new Presentation - + Delete Löschen - + Delete the selected Presentation - + Preview Vorschau - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3325,15 +3186,9 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported - -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3362,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Fernprojektion @@ -3403,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3497,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Lied - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Lied - + Songs Lieder - + Add - + Add a new Song - + Edit Bearbeiten - + Edit the selected Song - + Delete Löschen - + Delete the selected Song - + Preview Vorschau - + Preview the selected Song - + Live Live - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3628,107 +3483,107 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Lied bearbeiten - + &Title: - + &Lyrics: - + &Add - + &Edit &Bearbeiten - + Ed&it All - + &Delete - + Title && Lyrics Titel && Liedtext - + Authors Autoren - + &Add to Song Zum Lied &hinzufügen - + &Remove Entfe&rnen - + Topic Thema - + A&dd to Song Zum Lied &hinzufügen - + R&emove &Entfernen - + Song Book Liederbuch - + Theme Design - + New &Theme - + Copyright Information Copyright Angaben - + © - + Comments Kommentare - + Theme, Copyright Info && Comments Design, Copyrightinformationen && Kommentare @@ -3778,108 +3633,72 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Fehler -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Alt&ernate title: - + &Verse order: - + &Manage Authors, Topics, Song Books - + Authors, Topics && Song Book - + CCLI number: @@ -3894,37 +3713,30 @@ The content encoding is not UTF-8. - - Song No.: + + Book: + Buch: + + + + Number: SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Bearbeite Vers -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -3962,11 +3774,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Starte import ... @@ -4171,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4290,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4311,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Importvorgang abgeschlossen. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/en.ts b/resources/i18n/en.ts index 26230bd53..9ba29a478 100755 --- a/resources/i18n/en.ts +++ b/resources/i18n/en.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible - + Bibles - + Import - + Import a Bible - + Add - + Add a new Bible - + Edit - + Edit the selected Bible - + Delete - + Delete the selected Bible - + Preview - + Preview the selected Bible - + Live - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview - + Preview the selected Image - + Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview - + Preview the selected Media - + Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - - - - ->>>>>>> MERGE-SOURCE Select Media @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,14 +1985,29 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + + + + + Open Service + + + + + Save Service + + OpenLP 2.0 - - English + + AddHereYourLanguageName @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New - - - New Service - - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open - - - Open Service - - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save - - - Save Service - - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: -<<<<<<< TREE - - TextLabel - - - -======= ->>>>>>> MERGE-SOURCE - + About: - + Status: - + Active - + Inactive @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. - + Save Service @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen @@ -2898,95 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live -<<<<<<< TREE - Edit and re-preview Song -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3166,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3225,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation - + Presentations - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3323,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3364,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes @@ -3405,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3499,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song - + Songs - + Add - + Add a new Song - + Edit - + Edit the selected Song - + Delete - + Delete the selected Song - + Preview - + Preview the selected Song - + Live - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3630,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - - Song No.: + + Book: - + + Number: + + + + Authors, Topics && Song Book - + Theme - + New &Theme - + Copyright Information - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -3780,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error @@ -3829,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3904,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4054,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... @@ -4173,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4292,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4313,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/en_GB.ts b/resources/i18n/en_GB.ts index caea1db8e..0088eab91 100755 --- a/resources/i18n/en_GB.ts +++ b/resources/i18n/en_GB.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Alert - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alerts @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Bible - + Bibles Bibles - + Import Import - + Import a Bible - + Add Add - + Add a new Bible - + Edit Edit - + Edit the selected Bible - + Delete Delete - + Delete the selected Bible - + Preview Preview - + Preview the selected Bible - + Live Live - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. No matching book could be found in this Bible. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Add New - + Add a new slide at bottom. - + Edit Edit - + Edit the selected slide. - + Edit All Edit All - + Edit all the slides at once. - + Save Save - + Save the slide currently being edited. - + Delete Delete - + Delete the selected slide. - + Clear Clear - + Clear edit area Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Custom - + Customs - + Import Import - + Import a Custom - + Load - + Load a new Custom - + Add Add - + Add a new Custom - + Edit Edit - + Edit the selected Custom - + Delete Delete - + Delete the selected Custom - + Preview Preview - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Image - + Images Images - + Load - + Load a new Image - + Add Add - + Add a new Image - + Edit Edit - + Edit the selected Image - + Delete Delete - + Delete the selected Image - + Preview Preview - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Image(s) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Media - + Medias - + Load - + Load a new Media - + Add Add - + Add a new Media - + Edit Edit - + Edit the selected Media - + Delete Delete - + Delete the selected Media - + Preview Preview - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - Media - - - ->>>>>>> MERGE-SOURCE Select Media Select Media @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media Media -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,15 +1985,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + New Service + + + + Open Service + Open Service + + + + Save Service + Save Service + OpenLP 2.0 OpenLP 2.0 - - English - English + + AddHereYourLanguageName + @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New &New - - - New Service - New Service - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open &Open - - - Open Service - Open Service - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save &Save - - - Save Service - Save Service - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + English + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Show Live - + &Add to Service &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Plugin List -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Plugin Details -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Version: -<<<<<<< TREE - - TextLabel - TextLabel - - -======= ->>>>>>> MERGE-SOURCE - + About: About: - + Status: Status: - + Active Active - + Inactive Inactive @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. Create a new service -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Open Service @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. Load an existing service - + Save Service Save Service @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. &Change Item Theme -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Error -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. Preview -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Move to previous -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Move to next -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen Blank Screen @@ -2898,96 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live Move to live -<<<<<<< TREE - Edit and re-preview Song - Edit and re-preview Song -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Start continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Stop continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Delay between slides in seconds -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Start playing media -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3167,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3226,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Presentation - + Presentations Presentations - + Load - + Load a new Presentation - + Delete Delete - + Delete the selected Presentation - + Preview Preview - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3324,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3365,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remotes @@ -3406,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3500,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Song - + Songs Songs - + Add Add - + Add a new Song - + Edit Edit - + Edit the selected Song - + Delete Delete - + Delete the selected Song - + Preview Preview - + Preview the selected Song - + Live Live - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3631,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Edit - + Ed&it All - + &Delete - + Title && Lyrics Title && Lyrics - + Authors Authors - + &Add to Song &Add to Song - + &Remove &Remove - + &Manage Authors, Topics, Song Books - + Topic Topic - + A&dd to Song A&dd to Song - + R&emove R&emove - + Song Book Song Book - - Song No.: + + Book: + Book: + + + + Number: - + Authors, Topics && Song Book - + Theme Theme - + New &Theme - + Copyright Information Copyright Information - + © - + CCLI number: - + Comments Comments - + Theme, Copyright Info && Comments Theme, Copyright Info && Comments @@ -3781,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Error @@ -3830,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3905,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Edit Verse -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4055,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Starting import... @@ -4174,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4293,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4314,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Finished import. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/en_ZA.ts b/resources/i18n/en_ZA.ts index f4b79c366..b546f1bce 100755 --- a/resources/i18n/en_ZA.ts +++ b/resources/i18n/en_ZA.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Alert - + Show an alert message. Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alerts @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Bible - + Bibles Bibles - + Import - + Import a Bible - + Add - + Add a new Bible - + Edit Edit - + Edit the selected Bible - + Delete Delete - + Delete the selected Bible - + Preview Preview - + Preview the selected Bible - + Live Live - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -278,13 +274,8 @@ -<<<<<<< TREE - The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - -======= The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. ->>>>>>> MERGE-SOURCE @@ -305,7 +296,15 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + +Book Chapter +Book Chapter-Chapter +Book Chapter:Verse-Verse +Book Chapter:Verse-Verse,Verse-Verse +Book Chapter:Verse-Verse,Chapter:Verse-Verse +Book Chapter:Verse-Chapter:Verse + @@ -749,20 +748,12 @@ Changes do not affect verses already in the service. No matching book could be found in this Bible. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. Bible not fully loaded. @@ -778,7 +769,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -804,97 +795,97 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Edit Custom Slides - + Move slide down one position. Move slide down one position. - + &Title: &Title: - + Add New Add New - + Add a new slide at bottom. Add a new slide at bottom. - + Edit Edit - + Edit the selected slide. Edit the selected slide. - + Edit All Edit All - + Edit all the slides at once. Edit all the slides at once. - + Save Save - + Save the slide currently being edited. Save the slide currently being edited. - + Delete Delete - + Delete the selected slide. Delete the selected slide. - + Clear Clear - + Clear edit area Clear edit area - + Split Slide Split Slide - + Split a slide into two by inserting a slide splitter. Split a slide into two by inserting a slide splitter. - + The&me: The&me: - + &Credits: &Credits: @@ -924,7 +915,7 @@ Changes do not affect verses already in the service. You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Move slide up one position. Move slide up one position. @@ -945,92 +936,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit Edit - + Edit the selected Custom - + Delete Delete - + Delete the selected Custom - + Preview Preview - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1038,87 +1029,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit Edit - + Edit the selected Image - + Delete Delete - + Delete the selected Image - + Preview Preview - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1146,47 +1137,27 @@ Changes do not affect verses already in the service. Replace Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Image(s) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. You must select a media file to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background Reset Live Background @@ -1194,87 +1165,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit Edit - + Edit the selected Media - + Delete Delete - + Delete the selected Media - + Preview Preview - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1282,11 +1253,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Media Media @@ -1306,11 +1273,7 @@ Changes do not affect verses already in the service. Replace Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. You must select a media file to delete. @@ -1318,7 +1281,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files Image Files @@ -1455,144 +1418,6 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ -<<<<<<< TREE - - - - 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. - -======= ->>>>>>> MERGE-SOURCE @@ -2184,7 +2009,6 @@ This General Public License does not permit incorporating your program into prop Slide height is %s rows. Slide height is %s rows. -<<<<<<< TREE @@ -2198,8 +2022,6 @@ This General Public License does not permit incorporating your program into prop Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. -======= ->>>>>>> MERGE-SOURCE @@ -2759,165 +2581,91 @@ You can download the latest version from http://openlp.org/. You can download the latest version from http://openlp.org/. + + + AddHereYourLanguageName + + OpenLP.MediaManagerItem - + No Items Selected No Items Selected -<<<<<<< TREE - -======= - - Import %s - Import %s - - - - Import a %s - Import a %s - - - - Load %s - Load %s - - - - Load a new %s - Load a new %s - - - - New %s - New %s - - - - Add a new %s - Add a new %s - - - - Edit %s - Edit %s - - - - Edit the selected %s - Edit the selected %s - - - - Delete %s - Delete %s - - - - Delete the selected item - Delete the selected item - - - - Preview %s - Preview %s - - - - Preview the selected item - Preview the selected item - - - - Send the selected item live - Send the selected item live. - - - - Add %s to Service - Add %s to Service - - - - Add the selected item(s) to the service - Add the selected item(s) to the service. - - - ->>>>>>> MERGE-SOURCE + &Edit %s &Edit %s - + &Delete %s &Delete %s - + &Preview %s &Preview %s - + &Show Live &Show Live - + &Add to Service &Add to Service - + &Add to selected Service Item &Add to selected Service Item - + You must select one or more items to preview. You must select one or more items to preview. - + You must select one or more items to send live. You must select one or more items to send live. - + You must select one or more items. You must select one or more items. - + No items selected No items selected - + You must select one or more items You must select one or more items - + No Service Item Selected No Service Item Selected - + You must select an existing service item to add to. You must select an existing service item to add to. - + Invalid Service Item Invalid Service Item - + You must select a %s service item. You must select a %s service item. @@ -2925,49 +2673,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Plugin List -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Plugin Details -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Version: - + About: About: - + Status: Status: - + Active Active - + Inactive Inactive @@ -2985,14 +2721,6 @@ You can download the latest version from http://openlp.org/. %s (Disabled) %s (Disabled) -<<<<<<< TREE - - - - TextLabel - -======= ->>>>>>> MERGE-SOURCE @@ -3031,11 +2759,7 @@ You can download the latest version from http://openlp.org/. Create a new service -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Open Service @@ -3045,7 +2769,7 @@ You can download the latest version from http://openlp.org/. Load an existing service - + Save Service Save Service @@ -3155,69 +2879,49 @@ You can download the latest version from http://openlp.org/. &Change Item Theme -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Error -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. File is not a valid service. - + Missing Display Handler Missing Display Handler - + Your item cannot be displayed as there is no handler to display it Your item cannot be displayed as there is no handler to display it @@ -3251,69 +2955,31 @@ The content encoding is not UTF-8. Preview -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Move to previous -<<<<<<< TREE -======= - - Move to next - Move to next ->>>>>>> MERGE-SOURCE - - -<<<<<<< TREE Move to next Move to next -======= - ->>>>>>> MERGE-SOURCE Hide Hide -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to live Move to live -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Start continuous loop -<<<<<<< TREE -======= - - Stop continuous loop - Stop continuous loop - - - - s - s ->>>>>>> MERGE-SOURCE - - -<<<<<<< TREE Stop continuous loop Stop continuous loop @@ -3325,23 +2991,25 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Delay between slides in seconds -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Start playing media -<<<<<<< TREE + + Edit and re-preview song + Edit and re-preview song + + + + Go To + Go To + + Blank Screen @@ -3356,44 +3024,16 @@ The content encoding is not UTF-8. Show Desktop - - - Edit and re-preview Song - - - - - Go to - -======= - - Edit and re-preview song - Edit and re-preview song - - - - Go To - Go To ->>>>>>> MERGE-SOURCE - OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags Formatting Tags @@ -3574,13 +3214,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? - -======= A theme with this name already exists. Would you like to overwrite it? A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3634,67 +3269,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation - Presentation + Presentation - + Presentations Presentations - + Load - + Load a new Presentation - + Delete Delete - + Delete the selected Presentation - + Preview Preview - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3730,27 +3365,16 @@ The content encoding is not UTF-8. Unsupported File Unsupported File -<<<<<<< TREE - - - - This type of presentation is not supported - This type of presentation is not supported -======= ->>>>>>> MERGE-SOURCE You must select an item to delete. You must select an item to delete. -<<<<<<< TREE -======= - + This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3779,20 +3403,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. -<<<<<<< TREE - + Remote -======= ->>>>>>> MERGE-SOURCE - + Remotes Remotes @@ -3823,52 +3444,49 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking &Song Usage Tracking - + &Delete Tracking Data &Delete Tracking Data - + Delete song usage data up to a specified date. Delete song usage data up to a specified date. - + &Extract Tracking Data &Extract Tracking Data - + Generate a report on song usage. Generate a report on song usage. - + Toggle Tracking Toggle Tracking - + Toggle the tracking of song usage. Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. -<<<<<<< TREE - + SongUsage -======= ->>>>>>> MERGE-SOURCE @@ -3920,92 +3538,89 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Song - + Import songs using the import wizard. Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. -<<<<<<< TREE - + Song Song - + Songs - + Add - + Add a new Song - + Edit Edit - + Edit the selected Song - + Delete Delete - + Delete the selected Song - + Preview Preview - + Preview the selected Song - + Live Live - + Send the selected Song live - + Service - + Add the selected Song to the service -======= ->>>>>>> MERGE-SOURCE @@ -4054,117 +3669,117 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Song Editor - + &Title: &Title: - + &Lyrics: &Lyrics: - + &Add &Add - + &Edit &Edit - + Ed&it All Ed&it All - + &Delete &Delete - + Title && Lyrics Title && Lyrics - + Authors Authors - + &Add to Song &Add to Song - + &Remove &Remove - + &Manage Authors, Topics, Song Books &Manage Authors, Topics, Song Books - + Topic Topic - + A&dd to Song A&dd to Song - + R&emove R&emove - + Song Book Song Book - + Authors, Topics && Song Book Authors, Topics && Song Book - + Theme Theme - + New &Theme New &Theme - + Copyright Information Copyright Information - + © © - + Comments Comments - + Theme, Copyright Info && Comments Theme, Copyright Info && Comments @@ -4184,11 +3799,7 @@ The content encoding is not UTF-8. This author does not exist, do you want to add them? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Error @@ -4233,128 +3844,85 @@ The content encoding is not UTF-8. You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? This song book does not exist, do you want to add it? - + Alt&ernate title: Alt&ernate title: - + &Verse order: &Verse order: - + CCLI number: -<<<<<<< TREE CCLI number: -======= - CCLI number: ->>>>>>> MERGE-SOURCE - - Song No.: + + Book: + Book: + + + + Number: SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Edit Verse -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4392,11 +3960,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Starting import... @@ -4601,12 +4165,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4720,20 +4284,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © © @@ -4741,20 +4297,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Finished import. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/es.ts b/resources/i18n/es.ts index 7e57a7107..eba4f91cc 100755 --- a/resources/i18n/es.ts +++ b/resources/i18n/es.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Alerta - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alertas @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Biblia - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Biblia - + Bibles Biblias - + Import Importar - + Import a Bible - + Add Agregar - + Add a new Bible - + Edit Editar - + Edit the selected Bible - + Delete Eliminar - + Delete the selected Bible - + Preview Vista Previa - + Preview the selected Bible - + Live En vivo - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. No se encuentra un libro que concuerde, en esta Biblia. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Editar Diapositivas Personalizadas - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Agregar Nueva - + Add a new slide at bottom. - + Edit Editar - + Edit the selected slide. - + Edit All Editar Todo - + Edit all the slides at once. - + Save Guardar - + Save the slide currently being edited. - + Delete Eliminar - + Delete the selected slide. - + Clear Limpiar - + Clear edit area Limpiar el área de edición - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import Importar - + Import a Custom - + Load - + Load a new Custom - + Add Agregar - + Add a new Custom - + Edit Editar - + Edit the selected Custom - + Delete Eliminar - + Delete the selected Custom - + Preview Vista Previa - + Preview the selected Custom - + Live En vivo - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Imagen - + Images Imágenes - + Load - + Load a new Image - + Add Agregar - + Add a new Image - + Edit Editar - + Edit the selected Image - + Delete Eliminar - + Delete the selected Image - + Preview Vista Previa - + Preview the selected Image - + Live En vivo - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Imagen(es) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Medios - + Medias - + Load - + Load a new Media - + Add Agregar - + Add a new Media - + Edit Editar - + Edit the selected Media - + Delete Eliminar - + Delete the selected Media - + Preview Vista Previa - + Preview the selected Media - + Live En vivo - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - Medios - - - ->>>>>>> MERGE-SOURCE Select Media Seleccionar Medios @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media Medios -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,15 +1985,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + Servicio Nuevo + + + + Open Service + Abrir Servicio + + + + Save Service + Guardar Servicio + OpenLP 2.0 OpenLP 2.0 - - English - Ingles + + AddHereYourLanguageName + @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New &Nuevo - - - New Service - Servicio Nuevo - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open &Abrir - - - Open Service - Abrir Servicio - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save &Guardar - - - Save Service - Guardar Servicio - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + Ingles + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Mo&star En Vivo - + &Add to Service &Agregar al Servicio - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Usted debe seleccionar uno o más elementos - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Lista de Plugins -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Detalles de Plugin -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Versión: -<<<<<<< TREE - - TextLabel - TextLabel - - -======= ->>>>>>> MERGE-SOURCE - + About: Acerca de: - + Status: Estado: - + Active Activo - + Inactive Inactivo @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. Crear un servicio nuevo -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Abrir Servicio @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. Abrir un servicio existente - + Save Service Guardar Servicio @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. &Cambiar Tema de Ítem -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Error -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. Vista Previa -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Regresar al anterior -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Ir al siguiente -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen Pantalla en Blanco @@ -2898,96 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live Proyectar en vivo -<<<<<<< TREE - Edit and re-preview Song - Editar y re-visualizar Canción -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Iniciar bucle continuo -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Detener el bucle -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Espera entre diapositivas en segundos -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Iniciar la reproducción de medios -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3167,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3226,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Presentación - + Presentations Presentaciones - + Load - + Load a new Presentation - + Delete Eliminar - + Delete the selected Presentation - + Preview Vista Previa - + Preview the selected Presentation - + Live En vivo - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3324,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3365,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remotas @@ -3406,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3500,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Canción - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Canción - + Songs Canciones - + Add Agregar - + Add a new Song - + Edit Editar - + Edit the selected Song - + Delete Eliminar - + Delete the selected Song - + Preview Vista Previa - + Preview the selected Song - + Live En vivo - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3631,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Editor de Canción - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Editar - + Ed&it All - + &Delete - + Title && Lyrics Título && Letra - + Authors Autores - + &Add to Song &Agregar a Canción - + &Remove &Quitar - + &Manage Authors, Topics, Song Books - + Topic Categoría - + A&dd to Song A&gregar a Canción - + R&emove &Quitar - + Song Book Himnario - - Song No.: + + Book: + Libro: + + + + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Información de Derechos de Autor - + © - + CCLI number: - + Comments Comentarios - + Theme, Copyright Info && Comments Tema, Derechos de Autor && Comentarios @@ -3781,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Error @@ -3830,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3905,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Editar Verso -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4055,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Iniciando importación... @@ -4174,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4293,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4314,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Importación finalizada. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/et.ts b/resources/i18n/et.ts index dd485b79f..9ba29a478 100755 --- a/resources/i18n/et.ts +++ b/resources/i18n/et.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts @@ -52,12 +48,12 @@ &New - &Uus + &Save - &Salvesta + @@ -110,46 +106,6 @@ Font - - - pt - pt - - - - Alert timeout: - - - - - s - s - - - - Location: - - - - - Preview - Eelvaade - - - - Top - Üleval - - - - Bottom - All - - - - Middle - Keskel - Font name: @@ -170,101 +126,141 @@ Font size: + + + pt + + + + + Alert timeout: + + + + + s + + + + + Location: + + + + + Preview + + OpenLP 2.0 - OpenLP 2.0 + + + + + Top + + + + + Middle + + + + + Bottom + BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - Import a Bible - - - - - Add a new Bible - - - - - Edit the selected Bible - - - - - Delete the selected Bible - - - - - Preview the selected Bible - - - - - Send the selected Bible live - - - - + Bible - + Bibles - + Import - + + Import a Bible + + + + Add - + + Add a new Bible + + + + Edit - + + Edit the selected Bible + + + + Delete - + + Delete the selected Bible + + + + Preview - + + Preview the selected Bible + + + + Live - + + Send the selected Bible live + + + + Service - + Add the selected Bible to the service @@ -305,6 +301,11 @@ Book Chapter:Verse-Chapter:Verse BiblesPlugin.BiblesTab + + + Bibles + + Verse Display @@ -376,11 +377,6 @@ Changes do not affect verses already in the service. Display dual Bible verses - - - Bibles - - BiblesPlugin.ImportWizardForm @@ -389,6 +385,26 @@ Changes do not affect verses already in the service. 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: @@ -414,6 +430,26 @@ Changes do not affect verses already in the service. Web Download + + + File location: + + + + + Books location: + + + + + Verse location: + + + + + Bible filename: + + Location: @@ -454,11 +490,26 @@ Changes do not affect verses already in the service. Password: + + + Proxy Server (Optional) + + License Details + + + Set up the Bible's license details. + + + + + Version name: + + Copyright: @@ -474,66 +525,16 @@ Changes do not affect verses already in the service. Importing - - - Ready. - - - - - Open OSIS File - - - - - Open Books CSV File - - - - - Open OpenSong Bible - - - - - Starting import... - - - - - 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. - - - - - Proxy Server (Optional) - - - - - Set up the Bible's license details. - - Please wait while your Bible is imported. + + + Ready. + + Invalid Bible Location @@ -604,11 +605,31 @@ Changes do not affect verses already in the service. This Bible already exists! Please import a different Bible or first delete the existing one. + + + Open OSIS File + + + + + Open Books CSV File + + Open Verses CSV File + + + Open OpenSong Bible + + + + + Starting import... + + Finished import. @@ -619,31 +640,6 @@ Changes do not affect verses already in the service. Your Bible import failed. - - - File location: - - - - - Books location: - - - - - Verse location: - - - - - Bible filename: - - - - - Version name: - - BiblesPlugin.MediaItem @@ -660,13 +656,18 @@ Changes do not affect verses already in the service. Version: - Versioon: + Dual: + + + Search type: + + Find: @@ -732,31 +733,18 @@ Changes do not affect verses already in the service. No Book Found - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - etc - - No matching book could be found in this Bible. - - Search type: + + etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,110 +786,115 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - Kohandatud slaidide muutmine + - - Add New - Uue lisamine + + Move slide up one position. + - - Edit - Muuda - - - - Edit All - Kõigi muutmine - - - - Save - Salvesta - - - - Delete - Kustuta - - - - Clear - Puhasta - - - - Clear edit area - Muutmise ala puhastamine - - - - Split Slide - Tükelda slaid - - - - Save && Preview - Salvesta && eelvaatle - - - - Error - Viga - - - + Move slide down one position. - + &Title: - + + Add New + + + + Add a new slide at bottom. - + + Edit + + + + Edit the selected slide. - + + Edit All + + + + Edit all the slides at once. - + + Save + + + + Save the slide currently being edited. - + + Delete + + + + Delete the selected slide. - + + Clear + + + + + Clear edit area + + + + + Split Slide + + + + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: + + + Save && Preview + + + + + Error + + You need to type in a title. @@ -917,11 +910,6 @@ Changes do not affect verses already in the service. You have one or more unsaved slides, please either save your slide(s) or clear your changes. - - - Move slide up one position. - - CustomPlugin.MediaItem @@ -939,190 +927,190 @@ Changes do not affect verses already in the service. CustomsPlugin - - Import a Custom - - - - - Load a new Custom - - - - - Add a new Custom - - - - - Edit the selected Custom - - - - - Delete the selected Custom - - - - - Preview the selected Custom - - - - - Send the selected Custom live - - - - - Add the selected Custom to the service - - - - + Custom - + Customs - + Import - + + Import a Custom + + + + Load - + + Load a new Custom + + + + Add - + + Add a new Custom + + + + Edit - + + Edit the selected Custom + + + + Delete - + + Delete the selected Custom + + + + Preview - + + Preview the selected Custom + + + + Live - + + Send the selected Custom live + + + + Service + + + Add the selected Custom to the service + + ImagePlugin - - Load a new Image - - - - - Add a new Image - - - - - Edit the selected Image - - - - - Delete the selected Image - - - - - Preview the selected Image - - - - - Send the selected Image live - - - - - Add the selected Image to the service - - - - - Image - Pilt - - - - Images - - - - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + + Image + + + + + Images + + + + Load - + + Load a new Image + + + + Add - + + Add a new Image + + + + Edit - + + Edit the selected Image + + + + Delete - + + Delete the selected Image + + + + Preview - + + Preview the selected Image + + + + Live - + + Send the selected Image live + + + + Service + + + Add the selected Image to the service + + ImagePlugin.MediaItem Select Image(s) - Pildi (piltide) valimine + @@ -1132,16 +1120,7 @@ Changes do not affect verses already in the service. Replace Live Background - Ekraani tausta asendamine - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Image(s) - Pilt(pildid) + @@ -1149,145 +1128,125 @@ Changes do not affect verses already in the service. -<<<<<<< TREE + + Reset Live Background + + + -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE + + Image(s) + + + -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Reset Live Background - - MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - Load a new Media - - - - - Add a new Media - - - - - Edit the selected Media - - - - - Delete the selected Media - - - - - Preview the selected Media - - - - - Send the selected Media live - - - - - Add the selected Media to the service - - - - + Media - + Medias - + Load - + + Load a new Media + + + + Add - + + Add a new Media + + + + Edit - + + Edit the selected Media + + + + Delete - + + Delete the selected Media + + + + Preview - + + Preview the selected Media + + + + Live - + + Send the selected Media live + + + + Service + + + Add the selected Media to the service + + MediaPlugin.MediaItem - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Media - Meedia - Select Media - Meedia valimine + @@ -1300,11 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE + + Media + + + -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1312,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1322,7 +1282,7 @@ Changes do not affect verses already in the service. About OpenLP - OpenLP-st lähemalt + @@ -1333,42 +1293,11 @@ OpenLP is free church presentation software, or lyrics projection software, used 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. - OpenLP <version><revision> - avatud lähtekoodiga laulusõnade kuvaja - -OpenLP on vaba esitlustarkvara kirikusse võib öelda ka laulusõnade projitseerimise tarkvara, mida kasutatakse lauluslaidide, piiblisalmide, videote, piltide ja isegi esitluste (kui OpenOffice.org, PowerPoint või PowerPoint Viewer on paigaldatud) kirikus installed) kuvamiseks dataprojektori kaudu kirikus. - -OpenLP kohta võid lähemalt uurida aadressil: http://openlp.org/ - -OpenLP on kirjutatud vabatahtlike poolt. Kui sulle meeldiks näha rohkem kristlikku tarkvara, siis võid kaaluda annetamist, selleks klõpsa alumisele nupule. + About - Programmist - - - - Credits - Autorid - - - - License - Litsents - - - - Contribute - Aita kaasa - - - - Close - Sulge - - - - build %s @@ -1413,6 +1342,11 @@ Built With + + + Credits + + Copyright © 2004-2010 Raoul Snyman @@ -1548,6 +1482,26 @@ 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. + + + License + + + + + Contribute + + + + + Close + + + + + build %s + + OpenLP.AdvancedTab @@ -1567,13 +1521,13 @@ This General Public License does not permit incorporating your program into prop - - Double-click to send items straight to live (requires restart) + + Remember active media manager tab on startup - - Remember active media manager tab on startup + + Double-click to send items straight to live (requires restart) @@ -1582,7 +1536,7 @@ This General Public License does not permit incorporating your program into prop Theme Maintenance - Kujunduste haldus + @@ -1592,27 +1546,27 @@ This General Public License does not permit incorporating your program into prop Type: - Liik: + Solid Color - Ühtlane värv + Gradient - Üleminek + Image - Pilt + Image: - Pilt: + @@ -1622,17 +1576,17 @@ This General Public License does not permit incorporating your program into prop Horizontal - Horisontaalne + Vertical - Vertikaalne + Circular - Ümmargune + @@ -1642,12 +1596,12 @@ This General Public License does not permit incorporating your program into prop Main Font - Peamine kirjastiil + Font: - Kirjastiil: + @@ -1657,12 +1611,12 @@ This General Public License does not permit incorporating your program into prop Size: - Suurus: + pt - pt + @@ -1672,22 +1626,22 @@ This General Public License does not permit incorporating your program into prop Normal - Tavaline + Bold - Rasvane + Italics - Kursiiv + Bold/Italics - Rasvane/kaldkiri + @@ -1697,7 +1651,7 @@ This General Public License does not permit incorporating your program into prop Display Location - Kuva asukoht + @@ -1717,17 +1671,17 @@ This General Public License does not permit incorporating your program into prop Width: - Laius: + Height: - Kõrgus: + px - px + @@ -1737,7 +1691,7 @@ This General Public License does not permit incorporating your program into prop Footer Font - Jaluse kirjatüüp + @@ -1747,7 +1701,7 @@ This General Public License does not permit incorporating your program into prop Outline - Välisjoon + @@ -1767,7 +1721,7 @@ This General Public License does not permit incorporating your program into prop Shadow - Vari + @@ -1787,7 +1741,7 @@ This General Public License does not permit incorporating your program into prop Alignment - Joondus + @@ -1797,17 +1751,17 @@ This General Public License does not permit incorporating your program into prop Left - Vasakul + Right - Paremal + Center - Keskel + @@ -1817,22 +1771,22 @@ This General Public License does not permit incorporating your program into prop Top - Üleval + Middle - Keskel + Bottom - All + Slide Transition - Slaidide üleminek + @@ -1847,7 +1801,7 @@ This General Public License does not permit incorporating your program into prop Preview - Eelvaade + @@ -1890,40 +1844,90 @@ This General Public License does not permit incorporating your program into prop OpenLP.GeneralTab + + + General + + + + + Monitors + + Select monitor for output display: - Vali väljundkuva monitor: + Display if a single screen - Kuvatakse, kui on ainult üks ekraan + Application Startup - Rakenduse käivitumine + Show blank screen warning - Kuvatakse tühja ekraani hoiatust + Automatically open the last service - Automaatselt avatakse viimane teenistus + Show the splash screen - Käivitumisel kuvatakse logo + Application Settings - Rakenduse sätted + + + + + Prompt to save before starting a new service + + + + + Automatically preview next item in service + + + + + Slide loop delay: + + + + + sec + + + + + CCLI Details + + + + + CCLI number: + + + + + SongSelect username: + + + + + SongSelect password: + @@ -1955,64 +1959,14 @@ This General Public License does not permit incorporating your program into prop Override display position - - - General - Üldine - - - - Monitors - Monitorid - Screen - Ekraan + primary - peamine - - - - CCLI Details - CCLI andmed - - - - CCLI number: - - - - - SongSelect username: - - - - - SongSelect password: - - - - - Prompt to save before starting a new service - - - - - Automatically preview next item in service - - - - - Slide loop delay: - - - - - sec @@ -2021,7 +1975,7 @@ This General Public License does not permit incorporating your program into prop Language - Keel + @@ -2032,84 +1986,94 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow - - English - Eesti + + New Service + + + + + Open Service + + + + + Save Service + OpenLP 2.0 - OpenLP 2.0 + + + + + AddHereYourLanguageName + &File - &Fail + &Import - &Impordi + &Export - &Ekspordi + &View - &Vaade + M&ode - &Režiim + &Tools - &Tööriistad + &Settings - &Sätted + &Language - &Keel + &Help - A&bi + Media Manager - Meediahaldur + Service Manager - Teenistuse haldur + Theme Manager - Kujunduse haldur + &New - &Uus - - - - New Service - Uus teenistus + @@ -2119,17 +2083,12 @@ This General Public License does not permit incorporating your program into prop Ctrl+N - Ctrl+N + &Open - &Ava - - - - Open Service - Teenistuse avamine + @@ -2139,17 +2098,12 @@ This General Public License does not permit incorporating your program into prop Ctrl+O - Ctrl+O + &Save - &Salvesta - - - - Save Service - Salvesta teenistus + @@ -2159,17 +2113,17 @@ This General Public License does not permit incorporating your program into prop Ctrl+S - Ctrl+S + Save &As... - Salvesta &kui... + Save Service As - Salvesta teenistus kui + @@ -2184,22 +2138,22 @@ This General Public License does not permit incorporating your program into prop E&xit - &Välju + Quit OpenLP - Lahku OpenLPst + Alt+F4 - Alt+F4 + &Theme - &Kujundus + @@ -2209,12 +2163,12 @@ This General Public License does not permit incorporating your program into prop &Media Manager - &Meediahaldur + Toggle Media Manager - Meediahalduri lüliti + @@ -2224,17 +2178,17 @@ This General Public License does not permit incorporating your program into prop F8 - F8 + &Theme Manager - &Kujunduse haldur + Toggle Theme Manager - Kujunduse halduri lüliti + @@ -2244,17 +2198,17 @@ This General Public License does not permit incorporating your program into prop F10 - F10 + &Service Manager - &Teenistuse haldur + Toggle Service Manager - Teenistuse halduri lüliti + @@ -2264,17 +2218,17 @@ This General Public License does not permit incorporating your program into prop F9 - F9 + &Preview Panel - &Eelvaatluspaneel + Toggle Preview Panel - Eelvaatluspaneeli lüliti + @@ -2284,7 +2238,7 @@ This General Public License does not permit incorporating your program into prop F11 - F11 + @@ -2304,57 +2258,57 @@ This General Public License does not permit incorporating your program into prop F12 - F12 + &Plugin List - &Pluginate loend + List the Plugins - Pluginate loend + Alt+F7 - Alt+F7 + &User Guide - &Kasutajajuhend + &About - &Lähemalt + More information about OpenLP - Lähem teave OpenLP kohta + Ctrl+F1 - Ctrl+F1 + &Online Help - &Abi veebis + &Web Site - &Veebileht + &Auto Detect - &Isetuvastus + @@ -2369,7 +2323,7 @@ This General Public License does not permit incorporating your program into prop Add &Tool... - Lisa &tööriist... + @@ -2399,32 +2353,39 @@ This General Public License does not permit incorporating your program into prop &Live - &Otse + Set the view mode to 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/. + + OpenLP Version Updated - OpenLP uuendus + OpenLP Main Display Blanked - OpenLP peakuva on tühi + The Main Display has been blanked out - Peakuva on tühi + Save Changes to Service? - Kas salvestada teenistusse tehtud muudatused? + @@ -2437,92 +2398,90 @@ This General Public License does not permit incorporating your program into prop - - 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/. + + English OpenLP.MediaManagerItem - + + No Items Selected + + + + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - &Kuva ekraanil + - + &Add to Service - &Lisa teenistusele + - + &Add to selected Service Item - &Lisa valitud teenistuse elemendile + - - No Items Selected - Ühtegi elementi pole valitud - - - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - Pead valima vähemalt ühe elemendi. + - + No items selected - Ühtegi elementi pole valitud + - + You must select one or more items - Pead valima vähemalt ühe elemendi + - + No Service Item Selected - Ühtegi teenistuse elementi pole valitud + - + You must select an existing service item to add to. - Pead valima olemasoleva teenistuse, millele lisada. + - + Invalid Service Item - Vigane teenistuse element + - + You must select a %s service item. @@ -2530,59 +2489,39 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List - Pluginate loend + -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details - Plugina andmed + -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: - Versioon: + -<<<<<<< TREE - - TextLabel - TekstiPealdis - - -======= ->>>>>>> MERGE-SOURCE - + About: - Kirjeldus: + - + Status: - Olek: + - + Active - Aktiivne + - + Inactive - Pole aktiivne + @@ -2610,17 +2549,17 @@ You can download the latest version from http://openlp.org/. Up - Üles + Delete - Kustuta + Down - Alla + @@ -2628,41 +2567,37 @@ You can download the latest version from http://openlp.org/. New Service - Uus teenistus + Create a new service - Uue teenistuse loomine + -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service - Teenistuse avamine + Load an existing service - Välise teenistuse laadimine + - + Save Service - Salvesta teenistus + Save this service - Selle teenistuse salvestamine + Theme: - Kujundus: + @@ -2672,166 +2607,146 @@ You can download the latest version from http://openlp.org/. Move to &top - Liiguta ü&lemiseks - - - - Move &up - Liiguta &üles - - - - Move &down - Liiguta &alla - - - - Move to &bottom - Liiguta &alumiseks - - - - &Delete From Service - &Kustuta teenistusest - - - - &Add New Item - &Lisa uus element - - - - &Add to Selected Item - &Lisa valitud elemendile - - - - &Edit Item - &Muuda kirjet - - - - &Reorder Item - - - &Notes - &Märkmed - - - - &Preview Verse - &Salmi eelvaatlus - - - - &Live Verse - &Otsesalm - - - - &Change Item Theme - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Save Changes to Service? - Kas salvestada teenistusse tehtud muudatused? - - - - Your service is unsaved, do you want to save those changes before creating a new one? - See teenistus pole salvestatud, kas tahad selle uue avamist salvestada? - - - - OpenLP Service Files (*.osz) - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Your current service is unsaved, do you want to save the changes before opening a new one? - See teenistus pole salvestatud, kas tahad enne uue avamist muudatused salvestada? - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Error - Viga - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - File is not a valid service. -The content encoding is not UTF-8. - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - File is not a valid service. - - - - - Missing Display Handler - - - - - Your item cannot be displayed as there is no handler to display it - Seda elementi pole võimalik näidata ekraanil, kuna puudub seda käsitsev programm - Move item to the top of the service. + + + Move &up + + Move item up one position in the service. + + + Move &down + + Move item down one position in the service. + + + Move to &bottom + + Move item to the end of the service. + + + &Delete From Service + + Delete the selected item from the service. + + + &Add New Item + + + + + &Add to Selected Item + + + + + &Edit Item + + + + + &Reorder Item + + + + + &Notes + + + + + &Preview Verse + + + + + &Live Verse + + + + + &Change Item Theme + + + + + Save Changes to Service? + + + + + Your service is unsaved, do you want to save those changes before creating a new one? + + + + + OpenLP Service Files (*.osz) + + + + + Your current service is unsaved, do you want to save the changes before opening a new one? + + + + + Error + + + + + File is not a valid service. +The content encoding is not UTF-8. + + + + + File is not a valid service. + + + + + Missing Display Handler + + + + + Your item cannot be displayed as there is no handler to display it + + OpenLP.ServiceNoteForm Service Item Notes - Teenistuse elemendi märkmed + @@ -2847,103 +2762,26 @@ The content encoding is not UTF-8. Live - Ekraan + Preview - Eelvaade - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Move to previous - Eelmisele liikumine - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Move to next - Liikumine järgmisele - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Hide -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Move to live - Tõsta ekraanile + + Move to previous + -<<<<<<< TREE - - Edit and re-preview Song - Muuda ja kuva laulu eelvaade uuesti + + Move to next + - -======= - ->>>>>>> MERGE-SOURCE - Start continuous loop - Katkematu korduse alustamine - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Stop continuous loop - Katkematu korduse lõpetamine - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - s - s - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Delay between slides in seconds - Viivitus slaidide vahel sekundites - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Start playing media - Meediaesituse alustamine - - -<<<<<<< TREE - - Go to + + Hide @@ -2959,35 +2797,58 @@ The content encoding is not UTF-8. Show Desktop -======= - + + + + + Move to live + + + + Edit and re-preview song - + + Start continuous loop + + + + + Stop continuous loop + + + + + s + + + + + Delay between slides in seconds + + + + + Start playing media + + + + Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -2997,7 +2858,7 @@ The content encoding is not UTF-8. New Theme - Uus kujundus + @@ -3007,7 +2868,7 @@ The content encoding is not UTF-8. Edit Theme - Kujunduse muutmine + @@ -3017,7 +2878,7 @@ The content encoding is not UTF-8. Delete Theme - Teema kustutamine + @@ -3027,7 +2888,7 @@ The content encoding is not UTF-8. Import Theme - Teema importimine + @@ -3037,7 +2898,7 @@ The content encoding is not UTF-8. Export Theme - Kujunduse eksportimine + @@ -3092,12 +2953,12 @@ The content encoding is not UTF-8. Error - Viga + You are unable to delete the default theme. - Vaikimisi kujundust pole võimalik kustutada. + @@ -3112,12 +2973,12 @@ The content encoding is not UTF-8. You have not selected a theme. - Sa ei ole teemat valinud. + Save Theme - (%s) - Salvesta kujundus - (%s) + @@ -3142,7 +3003,7 @@ The content encoding is not UTF-8. Select Theme Import File - Importimiseks kujunduse faili valimine + @@ -3158,20 +3019,16 @@ The content encoding is not UTF-8. File is not a valid theme. - See fail ei ole sobilik kujundus. + Theme Exists - Kujundus on juba olemas + -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3180,7 +3037,7 @@ The content encoding is not UTF-8. Themes - Kujundused + @@ -3200,7 +3057,7 @@ The content encoding is not UTF-8. 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. - Iga laulu jaoks kasutatakse andmebaasis sellele määratud kujundust. Kui laulul kujundus puudub, kasutatakse teenistuse teemat. Kui teenistusel kujundus puudub, siis kasutatakse üleüldist teemat. + @@ -3210,7 +3067,7 @@ The content encoding is not UTF-8. 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. - Kasutatakse teenistuse kujundust, eirates laulude kujundusi. Kui teenistusel kujundust pole, kasutatakse globaalset. + @@ -3220,84 +3077,79 @@ The content encoding is not UTF-8. Use the global theme, overriding any themes associated with either the service or the songs. - Kasutatakse globaalset kujundust, eirates nii teenistuse kui laulu kujundust. + PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - Load a new Presentation - - - - - Delete the selected Presentation - - - - - Preview the selected Presentation - - - - - Send the selected Presentation live - - - - - Add the selected Presentation to the service - - - - + Presentation - + Presentations - + Load - + + Load a new Presentation + + + + Delete - + + Delete the selected Presentation + + + + Preview - + + Preview the selected Presentation + + + + Live - + + Send the selected Presentation live + + + + Service + + + Add the selected Presentation to the service + + PresentationPlugin.MediaItem - - - Present using: - - Select Presentation(s) @@ -3308,40 +3160,36 @@ The content encoding is not UTF-8. Automatic + + + Present using: + + + + + File Exists + + A presentation with that filename already exists. - - - You must select an item to delete. - - - -<<<<<<< TREE - - This type of presentation is not supported - - - - -======= - ->>>>>>> MERGE-SOURCE - File Exists - - Unsupported File - + This type of presentation is not supported. + + + You must select an item to delete. + + PresentationPlugin.PresentationTab @@ -3369,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes @@ -3410,53 +3258,58 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage SongUsagePlugin.SongUsageDeleteForm + + + Delete Song Usage Data + + Delete Selected Song Usage Events? @@ -3467,19 +3320,9 @@ The content encoding is not UTF-8. Are you sure you want to delete selected Song Usage data? - - - Delete Song Usage Data - - SongUsagePlugin.SongUsageDetailForm - - - Output File Location - - Song Usage Extraction @@ -3500,131 +3343,136 @@ The content encoding is not UTF-8. Report Location + + + Output File Location + + SongsPlugin - + &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - Add a new Song - - - - - Edit the selected Song - - - - - Delete the selected Song - - - - - Preview the selected Song - - - - - Send the selected Song live - - - - - Add the selected Song to the service - - - - + Song - + Songs - + Add - + + Add a new Song + + + + Edit - + + Edit the selected Song + + + + Delete - + + Delete the selected Song + + + + Preview - + + Preview the selected Song + + + + Live - + + Send the selected Song live + + + + Service + + + Add the selected Song to the service + + SongsPlugin.AuthorsForm Author Maintenance - Autorite haldus + Display name: - Kuvatav nimi: + First name: - Eesnimi: + Last name: - Perekonnanimi: + Error - Viga + You need to type in the first name of the author. - Pead sisestama autori eesnime. + You need to type in the last name of the author. - Pead sisestama autori perekonnanime. + @@ -3635,99 +3483,149 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - Lauluredaktor + - + &Title: - + + Alt&ernate title: + + + + &Lyrics: - + + &Verse order: + + + + &Add - + &Edit - &Muuda + - + Ed&it All - + &Delete - &Kustuta + - + Title && Lyrics - Pealkiri && laulusõnad + - + Authors - Autorid + - + &Add to Song - &Lisa laulule + - + &Remove - &Eemalda + - + + &Manage Authors, Topics, Song Books + + + + Topic - Teema + - + A&dd to Song - L&isa laulule + - + R&emove - &Eemalda + - + Song Book - Laulik + - + + Book: + + + + + Number: + + + + + Authors, Topics && Song Book + + + + Theme - Kujundus + - + + New &Theme + + + + Copyright Information - Autoriõiguse andmed + - + + © + + + + + CCLI number: + + + + Comments - Kommentaarid + - + Theme, Copyright Info && Comments - Kujundus, autoriõigus && kommentaarid + + + + + Save && Preview + @@ -3739,6 +3637,16 @@ The content encoding is not UTF-8. This author does not exist, do you want to add them? + + + Error + + + + + This author is already in the list. + + No Author Selected @@ -3759,6 +3667,11 @@ The content encoding is not UTF-8. This topic does not exist, do you want to add it? + + + This topic is already in the list. + + No Topic Selected @@ -3770,293 +3683,66 @@ The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Add Book - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - This song book does not exist, do you want to add it? - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - - - - - New &Theme - - - - - © - - - - - Save && Preview - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Error - Viga - - -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE + + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. + + + -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - - &Manage Authors, Topics, Song Books + + Add Book - - Authors, Topics && Song Book - - - - - This author is already in the list. - - - - - This topic is already in the list. - - - - - Alt&ernate title: - - - - - &Verse order: - - - - - CCLI number: - - - - - Song No.: + + This song book does not exist, do you want to add it? SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert SongsPlugin.ImportWizardForm - - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - - No OpenSong Files Selected - - - - - You need to add at least one OpenSong song file to import from. - - - - - No CCLI Files Selected - - - - - You need to add at least one CCLI file to import from. - - - - - Song Import Wizard - - - - - Welcome to the Song Import Wizard - - - - - This wizard will help you to import songs 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: - - - - - OpenLyrics - - - - - OpenSong - - - - - Add Files... - - - - - Remove File(s) - - - - - Filename: - - - - - Browse... - - - - - Importing - - - - - Please wait while your songs are imported. - - - - - Ready. - - - - - %p% - - - -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE - Starting import... - - No OpenLP 2.0 Song Database Selected @@ -4077,6 +3763,26 @@ The content encoding is not UTF-8. You need to select an openlp.org 1.x song database file to import from. + + + No OpenLyrics Files Selected + + + + + You need to add at least one OpenLyrics song file to import from. + + + + + No OpenSong Files Selected + + + + + You need to add at least one OpenSong song file to import from. + + No Words of Worship Files Selected @@ -4087,6 +3793,16 @@ The content encoding is not UTF-8. You need to add at least one Words of Worship file to import from. + + + No CCLI Files Selected + + + + + You need to add at least one CCLI file to import from. + + No Songs of Fellowship File Selected @@ -4132,6 +3848,11 @@ The content encoding is not UTF-8. Select Words of Worship Files + + + Select CCLI Files + + Select Songs of Fellowship Files @@ -4142,6 +3863,41 @@ The content encoding is not UTF-8. Select Document/Presentation Files + + + Starting import... + + + + + Song Import Wizard + + + + + Welcome to the Song Import Wizard + + + + + This wizard will help you to import songs 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: + + OpenLP 2.0 @@ -4152,6 +3908,16 @@ The content encoding is not UTF-8. openlp.org 1.x + + + OpenLyrics + + + + + OpenSong + + Words of Worship @@ -4173,17 +3939,52 @@ The content encoding is not UTF-8. - - Select CCLI Files + + Filename: - + + Browse... + + + + + Add Files... + + + + + Remove File(s) + + + + + Importing + + + + + Please wait while your songs are imported. + + + + + Ready. + + + + + %p% + + + + Importing "%s"... - + Importing %s... @@ -4195,6 +3996,11 @@ The content encoding is not UTF-8. Song Maintenance + + + Maintain the lists of authors, topics and books + + Search: @@ -4203,7 +4009,7 @@ The content encoding is not UTF-8. Type: - Liik: + @@ -4230,16 +4036,6 @@ The content encoding is not UTF-8. Authors - - - CCLI Licence: - - - - - Maintain the lists of authors, topics and books - - You must select an item to edit. @@ -4265,9 +4061,19 @@ The content encoding is not UTF-8. Delete Song(s)? + + + CCLI Licence: + + SongsPlugin.SongBookForm + + + Song Book Maintenance + + &Name: @@ -4281,36 +4087,23 @@ The content encoding is not UTF-8. Error - Viga + You need to type in a name for the book. - - - Song Book Maintenance - - SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4318,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. @@ -4341,17 +4126,22 @@ The content encoding is not UTF-8. Song Maintenance - Laulude haldus + Authors - Autorid + Topics - Teemad + + + + + Song Books + @@ -4361,61 +4151,16 @@ The content encoding is not UTF-8. &Edit - &Muuda + &Delete - &Kustuta - - - - Delete Author - - - - - Delete Topic - - - - - Delete Book Error - Viga - - - - Are you sure you want to delete the selected author? - - - - - No author selected! - - - - - Are you sure you want to delete the selected topic? - - - - - No topic selected! - - - - - Are you sure you want to delete the selected book? - - - - - Song Books @@ -4463,16 +4208,56 @@ The content encoding is not UTF-8. Could not save your modified topic, because it already exists. + + + Delete Author + + + + + Are you sure you want to delete the selected author? + + This author cannot be deleted, they are currently assigned to at least one song. + + + No author selected! + + + + + Delete Topic + + + + + Are you sure you want to delete the selected topic? + + This topic cannot be deleted, it is currently assigned to at least one song. + + + No topic selected! + + + + + Delete Book + + + + + Are you sure you want to delete the selected book? + + This book cannot be deleted, it is currently assigned to at least one song. @@ -4522,7 +4307,7 @@ The content encoding is not UTF-8. Error - Viga + diff --git a/resources/i18n/hu.ts b/resources/i18n/hu.ts index 5560ac59b..031a9de32 100755 --- a/resources/i18n/hu.ts +++ b/resources/i18n/hu.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Figyelmeztetés - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Figyelmeztetések @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Biblia - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Biblia - + Bibles Bibliák - + Import Importálás - + Import a Bible - + Add Hozzáadás - + Add a new Bible - + Edit Szerkesztés - + Edit the selected Bible - + Delete Törlés - + Delete the selected Bible - + Preview Előnézet - + Preview the selected Bible - + Live Egyenes adás - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. Nem található ilyen könyv ebben a Bibliában. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Egyedi diák szerkesztése - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Új hozzáadása - + Add a new slide at bottom. - + Edit Szerkesztés - + Edit the selected slide. - + Edit All Összes szerkesztése - + Edit all the slides at once. - + Save Mentés - + Save the slide currently being edited. - + Delete Törlés - + Delete the selected slide. - + Clear - + Clear edit area Szerkesztő terület törlése - + Split Slide Dia kettéválasztása - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Egyedi - + Customs - + Import Importálás - + Import a Custom - + Load - + Load a new Custom - + Add Hozzáadás - + Add a new Custom - + Edit Szerkesztés - + Edit the selected Custom - + Delete Törlés - + Delete the selected Custom - + Preview Előnézet - + Preview the selected Custom - + Live Egyenes adás - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Kép - + Images Képek - + Load - + Load a new Image - + Add Hozzáadás - + Add a new Image - + Edit Szerkesztés - + Edit the selected Image - + Delete Törlés - + Delete the selected Image - + Preview Előnézet - + Preview the selected Image - + Live Egyenes adás - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Kép(ek) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Média - + Medias - + Load - + Load a new Media - + Add Hozzáadás - + Add a new Media - + Edit Szerkesztés - + Edit the selected Media - + Delete Törlés - + Delete the selected Media - + Preview Előnézet - + Preview the selected Media - + Live Egyenes adás - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - Média - - - ->>>>>>> MERGE-SOURCE Select Media Média kiválasztása @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media Média -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2036,15 +1991,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + Új szolgálat + + + + Open Service + Szolgálat megnyitása + + + + Save Service + Szolgálat mentése + OpenLP 2.0 - - English - Magyar + + AddHereYourLanguageName + @@ -2111,11 +2081,6 @@ This General Public License does not permit incorporating your program into prop &New &Új - - - New Service - Új szolgálat - Create a new service. @@ -2131,11 +2096,6 @@ This General Public License does not permit incorporating your program into prop &Open &Megnyitás - - - Open Service - Szolgálat megnyitása - Open an existing service. @@ -2151,11 +2111,6 @@ This General Public License does not permit incorporating your program into prop &Save - - - Save Service - Szolgálat mentése - Save the current service to disk. @@ -2448,86 +2403,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + Magyar + OpenLP.MediaManagerItem - + No Items Selected Nincs kiválasztott elem - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Egyenes &adásba - + &Add to Service &Hozzáadás a szolgálathoz - + &Add to selected Service Item &Hozzáadás a kiválasztott szolgálat elemhez - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Ki kell választani egy vagy több elemet. - + No items selected Nincs kiválasztott elem - + You must select one or more items Ki kell választani egy vagy több elemet - + No Service Item Selected Nincs kiválasztott szolgálat elem - + You must select an existing service item to add to. Ki kell választani egy szolgálati elemet, amihez hozzá szeretné adni. - + Invalid Service Item Érvénytelen szolgálat elem - + You must select a %s service item. @@ -2535,57 +2495,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Bővítménylista -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Bővítmény részletei -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Verzió: -<<<<<<< TREE - - TextLabel - Szövegcímke - - -======= ->>>>>>> MERGE-SOURCE - + About: Névjegy: - + Status: Állapot: - + Active Aktív - + Inactive Inaktív @@ -2641,11 +2581,7 @@ You can download the latest version from http://openlp.org/. Új szolgálat létrehozása -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Szolgálat megnyitása @@ -2655,7 +2591,7 @@ You can download the latest version from http://openlp.org/. Egy meglévő szolgálat betöltése - + Save Service Szolgálat mentése @@ -2765,68 +2701,48 @@ You can download the latest version from http://openlp.org/. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat létrehozná? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat megnyitná? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Hiba -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler Hiányzó képernyő kezelő - + Your item cannot be displayed as there is no handler to display it Az elemet nem lehet megjeleníteni, mert nincs kezelő, amely megjelenítené @@ -2860,34 +2776,21 @@ The content encoding is not UTF-8. Előnézet -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Mozgatás az előzőre -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Mozgatás a következőre -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen Elsötétített képernyő @@ -2904,96 +2807,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live Mozgatás az egyenes adásban lévőre -<<<<<<< TREE - Edit and re-preview Song - Dal szerkesztése, majd újra az előnézet megnyitása -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Folyamatos vetítés indítása -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Folyamatos vetítés leállítása -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s mp -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Diák közötti késleltetés másodpercben -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Médialejátszás indítása -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3173,11 +3034,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3232,67 +3089,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Bemutató - + Presentations Bemutatók - + Load - + Load a new Presentation - + Delete Törlés - + Delete the selected Presentation - + Preview Előnézet - + Preview the selected Presentation - + Live Egyenes adás - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3330,13 +3187,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3371,17 +3223,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Távvezérlés @@ -3412,47 +3264,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3506,87 +3358,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Dal - + Import songs using the import wizard. Dalok importálása az importálás tündérrel. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Dal - + Songs Dalok - + Add Hozzáadás - + Add a new Song - + Edit Szerkesztés - + Edit the selected Song - + Delete Törlés - + Delete the selected Song - + Preview Előnézet - + Preview the selected Song - + Live Egyenes adás - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3637,137 +3489,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Dalszerkesztő - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Szerkesztés - + Ed&it All - + &Delete &Törlés - + Title && Lyrics Cím és dalszöveg - + Authors Szerzők - + &Add to Song &Hozzáadás dalhoz - + &Remove &Eltávolítás - + &Manage Authors, Topics, Song Books - + Topic Témakör - + A&dd to Song &Hozzáadás dalhoz - + R&emove &Eltávolítás - + Song Book Daloskönyv - - Song No.: + + Book: + Könyv: + + + + Number: - + Authors, Topics && Song Book - + Theme Téma - + New &Theme - + Copyright Information Szerzői jogi információ - + © - + CCLI number: - + Comments Megjegyzések - + Theme, Copyright Info && Comments Téma, szerzői jogi infók és megjegyzések @@ -3787,11 +3644,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Hiba @@ -3836,74 +3689,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3911,29 +3732,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Versszak szerkesztése -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4061,11 +3870,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Importálás indítása... @@ -4180,12 +3985,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4299,20 +4104,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4320,20 +4117,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Az importálás befejeződött. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/ko.ts b/resources/i18n/ko.ts index 26b1f425e..59be559d5 100755 --- a/resources/i18n/ko.ts +++ b/resources/i18n/ko.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible 성경 - + Bibles - + Import - + Import a Bible - + Add - + Add a new Bible - + Edit - + Edit the selected Bible - + Delete - + Delete the selected Bible - + Preview - + Preview the selected Bible - + Live - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview - + Preview the selected Image - + Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview - + Preview the selected Media - + Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - - - - ->>>>>>> MERGE-SOURCE Select Media @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,14 +1985,29 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + + + + + Open Service + + + + + Save Service + + OpenLP 2.0 - - English + + AddHereYourLanguageName @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New - - - New Service - - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open - - - Open Service - - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save - - - Save Service - - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: -<<<<<<< TREE - - TextLabel - - - -======= ->>>>>>> MERGE-SOURCE - + About: - + Status: - + Active - + Inactive @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. - + Save Service @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen @@ -2898,95 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live -<<<<<<< TREE - Edit and re-preview Song -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3166,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3225,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation - + Presentations - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3323,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3364,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes @@ -3405,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3499,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song - + Songs - + Add - + Add a new Song - + Edit - + Edit the selected Song - + Delete - + Delete the selected Song - + Preview - + Preview the selected Song - + Live - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3630,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - - Song No.: + + Book: - + + Number: + + + + Authors, Topics && Song Book - + Theme - + New &Theme - + Copyright Information - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -3780,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error @@ -3829,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3904,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4054,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... @@ -4173,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4292,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4313,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/nb.ts b/resources/i18n/nb.ts index fb7040fe8..316e1ecc3 100755 --- a/resources/i18n/nb.ts +++ b/resources/i18n/nb.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Bibel - + Bibles Bibler - + Import - + Import a Bible - + Add - + Add a new Bible - + Edit - + Edit the selected Bible - + Delete - + Delete the selected Bible - + Preview - + Preview the selected Bible - + Live Direkte - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. Finner ingen matchende bøker i denne Bibelen. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Rediger egendefinerte lysbilder - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Legg til Ny - + Add a new slide at bottom. - + Edit - + Edit the selected slide. - + Edit All - + Edit all the slides at once. - + Save Lagre - + Save the slide currently being edited. - + Delete - + Delete the selected slide. - + Clear - + Clear edit area - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import - + Import a Custom - + Load - + Load a new Custom - + Add - + Add a new Custom - + Edit - + Edit the selected Custom - + Delete - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live Direkte - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image - + Images - + Load - + Load a new Image - + Add - + Add a new Image - + Edit - + Edit the selected Image - + Delete - + Delete the selected Image - + Preview - + Preview the selected Image - + Live Direkte - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Bilde(r) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media - + Medias - + Load - + Load a new Media - + Add - + Add a new Media - + Edit - + Edit the selected Media - + Delete - + Delete the selected Media - + Preview - + Preview the selected Media - + Live Direkte - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - - - - ->>>>>>> MERGE-SOURCE Select Media Velg media @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,15 +1985,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + + + + + Open Service + Åpne møteplan + + + + Save Service + + OpenLP 2.0 OpenLP 2.0 - - English - Norsk + + AddHereYourLanguageName + @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New &Ny - - - New Service - - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open &Åpne - - - Open Service - Åpne møteplan - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save &Lagre - - - Save Service - - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + Norsk + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service &Legg til i møteplan - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: -<<<<<<< TREE - - TextLabel - - - -======= ->>>>>>> MERGE-SOURCE - + About: Om: - + Status: Status: - + Active Aktiv - + Inactive @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. Opprett ny møteplan -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service Åpne møteplan @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. - + Save Service @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. &Bytt objekttema -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) OpenLP møteplan (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Flytt til forrige -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen @@ -2898,96 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live -<<<<<<< TREE - Edit and re-preview Song - Endre og forhåndsvis sang -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Start kontinuerlig løkke -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Forsinkelse mellom lysbilder i sekund -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Start avspilling av media -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3167,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3226,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Presentasjon - + Presentations - + Load - + Load a new Presentation - + Delete - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live Direkte - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3324,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3365,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Fjernmeldinger @@ -3406,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3500,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Sang - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Sang - + Songs Sanger - + Add - + Add a new Song - + Edit - + Edit the selected Song - + Delete - + Delete the selected Song - + Preview - + Preview the selected Song - + Live Direkte - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3631,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Sangredigeringsverktøy - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Rediger - + Ed&it All - + &Delete - + Title && Lyrics Tittel && Sangtekst - + Authors - + &Add to Song - + &Remove &Fjern - + &Manage Authors, Topics, Song Books - + Topic Emne - + A&dd to Song - + R&emove &Fjern - + Song Book - - Song No.: + + Book: + Bok: + + + + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Copyright-informasjon - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -3781,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error @@ -3830,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3905,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Rediger Vers -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4055,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... @@ -4174,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4293,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4314,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Import fullført. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/pt_BR.ts b/resources/i18n/pt_BR.ts index 8f1607c1c..23e3dc594 100755 --- a/resources/i18n/pt_BR.ts +++ b/resources/i18n/pt_BR.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Alerta - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alertas @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Bíblia - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />Este plugin permite exibir versículos bíblicos de diferentes fontes durante o culto. - + Bible Bíblia - + Bibles Bíblias - + Import Importar - + Import a Bible - + Add Adicionar - + Add a new Bible - + Edit Editar - + Edit the selected Bible - + Delete Deletar - + Delete the selected Bible - + Preview - + Preview the selected Bible - + Live Ao Vivo - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. Nenhum livro foi encontrado nesta Bíblia -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Editar Slides Customizados - + Move slide up one position. - + Move slide down one position. Mover slide uma posição para baixo. - + &Title: &Título: - + Add New Adicionar Novo - + Add a new slide at bottom. - + Edit Editar - + Edit the selected slide. Editar o slide selecionado. - + Edit All Editar Todos - + Edit all the slides at once. - + Save Salvar - + Save the slide currently being edited. - + Delete Deletar - + Delete the selected slide. - + Clear Limpar - + Clear edit area Limpar área de edição - + Split Slide - + Split a slide into two by inserting a slide splitter. Dividir um slide em dois, inserindo um divisor de slides. - + The&me: - + &Credits: &Créditos: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom Customizado - + Customs - + Import Importar - + Import a Custom - + Load - + Load a new Custom - + Add Adicionar - + Add a new Custom - + Edit Editar - + Edit the selected Custom - + Delete Deletar - + Delete the selected Custom - + Preview - + Preview the selected Custom - + Live Ao Vivo - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Imagem - + Images Imagens - + Load - + Load a new Image - + Add Adicionar - + Add a new Image - + Edit Editar - + Edit the selected Image - + Delete Deletar - + Delete the selected Image - + Preview - + Preview the selected Image - + Live Ao Vivo - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. Substituir Plano de Fundo -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Imagem(s) -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Mídia - + Medias - + Load - + Load a new Media - + Add Adicionar - + Add a new Media - + Edit Editar - + Edit the selected Media - + Delete Deletar - + Delete the selected Media - + Preview - + Preview the selected Media - + Live Ao Vivo - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - Mídia - - - ->>>>>>> MERGE-SOURCE Select Media Selecionar Mídia @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. Substituir Plano de Fundo -<<<<<<< TREE Media Mídia -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2067,15 +2022,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + Novo Culto + + + + Open Service + + + + + Save Service + Salvar Culto + OpenLP 2.0 OpenLP 2.0 - - English - Inglês + + AddHereYourLanguageName + @@ -2142,11 +2112,6 @@ This General Public License does not permit incorporating your program into prop &New &Novo - - - New Service - Novo Culto - Create a new service. @@ -2162,11 +2127,6 @@ This General Public License does not permit incorporating your program into prop &Open &Abrir - - - Open Service - - Open an existing service. @@ -2182,11 +2142,6 @@ This General Public License does not permit incorporating your program into prop &Save &Salvar - - - Save Service - Salvar Culto - Save the current service to disk. @@ -2479,86 +2434,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s Tema padrão: %s + + + English + Inglês + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s &Deletar %s - + &Preview %s - + &Show Live &Mostrar Ao Vivo - + &Add to Service &Adicionar ao Culto - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. Você precisa selecionar um ou mais itens. - + No items selected - + You must select one or more items Você precisa selecionar um ou mais itens - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2566,57 +2526,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Lista de Plugins -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Detalhes do Plugin -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Versão: -<<<<<<< TREE - - TextLabel - TextLabel - - -======= ->>>>>>> MERGE-SOURCE - + About: Sobre: - + Status: Status: - + Active Ativo - + Inactive Inativo @@ -2672,11 +2612,7 @@ You can download the latest version from http://openlp.org/. Criar um novo culto -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service @@ -2686,7 +2622,7 @@ You can download the latest version from http://openlp.org/. Carregar um culto existente - + Save Service Salvar Culto @@ -2796,68 +2732,48 @@ You can download the latest version from http://openlp.org/. &Alterar Tema do Item -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? Salvar Mudanças no Culto? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) Arquivo de Culto do OpenLP (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Erro -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2891,34 +2807,21 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Mover para o anterior -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Mover para o próximo -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen Tela em Branco @@ -2935,96 +2838,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live Mover para ao vivo -<<<<<<< TREE - Edit and re-preview Song - Editar e pré-visualizar Música novamente -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Iniciar repetição contínua -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Parar repetição contínua -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Intervalo entre slides em segundos -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Iniciar a reprodução de mídia -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3205,13 +3066,8 @@ A codificação do conteúdo não é UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? - Já existe um tema com este nome. Deseja sobreescrevê-lo? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3265,67 +3121,67 @@ A codificação do conteúdo não é UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Apresentação - + Presentations Apresentações - + Load - + Load a new Presentation - + Delete Deletar - + Delete the selected Presentation - + Preview - + Preview the selected Presentation - + Live Ao Vivo - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3363,13 +3219,8 @@ A codificação do conteúdo não é UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3404,17 +3255,17 @@ A codificação do conteúdo não é UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remoto @@ -3445,47 +3296,47 @@ A codificação do conteúdo não é UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3539,87 +3390,87 @@ A codificação do conteúdo não é UTF-8. SongsPlugin - + &Song &Música - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Música - + Songs Músicas - + Add Adicionar - + Add a new Song - + Edit Editar - + Edit the selected Song - + Delete Deletar - + Delete the selected Song - + Preview - + Preview the selected Song - + Live Ao Vivo - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3670,137 +3521,142 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.EditSongForm - + Song Editor Editor de Músicas - + &Title: &Título: - + Alt&ernate title: Título &Alternativo: - + &Lyrics: - + &Verse order: Ordem das &estrofes: - + &Add %Adicionar - + &Edit &Editar - + Ed&it All - + &Delete &Deletar - + Title && Lyrics Título && Letras - + Authors Autores - + &Add to Song &Adicionar à Música - + &Remove &Remover - + &Manage Authors, Topics, Song Books - + Topic Tópico - + A&dd to Song A&dicionar uma Música - + R&emove R&emover - + Song Book Livro de Músicas - - Song No.: + + Book: + Livro: + + + + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Informação de Direitos Autorais - + © - + CCLI number: - + Comments Comentários - + Theme, Copyright Info && Comments Tema, Direitos Autorais && Comentários @@ -3820,11 +3676,7 @@ A codificação do conteúdo não é UTF-8. Este autor não existe, deseja adicioná-lo? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Erro @@ -3869,74 +3721,42 @@ A codificação do conteúdo não é UTF-8. Não há nenhum tópico válido selecionado. Selecione um tópico da lista, ou digite um novo tópico e clique em "Adicionar Tópico à Música" para adicionar o novo tópico. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? Você não adicionou nenhum autor a esta música. Deseja adicionar um agora? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? Este hinário não existe, deseja adicioná-lo? @@ -3944,29 +3764,17 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Editar Versículo -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: Tipo de &Versículo: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4094,11 +3902,7 @@ A codificação do conteúdo não é UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Iniciando importação... @@ -4213,12 +4017,12 @@ A codificação do conteúdo não é UTF-8. - + Importing "%s"... - + Importing %s... @@ -4332,20 +4136,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4353,20 +4149,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Importação Finalizada. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. diff --git a/resources/i18n/sv.ts b/resources/i18n/sv.ts index 51b3bca96..701f2e3f0 100755 --- a/resources/i18n/sv.ts +++ b/resources/i18n/sv.ts @@ -3,31 +3,27 @@ AlertsPlugin - + &Alert &Alarm - + Show an alert message. -<<<<<<< TREE - -======= ->>>>>>> MERGE-SOURCE <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - + Alert - + Alerts Alarm @@ -179,92 +175,92 @@ BiblesPlugin - + &Bible &Bibel - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - + Bible Bibel - + Bibles Biblar - + Import Importera - + Import a Bible - + Add Lägg till - + Add a new Bible - + Edit Redigera - + Edit the selected Bible - + Delete Ta bort - + Delete the selected Bible - + Preview Förhandsgranska - + Preview the selected Bible - + Live Live - + Send the selected Bible live - + Service - + Add the selected Bible to the service @@ -743,20 +739,12 @@ Changes do not affect verses already in the service. Ingen matchande bok kunde hittas i den här Bibeln. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE etc -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Bible not fully loaded. @@ -772,7 +760,7 @@ Changes do not affect verses already in the service. CustomPlugin - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. @@ -798,102 +786,102 @@ Changes do not affect verses already in the service. CustomPlugin.EditCustomForm - + Edit Custom Slides Redigera anpassad bild - + Move slide up one position. - + Move slide down one position. - + &Title: - + Add New Lägg till ny - + Add a new slide at bottom. - + Edit Redigera - + Edit the selected slide. - + Edit All Redigera alla - + Edit all the slides at once. - + Save Spara - + Save the slide currently being edited. - + Delete Ta bort - + Delete the selected slide. - + Clear - + Clear edit area Töm redigeringsområde - + Split Slide - + Split a slide into two by inserting a slide splitter. - + The&me: - + &Credits: @@ -939,92 +927,92 @@ Changes do not affect verses already in the service. CustomsPlugin - + Custom - + Customs - + Import Importera - + Import a Custom - + Load - + Load a new Custom - + Add Lägg till - + Add a new Custom - + Edit Redigera - + Edit the selected Custom - + Delete Ta bort - + Delete the selected Custom - + Preview Förhandsgranska - + Preview the selected Custom - + Live Live - + Send the selected Custom live - + Service - + Add the selected Custom to the service @@ -1032,87 +1020,87 @@ Changes do not affect verses already in the service. ImagePlugin - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - + Image Bild - + Images Bilder - + Load - + Load a new Image - + Add Lägg till - + Add a new Image - + Edit Redigera - + Edit the selected Image - + Delete Ta bort - + Delete the selected Image - + Preview Förhandsgranska - + Preview the selected Image - + Live Live - + Send the selected Image live - + Service - + Add the selected Image to the service @@ -1140,47 +1128,27 @@ Changes do not affect verses already in the service. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Reset Live Background -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to delete. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Image(s) Bilder -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select an image to replace the background with. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You must select a media file to replace the background with. @@ -1188,87 +1156,87 @@ Changes do not affect verses already in the service. MediaPlugin - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - + Media Media - + Medias - + Load - + Load a new Media - + Add Lägg till - + Add a new Media - + Edit Redigera - + Edit the selected Media - + Delete Ta bort - + Delete the selected Media - + Preview Förhandsgranska - + Preview the selected Media - + Live Live - + Send the selected Media live - + Service - + Add the selected Media to the service @@ -1276,16 +1244,7 @@ Changes do not affect verses already in the service. MediaPlugin.MediaItem -<<<<<<< TREE -======= - - Media - Media - - - ->>>>>>> MERGE-SOURCE Select Media Välj media @@ -1300,16 +1259,12 @@ Changes do not affect verses already in the service. -<<<<<<< TREE Media Media -======= - ->>>>>>> MERGE-SOURCE You must select a media file to delete. @@ -1317,7 +1272,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -2030,15 +1985,30 @@ This General Public License does not permit incorporating your program into prop OpenLP.MainWindow + + + New Service + + + + + Open Service + + + + + Save Service + + OpenLP 2.0 OpenLP 2.0 - - English - Engelska + + AddHereYourLanguageName + @@ -2105,11 +2075,6 @@ This General Public License does not permit incorporating your program into prop &New &Ny - - - New Service - - Create a new service. @@ -2125,11 +2090,6 @@ This General Public License does not permit incorporating your program into prop &Open &Öppna - - - Open Service - - Open an existing service. @@ -2145,11 +2105,6 @@ This General Public License does not permit incorporating your program into prop &Save &Spara - - - Save Service - - Save the current service to disk. @@ -2442,86 +2397,91 @@ You can download the latest version from http://openlp.org/. Default Theme: %s + + + English + Engelska + OpenLP.MediaManagerItem - + No Items Selected - + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Visa Live - + &Add to Service &Lägg till i mötesplanering - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Du måste välja ett eller flera objekt - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2529,57 +2489,37 @@ You can download the latest version from http://openlp.org/. OpenLP.PluginForm -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin List Pluginlista -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Plugin Details Plugindetaljer -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Version: Version: -<<<<<<< TREE - - TextLabel - TextLabel - - -======= ->>>>>>> MERGE-SOURCE - + About: Om: - + Status: Status: - + Active Aktiv - + Inactive Inaktiv @@ -2635,11 +2575,7 @@ You can download the latest version from http://openlp.org/. Skapa en ny mötesplanering -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Open Service @@ -2649,7 +2585,7 @@ You can download the latest version from http://openlp.org/. Ladda en planering - + Save Service @@ -2759,68 +2695,48 @@ You can download the latest version from http://openlp.org/. &Byt objektets tema -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Your current service is unsaved, do you want to save the changes before opening a new one? -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + Error Fel -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. The content encoding is not UTF-8. -<<<<<<< TREE - -======= - ->>>>>>> MERGE-SOURCE + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it @@ -2854,34 +2770,21 @@ The content encoding is not UTF-8. Förhandsgranska -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to previous Flytta till föregående -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Move to next Flytta till nästa -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Hide -<<<<<<< TREE Blank Screen Töm skärm @@ -2898,96 +2801,54 @@ The content encoding is not UTF-8. -======= - ->>>>>>> MERGE-SOURCE Move to live Flytta till live -<<<<<<< TREE - Edit and re-preview Song - Ändra och åter-förhandsgranska sång -======= - Edit and re-preview song ->>>>>>> MERGE-SOURCE -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start continuous loop Börja oändlig loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Stop continuous loop Stoppa upprepad loop -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE s s -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Delay between slides in seconds Fördröjning mellan bilder, i sekunder -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Start playing media Börja spela media -<<<<<<< TREE - Go to -======= - Go To ->>>>>>> MERGE-SOURCE OpenLP.SpellTextEdit -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Spelling Suggestions -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Formatting Tags @@ -3167,11 +3028,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE - A theme with this name already exists. Would you like to overwrite it? -======= A theme with this name already exists. Would you like to overwrite it? ->>>>>>> MERGE-SOURCE @@ -3226,67 +3083,67 @@ The content encoding is not UTF-8. PresentationPlugin - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - + Presentation Presentation - + Presentations Presentationer - + Load - + Load a new Presentation - + Delete Ta bort - + Delete the selected Presentation - + Preview Förhandsgranska - + Preview the selected Presentation - + Live Live - + Send the selected Presentation live - + Service - + Add the selected Presentation to the service @@ -3324,13 +3181,8 @@ The content encoding is not UTF-8. -<<<<<<< TREE - This type of presentation is not supported -======= - This type of presentation is not supported. ->>>>>>> MERGE-SOURCE @@ -3365,17 +3217,17 @@ The content encoding is not UTF-8. RemotePlugin - + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Fjärrstyrningar @@ -3406,47 +3258,47 @@ The content encoding is not UTF-8. SongUsagePlugin - + &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - + SongUsage @@ -3500,87 +3352,87 @@ The content encoding is not UTF-8. SongsPlugin - + &Song &Sång - + Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - + Song Sång - + Songs Sånger - + Add Lägg till - + Add a new Song - + Edit Redigera - + Edit the selected Song - + Delete Ta bort - + Delete the selected Song - + Preview Förhandsgranska - + Preview the selected Song - + Live Live - + Send the selected Song live - + Service - + Add the selected Song to the service @@ -3631,137 +3483,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Sångredigerare - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Redigera - + Ed&it All - + &Delete - + Title && Lyrics Titel && Sångtexter - + Authors - + &Add to Song &Lägg till i sång - + &Remove &Ta bort - + &Manage Authors, Topics, Song Books - + Topic Ämne - + A&dd to Song Lägg till i sång - + R&emove Ta &bort - + Song Book Sångbok - - Song No.: + + Book: + Bok: + + + + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Copyright-information - + © - + CCLI number: - + Comments Kommentarer - + Theme, Copyright Info && Comments Tema, copyright-info && kommentarer @@ -3781,11 +3638,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Error Fel @@ -3830,74 +3683,42 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in a song title. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You need to type in at least one verse. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Warning -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not added any authors for this song. Do you want to add an author now? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Add Book -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE This song book does not exist, do you want to add it? @@ -3905,29 +3726,17 @@ The content encoding is not UTF-8. SongsPlugin.EditVerseForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Edit Verse Redigera vers -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Verse type: -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE &Insert @@ -4055,11 +3864,7 @@ The content encoding is not UTF-8. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Starting import... Påbörjar import... @@ -4174,12 +3979,12 @@ The content encoding is not UTF-8. - + Importing "%s"... - + Importing %s... @@ -4293,20 +4098,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE copyright -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE © @@ -4314,20 +4111,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Finished import. Importen är färdig. -<<<<<<< TREE -======= - ->>>>>>> MERGE-SOURCE Your song import failed. From 2d47e2523cad1a4b650bd0384e38e20877f9b256 Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 14 Sep 2010 20:18:47 +0200 Subject: [PATCH 16/95] remove executable flag --- .bzrignore | 0 LICENSE | 0 MANIFEST.in | 0 OpenLP.spec | 0 copyright.txt | 0 demo_theme.xml | 0 documentation/Makefile | 0 documentation/PluginDevelopersGuide.txt | 0 documentation/SongFormat.txt | 0 documentation/make.bat | 0 documentation/plugin.txt | 0 documentation/source/conf.py | 0 documentation/source/core/index.rst | 0 documentation/source/core/lib.rst | 0 documentation/source/core/theme.rst | 0 documentation/source/index.rst | 0 documentation/source/openlp.rst | 0 documentation/source/plugins/bibles.rst | 0 documentation/source/plugins/index.rst | 0 documentation/source/plugins/songs.rst | 0 openlp/.version | 0 openlp/__init__.py | 0 openlp/core/__init__.py | 0 openlp/core/lib/__init__.py | 0 openlp/core/lib/baselistwithdnd.py | 0 openlp/core/lib/db.py | 0 openlp/core/lib/dockwidget.py | 0 openlp/core/lib/eventreceiver.py | 0 openlp/core/lib/htmlbuilder.py | 0 openlp/core/lib/mediamanageritem.py | 0 openlp/core/lib/plugin.py | 0 openlp/core/lib/pluginmanager.py | 0 openlp/core/lib/renderer.py | 0 openlp/core/lib/rendermanager.py | 0 openlp/core/lib/serviceitem.py | 0 openlp/core/lib/settingsmanager.py | 0 openlp/core/lib/settingstab.py | 0 openlp/core/lib/spelltextedit.py | 0 openlp/core/lib/theme.py | 0 openlp/core/lib/toolbar.py | 0 openlp/core/theme/__init__.py | 0 openlp/core/theme/theme.py | 0 openlp/core/ui/__init__.py | 0 openlp/core/ui/aboutdialog.py | 0 openlp/core/ui/aboutform.py | 0 openlp/core/ui/advancedtab.py | 0 openlp/core/ui/amendthemedialog.py | 0 openlp/core/ui/amendthemeform.py | 0 openlp/core/ui/exceptiondialog.py | 0 openlp/core/ui/exceptionform.py | 0 openlp/core/ui/generaltab.py | 0 openlp/core/ui/maindisplay.py | 0 openlp/core/ui/mainwindow.py | 0 openlp/core/ui/mediadockmanager.py | 0 openlp/core/ui/plugindialog.py | 0 openlp/core/ui/pluginform.py | 0 openlp/core/ui/screen.py | 0 openlp/core/ui/serviceitemeditdialog.py | 0 openlp/core/ui/serviceitemeditform.py | 0 openlp/core/ui/servicemanager.py | 0 openlp/core/ui/servicenotedialog.py | 0 openlp/core/ui/servicenoteform.py | 0 openlp/core/ui/settingsdialog.py | 0 openlp/core/ui/settingsform.py | 0 openlp/core/ui/slidecontroller.py | 0 openlp/core/ui/splashscreen.py | 0 openlp/core/ui/thememanager.py | 0 openlp/core/ui/themestab.py | 0 openlp/core/utils/__init__.py | 0 openlp/core/utils/languagemanager.py | 0 openlp/plugins/__init__.py | 0 openlp/plugins/alerts/__init__.py | 0 openlp/plugins/alerts/alertsplugin.py | 0 openlp/plugins/alerts/forms/__init__.py | 0 openlp/plugins/alerts/forms/alertdialog.py | 0 openlp/plugins/alerts/forms/alertform.py | 0 openlp/plugins/alerts/lib/__init__.py | 0 openlp/plugins/alerts/lib/alertsmanager.py | 0 openlp/plugins/alerts/lib/alertstab.py | 0 openlp/plugins/alerts/lib/db.py | 0 openlp/plugins/bibles/__init__.py | 0 openlp/plugins/bibles/bibleplugin.py | 0 openlp/plugins/bibles/forms/__init__.py | 0 .../plugins/bibles/forms/bibleimportwizard.py | 0 .../plugins/bibles/forms/importwizardform.py | 0 openlp/plugins/bibles/lib/__init__.py | 0 openlp/plugins/bibles/lib/biblestab.py | 0 openlp/plugins/bibles/lib/csvbible.py | 0 openlp/plugins/bibles/lib/db.py | 0 openlp/plugins/bibles/lib/http.py | 0 openlp/plugins/bibles/lib/manager.py | 0 openlp/plugins/bibles/lib/mediaitem.py | 0 openlp/plugins/bibles/lib/opensong.py | 0 openlp/plugins/bibles/lib/osis.py | 0 .../plugins/bibles/resources/biblegateway.csv | 0 .../bibles/resources/crosswalkbooks.csv | 0 .../plugins/bibles/resources/httpbooks.sqlite | Bin openlp/plugins/bibles/resources/osisbooks.csv | 0 openlp/plugins/custom/__init__.py | 0 openlp/plugins/custom/customplugin.py | 0 openlp/plugins/custom/forms/__init__.py | 0 .../plugins/custom/forms/editcustomdialog.py | 0 openlp/plugins/custom/forms/editcustomform.py | 0 openlp/plugins/custom/lib/__init__.py | 0 openlp/plugins/custom/lib/customtab.py | 0 openlp/plugins/custom/lib/customxmlhandler.py | 0 openlp/plugins/custom/lib/db.py | 0 openlp/plugins/custom/lib/mediaitem.py | 0 openlp/plugins/images/__init__.py | 0 openlp/plugins/images/imageplugin.py | 0 openlp/plugins/images/lib/__init__.py | 0 openlp/plugins/images/lib/mediaitem.py | 0 openlp/plugins/media/__init__.py | 0 openlp/plugins/media/lib/__init__.py | 0 openlp/plugins/media/lib/mediaitem.py | 0 openlp/plugins/media/mediaplugin.py | 0 openlp/plugins/presentations/__init__.py | 0 openlp/plugins/presentations/lib/__init__.py | 0 .../presentations/lib/impresscontroller.py | 0 openlp/plugins/presentations/lib/mediaitem.py | 0 .../presentations/lib/messagelistener.py | 0 .../presentations/lib/powerpointcontroller.py | 0 .../presentations/lib/pptviewcontroller.py | 0 .../presentations/lib/pptviewlib/README.TXT | 0 .../presentations/lib/pptviewlib/ppttest.py | 0 .../lib/pptviewlib/pptviewlib.cpp | 0 .../lib/pptviewlib/pptviewlib.dll | Bin .../presentations/lib/pptviewlib/pptviewlib.h | 0 .../lib/pptviewlib/pptviewlib.vcproj | 0 .../presentations/lib/pptviewlib/test.ppt | Bin .../lib/presentationcontroller.py | 0 .../presentations/lib/presentationtab.py | 0 .../presentations/presentationplugin.py | 0 openlp/plugins/remotes/__init__.py | 0 openlp/plugins/remotes/html/index.html | 0 openlp/plugins/remotes/html/init.js | 0 openlp/plugins/remotes/html/openlp.js | 0 openlp/plugins/remotes/html/openlp.service.js | 0 openlp/plugins/remotes/html/style.css | 0 openlp/plugins/remotes/lib/__init__.py | 0 openlp/plugins/remotes/lib/httpserver.py | 0 openlp/plugins/remotes/lib/remotetab.py | 0 openlp/plugins/remotes/remoteplugin.py | 0 openlp/plugins/songs/__init__.py | 0 openlp/plugins/songs/forms/__init__.py | 0 openlp/plugins/songs/forms/authorsdialog.py | 0 openlp/plugins/songs/forms/authorsform.py | 0 openlp/plugins/songs/forms/editsongdialog.py | 0 openlp/plugins/songs/forms/editsongform.py | 0 openlp/plugins/songs/forms/editversedialog.py | 0 openlp/plugins/songs/forms/editverseform.py | 0 openlp/plugins/songs/forms/songbookdialog.py | 0 openlp/plugins/songs/forms/songbookform.py | 0 openlp/plugins/songs/forms/songimportform.py | 0 openlp/plugins/songs/forms/songimportwizard.py | 0 .../songs/forms/songmaintenancedialog.py | 0 .../plugins/songs/forms/songmaintenanceform.py | 0 openlp/plugins/songs/forms/topicsdialog.py | 0 openlp/plugins/songs/forms/topicsform.py | 0 openlp/plugins/songs/lib/__init__.py | 0 openlp/plugins/songs/lib/db.py | 0 openlp/plugins/songs/lib/importer.py | 0 openlp/plugins/songs/lib/mediaitem.py | 0 openlp/plugins/songs/lib/olp1import.py | 0 openlp/plugins/songs/lib/olpimport.py | 0 openlp/plugins/songs/lib/oooimport.py | 0 openlp/plugins/songs/lib/opensongimport.py | 0 openlp/plugins/songs/lib/sofimport.py | 0 openlp/plugins/songs/lib/songimport.py | 0 openlp/plugins/songs/lib/songstab.py | 0 openlp/plugins/songs/lib/songxml.py | 0 openlp/plugins/songs/lib/test/test.opensong | 0 .../plugins/songs/lib/test/test.opensong.zip | Bin openlp/plugins/songs/lib/test/test2.opensong | 0 .../songs/lib/test/test_importing_lots.py | 0 .../songs/lib/test/test_opensongimport.py | 0 openlp/plugins/songs/lib/wowimport.py | 0 openlp/plugins/songs/lib/xml.py | 0 openlp/plugins/songs/songsplugin.py | 0 openlp/plugins/songusage/__init__.py | 0 openlp/plugins/songusage/forms/__init__.py | 0 .../songusage/forms/songusagedeletedialog.py | 0 .../songusage/forms/songusagedeleteform.py | 0 .../songusage/forms/songusagedetaildialog.py | 0 .../songusage/forms/songusagedetailform.py | 0 openlp/plugins/songusage/lib/__init__.py | 0 openlp/plugins/songusage/lib/db.py | 0 openlp/plugins/songusage/songusageplugin.py | 0 resources/.config/openlp/openlp.conf | 0 .../.local/share/openlp/bibles/asv.sqlite | Bin .../share/openlp/themes/Bible Readings.png | Bin .../themes/Bible Readings/Bible Readings.xml | 0 .../openlp/themes/Bible Readings/open6_2.jpg | Bin resources/.local/share/openlp/themes/Blue.png | Bin .../.local/share/openlp/themes/Blue/Blue.xml | 0 .../.local/share/openlp/themes/theme1.png | Bin .../share/openlp/themes/theme1/theme1.xml | 0 .../.local/share/openlp/themes/theme2.png | Bin .../share/openlp/themes/theme2/theme2.xml | 0 .../.local/share/openlp/themes/theme3.png | Bin .../share/openlp/themes/theme3/sunset2.jpg | Bin .../share/openlp/themes/theme3/theme3.xml | 0 resources/.openlp/data/bible/asv.sqlite | Bin resources/.openlp/openlp.conf | 0 resources/.openlp/openlp.conf_posix | 0 resources/.openlp/openlp.conf_win | 0 resources/Fedora/191/OpenLP.spec | 0 resources/bibles/afr1953.osis | 0 resources/bibles/kjc.osis | 0 resources/bibles/osisbooks_en.txt | 0 resources/forms/about.ui | 0 resources/forms/alertdialog.ui | 0 resources/forms/amendthemedialog.ui | 0 resources/forms/authorsdialog.ui | 0 resources/forms/bibleimportdialog.ui | 0 resources/forms/bibleimportwizard.ui | 0 resources/forms/displaytab.ui | 0 resources/forms/editcustomdialog.ui | 0 resources/forms/editsongdialog.ui | 0 resources/forms/editversedialog.ui | 0 resources/forms/exceptiondialog.ui | 0 resources/forms/mainwindow.ui | 0 resources/forms/plugindialoglistform.ui | 0 resources/forms/serviceitemeditdialog.ui | 0 resources/forms/servicenotedialog.ui | 0 resources/forms/settings.ui | 0 resources/forms/songbookdialog.ui | 0 resources/forms/songexport.ui | 0 resources/forms/songimportwizard.ui | 0 resources/forms/songmaintenance.ui | 0 resources/forms/songusagedeletedialog.ui | 0 resources/forms/songusagedetaildialog.ui | 0 resources/forms/splashscreen.ui | 0 resources/forms/themewizard.ui | 0 resources/forms/topicsdialog.ui | 0 resources/i18n/af.ts | 0 resources/i18n/de.ts | 0 resources/i18n/en.ts | 0 resources/i18n/en_GB.ts | 0 resources/i18n/en_ZA.ts | 0 resources/i18n/es.ts | 0 resources/i18n/et.ts | 0 resources/i18n/hu.ts | 0 resources/i18n/ko.ts | 0 resources/i18n/nb.ts | 0 resources/i18n/pt_BR.ts | 0 resources/i18n/sv.ts | 0 resources/images/OpenLP.ico | Bin resources/images/about-new.bmp | Bin resources/images/author_add.png | Bin resources/images/author_delete.png | Bin resources/images/author_edit.png | Bin resources/images/author_maintenance.png | Bin resources/images/book_add.png | Bin resources/images/book_delete.png | Bin resources/images/book_edit.png | Bin resources/images/book_maintenance.png | Bin resources/images/custom_delete.png | Bin resources/images/custom_edit.png | Bin resources/images/custom_new.png | Bin resources/images/exception.png | Bin resources/images/export_load.png | Bin resources/images/export_move_to_list.png | Bin resources/images/export_remove.png | Bin resources/images/export_selectall.png | Bin resources/images/general_add.png | Bin resources/images/general_delete.png | Bin resources/images/general_edit.png | Bin resources/images/general_export.png | Bin resources/images/general_import.png | Bin resources/images/general_live.png | Bin resources/images/general_new.png | Bin resources/images/general_open.png | Bin resources/images/general_preview.png | Bin resources/images/general_save.png | Bin resources/images/image_clapperboard.png | Bin resources/images/image_delete.png | Bin resources/images/image_load.png | Bin resources/images/import_load.png | Bin resources/images/import_move_to_list.png | Bin resources/images/import_remove.png | Bin resources/images/import_selectall.png | Bin resources/images/media_playback_pause.png | Bin resources/images/media_playback_start.png | Bin resources/images/media_playback_stop.png | Bin resources/images/media_stop.png | Bin resources/images/media_time.png | Bin resources/images/messagebox_critical.png | Bin resources/images/messagebox_info.png | Bin resources/images/messagebox_warning.png | Bin resources/images/openlp-2.qrc | 0 resources/images/openlp-about-logo.png | Bin resources/images/openlp-about-logo.svg | 0 .../images/openlp-default-dualdisplay.svg | 0 resources/images/openlp-logo-128x128.png | Bin resources/images/openlp-logo-16x16.png | Bin resources/images/openlp-logo-256x256.png | Bin resources/images/openlp-logo-32x32.png | Bin resources/images/openlp-logo-420x420.png | Bin resources/images/openlp-logo-48x48.png | Bin resources/images/openlp-logo-64x64.png | Bin resources/images/openlp-logo.svg | 0 resources/images/openlp-splash-screen.png | Bin resources/images/openlp-splash-screen.svg | 0 resources/images/openlp.org-icon-32.bmp | Bin resources/images/openlp.org.ico | Bin resources/images/openlp.svg | 0 resources/images/plugin_alerts.png | Bin resources/images/plugin_bibles.png | Bin resources/images/plugin_custom.png | Bin resources/images/plugin_images.png | Bin resources/images/plugin_media.png | Bin resources/images/plugin_presentations.png | Bin resources/images/plugin_remote.png | Bin resources/images/plugin_songs.png | Bin resources/images/plugin_songusage.png | Bin resources/images/presentation_delete.png | Bin resources/images/presentation_load.png | Bin resources/images/service_bottom.png | Bin resources/images/service_delete.png | Bin resources/images/service_down.png | Bin resources/images/service_edit.png | Bin resources/images/service_item_notes.png | Bin resources/images/service_new.png | Bin resources/images/service_notes.png | Bin resources/images/service_open.png | Bin resources/images/service_save.png | Bin resources/images/service_top.png | Bin resources/images/service_up.png | Bin resources/images/settings_plugin_list.png | Bin resources/images/slide_blank.png | Bin resources/images/slide_close.png | Bin resources/images/slide_desktop.png | Bin resources/images/slide_first.png | Bin resources/images/slide_last.png | Bin resources/images/slide_next.png | Bin resources/images/slide_previous.png | Bin resources/images/slide_theme.png | Bin resources/images/song_author_edit.png | Bin resources/images/song_book_edit.png | Bin resources/images/song_delete.png | Bin resources/images/song_edit.png | Bin resources/images/song_export.png | Bin resources/images/song_maintenance.png | Bin resources/images/song_new.png | Bin resources/images/song_topic_edit.png | Bin resources/images/splash-screen-new.bmp | Bin resources/images/system_about.png | Bin resources/images/system_add.png | Bin resources/images/system_close.png | Bin resources/images/system_contribute.png | Bin resources/images/system_exit.png | Bin resources/images/system_help_contents.png | Bin resources/images/system_live.png | Bin resources/images/system_mediamanager.png | Bin resources/images/system_preview.png | Bin resources/images/system_servicemanager.png | Bin resources/images/system_settings.png | Bin resources/images/system_thememanager.png | Bin resources/images/theme_delete.png | Bin resources/images/theme_edit.png | Bin resources/images/theme_export.png | Bin resources/images/theme_import.png | Bin resources/images/theme_new.png | Bin resources/images/tools_add.png | Bin resources/images/tools_alert.png | Bin resources/images/topic_add.png | Bin resources/images/topic_delete.png | Bin resources/images/topic_edit.png | Bin resources/images/topic_maintenance.png | Bin resources/images/video_delete.png | Bin resources/images/video_load.png | Bin resources/images/wizard_importbible.bmp | Bin resources/images/wizard_importsong.bmp | Bin resources/innosetup/LICENSE.txt | 0 resources/innosetup/OpenLP-2.0.iss | 0 resources/innosetup/OpenLP.ico | Bin resources/innosetup/OpenLP.reg | Bin resources/innosetup/openlp.conf | 0 resources/openlp.desktop | 17 ++++++++++++++--- ...plugins.presentations.presentationplugin.py | 0 resources/pyinstaller/hook-openlp.py | 0 resources/songs/songs.sqlite | Bin .../videos/AspectRatioTest-16-9-ana.h264.mp4 | Bin .../videos/AspectRatioTest-16-9-squ.h264.mp4 | Bin .../videos/AspectRatioTest-16-9-squ.xvid.avi | Bin .../videos/AspectRatioTest-4-3-ana.h264.mp4 | Bin .../videos/AspectRatioTest-4-3-squ.h264.mp4 | Bin .../videos/AspectRatioTest-4-3-squ.xvid.avi | Bin .../videos/AspectRatioTest-rand-squ.h264.mp4 | Bin resources/videos/left-720.png | Bin resources/videos/normal-720.png | Bin resources/videos/right-720.png | Bin resources/videos/synctest.24.avs | 0 resources/videos/synctest.24.muxed.avi | Bin resources/videos/synctest.24.muxed.mp4 | Bin resources/videos/synctest.25.avs | 0 resources/videos/synctest.25.muxed.avi | Bin resources/videos/synctest.30.avs | 0 resources/videos/synctest.30.muxed.avi | Bin resources/videos/synctest.30.small.avs | 0 resources/videos/synctest.30.small.muxed.avi | Bin resources/videos/synctest.avsi | 0 scripts/generate_resources.sh | 0 scripts/resources.patch | 0 scripts/windows-builder.py | 0 406 files changed, 14 insertions(+), 3 deletions(-) mode change 100755 => 100644 .bzrignore mode change 100755 => 100644 LICENSE mode change 100755 => 100644 MANIFEST.in mode change 100755 => 100644 OpenLP.spec mode change 100755 => 100644 copyright.txt mode change 100755 => 100644 demo_theme.xml mode change 100755 => 100644 documentation/Makefile mode change 100755 => 100644 documentation/PluginDevelopersGuide.txt mode change 100755 => 100644 documentation/SongFormat.txt mode change 100755 => 100644 documentation/make.bat mode change 100755 => 100644 documentation/plugin.txt mode change 100755 => 100644 documentation/source/conf.py mode change 100755 => 100644 documentation/source/core/index.rst mode change 100755 => 100644 documentation/source/core/lib.rst mode change 100755 => 100644 documentation/source/core/theme.rst mode change 100755 => 100644 documentation/source/index.rst mode change 100755 => 100644 documentation/source/openlp.rst mode change 100755 => 100644 documentation/source/plugins/bibles.rst mode change 100755 => 100644 documentation/source/plugins/index.rst mode change 100755 => 100644 documentation/source/plugins/songs.rst mode change 100755 => 100644 openlp/.version mode change 100755 => 100644 openlp/__init__.py mode change 100755 => 100644 openlp/core/__init__.py mode change 100755 => 100644 openlp/core/lib/__init__.py mode change 100755 => 100644 openlp/core/lib/baselistwithdnd.py mode change 100755 => 100644 openlp/core/lib/db.py mode change 100755 => 100644 openlp/core/lib/dockwidget.py mode change 100755 => 100644 openlp/core/lib/eventreceiver.py mode change 100755 => 100644 openlp/core/lib/htmlbuilder.py mode change 100755 => 100644 openlp/core/lib/mediamanageritem.py mode change 100755 => 100644 openlp/core/lib/plugin.py mode change 100755 => 100644 openlp/core/lib/pluginmanager.py mode change 100755 => 100644 openlp/core/lib/renderer.py mode change 100755 => 100644 openlp/core/lib/rendermanager.py mode change 100755 => 100644 openlp/core/lib/serviceitem.py mode change 100755 => 100644 openlp/core/lib/settingsmanager.py mode change 100755 => 100644 openlp/core/lib/settingstab.py mode change 100755 => 100644 openlp/core/lib/spelltextedit.py mode change 100755 => 100644 openlp/core/lib/theme.py mode change 100755 => 100644 openlp/core/lib/toolbar.py mode change 100755 => 100644 openlp/core/theme/__init__.py mode change 100755 => 100644 openlp/core/theme/theme.py mode change 100755 => 100644 openlp/core/ui/__init__.py mode change 100755 => 100644 openlp/core/ui/aboutdialog.py mode change 100755 => 100644 openlp/core/ui/aboutform.py mode change 100755 => 100644 openlp/core/ui/advancedtab.py mode change 100755 => 100644 openlp/core/ui/amendthemedialog.py mode change 100755 => 100644 openlp/core/ui/amendthemeform.py mode change 100755 => 100644 openlp/core/ui/exceptiondialog.py mode change 100755 => 100644 openlp/core/ui/exceptionform.py mode change 100755 => 100644 openlp/core/ui/generaltab.py mode change 100755 => 100644 openlp/core/ui/maindisplay.py mode change 100755 => 100644 openlp/core/ui/mainwindow.py mode change 100755 => 100644 openlp/core/ui/mediadockmanager.py mode change 100755 => 100644 openlp/core/ui/plugindialog.py mode change 100755 => 100644 openlp/core/ui/pluginform.py mode change 100755 => 100644 openlp/core/ui/screen.py mode change 100755 => 100644 openlp/core/ui/serviceitemeditdialog.py mode change 100755 => 100644 openlp/core/ui/serviceitemeditform.py mode change 100755 => 100644 openlp/core/ui/servicemanager.py mode change 100755 => 100644 openlp/core/ui/servicenotedialog.py mode change 100755 => 100644 openlp/core/ui/servicenoteform.py mode change 100755 => 100644 openlp/core/ui/settingsdialog.py mode change 100755 => 100644 openlp/core/ui/settingsform.py mode change 100755 => 100644 openlp/core/ui/slidecontroller.py mode change 100755 => 100644 openlp/core/ui/splashscreen.py mode change 100755 => 100644 openlp/core/ui/thememanager.py mode change 100755 => 100644 openlp/core/ui/themestab.py mode change 100755 => 100644 openlp/core/utils/__init__.py mode change 100755 => 100644 openlp/core/utils/languagemanager.py mode change 100755 => 100644 openlp/plugins/__init__.py mode change 100755 => 100644 openlp/plugins/alerts/__init__.py mode change 100755 => 100644 openlp/plugins/alerts/alertsplugin.py mode change 100755 => 100644 openlp/plugins/alerts/forms/__init__.py mode change 100755 => 100644 openlp/plugins/alerts/forms/alertdialog.py mode change 100755 => 100644 openlp/plugins/alerts/forms/alertform.py mode change 100755 => 100644 openlp/plugins/alerts/lib/__init__.py mode change 100755 => 100644 openlp/plugins/alerts/lib/alertsmanager.py mode change 100755 => 100644 openlp/plugins/alerts/lib/alertstab.py mode change 100755 => 100644 openlp/plugins/alerts/lib/db.py mode change 100755 => 100644 openlp/plugins/bibles/__init__.py mode change 100755 => 100644 openlp/plugins/bibles/bibleplugin.py mode change 100755 => 100644 openlp/plugins/bibles/forms/__init__.py mode change 100755 => 100644 openlp/plugins/bibles/forms/bibleimportwizard.py mode change 100755 => 100644 openlp/plugins/bibles/forms/importwizardform.py mode change 100755 => 100644 openlp/plugins/bibles/lib/__init__.py mode change 100755 => 100644 openlp/plugins/bibles/lib/biblestab.py mode change 100755 => 100644 openlp/plugins/bibles/lib/csvbible.py mode change 100755 => 100644 openlp/plugins/bibles/lib/db.py mode change 100755 => 100644 openlp/plugins/bibles/lib/http.py mode change 100755 => 100644 openlp/plugins/bibles/lib/manager.py mode change 100755 => 100644 openlp/plugins/bibles/lib/mediaitem.py mode change 100755 => 100644 openlp/plugins/bibles/lib/opensong.py mode change 100755 => 100644 openlp/plugins/bibles/lib/osis.py mode change 100755 => 100644 openlp/plugins/bibles/resources/biblegateway.csv mode change 100755 => 100644 openlp/plugins/bibles/resources/crosswalkbooks.csv mode change 100755 => 100644 openlp/plugins/bibles/resources/httpbooks.sqlite mode change 100755 => 100644 openlp/plugins/bibles/resources/osisbooks.csv mode change 100755 => 100644 openlp/plugins/custom/__init__.py mode change 100755 => 100644 openlp/plugins/custom/customplugin.py mode change 100755 => 100644 openlp/plugins/custom/forms/__init__.py mode change 100755 => 100644 openlp/plugins/custom/forms/editcustomdialog.py mode change 100755 => 100644 openlp/plugins/custom/forms/editcustomform.py mode change 100755 => 100644 openlp/plugins/custom/lib/__init__.py mode change 100755 => 100644 openlp/plugins/custom/lib/customtab.py mode change 100755 => 100644 openlp/plugins/custom/lib/customxmlhandler.py mode change 100755 => 100644 openlp/plugins/custom/lib/db.py mode change 100755 => 100644 openlp/plugins/custom/lib/mediaitem.py mode change 100755 => 100644 openlp/plugins/images/__init__.py mode change 100755 => 100644 openlp/plugins/images/imageplugin.py mode change 100755 => 100644 openlp/plugins/images/lib/__init__.py mode change 100755 => 100644 openlp/plugins/images/lib/mediaitem.py mode change 100755 => 100644 openlp/plugins/media/__init__.py mode change 100755 => 100644 openlp/plugins/media/lib/__init__.py mode change 100755 => 100644 openlp/plugins/media/lib/mediaitem.py mode change 100755 => 100644 openlp/plugins/media/mediaplugin.py mode change 100755 => 100644 openlp/plugins/presentations/__init__.py mode change 100755 => 100644 openlp/plugins/presentations/lib/__init__.py mode change 100755 => 100644 openlp/plugins/presentations/lib/impresscontroller.py mode change 100755 => 100644 openlp/plugins/presentations/lib/mediaitem.py mode change 100755 => 100644 openlp/plugins/presentations/lib/messagelistener.py mode change 100755 => 100644 openlp/plugins/presentations/lib/powerpointcontroller.py mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewcontroller.py mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/README.TXT mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/ppttest.py mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj mode change 100755 => 100644 openlp/plugins/presentations/lib/pptviewlib/test.ppt mode change 100755 => 100644 openlp/plugins/presentations/lib/presentationcontroller.py mode change 100755 => 100644 openlp/plugins/presentations/lib/presentationtab.py mode change 100755 => 100644 openlp/plugins/presentations/presentationplugin.py mode change 100755 => 100644 openlp/plugins/remotes/__init__.py mode change 100755 => 100644 openlp/plugins/remotes/html/index.html mode change 100755 => 100644 openlp/plugins/remotes/html/init.js mode change 100755 => 100644 openlp/plugins/remotes/html/openlp.js mode change 100755 => 100644 openlp/plugins/remotes/html/openlp.service.js mode change 100755 => 100644 openlp/plugins/remotes/html/style.css mode change 100755 => 100644 openlp/plugins/remotes/lib/__init__.py mode change 100755 => 100644 openlp/plugins/remotes/lib/httpserver.py mode change 100755 => 100644 openlp/plugins/remotes/lib/remotetab.py mode change 100755 => 100644 openlp/plugins/remotes/remoteplugin.py mode change 100755 => 100644 openlp/plugins/songs/__init__.py mode change 100755 => 100644 openlp/plugins/songs/forms/__init__.py mode change 100755 => 100644 openlp/plugins/songs/forms/authorsdialog.py mode change 100755 => 100644 openlp/plugins/songs/forms/authorsform.py mode change 100755 => 100644 openlp/plugins/songs/forms/editsongdialog.py mode change 100755 => 100644 openlp/plugins/songs/forms/editsongform.py mode change 100755 => 100644 openlp/plugins/songs/forms/editversedialog.py mode change 100755 => 100644 openlp/plugins/songs/forms/editverseform.py mode change 100755 => 100644 openlp/plugins/songs/forms/songbookdialog.py mode change 100755 => 100644 openlp/plugins/songs/forms/songbookform.py mode change 100755 => 100644 openlp/plugins/songs/forms/songimportform.py mode change 100755 => 100644 openlp/plugins/songs/forms/songimportwizard.py mode change 100755 => 100644 openlp/plugins/songs/forms/songmaintenancedialog.py mode change 100755 => 100644 openlp/plugins/songs/forms/songmaintenanceform.py mode change 100755 => 100644 openlp/plugins/songs/forms/topicsdialog.py mode change 100755 => 100644 openlp/plugins/songs/forms/topicsform.py mode change 100755 => 100644 openlp/plugins/songs/lib/__init__.py mode change 100755 => 100644 openlp/plugins/songs/lib/db.py mode change 100755 => 100644 openlp/plugins/songs/lib/importer.py mode change 100755 => 100644 openlp/plugins/songs/lib/mediaitem.py mode change 100755 => 100644 openlp/plugins/songs/lib/olp1import.py mode change 100755 => 100644 openlp/plugins/songs/lib/olpimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/oooimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/opensongimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/sofimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/songimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/songstab.py mode change 100755 => 100644 openlp/plugins/songs/lib/songxml.py mode change 100755 => 100644 openlp/plugins/songs/lib/test/test.opensong mode change 100755 => 100644 openlp/plugins/songs/lib/test/test.opensong.zip mode change 100755 => 100644 openlp/plugins/songs/lib/test/test2.opensong mode change 100755 => 100644 openlp/plugins/songs/lib/test/test_importing_lots.py mode change 100755 => 100644 openlp/plugins/songs/lib/test/test_opensongimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/wowimport.py mode change 100755 => 100644 openlp/plugins/songs/lib/xml.py mode change 100755 => 100644 openlp/plugins/songs/songsplugin.py mode change 100755 => 100644 openlp/plugins/songusage/__init__.py mode change 100755 => 100644 openlp/plugins/songusage/forms/__init__.py mode change 100755 => 100644 openlp/plugins/songusage/forms/songusagedeletedialog.py mode change 100755 => 100644 openlp/plugins/songusage/forms/songusagedeleteform.py mode change 100755 => 100644 openlp/plugins/songusage/forms/songusagedetaildialog.py mode change 100755 => 100644 openlp/plugins/songusage/forms/songusagedetailform.py mode change 100755 => 100644 openlp/plugins/songusage/lib/__init__.py mode change 100755 => 100644 openlp/plugins/songusage/lib/db.py mode change 100755 => 100644 openlp/plugins/songusage/songusageplugin.py mode change 100755 => 100644 resources/.config/openlp/openlp.conf mode change 100755 => 100644 resources/.local/share/openlp/bibles/asv.sqlite mode change 100755 => 100644 resources/.local/share/openlp/themes/Bible Readings.png mode change 100755 => 100644 resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml mode change 100755 => 100644 resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg mode change 100755 => 100644 resources/.local/share/openlp/themes/Blue.png mode change 100755 => 100644 resources/.local/share/openlp/themes/Blue/Blue.xml mode change 100755 => 100644 resources/.local/share/openlp/themes/theme1.png mode change 100755 => 100644 resources/.local/share/openlp/themes/theme1/theme1.xml mode change 100755 => 100644 resources/.local/share/openlp/themes/theme2.png mode change 100755 => 100644 resources/.local/share/openlp/themes/theme2/theme2.xml mode change 100755 => 100644 resources/.local/share/openlp/themes/theme3.png mode change 100755 => 100644 resources/.local/share/openlp/themes/theme3/sunset2.jpg mode change 100755 => 100644 resources/.local/share/openlp/themes/theme3/theme3.xml mode change 100755 => 100644 resources/.openlp/data/bible/asv.sqlite mode change 100755 => 100644 resources/.openlp/openlp.conf mode change 100755 => 100644 resources/.openlp/openlp.conf_posix mode change 100755 => 100644 resources/.openlp/openlp.conf_win mode change 100755 => 100644 resources/Fedora/191/OpenLP.spec mode change 100755 => 100644 resources/bibles/afr1953.osis mode change 100755 => 100644 resources/bibles/kjc.osis mode change 100755 => 100644 resources/bibles/osisbooks_en.txt mode change 100755 => 100644 resources/forms/about.ui mode change 100755 => 100644 resources/forms/alertdialog.ui mode change 100755 => 100644 resources/forms/amendthemedialog.ui mode change 100755 => 100644 resources/forms/authorsdialog.ui mode change 100755 => 100644 resources/forms/bibleimportdialog.ui mode change 100755 => 100644 resources/forms/bibleimportwizard.ui mode change 100755 => 100644 resources/forms/displaytab.ui mode change 100755 => 100644 resources/forms/editcustomdialog.ui mode change 100755 => 100644 resources/forms/editsongdialog.ui mode change 100755 => 100644 resources/forms/editversedialog.ui mode change 100755 => 100644 resources/forms/exceptiondialog.ui mode change 100755 => 100644 resources/forms/mainwindow.ui mode change 100755 => 100644 resources/forms/plugindialoglistform.ui mode change 100755 => 100644 resources/forms/serviceitemeditdialog.ui mode change 100755 => 100644 resources/forms/servicenotedialog.ui mode change 100755 => 100644 resources/forms/settings.ui mode change 100755 => 100644 resources/forms/songbookdialog.ui mode change 100755 => 100644 resources/forms/songexport.ui mode change 100755 => 100644 resources/forms/songimportwizard.ui mode change 100755 => 100644 resources/forms/songmaintenance.ui mode change 100755 => 100644 resources/forms/songusagedeletedialog.ui mode change 100755 => 100644 resources/forms/songusagedetaildialog.ui mode change 100755 => 100644 resources/forms/splashscreen.ui mode change 100755 => 100644 resources/forms/themewizard.ui mode change 100755 => 100644 resources/forms/topicsdialog.ui mode change 100755 => 100644 resources/i18n/af.ts mode change 100755 => 100644 resources/i18n/de.ts mode change 100755 => 100644 resources/i18n/en.ts mode change 100755 => 100644 resources/i18n/en_GB.ts mode change 100755 => 100644 resources/i18n/en_ZA.ts mode change 100755 => 100644 resources/i18n/es.ts mode change 100755 => 100644 resources/i18n/et.ts mode change 100755 => 100644 resources/i18n/hu.ts mode change 100755 => 100644 resources/i18n/ko.ts mode change 100755 => 100644 resources/i18n/nb.ts mode change 100755 => 100644 resources/i18n/pt_BR.ts mode change 100755 => 100644 resources/i18n/sv.ts mode change 100755 => 100644 resources/images/OpenLP.ico mode change 100755 => 100644 resources/images/about-new.bmp mode change 100755 => 100644 resources/images/author_add.png mode change 100755 => 100644 resources/images/author_delete.png mode change 100755 => 100644 resources/images/author_edit.png mode change 100755 => 100644 resources/images/author_maintenance.png mode change 100755 => 100644 resources/images/book_add.png mode change 100755 => 100644 resources/images/book_delete.png mode change 100755 => 100644 resources/images/book_edit.png mode change 100755 => 100644 resources/images/book_maintenance.png mode change 100755 => 100644 resources/images/custom_delete.png mode change 100755 => 100644 resources/images/custom_edit.png mode change 100755 => 100644 resources/images/custom_new.png mode change 100755 => 100644 resources/images/exception.png mode change 100755 => 100644 resources/images/export_load.png mode change 100755 => 100644 resources/images/export_move_to_list.png mode change 100755 => 100644 resources/images/export_remove.png mode change 100755 => 100644 resources/images/export_selectall.png mode change 100755 => 100644 resources/images/general_add.png mode change 100755 => 100644 resources/images/general_delete.png mode change 100755 => 100644 resources/images/general_edit.png mode change 100755 => 100644 resources/images/general_export.png mode change 100755 => 100644 resources/images/general_import.png mode change 100755 => 100644 resources/images/general_live.png mode change 100755 => 100644 resources/images/general_new.png mode change 100755 => 100644 resources/images/general_open.png mode change 100755 => 100644 resources/images/general_preview.png mode change 100755 => 100644 resources/images/general_save.png mode change 100755 => 100644 resources/images/image_clapperboard.png mode change 100755 => 100644 resources/images/image_delete.png mode change 100755 => 100644 resources/images/image_load.png mode change 100755 => 100644 resources/images/import_load.png mode change 100755 => 100644 resources/images/import_move_to_list.png mode change 100755 => 100644 resources/images/import_remove.png mode change 100755 => 100644 resources/images/import_selectall.png mode change 100755 => 100644 resources/images/media_playback_pause.png mode change 100755 => 100644 resources/images/media_playback_start.png mode change 100755 => 100644 resources/images/media_playback_stop.png mode change 100755 => 100644 resources/images/media_stop.png mode change 100755 => 100644 resources/images/media_time.png mode change 100755 => 100644 resources/images/messagebox_critical.png mode change 100755 => 100644 resources/images/messagebox_info.png mode change 100755 => 100644 resources/images/messagebox_warning.png mode change 100755 => 100644 resources/images/openlp-2.qrc mode change 100755 => 100644 resources/images/openlp-about-logo.png mode change 100755 => 100644 resources/images/openlp-about-logo.svg mode change 100755 => 100644 resources/images/openlp-default-dualdisplay.svg mode change 100755 => 100644 resources/images/openlp-logo-128x128.png mode change 100755 => 100644 resources/images/openlp-logo-16x16.png mode change 100755 => 100644 resources/images/openlp-logo-256x256.png mode change 100755 => 100644 resources/images/openlp-logo-32x32.png mode change 100755 => 100644 resources/images/openlp-logo-420x420.png mode change 100755 => 100644 resources/images/openlp-logo-48x48.png mode change 100755 => 100644 resources/images/openlp-logo-64x64.png mode change 100755 => 100644 resources/images/openlp-logo.svg mode change 100755 => 100644 resources/images/openlp-splash-screen.png mode change 100755 => 100644 resources/images/openlp-splash-screen.svg mode change 100755 => 100644 resources/images/openlp.org-icon-32.bmp mode change 100755 => 100644 resources/images/openlp.org.ico mode change 100755 => 100644 resources/images/openlp.svg mode change 100755 => 100644 resources/images/plugin_alerts.png mode change 100755 => 100644 resources/images/plugin_bibles.png mode change 100755 => 100644 resources/images/plugin_custom.png mode change 100755 => 100644 resources/images/plugin_images.png mode change 100755 => 100644 resources/images/plugin_media.png mode change 100755 => 100644 resources/images/plugin_presentations.png mode change 100755 => 100644 resources/images/plugin_remote.png mode change 100755 => 100644 resources/images/plugin_songs.png mode change 100755 => 100644 resources/images/plugin_songusage.png mode change 100755 => 100644 resources/images/presentation_delete.png mode change 100755 => 100644 resources/images/presentation_load.png mode change 100755 => 100644 resources/images/service_bottom.png mode change 100755 => 100644 resources/images/service_delete.png mode change 100755 => 100644 resources/images/service_down.png mode change 100755 => 100644 resources/images/service_edit.png mode change 100755 => 100644 resources/images/service_item_notes.png mode change 100755 => 100644 resources/images/service_new.png mode change 100755 => 100644 resources/images/service_notes.png mode change 100755 => 100644 resources/images/service_open.png mode change 100755 => 100644 resources/images/service_save.png mode change 100755 => 100644 resources/images/service_top.png mode change 100755 => 100644 resources/images/service_up.png mode change 100755 => 100644 resources/images/settings_plugin_list.png mode change 100755 => 100644 resources/images/slide_blank.png mode change 100755 => 100644 resources/images/slide_close.png mode change 100755 => 100644 resources/images/slide_desktop.png mode change 100755 => 100644 resources/images/slide_first.png mode change 100755 => 100644 resources/images/slide_last.png mode change 100755 => 100644 resources/images/slide_next.png mode change 100755 => 100644 resources/images/slide_previous.png mode change 100755 => 100644 resources/images/slide_theme.png mode change 100755 => 100644 resources/images/song_author_edit.png mode change 100755 => 100644 resources/images/song_book_edit.png mode change 100755 => 100644 resources/images/song_delete.png mode change 100755 => 100644 resources/images/song_edit.png mode change 100755 => 100644 resources/images/song_export.png mode change 100755 => 100644 resources/images/song_maintenance.png mode change 100755 => 100644 resources/images/song_new.png mode change 100755 => 100644 resources/images/song_topic_edit.png mode change 100755 => 100644 resources/images/splash-screen-new.bmp mode change 100755 => 100644 resources/images/system_about.png mode change 100755 => 100644 resources/images/system_add.png mode change 100755 => 100644 resources/images/system_close.png mode change 100755 => 100644 resources/images/system_contribute.png mode change 100755 => 100644 resources/images/system_exit.png mode change 100755 => 100644 resources/images/system_help_contents.png mode change 100755 => 100644 resources/images/system_live.png mode change 100755 => 100644 resources/images/system_mediamanager.png mode change 100755 => 100644 resources/images/system_preview.png mode change 100755 => 100644 resources/images/system_servicemanager.png mode change 100755 => 100644 resources/images/system_settings.png mode change 100755 => 100644 resources/images/system_thememanager.png mode change 100755 => 100644 resources/images/theme_delete.png mode change 100755 => 100644 resources/images/theme_edit.png mode change 100755 => 100644 resources/images/theme_export.png mode change 100755 => 100644 resources/images/theme_import.png mode change 100755 => 100644 resources/images/theme_new.png mode change 100755 => 100644 resources/images/tools_add.png mode change 100755 => 100644 resources/images/tools_alert.png mode change 100755 => 100644 resources/images/topic_add.png mode change 100755 => 100644 resources/images/topic_delete.png mode change 100755 => 100644 resources/images/topic_edit.png mode change 100755 => 100644 resources/images/topic_maintenance.png mode change 100755 => 100644 resources/images/video_delete.png mode change 100755 => 100644 resources/images/video_load.png mode change 100755 => 100644 resources/images/wizard_importbible.bmp mode change 100755 => 100644 resources/images/wizard_importsong.bmp mode change 100755 => 100644 resources/innosetup/LICENSE.txt mode change 100755 => 100644 resources/innosetup/OpenLP-2.0.iss mode change 100755 => 100644 resources/innosetup/OpenLP.ico mode change 100755 => 100644 resources/innosetup/OpenLP.reg mode change 100755 => 100644 resources/innosetup/openlp.conf mode change 100755 => 100644 resources/pyinstaller/hook-openlp.plugins.presentations.presentationplugin.py mode change 100755 => 100644 resources/pyinstaller/hook-openlp.py mode change 100755 => 100644 resources/songs/songs.sqlite mode change 100755 => 100644 resources/videos/AspectRatioTest-16-9-ana.h264.mp4 mode change 100755 => 100644 resources/videos/AspectRatioTest-16-9-squ.h264.mp4 mode change 100755 => 100644 resources/videos/AspectRatioTest-16-9-squ.xvid.avi mode change 100755 => 100644 resources/videos/AspectRatioTest-4-3-ana.h264.mp4 mode change 100755 => 100644 resources/videos/AspectRatioTest-4-3-squ.h264.mp4 mode change 100755 => 100644 resources/videos/AspectRatioTest-4-3-squ.xvid.avi mode change 100755 => 100644 resources/videos/AspectRatioTest-rand-squ.h264.mp4 mode change 100755 => 100644 resources/videos/left-720.png mode change 100755 => 100644 resources/videos/normal-720.png mode change 100755 => 100644 resources/videos/right-720.png mode change 100755 => 100644 resources/videos/synctest.24.avs mode change 100755 => 100644 resources/videos/synctest.24.muxed.avi mode change 100755 => 100644 resources/videos/synctest.24.muxed.mp4 mode change 100755 => 100644 resources/videos/synctest.25.avs mode change 100755 => 100644 resources/videos/synctest.25.muxed.avi mode change 100755 => 100644 resources/videos/synctest.30.avs mode change 100755 => 100644 resources/videos/synctest.30.muxed.avi mode change 100755 => 100644 resources/videos/synctest.30.small.avs mode change 100755 => 100644 resources/videos/synctest.30.small.muxed.avi mode change 100755 => 100644 resources/videos/synctest.avsi mode change 100755 => 100644 scripts/generate_resources.sh mode change 100755 => 100644 scripts/resources.patch mode change 100755 => 100644 scripts/windows-builder.py diff --git a/.bzrignore b/.bzrignore old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/MANIFEST.in b/MANIFEST.in old mode 100755 new mode 100644 diff --git a/OpenLP.spec b/OpenLP.spec old mode 100755 new mode 100644 diff --git a/copyright.txt b/copyright.txt old mode 100755 new mode 100644 diff --git a/demo_theme.xml b/demo_theme.xml old mode 100755 new mode 100644 diff --git a/documentation/Makefile b/documentation/Makefile old mode 100755 new mode 100644 diff --git a/documentation/PluginDevelopersGuide.txt b/documentation/PluginDevelopersGuide.txt old mode 100755 new mode 100644 diff --git a/documentation/SongFormat.txt b/documentation/SongFormat.txt old mode 100755 new mode 100644 diff --git a/documentation/make.bat b/documentation/make.bat old mode 100755 new mode 100644 diff --git a/documentation/plugin.txt b/documentation/plugin.txt old mode 100755 new mode 100644 diff --git a/documentation/source/conf.py b/documentation/source/conf.py old mode 100755 new mode 100644 diff --git a/documentation/source/core/index.rst b/documentation/source/core/index.rst old mode 100755 new mode 100644 diff --git a/documentation/source/core/lib.rst b/documentation/source/core/lib.rst old mode 100755 new mode 100644 diff --git a/documentation/source/core/theme.rst b/documentation/source/core/theme.rst old mode 100755 new mode 100644 diff --git a/documentation/source/index.rst b/documentation/source/index.rst old mode 100755 new mode 100644 diff --git a/documentation/source/openlp.rst b/documentation/source/openlp.rst old mode 100755 new mode 100644 diff --git a/documentation/source/plugins/bibles.rst b/documentation/source/plugins/bibles.rst old mode 100755 new mode 100644 diff --git a/documentation/source/plugins/index.rst b/documentation/source/plugins/index.rst old mode 100755 new mode 100644 diff --git a/documentation/source/plugins/songs.rst b/documentation/source/plugins/songs.rst old mode 100755 new mode 100644 diff --git a/openlp/.version b/openlp/.version old mode 100755 new mode 100644 diff --git a/openlp/__init__.py b/openlp/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/baselistwithdnd.py b/openlp/core/lib/baselistwithdnd.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py old mode 100755 new mode 100644 diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py old mode 100755 new mode 100644 diff --git a/openlp/core/theme/__init__.py b/openlp/core/theme/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/aboutform.py b/openlp/core/ui/aboutform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/amendthemedialog.py b/openlp/core/ui/amendthemedialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/exceptiondialog.py b/openlp/core/ui/exceptiondialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/serviceitemeditform.py b/openlp/core/ui/serviceitemeditform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/servicenotedialog.py b/openlp/core/ui/servicenotedialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/servicenoteform.py b/openlp/core/ui/servicenoteform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/splashscreen.py b/openlp/core/ui/splashscreen.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py old mode 100755 new mode 100644 diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py old mode 100755 new mode 100644 diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/__init__.py b/openlp/plugins/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/__init__.py b/openlp/plugins/alerts/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/forms/__init__.py b/openlp/plugins/alerts/forms/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/lib/__init__.py b/openlp/plugins/alerts/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/lib/alertsmanager.py b/openlp/plugins/alerts/lib/alertsmanager.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/alerts/lib/db.py b/openlp/plugins/alerts/lib/db.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/__init__.py b/openlp/plugins/bibles/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/forms/__init__.py b/openlp/plugins/bibles/forms/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/resources/biblegateway.csv b/openlp/plugins/bibles/resources/biblegateway.csv old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/resources/crosswalkbooks.csv b/openlp/plugins/bibles/resources/crosswalkbooks.csv old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/resources/httpbooks.sqlite b/openlp/plugins/bibles/resources/httpbooks.sqlite old mode 100755 new mode 100644 diff --git a/openlp/plugins/bibles/resources/osisbooks.csv b/openlp/plugins/bibles/resources/osisbooks.csv old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/__init__.py b/openlp/plugins/custom/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/forms/__init__.py b/openlp/plugins/custom/forms/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/lib/__init__.py b/openlp/plugins/custom/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/lib/customtab.py b/openlp/plugins/custom/lib/customtab.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/lib/customxmlhandler.py b/openlp/plugins/custom/lib/customxmlhandler.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/lib/db.py b/openlp/plugins/custom/lib/db.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/images/__init__.py b/openlp/plugins/images/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/images/lib/__init__.py b/openlp/plugins/images/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/media/__init__.py b/openlp/plugins/media/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/media/lib/__init__.py b/openlp/plugins/media/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/__init__.py b/openlp/plugins/presentations/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/__init__.py b/openlp/plugins/presentations/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewcontroller.py b/openlp/plugins/presentations/lib/pptviewcontroller.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/README.TXT b/openlp/plugins/presentations/lib/pptviewlib/README.TXT old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/ppttest.py b/openlp/plugins/presentations/lib/pptviewlib/ppttest.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/pptviewlib/test.ppt b/openlp/plugins/presentations/lib/pptviewlib/test.ppt old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/presentationcontroller.py b/openlp/plugins/presentations/lib/presentationcontroller.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/__init__.py b/openlp/plugins/remotes/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/html/index.html b/openlp/plugins/remotes/html/index.html old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/html/init.js b/openlp/plugins/remotes/html/init.js old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/html/openlp.js b/openlp/plugins/remotes/html/openlp.js old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/html/openlp.service.js b/openlp/plugins/remotes/html/openlp.service.js old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/html/style.css b/openlp/plugins/remotes/html/style.css old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/lib/__init__.py b/openlp/plugins/remotes/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/__init__.py b/openlp/plugins/songs/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/authorsform.py b/openlp/plugins/songs/forms/authorsform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/songbookform.py b/openlp/plugins/songs/forms/songbookform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/forms/topicsform.py b/openlp/plugins/songs/forms/topicsform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/db.py b/openlp/plugins/songs/lib/db.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/sofimport.py b/openlp/plugins/songs/lib/sofimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/songstab.py b/openlp/plugins/songs/lib/songstab.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/songxml.py b/openlp/plugins/songs/lib/songxml.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/test/test.opensong b/openlp/plugins/songs/lib/test/test.opensong old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/test/test.opensong.zip b/openlp/plugins/songs/lib/test/test.opensong.zip old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/test/test2.opensong b/openlp/plugins/songs/lib/test/test2.opensong old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/test/test_importing_lots.py b/openlp/plugins/songs/lib/test/test_importing_lots.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/test/test_opensongimport.py b/openlp/plugins/songs/lib/test/test_opensongimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/__init__.py b/openlp/plugins/songusage/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/forms/__init__.py b/openlp/plugins/songusage/forms/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/forms/songusagedeletedialog.py b/openlp/plugins/songusage/forms/songusagedeletedialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/forms/songusagedeleteform.py b/openlp/plugins/songusage/forms/songusagedeleteform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/forms/songusagedetaildialog.py b/openlp/plugins/songusage/forms/songusagedetaildialog.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/lib/__init__.py b/openlp/plugins/songusage/lib/__init__.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/lib/db.py b/openlp/plugins/songusage/lib/db.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py old mode 100755 new mode 100644 diff --git a/resources/.config/openlp/openlp.conf b/resources/.config/openlp/openlp.conf old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/bibles/asv.sqlite b/resources/.local/share/openlp/bibles/asv.sqlite old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/Bible Readings.png b/resources/.local/share/openlp/themes/Bible Readings.png old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml b/resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg b/resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/Blue.png b/resources/.local/share/openlp/themes/Blue.png old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/Blue/Blue.xml b/resources/.local/share/openlp/themes/Blue/Blue.xml old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme1.png b/resources/.local/share/openlp/themes/theme1.png old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme1/theme1.xml b/resources/.local/share/openlp/themes/theme1/theme1.xml old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme2.png b/resources/.local/share/openlp/themes/theme2.png old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme2/theme2.xml b/resources/.local/share/openlp/themes/theme2/theme2.xml old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme3.png b/resources/.local/share/openlp/themes/theme3.png old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme3/sunset2.jpg b/resources/.local/share/openlp/themes/theme3/sunset2.jpg old mode 100755 new mode 100644 diff --git a/resources/.local/share/openlp/themes/theme3/theme3.xml b/resources/.local/share/openlp/themes/theme3/theme3.xml old mode 100755 new mode 100644 diff --git a/resources/.openlp/data/bible/asv.sqlite b/resources/.openlp/data/bible/asv.sqlite old mode 100755 new mode 100644 diff --git a/resources/.openlp/openlp.conf b/resources/.openlp/openlp.conf old mode 100755 new mode 100644 diff --git a/resources/.openlp/openlp.conf_posix b/resources/.openlp/openlp.conf_posix old mode 100755 new mode 100644 diff --git a/resources/.openlp/openlp.conf_win b/resources/.openlp/openlp.conf_win old mode 100755 new mode 100644 diff --git a/resources/Fedora/191/OpenLP.spec b/resources/Fedora/191/OpenLP.spec old mode 100755 new mode 100644 diff --git a/resources/bibles/afr1953.osis b/resources/bibles/afr1953.osis old mode 100755 new mode 100644 diff --git a/resources/bibles/kjc.osis b/resources/bibles/kjc.osis old mode 100755 new mode 100644 diff --git a/resources/bibles/osisbooks_en.txt b/resources/bibles/osisbooks_en.txt old mode 100755 new mode 100644 diff --git a/resources/forms/about.ui b/resources/forms/about.ui old mode 100755 new mode 100644 diff --git a/resources/forms/alertdialog.ui b/resources/forms/alertdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/amendthemedialog.ui b/resources/forms/amendthemedialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/authorsdialog.ui b/resources/forms/authorsdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/bibleimportdialog.ui b/resources/forms/bibleimportdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/bibleimportwizard.ui b/resources/forms/bibleimportwizard.ui old mode 100755 new mode 100644 diff --git a/resources/forms/displaytab.ui b/resources/forms/displaytab.ui old mode 100755 new mode 100644 diff --git a/resources/forms/editcustomdialog.ui b/resources/forms/editcustomdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/editsongdialog.ui b/resources/forms/editsongdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/editversedialog.ui b/resources/forms/editversedialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/exceptiondialog.ui b/resources/forms/exceptiondialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/mainwindow.ui b/resources/forms/mainwindow.ui old mode 100755 new mode 100644 diff --git a/resources/forms/plugindialoglistform.ui b/resources/forms/plugindialoglistform.ui old mode 100755 new mode 100644 diff --git a/resources/forms/serviceitemeditdialog.ui b/resources/forms/serviceitemeditdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/servicenotedialog.ui b/resources/forms/servicenotedialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/settings.ui b/resources/forms/settings.ui old mode 100755 new mode 100644 diff --git a/resources/forms/songbookdialog.ui b/resources/forms/songbookdialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/songexport.ui b/resources/forms/songexport.ui old mode 100755 new mode 100644 diff --git a/resources/forms/songimportwizard.ui b/resources/forms/songimportwizard.ui old mode 100755 new mode 100644 diff --git a/resources/forms/songmaintenance.ui b/resources/forms/songmaintenance.ui old mode 100755 new mode 100644 diff --git a/resources/forms/songusagedeletedialog.ui b/resources/forms/songusagedeletedialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/songusagedetaildialog.ui b/resources/forms/songusagedetaildialog.ui old mode 100755 new mode 100644 diff --git a/resources/forms/splashscreen.ui b/resources/forms/splashscreen.ui old mode 100755 new mode 100644 diff --git a/resources/forms/themewizard.ui b/resources/forms/themewizard.ui old mode 100755 new mode 100644 diff --git a/resources/forms/topicsdialog.ui b/resources/forms/topicsdialog.ui old mode 100755 new mode 100644 diff --git a/resources/i18n/af.ts b/resources/i18n/af.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/de.ts b/resources/i18n/de.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/en.ts b/resources/i18n/en.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/en_GB.ts b/resources/i18n/en_GB.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/en_ZA.ts b/resources/i18n/en_ZA.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/es.ts b/resources/i18n/es.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/et.ts b/resources/i18n/et.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/hu.ts b/resources/i18n/hu.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/ko.ts b/resources/i18n/ko.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/nb.ts b/resources/i18n/nb.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/pt_BR.ts b/resources/i18n/pt_BR.ts old mode 100755 new mode 100644 diff --git a/resources/i18n/sv.ts b/resources/i18n/sv.ts old mode 100755 new mode 100644 diff --git a/resources/images/OpenLP.ico b/resources/images/OpenLP.ico old mode 100755 new mode 100644 diff --git a/resources/images/about-new.bmp b/resources/images/about-new.bmp old mode 100755 new mode 100644 diff --git a/resources/images/author_add.png b/resources/images/author_add.png old mode 100755 new mode 100644 diff --git a/resources/images/author_delete.png b/resources/images/author_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/author_edit.png b/resources/images/author_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/author_maintenance.png b/resources/images/author_maintenance.png old mode 100755 new mode 100644 diff --git a/resources/images/book_add.png b/resources/images/book_add.png old mode 100755 new mode 100644 diff --git a/resources/images/book_delete.png b/resources/images/book_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/book_edit.png b/resources/images/book_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/book_maintenance.png b/resources/images/book_maintenance.png old mode 100755 new mode 100644 diff --git a/resources/images/custom_delete.png b/resources/images/custom_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/custom_edit.png b/resources/images/custom_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/custom_new.png b/resources/images/custom_new.png old mode 100755 new mode 100644 diff --git a/resources/images/exception.png b/resources/images/exception.png old mode 100755 new mode 100644 diff --git a/resources/images/export_load.png b/resources/images/export_load.png old mode 100755 new mode 100644 diff --git a/resources/images/export_move_to_list.png b/resources/images/export_move_to_list.png old mode 100755 new mode 100644 diff --git a/resources/images/export_remove.png b/resources/images/export_remove.png old mode 100755 new mode 100644 diff --git a/resources/images/export_selectall.png b/resources/images/export_selectall.png old mode 100755 new mode 100644 diff --git a/resources/images/general_add.png b/resources/images/general_add.png old mode 100755 new mode 100644 diff --git a/resources/images/general_delete.png b/resources/images/general_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/general_edit.png b/resources/images/general_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/general_export.png b/resources/images/general_export.png old mode 100755 new mode 100644 diff --git a/resources/images/general_import.png b/resources/images/general_import.png old mode 100755 new mode 100644 diff --git a/resources/images/general_live.png b/resources/images/general_live.png old mode 100755 new mode 100644 diff --git a/resources/images/general_new.png b/resources/images/general_new.png old mode 100755 new mode 100644 diff --git a/resources/images/general_open.png b/resources/images/general_open.png old mode 100755 new mode 100644 diff --git a/resources/images/general_preview.png b/resources/images/general_preview.png old mode 100755 new mode 100644 diff --git a/resources/images/general_save.png b/resources/images/general_save.png old mode 100755 new mode 100644 diff --git a/resources/images/image_clapperboard.png b/resources/images/image_clapperboard.png old mode 100755 new mode 100644 diff --git a/resources/images/image_delete.png b/resources/images/image_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/image_load.png b/resources/images/image_load.png old mode 100755 new mode 100644 diff --git a/resources/images/import_load.png b/resources/images/import_load.png old mode 100755 new mode 100644 diff --git a/resources/images/import_move_to_list.png b/resources/images/import_move_to_list.png old mode 100755 new mode 100644 diff --git a/resources/images/import_remove.png b/resources/images/import_remove.png old mode 100755 new mode 100644 diff --git a/resources/images/import_selectall.png b/resources/images/import_selectall.png old mode 100755 new mode 100644 diff --git a/resources/images/media_playback_pause.png b/resources/images/media_playback_pause.png old mode 100755 new mode 100644 diff --git a/resources/images/media_playback_start.png b/resources/images/media_playback_start.png old mode 100755 new mode 100644 diff --git a/resources/images/media_playback_stop.png b/resources/images/media_playback_stop.png old mode 100755 new mode 100644 diff --git a/resources/images/media_stop.png b/resources/images/media_stop.png old mode 100755 new mode 100644 diff --git a/resources/images/media_time.png b/resources/images/media_time.png old mode 100755 new mode 100644 diff --git a/resources/images/messagebox_critical.png b/resources/images/messagebox_critical.png old mode 100755 new mode 100644 diff --git a/resources/images/messagebox_info.png b/resources/images/messagebox_info.png old mode 100755 new mode 100644 diff --git a/resources/images/messagebox_warning.png b/resources/images/messagebox_warning.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc old mode 100755 new mode 100644 diff --git a/resources/images/openlp-about-logo.png b/resources/images/openlp-about-logo.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-about-logo.svg b/resources/images/openlp-about-logo.svg old mode 100755 new mode 100644 diff --git a/resources/images/openlp-default-dualdisplay.svg b/resources/images/openlp-default-dualdisplay.svg old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-128x128.png b/resources/images/openlp-logo-128x128.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-16x16.png b/resources/images/openlp-logo-16x16.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-256x256.png b/resources/images/openlp-logo-256x256.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-32x32.png b/resources/images/openlp-logo-32x32.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-420x420.png b/resources/images/openlp-logo-420x420.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-48x48.png b/resources/images/openlp-logo-48x48.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo-64x64.png b/resources/images/openlp-logo-64x64.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-logo.svg b/resources/images/openlp-logo.svg old mode 100755 new mode 100644 diff --git a/resources/images/openlp-splash-screen.png b/resources/images/openlp-splash-screen.png old mode 100755 new mode 100644 diff --git a/resources/images/openlp-splash-screen.svg b/resources/images/openlp-splash-screen.svg old mode 100755 new mode 100644 diff --git a/resources/images/openlp.org-icon-32.bmp b/resources/images/openlp.org-icon-32.bmp old mode 100755 new mode 100644 diff --git a/resources/images/openlp.org.ico b/resources/images/openlp.org.ico old mode 100755 new mode 100644 diff --git a/resources/images/openlp.svg b/resources/images/openlp.svg old mode 100755 new mode 100644 diff --git a/resources/images/plugin_alerts.png b/resources/images/plugin_alerts.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_bibles.png b/resources/images/plugin_bibles.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_custom.png b/resources/images/plugin_custom.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_images.png b/resources/images/plugin_images.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_media.png b/resources/images/plugin_media.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_presentations.png b/resources/images/plugin_presentations.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_remote.png b/resources/images/plugin_remote.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_songs.png b/resources/images/plugin_songs.png old mode 100755 new mode 100644 diff --git a/resources/images/plugin_songusage.png b/resources/images/plugin_songusage.png old mode 100755 new mode 100644 diff --git a/resources/images/presentation_delete.png b/resources/images/presentation_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/presentation_load.png b/resources/images/presentation_load.png old mode 100755 new mode 100644 diff --git a/resources/images/service_bottom.png b/resources/images/service_bottom.png old mode 100755 new mode 100644 diff --git a/resources/images/service_delete.png b/resources/images/service_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/service_down.png b/resources/images/service_down.png old mode 100755 new mode 100644 diff --git a/resources/images/service_edit.png b/resources/images/service_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/service_item_notes.png b/resources/images/service_item_notes.png old mode 100755 new mode 100644 diff --git a/resources/images/service_new.png b/resources/images/service_new.png old mode 100755 new mode 100644 diff --git a/resources/images/service_notes.png b/resources/images/service_notes.png old mode 100755 new mode 100644 diff --git a/resources/images/service_open.png b/resources/images/service_open.png old mode 100755 new mode 100644 diff --git a/resources/images/service_save.png b/resources/images/service_save.png old mode 100755 new mode 100644 diff --git a/resources/images/service_top.png b/resources/images/service_top.png old mode 100755 new mode 100644 diff --git a/resources/images/service_up.png b/resources/images/service_up.png old mode 100755 new mode 100644 diff --git a/resources/images/settings_plugin_list.png b/resources/images/settings_plugin_list.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_blank.png b/resources/images/slide_blank.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_close.png b/resources/images/slide_close.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_desktop.png b/resources/images/slide_desktop.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_first.png b/resources/images/slide_first.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_last.png b/resources/images/slide_last.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_next.png b/resources/images/slide_next.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_previous.png b/resources/images/slide_previous.png old mode 100755 new mode 100644 diff --git a/resources/images/slide_theme.png b/resources/images/slide_theme.png old mode 100755 new mode 100644 diff --git a/resources/images/song_author_edit.png b/resources/images/song_author_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/song_book_edit.png b/resources/images/song_book_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/song_delete.png b/resources/images/song_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/song_edit.png b/resources/images/song_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/song_export.png b/resources/images/song_export.png old mode 100755 new mode 100644 diff --git a/resources/images/song_maintenance.png b/resources/images/song_maintenance.png old mode 100755 new mode 100644 diff --git a/resources/images/song_new.png b/resources/images/song_new.png old mode 100755 new mode 100644 diff --git a/resources/images/song_topic_edit.png b/resources/images/song_topic_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/splash-screen-new.bmp b/resources/images/splash-screen-new.bmp old mode 100755 new mode 100644 diff --git a/resources/images/system_about.png b/resources/images/system_about.png old mode 100755 new mode 100644 diff --git a/resources/images/system_add.png b/resources/images/system_add.png old mode 100755 new mode 100644 diff --git a/resources/images/system_close.png b/resources/images/system_close.png old mode 100755 new mode 100644 diff --git a/resources/images/system_contribute.png b/resources/images/system_contribute.png old mode 100755 new mode 100644 diff --git a/resources/images/system_exit.png b/resources/images/system_exit.png old mode 100755 new mode 100644 diff --git a/resources/images/system_help_contents.png b/resources/images/system_help_contents.png old mode 100755 new mode 100644 diff --git a/resources/images/system_live.png b/resources/images/system_live.png old mode 100755 new mode 100644 diff --git a/resources/images/system_mediamanager.png b/resources/images/system_mediamanager.png old mode 100755 new mode 100644 diff --git a/resources/images/system_preview.png b/resources/images/system_preview.png old mode 100755 new mode 100644 diff --git a/resources/images/system_servicemanager.png b/resources/images/system_servicemanager.png old mode 100755 new mode 100644 diff --git a/resources/images/system_settings.png b/resources/images/system_settings.png old mode 100755 new mode 100644 diff --git a/resources/images/system_thememanager.png b/resources/images/system_thememanager.png old mode 100755 new mode 100644 diff --git a/resources/images/theme_delete.png b/resources/images/theme_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/theme_edit.png b/resources/images/theme_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/theme_export.png b/resources/images/theme_export.png old mode 100755 new mode 100644 diff --git a/resources/images/theme_import.png b/resources/images/theme_import.png old mode 100755 new mode 100644 diff --git a/resources/images/theme_new.png b/resources/images/theme_new.png old mode 100755 new mode 100644 diff --git a/resources/images/tools_add.png b/resources/images/tools_add.png old mode 100755 new mode 100644 diff --git a/resources/images/tools_alert.png b/resources/images/tools_alert.png old mode 100755 new mode 100644 diff --git a/resources/images/topic_add.png b/resources/images/topic_add.png old mode 100755 new mode 100644 diff --git a/resources/images/topic_delete.png b/resources/images/topic_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/topic_edit.png b/resources/images/topic_edit.png old mode 100755 new mode 100644 diff --git a/resources/images/topic_maintenance.png b/resources/images/topic_maintenance.png old mode 100755 new mode 100644 diff --git a/resources/images/video_delete.png b/resources/images/video_delete.png old mode 100755 new mode 100644 diff --git a/resources/images/video_load.png b/resources/images/video_load.png old mode 100755 new mode 100644 diff --git a/resources/images/wizard_importbible.bmp b/resources/images/wizard_importbible.bmp old mode 100755 new mode 100644 diff --git a/resources/images/wizard_importsong.bmp b/resources/images/wizard_importsong.bmp old mode 100755 new mode 100644 diff --git a/resources/innosetup/LICENSE.txt b/resources/innosetup/LICENSE.txt old mode 100755 new mode 100644 diff --git a/resources/innosetup/OpenLP-2.0.iss b/resources/innosetup/OpenLP-2.0.iss old mode 100755 new mode 100644 diff --git a/resources/innosetup/OpenLP.ico b/resources/innosetup/OpenLP.ico old mode 100755 new mode 100644 diff --git a/resources/innosetup/OpenLP.reg b/resources/innosetup/OpenLP.reg old mode 100755 new mode 100644 diff --git a/resources/innosetup/openlp.conf b/resources/innosetup/openlp.conf old mode 100755 new mode 100644 diff --git a/resources/openlp.desktop b/resources/openlp.desktop index 0c843bd69..684119773 100755 --- a/resources/openlp.desktop +++ b/resources/openlp.desktop @@ -1,10 +1,21 @@ [Desktop Entry] +Categories=AudioVideo; +Comment[de]= +Comment= Encoding=UTF-8 -Name=OpenLP -GenericName=Church lyrics projection Exec=openlp +GenericName[de]=Church lyrics projection +GenericName=Church lyrics projection Icon=openlp +MimeType= +Name[de]=OpenLP +Name=OpenLP +Path= StartupNotify=true Terminal=false +TerminalOptions= Type=Application -Categories=AudioVideo; +X-DBUS-ServiceName= +X-DBUS-StartupType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/resources/pyinstaller/hook-openlp.plugins.presentations.presentationplugin.py b/resources/pyinstaller/hook-openlp.plugins.presentations.presentationplugin.py old mode 100755 new mode 100644 diff --git a/resources/pyinstaller/hook-openlp.py b/resources/pyinstaller/hook-openlp.py old mode 100755 new mode 100644 diff --git a/resources/songs/songs.sqlite b/resources/songs/songs.sqlite old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-16-9-ana.h264.mp4 b/resources/videos/AspectRatioTest-16-9-ana.h264.mp4 old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-16-9-squ.h264.mp4 b/resources/videos/AspectRatioTest-16-9-squ.h264.mp4 old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-16-9-squ.xvid.avi b/resources/videos/AspectRatioTest-16-9-squ.xvid.avi old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-4-3-ana.h264.mp4 b/resources/videos/AspectRatioTest-4-3-ana.h264.mp4 old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-4-3-squ.h264.mp4 b/resources/videos/AspectRatioTest-4-3-squ.h264.mp4 old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-4-3-squ.xvid.avi b/resources/videos/AspectRatioTest-4-3-squ.xvid.avi old mode 100755 new mode 100644 diff --git a/resources/videos/AspectRatioTest-rand-squ.h264.mp4 b/resources/videos/AspectRatioTest-rand-squ.h264.mp4 old mode 100755 new mode 100644 diff --git a/resources/videos/left-720.png b/resources/videos/left-720.png old mode 100755 new mode 100644 diff --git a/resources/videos/normal-720.png b/resources/videos/normal-720.png old mode 100755 new mode 100644 diff --git a/resources/videos/right-720.png b/resources/videos/right-720.png old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.24.avs b/resources/videos/synctest.24.avs old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.24.muxed.avi b/resources/videos/synctest.24.muxed.avi old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.24.muxed.mp4 b/resources/videos/synctest.24.muxed.mp4 old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.25.avs b/resources/videos/synctest.25.avs old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.25.muxed.avi b/resources/videos/synctest.25.muxed.avi old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.30.avs b/resources/videos/synctest.30.avs old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.30.muxed.avi b/resources/videos/synctest.30.muxed.avi old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.30.small.avs b/resources/videos/synctest.30.small.avs old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.30.small.muxed.avi b/resources/videos/synctest.30.small.muxed.avi old mode 100755 new mode 100644 diff --git a/resources/videos/synctest.avsi b/resources/videos/synctest.avsi old mode 100755 new mode 100644 diff --git a/scripts/generate_resources.sh b/scripts/generate_resources.sh old mode 100755 new mode 100644 diff --git a/scripts/resources.patch b/scripts/resources.patch old mode 100755 new mode 100644 diff --git a/scripts/windows-builder.py b/scripts/windows-builder.py old mode 100755 new mode 100644 From c53731d74b969eed793bf0eabfb1683f7c4d46ca Mon Sep 17 00:00:00 2001 From: rimach Date: Tue, 14 Sep 2010 20:34:39 +0200 Subject: [PATCH 17/95] media items' __init__ methods --- openlp/core/lib/mediamanageritem.py | 4 ++-- openlp/plugins/bibles/bibleplugin.py | 4 ++-- openlp/plugins/bibles/lib/mediaitem.py | 6 +++--- openlp/plugins/custom/customplugin.py | 4 ++-- openlp/plugins/custom/lib/mediaitem.py | 6 +++--- openlp/plugins/images/imageplugin.py | 4 ++-- openlp/plugins/images/lib/mediaitem.py | 6 +++--- openlp/plugins/media/lib/mediaitem.py | 6 +++--- openlp/plugins/media/mediaplugin.py | 4 ++-- openlp/plugins/presentations/lib/mediaitem.py | 4 ++-- openlp/plugins/songs/lib/mediaitem.py | 6 +++--- openlp/plugins/songs/songsplugin.py | 4 ++-- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index a0b6806aa..9232390ce 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -86,13 +86,13 @@ class MediaManagerItem(QtGui.QWidget): """ log.info(u'Media Item loaded') - def __init__(self, parent=None, icon=None, title=None, plugin=None): + def __init__(self, parent=None, plugin=None, icon=None, title=None): """ Constructor to create the media manager item. """ QtGui.QWidget.__init__(self) self.parent = parent - # TODO: plugin is not the parent, so add this to the calling plugins + #TODO: change parent to plugin self.plugin = parent self.settingsSection = self.plugin.name_lower if isinstance(icon, QtGui.QIcon): diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index fda395b00..e5ace0ac6 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -62,7 +62,7 @@ class BiblePlugin(Plugin): def getMediaManagerItem(self): # Create the BibleManagerItem object. - return BibleMediaItem(self, self.icon, self.name) + return BibleMediaItem(self, self, self.icon, self.name) def addImportMenuItem(self, import_menu): self.importBibleItem = QtGui.QAction(import_menu) @@ -164,4 +164,4 @@ class BiblePlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index f6764801b..c5790bfc0 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -53,10 +53,10 @@ class BibleMediaItem(MediaManagerItem): """ log.info(u'Bible Media Item loaded') - def __init__(self, parent, icon, title): + def __init__(self, parent, plugin, icon, title): self.IconPath = u'songs/song' self.ListViewWithDnD_class = BibleListView - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, self, icon, title) # place to store the search results for both bibles self.search_results = {} self.dual_search_results = {} @@ -702,4 +702,4 @@ class BibleMediaItem(MediaManagerItem): if row: row.setSelected(True) self.search_results = {} - self.dual_search_results = {} + self.dual_search_results = {} \ No newline at end of file diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 2e2e4b744..2b2b9702c 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -59,7 +59,7 @@ class CustomPlugin(Plugin): def getMediaManagerItem(self): # Create the CustomManagerItem object - return CustomMediaItem(self, self.icon, self.name) + return CustomMediaItem(self, self, self.icon, self.name) def about(self): about_text = translate('CustomPlugin', 'Custom Plugin' @@ -148,4 +148,4 @@ class CustomPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('CustomsPlugin', 'Service'), u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index ab5039c34..43c321586 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -46,12 +46,12 @@ class CustomMediaItem(MediaManagerItem): """ log.info(u'Custom Media Item loaded') - def __init__(self, parent, icon, title): + def __init__(self, parent, plugin, icon, title): self.IconPath = u'custom/custom' # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = CustomListView - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, self, icon, title) self.singleServiceItem = False # Holds information about whether the edit is remotly triggered and # which Custom is required. @@ -181,4 +181,4 @@ class CustomMediaItem(MediaManagerItem): else: raw_footer.append(u'') service_item.raw_footer = raw_footer - return True + return True \ No newline at end of file diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 7cba1cc21..213cf0dcc 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -42,7 +42,7 @@ class ImagePlugin(Plugin): def getMediaManagerItem(self): # Create the MediaManagerItem object - return ImageMediaItem(self, self.icon, self.name) + return ImageMediaItem(self, self, self.icon, self.name) def about(self): about_text = translate('ImagePlugin', 'Image Plugin' @@ -105,4 +105,4 @@ class ImagePlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('ImagePlugin', 'Service'), u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index d6584acfe..5baf294bd 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -49,12 +49,12 @@ class ImageMediaItem(MediaManagerItem): """ log.info(u'Image Media Item loaded') - def __init__(self, parent, icon, title): + def __init__(self, parent, plugin, icon, title): self.IconPath = u'images/image' # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = ImageListView - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, self, icon, title) def retranslateUi(self): self.OnNewPrompt = translate('ImagePlugin.MediaItem', @@ -190,4 +190,4 @@ class ImageMediaItem(MediaManagerItem): self.resetButton.setVisible(True) def onPreviewClick(self): - MediaManagerItem.onPreviewClick(self) + MediaManagerItem.onPreviewClick(self) \ No newline at end of file diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index c9a5df152..9f737ba48 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -46,7 +46,7 @@ class MediaMediaItem(MediaManagerItem): """ log.info(u'%s MediaMediaItem loaded', __name__) - def __init__(self, parent, icon, title): + def __init__(self, parent, plugin, icon, title): self.IconPath = u'images/image' self.background = False # this next is a class, not an instance of a class - it will @@ -54,7 +54,7 @@ class MediaMediaItem(MediaManagerItem): self.ListViewWithDnD_class = MediaListView self.PreviewFunction = QtGui.QPixmap( u':/media/media_video.png').toImage() - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, self, icon, title) self.singleServiceItem = False self.serviceItemIconName = u':/media/media_video.png' @@ -157,4 +157,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) + self.listView.addItem(item_name) \ No newline at end of file diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index bb00bbd61..b0be2baed 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -70,7 +70,7 @@ class MediaPlugin(Plugin): def getMediaManagerItem(self): # Create the MediaManagerItem object - return MediaMediaItem(self, self.icon, self.name) + return MediaMediaItem(self, self, self.icon, self.name) def about(self): about_text = translate('MediaPlugin', 'Media Plugin' @@ -123,4 +123,4 @@ class MediaPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 38cac6ff6..6a5769270 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -63,7 +63,7 @@ class PresentationMediaItem(MediaManagerItem): # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = PresentationListView - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, self, icon, title) self.message_listener = MessageListener(self) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'mediaitem_presentation_rebuild'), self.rebuild) @@ -293,4 +293,4 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled(): if filetype in self.controllers[controller].alsosupports: return controller - return None + return None \ No newline at end of file diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 8197d6ec4..145e6b855 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -48,10 +48,10 @@ class SongMediaItem(MediaManagerItem): """ log.info(u'Song Media Item loaded') - def __init__(self, parent, icon, title): + def __init__(self, parent, plugin, icon, title): self.IconPath = u'songs/song' self.ListViewWithDnD_class = SongListView - MediaManagerItem.__init__(self, parent, icon, title) + MediaManagerItem.__init__(self, parent, self, icon, title) self.edit_song_form = EditSongForm(self, self.parent.manager) self.singleServiceItem = False #self.edit_song_form = EditSongForm(self.parent.manager, self) @@ -368,4 +368,4 @@ class SongMediaItem(MediaManagerItem): service_item.audit = [ song.title, author_audit, song.copyright, unicode(song.ccli_number) ] - return True + return True \ No newline at end of file diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 3d564806f..ba9213b01 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -70,7 +70,7 @@ class SongsPlugin(Plugin): Create the MediaManagerItem object, which is displaed in the Media Manager. """ - return SongMediaItem(self, self.icon, self.name) + return SongMediaItem(self, self, self.icon, self.name) def addImportMenuItem(self, import_menu): """ @@ -190,4 +190,4 @@ class SongsPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('SongsPlugin', 'Service'), u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') - } + } \ No newline at end of file From 3bc527e4fc240b17ee8401af095ae6850021b9cf Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 15 Sep 2010 19:55:27 +0200 Subject: [PATCH 18/95] bugfixing --- openlp/core/lib/mediamanageritem.py | 25 ++++++++++--------- openlp/core/lib/plugin.py | 3 ++- openlp/core/lib/pluginmanager.py | 9 ++++--- openlp/core/ui/mediadockmanager.py | 15 +++++++---- openlp/core/ui/pluginform.py | 4 +-- openlp/core/ui/settingsform.py | 6 ++--- openlp/plugins/alerts/alertsplugin.py | 6 ++++- openlp/plugins/bibles/bibleplugin.py | 13 +++++++--- openlp/plugins/bibles/lib/mediaitem.py | 4 +-- openlp/plugins/custom/customplugin.py | 13 +++++++--- openlp/plugins/custom/lib/mediaitem.py | 4 +-- openlp/plugins/images/imageplugin.py | 10 +++++--- openlp/plugins/images/lib/mediaitem.py | 4 +-- openlp/plugins/media/lib/mediaitem.py | 4 +-- openlp/plugins/media/mediaplugin.py | 12 ++++++--- openlp/plugins/presentations/lib/mediaitem.py | 2 +- .../presentations/presentationplugin.py | 9 +++++-- openlp/plugins/remotes/remoteplugin.py | 9 +++++-- openlp/plugins/songs/lib/mediaitem.py | 4 +-- openlp/plugins/songs/songsplugin.py | 13 +++++++--- openlp/plugins/songusage/songusageplugin.py | 6 ++++- resources/i18n/de.ts | 10 ++++---- scripts/generate_resources.sh | 0 23 files changed, 117 insertions(+), 68 deletions(-) mode change 100644 => 100755 scripts/generate_resources.sh diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 9232390ce..ead482e88 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -52,13 +52,14 @@ class MediaManagerItem(QtGui.QWidget): The parent widget. Usually this will be the *Media Manager* itself. This needs to be a class descended from ``QWidget``. + ``plugin`` + The plugin widget. Usually this will be the *Plugin* + itself. This needs to be a class descended from ``Plugin``. + ``icon`` Either a ``QIcon``, a resource path, or a file name. This is the icon which is displayed in the *Media Manager*. - ``title`` - The title visible on the item in the *Media Manager*. - **Member Variables** When creating a descendant class from this class for your plugin, @@ -86,14 +87,16 @@ class MediaManagerItem(QtGui.QWidget): """ log.info(u'Media Item loaded') - def __init__(self, parent=None, plugin=None, icon=None, title=None): + def __init__(self, parent=None, plugin=None, icon=None): """ Constructor to create the media manager item. """ QtGui.QWidget.__init__(self) self.parent = parent - #TODO: change parent to plugin - self.plugin = parent + #TODO: plugin should not be the parent in future + self.plugin = parent#plugin + media_title_string = self.plugin.getString(StringType.MediaItem) + self.title = media_title_string[u'title'] self.settingsSection = self.plugin.name_lower if isinstance(icon, QtGui.QIcon): self.icon = icon @@ -102,9 +105,6 @@ class MediaManagerItem(QtGui.QWidget): QtGui.QIcon.Normal, QtGui.QIcon.Off) else: self.icon = None - if title: - name_string = self.plugin.getString(StringType.Name) - self.title = name_string[u'plural'] self.toolbar = None self.remoteTriggered = None self.serviceItemIconName = None @@ -276,12 +276,13 @@ class MediaManagerItem(QtGui.QWidget): self.pageLayout.addWidget(self.listView) #define and add the context menu self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) + name_string = self.plugin.getString(StringType.Name) if self.hasEditIcon: self.listView.addAction( context_menu_action( self.listView, u':/general/general_edit.png', unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % - self.plugin.name, + name_string[u'singular'], self.onEditClick)) self.listView.addAction(context_menu_separator(self.listView)) if self.hasDeleteIcon: @@ -290,14 +291,14 @@ class MediaManagerItem(QtGui.QWidget): self.listView, u':/general/general_delete.png', unicode(translate('OpenLP.MediaManagerItem', '&Delete %s')) % - self.plugin.name, + name_string[u'singular'], self.onDeleteClick)) self.listView.addAction(context_menu_separator(self.listView)) self.listView.addAction( context_menu_action( self.listView, u':/general/general_preview.png', unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % - self.plugin.name, + name_string[u'singular'], self.onPreviewClick)) self.listView.addAction( context_menu_action( diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 82acb2986..7f668066f 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -52,6 +52,7 @@ class StringType(object): Preview = u'preview' Live = u'live' Service = u'service' + MediaItem = u'media_item' class Plugin(QtCore.QObject): """ @@ -271,7 +272,7 @@ class Plugin(QtCore.QObject): if self.mediaItem: self.mediadock.remove_dock(self.mediaItem) if self.settings_tab: - self.settingsForm.removeTab(self.name) + self.settingsForm.removeTab(self.settings_tab) def insertToolboxItem(self): """ diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index d4570bec5..7aaf99f00 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -30,7 +30,7 @@ import os import sys import logging -from openlp.core.lib import Plugin, PluginStatus +from openlp.core.lib import Plugin, StringType, PluginStatus log = logging.getLogger(__name__) @@ -152,12 +152,13 @@ class PluginManager(object): for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: plugin.settings_tab = plugin.getSettingsTab() + media_item_string = plugin.getString(StringType.MediaItem) if plugin.settings_tab: log.debug(u'Inserting settings tab item from %s' % - plugin.name) - settingsform.addTab(plugin.name, plugin.settings_tab) + media_item_string[u'title']) + settingsform.addTab(media_item_string[u'title'], plugin.settings_tab) else: - log.debug(u'No tab settings in %s' % plugin.name) + log.debug(u'No tab settings in %s' % media_item_string[u'title']) def hook_import_menu(self, import_menu): """ diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index 172288031..ca0c72a6a 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -26,6 +26,8 @@ import logging +from openlp.core.lib import StringType + log = logging.getLogger(__name__) class MediaDockManager(object): @@ -48,8 +50,9 @@ class MediaDockManager(object): ``icon`` An icon for this dock item """ - log.info(u'Adding %s dock' % media_item.plugin.name) - self.media_dock.addItem(media_item, icon, media_item.plugin.name) + media_item_string = media_item.plugin.getString(StringType.MediaItem) + log.info(u'Adding %s dock' % media_item_string) + self.media_dock.addItem(media_item, icon, media_item_string[u'title']) def insert_dock(self, media_item, icon, weight): """ @@ -57,7 +60,8 @@ class MediaDockManager(object): This does not work as it gives a Segmentation error. For now add at end of stack if not present """ - log.debug(u'Inserting %s dock' % media_item.plugin.name) + media_item_string = media_item.plugin.getString(StringType.MediaItem) + log.debug(u'Inserting %s dock' % media_item_string[u'title']) match = False for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index).settingsSection == \ @@ -65,7 +69,7 @@ class MediaDockManager(object): match = True break if not match: - self.media_dock.addItem(media_item, icon, media_item.plugin.name) + self.media_dock.addItem(media_item, icon, media_item_string[u'title']) def remove_dock(self, media_item): """ @@ -74,7 +78,8 @@ class MediaDockManager(object): ``media_item`` The item to add to the dock """ - log.debug(u'remove %s dock' % media_item.plugin.name) + media_item_string = media_item.plugin.getString(StringType.MediaItem) + log.debug(u'remove %s dock' % media_item_string[u'title']) for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index): if self.media_dock.widget(dock_index).settingsSection == \ diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index a3d1a4dce..83cd15941 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -107,11 +107,11 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): if self.pluginListWidget.currentItem() is None: self._clearDetails() return - plugin_name_more = self.pluginListWidget.currentItem().text().split(u' ')[0] + plugin_name_plural = self.pluginListWidget.currentItem().text().split(u' ')[0] self.activePlugin = None for plugin in self.parent.plugin_manager.plugins: name_string = plugin.getString(StringType.Name) - if name_string[u'plural'] == plugin_name_more: + if name_string[u'plural'] == plugin_name_plural: self.activePlugin = plugin break if self.activePlugin: diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index 37fe1f329..631ebd534 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -72,14 +72,14 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): self.settingsTabWidget.insertTab( location + 14, tab, tab.tabTitleVisible) - def removeTab(self, name): + def removeTab(self, tab): """ Remove a tab from the form """ - log.debug(u'remove %s tab' % name) + log.debug(u'remove %s tab' % tab.tabTitleVisible) for tabIndex in range(0, self.settingsTabWidget.count()): if self.settingsTabWidget.widget(tabIndex): - if self.settingsTabWidget.widget(tabIndex).tabTitle == name: + if self.settingsTabWidget.widget(tabIndex).tabTitleVisible == tab.tabTitleVisible: self.settingsTabWidget.removeTab(tabIndex) def accept(self): diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index b711d583a..656ea7aeb 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -109,8 +109,12 @@ class AlertsPlugin(Plugin): self.name = u'Alerts' self.name_lower = u'alerts' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('AlertsPlugin', 'Alert'), u'plural': translate('AlertsPlugin', 'Alerts') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('AlertsPlugin', 'Alerts') + } diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index e5ace0ac6..1685b493a 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -58,11 +58,12 @@ class BiblePlugin(Plugin): self.exportBibleItem.setVisible(False) def getSettingsTab(self): - return BiblesTab(self.name) + media_item_string = self.getString(StringType.MediaItem) + return BiblesTab(media_item_string[u'title']) def getMediaManagerItem(self): # Create the BibleManagerItem object. - return BibleMediaItem(self, self, self.icon, self.name) + return BibleMediaItem(self, self, self.icon) def addImportMenuItem(self, import_menu): self.importBibleItem = QtGui.QAction(import_menu) @@ -124,11 +125,15 @@ class BiblePlugin(Plugin): self.name = u'Bibles' self.name_lower = u'Bibles' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('BiblesPlugin', 'Bible'), u'plural': translate('BiblesPlugin', 'Bibles') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('BiblesPlugin', 'Bibles') + } # Middle Header Bar ## Import Button ## self.strings[StringType.Import] = { @@ -164,4 +169,4 @@ class BiblePlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index c5790bfc0..7ffb1d627 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -53,10 +53,10 @@ class BibleMediaItem(MediaManagerItem): """ log.info(u'Bible Media Item loaded') - def __init__(self, parent, plugin, icon, title): + def __init__(self, parent, plugin, icon): self.IconPath = u'songs/song' self.ListViewWithDnD_class = BibleListView - MediaManagerItem.__init__(self, parent, self, icon, title) + MediaManagerItem.__init__(self, parent, self, icon) # place to store the search results for both bibles self.search_results = {} self.dual_search_results = {} diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 2b2b9702c..c4cc9ba99 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -55,11 +55,12 @@ class CustomPlugin(Plugin): self.icon = build_icon(self.icon_path) def getSettingsTab(self): - return CustomTab(self.name) + media_item_string = self.getString(StringType.MediaItem) + return CustomTab(media_item_string[u'title']) def getMediaManagerItem(self): # Create the CustomManagerItem object - return CustomMediaItem(self, self, self.icon, self.name) + return CustomMediaItem(self, self, self.icon) def about(self): about_text = translate('CustomPlugin', 'Custom Plugin' @@ -103,11 +104,15 @@ class CustomPlugin(Plugin): self.name = u'Custom' self.name_lower = u'custom' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('CustomsPlugin', 'Custom'), u'plural': translate('CustomsPlugin', 'Customs') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('CustomsPlugin', 'Customs') + } # Middle Header Bar ## Import Button ## self.strings[StringType.Import] = { @@ -148,4 +153,4 @@ class CustomPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('CustomsPlugin', 'Service'), u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 43c321586..3e398a770 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -46,12 +46,12 @@ class CustomMediaItem(MediaManagerItem): """ log.info(u'Custom Media Item loaded') - def __init__(self, parent, plugin, icon, title): + def __init__(self, parent, plugin, icon): self.IconPath = u'custom/custom' # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = CustomListView - MediaManagerItem.__init__(self, parent, self, icon, title) + MediaManagerItem.__init__(self, parent, self, icon) self.singleServiceItem = False # Holds information about whether the edit is remotly triggered and # which Custom is required. diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 213cf0dcc..cca311203 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -42,7 +42,7 @@ class ImagePlugin(Plugin): def getMediaManagerItem(self): # Create the MediaManagerItem object - return ImageMediaItem(self, self, self.icon, self.name) + return ImageMediaItem(self, self, self.icon) def about(self): about_text = translate('ImagePlugin', 'Image Plugin' @@ -65,11 +65,15 @@ class ImagePlugin(Plugin): self.name = u'Images' self.name_lower = u'images' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('ImagePlugin', 'Image'), u'plural': translate('ImagePlugin', 'Images') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('ImagePlugin', 'Images') + } # Middle Header Bar ## Load Button ## self.strings[StringType.Load] = { @@ -105,4 +109,4 @@ class ImagePlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('ImagePlugin', 'Service'), u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 5baf294bd..bdffade2b 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -49,12 +49,12 @@ class ImageMediaItem(MediaManagerItem): """ log.info(u'Image Media Item loaded') - def __init__(self, parent, plugin, icon, title): + def __init__(self, parent, plugin, icon): self.IconPath = u'images/image' # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = ImageListView - MediaManagerItem.__init__(self, parent, self, icon, title) + MediaManagerItem.__init__(self, parent, self, icon) def retranslateUi(self): self.OnNewPrompt = translate('ImagePlugin.MediaItem', diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 9f737ba48..1b9cc7b27 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -46,7 +46,7 @@ class MediaMediaItem(MediaManagerItem): """ log.info(u'%s MediaMediaItem loaded', __name__) - def __init__(self, parent, plugin, icon, title): + def __init__(self, parent, plugin, icon): self.IconPath = u'images/image' self.background = False # this next is a class, not an instance of a class - it will @@ -54,7 +54,7 @@ class MediaMediaItem(MediaManagerItem): self.ListViewWithDnD_class = MediaListView self.PreviewFunction = QtGui.QPixmap( u':/media/media_video.png').toImage() - MediaManagerItem.__init__(self, parent, self, icon, title) + MediaManagerItem.__init__(self, parent, self, icon) self.singleServiceItem = False self.serviceItemIconName = u':/media/media_video.png' diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index b0be2baed..6f4197821 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -70,7 +70,7 @@ class MediaPlugin(Plugin): def getMediaManagerItem(self): # Create the MediaManagerItem object - return MediaMediaItem(self, self, self.icon, self.name) + return MediaMediaItem(self, self, self.icon) def about(self): about_text = translate('MediaPlugin', 'Media Plugin' @@ -83,10 +83,14 @@ class MediaPlugin(Plugin): self.name = u'Media' self.name_lower = u'media' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('MediaPlugin', 'Media'), - u'plural': translate('MediaPlugin', 'Medias') + u'plural': translate('MediaPlugin', 'Media') + } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('MediaPlugin', 'Media') } # Middle Header Bar ## Load Button ## @@ -123,4 +127,4 @@ class MediaPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 6a5769270..a07e2f933 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -63,7 +63,7 @@ class PresentationMediaItem(MediaManagerItem): # this next is a class, not an instance of a class - it will # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = PresentationListView - MediaManagerItem.__init__(self, parent, self, icon, title) + MediaManagerItem.__init__(self, parent, self, icon) self.message_listener = MessageListener(self) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'mediaitem_presentation_rebuild'), self.rebuild) diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 5c32002f6..b085828e7 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -60,7 +60,8 @@ class PresentationPlugin(Plugin): """ Create the settings Tab """ - return PresentationTab(self.name, self.controllers) + media_item_string = self.getString(StringType.MediaItem) + return PresentationTab(media_item_string[u'title'], self.controllers) def initialise(self): """ @@ -151,11 +152,15 @@ class PresentationPlugin(Plugin): self.name = u'Presentations' self.name_lower = u'presentations' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('PresentationPlugin', 'Presentation'), u'plural': translate('PresentationPlugin', 'Presentations') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('PresentationPlugin', 'Presentations') + } # Middle Header Bar ## Load Button ## self.strings[StringType.Load] = { diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 3f4540ae9..586addaa3 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -65,7 +65,8 @@ class RemotesPlugin(Plugin): """ Create the settings Tab """ - return RemoteTab(self.name) + media_item_string = self.getString(StringType.MediaItem) + return RemoteTab(media_item_string[u'title']) def about(self): """ @@ -84,8 +85,12 @@ class RemotesPlugin(Plugin): self.name = u'Remotes' self.name_lower = u'remotes' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('RemotePlugin', 'Remote'), u'plural': translate('RemotePlugin', 'Remotes') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('RemotePlugin', 'Remotes') + } diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 145e6b855..3e7d5d659 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -48,10 +48,10 @@ class SongMediaItem(MediaManagerItem): """ log.info(u'Song Media Item loaded') - def __init__(self, parent, plugin, icon, title): + def __init__(self, parent, plugin, icon): self.IconPath = u'songs/song' self.ListViewWithDnD_class = SongListView - MediaManagerItem.__init__(self, parent, self, icon, title) + MediaManagerItem.__init__(self, parent, self, icon) self.edit_song_form = EditSongForm(self, self.parent.manager) self.singleServiceItem = False #self.edit_song_form = EditSongForm(self.parent.manager, self) diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index ba9213b01..e0b25ca67 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -57,7 +57,8 @@ class SongsPlugin(Plugin): self.icon = build_icon(self.icon_path) def getSettingsTab(self): - return SongsTab(self.name) + media_item_string = self.getString(StringType.MediaItem) + return SongsTab(media_item_string[u'title']) def initialise(self): log.info(u'Songs Initialising') @@ -70,7 +71,7 @@ class SongsPlugin(Plugin): Create the MediaManagerItem object, which is displaed in the Media Manager. """ - return SongMediaItem(self, self, self.icon, self.name) + return SongMediaItem(self, self, self.icon) def addImportMenuItem(self, import_menu): """ @@ -155,11 +156,15 @@ class SongsPlugin(Plugin): self.name = u'Songs' self.name_lower = u'songs' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('SongsPlugin', 'Song'), u'plural': translate('SongsPlugin', 'Songs') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('SongsPlugin', 'Songs') + } # Middle Header Bar ## New Button ## self.strings[StringType.New] = { @@ -190,4 +195,4 @@ class SongsPlugin(Plugin): self.strings[StringType.Service] = { u'title': translate('SongsPlugin', 'Service'), u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 92863a403..4422b1b95 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -170,8 +170,12 @@ class SongUsagePlugin(Plugin): self.name = u'SongUsage' self.name_lower = u'songusage' self.strings = {} - # for names in mediamanagerdock and pluginlist + ## Name PluginList ## self.strings[StringType.Name] = { u'singular': translate('SongUsagePlugin', 'SongUsage'), u'plural': translate('SongUsagePlugin', 'SongUsage') } + ## Name for MediaDockManager, SettingsManager ## + self.strings[StringType.MediaItem] = { + u'title': translate('SongUsagePlugin', 'SongUsage') + } diff --git a/resources/i18n/de.ts b/resources/i18n/de.ts index 9fcddc120..029c29c00 100644 --- a/resources/i18n/de.ts +++ b/resources/i18n/de.ts @@ -934,7 +934,7 @@ Changes do not affect verses already in the service. Customs - + Sonderfolien @@ -1168,7 +1168,7 @@ Changes do not affect verses already in the service. Medias - + Medien @@ -2526,17 +2526,17 @@ You can download the latest version from http://openlp.org/. %s (Inactive) - + %s (Inaktiv) %s (Active) - + %s (Aktiv) %s (Disabled) - + %s (Deaktiviert) diff --git a/scripts/generate_resources.sh b/scripts/generate_resources.sh old mode 100644 new mode 100755 From a308c66aa91738592f73e7d1698248c5845d9faa Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 15 Sep 2010 20:06:30 +0200 Subject: [PATCH 19/95] Python 2.5 cant handle unicode strings in optparse --- openlp.pyw | 20 +++++++++---------- .../presentations/presentationplugin.py | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 9327a1168..af587ff19 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -164,16 +164,16 @@ def main(): # Set up command line options. usage = u'Usage: %prog [options] [qt-options]' parser = OptionParser(usage=usage) - parser.add_option(u'-e', u'--no-error-form', dest=u'no_error_form', - action=u'store_true', help=u'Disable the error notification form.') - parser.add_option(u'-l', u'--log-level', dest=u'loglevel', - default=u'warning', metavar=u'LEVEL', help=u'Set logging to LEVEL ' - u'level. Valid values are "debug", "info", "warning".') - parser.add_option(u'-p', u'--portable', dest=u'portable', - action=u'store_true', help=u'Specify if this should be run as a ' - u'portable app, off a USB flash drive (not implemented).') - parser.add_option(u'-s', u'--style', dest=u'style', - help=u'Set the Qt4 style (passed directly to Qt4).') + parser.add_option('-e', '--no-error-form', dest='no_error_form', + action='store_true', help='Disable the error notification form.') + parser.add_option('-l', '--log-level', dest='loglevel', + default='warning', metavar='LEVEL', help='Set logging to LEVEL ' + 'level. Valid values are "debug", "info", "warning".') + parser.add_option('-p', '--portable', dest='portable', + action='store_true', help='Specify if this should be run as a ' + 'portable app, off a USB flash drive (not implemented).') + parser.add_option('-s', '--style', dest='style', + help='Set the Qt4 style (passed directly to Qt4).') # Set up logging log_path = AppLocation.get_directory(AppLocation.CacheDir) if not os.path.exists(log_path): diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index b085828e7..01b2f31ea 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -159,7 +159,7 @@ class PresentationPlugin(Plugin): } ## Name for MediaDockManager, SettingsManager ## self.strings[StringType.MediaItem] = { - u'title': translate('PresentationPlugin', 'Presentations') + u'title': translate('PresentationPlugin', 'kwPresentations') } # Middle Header Bar ## Load Button ## From 84a6c273fe10a5a473699ac0889c965ed46a932b Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 15 Sep 2010 20:07:08 +0200 Subject: [PATCH 20/95] Python 2.5 cant handle unicode strings in optparse --- openlp/plugins/presentations/presentationplugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 01b2f31ea..b085828e7 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -159,7 +159,7 @@ class PresentationPlugin(Plugin): } ## Name for MediaDockManager, SettingsManager ## self.strings[StringType.MediaItem] = { - u'title': translate('PresentationPlugin', 'kwPresentations') + u'title': translate('PresentationPlugin', 'Presentations') } # Middle Header Bar ## Load Button ## From ad6294ffccf8c686700e9d0226f507b8b31d8d01 Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 15 Sep 2010 22:23:03 +0200 Subject: [PATCH 21/95] simplify icon name settings --- openlp/core/ui/slidecontroller.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index e4fe5a666..6796f0d7f 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -179,25 +179,24 @@ class SlideController(QtGui.QWidget): self.HideMenu.setMenu(QtGui.QMenu( translate('OpenLP.SlideController', 'Hide'), self.Toolbar)) self.BlankScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_blank.png'), u'Blank Screen', self.HideMenu) - self.BlankScreen.setText( - translate('OpenLP.SlideController', 'Blank Screen')) + u':/slides/slide_blank.png'), + translate('OpenLP.SlideController', + 'Blank Screen'), self.HideMenu) self.BlankScreen.setCheckable(True) QtCore.QObject.connect(self.BlankScreen, QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) self.ThemeScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_theme.png'), u'Blank to Theme', self.HideMenu) - self.ThemeScreen.setText( - translate('OpenLP.SlideController', 'Blank to Theme')) + u':/slides/slide_theme.png'), + translate('OpenLP.SlideController', + 'Blank to Theme'), self.HideMenu) self.ThemeScreen.setCheckable(True) QtCore.QObject.connect(self.ThemeScreen, QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) if self.screens.display_count > 1: self.DesktopScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_desktop.png'), u'Show Desktop', - self.HideMenu) - self.DesktopScreen.setText( - translate('OpenLP.SlideController', 'Show Desktop')) + u':/slides/slide_desktop.png'), + translate('OpenLP.SlideController', + 'Show Desktop'), self.HideMenu) self.DesktopScreen.setCheckable(True) QtCore.QObject.connect(self.DesktopScreen, QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) From 399813e6aa5fee1275d69b4a44a01c4b477b3e77 Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 16 Sep 2010 23:10:36 +0200 Subject: [PATCH 22/95] fix for the merge comments, add correct translations for settings window --- openlp.pyw | 20 +++++----- openlp/core/lib/__init__.py | 4 +- openlp/core/lib/mediamanageritem.py | 28 +++++++------- openlp/core/lib/plugin.py | 12 +++--- openlp/core/lib/pluginmanager.py | 12 +++--- openlp/core/lib/settingstab.py | 10 ++--- openlp/core/ui/mediadockmanager.py | 24 ++++++------ openlp/core/ui/pluginform.py | 10 ++--- openlp/plugins/alerts/alertsplugin.py | 11 ++---- openlp/plugins/alerts/forms/alertform.py | 4 +- openlp/plugins/alerts/lib/alertstab.py | 6 +-- openlp/plugins/bibles/bibleplugin.py | 29 +++++++------- openlp/plugins/bibles/lib/biblestab.py | 5 +-- openlp/plugins/custom/customplugin.py | 38 +++++++++---------- openlp/plugins/custom/lib/customtab.py | 5 +-- openlp/plugins/images/imageplugin.py | 27 ++++++------- openlp/plugins/media/mediaplugin.py | 26 ++++++------- .../presentations/lib/presentationtab.py | 6 +-- .../presentations/presentationplugin.py | 25 ++++++------ openlp/plugins/remotes/lib/remotetab.py | 5 +-- openlp/plugins/remotes/remoteplugin.py | 15 +++----- openlp/plugins/songs/lib/songstab.py | 5 +-- openlp/plugins/songs/songsplugin.py | 27 ++++++------- openlp/plugins/songusage/songusageplugin.py | 11 ++---- 24 files changed, 165 insertions(+), 200 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index af587ff19..9327a1168 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -164,16 +164,16 @@ def main(): # Set up command line options. usage = u'Usage: %prog [options] [qt-options]' parser = OptionParser(usage=usage) - parser.add_option('-e', '--no-error-form', dest='no_error_form', - action='store_true', help='Disable the error notification form.') - parser.add_option('-l', '--log-level', dest='loglevel', - default='warning', metavar='LEVEL', help='Set logging to LEVEL ' - 'level. Valid values are "debug", "info", "warning".') - parser.add_option('-p', '--portable', dest='portable', - action='store_true', help='Specify if this should be run as a ' - 'portable app, off a USB flash drive (not implemented).') - parser.add_option('-s', '--style', dest='style', - help='Set the Qt4 style (passed directly to Qt4).') + parser.add_option(u'-e', u'--no-error-form', dest=u'no_error_form', + action=u'store_true', help=u'Disable the error notification form.') + parser.add_option(u'-l', u'--log-level', dest=u'loglevel', + default=u'warning', metavar=u'LEVEL', help=u'Set logging to LEVEL ' + u'level. Valid values are "debug", "info", "warning".') + parser.add_option(u'-p', u'--portable', dest=u'portable', + action=u'store_true', help=u'Specify if this should be run as a ' + u'portable app, off a USB flash drive (not implemented).') + parser.add_option(u'-s', u'--style', dest=u'style', + help=u'Set the Qt4 style (passed directly to Qt4).') # Set up logging log_path = AppLocation.get_directory(AppLocation.CacheDir) if not os.path.exists(log_path): diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index ea2634df4..4fe278e42 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -304,7 +304,7 @@ def expand_tags(text): from spelltextedit import SpellTextEdit from eventreceiver import Receiver from settingsmanager import SettingsManager -from plugin import PluginStatus, StringType, Plugin +from plugin import PluginStatus, StringContent, Plugin from pluginmanager import PluginManager from settingstab import SettingsTab from serviceitem import ServiceItem @@ -318,4 +318,4 @@ from theme import ThemeLevel, ThemeXML from renderer import Renderer from rendermanager import RenderManager from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD +from baselistwithdnd import BaseListWithDnD \ No newline at end of file diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index ead482e88..7f916e157 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -32,7 +32,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import context_menu_action, context_menu_separator, \ - SettingsManager, OpenLPToolbar, ServiceItem, StringType, build_icon, \ + SettingsManager, OpenLPToolbar, ServiceItem, StringContent, build_icon, \ translate log = logging.getLogger(__name__) @@ -95,9 +95,9 @@ class MediaManagerItem(QtGui.QWidget): self.parent = parent #TODO: plugin should not be the parent in future self.plugin = parent#plugin - media_title_string = self.plugin.getString(StringType.MediaItem) - self.title = media_title_string[u'title'] - self.settingsSection = self.plugin.name_lower + visible_title = self.plugin.getString(StringContent.VisibleName) + self.title = visible_title[u'title'] + self.settingsSection = self.plugin.name.lower() if isinstance(icon, QtGui.QIcon): self.icon = icon elif isinstance(icon, basestring): @@ -204,35 +204,35 @@ class MediaManagerItem(QtGui.QWidget): """ ## Import Button ## if self.hasImportIcon: - import_string = self.plugin.getString(StringType.Import) + import_string = self.plugin.getString(StringContent.Import) self.addToolbarButton( import_string[u'title'], import_string[u'tooltip'], u':/general/general_import.png', self.onImportClick) ## Load Button ## if self.hasFileIcon: - load_string = self.plugin.getString(StringType.Load) + load_string = self.plugin.getString(StringContent.Load) self.addToolbarButton( load_string[u'title'], load_string[u'tooltip'], u':/general/general_open.png', self.onFileClick) ## New Button ## if self.hasNewIcon: - new_string = self.plugin.getString(StringType.New) + new_string = self.plugin.getString(StringContent.New) self.addToolbarButton( new_string[u'title'], new_string[u'tooltip'], u':/general/general_new.png', self.onNewClick) ## Edit Button ## if self.hasEditIcon: - edit_string = self.plugin.getString(StringType.Edit) + edit_string = self.plugin.getString(StringContent.Edit) self.addToolbarButton( edit_string[u'title'], edit_string[u'tooltip'], u':/general/general_edit.png', self.onEditClick) ## Delete Button ## if self.hasDeleteIcon: - delete_string = self.plugin.getString(StringType.Delete) + delete_string = self.plugin.getString(StringContent.Delete) self.addToolbarButton( delete_string[u'title'], delete_string[u'tooltip'], @@ -240,19 +240,19 @@ class MediaManagerItem(QtGui.QWidget): ## Separator Line ## self.addToolbarSeparator() ## Preview ## - preview_string = self.plugin.getString(StringType.Preview) + preview_string = self.plugin.getString(StringContent.Preview) self.addToolbarButton( preview_string[u'title'], preview_string[u'tooltip'], u':/general/general_preview.png', self.onPreviewClick) ## Live Button ## - live_string = self.plugin.getString(StringType.Live) + live_string = self.plugin.getString(StringContent.Live) self.addToolbarButton( live_string[u'title'], live_string[u'tooltip'], u':/general/general_live.png', self.onLiveClick) ## Add to service Button ## - service_string = self.plugin.getString(StringType.Service) + service_string = self.plugin.getString(StringContent.Service) self.addToolbarButton( service_string[u'title'], service_string[u'tooltip'], @@ -276,7 +276,7 @@ class MediaManagerItem(QtGui.QWidget): self.pageLayout.addWidget(self.listView) #define and add the context menu self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) - name_string = self.plugin.getString(StringType.Name) + name_string = self.plugin.getString(StringContent.Name) if self.hasEditIcon: self.listView.addAction( context_menu_action( @@ -530,4 +530,4 @@ class MediaManagerItem(QtGui.QWidget): if self.generateSlideData(service_item, item): return service_item else: - return None + return None \ No newline at end of file diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 7f668066f..c80fdfadd 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -42,7 +42,7 @@ class PluginStatus(object): Inactive = 0 Disabled = -1 -class StringType(object): +class StringContent(object): Name = u'name' Import = u'import' Load = u'load' @@ -52,7 +52,7 @@ class StringType(object): Preview = u'preview' Live = u'live' Service = u'service' - MediaItem = u'media_item' + VisibleName = u'visible_name' class Plugin(QtCore.QObject): """ @@ -128,11 +128,12 @@ class Plugin(QtCore.QObject): Defaults to *None*. A list of helper objects. """ QtCore.QObject.__init__(self) - self.setPluginStrings() self.name = name + self.strings = {} + self.setPluginStrings() if version: self.version = version - self.settingsSection = self.name_lower + self.settingsSection = self.name.lower() self.icon = None self.weight = 0 self.status = PluginStatus.Inactive @@ -314,6 +315,3 @@ class Plugin(QtCore.QObject): """ Called to define all translatable texts of the plugin """ - self.name = u'Plugin' - self.name_lower = u'plugin' - self.strings = {} diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index 7aaf99f00..14bf48566 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -30,7 +30,7 @@ import os import sys import logging -from openlp.core.lib import Plugin, StringType, PluginStatus +from openlp.core.lib import Plugin, StringContent, PluginStatus log = logging.getLogger(__name__) @@ -152,13 +152,13 @@ class PluginManager(object): for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: plugin.settings_tab = plugin.getSettingsTab() - media_item_string = plugin.getString(StringType.MediaItem) + visible_title = plugin.getString(StringContent.VisibleName) if plugin.settings_tab: log.debug(u'Inserting settings tab item from %s' % - media_item_string[u'title']) - settingsform.addTab(media_item_string[u'title'], plugin.settings_tab) + visible_title[u'title']) + settingsform.addTab(visible_title[u'title'], plugin.settings_tab) else: - log.debug(u'No tab settings in %s' % media_item_string[u'title']) + log.debug(u'No tab settings in %s' % visible_title[u'title']) def hook_import_menu(self, import_menu): """ @@ -219,4 +219,4 @@ class PluginManager(object): for plugin in self.plugins: if plugin.isActive(): plugin.finalise() - log.info(u'Finalisation Complete for %s ' % plugin.name) + log.info(u'Finalisation Complete for %s ' % plugin.name) \ No newline at end of file diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py index d746636cd..181dc2df8 100644 --- a/openlp/core/lib/settingstab.py +++ b/openlp/core/lib/settingstab.py @@ -31,17 +31,17 @@ class SettingsTab(QtGui.QWidget): SettingsTab is a helper widget for plugins to define Tabs for the settings dialog. """ - def __init__(self, title): + def __init__(self, title, visible_title=None): """ Constructor to create the Settings tab item. - ``title`` - The title of the tab, which is usually displayed on the tab. + ``plugin`` + The related plugin of the tab, which holds the content of the plugin. """ QtGui.QWidget.__init__(self) self.tabTitle = title - self.tabTitleVisible = None - self.settingsSection = self.tabTitle + self.tabTitleVisible = visible_title + self.settingsSection = self.tabTitle.lower() self.setupUi() self.retranslateUi() self.initialise() diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index ca0c72a6a..7d5b6aa2a 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -26,7 +26,7 @@ import logging -from openlp.core.lib import StringType +from openlp.core.lib import StringContent log = logging.getLogger(__name__) @@ -50,9 +50,9 @@ class MediaDockManager(object): ``icon`` An icon for this dock item """ - media_item_string = media_item.plugin.getString(StringType.MediaItem) - log.info(u'Adding %s dock' % media_item_string) - self.media_dock.addItem(media_item, icon, media_item_string[u'title']) + visible_title = media_item.plugin.getString(StringContent.VisibleName) + log.info(u'Adding %s dock' % visible_title) + self.media_dock.addItem(media_item, icon, visible_title[u'title']) def insert_dock(self, media_item, icon, weight): """ @@ -60,16 +60,16 @@ class MediaDockManager(object): This does not work as it gives a Segmentation error. For now add at end of stack if not present """ - media_item_string = media_item.plugin.getString(StringType.MediaItem) - log.debug(u'Inserting %s dock' % media_item_string[u'title']) + visible_title = media_item.plugin.getString(StringContent.VisibleName) + log.debug(u'Inserting %s dock' % visible_title[u'title']) match = False for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index).settingsSection == \ - media_item.plugin.name_lower: + media_item.plugin.name.lower(): match = True break if not match: - self.media_dock.addItem(media_item, icon, media_item_string[u'title']) + self.media_dock.addItem(media_item, icon, visible_title[u'title']) def remove_dock(self, media_item): """ @@ -78,11 +78,11 @@ class MediaDockManager(object): ``media_item`` The item to add to the dock """ - media_item_string = media_item.plugin.getString(StringType.MediaItem) - log.debug(u'remove %s dock' % media_item_string[u'title']) + visible_title = media_item.plugin.getString(StringContent.VisibleName) + log.debug(u'remove %s dock' % visible_title[u'title']) for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index): if self.media_dock.widget(dock_index).settingsSection == \ - media_item.plugin.name_lower: + media_item.plugin.name.lower(): self.media_dock.widget(dock_index).hide() - self.media_dock.removeItem(dock_index) + self.media_dock.removeItem(dock_index) \ No newline at end of file diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index 83cd15941..56fe94b3f 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import PluginStatus, StringType, translate +from openlp.core.lib import PluginStatus, StringContent, translate from plugindialog import Ui_PluginViewDialog log = logging.getLogger(__name__) @@ -78,7 +78,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): elif plugin.status == PluginStatus.Disabled: status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) - name_string = plugin.getString(StringType.Name) + name_string = plugin.getString(StringContent.Name) item.setText(status_text % name_string[u'plural']) # If the plugin has an icon, set it! if plugin.icon: @@ -110,7 +110,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): plugin_name_plural = self.pluginListWidget.currentItem().text().split(u' ')[0] self.activePlugin = None for plugin in self.parent.plugin_manager.plugins: - name_string = plugin.getString(StringType.Name) + name_string = plugin.getString(StringContent.Name) if name_string[u'plural'] == plugin_name_plural: self.activePlugin = plugin break @@ -139,6 +139,6 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): elif self.activePlugin.status == PluginStatus.Disabled: status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) - name_string = self.activePlugin.getString(StringType.Name) + name_string = self.activePlugin.getString(StringContent.Name) self.pluginListWidget.currentItem().setText( - status_text % name_string[u'plural']) + status_text % name_string[u'plural']) \ No newline at end of file diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 656ea7aeb..4577fc76e 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.core.lib.db import Manager from openlp.plugins.alerts.lib import AlertsManager, AlertsTab from openlp.plugins.alerts.lib.db import init_schema @@ -106,15 +106,12 @@ class AlertsPlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'Alerts' - self.name_lower = u'alerts' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('AlertsPlugin', 'Alert'), u'plural': translate('AlertsPlugin', 'Alerts') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('AlertsPlugin', 'Alerts') - } + } \ No newline at end of file diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index e2ff6e2e2..730d5ebc8 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -35,7 +35,7 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): """ Provide UI for the alert system """ - def __init__(self, plugin): + def __init__(self, title, visible_title): """ Initialise the alert form """ @@ -155,4 +155,4 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): text = text.replace(u'<>', unicode(self.ParameterEdit.text())) self.parent.alertsmanager.displayAlert(text) return True - return False + return False \ No newline at end of file diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 77b6e7fb6..625287603 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -32,14 +32,13 @@ class AlertsTab(SettingsTab): """ AlertsTab is the alerts settings tab in the settings dialog. """ - def __init__(self, parent): + def __init__(self, parent, visible_title): self.parent = parent self.manager = parent.manager - SettingsTab.__init__(self, parent.name) + SettingsTab.__init__(self, parent.name, visible_title) def setupUi(self): self.setObjectName(u'AlertsTab') - self.tabTitleVisible = translate('AlertsPlugin.AlertsTab', 'Alerts') self.AlertsLayout = QtGui.QHBoxLayout(self) self.AlertsLayout.setSpacing(8) self.AlertsLayout.setMargin(8) @@ -296,4 +295,3 @@ class AlertsTab(SettingsTab): self.FontPreview.setFont(font) self.FontPreview.setStyleSheet(u'background-color: %s; color: %s' % (self.bg_color, self.font_color)) - diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 1685b493a..018f15c3e 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem log = logging.getLogger(__name__) @@ -58,8 +58,8 @@ class BiblePlugin(Plugin): self.exportBibleItem.setVisible(False) def getSettingsTab(self): - media_item_string = self.getString(StringType.MediaItem) - return BiblesTab(media_item_string[u'title']) + visible_name = self.getString(StringContent.VisibleName) + return BiblesTab(self.name, visible_name[u'title']) def getMediaManagerItem(self): # Create the BibleManagerItem object. @@ -122,51 +122,48 @@ class BiblePlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'Bibles' - self.name_lower = u'Bibles' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('BiblesPlugin', 'Bible'), u'plural': translate('BiblesPlugin', 'Bibles') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('BiblesPlugin', 'Bibles') } # Middle Header Bar ## Import Button ## - self.strings[StringType.Import] = { + self.strings[StringContent.Import] = { u'title': translate('BiblesPlugin', 'Import'), u'tooltip': translate('BiblesPlugin', 'Import a Bible') } ## New Button ## - self.strings[StringType.New] = { + self.strings[StringContent.New] = { u'title': translate('BiblesPlugin', 'Add'), u'tooltip': translate('BiblesPlugin', 'Add a new Bible') } ## Edit Button ## - self.strings[StringType.Edit] = { + self.strings[StringContent.Edit] = { u'title': translate('BiblesPlugin', 'Edit'), u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') } ## Delete Button ## - self.strings[StringType.Delete] = { + self.strings[StringContent.Delete] = { u'title': translate('BiblesPlugin', 'Delete'), u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') } ## Preview ## - self.strings[StringType.Preview] = { + self.strings[StringContent.Preview] = { u'title': translate('BiblesPlugin', 'Preview'), u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') } ## Live Button ## - self.strings[StringType.Live] = { + self.strings[StringContent.Live] = { u'title': translate('BiblesPlugin', 'Live'), u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') } ## Add to service Button ## - self.strings[StringType.Service] = { + self.strings[StringContent.Service] = { u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index 0903c9625..b7d1b9bde 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -38,15 +38,14 @@ class BiblesTab(SettingsTab): """ log.info(u'Bible Tab loaded') - def __init__(self, title): + def __init__(self, title, visible_title): self.paragraph_style = True self.show_new_chapters = False self.display_style = 0 - SettingsTab.__init__(self, title) + SettingsTab.__init__(self, title, visible_title) def setupUi(self): self.setObjectName(u'BiblesTab') - self.tabTitleVisible = translate('BiblesPlugin.BiblesTab', 'Bibles') self.BibleLayout = QtGui.QHBoxLayout(self) self.BibleLayout.setSpacing(8) self.BibleLayout.setMargin(8) diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index c4cc9ba99..081e036b0 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -28,7 +28,7 @@ import logging from forms import EditCustomForm -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.core.lib.db import Manager from openlp.plugins.custom.lib import CustomMediaItem, CustomTab from openlp.plugins.custom.lib.db import CustomSlide, init_schema @@ -40,8 +40,8 @@ class CustomPlugin(Plugin): This plugin enables the user to create, edit and display custom slide shows. Custom shows are divided into slides. Each show is able to have it's own theme. - Custom shows are designed to replace the use of Customs where - the Customs plugin has become restrictive. Examples could be + Custom shows are designed to replace the use of songs where + the songs plugin has become restrictive. Examples could be Welcome slides, Bible Reading information, Orders of service. """ log.info(u'Custom Plugin loaded') @@ -55,8 +55,8 @@ class CustomPlugin(Plugin): self.icon = build_icon(self.icon_path) def getSettingsTab(self): - media_item_string = self.getString(StringType.MediaItem) - return CustomTab(media_item_string[u'title']) + visible_name = self.getString(StringContent.VisibleName) + return CustomTab(self.name, visible_name[u'title']) def getMediaManagerItem(self): # Create the CustomManagerItem object @@ -66,7 +66,7 @@ class CustomPlugin(Plugin): about_text = translate('CustomPlugin', 'Custom Plugin' '
The custom plugin provides the ability to set up custom ' 'text slides that can be displayed on the screen the same way ' - 'Customs are. This plugin provides greater freedom over the Customs ' + 'songs are. This plugin provides greater freedom over the songs ' 'plugin.') return about_text @@ -97,60 +97,58 @@ class CustomPlugin(Plugin): for custom in customsUsingTheme: custom.theme_name = newTheme self.custommanager.save_object(custom) + def setPluginStrings(self): """ Called to define all translatable texts of the plugin """ - self.name = u'Custom' - self.name_lower = u'custom' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('CustomsPlugin', 'Custom'), u'plural': translate('CustomsPlugin', 'Customs') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('CustomsPlugin', 'Customs') } # Middle Header Bar ## Import Button ## - self.strings[StringType.Import] = { + self.strings[StringContent.Import] = { u'title': translate('CustomsPlugin', 'Import'), u'tooltip': translate('CustomsPlugin', 'Import a Custom') } ## Load Button ## - self.strings[StringType.Load] = { + self.strings[StringContent.Load] = { u'title': translate('CustomsPlugin', 'Load'), u'tooltip': translate('CustomsPlugin', 'Load a new Custom') } ## New Button ## - self.strings[StringType.New] = { + self.strings[StringContent.New] = { u'title': translate('CustomsPlugin', 'Add'), u'tooltip': translate('CustomsPlugin', 'Add a new Custom') } ## Edit Button ## - self.strings[StringType.Edit] = { + self.strings[StringContent.Edit] = { u'title': translate('CustomsPlugin', 'Edit'), u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') } ## Delete Button ## - self.strings[StringType.Delete] = { + self.strings[StringContent.Delete] = { u'title': translate('CustomsPlugin', 'Delete'), u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') } ## Preview ## - self.strings[StringType.Preview] = { + self.strings[StringContent.Preview] = { u'title': translate('CustomsPlugin', 'Preview'), u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') } ## Live Button ## - self.strings[StringType.Live] = { + self.strings[StringContent.Live] = { u'title': translate('CustomsPlugin', 'Live'), u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') } ## Add to service Button ## - self.strings[StringType.Service] = { + self.strings[StringContent.Service] = { u'title': translate('CustomsPlugin', 'Service'), u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/custom/lib/customtab.py b/openlp/plugins/custom/lib/customtab.py index 77ef0f3f6..461d6af59 100644 --- a/openlp/plugins/custom/lib/customtab.py +++ b/openlp/plugins/custom/lib/customtab.py @@ -32,12 +32,11 @@ class CustomTab(SettingsTab): """ CustomTab is the Custom settings tab in the settings dialog. """ - def __init__(self, title): - SettingsTab.__init__(self, title) + def __init__(self, title, visible_title): + SettingsTab.__init__(self, title, visible_title) def setupUi(self): self.setObjectName(u'CustomTab') - self.tabTitleVisible = translate('CustomPlugin.CustomTab', 'Custom') self.customLayout = QtGui.QFormLayout(self) self.customLayout.setSpacing(8) self.customLayout.setMargin(8) diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index cca311203..d0ef63156 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -26,7 +26,7 @@ import logging -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.plugins.images.lib import ImageMediaItem log = logging.getLogger(__name__) @@ -53,7 +53,7 @@ class ImagePlugin(Plugin): 'make use of OpenLP\'s "timed looping" feature to create a slide ' 'show that runs automatically. In addition to this, images from ' 'the plugin can be used to override the current theme\'s ' - 'background, which renders text-based items like Images with the ' + 'background, which renders text-based items like songs with the ' 'selected image as a background instead of the background ' 'provided by the theme.') return about_text @@ -62,51 +62,48 @@ class ImagePlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'Images' - self.name_lower = u'images' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('ImagePlugin', 'Image'), u'plural': translate('ImagePlugin', 'Images') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('ImagePlugin', 'Images') } # Middle Header Bar ## Load Button ## - self.strings[StringType.Load] = { + self.strings[StringContent.Load] = { u'title': translate('ImagePlugin', 'Load'), u'tooltip': translate('ImagePlugin', 'Load a new Image') } ## New Button ## - self.strings[StringType.New] = { + self.strings[StringContent.New] = { u'title': translate('ImagePlugin', 'Add'), u'tooltip': translate('ImagePlugin', 'Add a new Image') } ## Edit Button ## - self.strings[StringType.Edit] = { + self.strings[StringContent.Edit] = { u'title': translate('ImagePlugin', 'Edit'), u'tooltip': translate('ImagePlugin', 'Edit the selected Image') } ## Delete Button ## - self.strings[StringType.Delete] = { + self.strings[StringContent.Delete] = { u'title': translate('ImagePlugin', 'Delete'), u'tooltip': translate('ImagePlugin', 'Delete the selected Image') } ## Preview ## - self.strings[StringType.Preview] = { + self.strings[StringContent.Preview] = { u'title': translate('ImagePlugin', 'Preview'), u'tooltip': translate('ImagePlugin', 'Preview the selected Image') } ## Live Button ## - self.strings[StringType.Live] = { + self.strings[StringContent.Live] = { u'title': translate('ImagePlugin', 'Live'), u'tooltip': translate('ImagePlugin', 'Send the selected Image live') } ## Add to service Button ## - self.strings[StringType.Service] = { + self.strings[StringContent.Service] = { u'title': translate('ImagePlugin', 'Service'), u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 6f4197821..23cce3056 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -28,7 +28,7 @@ import logging from PyQt4.phonon import Phonon -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.plugins.media.lib import MediaMediaItem log = logging.getLogger(__name__) @@ -76,55 +76,53 @@ class MediaPlugin(Plugin): about_text = translate('MediaPlugin', 'Media Plugin' '
The media plugin provides playback of audio and video.') return about_text + def setPluginStrings(self): """ Called to define all translatable texts of the plugin """ - self.name = u'Media' - self.name_lower = u'media' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('MediaPlugin', 'Media'), u'plural': translate('MediaPlugin', 'Media') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('MediaPlugin', 'Media') } # Middle Header Bar ## Load Button ## - self.strings[StringType.Load] = { + self.strings[StringContent.Load] = { u'title': translate('MediaPlugin', 'Load'), u'tooltip': translate('MediaPlugin', 'Load a new Media') } ## New Button ## - self.strings[StringType.New] = { + self.strings[StringContent.New] = { u'title': translate('MediaPlugin', 'Add'), u'tooltip': translate('MediaPlugin', 'Add a new Media') } ## Edit Button ## - self.strings[StringType.Edit] = { + self.strings[StringContent.Edit] = { u'title': translate('MediaPlugin', 'Edit'), u'tooltip': translate('MediaPlugin', 'Edit the selected Media') } ## Delete Button ## - self.strings[StringType.Delete] = { + self.strings[StringContent.Delete] = { u'title': translate('MediaPlugin', 'Delete'), u'tooltip': translate('MediaPlugin', 'Delete the selected Media') } ## Preview ## - self.strings[StringType.Preview] = { + self.strings[StringContent.Preview] = { u'title': translate('MediaPlugin', 'Preview'), u'tooltip': translate('MediaPlugin', 'Preview the selected Media') } ## Live Button ## - self.strings[StringType.Live] = { + self.strings[StringContent.Live] = { u'title': translate('MediaPlugin', 'Live'), u'tooltip': translate('MediaPlugin', 'Send the selected Media live') } ## Add to service Button ## - self.strings[StringType.Service] = { + self.strings[StringContent.Service] = { u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index c664221cc..a7b16cd5a 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -32,20 +32,18 @@ class PresentationTab(SettingsTab): """ PresentationsTab is the Presentations settings tab in the settings dialog. """ - def __init__(self, title, controllers): + def __init__(self, title, visible_title, controllers): """ Constructor """ self.controllers = controllers - SettingsTab.__init__(self, title) + SettingsTab.__init__(self, title, visible_title) def setupUi(self): """ Create the controls for the settings tab """ self.setObjectName(u'PresentationTab') - self.tabTitleVisible = translate('PresentationPlugin.PresentationTab', - 'Presentations') self.PresentationLayout = QtGui.QHBoxLayout(self) self.PresentationLayout.setSpacing(8) self.PresentationLayout.setMargin(8) diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index b085828e7..6e1281dae 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -30,7 +30,7 @@ presentations from a variety of document formats. import os import logging -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.core.utils import AppLocation from openlp.plugins.presentations.lib import PresentationController, \ PresentationMediaItem, PresentationTab @@ -60,8 +60,8 @@ class PresentationPlugin(Plugin): """ Create the settings Tab """ - media_item_string = self.getString(StringType.MediaItem) - return PresentationTab(media_item_string[u'title'], self.controllers) + visible_name = self.getString(StringContent.VisibleName) + return PresentationTab(self.name, visible_name[u'title'], self.controllers) def initialise(self): """ @@ -149,41 +149,38 @@ class PresentationPlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'Presentations' - self.name_lower = u'presentations' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('PresentationPlugin', 'Presentation'), u'plural': translate('PresentationPlugin', 'Presentations') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('PresentationPlugin', 'Presentations') } # Middle Header Bar ## Load Button ## - self.strings[StringType.Load] = { + self.strings[StringContent.Load] = { u'title': translate('PresentationPlugin', 'Load'), u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') } ## Delete Button ## - self.strings[StringType.Delete] = { + self.strings[StringContent.Delete] = { u'title': translate('PresentationPlugin', 'Delete'), u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') } ## Preview ## - self.strings[StringType.Preview] = { + self.strings[StringContent.Preview] = { u'title': translate('PresentationPlugin', 'Preview'), u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') } ## Live Button ## - self.strings[StringType.Live] = { + self.strings[StringContent.Live] = { u'title': translate('PresentationPlugin', 'Live'), u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') } ## Add to service Button ## - self.strings[StringType.Service] = { + self.strings[StringContent.Service] = { u'title': translate('PresentationPlugin', 'Service'), u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py index ad1f4aac5..123aa291d 100644 --- a/openlp/plugins/remotes/lib/remotetab.py +++ b/openlp/plugins/remotes/lib/remotetab.py @@ -32,12 +32,11 @@ class RemoteTab(SettingsTab): """ RemoteTab is the Remotes settings tab in the settings dialog. """ - def __init__(self, title): - SettingsTab.__init__(self, title) + def __init__(self, title, visible_title): + SettingsTab.__init__(self, title, visible_title) def setupUi(self): self.setObjectName(u'RemoteTab') - self.tabTitleVisible = translate('RemotePlugin.RemoteTab', 'Remotes') self.remoteLayout = QtGui.QFormLayout(self) self.remoteLayout.setSpacing(8) self.remoteLayout.setMargin(8) diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 586addaa3..4efed2c9d 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -26,7 +26,7 @@ import logging -from openlp.core.lib import Plugin, StringType, translate, build_icon +from openlp.core.lib import Plugin, StringContent, translate, build_icon from openlp.plugins.remotes.lib import RemoteTab, HttpServer log = logging.getLogger(__name__) @@ -65,8 +65,8 @@ class RemotesPlugin(Plugin): """ Create the settings Tab """ - media_item_string = self.getString(StringType.MediaItem) - return RemoteTab(media_item_string[u'title']) + visible_name = self.getString(StringContent.VisibleName) + return RemoteTab(self.name, visible_name[u'title']) def about(self): """ @@ -82,15 +82,12 @@ class RemotesPlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'Remotes' - self.name_lower = u'remotes' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('RemotePlugin', 'Remote'), u'plural': translate('RemotePlugin', 'Remotes') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('RemotePlugin', 'Remotes') - } + } \ No newline at end of file diff --git a/openlp/plugins/songs/lib/songstab.py b/openlp/plugins/songs/lib/songstab.py index 274370065..39a53f1c6 100644 --- a/openlp/plugins/songs/lib/songstab.py +++ b/openlp/plugins/songs/lib/songstab.py @@ -32,12 +32,11 @@ class SongsTab(SettingsTab): """ SongsTab is the Songs settings tab in the settings dialog. """ - def __init__(self, title): - SettingsTab.__init__(self, title) + def __init__(self, title, visible_title): + SettingsTab.__init__(self, title, visible_title) def setupUi(self): self.setObjectName(u'SongsTab') - self.tabTitleVisible = translate('SongsPlugin.SongsTab', 'Songs') self.SongsLayout = QtGui.QFormLayout(self) self.SongsLayout.setSpacing(8) self.SongsLayout.setMargin(8) diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index e0b25ca67..89b6cca23 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, StringType, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.core.lib.db import Manager from openlp.plugins.songs.lib import SongMediaItem, SongsTab from openlp.plugins.songs.lib.db import init_schema, Song @@ -57,8 +57,8 @@ class SongsPlugin(Plugin): self.icon = build_icon(self.icon_path) def getSettingsTab(self): - media_item_string = self.getString(StringType.MediaItem) - return SongsTab(media_item_string[u'title']) + visible_name = self.getString(StringContent.VisibleName) + return SongsTab(self.name, visible_name[u'title']) def initialise(self): log.info(u'Songs Initialising') @@ -153,46 +153,43 @@ class SongsPlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'Songs' - self.name_lower = u'songs' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('SongsPlugin', 'Song'), u'plural': translate('SongsPlugin', 'Songs') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('SongsPlugin', 'Songs') } # Middle Header Bar ## New Button ## - self.strings[StringType.New] = { + self.strings[StringContent.New] = { u'title': translate('SongsPlugin', 'Add'), u'tooltip': translate('SongsPlugin', 'Add a new Song') } ## Edit Button ## - self.strings[StringType.Edit] = { + self.strings[StringContent.Edit] = { u'title': translate('SongsPlugin', 'Edit'), u'tooltip': translate('SongsPlugin', 'Edit the selected Song') } ## Delete Button ## - self.strings[StringType.Delete] = { + self.strings[StringContent.Delete] = { u'title': translate('SongsPlugin', 'Delete'), u'tooltip': translate('SongsPlugin', 'Delete the selected Song') } ## Preview ## - self.strings[StringType.Preview] = { + self.strings[StringContent.Preview] = { u'title': translate('SongsPlugin', 'Preview'), u'tooltip': translate('SongsPlugin', 'Preview the selected Song') } ## Live Button ## - self.strings[StringType.Live] = { + self.strings[StringContent.Live] = { u'title': translate('SongsPlugin', 'Live'), u'tooltip': translate('SongsPlugin', 'Send the selected Song live') } ## Add to service Button ## - self.strings[StringType.Service] = { + self.strings[StringContent.Service] = { u'title': translate('SongsPlugin', 'Service'), u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 4422b1b95..e2ff2adae 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -29,7 +29,7 @@ from datetime import datetime from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, StringType, Receiver, build_icon, translate +from openlp.core.lib import Plugin, StringContent, Receiver, build_icon, translate from openlp.core.lib.db import Manager from openlp.plugins.songusage.forms import SongUsageDetailForm, \ SongUsageDeleteForm @@ -167,15 +167,12 @@ class SongUsagePlugin(Plugin): """ Called to define all translatable texts of the plugin """ - self.name = u'SongUsage' - self.name_lower = u'songusage' - self.strings = {} ## Name PluginList ## - self.strings[StringType.Name] = { + self.strings[StringContent.Name] = { u'singular': translate('SongUsagePlugin', 'SongUsage'), u'plural': translate('SongUsagePlugin', 'SongUsage') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringType.MediaItem] = { + self.strings[StringContent.VisibleName] = { u'title': translate('SongUsagePlugin', 'SongUsage') - } + } \ No newline at end of file From 8bf0b34d22d96ffa6dc57ea0495b66b63dffddeb Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 16 Sep 2010 23:12:51 +0200 Subject: [PATCH 23/95] Head --- openlp/core/__init__.py | 298 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 294 insertions(+), 4 deletions(-) diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index a6cfa60c7..b325f0c6c 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -24,8 +24,298 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### """ -The :mod:`core` module provides all core application functions - -All the core functions of the OpenLP application including the GUI, settings, -logging and a plugin framework are contained within the openlp.core module. +The :mod:`lib` module contains most of the components and libraries that make +OpenLP work. """ +import logging +import os.path +import types + +from PyQt4 import QtCore, QtGui + +log = logging.getLogger(__name__) + +# TODO make external and configurable in alpha 4 via a settings dialog +html_expands = [] + +html_expands.append({u'desc':u'Red', u'start tag':u'{r}', + u'start html':u'', + u'end tag':u'{/r}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Black', u'start tag':u'{b}', + u'start html':u'', + u'end tag':u'{/b}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', + u'start html':u'', + u'end tag':u'{/bl}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', + u'start html':u'', + u'end tag':u'{/y}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Green', u'start tag':u'{g}', + u'start html':u'', + u'end tag':u'{/g}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', + u'start html':u'', + u'end tag':u'{/pk}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', + u'start html':u'', + u'end tag':u'{/o}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', + u'start html':u'', + u'end tag':u'{/pp}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'White', u'start tag':u'{w}', + u'start html':u'', + u'end tag':u'{/w}', u'end html':u'', u'protected':False}) +html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', + u'start html':u'', u'end tag':u'{/su}', u'end html':u'', + u'protected':True}) +html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', + u'start html':u'', u'end tag':u'{/sb}', u'end html':u'', + u'protected':True}) +html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', + u'start html':u'

', u'end tag':u'{/p}', u'end html':u'

', + u'protected':True}) +html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', + u'start html':u'', u'end tag':u'{/st}', u'end html':u'', + u'protected':True}) +html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', + u'start html':u'', u'end tag':u'{/it}', u'end html':u'', + u'protected':True}) + +def translate(context, text, comment=None): + """ + A special shortcut method to wrap around the Qt4 translation functions. + This abstracts the translation procedure so that we can change it if at a + later date if necessary, without having to redo the whole of OpenLP. + + ``context`` + The translation context, used to give each string a context or a + namespace. + + ``text`` + The text to put into the translation tables for translation. + + ``comment`` + An identifying string for when the same text is used in different roles + within the same context. + """ + return QtCore.QCoreApplication.translate(context, text, comment) + +def get_text_file_string(text_file): + """ + Open a file and return its content as unicode string. If the supplied file + name is not a file then the function returns False. If there is an error + loading the file or the content can't be decoded then the function will + return None. + + ``textfile`` + The name of the file. + """ + if not os.path.isfile(text_file): + return False + file_handle = None + content_string = None + try: + file_handle = open(text_file, u'r') + content = file_handle.read() + content_string = content.decode(u'utf-8') + except (IOError, UnicodeError): + log.exception(u'Failed to open text file %s' % text_file) + finally: + if file_handle: + file_handle.close() + return content_string + +def str_to_bool(stringvalue): + """ + Convert a string version of a boolean into a real boolean. + + ``stringvalue`` + The string value to examine and convert to a boolean type. + """ + if isinstance(stringvalue, bool): + return stringvalue + return unicode(stringvalue).strip().lower() in (u'true', u'yes', u'y') + +def build_icon(icon): + """ + Build a QIcon instance from an existing QIcon, a resource location, or a + physical file location. If the icon is a QIcon instance, that icon is + simply returned. If not, it builds a QIcon instance from the resource or + file name. + + ``icon`` + The icon to build. This can be a QIcon, a resource string in the form + ``:/resource/file.png``, or a file location like ``/path/to/file.png``. + """ + button_icon = QtGui.QIcon() + if isinstance(icon, QtGui.QIcon): + button_icon = icon + elif isinstance(icon, basestring): + if icon.startswith(u':/'): + button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, + QtGui.QIcon.Off) + else: + button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + elif isinstance(icon, QtGui.QImage): + button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + return button_icon + +def context_menu_action(base, icon, text, slot): + """ + Utility method to help build context menus for plugins + + ``base`` + The parent menu to add this menu item to + + ``icon`` + An icon for this action + + ``text`` + The text to display for this action + + ``slot`` + The code to run when this action is triggered + """ + action = QtGui.QAction(text, base) + if icon: + action.setIcon(build_icon(icon)) + QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) + return action + +def context_menu(base, icon, text): + """ + Utility method to help build context menus for plugins + + ``base`` + The parent object to add this menu to + + ``icon`` + An icon for this menu + + ``text`` + The text to display for this menu + """ + action = QtGui.QMenu(text, base) + action.setIcon(build_icon(icon)) + return action + +def context_menu_separator(base): + """ + Add a separator to a context menu + + ``base`` + The menu object to add the separator to + """ + action = QtGui.QAction(u'', base) + action.setSeparator(True) + return action + +def image_to_byte(image): + """ + Resize an image to fit on the current screen for the web and returns + it as a byte stream. + + ``image`` + The image to converted. + """ + byte_array = QtCore.QByteArray() + # use buffer to store pixmap into byteArray + buffie = QtCore.QBuffer(byte_array) + buffie.open(QtCore.QIODevice.WriteOnly) + if isinstance(image, QtGui.QImage): + pixmap = QtGui.QPixmap.fromImage(image) + else: + pixmap = QtGui.QPixmap(image) + pixmap.save(buffie, "PNG") + # convert to base64 encoding so does not get missed! + return byte_array.toBase64() + +def resize_image(image, width, height, background=QtCore.Qt.black): + """ + Resize an image to fit on the current screen. + + ``image`` + The image to resize. + + ``width`` + The new image width. + + ``height`` + The new image height. + + ``background`` + The background colour defaults to black. + + """ + preview = QtGui.QImage(image) + if not preview.isNull(): + # Only resize if different size + if preview.width() == width and preview.height == height: + return preview + preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, + QtCore.Qt.SmoothTransformation) + realw = preview.width() + realh = preview.height() + # and move it to the centre of the preview space + new_image = QtGui.QImage(width, height, + QtGui.QImage.Format_ARGB32_Premultiplied) + new_image.fill(background) + painter = QtGui.QPainter(new_image) + painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) + return new_image + +def check_item_selected(list_widget, message): + """ + Check if a list item is selected so an action may be performed on it + + ``list_widget`` + The list to check for selected items + + ``message`` + The message to give the user if no item is selected + """ + if not list_widget.selectedIndexes(): + QtGui.QMessageBox.information(list_widget.parent(), + translate('OpenLP.MediaManagerItem', 'No Items Selected'), message) + return False + return True + +def clean_tags(text): + """ + Remove Tags from text for display + """ + text = text.replace(u'
', u'\n') + for tag in html_expands: + text = text.replace(tag[u'start tag'], u'') + text = text.replace(tag[u'end tag'], u'') + return text + +def expand_tags(text): + """ + Expand tags HTML for display + """ + for tag in html_expands: + text = text.replace(tag[u'start tag'], tag[u'start html']) + text = text.replace(tag[u'end tag'], tag[u'end html']) + return text + +from spelltextedit import SpellTextEdit +from eventreceiver import Receiver +from settingsmanager import SettingsManager +from plugin import PluginStatus, Plugin +from pluginmanager import PluginManager +from settingstab import SettingsTab +from serviceitem import ServiceItem +from serviceitem import ServiceItemType +from serviceitem import ItemCapabilities +from htmlbuilder import build_html, build_lyrics_format_css, \ + build_lyrics_outline_css +from toolbar import OpenLPToolbar +from dockwidget import OpenLPDockWidget +from theme import ThemeLevel, ThemeXML +from renderer import Renderer +from rendermanager import RenderManager +from mediamanageritem import MediaManagerItem +from baselistwithdnd import BaseListWithDnD From d69f077f53ccdc99559be76916d1346ed82820a1 Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 16 Sep 2010 23:27:46 +0200 Subject: [PATCH 24/95] Head --- openlp/core/__init__.py | 298 +----------------------------------- openlp/core/lib/__init__.py | 4 +- 2 files changed, 6 insertions(+), 296 deletions(-) diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index b325f0c6c..a6cfa60c7 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -24,298 +24,8 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### """ -The :mod:`lib` module contains most of the components and libraries that make -OpenLP work. +The :mod:`core` module provides all core application functions + +All the core functions of the OpenLP application including the GUI, settings, +logging and a plugin framework are contained within the openlp.core module. """ -import logging -import os.path -import types - -from PyQt4 import QtCore, QtGui - -log = logging.getLogger(__name__) - -# TODO make external and configurable in alpha 4 via a settings dialog -html_expands = [] - -html_expands.append({u'desc':u'Red', u'start tag':u'{r}', - u'start html':u'', - u'end tag':u'{/r}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Black', u'start tag':u'{b}', - u'start html':u'', - u'end tag':u'{/b}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', - u'start html':u'', - u'end tag':u'{/bl}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', - u'start html':u'', - u'end tag':u'{/y}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Green', u'start tag':u'{g}', - u'start html':u'', - u'end tag':u'{/g}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', - u'start html':u'', - u'end tag':u'{/pk}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', - u'start html':u'', - u'end tag':u'{/o}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', - u'start html':u'', - u'end tag':u'{/pp}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'White', u'start tag':u'{w}', - u'start html':u'', - u'end tag':u'{/w}', u'end html':u'', u'protected':False}) -html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', - u'start html':u'', u'end tag':u'{/su}', u'end html':u'', - u'protected':True}) -html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', - u'start html':u'', u'end tag':u'{/sb}', u'end html':u'', - u'protected':True}) -html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', - u'start html':u'

', u'end tag':u'{/p}', u'end html':u'

', - u'protected':True}) -html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', - u'start html':u'', u'end tag':u'{/st}', u'end html':u'', - u'protected':True}) -html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', - u'start html':u'', u'end tag':u'{/it}', u'end html':u'', - u'protected':True}) - -def translate(context, text, comment=None): - """ - A special shortcut method to wrap around the Qt4 translation functions. - This abstracts the translation procedure so that we can change it if at a - later date if necessary, without having to redo the whole of OpenLP. - - ``context`` - The translation context, used to give each string a context or a - namespace. - - ``text`` - The text to put into the translation tables for translation. - - ``comment`` - An identifying string for when the same text is used in different roles - within the same context. - """ - return QtCore.QCoreApplication.translate(context, text, comment) - -def get_text_file_string(text_file): - """ - Open a file and return its content as unicode string. If the supplied file - name is not a file then the function returns False. If there is an error - loading the file or the content can't be decoded then the function will - return None. - - ``textfile`` - The name of the file. - """ - if not os.path.isfile(text_file): - return False - file_handle = None - content_string = None - try: - file_handle = open(text_file, u'r') - content = file_handle.read() - content_string = content.decode(u'utf-8') - except (IOError, UnicodeError): - log.exception(u'Failed to open text file %s' % text_file) - finally: - if file_handle: - file_handle.close() - return content_string - -def str_to_bool(stringvalue): - """ - Convert a string version of a boolean into a real boolean. - - ``stringvalue`` - The string value to examine and convert to a boolean type. - """ - if isinstance(stringvalue, bool): - return stringvalue - return unicode(stringvalue).strip().lower() in (u'true', u'yes', u'y') - -def build_icon(icon): - """ - Build a QIcon instance from an existing QIcon, a resource location, or a - physical file location. If the icon is a QIcon instance, that icon is - simply returned. If not, it builds a QIcon instance from the resource or - file name. - - ``icon`` - The icon to build. This can be a QIcon, a resource string in the form - ``:/resource/file.png``, or a file location like ``/path/to/file.png``. - """ - button_icon = QtGui.QIcon() - if isinstance(icon, QtGui.QIcon): - button_icon = icon - elif isinstance(icon, basestring): - if icon.startswith(u':/'): - button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, - QtGui.QIcon.Off) - else: - button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - elif isinstance(icon, QtGui.QImage): - button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), - QtGui.QIcon.Normal, QtGui.QIcon.Off) - return button_icon - -def context_menu_action(base, icon, text, slot): - """ - Utility method to help build context menus for plugins - - ``base`` - The parent menu to add this menu item to - - ``icon`` - An icon for this action - - ``text`` - The text to display for this action - - ``slot`` - The code to run when this action is triggered - """ - action = QtGui.QAction(text, base) - if icon: - action.setIcon(build_icon(icon)) - QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) - return action - -def context_menu(base, icon, text): - """ - Utility method to help build context menus for plugins - - ``base`` - The parent object to add this menu to - - ``icon`` - An icon for this menu - - ``text`` - The text to display for this menu - """ - action = QtGui.QMenu(text, base) - action.setIcon(build_icon(icon)) - return action - -def context_menu_separator(base): - """ - Add a separator to a context menu - - ``base`` - The menu object to add the separator to - """ - action = QtGui.QAction(u'', base) - action.setSeparator(True) - return action - -def image_to_byte(image): - """ - Resize an image to fit on the current screen for the web and returns - it as a byte stream. - - ``image`` - The image to converted. - """ - byte_array = QtCore.QByteArray() - # use buffer to store pixmap into byteArray - buffie = QtCore.QBuffer(byte_array) - buffie.open(QtCore.QIODevice.WriteOnly) - if isinstance(image, QtGui.QImage): - pixmap = QtGui.QPixmap.fromImage(image) - else: - pixmap = QtGui.QPixmap(image) - pixmap.save(buffie, "PNG") - # convert to base64 encoding so does not get missed! - return byte_array.toBase64() - -def resize_image(image, width, height, background=QtCore.Qt.black): - """ - Resize an image to fit on the current screen. - - ``image`` - The image to resize. - - ``width`` - The new image width. - - ``height`` - The new image height. - - ``background`` - The background colour defaults to black. - - """ - preview = QtGui.QImage(image) - if not preview.isNull(): - # Only resize if different size - if preview.width() == width and preview.height == height: - return preview - preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio, - QtCore.Qt.SmoothTransformation) - realw = preview.width() - realh = preview.height() - # and move it to the centre of the preview space - new_image = QtGui.QImage(width, height, - QtGui.QImage.Format_ARGB32_Premultiplied) - new_image.fill(background) - painter = QtGui.QPainter(new_image) - painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) - return new_image - -def check_item_selected(list_widget, message): - """ - Check if a list item is selected so an action may be performed on it - - ``list_widget`` - The list to check for selected items - - ``message`` - The message to give the user if no item is selected - """ - if not list_widget.selectedIndexes(): - QtGui.QMessageBox.information(list_widget.parent(), - translate('OpenLP.MediaManagerItem', 'No Items Selected'), message) - return False - return True - -def clean_tags(text): - """ - Remove Tags from text for display - """ - text = text.replace(u'
', u'\n') - for tag in html_expands: - text = text.replace(tag[u'start tag'], u'') - text = text.replace(tag[u'end tag'], u'') - return text - -def expand_tags(text): - """ - Expand tags HTML for display - """ - for tag in html_expands: - text = text.replace(tag[u'start tag'], tag[u'start html']) - text = text.replace(tag[u'end tag'], tag[u'end html']) - return text - -from spelltextedit import SpellTextEdit -from eventreceiver import Receiver -from settingsmanager import SettingsManager -from plugin import PluginStatus, Plugin -from pluginmanager import PluginManager -from settingstab import SettingsTab -from serviceitem import ServiceItem -from serviceitem import ServiceItemType -from serviceitem import ItemCapabilities -from htmlbuilder import build_html, build_lyrics_format_css, \ - build_lyrics_outline_css -from toolbar import OpenLPToolbar -from dockwidget import OpenLPDockWidget -from theme import ThemeLevel, ThemeXML -from renderer import Renderer -from rendermanager import RenderManager -from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 4fe278e42..b325f0c6c 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -304,7 +304,7 @@ def expand_tags(text): from spelltextedit import SpellTextEdit from eventreceiver import Receiver from settingsmanager import SettingsManager -from plugin import PluginStatus, StringContent, Plugin +from plugin import PluginStatus, Plugin from pluginmanager import PluginManager from settingstab import SettingsTab from serviceitem import ServiceItem @@ -318,4 +318,4 @@ from theme import ThemeLevel, ThemeXML from renderer import Renderer from rendermanager import RenderManager from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD \ No newline at end of file +from baselistwithdnd import BaseListWithDnD From 9111a1885e9e1508af6028e9003e65dadee7215d Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 23 Sep 2010 21:01:52 +0200 Subject: [PATCH 25/95] add SongBeamer import --- openlp/plugins/songs/forms/songimportform.py | 33 +++++++++++++ .../plugins/songs/forms/songimportwizard.py | 47 +++++++++++++++++-- openlp/plugins/songs/lib/importer.py | 7 ++- 3 files changed, 82 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index c62fa058e..ef655a12a 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -112,6 +112,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): QtCore.QObject.connect(self.ewBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onEWBrowseButtonClicked) + QtCore.QObject.connect(self.songBeamerAddButton, + QtCore.SIGNAL(u'clicked()'), + self.onSongBeamerAddButtonClicked) + QtCore.QObject.connect(self.songBeamerRemoveButton, + QtCore.SIGNAL(u'clicked()'), + self.onSongBeamerRemoveButtonClicked) QtCore.QObject.connect(self.cancelButton, QtCore.SIGNAL(u'clicked(bool)'), self.onCancelButtonClicked) @@ -227,6 +233,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): 'file to import from.')) self.ewBrowseButton.setFocus() return False + elif source_format == SongFormat.SongBeamer: + if self.songBeamerFileListWidget.count() == 0: + QtGui.QMessageBox.critical(self, + translate('SongsPlugin.ImportWizardForm', + 'No SongBeamer File Selected'), + translate('SongsPlugin.ImportWizardForm', + 'You need to add at least one SongBeamer ' + 'file to import from.')) + self.songBeamerAddButton.setFocus() + return False return True elif self.currentId() == 2: # Progress page @@ -342,6 +358,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.ewFilenameEdit ) + def onSongBeamerAddButtonClicked(self): + self.getFiles( + translate('SongsPlugin.ImportWizardForm', + 'Select SongBeamer Files'), + self.songBeamerFileListWidget + ) + + def onSongBeamerRemoveButtonClicked(self): + self.removeSelectedItems(self.songBeamerFileListWidget) + def onCancelButtonClicked(self, checked): """ Stop the import on pressing the cancel button. @@ -373,6 +399,7 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.songsOfFellowshipFileListWidget.clear() self.genericFileListWidget.clear() self.ewFilenameEdit.setText(u'') + self.songBeamerFileListWidget.clear() #self.csvFilenameEdit.setText(u'') def incrementProgressBar(self, status_text, increment=1): @@ -448,6 +475,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): importer = self.plugin.importSongs(SongFormat.EasyWorship, filename=unicode(self.ewFilenameEdit.text()) ) + elif source_format == SongFormat.SongBeamer: + # Import SongBeamer songs + importer = self.plugin.importSongs(SongFormat.SongBeamer, + filenames=self.getListOfFiles( + self.songBeamerFileListWidget) + ) success = importer.do_import() if success: # reload songs diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py index 0fb36cfe7..01f0c3541 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -97,6 +97,7 @@ class Ui_SongImportWizard(object): self.formatComboBox.addItem(u'') self.formatComboBox.addItem(u'') self.formatComboBox.addItem(u'') + self.formatComboBox.addItem(u'') # self.formatComboBox.addItem(u'') self.formatLayout.addWidget(self.formatComboBox) self.formatSpacer = QtGui.QSpacerItem(40, 20, @@ -438,6 +439,42 @@ class Ui_SongImportWizard(object): self.ewLayout.setLayout(0, QtGui.QFormLayout.FieldRole, self.ewFileLayout) self.formatStackedWidget.addWidget(self.ewPage) + # SongBeamer + # Words of Worship + self.songBeamerPage = QtGui.QWidget() + self.songBeamerPage.setObjectName(u'songBeamerPage') + self.songBeamerLayout = QtGui.QVBoxLayout(self.songBeamerPage) + self.songBeamerLayout.setSpacing(8) + self.songBeamerLayout.setMargin(0) + self.songBeamerLayout.setObjectName(u'songBeamerLayout') + self.songBeamerFileListWidget = QtGui.QListWidget( + self.songBeamerPage) + self.songBeamerFileListWidget.setSelectionMode( + QtGui.QAbstractItemView.ExtendedSelection) + self.songBeamerFileListWidget.setObjectName( + u'songBeamerFileListWidget') + self.songBeamerLayout.addWidget(self.songBeamerFileListWidget) + self.songBeamerButtonLayout = QtGui.QHBoxLayout() + self.songBeamerButtonLayout.setSpacing(8) + self.songBeamerButtonLayout.setObjectName( + u'songBeamerButtonLayout') + self.songBeamerAddButton = QtGui.QPushButton( + self.songBeamerPage) + self.songBeamerAddButton.setIcon(openIcon) + self.songBeamerAddButton.setObjectName(u'songBeamerAddButton') + self.songBeamerButtonLayout.addWidget(self.songBeamerAddButton) + self.songBeamerButtonSpacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.songBeamerButtonLayout.addItem(self.songBeamerButtonSpacer) + self.songBeamerRemoveButton = QtGui.QPushButton( + self.songBeamerPage) + self.songBeamerRemoveButton.setIcon(deleteIcon) + self.songBeamerRemoveButton.setObjectName( + u'songBeamerRemoveButton') + self.songBeamerButtonLayout.addWidget( + self.songBeamerRemoveButton) + self.songBeamerLayout.addLayout(self.songBeamerButtonLayout) + self.formatStackedWidget.addWidget(self.songBeamerPage) # Commented out for future use. # self.csvPage = QtGui.QWidget() # self.csvPage.setObjectName(u'CSVPage') @@ -524,6 +561,8 @@ class Ui_SongImportWizard(object): 'Generic Document/Presentation')) self.formatComboBox.setItemText(8, translate('SongsPlugin.ImportWizardForm', 'EasyWorship')) + self.formatComboBox.setItemText(9, + translate('SongsPlugin.ImportWizardForm', 'SongBeamer')) # self.formatComboBox.setItemText(9, # translate('SongsPlugin.ImportWizardForm', 'CSV')) self.openLP2FilenameLabel.setText( @@ -576,10 +615,10 @@ class Ui_SongImportWizard(object): translate('SongsPlugin.ImportWizardForm', 'The generic document/' 'presentation importer has been disabled because OpenLP cannot ' 'find OpenOffice.org on your computer.')) - self.ewFilenameLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.ewBrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + self.songBeamerAddButton.setText( + translate('SongsPlugin.ImportWizardForm', 'Add Files...')) + self.songBeamerRemoveButton.setText( + translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) # self.csvFilenameLabel.setText( # translate('SongsPlugin.ImportWizardForm', 'Filename:')) # self.csvBrowseButton.setText( diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py index d8028db24..63d19b95c 100644 --- a/openlp/plugins/songs/lib/importer.py +++ b/openlp/plugins/songs/lib/importer.py @@ -29,6 +29,7 @@ from olpimport import OpenLPSongImport from wowimport import WowImport from cclifileimport import CCLIFileImport from ewimport import EasyWorshipSongImport +from songbeamerimport import SongBeamerImport # Imports that might fail try: from olp1import import OpenLP1SongImport @@ -64,6 +65,7 @@ class SongFormat(object): Generic = 7 #CSV = 8 EasyWorship = 8 + SongBeamer = 9 @staticmethod def get_class(format): @@ -89,6 +91,8 @@ class SongFormat(object): return CCLIFileImport elif format == SongFormat.EasyWorship: return EasyWorshipSongImport + elif format == SongFormat.SongBeamer: + return SongBeamerImport # else: return None @@ -106,7 +110,8 @@ class SongFormat(object): SongFormat.CCLI, SongFormat.SongsOfFellowship, SongFormat.Generic, - SongFormat.EasyWorship + SongFormat.EasyWorship, + SongFormat.SongBeamer ] @staticmethod From 90fd6dec2012dfd8c71caea82418a773141802c8 Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 23 Sep 2010 21:02:18 +0200 Subject: [PATCH 26/95] add SongBeamer import --- openlp/plugins/songs/lib/songbeamerimport.py | 197 +++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 openlp/plugins/songs/lib/songbeamerimport.py diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py new file mode 100644 index 000000000..eb709594c --- /dev/null +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -0,0 +1,197 @@ +# -*- 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, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +The :mod:`songbeamerimport` module provides the functionality for importing + SongBeamer songs into the OpenLP database. +""" +import os +import logging + +from openlp.plugins.songs.lib.songimport import SongImport + +log = logging.getLogger(__name__) + +class SongBeamerImport(SongImport): + """ + """ + + def __init__(self, master_manager, **kwargs): + """ + Initialise the import. + + ``master_manager`` + The song manager for the running OpenLP installation. + """ + SongImport.__init__(self, master_manager) + self.master_manager = master_manager + if kwargs.has_key(u'filename'): + self.import_source = kwargs[u'filename'] + if kwargs.has_key(u'filenames'): + self.import_source = kwargs[u'filenames'] + log.debug(self.import_source) + + def do_import(self): + """ + Recieve a single file, or a list of files to import. + """ + + if isinstance(self.import_source, list): + self.import_wizard.importProgressBar.setMaximum( + len(self.import_source)) + for file in self.import_source: + # TODO: check that it is a valid SongBeamer file + self.current_verse = u'' + self.current_verse_type = u'V' + self.file_name = os.path.split(file)[1] + self.import_wizard.incrementProgressBar( + "Importing %s" % (self.file_name), 0) + self.songFile = open(file, 'r') + self.songData = self.songFile.read().decode('utf8') + self.songData = self.songData.splitlines() + self.songFile.close() + for line in self.songData: + if line.startswith('#'): + log.debug(u'find tag: %s' % line) + if not self.parse_tags(line): + return False + elif line.startswith('---'): + log.debug(u'find ---') + if len(self.current_verse) > 0: + self.add_verse(self.current_verse, self.current_verse_type) + self.current_verse = u'' + self.current_verse_type = u'V' + self.read_verse = True + self.verse_start = True + elif self.read_verse: + if self.verse_start: + self.check_verse_marks(line) + self.verse_start = False + else: + self.current_verse += u'%s\n' % line + if len(self.current_verse) > 0: + self.add_verse(self.current_verse, self.current_verse_type) + self.finish() + self.import_wizard.incrementProgressBar( + "Importing %s" % (self.file_name)) + return True + + def parse_tags(self, line): + tag_val = line.split('=') + if len(tag_val[0]) == 0: + return True + if tag_val[0] == '#(c)': + self.add_copyright(tag_val[1]) + elif tag_val[0] == '#AddCopyrightInfo': + pass + elif tag_val[0] == '#Author': + #TODO split Authors + self.add_author(tag_val[1]) + elif tag_val[0] == '#BackgroundImage': + pass + elif tag_val[0] == '#Bible': + pass + elif tag_val[0] == '#Categories': + pass + elif tag_val[0] == '#CCLI': + pass + elif tag_val[0] == '#Chords': + pass + elif tag_val[0] == '#ChurchSongID': + pass + elif tag_val[0] == '#ColorChords': + pass + elif tag_val[0] == '#Comments': + pass + elif tag_val[0] == '#Editor': + pass + elif tag_val[0] == '#Font': + pass + elif tag_val[0] == '#FontLang2': + pass + elif tag_val[0] == '#FontSize': + pass + elif tag_val[0] == '#Format': + pass + elif tag_val[0] == '#Format_PreLine': + pass + elif tag_val[0] == '#Format_PrePage': + pass + elif tag_val[0] == '#ID': + pass + elif tag_val[0] == '#Key': + pass + elif tag_val[0] == '#Keywords': + pass + elif tag_val[0] == '#LangCount': + pass + elif tag_val[0] == '#Melody': + #TODO split Authors + self.add_author(tag_val[1]) + elif tag_val[0] == '#NatCopyright': + pass + elif tag_val[0] == '#OTitle': + pass + elif tag_val[0] == '#OutlineColor': + pass + elif tag_val[0] == '#OutlinedFont': + pass + elif tag_val[0] == '#QuickFind': + pass + elif tag_val[0] == '#Rights': + pass + elif tag_val[0] == '#Songbook': + pass + elif tag_val[0] == '#Speed': + pass + elif tag_val[0] == '#TextAlign': + pass + elif tag_val[0] == '#Title': + self.title = u'%s' % tag_val[1] + elif tag_val[0] == '#TitleAlign': + pass + elif tag_val[0] == '#TitleFontSize': + pass + elif tag_val[0] == '#TitleLang2': + pass + elif tag_val[0] == '#TitleLang3': + pass + elif tag_val[0] == '#TitleLang4': + pass + elif tag_val[0] == '#Translation': + pass + elif tag_val[0] == '#Transpose': + pass + elif tag_val[0] == '#TransposeAccidental': + pass + elif tag_val[0] == '#Version': + pass + else: + pass + return True + + + def check_verse_marks(self, line): + pass From 53478cb707c9537088d598908109558f3ea1eae3 Mon Sep 17 00:00:00 2001 From: rimach Date: Fri, 24 Sep 2010 06:16:48 +0200 Subject: [PATCH 27/95] bugfixing --- openlp/plugins/songs/lib/songbeamerimport.py | 35 ++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index eb709594c..02c989d22 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -100,7 +100,8 @@ class SongBeamerImport(SongImport): def parse_tags(self, line): tag_val = line.split('=') - if len(tag_val[0]) == 0: + if len(tag_val[0]) == 0 or \ + len(tag_val[1]) == 0: return True if tag_val[0] == '#(c)': self.add_copyright(tag_val[1]) @@ -194,4 +195,34 @@ class SongBeamerImport(SongImport): def check_verse_marks(self, line): - pass + if line.startswith('Refrain') or \ + line.startswith('Chorus'): + self.current_verse_type = u'V' + elif line.startswith('Vers') or \ + line.startswith('Verse') or \ + line.startswith('Strophe'): + self.current_verse_type = u'V' + elif line.startswith('Intro'): + pass + elif line.startswith('Coda'): + pass + elif line.startswith('Ending'): + pass + elif line.startswith('Bridge'): + pass + elif line.startswith('Interlude'): + pass + elif line.startswith('Zwischenspiel'): + pass + elif line.startswith('Pre-Chorus'): + pass + elif line.startswith('Pre-Refrain'): + pass + elif line.startswith('Pre-Bridge'): + pass + elif line.startswith('Pre-Coda'): + pass + elif line.startswith('Unbekannt'): + pass + elif line.startswith('Unknown'): + pass From 2f1134556f168e207fe50cad209d7cebacc07970 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 26 Sep 2010 19:17:29 +0200 Subject: [PATCH 28/95] veses/chapters comboBoxes now behave differently --- openlp/plugins/bibles/lib/mediaitem.py | 79 ++++++++++++++++---------- 1 file changed, 50 insertions(+), 29 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index cc57d973e..617fdb09e 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -407,21 +407,21 @@ class BibleMediaItem(MediaManagerItem): self.initialiseChapterVerse(bible, book[u'name'], book[u'chapters']) - def initialiseChapterVerse(self, bible, book, chapters): + def initialiseChapterVerse(self, bible, book, chapter_count): log.debug(u'initialiseChapterVerse %s, %s', bible, book) - self.chapters_from = chapters - self.verses = self.parent.manager.get_verse_count(bible, book, 1) - if self.verses == 0: + self.chapter_count = chapter_count + verse_count = self.parent.manager.get_verse_count(bible, book, 1) + if verse_count == 0: self.AdvancedSearchButton.setEnabled(False) self.AdvancedMessage.setText( translate('BiblesPlugin.MediaItem', 'Bible not fully loaded.')) else: self.AdvancedSearchButton.setEnabled(True) self.AdvancedMessage.setText(u'') - self.adjustComboBox(1, self.chapters_from, self.AdvancedFromChapter) - self.adjustComboBox(1, self.chapters_from, self.AdvancedToChapter) - self.adjustComboBox(1, self.verses, self.AdvancedFromVerse) - self.adjustComboBox(1, self.verses, self.AdvancedToVerse) + self.adjustComboBox(1, self.chapter_count, self.AdvancedFromChapter) + self.adjustComboBox(1, self.chapter_count, self.AdvancedToChapter) + self.adjustComboBox(1, verse_count, self.AdvancedFromVerse) + self.adjustComboBox(1, verse_count, self.AdvancedToVerse) def onAdvancedVersionComboBox(self): self.initialiseBible( @@ -435,44 +435,65 @@ class BibleMediaItem(MediaManagerItem): self.AdvancedBookComboBox.itemData(item).toInt()[0]) def onAdvancedFromVerse(self): - frm = int(self.AdvancedFromVerse.currentText()) - chapter_frm = int(self.AdvancedFromChapter.currentText()) + chapter_from = int(self.AdvancedFromChapter.currentText()) chapter_to = int(self.AdvancedToChapter.currentText()) - if chapter_frm == chapter_to: + if chapter_from == chapter_to: bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) - verses = self.parent.manager.get_verse_count(bible, book, chapter_to) - self.adjustComboBox(frm, verses, self.AdvancedToVerse) + verse_from = int(self.AdvancedFromVerse.currentText()) + verse_count = self.parent.manager.get_verse_count(bible, book, + chapter_to) + self.adjustComboBox(verse_from, verse_count, + self.AdvancedToVerse, True) def onAdvancedToChapter(self): - chapter_frm = int(self.AdvancedFromChapter.currentText()) - chapter_to = int(self.AdvancedToChapter.currentText()) bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) - verses = self.parent.manager.get_verse_count(bible, book, chapter_to) - if chapter_frm != chapter_to: - self.adjustComboBox(1, verses, self.AdvancedToVerse) + chapter_from = int(self.AdvancedFromChapter.currentText()) + chapter_to = int(self.AdvancedToChapter.currentText()) + verse_from = int(self.AdvancedFromVerse.currentText()) + verse_to = int(self.AdvancedToVerse.currentText()) + verse_count = self.parent.manager.get_verse_count(bible, book, + chapter_to) + if chapter_from == chapter_to and verse_from > verse_to: + self.adjustComboBox(verse_from, verse_count, self.AdvancedToVerse) else: - frm = int(self.AdvancedFromVerse.currentText()) - to = int(self.AdvancedToVerse.currentText()) - if to < frm: - self.adjustComboBox(frm, verses, self.AdvancedToVerse) + self.adjustComboBox(1, verse_count, self.AdvancedToVerse) def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) - chapter_frm = int(self.AdvancedFromChapter.currentText()) - self.adjustComboBox(chapter_frm, self.chapters_from, - self.AdvancedToChapter) - verse = self.parent.manager.get_verse_count(bible, book, chapter_frm) - self.adjustComboBox(1, verse, self.AdvancedToVerse) - self.adjustComboBox(1, verse, self.AdvancedFromVerse) + chapter_from = int(self.AdvancedFromChapter.currentText()) + chapter_to = int(self.AdvancedToChapter.currentText()) + verse_count = self.parent.manager.get_verse_count(bible, book, + chapter_from) + self.adjustComboBox(1, verse_count, self.AdvancedFromVerse) + if chapter_from > chapter_to: + self.adjustComboBox(1, verse_count, self.AdvancedToVerse) + self.adjustComboBox(chapter_from, self.chapter_count, + self.AdvancedToChapter) + elif chapter_from == chapter_to: + self.adjustComboBox(chapter_from, self.chapter_count, + self.AdvancedToChapter) + self.adjustComboBox(1, verse_count, self.AdvancedToVerse, True) + else: + self.adjustComboBox(chapter_from, self.chapter_count, + self.AdvancedToChapter, True) - def adjustComboBox(self, range_from, range_to, combo): + def adjustComboBox(self, range_from, range_to, combo, restore=False): + """ + ``restore`` + If True, then the combo's currentText will be restored after + adjusting (if possible). + """ log.debug(u'adjustComboBox %s, %s, %s', combo, range_from, range_to) + if restore: + oldText = unicode(combo.currentText()) combo.clear() for i in range(int(range_from), int(range_to) + 1): combo.addItem(unicode(i)) + if restore and combo.findText(oldText) != -1: + combo.setCurrentIndex(combo.findText(oldText)) def onAdvancedSearchButton(self): log.debug(u'Advanced Search Button pressed') From 52e572e94d6e05132d655e6bfc6f8ac96b0e5831 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 26 Sep 2010 19:23:58 +0200 Subject: [PATCH 29/95] Naming Conventions --- openlp/plugins/bibles/lib/mediaitem.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 617fdb09e..92eb200ee 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -488,12 +488,12 @@ class BibleMediaItem(MediaManagerItem): """ log.debug(u'adjustComboBox %s, %s, %s', combo, range_from, range_to) if restore: - oldText = unicode(combo.currentText()) + old_text = unicode(combo.currentText()) combo.clear() for i in range(int(range_from), int(range_to) + 1): combo.addItem(unicode(i)) - if restore and combo.findText(oldText) != -1: - combo.setCurrentIndex(combo.findText(oldText)) + if restore and combo.findText(old_text) != -1: + combo.setCurrentIndex(combo.findText(old_text)) def onAdvancedSearchButton(self): log.debug(u'Advanced Search Button pressed') From f265c552ea3ede066b5e80c2108b159aa83cd91f Mon Sep 17 00:00:00 2001 From: rimach Date: Mon, 27 Sep 2010 20:15:55 +0200 Subject: [PATCH 30/95] replace strings with text_strings --- openlp/core/lib/__init__.py | 2 +- openlp/core/lib/mediamanageritem.py | 2 +- openlp/core/lib/plugin.py | 12 +- openlp/core/lib/pluginmanager.py | 2 +- openlp/core/ui/mainwindow.py | 12 +- openlp/core/ui/mediadockmanager.py | 2 +- openlp/core/ui/pluginform.py | 2 +- openlp/core/utils/languagemanager.py | 22 +- openlp/plugins/alerts/alertsplugin.py | 6 +- openlp/plugins/alerts/forms/alertform.py | 2 +- openlp/plugins/bibles/bibleplugin.py | 20 +- openlp/plugins/custom/customplugin.py | 22 +- openlp/plugins/custom/lib/mediaitem.py | 2 +- openlp/plugins/images/imageplugin.py | 20 +- openlp/plugins/images/lib/mediaitem.py | 2 +- openlp/plugins/media/lib/mediaitem.py | 2 +- openlp/plugins/media/mediaplugin.py | 20 +- openlp/plugins/presentations/lib/mediaitem.py | 2 +- .../presentations/presentationplugin.py | 16 +- openlp/plugins/remotes/remoteplugin.py | 6 +- openlp/plugins/songs/lib/mediaitem.py | 2 +- openlp/plugins/songs/lib/test/test3.opensong | 0 openlp/plugins/songs/songsplugin.py | 18 +- openlp/plugins/songusage/songusageplugin.py | 6 +- resources/i18n/af.ts | 2747 ++++++++-------- resources/i18n/de.ts | 2001 ++++++------ resources/i18n/en.ts | 1102 +++---- resources/i18n/en_GB.ts | 2748 ++++++++-------- resources/i18n/en_ZA.ts | 1369 +++----- resources/i18n/es.ts | 1202 +++---- resources/i18n/et.ts | 2798 ++++++++--------- resources/i18n/hu.ts | 2727 ++++++++-------- resources/i18n/ko.ts | 1150 +++---- resources/i18n/nb.ts | 1394 +++----- resources/i18n/pt_BR.ts | 2165 ++++++------- resources/i18n/sv.ts | 1152 +++---- resources/openlp.desktop | 1 - 37 files changed, 9659 insertions(+), 13099 deletions(-) mode change 100755 => 100644 openlp/plugins/songs/lib/test/test3.opensong diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index b325f0c6c..1d753264e 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -304,7 +304,7 @@ def expand_tags(text): from spelltextedit import SpellTextEdit from eventreceiver import Receiver from settingsmanager import SettingsManager -from plugin import PluginStatus, Plugin +from plugin import PluginStatus, StringContent, Plugin from pluginmanager import PluginManager from settingstab import SettingsTab from serviceitem import ServiceItem diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 7f916e157..71d364b2e 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -530,4 +530,4 @@ class MediaManagerItem(QtGui.QWidget): if self.generateSlideData(service_item, item): return service_item else: - return None \ No newline at end of file + return None diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index c80fdfadd..8069d9a71 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -129,8 +129,8 @@ class Plugin(QtCore.QObject): """ QtCore.QObject.__init__(self) self.name = name - self.strings = {} - self.setPluginStrings() + self.text_strings = {} + self.setPluginTextStrings() if version: self.version = version self.settingsSection = self.name.lower() @@ -305,13 +305,13 @@ class Plugin(QtCore.QObject): pass def getString(self, name): - if name in self.strings: - return self.strings[name] + if name in self.text_strings: + return self.text_strings[name] else: # do something here? return None - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin - """ + """ \ No newline at end of file diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index 14bf48566..ff136de54 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -219,4 +219,4 @@ class PluginManager(object): for plugin in self.plugins: if plugin.isActive(): plugin.finalise() - log.info(u'Finalisation Complete for %s ' % plugin.name) \ No newline at end of file + log.info(u'Finalisation Complete for %s ' % plugin.name) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 124b4042f..730bc9ca1 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -175,19 +175,13 @@ class Ui_MainWindow(object): QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock) # Create the menu items self.FileNewItem = QtGui.QAction(MainWindow) - self.FileNewItem.setIcon( - self.ServiceManagerContents.toolbar.getIconFromTitle( - translate('OpenLP.MainWindow', 'New Service'))) + self.FileNewItem.setIcon(build_icon(u':/general/general_new.png')) self.FileNewItem.setObjectName(u'FileNewItem') self.FileOpenItem = QtGui.QAction(MainWindow) - self.FileOpenItem.setIcon( - self.ServiceManagerContents.toolbar.getIconFromTitle( - translate('OpenLP.MainWindow', 'Open Service'))) + self.FileOpenItem.setIcon(build_icon(u':/general/general_open.png')) self.FileOpenItem.setObjectName(u'FileOpenItem') self.FileSaveItem = QtGui.QAction(MainWindow) - self.FileSaveItem.setIcon( - self.ServiceManagerContents.toolbar.getIconFromTitle( - translate('OpenLP.MainWindow', 'Save Service'))) + self.FileSaveItem.setIcon(build_icon(u':/general/general_save.png')) self.FileSaveItem.setObjectName(u'FileSaveItem') self.FileSaveAsItem = QtGui.QAction(MainWindow) self.FileSaveAsItem.setObjectName(u'FileSaveAsItem') diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index 7d5b6aa2a..c49d7fab3 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -85,4 +85,4 @@ class MediaDockManager(object): if self.media_dock.widget(dock_index).settingsSection == \ media_item.plugin.name.lower(): self.media_dock.widget(dock_index).hide() - self.media_dock.removeItem(dock_index) \ No newline at end of file + self.media_dock.removeItem(dock_index) diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index 56fe94b3f..cbde28ae7 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -141,4 +141,4 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): translate('OpenLP.PluginForm', '%s (Disabled)')) name_string = self.activePlugin.getString(StringContent.Name) self.pluginListWidget.currentItem().setText( - status_text % name_string[u'plural']) \ No newline at end of file + status_text % name_string[u'plural']) diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 36e6330a6..000328d50 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -82,7 +82,8 @@ class LanguageManager(object): """ translator = QtCore.QTranslator() translator.load(qm_file) - return translator.translate('OpenLP.MainWindow', 'English') + return translator.translate('OpenLP.MainWindow', 'English', + 'Please add the name of your language here') @staticmethod def get_language(): @@ -107,12 +108,13 @@ class LanguageManager(object): ``action`` The language menu option """ - action_name = u'%s' % action.objectName() - qm_list = LanguageManager.get_qm_list() - if LanguageManager.auto_language: - language = u'[%s]' % qm_list[action_name] - else: + language = u'en' + if action: + action_name = u'%s' % action.objectName() + qm_list = LanguageManager.get_qm_list() language = u'%s' % qm_list[action_name] + if LanguageManager.auto_language: + language = u'[%s]' % language QtCore.QSettings().setValue( u'general/language', QtCore.QVariant(language)) log.info(u'Language file: \'%s\' written to conf file' % language) @@ -129,9 +131,11 @@ class LanguageManager(object): LanguageManager.__qm_list__ = {} qm_files = LanguageManager.find_qm_files() for counter, qmf in enumerate(qm_files): - name = unicode(qmf).split(u'.')[0] - LanguageManager.__qm_list__[u'%#2i %s' % (counter + 1, - LanguageManager.language_name(qmf))] = name + reg_ex = QtCore.QRegExp("^.*i18n/(.*).qm") + if reg_ex.exactMatch(qmf): + name = u'%s' % reg_ex.cap(1) + LanguageManager.__qm_list__[u'%#2i %s' % (counter + 1, + LanguageManager.language_name(qmf))] = name @staticmethod def get_qm_list(): diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 4577fc76e..2ae117aaa 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -102,16 +102,16 @@ class AlertsPlugin(Plugin): 'on the display screen') return about_text - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('AlertsPlugin', 'Alert'), u'plural': translate('AlertsPlugin', 'Alerts') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('AlertsPlugin', 'Alerts') } \ No newline at end of file diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 730d5ebc8..7859417f7 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -155,4 +155,4 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): text = text.replace(u'<>', unicode(self.ParameterEdit.text())) self.parent.alertsmanager.displayAlert(text) return True - return False \ No newline at end of file + return False diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 018f15c3e..6d3406381 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -118,52 +118,52 @@ class BiblePlugin(Plugin): """ self.settings_tab.bible_theme = newTheme - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('BiblesPlugin', 'Bible'), u'plural': translate('BiblesPlugin', 'Bibles') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('BiblesPlugin', 'Bibles') } # Middle Header Bar ## Import Button ## - self.strings[StringContent.Import] = { + self.text_strings[StringContent.Import] = { u'title': translate('BiblesPlugin', 'Import'), u'tooltip': translate('BiblesPlugin', 'Import a Bible') } ## New Button ## - self.strings[StringContent.New] = { + self.text_strings[StringContent.New] = { u'title': translate('BiblesPlugin', 'Add'), u'tooltip': translate('BiblesPlugin', 'Add a new Bible') } ## Edit Button ## - self.strings[StringContent.Edit] = { + self.text_strings[StringContent.Edit] = { u'title': translate('BiblesPlugin', 'Edit'), u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') } ## Delete Button ## - self.strings[StringContent.Delete] = { + self.text_strings[StringContent.Delete] = { u'title': translate('BiblesPlugin', 'Delete'), u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') } ## Preview ## - self.strings[StringContent.Preview] = { + self.text_strings[StringContent.Preview] = { u'title': translate('BiblesPlugin', 'Preview'), u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') } ## Live Button ## - self.strings[StringContent.Live] = { + self.text_strings[StringContent.Live] = { u'title': translate('BiblesPlugin', 'Live'), u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') } ## Add to service Button ## - self.strings[StringContent.Service] = { + self.text_strings[StringContent.Service] = { u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') } \ No newline at end of file diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 081e036b0..67644f749 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -98,57 +98,57 @@ class CustomPlugin(Plugin): custom.theme_name = newTheme self.custommanager.save_object(custom) - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('CustomsPlugin', 'Custom'), u'plural': translate('CustomsPlugin', 'Customs') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('CustomsPlugin', 'Customs') } # Middle Header Bar ## Import Button ## - self.strings[StringContent.Import] = { + self.text_strings[StringContent.Import] = { u'title': translate('CustomsPlugin', 'Import'), u'tooltip': translate('CustomsPlugin', 'Import a Custom') } ## Load Button ## - self.strings[StringContent.Load] = { + self.text_strings[StringContent.Load] = { u'title': translate('CustomsPlugin', 'Load'), u'tooltip': translate('CustomsPlugin', 'Load a new Custom') } ## New Button ## - self.strings[StringContent.New] = { + self.text_strings[StringContent.New] = { u'title': translate('CustomsPlugin', 'Add'), u'tooltip': translate('CustomsPlugin', 'Add a new Custom') } ## Edit Button ## - self.strings[StringContent.Edit] = { + self.text_strings[StringContent.Edit] = { u'title': translate('CustomsPlugin', 'Edit'), u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') } ## Delete Button ## - self.strings[StringContent.Delete] = { + self.text_strings[StringContent.Delete] = { u'title': translate('CustomsPlugin', 'Delete'), u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') } ## Preview ## - self.strings[StringContent.Preview] = { + self.text_strings[StringContent.Preview] = { u'title': translate('CustomsPlugin', 'Preview'), u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') } ## Live Button ## - self.strings[StringContent.Live] = { + self.text_strings[StringContent.Live] = { u'title': translate('CustomsPlugin', 'Live'), u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') } ## Add to service Button ## - self.strings[StringContent.Service] = { + self.text_strings[StringContent.Service] = { u'title': translate('CustomsPlugin', 'Service'), u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') } \ No newline at end of file diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 3e398a770..dd26883e8 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -181,4 +181,4 @@ class CustomMediaItem(MediaManagerItem): else: raw_footer.append(u'') service_item.raw_footer = raw_footer - return True \ No newline at end of file + return True diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index d0ef63156..d7e6d1a08 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -58,52 +58,52 @@ class ImagePlugin(Plugin): 'provided by the theme.') return about_text - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('ImagePlugin', 'Image'), u'plural': translate('ImagePlugin', 'Images') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('ImagePlugin', 'Images') } # Middle Header Bar ## Load Button ## - self.strings[StringContent.Load] = { + self.text_strings[StringContent.Load] = { u'title': translate('ImagePlugin', 'Load'), u'tooltip': translate('ImagePlugin', 'Load a new Image') } ## New Button ## - self.strings[StringContent.New] = { + self.text_strings[StringContent.New] = { u'title': translate('ImagePlugin', 'Add'), u'tooltip': translate('ImagePlugin', 'Add a new Image') } ## Edit Button ## - self.strings[StringContent.Edit] = { + self.text_strings[StringContent.Edit] = { u'title': translate('ImagePlugin', 'Edit'), u'tooltip': translate('ImagePlugin', 'Edit the selected Image') } ## Delete Button ## - self.strings[StringContent.Delete] = { + self.text_strings[StringContent.Delete] = { u'title': translate('ImagePlugin', 'Delete'), u'tooltip': translate('ImagePlugin', 'Delete the selected Image') } ## Preview ## - self.strings[StringContent.Preview] = { + self.text_strings[StringContent.Preview] = { u'title': translate('ImagePlugin', 'Preview'), u'tooltip': translate('ImagePlugin', 'Preview the selected Image') } ## Live Button ## - self.strings[StringContent.Live] = { + self.text_strings[StringContent.Live] = { u'title': translate('ImagePlugin', 'Live'), u'tooltip': translate('ImagePlugin', 'Send the selected Image live') } ## Add to service Button ## - self.strings[StringContent.Service] = { + self.text_strings[StringContent.Service] = { u'title': translate('ImagePlugin', 'Service'), u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') } \ No newline at end of file diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index bdffade2b..82fc434d0 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -190,4 +190,4 @@ class ImageMediaItem(MediaManagerItem): self.resetButton.setVisible(True) def onPreviewClick(self): - MediaManagerItem.onPreviewClick(self) \ No newline at end of file + MediaManagerItem.onPreviewClick(self) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 1b9cc7b27..88c8ea282 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -157,4 +157,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) \ No newline at end of file + self.listView.addItem(item_name) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 23cce3056..d6ef87178 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -77,52 +77,52 @@ class MediaPlugin(Plugin): '
The media plugin provides playback of audio and video.') return about_text - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('MediaPlugin', 'Media'), u'plural': translate('MediaPlugin', 'Media') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('MediaPlugin', 'Media') } # Middle Header Bar ## Load Button ## - self.strings[StringContent.Load] = { + self.text_strings[StringContent.Load] = { u'title': translate('MediaPlugin', 'Load'), u'tooltip': translate('MediaPlugin', 'Load a new Media') } ## New Button ## - self.strings[StringContent.New] = { + self.text_strings[StringContent.New] = { u'title': translate('MediaPlugin', 'Add'), u'tooltip': translate('MediaPlugin', 'Add a new Media') } ## Edit Button ## - self.strings[StringContent.Edit] = { + self.text_strings[StringContent.Edit] = { u'title': translate('MediaPlugin', 'Edit'), u'tooltip': translate('MediaPlugin', 'Edit the selected Media') } ## Delete Button ## - self.strings[StringContent.Delete] = { + self.text_strings[StringContent.Delete] = { u'title': translate('MediaPlugin', 'Delete'), u'tooltip': translate('MediaPlugin', 'Delete the selected Media') } ## Preview ## - self.strings[StringContent.Preview] = { + self.text_strings[StringContent.Preview] = { u'title': translate('MediaPlugin', 'Preview'), u'tooltip': translate('MediaPlugin', 'Preview the selected Media') } ## Live Button ## - self.strings[StringContent.Live] = { + self.text_strings[StringContent.Live] = { u'title': translate('MediaPlugin', 'Live'), u'tooltip': translate('MediaPlugin', 'Send the selected Media live') } ## Add to service Button ## - self.strings[StringContent.Service] = { + self.text_strings[StringContent.Service] = { u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') } \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index a07e2f933..e6f456e5c 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -293,4 +293,4 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled(): if filetype in self.controllers[controller].alsosupports: return controller - return None \ No newline at end of file + return None diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 6e1281dae..2abb01138 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -145,42 +145,42 @@ class PresentationPlugin(Plugin): 'available to the user in a drop down box.') return about_text - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('PresentationPlugin', 'Presentation'), u'plural': translate('PresentationPlugin', 'Presentations') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('PresentationPlugin', 'Presentations') } # Middle Header Bar ## Load Button ## - self.strings[StringContent.Load] = { + self.text_strings[StringContent.Load] = { u'title': translate('PresentationPlugin', 'Load'), u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') } ## Delete Button ## - self.strings[StringContent.Delete] = { + self.text_strings[StringContent.Delete] = { u'title': translate('PresentationPlugin', 'Delete'), u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') } ## Preview ## - self.strings[StringContent.Preview] = { + self.text_strings[StringContent.Preview] = { u'title': translate('PresentationPlugin', 'Preview'), u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') } ## Live Button ## - self.strings[StringContent.Live] = { + self.text_strings[StringContent.Live] = { u'title': translate('PresentationPlugin', 'Live'), u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') } ## Add to service Button ## - self.strings[StringContent.Service] = { + self.text_strings[StringContent.Service] = { u'title': translate('PresentationPlugin', 'Service'), u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') } \ No newline at end of file diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 4efed2c9d..ae52379ab 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -78,16 +78,16 @@ class RemotesPlugin(Plugin): 'browser or through the remote API.') return about_text - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('RemotePlugin', 'Remote'), u'plural': translate('RemotePlugin', 'Remotes') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('RemotePlugin', 'Remotes') } \ No newline at end of file diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 3e7d5d659..a794ea1f5 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -368,4 +368,4 @@ class SongMediaItem(MediaManagerItem): service_item.audit = [ song.title, author_audit, song.copyright, unicode(song.ccli_number) ] - return True \ No newline at end of file + return True diff --git a/openlp/plugins/songs/lib/test/test3.opensong b/openlp/plugins/songs/lib/test/test3.opensong old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 89b6cca23..bd5c3fb45 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -149,47 +149,47 @@ class SongsPlugin(Plugin): importer.register(self.mediaItem.import_wizard) return importer - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('SongsPlugin', 'Song'), u'plural': translate('SongsPlugin', 'Songs') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('SongsPlugin', 'Songs') } # Middle Header Bar ## New Button ## - self.strings[StringContent.New] = { + self.text_strings[StringContent.New] = { u'title': translate('SongsPlugin', 'Add'), u'tooltip': translate('SongsPlugin', 'Add a new Song') } ## Edit Button ## - self.strings[StringContent.Edit] = { + self.text_strings[StringContent.Edit] = { u'title': translate('SongsPlugin', 'Edit'), u'tooltip': translate('SongsPlugin', 'Edit the selected Song') } ## Delete Button ## - self.strings[StringContent.Delete] = { + self.text_strings[StringContent.Delete] = { u'title': translate('SongsPlugin', 'Delete'), u'tooltip': translate('SongsPlugin', 'Delete the selected Song') } ## Preview ## - self.strings[StringContent.Preview] = { + self.text_strings[StringContent.Preview] = { u'title': translate('SongsPlugin', 'Preview'), u'tooltip': translate('SongsPlugin', 'Preview the selected Song') } ## Live Button ## - self.strings[StringContent.Live] = { + self.text_strings[StringContent.Live] = { u'title': translate('SongsPlugin', 'Live'), u'tooltip': translate('SongsPlugin', 'Send the selected Song live') } ## Add to service Button ## - self.strings[StringContent.Service] = { + self.text_strings[StringContent.Service] = { u'title': translate('SongsPlugin', 'Service'), u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') } \ No newline at end of file diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index e2ff2adae..cd3689095 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -163,16 +163,16 @@ class SongUsagePlugin(Plugin): 'services.') return about_text - def setPluginStrings(self): + def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin """ ## Name PluginList ## - self.strings[StringContent.Name] = { + self.text_strings[StringContent.Name] = { u'singular': translate('SongUsagePlugin', 'SongUsage'), u'plural': translate('SongUsagePlugin', 'SongUsage') } ## Name for MediaDockManager, SettingsManager ## - self.strings[StringContent.VisibleName] = { + self.text_strings[StringContent.VisibleName] = { u'title': translate('SongUsagePlugin', 'SongUsage') } \ No newline at end of file diff --git a/resources/i18n/af.ts b/resources/i18n/af.ts index e0cf10b78..58b6e6eff 100644 --- a/resources/i18n/af.ts +++ b/resources/i18n/af.ts @@ -1,31 +1,22 @@ - + + AlertsPlugin &Alert - W&aarskuwing + W&aarskuwing Show an alert message. - + Vertoon 'n waarskuwing boodskap. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - Waarskuwings + <strong>Waarskuwing Mini-program</strong><br/>Die waarskuwing mini-program beheer die vertoning van moederskamer inligting op die vertoon skerm @@ -33,57 +24,57 @@ Alert Message - Waarskuwing Boodskap + Waarskuwing Boodskap Alert &text: - + Waarskuwing &teks: &Parameter(s): - + &Parameter(s): &New - &Nuwe + &Nuwe &Save - &Stoor + &Stoor &Delete - + Wis ui&t Displ&ay - + V&ertoon Display && Cl&ose - + Vert&oon && Maak toe &Close - + Maa&k toe New Alert - + Nuwe Waarskuwing You haven't specified any text for your alert. Please type in some text before clicking New. - + Daar is geen teks vir die waarskuwing gespesifiseer nie. Tik asseblief teks in voordat 'n nuwe een bygevoeg word. @@ -91,7 +82,7 @@ Alert message created and displayed. - + Waarskuwing boodskap geskep en vertoon. @@ -99,77 +90,90 @@ Alerts - Waarskuwings + Waarskuwings Font - Skrif + Skrif Font name: - + Skrif naam: Font color: - + Skrif kleur: Background color: - + Agtergrond kleur: Font size: - + Skrif grootte: pt - pt + pt Alert timeout: - Waarskuwing tydgrens: + Waarskuwing verstreke-tyd: s - s + s Location: - Ligging: + Ligging: Preview - Voorskou + Voorskou OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 Top - + Bo Middle - Middel + Middel Bottom - Onder + Onder + + + + BiblePlugin.MediaItem + + + Error + Fout + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + Enkel en dubbel bybel verse kan nie gekombineer word nie. Wis soek resultate uit en begin 'n nuwe soektog? @@ -177,92 +181,12 @@ &Bible - &Bybel + &Bybel <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - - - Bible - Bybel - - - - Bibles - Bybels - - - - Import - Invoer - - - - Import a Bible - - - - - Add - Byvoeg - - - - Add a new Bible - - - - - Edit - Redigeer - - - - Edit the selected Bible - - - - - Delete - - - - - Delete the selected Bible - - - - - Preview - Voorskou - - - - Preview the selected Bible - - - - - Live - Regstreeks - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Bybel Mini-program</strong><br/>Die Bybel mini-program verskaf die taak om Bybel verse vanaf verskillende bronne tydens die diens te vertoon. @@ -270,12 +194,12 @@ Book not found - + Boek nie gevind nie The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + Die aangevraagde boek kon nie in hierdie Bybel gevind word nie. Gaan asseblief spelling na en sien dat hierdie 'n volledige Bybel is instede van een testament. @@ -283,11 +207,11 @@ Scripture Reference Error - + Skrif Verwysing Fout - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -296,7 +220,15 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Die skrif verwysing word óf nie ondersteun deur OpenLP nie, óf is ongeldig. Maak asseblief seker die verwysing stem ooreen met een van die volgende patrone: + +Boek Hoofstuk +Boek Hoofstuk-Hoofstuk +Boek Hoofstuk:Vers-Vers +Boek Hoofstuk:Vers-Vers,Vers-Vers +Boek Hoofstuk:Vers-Vers,Hoofstuk:Vers-Vers +Boek Hoofstuk:Vers-Hoofstuk:Vers + @@ -304,78 +236,79 @@ Book Chapter:Verse-Chapter:Verse Bibles - Bybels + Bybels Verse Display - Vers Vertoning + Vers Vertoning Only show new chapter numbers - Vertoon net nuwe hoofstuk nommers + Vertoon net nuwe hoofstuk nommers Layout style: - + Uitleg styl: Display style: - + Vertoon styl: Bible theme: - + Bybel tema: Verse Per Slide - + Verse Per Skyfie Verse Per Line - + Verse Per Lyn Continuous - + Aaneen-lopend No Brackets - + Geen Hakkies ( And ) - + ( En ) { And } - + { En } [ And ] - + [ En ] Note: Changes do not affect verses already in the service. - + Nota: +Veranderinge affekteer nie verse wat reeds in die diens is nie. Display dual Bible verses - + Vertoon dubbel Bybel verse @@ -383,370 +316,370 @@ Changes do not affect verses already in the service. Bible Import Wizard - Bybel Invoer Gids + Bybel Invoer Gids Welcome to the Bible Import Wizard - Welkom by die Bybel Invoer Gids + Welkom by die Bybel Invoer Gids 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. - Hierdie gids sal u help om Bybels van 'n verskeidenheid vormate in te voer. Kliek die volgende knoppie hieronder om die proses te begin en 'n formaat te kies om in te voer. + Hierdie gids sal u help om Bybels van 'n verskeidenheid formate in te voer. Kliek die volgende knoppie hieronder om die proses te begin deur 'n formaat te kies om in te voer. Select Import Source - Selekteer Invoer Bron + Selekteer Invoer Bron Select the import format, and where to import from. - Selekteer die invoer formaat en van waar af om in te voer. + Selekteer die invoer formaat en van waar af om in te voer. Format: - Formaat: + Formaat: OSIS - OSIS + OSIS CSV - KGW + KGW (CSV) OpenSong - OpenSong + OpenSong Web Download - Web Aflaai + Web Aflaai File location: - + Lêer ligging: Books location: - + Boeke ligging: Verse location: - + Vers ligging: Bible filename: - + Bybel lêernaam: Location: - Ligging: + Ligging: Crosswalk - Cosswalk + Crosswalk BibleGateway - BibleGateway + BibleGateway Bible: - Bybel: + Bybel: Download Options - Aflaai Opsies + Aflaai Opsies Server: - Bediener: + Bediener: Username: - Gebruikersnaam: + Gebruikersnaam: Password: - Wagwoord: + Wagwoord: Proxy Server (Optional) - Tussenganger Bediener (Opsioneel) + Tussenganger Bediener (Opsioneel) License Details - Lisensie Besonderhede + Lisensie Besonderhede Set up the Bible's license details. - Stel hierdie Bybel se lisensie besonderhede op. + Stel hierdie Bybel se lisensie besonderhede op. Version name: - + Weergawe naam: Copyright: - Kopiereg: + Kopiereg: Permission: - Toestemming: + Toestemming: Importing - Invoer + Invoer Please wait while your Bible is imported. - Wag asseblief terwyl u Bybel ingevoer word. + Wag asseblief terwyl u Bybel ingevoer word. Ready. - Gereed. + Gereed. Invalid Bible Location - Ongeldige Bybel Ligging + Ongeldige Bybel Ligging You need to specify a file to import your Bible from. - + 'n Lêer van waar die Byber ingevoer word moet gespesifiseer word. Invalid Books File - Ongeldige Boeke Lêer + Ongeldige Boeke Lêer You need to specify a file with books of the Bible to use in the import. - + 'n Lêer met boeke van die Bybel moet gespesifiseer word vir gebruik tydens die invoer. Invalid Verse File - Ongeldige Vers Lêer + Ongeldige Vers Lêer You need to specify a file of Bible verses to import. - + 'n Lêer met Bybel verse moet gespesifiseer word om in te voer. Invalid OpenSong Bible - Ongeldige OpenSong Bybel + Ongeldige OpenSong Bybel You need to specify an OpenSong Bible file to import. - + 'n OpenSong Bybel moet gespesifiseer word om in te voer. Empty Version Name - Weergawe Naam is Leeg + Weergawe Naam is leeg You need to specify a version name for your Bible. - + 'n Weergawe naam moet vir die Bybel gespesifiseer word. - + Empty Copyright - Leë Kopiereg + Kopiereg Leeg - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Stel Kopiereg op vir die spesifieke Bybel! Bybels in die Publieke Omgewing moet so gemerk word. - - - + Bible Exists - Bybel Bestaan + Bybel Bestaan reeds - - This Bible already exists! Please import a different Bible or first delete the existing one. - Dié Bybel bestaan reeds! Voer asseblief 'n ander Bybel in of wis die eerste een uit. - - - + Open OSIS File - + Maak OSIS Lêer oop - + Open Books CSV File - + Maak Boeke CSV (KGW) Lêer oop - + Open Verses CSV File - + Maak Verse CSV Lêer oop - + Open OpenSong Bible - Maak OpenSong Bybel Oop + Maak OpenSong Bybel Oop Starting import... - Invoer begin... + Invoer begin... - + Finished import. - Invoer voltooi. + Invoer voltooi. - + Your Bible import failed. - U Bybel invoer het misluk. + Die Bybel invoer het misluk. + + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + Die Bybel benodig 'n kopiereg. Bybels in die Publieke Domein moet daarvolgens gemerk word. + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + Hierdie Bybel bestaan reeds. Voer asseblief 'n ander Bybel in of wis eers die bestaande een uit. BiblesPlugin.MediaItem - + + Bible + Bybel + + + Quick - Vinnig + Vinnig - + Advanced - Gevorderd + Gevorderd - + Version: - Weergawe: + Weergawe: - + Dual: - Dubbel: + Dubbel: - + Search type: - + Tipe soek: - + Find: - Vind: - - - - Search - Soek - - - - Results: - &Resultate: - - - - Book: - Boek: - - - - Chapter: - Hoofstuk: - - - - Verse: - Vers: - - - - From: - Vanaf: + Vind: + Search + Soek + + + + Results: + Resultate: + + + + Book: + Boek: + + + + Chapter: + Hoofstuk: + + + + Verse: + Vers: + + + + From: + Vanaf: + + + To: - Aan: + Tot: - + Verse Search - Soek Vers + Soek Vers - + Text Search - Teks Soektog + Teks Soektog - + Clear - + Maak Skoon - + Keep - Behou + Behou - + No Book Found - Geeb Boek Gevind nie + Geen Boek Gevind nie - + No matching book could be found in this Bible. - Geen bypassende boek kon in dié Bybel gevind word nie. + Geen bypassende boek kon in dié Bybel gevind word nie. - - etc - - - - + Bible not fully loaded. - + Bybel nie ten volle gelaai nie. @@ -754,15 +687,15 @@ Changes do not affect verses already in the service. Importing - Invoer + Invoer CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Aanpas Mini-program</strong><br/>Die aanpas mini-program verskaf die vermoë om aangepasde teks skyfies op te stel wat in dieselfde manier gebruik word as die liedere mini-program. Dié mini-program verskaf grooter vryheid as die liedere mini-program. @@ -770,17 +703,17 @@ Changes do not affect verses already in the service. Custom - + Aanpas Custom Display - Aangepasde Vertoning + Aangepasde Vertoning Display footer - + Vertoon voetspasie @@ -788,369 +721,206 @@ Changes do not affect verses already in the service. Edit Custom Slides - Redigeer Aangepaste Skyfies + Redigeer Aangepaste Skyfies Move slide up one position. - + Skuif skyfie een posisie op. Move slide down one position. - + Skuif skyfie een posisie af. &Title: - + &Titel: Add New - Voeg Nuwe By + Voeg Nuwe By Add a new slide at bottom. - + Voeg nuwe skyfie by aan die onderkant. Edit - Redigeer + Redigeer Edit the selected slide. - + Redigeer die geselekteerde skyfie. Edit All - Redigeer Alles + Redigeer Alles Edit all the slides at once. - + Redigeer al die skyfies tegelyk. Save - Stoor + Stoor Save the slide currently being edited. - + Stoor die skyfie wat tans geredigeer word. Delete - + Wis uit Delete the selected slide. - + Wis die geselekteerde skyfie uit. Clear - + Maak skoon Clear edit area - Maak skoon die redigeer area + Maak die redigeer area skoon Split Slide - + Verdeel Skyfie Split a slide into two by inserting a slide splitter. - + Verdeel 'n skyfie deur 'n skyfie-verdeler te gebruik. The&me: - + Te&ma: &Credits: - + &Krediete: Save && Preview - Stoor && Voorskou + Stoor && Voorskou Error - Fout + Fout You need to type in a title. - + 'n Titel word benodig. You need to add at least one slide - + Ten minste een skyfie moet bygevoeg word You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Daar is een of meer ongestoorde skyfies, stoor asseblief die skyfie(s) of maak die veranderinge skoon. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - + Aanpas - - Customs - + + You haven't selected an item to edit. + Daar is nie 'n item geselekteer om te redigeer nie. - - Import - Invoer - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - Byvoeg - - - - Add a new Custom - - - - - Edit - Redigeer - - - - Edit the selected Custom - - - - - Delete - - - - - Delete the selected Custom - - - - - Preview - Voorskou - - - - Preview the selected Custom - - - - - Live - Regstreeks - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - + + You haven't selected an item to delete. + Daar is nie 'n item geselekteer om uit te wis nie. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Beeld - - - - Images - Beelde - - - - Load - - - - - Load a new Image - - - - - Add - Byvoeg - - - - Add a new Image - - - - - Edit - Redigeer - - - - Edit the selected Image - - - - - Delete - - - - - Delete the selected Image - - - - - Preview - Voorskou - - - - Preview the selected Image - - - - - Live - Regstreeks - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + <strong>Beeld Mini-program</strong><br/>Die beeld mini-program verskaf vertoning van beelde.<br/>Een van die onderskeidende kenmerke van hierdie mini-program is die vermoë om beelde te groepeer in die diensbestuurder wat dit maklik maak om verskeie beelde te vertoon. Die mini-program kan ook van OpenLP se "tydgebonde herhaling"-funksie gebruik maak om 'n automatiese skyfe-vertoning te verkry. Verder kan beelde van hierdie mini-program gebruik word om die huidige tema se agtergrond te vervang hoewel 'n tema sy eie agtergrond het. ImagePlugin.MediaItem - + + Image + Beeld + + + Select Image(s) - Selekteer beeld(e) + Selekteer beeld(e) - + All Files - + Alle Lêers - + Replace Live Background - + Vervang Regstreekse Agtergrond - + Replace Background - + Vervang Agtergrond - + Reset Live Background - + Herstel Regstreekse Agtergrond - + You must select an image to delete. - + 'n Beeld om uit te wis moet geselekteer word. - + Image(s) - Beeld(e) + Beeld(e) - + You must select an image to replace the background with. - + 'n Beeld wat die agtergrond vervang moet gekies word. - + You must select a media file to replace the background with. - + 'n Media lêer wat die agtergrond vervang moet gekies word. @@ -1158,123 +928,43 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - - - Media - Media - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - Byvoeg - - - - Add a new Media - - - - - Edit - Redigeer - - - - Edit the selected Media - - - - - Delete - - - - - Delete the selected Media - - - - - Preview - Voorskou - - - - Preview the selected Media - - - - - Live - Regstreeks - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - + <strong>Media Mini-program</strong><br/>Die media mini-program verskaf speel funksies van audio en video. MediaPlugin.MediaItem - - Select Media - Selekteer Media - - - - Replace Live Background - - - - - Replace Background - - - - + Media - Media + Media - + + Select Media + Selekteer Media + + + + Replace Live Background + Vervang Regstreekse Agtergrond + + + + Replace Background + Vervang Agtergrond + + + You must select a media file to delete. - + 'n Media lêer om uit te wis moet geselekteer word. OpenLP - + Image Files - + Beeld Lêers @@ -1282,7 +972,7 @@ Changes do not affect verses already in the service. About OpenLP - Aangaande OpenLP + Aangaande OpenLP @@ -1293,12 +983,18 @@ OpenLP is free church presentation software, or lyrics projection software, used 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. - + OpenLP <version><revision> - Open Source Lyrics Projection + +OpenLP is gratis kerk aanbieding sagteware of lirieke projeksie sagteware wat gebruik word vir die vertoning van liedere, Bybel verse, video's, beelde tot ook aanbiedings (as OpenOffice.org, PowerPoint of PowerPoint Viewer geïnstalleer is) vir kerklike aanbidding deur middel van 'n rekenaar en 'n data projektor. + +Vind meer uit oor OpenLP: http://openlp.org/ + +OpenLP is geskryf en word onderhou deur vrywilligers. As u graag wil sien dat meer Christelike sagteware geskryf word, oorweeg dit asseblief om by te dra deur die knoppie hieronder te gebruik. About - Aangaande + Aangaande @@ -1340,17 +1036,54 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ - + Projek Leier +Raoul "superfly" Snyman + +Ontwikkelaars +Tim "TRB143" Bentley +Jonathan "gushie" Corwin +Michael "cocooncrash" Gorven +Scott "sguerrieri" Guerrieri +Raoul "superfly" Snyman +Martin "mijiti" Thompson +Jon "Meths" Tibble + +Bydraers +Meinert "m2j" Jordan +Andreas "googol" Preikschat +Christian "crichter" Richter +Philip "Phill" Ridout +Maikel Stuivenberg +Carsten "catini" Tingaard +Frode "frodus" Woldsund + +Toetsers +Philip "Phill" Ridout +Wesley "wrst" Stout (lead) + +Verpakkers +Thomas "tabthorpe" Abthorpe (FreeBSD) +Tim "TRB143" Bentley (Fedora) +Michael "cocooncrash" Gorven (Ubuntu) +Matthias "matthub" Hub (Mac OS X) +Raoul "superfly" Snyman (Windows, Ubuntu) + +Gebou Met +Python: http://www.python.org/ +Qt4: http://qt.nokia.com/ +PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro +Oxygen Ikone: http://oxygen-icons.org/ + Credits - Krediete + Krediete - 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 + 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. @@ -1480,27 +1213,155 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gno 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. - + Kopiereg © 2004-2010 Raoul Snyman +Gedeeltelike kopiereg © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten TinggaardHierdie program is gratis sagteware, u kan dit herversprei en / of wysig onder die voorwaardes van die GNU General Public License ', soos gepubliseer deur die Free Software Foundation; weergawe 2 van die lisensie. + +Hierdie program word versprei in die hoop dat dit nuttig sal wees, maar SONDER ENIGE WAARBORG, selfs sonder die geïmpliseerde waarborg van VERHANDELBAARHEID of GESKIKTHEID VIR 'N SPESIFIEKE DOEL. Sien hieronder vir meer besonderhede. + + +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. License - Lisensie + Lisensie Contribute - Dra By + Dra By Close - Maak toe + Maak toe build %s - + bou %s @@ -1508,27 +1369,27 @@ This General Public License does not permit incorporating your program into prop Advanced - Gevorderd + Gevorderd UI Settings - + GK (UI) Verstellings Number of recent files to display: - + Hoeveelheid onlangse lêers om te vertoon: Remember active media manager tab on startup - + Onthou die laaste media bestuurder oortjie wanneer die program begin Double-click to send items straight to live (requires restart) - + Dubbel-kliek items direk na regstreekse vertoning te stuur (benodig herlaai) @@ -1536,310 +1397,310 @@ This General Public License does not permit incorporating your program into prop Theme Maintenance - Tema Onderhoud + Tema Onderhoud Theme &name: - + Tema &naam: Type: - Tipe: + Tipe: Solid Color - Soliede Kleur + Soliede Kleur Gradient - Gradiënt + Gradiënt Image - Beeld + Beeld Image: - Beeld: + Beeld: Gradient: - + Gradiënt: Horizontal - Horisontaal + Horisontaal Vertical - Vertikaal + Vertikaal Circular - Sirkelvormig + Sirkelvormig &Background - + &Agtergrond Main Font - Hoof Skrif + Hoof Skrif Font: - Skrif: + Skrif: Color: - + Kleur: Size: - Grootte: + Grootte: pt - pt + pt Adjust line spacing: - + Verstel lyn spasiëring: Normal - Normaal + Normaal Bold - Vetgedruk + Vetgedruk Italics - Kursief + Kursief Bold/Italics - Bold/Italics + Vetgedruk/Kursief Style: - + Styl: Display Location - Vertoon Ligging + Vertoon Ligging Use default location - + Gebruik verstek ligging X position: - + X posisie: Y position: - + Y posisie: Width: - Wydte: + Wydte: Height: - Hoogte: + Hoogte: px - px + px &Main Font - + &Hoof Skrif Footer Font - Voetnota Skriftipe + Voetnota Skriftipe &Footer Font - + Voetnota Skri&ftipe Outline - Buitelyn + Buitelyn Outline size: - + Buitelyn grootte: Outline color: - + Buitelyn kleur: Show outline: - + Vertoon buitelyn: Shadow - Skaduwee + Skaduwee Shadow size: - + Skaduwee grootte: Shadow color: - + Skaduwee kleur: Show shadow: - + Vertoon skaduwee: Alignment - Belyning + Belyning Horizontal align: - + Horisontale belyning: Left - Links + Links Right - Regs + Regs Center - Middel + Middel Vertical align: - + Vertikale belyning: Top - + Bo Middle - Middel + Middel Bottom - Onder + Onder Slide Transition - Skyfie Verandering + Skyfie Verandering Transition active - + Verandering aktief &Other Options - + Ander &Opsies Preview - Voorskou + Voorskou All Files - + Alle Lêers Select Image - + Selekteer beeld First color: - + Eerste kleur: Second color: - + Tweede kleur: Slide height is %s rows. - + Skyfie hoogte is %s rye. OpenLP.ExceptionDialog - - - Error Occured - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - + Oeps! OpenLP het 'n probleem ondervind en kon nie daarvanaf herstel nie. Die teks in die boks hieronder bevat inligting wat van hulp kan wees aan die OpenLP ontwikkelaars, so stuur dit asseblief per e-pos na bugs@openlp.org saam met 'n gedetaileerde beskrywing van wat gedoen was toe die probleem plaasgevind het. + + + + Error Occurred + 'n Fout het opgeduik @@ -1847,643 +1708,716 @@ This General Public License does not permit incorporating your program into prop General - Algemeen + Algemeen Monitors - Monitors + Monitors Select monitor for output display: - Selekteer monitor vir uitgaande vertoning: + Selekteer monitor vir uitgaande vertoning: Display if a single screen - + Vertoon as dit 'n enkel skerm is Application Startup - Program Aanskakel + Applikasie Aanskakel Show blank screen warning - Vertoon leë skerm waarskuwing + Vertoon leë skerm waarskuwing Automatically open the last service - Maak vanself die laaste diens oop + Maak vanself die laaste diens oop Show the splash screen - Wys die spatsel skerm + Wys die spatsel skerm Application Settings - Program Verstellings + Program Verstellings Prompt to save before starting a new service - + Vra om te stoor voordat 'n nuwe diens begin word Automatically preview next item in service - + Wys voorskou van volgende item in diens automaties Slide loop delay: - + Skyfie herhaal vertraging: sec - + sek CCLI Details - CCLI Inligting + CCLI Inligting CCLI number: - + CCLI nommer: SongSelect username: - + SongSelect gebruikersnaam: SongSelect password: - + SongSelect wagwoord: Display Position - + Vertoon Posisie X - + X Y - + Y Height - + Hoogte Width - + Wydte Override display position - + Oorskryf vertoon posisie Screen - Skerm + Skerm primary - primêre + primêre OpenLP.LanguageManager - + Language - + Taal - + Please restart OpenLP to use your new language setting. - + Herlaai asseblief OpenLP om die nuwe taal instelling te gebruik. OpenLP.MainWindow - - - New Service - Nuwe Diens - - - - Open Service - Maak Diens Oop - - - - Save Service - Stoor Diens - OpenLP 2.0 - OpenLP 2.0 - - - - AddHereYourLanguageName - + OpenLP 2.0 &File - &Lêer + &Lêer &Import - &Invoer + &Invoer &Export - &Uitvoer + Uitvo&er &View - &Bekyk + &Bekyk M&ode - M&odus + M&odus &Tools - &Gereedskap + &Gereedskap &Settings - Ver&stellings + Ver&stellings &Language - Taa&l + Taa&l &Help - &Hulp + &Hulp Media Manager - Media Bestuurder + Media Bestuurder Service Manager - Diens Bestuurder + Diens Bestuurder Theme Manager - Tema Bestuurder + Tema Bestuurder &New - &Nuwe + &Nuwe + + + + New Service + Nuwe Diens Create a new service. - + Skep 'n nuwe diens. Ctrl+N - Ctrl+N + Ctrl+N &Open - Maak &Oop + Maak &Oop + + + + Open Service + Maak Diens Oop Open an existing service. - + Maak 'n bestaande diens oop. Ctrl+O - Ctrl+O + Ctrl+O &Save - &Stoor + &Stoor + + + + Save Service + Stoor Diens Save the current service to disk. - + Stoor die huidige diens na skyf. Ctrl+S - Ctrl+S + Ctrl+S Save &As... - Stoor &As... + Stoor &As... Save Service As - Stoor Diens As + Stoor Diens As Save the current service under a new name. - + Stoor die huidige diens onder 'n nuwe naam. Ctrl+Shift+S - + Ctrl+Shift+S E&xit - &Uitgang + &Uitgang Quit OpenLP - Sluit OpenLP Af + Sluit OpenLP Af Alt+F4 - Alt+F4 + Alt+F4 &Theme - &Tema + &Tema &Configure OpenLP... - + &Konfigureer OpenLP... &Media Manager - &Media Bestuurder + &Media Bestuurder Toggle Media Manager - Wissel Media Bestuurder + Wissel Media Bestuurder Toggle the visibility of the media manager. - + Wissel sigbaarheid van die media bestuurder. F8 - F8 + F8 &Theme Manager - &Tema Bestuurder + &Tema Bestuurder Toggle Theme Manager - Wissel Tema Bestuurder + Wissel Tema Bestuurder Toggle the visibility of the theme manager. - + Wissel sigbaarheid van die tema bestuurder. F10 - F10 + F10 &Service Manager - &Diens Bestuurder + &Diens Bestuurder Toggle Service Manager - Wissel Diens Bestuurder + Wissel Diens Bestuurder Toggle the visibility of the service manager. - + Wissel sigbaarheid van die diens bestuurder. F9 - F9 + F9 &Preview Panel - &Voorskou Paneel + Voorskou &Paneel Toggle Preview Panel - Wissel Voorskou Paneel + Wissel Voorskou Paneel Toggle the visibility of the preview panel. - + Wissel sigbaarheid van die voorskou paneel. F11 - F11 + F11 &Live Panel - + Regstreekse Panee&l Toggle Live Panel - + Wissel Regstreekse Paneel Toggle the visibility of the live panel. - + Wissel sigbaarheid van die regstreekse paneel. F12 - F12 + F12 &Plugin List - In&prop Lys + Mini-&program Lys List the Plugins - Lys die Inproppe + Lys die Mini-programme Alt+F7 - Alt+F7 + Alt+F7 &User Guide - &Gebruikers Gids + Gebr&uikers Gids &About - &Aangaande + &Aangaande More information about OpenLP - Meer inligting aangaande OpenLP + Meer inligting aangaande OpenLP Ctrl+F1 - Ctrl+F1 + Ctrl+F1 &Online Help - &Aanlyn Hulp + &Aanlyn Hulp &Web Site - &Web Tuiste + &Web Tuiste &Auto Detect - + Verklik Outom&aties Use the system language, if available. - + Gebruik die sisteem se taal as dit beskikbaar is. Set the interface language to %s - + Verstel die koppelvlak taal na %s Add &Tool... - + Voeg Gereedskaps&tuk by... Add an application to the list of tools. - + Voeg 'n applikasie by die lys van gereedskapstukke. &Default - + &Verstek Set the view mode back to the default. - + Verstel skou modus terug na verstek modus. &Setup - + Op&stel Set the view mode to Setup. - + Verstel die skou modus na Opstel modus. &Live - &Regstreeks + &Regstreeks Set the view mode to Live. - + Verstel die skou modus na Regstreeks. 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/. - + Weergawe %s van OpenLP is nou beskikbaar vir aflaai (tans word weergawe %s gebruik). + +Die nuutste weergawe kan afgelaai word vanaf http://openlp.org/. OpenLP Version Updated - OpenLP Weergawe is Opdateer + OpenLP Weergawe is Opdateer - + OpenLP Main Display Blanked - OpenLP Hoof Vertoning Blanko + OpenLP Hoof Vertoning Blanko - + The Main Display has been blanked out - Die Hoof Skerm is blanko + Die Hoof Skerm is afgeskakel - + Save Changes to Service? - + Stoor Veranderinge aan Diens? - + Your service has changed. Do you want to save those changes? - + Die diens het verander. Stoor veranderinge? - + Default Theme: %s - + Verstek Tema: %s - + English - Engels + Please add the name of your language here + Afrikaans OpenLP.MediaManagerItem - + No Items Selected - + Geen item geselekteer nie - + + Import %s + Voer %s in + + + + Import a %s + Voer 'n %s in + + + + Load %s + Laai %s + + + + Load a new %s + Laai 'n nuwe %s + + + + New %s + Nuwe %s + + + + Add a new %s + Voeg 'n nuwe %s by + + + + Edit %s + Redigeer %s + + + + Edit the selected %s + Redigeer die geselekteerde %s + + + + Delete %s + Wis %s uit + + + + Delete the selected item + Wis geselekteerde item uit + + + + Preview %s + Voorskou %s + + + + Preview the selected item + Voorskou die geselekteerde item + + + + Send the selected item live + Stuur die geselekteerde item na regstreekse vertoning + + + + Add %s to Service + Voeg %s by die Diens + + + + Add the selected item(s) to the service + Voeg die geselekteerde item(s) by die diens + + + &Edit %s - + R&edigeer %s - + &Delete %s - + &Wis %s uit - + &Preview %s - + &Voorskou %s - + &Show Live - &Vertoon Regstreeks + Vertoon Regstreek&s - + &Add to Service - &Voeg by Diens + &Voeg by Diens - + &Add to selected Service Item - + &Voeg by die geselekteerde Diens item - + You must select one or more items to preview. - + Kies een of meer items vir die voorskou. - + You must select one or more items to send live. - + Kies een of meer items vir regstreekse uitsending. - + You must select one or more items. - + Kies een of meer items. - + No items selected - + Geen items geselekteer nie - + You must select one or more items - + Kies een of meer items - + No Service Item Selected - + Geen Diens Item Geselekteer nie - + You must select an existing service item to add to. - + 'n Bestaande diens item moet geselekteer word om by by te voeg. - + Invalid Service Item - + Ongeldige Diens Item - + You must select a %s service item. - + Kies 'n %s diens item. @@ -2491,52 +2425,52 @@ You can download the latest version from http://openlp.org/. Plugin List - Inprop Lys + Mini-program Lys Plugin Details - Inprop Besonderhede + Mini-program Besonderhede Version: - Weergawe: + Weergawe: About: - Aangaande: + Aangaande: Status: - Status: + Status: Active - Aktief + Aktief Inactive - Onaktief + Onaktief - + %s (Inactive) - + %s (Onaktief) - + %s (Active) - + %s (Aktief) - + %s (Disabled) - + %s (Onaktief) @@ -2544,22 +2478,22 @@ You can download the latest version from http://openlp.org/. Reorder Service Item - + Hergroepeer Diens Item Up - + Op Delete - + Wis uit Down - + Af @@ -2567,178 +2501,184 @@ You can download the latest version from http://openlp.org/. New Service - Nuwe Diens + Nuwe Diens Create a new service - Skep 'n nuwe diens + Skep 'n nuwe diens - + Open Service - Maak Diens Oop + Maak Diens Oop Load an existing service - Laai 'n bestaande diens + Laai 'n bestaande diens - + Save Service - Stoor Diens + Stoor Diens Save this service - Stoor hierdie diens + Stoor hierdie diens Theme: - Tema: + Tema: Select a theme for the service - Selekteer 'n tema vir die diens + Selekteer 'n tema vir die diens Move to &top - + Skuif boon&toe Move item to the top of the service. - + Skuif item tot heel bo in die diens. Move &up - + Sk&uif op Move item up one position in the service. - + Skuif item een posisie boontoe in die diens. Move &down - + Skuif &af Move item down one position in the service. - + Skuif item een posisie af in die diens. Move to &bottom - + Skuif &tot heel onder Move item to the end of the service. - + Skuif item tot aan die einde van die diens. &Delete From Service - + Wis uit vanaf die &Diens Delete the selected item from the service. - + Wis geselekteerde item van die diens af. &Add New Item - + &Voeg Nuwe Item By &Add to Selected Item - + &Voeg by Geselekteerde Item &Edit Item - R&edigeer Item + R&edigeer Item &Reorder Item - + Ve&rander Item orde &Notes - &Notas + &Notas &Preview Verse - Vers V&oorsig + Vers V&oorsig &Live Verse - &Lewendige Vers + &Regstreekse Vers &Change Item Theme - &Verander Item Tema + &Verander Item Tema - + Save Changes to Service? - + Stoor Veranderinge aan Diens? - + Your service is unsaved, do you want to save those changes before creating a new one? - + Die diens is nie gestoor nie. Stoor die veranderinge voor 'n nuwe een geskep word? - + OpenLP Service Files (*.osz) - + OpenLP Diens Lêers (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Huidige diens is nie gestoor nie. Stoor die veranderinge voordat 'n nuwe een oopgemaak word? - + Error - Fout + Fout - + File is not a valid service. The content encoding is not UTF-8. - + Lêer is nie 'n geldige diens nie. +Die inhoud enkodering is nie UTF-8 nie. - + File is not a valid service. - + Lêer is nie 'n geldige diens nie. - + Missing Display Handler - + Vermisde Vertoon Hanteerder - + Your item cannot be displayed as there is no handler to display it - + Die item kan nie vertoon word nie omdat daar nie 'n hanteerder is om dit te vertoon nie + + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + Die item kan nie vertoon word nie omdat die mini-program wat dit moet vertoon vermis of onaktief is @@ -2746,7 +2686,7 @@ The content encoding is not UTF-8. Service Item Notes - Diens Item Notas + Diens Item Notas @@ -2754,7 +2694,7 @@ The content encoding is not UTF-8. Configure OpenLP - + Konfigureer OpenLP @@ -2762,95 +2702,80 @@ The content encoding is not UTF-8. Live - Regstreeks + Regstreeks Preview - Voorskou + Voorskou Move to previous - Beweeg na vorige + Beweeg na vorige Move to next - Verskuif na volgende + Beweeg na volgende Hide - + Verskuil - - Blank Screen - Blanko Skerm - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - Verskuif na regstreekse skerm + Verskuif na regstreekse skerm - - Edit and re-preview song - - - - + Start continuous loop - Begin aaneenlopende lus + Begin aaneenlopende lus - + Stop continuous loop - Stop deurlopende lus + Stop deurlopende lus - + s - s + s - + Delay between slides in seconds - Vertraging in sekondes tussen skyfies + Vertraging tussen skyfies in sekondes - + Start playing media - Begin media speel + Begin media speel - + Go To - + Gaan Na + + + + Edit and reload song preview + Redigeer en laai weer 'n lied voorskou OpenLP.SpellTextEdit - + Spelling Suggestions - + Spelling Voorstelle - + Formatting Tags - + Uitleg Hakkies @@ -2858,178 +2783,179 @@ The content encoding is not UTF-8. New Theme - Nuwe Tema + Nuwe Tema Create a new theme. - + Skep 'n nuwe tema. Edit Theme - Wysig Tema + Redigeer Tema Edit a theme. - + Redigeer 'n tema. Delete Theme - Wis Tema Uit + Wis Tema Uit Delete a theme. - + Wis 'n tema uit. Import Theme - Tema Invoer + Voer Tema In Import a theme. - + Voer 'n tema in. Export Theme - Voer Tema Uit + Voer Tema Uit Export a theme. - + Voer 'n tema uit. &Edit Theme - + R&edigeer Tema &Delete Theme - + &Wis Tema uit Set As &Global Default - + Stel in As &Globale Standaard E&xport Theme - + Voer Tema &Uit %s (default) - + %s (standaard) You must select a theme to edit. - + Kies 'n tema om te redigeer. You must select a theme to delete. - + Kies 'n tema om uit te wis. Delete Confirmation - + Uitwis Bevestiging Delete theme? - + Wis tema uit? Error - Fout + Fout You are unable to delete the default theme. - - - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - + Die standaard tema kan nie uitgewis word nie. You have not selected a theme. - + Geen tema is geselekteer nie. Save Theme - (%s) - Stoor Tema - (%s) + Stoor Tema - (%s) Theme Exported - + Tema Uitvoer Your theme has been successfully exported. - + Die tema was suksesvol uitgevoer. Theme Export Failed - + Tema Uitvoer het Misluk Your theme could not be exported due to an error. - + Die tema kon nie uitgevoer word nie weens 'n fout. Select Theme Import File - Kies Tema Invoer Lêer + Kies Tema Invoer Lêer Theme (*.*) - + Tema (*.*) File is not a valid theme. The content encoding is not UTF-8. - + Lêer is nie 'n geldige tema nie. +Die inhoud enkodering is nie UTF-8 nie. File is not a valid theme. - + Lêer is nie 'n geldige tema nie. Theme Exists - Tema Bestaan + Tema Bestaan Reeds A theme with this name already exists. Would you like to overwrite it? - + 'n Tema met hierdie naam bestaan alreeds. Kan dit oorskryf word? + + + + Theme %s is used in the %s plugin. + Tema %s is in gebruik deur die %s mini-program. + + + + Theme %s is used by the service manager. + Tema %s is in gebruik deur die diens bestuurder. @@ -3037,47 +2963,47 @@ The content encoding is not UTF-8. Themes - Temas + Temas Global Theme - + Globale Tema Theme Level - + Tema Vlak S&ong Level - + Lied Vl&ak 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. - Gebruik die tema van elke lied in die lied-databasis. As 'n lied nie 'n geassosieërde tema het nie, gebruik die diens se tema. As die diens nie 'n tema het nie, gebruik dan die globale tema. + Gebruik die tema van elke lied in die lied-databasis. As 'n lied nie 'n geassosieërde tema het nie, gebruik die diens se tema. As die diens nie 'n tema het nie, gebruik dan die globale tema. &Service Level - + Dien&s Vlak 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. - Gebruik die tema van die diens en verplaas enige van die individuele liedere se temas. As die diens nie 'n tema het nie, gebruik dan die globale tema. + Gebruik die tema van die diens en verplaas enige van die individuele liedere se temas. As die diens nie 'n tema het nie, gebruik dan die globale tema. &Global Level - + &Globale Vlak Use the global theme, overriding any themes associated with either the service or the songs. - Gebruik die globale tema om enige temas wat met die diens of liedere geassosieer is te vervang. + Gebruik die globale tema om enige temas wat met die diens of liedere geassosieer is te vervang. @@ -3085,110 +3011,55 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - - - Presentation - Aanbieding - - - - Presentations - Aanbiedinge - - - - Load - - - - - Load a new Presentation - - - - - Delete - - - - - Delete the selected Presentation - - - - - Preview - Voorskou - - - - Preview the selected Presentation - - - - - Live - Regstreeks - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - + <strong>Aanbieding Mini-program</strong><br/>Die aanbieding mini-program bied die vermoë om aanbiedings van verskillende programme te vertoon. Die keuse van beskikbare aanbieding-programme word aan die gebruiker vertoon deur 'n hangkieslys. PresentationPlugin.MediaItem - + + Presentation + Aanbieding + + + Select Presentation(s) - Selekteer Aanbieding(e) + Selekteer Aanbieding(e) - + Automatic - + Outomaties - + Present using: - Bied aan met: + Bied aan met: - + File Exists - + Lêer Bestaan Reeds - + A presentation with that filename already exists. - 'n Voorstelling met daardie lêernaam bestaan reeds. + 'n Aanbieding met daardie lêernaam bestaan reeds. - + Unsupported File - + Lêer nie Ondersteun nie - + This type of presentation is not supported. - + Hierdie tipe aanbieding word nie ondersteun nie. - + You must select an item to delete. - + 'n Item om uit te wis moet geselekteer word. @@ -3196,22 +3067,22 @@ The content encoding is not UTF-8. Presentations - Aanbiedinge + Aanbiedinge Available Controllers - Beskikbare Beheerders + Beskikbare Beheerders Advanced - Gevorderd + Gevorderd Allow presentation application to be overriden - + Laat toe dat aanbieding program oorheers word @@ -3219,17 +3090,7 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - - - Remote - - - - - Remotes - Afstandbehere + <strong>Afgeleë Mini-program</strong><br/>Die afgeleë mini-program verskaf die vermoë om boodskappe na 'n lopende weergawe van OpenLP op 'n ander rekenaar te stuur deur 'n web-blaaier of deur die afgeleë PPK (API). @@ -3237,22 +3098,22 @@ The content encoding is not UTF-8. Remotes - Afstandbehere + Afstandbehere Serve on IP address: - + Bedien op hierdie IP adres: Port number: - + Poort nommer: Server Settings - + Bediener Verstellings @@ -3260,47 +3121,42 @@ The content encoding is not UTF-8. &Song Usage Tracking - + &Volg Lied Gebruik &Delete Tracking Data - + Wis Volg &Data Uit Delete song usage data up to a specified date. - + Wis lied volg data uit tot en met 'n spesifieke datum. &Extract Tracking Data - + Onttr&ek Volg Data Generate a report on song usage. - + Genereer 'n verslag oor lied-gebruik. Toggle Tracking - + Wissel Volging Toggle the tracking of song usage. - + Wissel lied-gebruik volging. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - - - SongUsage - + <strong>LiedGebruik Mini-program</strong><br/>Die mini-program volg die gebruik van liedere in dienste. @@ -3308,17 +3164,17 @@ The content encoding is not UTF-8. Delete Song Usage Data - + Wis Lied Gebruik Data Uit Delete Selected Song Usage Events? - + Wis Geselekteerde Lied Gebruik Gebeure uit? Are you sure you want to delete selected Song Usage data? - + Wis regtig die geselekteerde Diens Gebruik data uit? @@ -3326,27 +3182,27 @@ The content encoding is not UTF-8. Song Usage Extraction - + Diens Gebruik Ontrekking Select Date Range - + Selekteer Datum Grense to - aan + tot Report Location - Rapporteer Ligging + Rapporteer Ligging Output File Location - Uitvoer Lêer Ligging + Uitvoer Lêer Ligging @@ -3359,82 +3215,12 @@ The content encoding is not UTF-8. Import songs using the import wizard. - + Voer liedere in deur van die invoer helper gebruik te maak. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - - - Song - Lied - - - - Songs - Liedere - - - - Add - Byvoeg - - - - Add a new Song - - - - - Edit - Redigeer - - - - Edit the selected Song - - - - - Delete - - - - - Delete the selected Song - - - - - Preview - Voorskou - - - - Preview the selected Song - - - - - Live - Regstreeks - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - + <strong>Liedere Mini-program</strong><br/>Die liedere mini-program verskaf die vermoë om liedere te vertoon en te bestuur. @@ -3442,42 +3228,42 @@ The content encoding is not UTF-8. Author Maintenance - Skrywer Onderhoud + Outeur Onderhoud Display name: - Vertoon naam: + Vertoon naam: First name: - Voornaam: + Voornaam: Last name: - Van: + Van: Error - Fout + Fout You need to type in the first name of the author. - U moet die naam van die skrywer invul. + U moet die naam van die skrywer invul. You need to type in the last name of the author. - U moet ten minste die skrywer se naam invoer. + U moet ten minste die skrywer se naam invoer. - You have not set a display name for the author, would you like me to combine the first and last names for you? - + You have not set a display name for the author, combine the first and last names? + 'n Vertoon naam vir die skrywer is nie opgestel nie. Kan die naam en van gekombineer word? @@ -3485,242 +3271,242 @@ The content encoding is not UTF-8. Song Editor - Lied Redigeerder + Lied Redigeerder &Title: - + &Titel: Alt&ernate title: - + Alt&ernatiewe titel: &Lyrics: - + &Lirieke: &Verse order: - + &Vers orde: &Add - + &Voeg by &Edit - R&edigeer + R&edigeer Ed&it All - + Red&igeer Alles &Delete - + &Wis Uit Title && Lyrics - Titel && Lirieke + Titel && Lirieke Authors - Skrywers + Skrywers &Add to Song - &Voeg by Lied + &Voeg by Lied &Remove - &Verwyder + Ve&rwyder &Manage Authors, Topics, Song Books - + &Bestuur Skrywers, Onderwerpe en Lied Boeke Topic - Onderwerp + Onderwerp A&dd to Song - Voeg by Lie&d + Voeg by Lie&d R&emove - V&erwyder + V&erwyder Song Book - Lied Boek + Lied Boek Book: - Boek: + Boek: Number: - + Nommer: Authors, Topics && Song Book - + Skrywers, Onderwerpe && Lied Boek Theme - Tema + Tema New &Theme - + Nuwe &Tema Copyright Information - Kopiereg Informasie + Kopiereg Informasie - © - + © + © CCLI number: - + CCLI nommer: Comments - Kommentaar + Kommentaar Theme, Copyright Info && Comments - Tema, Kopiereg Informasie && Kommentaar + Tema, Kopiereg Informasie && Kommentaar Save && Preview - Stoor && Voorskou + Stoor && Voorskou Add Author - + Voeg Skrywer By This author does not exist, do you want to add them? - + Hierdie skrywer bestaan nie, moet die skrywer bygevoeg word? Error - Fout + Fout This author is already in the list. - + Hierdie skrywer is alreeds in die lys. No Author Selected - + Geen Skrywer Geselekteer nie You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Die geselekteerde skrywer is ongeldig. Kies 'n skrywer vanaf die lys of voer 'n nuwe skrywer in en kliek op die "Voeg Skrywer by Lied" knoppie om die skrywer by te voeg. Add Topic - + Voeg Onderwerp by This topic does not exist, do you want to add it? - + Die onderwerp bestaan nie. Voeg dit by? This topic is already in the list. - + Die onderwerp is reeds in die lys. No Topic Selected - + Geen Onderwep Geselekteer nie You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + Geselekteerde onderwerp is ongeldig. Kies 'n onderwerp vanaf die lys of voer 'n nuwe onderwerp in en kliek die "Voeg Onderwerp by Lied" knoppie om die onderwerp by te voeg. You need to type in a song title. - + Tik 'n lied titel in. You need to type in at least one verse. - + Ten minste een vers moet ingevoer word. Warning - + Waarskuwing You have not added any authors for this song. Do you want to add an author now? - + Die lied het nog geen skrywer nie. Voeg nou 'n skrywer by? The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + Die vers orde is ongeldig. Daar is geen vers wat ooreenstem met %s nie. Geldige opsies is %s. You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + In die vers orde is %s nie gebruik nie. Kan die lied so gestoor word? Add Book - + Voeg Boek by This song book does not exist, do you want to add it? - + Die lied boek bestaan nie. Voeg dit by? @@ -3728,343 +3514,378 @@ The content encoding is not UTF-8. Edit Verse - Redigeer Vers + Redigeer Vers &Verse type: - + &Vers tipe: &Insert - + Sit Tussen-&in SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + Geen OpenLP 2.0 Lied Databasis Geselekteer nie - + You need to select an OpenLP 2.0 song database file to import from. - + 'n OpenLP 2.0 lied databasis moet geselekteer word om vanaf in te voer. - + No openlp.org 1.x Song Database Selected - + Geen OpenLP 1.x Lied Databasis Geselekteer nie - + You need to select an openlp.org 1.x song database file to import from. - + 'n OpenLP 1.x lied databasis moet geselekteer word om vanaf in te voer. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + Geen OpenSong Lêer Geselekteer nie - + You need to add at least one OpenSong song file to import from. - + Ten minste een OpenSong lêer moet bygevoeg word om vanaf in te voer. - + No Words of Worship Files Selected - + Geen Words of Worship Lêer Geselekteer nie - + You need to add at least one Words of Worship file to import from. - + Ten minste een Words of Worship lêer moet bygevoeg word om vanaf in te voer. - + No CCLI Files Selected - + Geen CCLI Lêer Geselekteer nie - + You need to add at least one CCLI file to import from. - + Ten minste een CCLI lêer moet bygevoeg word om vanaf in te voer. - + No Songs of Fellowship File Selected - + Geen Songs of Fellowship Lêer Geselekteer nie - + You need to add at least one Songs of Fellowship file to import from. - + Ten minste een Songs of Fellowship lêer moet bygevoeg word om vanaf in te voer. - + No Document/Presentation Selected - + Geen Dokument/Aanbieding Geselekteer nie - + You need to add at least one document or presentation file to import from. - + Ten minste een dokument of aanbieding moet bygevoeg word om vanaf in te voer. - + Select OpenLP 2.0 Database File - + Selekteer OpenLP 2.0 Databasis Lêer - + Select openlp.org 1.x Database File - + Selekteer openlp.org 1.x Databasis Lêer - - Select OpenLyrics Files - - - - + Select Open Song Files - + Selekteer Open Song Lêers - + Select Words of Worship Files - + Selekteer Words of Worship Lêers - + Select CCLI Files - + Selekteer CCLI Lêers - + Select Songs of Fellowship Files - + Selekteer Songs of Fellowship Lêers - + Select Document/Presentation Files - + Selekteer Dokument/Aanbieding Lêers - + Starting import... - Invoer begin... + Invoer begin... - + Song Import Wizard - + Lied Invoer Gids - + Welcome to the Song Import Wizard - + Welkom by die Lied Invoer Gids - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Hierdie gids help met die invoer van liedere in verskillende formate. Kliek die volgende knoppie hieronder om die proses te begin deur 'n formaat te kies wat gebruik moet word vir invoer. - + Select Import Source - Selekteer Invoer Bron + Selekteer Invoer Bron - + Select the import format, and where to import from. - Selekteer die invoer formaat en van waar af om in te voer. + Selekteer die invoer formaat en van waar af om in te voer. - + Format: - Formaat: + Formaat: - + OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 - + openlp.org 1.x - + openlp.org 1.x - + OpenLyrics - + OpenLyrics - + OpenSong - OpenSong + OpenSong - + Words of Worship - + Words of Worship - + CCLI/SongSelect - + CCLI/SongSelect - + Songs of Fellowship - + Songs of Fellowship - + Generic Document/Presentation - + Generiese Dokumentasie/Aanbieding - + Filename: - + Lêernaam: - + Browse... - + Deursoek... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + Die openlp.org 1.x invoerder is onaktief gestel weens 'n vermisde Python module. Om van hierdie invoerder gebruik te maak moet die "python-sqlite" module installeer word. + + + Add Files... - + Voeg Lêers by... - + Remove File(s) - + Verwyder Lêer(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + Die Songs of Fellowship invoerder is onaktief gestel omdat OpenLP nie OpenOffice.org op die rekenaar kon vind nie. + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + Die generiese dokument/aanbieding invoerder is onaktief gestel omdat OpenLP nie OpenOffice.org op die rekenaar kon vind nie. + + + Importing - Invoer + Invoer - + Please wait while your songs are imported. - + Wag asseblief terwyl die liedere ingevoer word. - + Ready. - Gereed. + Gereed. - + %p% - + %p% - + Importing "%s"... - + "%s" ingevoer... - + Importing %s... - + %s ingevoer... + + + + No EasyWorship Song Database Selected + Geen EasyWorship Lied Databasis Geselekteer nie + + + + You need to select an EasyWorship song database file to import from. + 'n EasyWorship lied databasis om vanaf in te voer moet geselekteer word. + + + + Select EasyWorship Database File + Selekteer EasyWorship Databasis Lêer + + + + EasyWorship + EasyWorship + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + Die OpenLyrics invoerder is nog nie ontwikkel nie, maar soos gesien kan word is ons van mening om dit te doen. Hopelik sal dit in die volgende vrystelling wees. + + + + Administered by %s + Toegedien deur %s SongsPlugin.MediaItem - + + Song + Lied + + + Song Maintenance - Lied Onderhoud + Lied Onderhoud - + Maintain the lists of authors, topics and books - Handhaaf die lys van skrywers, onderwerpe en boeke - - - - Search: - Soek: + Handhaaf die lys van skrywers, onderwerpe en boeke - Type: - Tipe: + Search: + Soek: - Clear - + Type: + Tipe: - Search - Soek + Clear + Maak Skoon - - Titles - Titels + + Search + Soek - Lyrics - + Titles + Titels + Lyrics + Lirieke + + + Authors - Skrywers + Skrywers - + You must select an item to edit. - + Selekteer 'n item om te regideer. - + You must select an item to delete. - + Selekteer 'n item om uit te wis. - + Are you sure you want to delete the selected song? - + Wis die geselekteerde lied uit? - + Are you sure you want to delete the %d selected songs? - + Wis die %d geselekteerde liedere uit? - + Delete Song(s)? - + Wis Lied(ere) uit? - + CCLI Licence: - CCLI Lisensie: + CCLI Lisensie: @@ -4072,53 +3893,53 @@ The content encoding is not UTF-8. Song Book Maintenance - + Lied Boek Onderhoud &Name: - + &Naam: &Publisher: - + &Uitgewer: Error - Fout + Fout You need to type in a name for the book. - + 'n Naam vir die boek moet ingevoer word. SongsPlugin.SongImport - + copyright - + kopiereg - - © - + + © + © SongsPlugin.SongImportForm - + Finished import. - Invoer voltooi. + Invoer voltooi. - + Your song import failed. - + Lied invoer het misluk. @@ -4126,147 +3947,147 @@ The content encoding is not UTF-8. Song Maintenance - Lied Onderhoud + Lied Onderhoud Authors - Skrywers + Skrywers Topics - Onderwerpe + Onderwerpe Song Books - + Lied Boeke &Add - + &Voeg By &Edit - R&edigeer + R&edigeer &Delete - + &Wis Uit Error - Fout + Fout Could not add your author. - + Skrywer kon nie bygevoeg word nie. This author already exists. - + Die skrywer bestaan reeds. Could not add your topic. - + Onderwerp kon nie bygevoeg word nie. This topic already exists. - + Hierdie onderwerp bestaan reeds. Could not add your book. - + Boek kon nie bygevoeg word nie. This book already exists. - + Hierdie boek bestaan reeds. Could not save your changes. - - - - - Could not save your modified author, because he already exists. - + Veranderinge kon nie gestoor word nie. Could not save your modified topic, because it already exists. - + Geredigeerde onderwerp kon nie gestoor word nie, want dit bestaan alreeds. Delete Author - Wis Skrywer Uit + Wis Skrywer Uit Are you sure you want to delete the selected author? - Is u seker u wil die geselekteerde skrywer uitwis? + Wis die geselekteerde skrywer uit? This author cannot be deleted, they are currently assigned to at least one song. - + Die skrywer kan nie uitgewis word nie, omdat die skrywer aan ten minste een lied toegeken is. No author selected! - Geen skrywer geselekteer nie! + Geen skrywer geselekteer nie! Delete Topic - Wis Onderwerp Uit + Wis Onderwerp Uit Are you sure you want to delete the selected topic? - Is u seker u wil die geselekteerde onderwerp uitwis? + Wis die geselekteerde onderwerp uit? This topic cannot be deleted, it is currently assigned to at least one song. - + Die onderwerp kan nie uitgewis word nie, omdat dit aan ten minste een lied toegeken is. No topic selected! - Geen onderwerp geselekteer nie! + Geen onderwerp geselekteer nie! Delete Book - Wis Boek Uit + Wis Boek Uit Are you sure you want to delete the selected book? - Is jy seker jy wil die geselekteerde boek uitwis? + Wis die geselekteerde boek uit? This book cannot be deleted, it is currently assigned to at least one song. - + Die boek kan nie uitgewis word nie, omdat dit aan ten minste een lied toegeken is. No book selected! - Geen boek geselekteer nie! + Geen boek geselekteer nie! + + + + Could not save your modified author, because the author already exists. + Geredigeerde skrywer kon nie gestoor word nie, omdat die skrywer reeds bestaan. @@ -4274,22 +4095,22 @@ The content encoding is not UTF-8. Songs - Liedere + Liedere Songs Mode - Liedere Modus + Liedere Modus Enable search as you type - + Bekragtig soek soos getik word Display verses on live tool bar - + Vertoon verse op regstreekse gereedskap staaf @@ -4297,22 +4118,22 @@ The content encoding is not UTF-8. Topic Maintenance - Onderwerp Onderhoud + Onderwerp Onderhoud Topic name: - Onderwerp naam: + Onderwerp naam: Error - Fout + Fout - You need to type in a topic name! - U moet 'n onderwerp naam invoer! + You need to type in a topic name. + 'n Onderwerp naam moet ingevoer word. @@ -4320,37 +4141,37 @@ The content encoding is not UTF-8. Verse - Vers + Vers Chorus - Koor + Koor Bridge - Brug + Brug Pre-Chorus - Voor-Refrein + Voor-Refrein Intro - Inleiding + Inleiding Ending - Slot + Slot Other - Ander + Ander diff --git a/resources/i18n/de.ts b/resources/i18n/de.ts index 029c29c00..f5a2b1e56 100644 --- a/resources/i18n/de.ts +++ b/resources/i18n/de.ts @@ -10,22 +10,12 @@ Show an alert message. - Hinweis anzeigen + Hinweis anzeigen. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - Hinweise + <strong>Hinweis Erweiterung</strong><br />Die Erweiterung Hinweis ermöglicht die Anzeige von Texten auf dem Live Bild
@@ -38,12 +28,12 @@ Alert &text: - + Hinweis &Text: &Parameter(s): - + O&ption(en): @@ -58,32 +48,32 @@ &Delete - + &Löschen Displ&ay - + &Anzeigen Display && Cl&ose - + An&zeigen && Schließen &Close - + S&chließen New Alert - + Neuer Hinweis You haven't specified any text for your alert. Please type in some text before clicking New. - + Der Hinweis enthält noch keinen Text. Bitte geben Sie einen Text an, bevor Sie auf Neu klicken. @@ -91,7 +81,7 @@ Alert message created and displayed. - + Hinweis wurde erfolgreich erstellt und angezeigt. @@ -124,7 +114,7 @@ Location: - + Ort: @@ -144,22 +134,22 @@ Font name: - + Schriftart: Font color: - + Farbe: Background color: - + Hintergrundfarbe: Font size: - + Schriftgröße: @@ -172,6 +162,19 @@ Mittig + + BiblePlugin.MediaItem + + + Error + Fehler + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + + + BiblesPlugin @@ -182,87 +185,7 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - - - Bible - Bibel - - - - Bibles - Bibeln - - - - Import - - - - - Import a Bible - - - - - Add - - - - - Add a new Bible - - - - - Edit - Bearbeiten - - - - Edit the selected Bible - - - - - Delete - Löschen - - - - Delete the selected Bible - - - - - Preview - Vorschau - - - - Preview the selected Bible - - - - - Live - Live - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Bibelmodul</strong><br />Das Bibelmodul ermöglicht es während der Veranstaltung Bibelverse von verschiedenen Quellen anzuzeigen. @@ -270,12 +193,12 @@ Book not found - + Buch nicht gefunden The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + Das angeforderte Buch wurde in dieser Bibel nicht gefunden. Bitte überprüfen Sie die Rechtschreibung und ob diese Bibelübersetzung aus neuem und altem Testament besteht. @@ -283,11 +206,11 @@ Scripture Reference Error - + Fehler im Text Verweis - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -296,7 +219,15 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Diese Bibelstelle wird nicht von OpenLP unterstützt oder ist ungültig. Bitte stellen Sie sicher, das Sie eines der folgenden Muster verwenden: + +Buch Kapitel +Buch Kapitel-Kapitel +Buch Kapitel:Vers-Vers +Buch Kapitel:Vers-Vers,Vers-Vers +Buch Kapitel:Vers-Vers,Kapitel:Vers-Vers +Buch Kapitel:Vers-Kapitel:Vers + @@ -319,63 +250,64 @@ Book Chapter:Verse-Chapter:Verse Layout style: - + Vorlagen Stil: Display style: - + Anzeige Stil: Bible theme: - + Bibel Design: Verse Per Slide - + Verse pro Seite Verse Per Line - + Verse pro Zeile Continuous - + Fortlaufend No Brackets - + Keine Klammern ( And ) - + ( Und ) { And } - + { UND } [ And ] - + [ Und ] Note: Changes do not affect verses already in the service. - + Bemerkung: +Änderungen beeinflussen nicht Verse, welche bereits im Veranstaltungplan sind. Display dual Bible verses - + Zeige doppelte Bibelverse an @@ -433,7 +365,7 @@ Changes do not affect verses already in the service. Location: - + Ort: @@ -498,7 +430,7 @@ Changes do not affect verses already in the service. Importing - + Importieren @@ -518,7 +450,7 @@ Changes do not affect verses already in the service. You need to specify a file to import your Bible from. - + Sie müssen eine Datei zum importieren Ihrer Bibel angeben. @@ -528,7 +460,7 @@ Changes do not affect verses already in the service. You need to specify a file with books of the Bible to use in the import. - + Bitte geben Sie die Datei an, welche die zu importiernde Bibel enthält. @@ -538,7 +470,7 @@ Changes do not affect verses already in the service. You need to specify a file of Bible verses to import. - + Bitte geben Sie die Datei an, die den Bibeltext enthält. @@ -548,7 +480,7 @@ Changes do not affect verses already in the service. You need to specify an OpenSong Bible file to import. - + Bitte geben Sie die Datei an, die die OpenSong Bibel enthält. @@ -558,195 +490,195 @@ Changes do not affect verses already in the service. You need to specify a version name for your Bible. - + Bitte geben Sie den Namen der Bibelausgabe ein. - + Empty Copyright Das Copyright wurde nicht angegeben - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Sie müssen das Copyright der Bibel angeben. Bei Bibeln, die keinem Copyright mehr unterlegen, geben Sie bitte "Public Domain" ein. - - - + Bible Exists Diese Bibelübersetzung ist bereits vorhanden - - This Bible already exists! Please import a different Bible or first delete the existing one. - Diese Bibel ist bereits vorhanden! Bitte importieren Sie eine andere Bibel oder löschen Sie die bereits vorhandene. - - - + Open OSIS File - + Öffne OSIS Datei - + Open Books CSV File - + Öffne Bücherdatei (CSV) - + Open Verses CSV File - + Öffne Bibeltext (CSV) - + Open OpenSong Bible Öffne OpenSong-Bibel Starting import... - Starte import ... + Starte import... - + Finished import. Importvorgang abgeschlossen. - + Your Bible import failed. Der Bibelimportvorgang ist fehlgeschlagen. File location: - + Speicherort: Books location: - + Bücherdatei: Verse location: - + Bibeltext: Bible filename: - + Dateiname der Bibel: Version name: - + Ausgabe: + + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + Bitte geben Sie die Kopierrechte der Bibel an. Bibeln die frei zugänglich sind, sind als solche zu kennzeichnen. + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + Diese Bibel existiert bereit. Bitte importieren Sie eine andere Bibel oder löschen zuerst die existierende. BiblesPlugin.MediaItem - + + Bible + Bibel + + + Quick Schnellsuche - + Advanced Erweitert - + Version: Version: - + Dual: Parallel: - + Find: Suchen: - + Search Suche - + Results: Ergebnisse: - + Book: Buch: - + Chapter: Kapitel: - + Verse: Vers: - + From: Von: - + To: Bis: - + Verse Search Stelle suchen - + Text Search Textsuche - + Clear - + Abbrechen - + Keep Behalten - + No Book Found Kein Buch gefunden - + No matching book could be found in this Bible. Das Buch wurde in dieser Bibelausgabe nicht gefunden. - - etc - - - - + Search type: - + Art der Suche: - + Bible not fully loaded. - + Bibel wurde nicht vollständig geladen. @@ -754,15 +686,15 @@ Changes do not affect verses already in the service. Importing - + Importiere CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Texte Erweiterung</strong><br/>Die Erweiterung Texte ermöglicht es beliebige Text Folien zu erstellen. Diese können in der gleichen Weise, wie Lieder dargestellt werden, bieten aber mehr Möglichkeiten. @@ -780,7 +712,7 @@ Changes do not affect verses already in the service. Display footer - + Fußzeile anzeigen @@ -793,7 +725,7 @@ Changes do not affect verses already in the service. &Title: - + &Titel: @@ -808,7 +740,7 @@ Changes do not affect verses already in the service. Edit All - + Alle bearbeiten @@ -823,7 +755,7 @@ Changes do not affect verses already in the service. Clear - + Abbrechen @@ -833,17 +765,17 @@ Changes do not affect verses already in the service. Split Slide - + Folie aufteilen The&me: - + Desig&n: &Credits: - + &Mitwirkende: @@ -858,299 +790,136 @@ Changes do not affect verses already in the service. Move slide down one position. - + Folie eins nach unten verschieben. Add a new slide at bottom. - + Neue Folie am Ende einfügen. Edit the selected slide. - + Ausgewählte Folie bearbeiten. Edit all the slides at once. - + Alle Folien bearbeiten. Save the slide currently being edited. - + Die geöffnete Folie speichern. Delete the selected slide. - + Ausgewählte Folie löschen. Split a slide into two by inserting a slide splitter. - + Die Folie mit einem Trennzeichen auf zwei Folien aufteilen. You need to type in a title. - + Bitte geben Sie einen Titel ein. You need to add at least one slide - + Bitte erstellen Sie mindestens eine Folie. You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Sie haben mindestens eine Folie bearbeitet. Bitte speichern Sie Ihre Bearbeitung(en) oder brechen Sie den Vorgang ab. Move slide up one position. - + Verschiebe Folie um eine Position nach oben. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - Sonderfolien + Sonderfolien - - Customs - Sonderfolien + + You haven't selected an item to edit. + Sie haben nichts zum Bearbeiten ausgewählt. - - Import - - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - - - - - Add a new Custom - - - - - Edit - Bearbeiten - - - - Edit the selected Custom - - - - - Delete - Löschen - - - - Delete the selected Custom - - - - - Preview - Vorschau - - - - Preview the selected Custom - - - - - Live - Live - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - + + You haven't selected an item to delete. + Sie haben nichts zum Löschen ausgewählt. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Bild - - - - Images - - - - - Load - - - - - Load a new Image - - - - - Add - - - - - Add a new Image - - - - - Edit - Bearbeiten - - - - Edit the selected Image - - - - - Delete - Löschen - - - - Delete the selected Image - - - - - Preview - Vorschau - - - - Preview the selected Image - - - - - Live - Live - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + <strong>Bilder Erweiterung</strong><br />Die Erweiterung Bilder ermöglicht die Anzeige von Bildern.<br />Eine der besonderen Eigenschaften dieser Erweiterung ist die Möglichkeit, in der Ablaufverwaltung, mehrere Bilder zu einer Gruppe zusammen zu fassen. Dies vereinfacht die die Anzeige mehrerer Bilder. Ebenso kann mit Hilfe der Zeitschleife, sehr einfach eine Diaschau erzeugt werden, welche dann automatisch abläuft. Des weiteren können mit dieser Erweiterung Bilder benutzt werden, um das Hintergrundbild des aktuellen Design zu ersetzen. ImagePlugin.MediaItem - + + Image + Bild + + + Select Image(s) Bild(er) auswählen - + All Files - + Alle Dateien - + Replace Live Background - + Live-Hintergrund ersetzen - + Image(s) Bild(er) - + Replace Background - + Hintergrund ersetzen - + You must select an image to delete. - + Bitte markieren Sie das Bild, das sie löschen möchten. - + You must select an image to replace the background with. - + Bitte wählen Sie ein Bild aus, das sie als Hintergrundbild benutzen möchten. - + You must select a media file to replace the background with. - + Bitte wählen Sie ein Video aus, das sie als Hintergrundbild benutzen möchten. - + Reset Live Background - + Setze Live Hintergrund zurück @@ -1158,123 +927,43 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - - - Media - Medien - - - - Medias - Medien - - - - Load - - - - - Load a new Media - - - - - Add - - - - - Add a new Media - - - - - Edit - Bearbeiten - - - - Edit the selected Media - - - - - Delete - Löschen - - - - Delete the selected Media - - - - - Preview - Vorschau - - - - Preview the selected Media - - - - - Live - Live - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - + <strong>Erweiterung Medien</strong><br />Die Erweiterung Medien ermöglicht es Audio und Video Dateien abzuspielen. MediaPlugin.MediaItem - + Media Medien - + Select Media Medien auswählen - + Replace Live Background - + Live-Hintergrund ersetzen - + Replace Background - + Hintergrund ersetzen - + You must select a media file to delete. - + Bitte wählen Sie das Video aus, das sie löschen möchten. OpenLP - + Image Files - + Bilddateien @@ -1293,7 +982,13 @@ OpenLP is free church presentation software, or lyrics projection software, used 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. - + OpenLP <version><revision>-Open Source Lyrics Projection (Quelloffene Beamer Programm) + +OpenLP ist eine frei verfügbare Kirchen Präsentations Software, welche genutzt werden kann um Texte von Liedern anzuzeigen, Bibel Verse, Videos, Bilder sowie alle PowerPoint bzw. Impress Präsentationen (falls diese Programme installiert sind). Sie wird genutzt in Verbindung mit einem Computer und einem Beamer. + +Erkunden Sie OpenLP: http://openlp.org/ + +OpenLP wird von freiwiligen Helfern programmiert und gewartet. Wenn Sie sich mehr freie christliche Programme wünschen, zeigen Sie Ihren Respekt indem Sie den Knopf weiter unten drücken. @@ -1340,12 +1035,49 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ - + Projektleiter + Raoul "superfly" Snyman + +Entwickler + Tim "TRB143" Bentley + Jonathan "gushie" Corwin + Michael "cocooncrash" Gorven + Scott "sguerrieri" Guerrieri + Raoul "superfly" Snyman + Martin "mijiti" Thompson + Jon "Meths" Tibble + +Mitarbeiter + Meinert "m2j" Jordan + Andreas "googol" Preikschat + Christian "crichter" Richter + Philip "Phill" Ridout + Maikel Stuivenberg + Carsten "catini" Tingaard + Frode "frodus" Woldsund + +Tester + Philip "Phill" Ridout + Wesley "wrst" Stout (lead) + +Paketierer + Thomas "tabthorpe" Abthorpe (FreeBSD) + Tim "TRB143" Bentley (Fedora) + Michael "cocooncrash" Gorven (Ubuntu) + Matthias "matthub" Hub (Mac OS X) + Raoul "superfly" Snyman (Windows, Ubuntu) + +Erstellt mit + Python: http://www.python.org/ + Qt4: http://qt.nokia.com/ + PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro + Oxygen Icons: http://oxygen-icons.org/ + Credits - Credits + Abspann @@ -1365,7 +1097,7 @@ Built With build %s - + Version @@ -1500,7 +1232,145 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gno 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. - + Kopierrechte © 2004-2010 Raoul Snyman +Anteilige Kopierrechte © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard + +Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz. + +Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. + + +GNU General Public License +Deutsche Übersetzung der Version 2, Juni 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA + +Es ist jedermann gestattet, diese Lizenzurkunde zu vervielfältigen und unveränderte Kopien zu verbreiten; Änderungen sind jedoch nicht erlaubt. Diese Übersetzung ist kein rechtskräftiger Ersatz für die englischsprachige Originalversion! + +Vorwort + +Die meisten Softwarelizenzen sind daraufhin entworfen worden, Ihnen die Freiheit zu nehmen, die Software weiterzugeben und zu verändern. Im Gegensatz dazu soll Ihnen die GNU General Public License, die Allgemeine Öffentliche GNU-Lizenz, ebendiese Freiheit garantieren. Sie soll sicherstellen, daß die Software für alle Benutzer frei ist. Diese Lizenz gilt für den Großteil der von der Free Software Foundation herausgegebenen Software und für alle anderen Programme, deren Autoren ihr Datenwerk dieser Lizenz unterstellt haben. Auch Sie können diese Möglichkeit der Lizenzierung für Ihre Programme anwenden. (Ein anderer Teil der Software der Free Software Foundation unterliegt stattdessen der GNU Library General Public License, der Allgemeinen Öffentlichen GNU-Lizenz für Bibliotheken.) [Mittlerweile wurde die GNU Library Public License von der GNU Lesser Public License abgelöst - Anmerkung des Übersetzers.] + +Die Bezeichnung "freie" Software bezieht sich auf Freiheit, nicht auf den Preis. Unsere Lizenzen sollen Ihnen die Freiheit garantieren, Kopien freier Software zu verbreiten (und etwas für diesen Service zu berechnen, wenn Sie möchten), die Möglichkeit, die Software im Quelltext zu erhalten oder den Quelltext auf Wunsch zu bekommen. Die Lizenzen sollen garantieren, daß Sie die Software ändern oder Teile davon in neuen freien Programmen verwenden dürfen - und daß Sie wissen, daß Sie dies alles tun dürfen. + +Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen, die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern, auf diese Rechte zu verzichten. Aus diesen Einschränkungen folgen bestimmte Verantwortlichkeiten für Sie, wenn Sie Kopien der Software verbreiten oder sie verändern. + +Beispielsweise müssen Sie den Empfängern alle Rechte gewähren, die Sie selbst haben, wenn Sie - kostenlos oder gegen Bezahlung - Kopien eines solchen Programms verbreiten. Sie müssen sicherstellen, daß auch die Empfänger den Quelltext erhalten bzw. erhalten können. Und Sie müssen ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen. + +Wir schützen Ihre Rechte in zwei Schritten: (1) Wir stellen die Software unter ein Urheberrecht (Copyright), und (2) wir bieten Ihnen diese Lizenz an, die Ihnen das Recht gibt, die Software zu vervielfältigen, zu verbreiten und/oder zu verändern. + +Um die Autoren und uns zu schützen, wollen wir darüberhinaus sicherstellen, daß jeder erfährt, daß für diese freie Software keinerlei Garantie besteht. Wenn die Software von jemand anderem modifiziert und weitergegeben wird, möchten wir, daß die Empfänger wissen, daß sie nicht das Original erhalten haben, damit irgendwelche von anderen verursachte Probleme nicht den Ruf des ursprünglichen Autors schädigen. + +Schließlich und endlich ist jedes freie Programm permanent durch Software-Patente bedroht. Wir möchten die Gefahr ausschließen, daß Distributoren eines freien Programms individuell Patente lizensieren - mit dem Ergebnis, daß das Programm proprietär würde. Um dies zu verhindern, haben wir klargestellt, daß jedes Patent entweder für freie Benutzung durch jedermann lizenziert werden muß oder überhaupt nicht lizenziert werden darf. + +Es folgen die genauen Bedingungen für die Vervielfältigung, Verbreitung und Bearbeitung: + +Allgemeine Öffentliche GNU-Lizenz Bedingungen für die Vervielfältigung, Verbreitung und Bearbeitung + +0. Diese Lizenz gilt für jedes Programm und jedes andere Datenwerk, in dem ein entsprechender Vermerk des Copyright-Inhabers darauf hinweist, daß das Datenwerk unter den Bestimmungen dieser General Public License verbreitet werden darf. Im folgenden wird jedes derartige Programm oder Datenwerk als "das Programm" bezeichnet; die Formulierung "auf dem Programm basierendes Datenwerk" bezeichnet das Programm sowie jegliche Bearbeitung des Programms im urheberrechtlichen Sinne, also ein Datenwerk, welches das Programm, auch auszugsweise, sei es unverändert oder verändert und/oder in eine andere Sprache übersetzt, enthält. (Im folgenden wird die Übersetzung ohne Einschränkung als "Bearbeitung" eingestuft.) Jeder Lizenznehmer wird im folgenden als "Sie" angesprochen. + +Andere Handlungen als Vervielfältigung, Verbreitung und Bearbeitung werden von dieser Lizenz nicht berührt; sie fallen nicht in ihren Anwendungsbereich. Der Vorgang der Ausführung des Programms wird nicht eingeschränkt, und die Ausgaben des Programms unterliegen dieser Lizenz nur, wenn der Inhalt ein auf dem Programm basierendes Datenwerk darstellt (unabhängig davon, daß die Ausgabe durch die Ausführung des Programmes erfolgte). Ob dies zutrifft, hängt von den Funktionen des Programms ab. + +1. Sie dürfen auf beliebigen Medien unveränderte Kopien des Quelltextes des Programms, wie sie ihn erhalten haben, anfertigen und verbreiten. Voraussetzung hierfür ist, daß Sie mit jeder Kopie einen entsprechenden Copyright-Vermerk sowie einen Haftungsausschluß veröffentlichen, alle Vermerke, die sich auf diese Lizenz und das Fehlen einer Garantie beziehen, unverändert lassen und desweiteren allen anderen Empfängern des Programms zusammen mit dem Programm eine Kopie dieser Lizenz zukommen lassen. Sie dürfen für den eigentlichen Kopiervorgang eine Gebühr verlangen. Wenn Sie es wünschen, dürfen Sie auch gegen Entgelt eine Garantie für das Programm anbieten. + +2. Sie dürfen Ihre Kopie(n) des Programms oder eines Teils davon verändern, wodurch ein auf dem Programm basierendes Datenwerk entsteht; Sie dürfen derartige Bearbeitungen unter den Bestimmungen von Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, daß zusätzlich alle im folgenden genannten Bedingungen erfüllt werden: + +a) Sie müssen die veränderten Dateien mit einem auffälligen Vermerk versehen, der auf die von Ihnen vorgenommene Modifizierung und das Datum jeder Änderung hinweist. + +b) Sie müssen dafür sorgen, daß jede von Ihnen verbreitete oder veröffentlichte Arbeit, die ganz oder teilweise von dem Programm oder Teilen davon abgeleitet ist, Dritten gegenüber als Ganzes unter den Bedingungen dieser Lizenz ohne Lizenzgebühren zur Verfügung gestellt wird. + +c) Wenn das veränderte Programm normalerweise bei der Ausführung interaktiv Kommandos einliest, müssen Sie dafür sorgen, daß es, wenn es auf dem üblichsten Wege für solche interaktive Nutzung gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen geeigneten Copyright-Vermerk enthält sowie einen Hinweis, daß es keine Gewährleistung gibt (oder anderenfalls, daß Sie Garantie leisten), und daß die Benutzer das Programm unter diesen Bedingungen weiter verbreiten dürfen. Auch muß der Benutzer darauf hingewiesen werden, wie er eine Kopie dieser Lizenz ansehen kann. (Ausnahme: Wenn das Programm selbst interaktiv arbeitet, aber normalerweise keine derartige Meldung ausgibt, muß Ihr auf dem Programm basierendes Datenwerk auch keine solche Meldung ausgeben). + +Diese Anforderungen gelten für das bearbeitete Datenwerk als Ganzes. Wenn identifizierbare Teile des Datenwerkes nicht von dem Programm abgeleitet sind und vernünftigerweise als unabhängige und eigenständige Datenwerke für sich selbst zu betrachten sind, dann gelten diese Lizenz und ihre Bedingungen nicht für die betroffenen Teile, wenn Sie diese als eigenständige Datenwerke weitergeben. Wenn Sie jedoch dieselben Abschnitte als Teil eines Ganzen weitergeben, das ein auf dem Programm basierendes Datenwerk darstellt, dann muß die Weitergabe des Ganzen nach den Bedingungen dieser Lizenz erfolgen, deren Bedingungen für weitere Lizenznehmer somit auf das gesamte Ganze ausgedehnt werden - und somit auf jeden einzelnen Teil, unabhängig vom jeweiligen Autor. + +Somit ist es nicht die Absicht dieses Abschnittes, Rechte für Datenwerke in Anspruch zu nehmen oder Ihnen die Rechte für Datenwerke streitig zu machen, die komplett von Ihnen geschrieben wurden; vielmehr ist es die Absicht, die Rechte zur Kontrolle der Verbreitung von Datenwerken, die auf dem Programm basieren oder unter seiner auszugsweisen Verwendung zusammengestellt worden sind, auszuüben. + +Ferner bringt auch das einfache Zusammenlegen eines anderen Datenwerkes, das nicht auf dem Programm basiert, mit dem Programm oder einem auf dem Programm basierenden Datenwerk auf ein- und demselben Speicheroder Vertriebsmedium dieses andere Datenwerk nicht in den Anwendungsbereich dieser Lizenz. + +3. Sie dürfen das Programm (oder ein darauf basierendes Datenwerk gemäß Paragraph 2) als Objectcode oder in ausführbarer Form unter den Bedingungen der Paragraphen 1 und 2 kopieren und weitergeben - vorausgesetzt, daß Sie außerdem eine der folgenden Leistungen erbringen: + +a) Liefern Sie das Programm zusammen mit dem vollständigen zugehörigen maschinenlesbaren Quelltext auf einem für den Datenaustausch üblichen Medium aus, wobei die Verteilung unter den Bedingungen der Paragraphen 1 und 2 erfolgen muß. Oder: + +b) Liefern Sie das Programm zusammen mit einem mindestens drei Jahre lang gültigen schriftlichen Angebot aus, jedem Dritten eine vollständige maschinenlesbare Kopie des Quelltextes zur Verfügung zu stellen - zu nicht höheren Kosten als denen, die durch den physikalischen Kopiervorgang anfallen -, wobei der Quelltext unter den Bedingungen der Paragraphen 1 und 2 auf einem für den Datenaustausch üblichen Medium weitergegeben wird. Oder: + +c) Liefern Sie das Programm zusammen mit dem schriftlichen Angebot der Zurverfügungstellung des Quelltextes aus, das Sie selbst erhalten haben. (Diese Alternative ist nur für nicht-kommerzielle Verbreitung zulässig und nur, wenn Sie das Programm als Objectcode oder in ausführbarer Form mit einem entsprechenden Angebot gemäß Absatz b erhalten haben.) + +Unter dem Quelltext eines Datenwerkes wird diejenige Form des Datenwerkes verstanden, die für Bearbeitungen vorzugsweise verwendet wird. Für ein ausführbares Programm bedeutet "der komplette Quelltext": Der Quelltext aller im Programm enthaltenen Module einschließlich aller zugehörigen Modulschnittstellen-Definitionsdateien sowie der zur Compilation und Installation verwendeten Skripte. Als besondere Ausnahme jedoch braucht der verteilte Quelltext nichts von dem zu enthalten, was üblicherweise (entweder als Quelltext oder in binärer Form) zusammen mit den Hauptkomponenten des Betriebssystems (Kernel, Compiler usw.) geliefert wird, unter dem das Programm läuft - es sei denn, diese Komponente selbst gehört zum ausführbaren Programm. + +Wenn die Verbreitung eines ausführbaren Programms oder von Objectcode dadurch erfolgt, daß der Kopierzugriff auf eine dafür vorgesehene Stelle gewährt wird, so gilt die Gewährung eines gleichwertigen Zugriffs auf den Quelltext als Verbreitung des Quelltextes, auch wenn Dritte nicht dazu gezwungen sind, den Quelltext zusammen mit dem Objectcode zu kopieren. + +4. Sie dürfen das Programm nicht vervielfältigen, verändern, weiter lizenzieren oder verbreiten, sofern es nicht durch diese Lizenz ausdrücklich gestattet ist. Jeder anderweitige Versuch der Vervielfältigung, Modifizierung, Weiterlizenzierung und Verbreitung ist nichtig und beendet automatisch Ihre Rechte unter dieser Lizenz. Jedoch werden die Lizenzen Dritter, die von Ihnen Kopien oder Rechte unter dieser Lizenz erhalten haben, nicht beendet, solange diese die Lizenz voll anerkennen und befolgen. + +5. Sie sind nicht verpflichtet, diese Lizenz anzunehmen, da Sie sie nicht unterzeichnet haben. Jedoch gibt Ihnen nichts anderes die Erlaubnis, das Programm oder von ihm abgeleitete Datenwerke zu verändern oder zu verbreiten. Diese Handlungen sind gesetzlich verboten, wenn Sie diese Lizenz nicht anerkennen. Indem Sie das Programm (oder ein darauf basierendes Datenwerk) verändern oder verbreiten, erklären Sie Ihr Einverständnis mit dieser Lizenz und mit allen ihren Bedingungen bezüglich der Vervielfältigung, Verbreitung und Veränderung des Programms oder eines darauf basierenden Datenwerks. + +6. Jedesmal, wenn Sie das Programm (oder ein auf dem Programm basierendes Datenwerk) weitergeben, erhält der Empfänger automatisch vom ursprünglichen Lizenzgeber die Lizenz, das Programm entsprechend den hier festgelegten Bestimmungen zu vervielfältigen, zu verbreiten und zu verändern. Sie dürfen keine weiteren Einschränkungen der Durchsetzung der hierin zugestandenen Rechte des Empfängers vornehmen. Sie sind nicht dafür verantwortlich, die Einhaltung dieser Lizenz durch Dritte durchzusetzen. + +7. Sollten Ihnen infolge eines Gerichtsurteils, des Vorwurfs einer Patentverletzung oder aus einem anderen Grunde (nicht auf Patentfragen begrenzt) Bedingungen (durch Gerichtsbeschluß, Vergleich oder anderweitig) auferlegt werden, die den Bedingungen dieser Lizenz widersprechen, so befreien Sie diese Umstände nicht von den Bestimmungen dieser Lizenz. Wenn es Ihnen nicht möglich ist, das Programm unter gleichzeitiger Beachtung der Bedingungen in dieser Lizenz und Ihrer anderweitigen Verpflichtungen zu verbreiten, dann dürfen Sie als Folge das Programm überhaupt nicht verbreiten. Wenn zum Beispiel ein Patent nicht die gebührenfreie Weiterverbreitung des Programms durch diejenigen erlaubt, die das Programm direkt oder indirekt von Ihnen erhalten haben, dann besteht der einzige Weg, sowohl das Patentrecht als auch diese Lizenz zu befolgen, darin, ganz auf die Verbreitung des Programms zu verzichten. Sollte sich ein Teil dieses Paragraphen als ungültig oder unter bestimmten Umständen nicht durchsetzbar erweisen, so soll dieser Paragraph seinem Sinne nach angewandt werden; im übrigen soll dieser Paragraph als Ganzes gelten. + +Zweck dieses Paragraphen ist nicht, Sie dazu zu bringen, irgendwelche Patente oder andere Eigentumsansprüche zu verletzen oder die Gültigkeit solcher Ansprüche zu bestreiten; dieser Paragraph hat einzig den Zweck, die Integrität des Verbreitungssystems der freien Software zu schützen, das durch die Praxis öffentlicher Lizenzen verwirklicht wird. Viele Leute haben großzügige Beiträge zu dem großen Angebot der mit diesem System verbreiteten Software im Vertrauen auf die konsistente Anwendung dieses Systems geleistet; es liegt am Autor/Geber, zu entscheiden, ob er die Software mittels irgendeines anderen Systems verbreiten will; ein Lizenznehmer hat auf diese Entscheidung keinen Einfluß. + +Dieser Paragraph ist dazu gedacht, deutlich klarzustellen, was als Konsequenz aus dem Rest dieser Lizenz betrachtet wird. + +8. Wenn die Verbreitung und/oder die Benutzung des Programms in bestimmten Staaten entweder durch Patente oder durch urheberrechtlich geschützte Schnittstellen eingeschränkt ist, kann der Urheberrechtsinhaber, der das Programm unter diese Lizenz gestellt hat, eine explizite geographische Begrenzung der Verbreitung angeben, in der diese Staaten ausgeschlossen werden, so daß die Verbreitung nur innerhalb und zwischen den Staaten erlaubt ist, die nicht ausgeschlossen sind. In einem solchen Fall beinhaltet diese Lizenz die Beschränkung, als wäre sie in diesem Text niedergeschrieben. + +9. Die Free Software Foundation kann von Zeit zu Zeit überarbeitete und/oder neue Versionen der General Public License veröffentlichen. Solche neuen Versionen werden vom Grundprinzip her der gegenwärtigen entsprechen, können aber im Detail abweichen, um neuen Problemen und Anforderungen gerecht zu werden. Jede Version dieser Lizenz hat eine eindeutige Versionsnummer. Wenn in einem Programm angegeben wird, daß es dieser Lizenz in einer bestimmten Versionsnummer oder "jeder späteren Version" (\any later version") unterliegt, so haben Sie die Wahl, entweder den Bestimmungen der genannten Version zu folgen oder denen jeder beliebigen späteren Version, die von der Free Software Foundation veröffentlicht wurde. Wenn das Programm keine Versionsnummer angibt, können Sie eine beliebige Version wählen, die je von der Free Software Foundation veröffentlicht wurde. + +10. Wenn Sie den Wunsch haben, Teile des Programms in anderen freien Programmen zu verwenden, deren Bedingungen für die Verbreitung anders + +sind, schreiben Sie an den Autor, um ihn um die Erlaubnis zu bitten. Für Software, die unter dem Copyright der Free Software Foundation steht, schreiben Sie an die Free Software Foundation; wir machen zu diesem Zweck gelegentlich Ausnahmen. Unsere Entscheidung wird von den beiden Zielen geleitet werden, zum einen den freien Status aller von unserer freien Software abgeleiteten Datenwerke zu erhalten und zum anderen das gemeinschaftliche Nutzen und Wiederverwenden von Software im allgemeinen zu fördern. + +Keine Gewährleistung + +11. Da das Programm ohne jegliche Kosten lizenziert wird, besteht keinerlei Gewährleistung für das Programm, soweit dies gesetzlich zulässig ist. Sofern nicht anderweitig schriftlich bestätigt, stellen die Copyright-Inhaber und/oder Dritte das Programm so zur Verfügung, "wie es ist", ohne irgendeine Gewährleistung, weder ausdrücklich noch implizit, einschließlich - aber nicht begrenzt auf - Marktreife oder Verwendbarkeit für einen bestimmten Zweck. Das volle Risiko bezüglich Qualität und Leistungsfähigkeit des Programms liegt bei Ihnen. Sollte sich das Programm als fehlerhaft herausstellen, liegen die Kosten für notwendigen Service, Reparatur oder Korrektur bei Ihnen. + +12. In keinem Fall, außer wenn durch geltendes Recht gefordert oder schriftlich zugesichert, ist irgendein Copyright-Inhaber oder irgendein Dritter, der das Programm wie oben erlaubt modifiziert oder verbreitet hat, Ihnen gegenüber für irgendwelche Schäden haftbar, einschließlich jeglicher allgemeiner oder spezieller Schäden, Schäden durch Seiteneffekte (Nebenwirkungen) oder Folgeschäden, die aus der Benutzung des Programms oder der Unbenutzbarkeit des Programms folgen (einschließlich - aber nicht beschränkt auf - Datenverluste, fehlerhafte Verarbeitung von Daten, Verluste, die von Ihnen oder anderen getragen werden müssen, oder dem Unvermögen des Programms, mit irgendeinem anderen Programm zusammenzuarbeiten), selbst wenn ein Copyright-Inhaber oder Dritter über die Möglichkeit solcher Schäden unterrichtet worden war. + +Ende der Bedingungen + +Anhang: + +Wie Sie diese Bedingungen auf Ihre eigenen, neuen Programme anwenden können Wenn Sie ein neues Programm entwickeln und wollen, daß es vom größtmöglichen Nutzen für die Allgemeinheit ist, dann erreichen Sie das am besten, indem Sie es zu freier Software machen, die jeder unter diesen Bestimmungen weiterverbreiten und verändern kann. + +Um dies zu erreichen, fügen Sie die folgenden Vermerke zu Ihrem Programm hinzu. Am sichersten ist es, sie an den Anfang einer jeden Quelldatei zu stellen, um den Gewährleistungsausschluß möglichst deutlich darzustellen; zumindest aber sollte jede Datei eine Copyright-Zeile besitzen sowie einen kurzen Hinweis darauf, wo die vollständigen Vermerke zu finden sind. + +(eine Zeile mit dem Programmnamen und einer kurzen Beschreibung) Copyright (C) 19(yy) (Name des Autors) + +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 02111-1307, USA. + +Auf Deutsch: + +(eine Zeile mit dem Programmnamen und einer kurzen Beschreibung) Copyright (C) 19(jj) (Name des Autors) + +Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. + +Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. + +Fügen Sie auch einen kurzen Hinweis hinzu, wie Sie elektronisch und per Brief erreichbar sind. Wenn Ihr Programm interaktiv ist, sorgen Sie dafür, daß es nach dem Start einen kurzen Vermerk ausgibt: Gnomovision version 69, Copyright (C) 19hyy) (Namedes Autors) 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. + +Auf Deutsch: + +Gnomovision Version 69, Copyright (C) 19(jj) (Name des Autors) + +Für Gnomovision besteht KEINERLEI GARANTIE; geben Sie `show w' für Details ein. Gnonovision ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen; geben Sie `show c' für Details ein. + +Die hypothetischen Kommandos `show w' und `show c' sollten die entsprechenden Teile der GNU-GPL anzeigen. Natürlich können die von Ihnen verwendeten Kommandos anders heißen als `show w' und `show c'; es könnten auch Mausklicks oder Menüpunkte sein - was immer am besten in Ihr Programm paßt. + +Soweit vorhanden, sollten Sie auch Ihren Arbeitgeber (wenn Sie als Programmierer arbeiten) oder Ihre Schule einen Copyright-Verzicht für das Programm unterschreiben lassen. Hier ein Beispiel. Die Namen müssen Sie natürlich ändern. + +Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. + +Unterschrift von Ty Cooni, 1 April 1989 Ty Coon, President of Vice + +Auf Deutsch: + +Die Yoyodyne GmbH erhebt keinen urheberrechtlichen Anspruch auf das von James Hacker geschriebene Programm "Gnomovision" (einem Schrittmacher für Compiler). + +Unterschrift von Ty Cooni, 1. April 1989 Ty Coon, Vizepräsident + +Diese General Public License gestattet nicht die Einbindung des Programms in proprietäre Programme. Ist Ihr Programm eine Funktionsbibliothek, so kann es sinnvoller sein, das Binden proprietärer Programme mit dieser Bibliothek zu gestatten. Wenn Sie dies tun wollen, sollten Sie die GNU Library General Public License anstelle dieser Lizenz verwenden. + @@ -1508,27 +1378,27 @@ This General Public License does not permit incorporating your program into prop Advanced - + Erweitert UI Settings - + UI Einstellungen Number of recent files to display: - + Anzahl der zuletzt ausgewählten Datein: Remember active media manager tab on startup - + Letzten aktiven Reiter in der Medienverwaltung bei Neustart auswählen Double-click to send items straight to live (requires restart) - + Doppel-Klick, um Elemente direkt zum Livebild zu senden (erfordert Neustart) @@ -1541,7 +1411,7 @@ This General Public License does not permit incorporating your program into prop Theme &name: - + Design &name: @@ -1571,7 +1441,7 @@ This General Public License does not permit incorporating your program into prop Gradient: - + Übergang: @@ -1591,7 +1461,7 @@ This General Public License does not permit incorporating your program into prop &Background - + &Hintergrund @@ -1621,7 +1491,7 @@ This General Public License does not permit incorporating your program into prop Adjust line spacing: - + Zeilenabstand anpassen: @@ -1646,7 +1516,7 @@ This General Public License does not permit incorporating your program into prop Style: - + Stil: @@ -1656,17 +1526,17 @@ This General Public License does not permit incorporating your program into prop Use default location - + Benutze Standard Pfad X position: - + X position: Y position: - + Y position: @@ -1686,7 +1556,7 @@ This General Public License does not permit incorporating your program into prop &Main Font - + &Haupt-Schriftart @@ -1696,7 +1566,7 @@ This General Public License does not permit incorporating your program into prop &Footer Font - + &Fußzeilen-Schrift @@ -1706,17 +1576,17 @@ This General Public License does not permit incorporating your program into prop Outline size: - + Umriß Größe: Outline color: - + Umriß Farbe: Show outline: - + Zeige Umriß: @@ -1726,17 +1596,17 @@ This General Public License does not permit incorporating your program into prop Shadow size: - + Schatten Größe: Shadow color: - + Schatten Farbe: Show shadow: - + Zeige Schatten: @@ -1746,7 +1616,7 @@ This General Public License does not permit incorporating your program into prop Horizontal align: - + Waagerechte Ausrichtung: @@ -1766,7 +1636,7 @@ This General Public License does not permit incorporating your program into prop Vertical align: - + Senkrechte Ausrichtung: @@ -1791,12 +1661,12 @@ This General Public License does not permit incorporating your program into prop Transition active - + Übergang aktiv &Other Options - + andere &Optionen @@ -1806,40 +1676,41 @@ This General Public License does not permit incorporating your program into prop All Files - + Alle Dateien Select Image - + Bild auswählen First color: - + Erste Farbe: Second color: - + Zweite Farbe: Slide height is %s rows. - + Folienhöhe %s Reihen. OpenLP.ExceptionDialog - - - Error Occured - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - + Oh! OpenLP hat ein Problem und kann es nicht beheben. Der Text im unteren Fenster enthält Informationen, welche möglicherweise hilfreich für die OpenLP Entwickler sind. +Bitte senden Sie eine E-Mail an: bugs@openlp.org mit einer auführlichen Beschreibung was Sie taten als das Problem auftrat. + + + + Error Occurred + Fehler @@ -1862,7 +1733,7 @@ This General Public License does not permit incorporating your program into prop Display if a single screen - + Anzeige, bei nur einem Bildschirm @@ -1892,22 +1763,22 @@ This General Public License does not permit incorporating your program into prop Prompt to save before starting a new service - + Aufforderung zum Speichern, bevor ein ein neuer Ablauf gestartet wird Automatically preview next item in service - + Automatische Vorschau des nächsten Elementes im Ablauf Slide loop delay: - + Pause während Schleifen: sec - + sek @@ -1917,47 +1788,47 @@ This General Public License does not permit incorporating your program into prop CCLI number: - + CCLI Nummer: SongSelect username: - + SongSelect Benutzername: SongSelect password: - + SongSelect Passwort: Display Position - + Position der Anzeige X - + X Y - + Y Height - + Höhe Width - + Breite Override display position - + Position der Anzeige überschreiben @@ -1973,14 +1844,14 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language - + Sprache - + Please restart OpenLP to use your new language setting. - + Bitte starten Sie OpenLP neu, um die neue Spracheinstellung zu verwenden. @@ -1990,11 +1861,6 @@ This General Public License does not permit incorporating your program into prop OpenLP 2.0 OpenLP 2.0 - - - English - Deutsch - &File @@ -2068,7 +1934,7 @@ This General Public License does not permit incorporating your program into prop Create a new service. - + Neuen Ablauf erzeugen. @@ -2078,7 +1944,7 @@ This General Public License does not permit incorporating your program into prop &Open - &Öffnen + Ö&ffnen @@ -2088,7 +1954,7 @@ This General Public License does not permit incorporating your program into prop Open an existing service. - + Vorhandenen Ablauf öffnen. @@ -2108,7 +1974,7 @@ This General Public License does not permit incorporating your program into prop Save the current service to disk. - + Aktuellen Ablauf speichern. @@ -2128,12 +1994,12 @@ This General Public License does not permit incorporating your program into prop Save the current service under a new name. - + Aktuellen Ablauf unter neuem Namen speichern. Ctrl+Shift+S - + Ctrl+Shift+S @@ -2158,7 +2024,7 @@ This General Public License does not permit incorporating your program into prop &Configure OpenLP... - + &Einstellungen ... @@ -2173,7 +2039,7 @@ This General Public License does not permit incorporating your program into prop Toggle the visibility of the media manager. - + Medien Verwaltung ein/ausschalten. @@ -2193,7 +2059,7 @@ This General Public License does not permit incorporating your program into prop Toggle the visibility of the theme manager. - + Design Manager ein/ausschalten. @@ -2213,7 +2079,7 @@ This General Public License does not permit incorporating your program into prop Toggle the visibility of the service manager. - + Ablauf Manager ein/ausschalten. @@ -2233,7 +2099,7 @@ This General Public License does not permit incorporating your program into prop Toggle the visibility of the preview panel. - + Vorschau Anzeige ein/ausschalten. @@ -2243,17 +2109,17 @@ This General Public License does not permit incorporating your program into prop &Live Panel - + &Live Ansicht Toggle Live Panel - + Live Ansicht ein/ausschalten Toggle the visibility of the live panel. - + Live Ansicht ein/ausschalten. @@ -2283,7 +2149,7 @@ This General Public License does not permit incorporating your program into prop &About - &Über + Üb&er @@ -2308,47 +2174,47 @@ This General Public License does not permit incorporating your program into prop &Auto Detect - + &Automatische Auswahl Use the system language, if available. - + Benutze Systemsprache, falls verfügbar. Set the interface language to %s - + Ändert die Sprache zu %s Add &Tool... - + Hilfsprogramm hinzufügen ... Add an application to the list of tools. - + Füge eine Anwendung zur Liste der Hilfsprogramme hinzu. &Default - + Standard Set the view mode back to the default. - + Setzt Programmmansicht auf Standard Einstellung zurück. &Setup - + Ein&stellungen Set the view mode to Setup. - + Aktiviert Einstellungs Ansichtsmodus. @@ -2358,7 +2224,7 @@ This General Public License does not permit incorporating your program into prop Set the view mode to Live. - + Aktiviert Live Ansichtsmodus. @@ -2366,124 +2232,202 @@ This General Public License does not permit incorporating your program into prop OpenLP-Version aktualisiert - + OpenLP Main Display Blanked Hauptbildschirm abgedunkelt - + The Main Display has been blanked out Die Projektion ist momentan nicht aktiv - + Save Changes to Service? Änderungen am Ablauf speichern? - + Your service has changed. Do you want to save those changes? - + Der Ablauf wurde geändert. Wollen Sie diese Änderungen speichern? - + Default Theme: %s - - - - - AddHereYourLanguageName - + Standard Design: %s 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/. - + Version %s von OpenLP ist verfügbar (installierte Version ist %s.) + +Sie können die letzte Version auf http://openlp.org/ abrufen. + + + + English + Please add the name of your language here + Deutsch OpenLP.MediaManagerItem - + No Items Selected - + Keine Elemente ausgewählt. - + + Import %s + Import %s + + + + Import a %s + Import ein(e) %s + + + + Load %s + Lade %s + + + + Load a new %s + Lade ein(e) %s + + + + New %s + Neu(e) %s + + + + Add a new %s + Füge ein(e) %s hinzu + + + + Edit %s + Bearbeite %s + + + + Edit the selected %s + Bearbeite ausgewählte %s + + + + Delete %s + Lösche %s + + + + Delete the selected item + Markiertes Element löschen + + + + Preview %s + Vorschau für %s + + + + Preview the selected item + Zeige das auswählte Element in der Vorschau an + + + + Send the selected item live + Ausgewähltes Element Live anzeigen + + + + Add %s to Service + Füge %s zum Ablauf hinzu + + + + Add the selected item(s) to the service + Füge Element(e) zum Ablauf hinzu + + + &Edit %s - + B&earbeite %s - + &Delete %s - + Lösche %s - + &Preview %s - + Vorschau von %s - + &Show Live &Zeige Live - + &Add to Service &Zum Ablauf hinzufügen - + &Add to selected Service Item - + Füge Element zu aktuellem Ablaufelement hinzu - + You must select one or more items to preview. - + Sie müssen ein oder mehrere Elemente für die Vorschau auswählen. - + You must select one or more items to send live. - + Sie müssen ein oder mehrere Elemente auswählen für die Live Ansicht. - + You must select one or more items. - + Sie müssen ein oder mehrere Elemente auswählen. - + No items selected - + Kein Element ausgewählt - + You must select one or more items Sie müssen mindestens ein Element markieren - + No Service Item Selected - + Kein Element des Ablaufs ausgewählt - + You must select an existing service item to add to. - + Sie müssen einen vorhandenen Ablauf auswählen, der hinzugefügt werden soll. - + Invalid Service Item - + Ungültiges Ablauf Element - + You must select a %s service item. - + Sie müssen ein(e) %s des Ablaufs wählen. @@ -2524,19 +2468,19 @@ You can download the latest version from http://openlp.org/. Inaktiv - + %s (Inactive) %s (Inaktiv) - + %s (Active) %s (Aktiv) - + %s (Disabled) - %s (Deaktiviert) + %s (Abgeschaltet) @@ -2544,12 +2488,12 @@ You can download the latest version from http://openlp.org/. Reorder Service Item - + Aufnahme Ablauf Element Up - + Hoch @@ -2559,7 +2503,7 @@ You can download the latest version from http://openlp.org/. Down - + Runter @@ -2575,7 +2519,7 @@ You can download the latest version from http://openlp.org/. Erstelle neuen Ablauf - + Open Service Öffnen Ablauf @@ -2585,7 +2529,7 @@ You can download the latest version from http://openlp.org/. Öffne Ablauf - + Save Service Ablauf speichern @@ -2607,72 +2551,72 @@ You can download the latest version from http://openlp.org/. Move to &top - + Verschiebe nach ganz oben Move item to the top of the service. - + Verschiebe Element an den Anfang des Ablaufs. Move &up - + Verschiebe nach oben Move item up one position in the service. - + Verschiebe Element im Ablauf um eine Position nach oben. Move &down - + Verschiebe nach unten Move item down one position in the service. - + Verschiebe Element im Ablauf um eine Position nach unten. Move to &bottom - + Verschiebe nach unten Move item to the end of the service. - + Verschiebe Element ans Ende des Ablaufs. &Delete From Service - + Vom Ablauf löschen Delete the selected item from the service. - + Lösche das gewählte Element vom Ablauf. &Add New Item - + Füge neues Element hinzu &Add to Selected Item - + Zum gewählten Element hinzufügen &Edit Item - &Bearbeite Element + B&earbeite Element &Reorder Item - + Aufnahme Element @@ -2695,50 +2639,56 @@ You can download the latest version from http://openlp.org/. &Design des Elements ändern - + Save Changes to Service? Änderungen am Ablauf speichern? - + Your service is unsaved, do you want to save those changes before creating a new one? - + Der aktuelle Ablauf ist wurde nicht gesichert. Wollen Sie die Änderungen speichern, bevor ein neuer Ablauf erstellt wird? - + OpenLP Service Files (*.osz) - + OpenLP Ablauf Dateien(*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Der aktuelle Ablauf wurde nicht gespeichert. Wollen Sie die Änderungen speichern, bevor ein neuer geöffnet wird? - + Error Fehler - + File is not a valid service. The content encoding is not UTF-8. - + Datei ist kein gültiger Ablauf. +Der Inhalt wurde nicht in UTF-8 kodiert. - + File is not a valid service. - + Datei ist kein gültiger Ablauf. - + Missing Display Handler - + Fehlende Anzeige Steuerung - + Your item cannot be displayed as there is no handler to display it - + Dieses Element kann nicht angezeigt werden, da es keine Steuerung dafür gibt + + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + Dieses Element kann nicht angezeigt werden, da die zugehörige Erweiterung fehlt oder inaktiv ist @@ -2754,7 +2704,7 @@ The content encoding is not UTF-8. Configure OpenLP - + Konfiguriere OpenLP @@ -2782,75 +2732,60 @@ The content encoding is not UTF-8. Hide - + Verbergen - + Move to live Verschieben zur Live Ansicht - + Start continuous loop Endlosschleife starten - + Stop continuous loop Endlosschleife beenden - + s s - + Delay between slides in seconds Pause zwischen den Folien in Sekunden - + Start playing media Abspielen - - Blank Screen - - - - - Blank to Theme - - - - - Show Desktop - - - - - Edit and re-preview song - - - - + Go To - + Gehe zu + + + + Edit and reload song preview + Bearbeiten und Lied Vorschau aktualisieren OpenLP.SpellTextEdit - + Spelling Suggestions - + Rechtschreib Empfehlungen - + Formatting Tags - + Formatkürzel @@ -2863,7 +2798,7 @@ The content encoding is not UTF-8. Create a new theme. - + Erzeuge ein neues Design. @@ -2873,7 +2808,7 @@ The content encoding is not UTF-8. Edit a theme. - + Bearbeite ein Design. @@ -2883,7 +2818,7 @@ The content encoding is not UTF-8. Delete a theme. - + Lösche ein Design. @@ -2893,7 +2828,7 @@ The content encoding is not UTF-8. Import a theme. - + Importiere ein Design. @@ -2903,52 +2838,52 @@ The content encoding is not UTF-8. Export a theme. - + Exportiere ein Design. &Edit Theme - + B&earbeite Design &Delete Theme - + Lösche &Design Set As &Global Default - + Setze als &globalen Standard E&xport Theme - + E&xport Design %s (default) - + %s (Standard) You must select a theme to edit. - + Bitte wählen Sie ein Design zum Bearbeiten aus. You must select a theme to delete. - + Bitte wählen Sie ein Design zum Löschen aus. Delete Confirmation - + Löschen Bestätigen Delete theme? - + Design löschen? @@ -2958,22 +2893,12 @@ The content encoding is not UTF-8. You are unable to delete the default theme. - - - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - + Es ist nicht möglich das Standard Design zu entfernen. You have not selected a theme. - + Sie haben kein Design ausgewählt. @@ -2983,22 +2908,22 @@ The content encoding is not UTF-8. Theme Exported - + Design exportiert Your theme has been successfully exported. - + Das Design wurde erfolgreich exportiert. Theme Export Failed - + Design Export fehlgeschlagen Your theme could not be exported due to an error. - + Dieses Design konnte aufgrund eines Fehlers nicht exportiert werden. @@ -3008,18 +2933,19 @@ The content encoding is not UTF-8. Theme (*.*) - + Design (*.*) File is not a valid theme. The content encoding is not UTF-8. - + Dies ist kein gültiges Design. +Die Datei ist nicht in UTF-8 kodiert. File is not a valid theme. - + Diese Datei beinhaltet kein gültiges Design. @@ -3029,7 +2955,17 @@ The content encoding is not UTF-8. A theme with this name already exists. Would you like to overwrite it? - + Ein Design mit diesem Namen existiert bereits. Soll es überschrieben werden? + + + + Theme %s is used in the %s plugin. + Design %s wird in der %s Erweiterung benutzt. + + + + Theme %s is used by the service manager. + Design %s wird in der Ablaufverwaltung benutzt. @@ -3042,17 +2978,17 @@ The content encoding is not UTF-8. Global Theme - + Globales Design Theme Level - + Design Ebene S&ong Level - + Lied Ebene @@ -3062,7 +2998,7 @@ The content encoding is not UTF-8. &Service Level - + Ablauf Ebene @@ -3072,12 +3008,12 @@ The content encoding is not UTF-8. &Global Level - + &Globale Ebene Use the global theme, overriding any themes associated with either the service or the songs. - Das Standarddesign immer verwenden, unabhängig vom Lieddesign oder Ablaufdesign + Das Standarddesign immer verwenden, unabhängig vom Lieddesign oder Ablaufdesign. @@ -3085,110 +3021,55 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - - - Presentation - Präsentation - - - - Presentations - Präsentationen - - - - Load - - - - - Load a new Presentation - - - - - Delete - Löschen - - - - Delete the selected Presentation - - - - - Preview - Vorschau - - - - Preview the selected Presentation - - - - - Live - Live - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - + <strong>Erweiterung Präsentationen</strong><bzr/>Die Erweiterung Präsentationen ermöglicht die Darstellung von Präsentationen, unter Verwendung verschiedener Programme, In einer Auswahlbox kann eines der verfügbaren Programme gewählt werden. PresentationPlugin.MediaItem - + + Presentation + Präsentation + + + Select Presentation(s) Präsentation(en) auswählen - + Automatic - + Automatisch - + Present using: Anzeigen mit: - + A presentation with that filename already exists. Eine Präsentation mit diesem Dateinamen existiert bereits. - + You must select an item to delete. - + Es muss ein Element zum Löschen ausgewählt werden. - + File Exists - + Datei existiert - + Unsupported File - + Datei nicht unterstützt - + This type of presentation is not supported. - + Dieser Präsentationstyp wird nicht unterstützt. @@ -3201,17 +3082,17 @@ The content encoding is not UTF-8. Available Controllers - Verfügbare Präsentationsprogramme: + Verfügbare Präsentationsprogramme Advanced - + Erweitert Allow presentation application to be overriden - + Präsentations Programm kann ersetzt werden @@ -3219,17 +3100,7 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - - - Remote - - - - - Remotes - Fernprojektion + <strong>Erweiterung Fernprojektion</strong><br/>Die Erweiterung Fernprojektion ermöglicht es eine laufende Version von OpenLP von einem anderen Computer über einen Web-Browser oder über die Fernprojektions Oberfläche zu steuern. @@ -3242,17 +3113,17 @@ The content encoding is not UTF-8. Serve on IP address: - + Verfügbar über IP-Adresse: Port number: - + Port-Nummer: Server Settings - + Server Einstellungen @@ -3260,46 +3131,41 @@ The content encoding is not UTF-8. &Song Usage Tracking - + &Delete Tracking Data - + Delete song usage data up to a specified date. - + &Extract Tracking Data - + Generate a report on song usage. - + Toggle Tracking - + Toggle the tracking of song usage. - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - - - SongUsage @@ -3308,17 +3174,17 @@ The content encoding is not UTF-8. Delete Song Usage Data - + Delete Selected Song Usage Events? - + Are you sure you want to delete selected Song Usage data? - +
@@ -3326,12 +3192,12 @@ The content encoding is not UTF-8. Song Usage Extraction - + Select Date Range - + @@ -3359,81 +3225,11 @@ The content encoding is not UTF-8. Import songs using the import wizard. - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - - - Song - Lied - - - - Songs - Lieder - - - - Add - - - - - Add a new Song - - - - - Edit - Bearbeiten - - - - Edit the selected Song - - - - - Delete - Löschen - - - - Delete the selected Song - - - - - Preview - Vorschau - - - - Preview the selected Song - - - - - Live - Live - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service @@ -3476,8 +3272,8 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? - + You have not set a display name for the author, combine the first and last names? + Sie haben keinen Anzeige-Namen für den Autor gewählt. Soll der Vor- und Nachname kombiniert werden?
@@ -3490,17 +3286,17 @@ The content encoding is not UTF-8. &Title: - + &Titel: &Lyrics: - + Noten: &Add - + Hinzufügen @@ -3510,12 +3306,12 @@ The content encoding is not UTF-8. Ed&it All - + Alles Bearbeiten &Delete - + Löschen @@ -3565,12 +3361,12 @@ The content encoding is not UTF-8. New &Theme - + Copyright Information - Copyright Angaben + Kopierrecht Informationen @@ -3595,52 +3391,52 @@ The content encoding is not UTF-8. Add Author - + Autor Hinzufügen This author does not exist, do you want to add them? - + Dieser Autor existiert nicht. Soll er hinzu gefügt werden? No Author Selected - + Kein Autor ausgewählt You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Es wurde kein gültiger Autor ausgewählt. Bitte wählen Sie einen Autor aus der Liste oder geben Sie einen neuen Author ein und drücken die Schaltfläche "Author zum Lied hinzufügen", Add Topic - + Thema hinzufügen This topic does not exist, do you want to add it? - + Dieses Thema existiert nicht. Soll es hinzugefügt werden? No Topic Selected - + Kein Thema gewählt You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + Es wurde kein gültiges Thema ausgewählt. Bitte wählen Sie ein Thema aus der Liste oder geben Sie ein neues Thema ein und drücken die Schaltfläche "Thema zum Lied hinzufügen". Add Book - + Buch hinzufügen This song book does not exist, do you want to add it? - + @@ -3650,77 +3446,77 @@ The content encoding is not UTF-8. You need to type in a song title. - + You need to type in at least one verse. - + Warning - + You have not added any authors for this song. Do you want to add an author now? - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Alt&ernate title: - + &Verse order: - + &Manage Authors, Topics, Song Books - + Authors, Topics && Song Book - + CCLI number: - + CCLI Nummer: This author is already in the list. - + This topic is already in the list. - + Book: - Buch: + Buch: Number: - + Nummer: @@ -3733,338 +3529,373 @@ The content encoding is not UTF-8. &Verse type: - + &Insert - + SongsPlugin.ImportWizardForm - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + - + You need to add at least one OpenSong song file to import from. - + - + No CCLI Files Selected - + - + You need to add at least one CCLI file to import from. - + - + Starting import... - Starte import ... + Starte Import... - + Song Import Wizard - + - + Welcome to the Song Import Wizard - + - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + - + Select Import Source Importquelle auswählen - + Select the import format, and where to import from. Wähle das Import Format und woher der Import erfolgen soll. - + Format: Format: - + OpenLyrics - + - + OpenSong OpenSong - + Add Files... - + - + Remove File(s) - + - + Filename: - + - + Browse... - + - + Importing - + - + Please wait while your songs are imported. - + - + Ready. Fertig. - + %p% - + - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 - + openlp.org 1.x - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + Importing "%s"... - + Importing %s... + + + No EasyWorship Song Database Selected + Es ist keine EasyWorship Lied Datenbank ausgewählt + + + + You need to select an EasyWorship song database file to import from. + Bitte wählen Sie die zu importierende EasyWorship Lied Datenbank aus. + + + + Select EasyWorship Database File + Wählen Sie eine EasyWorship Datenbank Datei aus + + + + EasyWorship + EasyWorship + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + Leider können noch keine OpenLyric Lieder importiert werden, aber vielleicht klappts ja in der nächsten Version. + + + + Administered by %s + + SongsPlugin.MediaItem - + + Song + Lied + + + Song Maintenance Liedverwaltung - + Maintain the lists of authors, topics and books Autoren, Designs und Bücher verwalten - + Search: Suche: - + Type: Art: - + Clear - + Abbrechen - + Search Suche - + Titles Titel - + Lyrics Liedtext - + Authors Autoren - + You must select an item to edit. - + - + You must select an item to delete. - + Es muss ein Element zum Löschen ausgewählt werden. - + CCLI Licence: CCLI-Lizenz: - + Are you sure you want to delete the selected song? - + - + Are you sure you want to delete the %d selected songs? - + - + Delete Song(s)? - + @@ -4072,12 +3903,12 @@ The content encoding is not UTF-8. &Name: - + &Publisher: - + @@ -4087,36 +3918,36 @@ The content encoding is not UTF-8. You need to type in a name for the book. - + Song Book Maintenance - + SongsPlugin.SongImport - + copyright - + - + © - + SongsPlugin.SongImportForm - + Finished import. - Importvorgang abgeschlossen. + Importvorgang abgeschlossen. - + Your song import failed. @@ -4141,7 +3972,7 @@ The content encoding is not UTF-8. &Add - + Hinzufügen @@ -4151,7 +3982,7 @@ The content encoding is not UTF-8. &Delete - + @@ -4206,67 +4037,67 @@ The content encoding is not UTF-8. Song Books - + Could not add your author. - + This author already exists. - + Could not add your topic. - + This topic already exists. - + Could not add your book. - + This book already exists. - + Could not save your changes. - - - - - Could not save your modified author, because he already exists. - + Could not save your modified topic, because it already exists. - + This author cannot be deleted, they are currently assigned to at least one song. - + This topic cannot be deleted, it is currently assigned to at least one song. - + This book cannot be deleted, it is currently assigned to at least one song. - + + + + + Could not save your modified author, because the author already exists. + Der geänderte Autor kann nicht gespeichert werden, da er bereits existiert. @@ -4284,12 +4115,12 @@ The content encoding is not UTF-8. Enable search as you type - + Aktiviere Suche beim tippen Display verses on live tool bar - + @@ -4311,8 +4142,8 @@ The content encoding is not UTF-8. - You need to type in a topic name! - Sie müssen dem Thema einen Namen geben! + You need to type in a topic name. + Bitte geben Sie ein Thema ein. @@ -4345,7 +4176,7 @@ The content encoding is not UTF-8. Ending - Coda (Schluss) + Schluss diff --git a/resources/i18n/en.ts b/resources/i18n/en.ts index 9ba29a478..08c83f3dd 100644 --- a/resources/i18n/en.ts +++ b/resources/i18n/en.ts @@ -17,16 +17,6 @@ <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - Alert - - - - - Alerts - - AlertsPlugin.AlertForm @@ -172,6 +162,19 @@ + + BiblePlugin.MediaItem + + + Error + + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + + + BiblesPlugin @@ -184,86 +187,6 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - Bible - - - - - Bibles - - - - - Import - - - - - Import a Bible - - - - - Add - - - - - Add a new Bible - - - - - Edit - - - - - Edit the selected Bible - - - - - Delete - - - - - Delete the selected Bible - - - - - Preview - - - - - Preview the selected Bible - - - - - Live - - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - - BiblesPlugin.BibleDB @@ -287,7 +210,7 @@ - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -586,42 +509,42 @@ Changes do not affect verses already in the service. - + Empty Copyright - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. - + Bible Exists - - This Bible already exists! Please import a different Bible or first delete the existing one. + + This Bible already exists. Please import a different Bible or first delete the existing one. - + Open OSIS File - + Open Books CSV File - + Open Verses CSV File - + Open OpenSong Bible @@ -631,12 +554,12 @@ Changes do not affect verses already in the service. - + Finished import. - + Your Bible import failed. @@ -644,107 +567,107 @@ Changes do not affect verses already in the service. BiblesPlugin.MediaItem - + + Bible + + + + Quick - + Advanced - + Version: - + Dual: - + Search type: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + No matching book could be found in this Bible. - - etc - - - - + Bible not fully loaded. @@ -761,7 +684,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -914,106 +837,18 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - - Customs + + You haven't selected an item to edit. - - Import - - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - - - - - Add a new Custom - - - - - Edit - - - - - Edit the selected Custom - - - - - Delete - - - - - Delete the selected Custom - - - - - Preview - - - - - Preview the selected Custom - - - - - Live - - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service + + You haven't selected an item to delete. @@ -1021,134 +856,59 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - - - - - Images - - - - - Load - - - - - Load a new Image - - - - - Add - - - - - Add a new Image - - - - - Edit - - - - - Edit the selected Image - - - - - Delete - - - - - Delete the selected Image - - - - - Preview - - - - - Preview the selected Image - - - - - Live - - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + + + + Select Image(s) - + All Files - + Replace Live Background - + Replace Background - + Reset Live Background - + You must select an image to delete. - + Image(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -1160,111 +920,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - - - - - Add a new Media - - - - - Edit - - - - - Edit the selected Media - - - - - Delete - - - - - Delete the selected Media - - - - - Preview - - - - - Preview the selected Media - - - - - Live - - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - - MediaPlugin.MediaItem - - Select Media - - - - - Replace Live Background - - - - - Replace Background - - - - + Media - + + Select Media + + + + + Replace Live Background + + + + + Replace Background + + + + You must select a media file to delete. @@ -1272,7 +952,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1833,7 +1513,7 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - Error Occured + Error Occurred @@ -1973,43 +1653,23 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - - - New Service - - - - - Open Service - - - - - Save Service - - OpenLP 2.0 - - - AddHereYourLanguageName - - &File @@ -2075,6 +1735,11 @@ This General Public License does not permit incorporating your program into prop &New + + + New Service + + Create a new service. @@ -2090,6 +1755,11 @@ This General Public License does not permit incorporating your program into prop &Open + + + Open Service + + Open an existing service. @@ -2105,6 +1775,11 @@ This General Public License does not permit incorporating your program into prop &Save + + + Save Service + + Save the current service to disk. @@ -2373,115 +2048,191 @@ You can download the latest version from http://openlp.org/. - + OpenLP Main Display Blanked - + The Main Display has been blanked out - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s - + English + Please add the name of your language here OpenLP.MediaManagerItem - + No Items Selected - + + Import %s + + + + + Import a %s + + + + + Load %s + + + + + Load a new %s + + + + + New %s + + + + + Add a new %s + + + + + Edit %s + + + + + Edit the selected %s + + + + + Delete %s + + + + + Delete the selected item + + + + + Preview %s + + + + + Preview the selected item + + + + + Send the selected item live + + + + + Add %s to Service + + + + + Add the selected item(s) to the service + + + + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2524,17 +2275,17 @@ You can download the latest version from http://openlp.org/. - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2326,7 @@ You can download the latest version from http://openlp.org/. - + Open Service @@ -2585,7 +2336,7 @@ You can download the latest version from http://openlp.org/. - + Save Service @@ -2695,51 +2446,56 @@ You can download the latest version from http://openlp.org/. - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + + OpenLP.ServiceNoteForm @@ -2785,57 +2541,42 @@ The content encoding is not UTF-8. - - Blank Screen - - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - - Edit and re-preview song + + Edit and reload song preview - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media - + Go To @@ -2843,12 +2584,12 @@ The content encoding is not UTF-8. OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -2962,12 +2703,12 @@ The content encoding is not UTF-8. - Theme %s is use in %s plugin. + Theme %s is used in the %s plugin. - Theme %s is use by the service manager. + Theme %s is used by the service manager. @@ -3087,106 +2828,51 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - - - - - Presentations - - - - - Load - - - - - Load a new Presentation - - - - - Delete - - - - - Delete the selected Presentation - - - - - Preview - - - - - Preview the selected Presentation - - - - - Live - - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - + + Presentation + + + + Select Presentation(s) - + Automatic - + Present using: - + File Exists - + A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported. - + You must select an item to delete. @@ -3221,16 +2907,6 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - - RemotePlugin.RemoteTab @@ -3297,11 +2973,6 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3366,76 +3037,6 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - - - - - Songs - - - - - Add - - - - - Add a new Song - - - - - Edit - - - - - Edit the selected Song - - - - - Delete - - - - - Delete the selected Song - - - - - Preview - - - - - Preview the selected Song - - - - - Live - - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm @@ -3476,7 +3077,7 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? + You have not set a display name for the author, combine the first and last names? @@ -3744,247 +3345,277 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + + No EasyWorship Song Database Selected + + + + + You need to select an EasyWorship song database file to import from. + + + + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + + Select EasyWorship Database File + + + + Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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: - + OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + + EasyWorship + + + + Filename: - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + Add Files... - + Remove File(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + Importing - + Please wait while your songs are imported. - + Ready. - + %p% - + Importing "%s"... - + + Administered by %s + + + + Importing %s... @@ -3992,77 +3623,82 @@ The content encoding is not UTF-8. SongsPlugin.MediaItem - + + Song + + + + Song Maintenance - + Maintain the lists of authors, topics and books - + Search: - + Type: - + Clear - + Search - + Titles - + Lyrics - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: @@ -4098,12 +3734,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4111,12 +3747,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. @@ -4200,7 +3836,7 @@ The content encoding is not UTF-8. - Could not save your modified author, because he already exists. + Could not save your modified author, because the author already exists. @@ -4311,7 +3947,7 @@ The content encoding is not UTF-8. - You need to type in a topic name! + You need to type in a topic name. diff --git a/resources/i18n/en_GB.ts b/resources/i18n/en_GB.ts index 0088eab91..a9dd35d54 100644 --- a/resources/i18n/en_GB.ts +++ b/resources/i18n/en_GB.ts @@ -1,31 +1,22 @@ - + + AlertsPlugin &Alert - &Alert + &Alert Show an alert message. - + Show an alert message. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - Alerts + <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen @@ -33,57 +24,57 @@ Alert Message - Alert Message + Alert Message Alert &text: - + Alert &text: &Parameter(s): - + &Parameter(s): &New - &New + &New &Save - &Save + &Save &Delete - + &Delete Displ&ay - + Displ&ay Display && Cl&ose - + Display && Cl&ose &Close - + &Close New Alert - + New Alert You haven't specified any text for your alert. Please type in some text before clicking New. - + You haven't specified any text for your alert. Please type in some text before clicking New. @@ -91,7 +82,7 @@ Alert message created and displayed. - + Alert message created and displayed. @@ -99,77 +90,90 @@ Alerts - Alerts + Alerts Font - Font + Font Font name: - + Font name: Font color: - + Font colour: Background color: - + Background colour: Font size: - + Font size: pt - pt + pt Alert timeout: - Alert timeout: + Alert timeout: s - s + s Location: - Location: + Location: Preview - Preview + Preview OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 Top - Top + Top Middle - Middle + Middle Bottom - Bottom + Bottom + + + + BiblePlugin.MediaItem + + + Error + Error + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? @@ -177,92 +181,12 @@ &Bible - &Bible + &Bible <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - - - Bible - Bible - - - - Bibles - Bibles - - - - Import - Import - - - - Import a Bible - - - - - Add - Add - - - - Add a new Bible - - - - - Edit - Edit - - - - Edit the selected Bible - - - - - Delete - Delete - - - - Delete the selected Bible - - - - - Preview - Preview - - - - Preview the selected Bible - - - - - Live - Live - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. @@ -270,12 +194,12 @@ Book not found - + Book not found The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. @@ -283,11 +207,11 @@ Scripture Reference Error - + Scripture Reference Error - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -296,7 +220,15 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: + +Book Chapter +Book Chapter-Chapter +Book Chapter:Verse-Verse +Book Chapter:Verse-Verse,Verse-Verse +Book Chapter:Verse-Verse,Chapter:Verse-Verse +Book Chapter:Verse-Chapter:Verse + @@ -304,78 +236,79 @@ Book Chapter:Verse-Chapter:Verse Bibles - Bibles + Bibles Verse Display - Verse Display + Verse Display Only show new chapter numbers - Only show new chapter numbers + Only show new chapter numbers Layout style: - + Layout style: Display style: - + Display style: Bible theme: - + Bible theme: Verse Per Slide - + Verse Per Slide Verse Per Line - + Verse Per Line Continuous - + Continuous No Brackets - + No Brackets ( And ) - + ( And ) { And } - + { And } [ And ] - + [ And ] Note: Changes do not affect verses already in the service. - + Note: +Changes do not affect verses already in the service. Display dual Bible verses - + Display dual Bible verses @@ -383,370 +316,370 @@ Changes do not affect verses already in the service. Bible Import Wizard - Bible Import Wizard + Bible Import Wizard Welcome to the Bible Import Wizard - Welcome to the 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. - 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. + 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 Import Source + Select Import Source Select the import format, and where to import from. - Select the import format, and where to import from. + Select the import format, and where to import from. Format: - Format: + Format: OSIS - OSIS + OSIS CSV - CSV + CSV OpenSong - OpenSong + OpenSong Web Download - Web Download + Web Download File location: - + File location: Books location: - + Books location: Verse location: - + Verse location: Bible filename: - + Bible filename: Location: - Location: + Location: Crosswalk - Crosswalk + Crosswalk BibleGateway - BibleGateway + BibleGateway Bible: - Bible: + Bible: Download Options - Download Options + Download Options Server: - Server: + Server: Username: - Username: + Username: Password: - Password: + Password: Proxy Server (Optional) - Proxy Server (Optional) + Proxy Server (Optional) License Details - License Details + License Details Set up the Bible's license details. - Set up the Bible's license details. + Set up the Bible's license details. Version name: - + Version name: Copyright: - Copyright: + Copyright: Permission: - Permission: + Permission: Importing - Importing + Importing Please wait while your Bible is imported. - Please wait while your Bible is imported. + Please wait while your Bible is imported. Ready. - Ready. + Ready. Invalid Bible Location - Invalid Bible Location + Invalid Bible Location You need to specify a file to import your Bible from. - + You need to specify a file to import your Bible from. Invalid Books File - Invalid Books File + Invalid Books File You need to specify a file with books of the Bible to use in the import. - + You need to specify a file with books of the Bible to use in the import. Invalid Verse File - Invalid Verse File + Invalid Verse File You need to specify a file of Bible verses to import. - + You need to specify a file of Bible verses to import. Invalid OpenSong Bible - Invalid OpenSong Bible + Invalid OpenSong Bible You need to specify an OpenSong Bible file to import. - + You need to specify an OpenSong Bible file to import. Empty Version Name - Empty Version Name + Empty Version Name You need to specify a version name for your Bible. - + You need to specify a version name for your Bible. - + Empty Copyright - Empty Copyright + Empty Copyright - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - + Bible Exists - Bible Exists + Bible Exists - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - - + Open OSIS File - + Open OSIS File - + Open Books CSV File - + Open Books CSV File - + Open Verses CSV File - + Open Verses CSV File - + Open OpenSong Bible - Open OpenSong Bible + Open OpenSong Bible Starting import... - Starting import... + Starting import... - + Finished import. - Finished import. + Finished import. - + Your Bible import failed. - Your Bible import failed. + Your Bible import failed. + + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + This Bible already exists. Please import a different Bible or first delete the existing one. BiblesPlugin.MediaItem - + + Bible + Bible + + + Quick - Quick + Quick - + Advanced - Advanced + Advanced - + Version: - Version: + Version: - + Dual: - Dual: + Dual: - + Search type: - + Search type: - + Find: - Find: - - - - Search - Search - - - - Results: - Results: - - - - Book: - Book: - - - - Chapter: - Chapter: - - - - Verse: - Verse: - - - - From: - From: + Find: + Search + Search + + + + Results: + Results: + + + + Book: + Book: + + + + Chapter: + Chapter: + + + + Verse: + Verse: + + + + From: + From: + + + To: - To: + To: - + Verse Search - Verse Search + Verse Search - + Text Search - Text Search + Text Search - + Clear - Clear + Clear - + Keep - Keep + Keep - + No Book Found - No Book Found + No Book Found - + No matching book could be found in this Bible. - No matching book could be found in this Bible. + No matching book could be found in this Bible. - - etc - - - - + Bible not fully loaded. - + Bible not fully loaded. @@ -754,15 +687,15 @@ Changes do not affect verses already in the service. Importing - Importing + Importing CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -770,17 +703,17 @@ Changes do not affect verses already in the service. Custom - Custom + Custom Custom Display - Custom Display + Custom Display Display footer - + Display footer @@ -788,369 +721,206 @@ Changes do not affect verses already in the service. Edit Custom Slides - Edit Custom Slides + Edit Custom Slides Move slide up one position. - + Move slide up one position. Move slide down one position. - + Move slide down one position. &Title: - + &Title: Add New - Add New + Add New Add a new slide at bottom. - + Add a new slide at bottom. Edit - Edit + Edit Edit the selected slide. - + Edit the selected slide. Edit All - Edit All + Edit All Edit all the slides at once. - + Edit all the slides at once. Save - Save + Save Save the slide currently being edited. - + Save the slide currently being edited. Delete - Delete + Delete Delete the selected slide. - + Delete the selected slide. Clear - Clear + Clear Clear edit area - Clear edit area + Clear edit area Split Slide - + Split Slide Split a slide into two by inserting a slide splitter. - + Split a slide into two by inserting a slide splitter. The&me: - + The&me: &Credits: - + &Credits: Save && Preview - Save && Preview + Save && Preview Error - Error + Error You need to type in a title. - + You need to type in a title. You need to add at least one slide - + You need to add at least one slide You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + You have one or more unsaved slides, please either save your slide(s) or clear your changes. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - Custom + Custom - - Customs - + + You haven't selected an item to edit. + You haven't selected an item to edit. - - Import - Import - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - Add - - - - Add a new Custom - - - - - Edit - Edit - - - - Edit the selected Custom - - - - - Delete - Delete - - - - Delete the selected Custom - - - - - Preview - Preview - - - - Preview the selected Custom - - - - - Live - Live - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - + + You haven't selected an item to delete. + You haven't selected an item to delete. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Image - - - - Images - Images - - - - Load - - - - - Load a new Image - - - - - Add - Add - - - - Add a new Image - - - - - Edit - Edit - - - - Edit the selected Image - - - - - Delete - Delete - - - - Delete the selected Image - - - - - Preview - Preview - - - - Preview the selected Image - - - - - Live - Live - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + Image + + + Select Image(s) - Select Image(s) + Select Image(s) - + All Files - + All Files - + Replace Live Background - + Replace Live Background - + Replace Background - + Replace Background - + Reset Live Background - + Reset Live Background - + You must select an image to delete. - + You must select an image to delete. - + Image(s) - Image(s) + Image(s) - + You must select an image to replace the background with. - + You must select an image to replace the background with. - + You must select a media file to replace the background with. - + You must select a media file to replace the background with. @@ -1158,123 +928,43 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - - - Media - Media - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - Add - - - - Add a new Media - - - - - Edit - Edit - - - - Edit the selected Media - - - - - Delete - Delete - - - - Delete the selected Media - - - - - Preview - Preview - - - - Preview the selected Media - - - - - Live - Live - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - + <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. MediaPlugin.MediaItem - - Select Media - Select Media - - - - Replace Live Background - - - - - Replace Background - - - - + Media - Media + Media - + + Select Media + Select Media + + + + Replace Live Background + Replace Live Background + + + + Replace Background + Replace Background + + + You must select a media file to delete. - + You must select a media file to delete. OpenLP - + Image Files - + Image Files @@ -1282,7 +972,7 @@ Changes do not affect verses already in the service. About OpenLP - About OpenLP + About OpenLP @@ -1293,12 +983,18 @@ OpenLP is free church presentation software, or lyrics projection software, used 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. - + 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. About - About + About @@ -1340,17 +1036,54 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ - + 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 +Andreas "googol" Preikschat +Christian "crichter" Richter +Philip "Phill" Ridout +Maikel Stuivenberg +Carsten "catini" Tingaard +Frode "frodus" Woldsund + +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, Ubuntu) + +Built With +Python: http://www.python.org/ +Qt4: http://qt.nokia.com/ +PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro +Oxygen Icons: http://oxygen-icons.org/ + Credits - Credits + Credits - 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 + 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. @@ -1480,27 +1213,157 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gno 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. - + 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 Licence as published by the Free Software Foundation; version 2 of the Licence. + +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 LICENCE +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 licence document, but changing it is not allowed. + +Preamble + +The licences for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licence 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 Licence 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 Licence 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 Licences 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 licence 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 licences, 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 LICENCE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This Licence 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 Licence. 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 Licence; 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 Licence and to the absence of any warranty; and give any other recipients of the Program a copy of this Licence 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 Licence. + +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 Licence. (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 Licence, 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 Licence, 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 Licence. + +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 Licence. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this Licence. However, parties who have received copies, or rights, from you under this Licence will not have their licences terminated so long as such parties remain in full compliance. + +5. You are not required to accept this Licence, 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 Licence. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this Licence 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 licence 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 Licence. + +7. If, as a consequence of a court judgement 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 Licence, they do not excuse you from the conditions of this Licence. If you cannot distribute so as to satisfy simultaneously your obligations under this Licence and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent licence 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 Licence 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 licence 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 Licence. + +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 Licence 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 Licence incorporates the limitation as if written in the body of this Licence. + +9. The Free Software Foundation may publish revised and/or new versions of the General Public Licence 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 Licence 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 Licence, 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 Licence as published by the Free Software Foundation; either version 2 of the Licence, 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 Licence for more details. + +You should have received a copy of the GNU General Public Licence 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 Licence. 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 Licence 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 Licence instead of this Licence. License - License + Licence Contribute - Contribute + Contribute Close - Close + Close build %s - + build %s @@ -1508,27 +1371,27 @@ This General Public License does not permit incorporating your program into prop Advanced - Advanced + Advanced UI Settings - + UI Settings Number of recent files to display: - + Number of recent files to display: Remember active media manager tab on startup - + Remember active media manager tab on startup Double-click to send items straight to live (requires restart) - + Double-click to send items straight to live (requires restart) @@ -1536,310 +1399,310 @@ This General Public License does not permit incorporating your program into prop Theme Maintenance - Theme Maintenance + Theme Maintenance Theme &name: - + Theme &name: Type: - Type: + Type: Solid Color - Solid Color + Solid Colour Gradient - Gradient + Gradient Image - Image + Image Image: - Image: + Image: Gradient: - + Gradient: Horizontal - Horizontal + Horizontal Vertical - Vertical + Vertical Circular - + Circular &Background - + &Background Main Font - Main Font + Main Font Font: - Font: + Font: Color: - + Colour: Size: - Size: + Size: pt - pt + pt Adjust line spacing: - + Adjust line spacing: Normal - Normal + Normal Bold - Bold + Bold Italics - Italics + Italics Bold/Italics - Bold/Italics + Bold/Italics Style: - + Style: Display Location - Display Location + Display Location Use default location - + Use default location X position: - + X position: Y position: - + Y position: Width: - Width: + Width: Height: - Height: + Height: px - px + px &Main Font - + &Main Font Footer Font - Footer Font + Footer Font &Footer Font - + &Footer Font Outline - Outline + Outline Outline size: - + Outline size: Outline color: - + Outline colour: Show outline: - + Show outline: Shadow - Shadow + Shadow Shadow size: - + Shadow size: Shadow color: - + Shadow colour: Show shadow: - + Show shadow: Alignment - Alignment + Alignment Horizontal align: - + Horizontal align: Left - Left + Left Right - Right + Right Center - Center + Centre Vertical align: - + Vertical align: Top - Top + Top Middle - Middle + Middle Bottom - Bottom + Bottom Slide Transition - Slide Transition + Slide Transition Transition active - + Transition active &Other Options - + &Other Options Preview - Preview + Preview All Files - + All Files Select Image - + Select Image First color: - + First colour: Second color: - + Second colour: Slide height is %s rows. - + Slide height is %s rows. OpenLP.ExceptionDialog - - - Error Occured - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + + Error Occurred + Error Occurred @@ -1847,643 +1710,715 @@ This General Public License does not permit incorporating your program into prop General - General + General Monitors - Monitors + Monitors Select monitor for output display: - Select monitor for output display: + Select monitor for output display: Display if a single screen - + Display if a single screen Application Startup - Application Startup + Application Startup Show blank screen warning - Show blank screen warning + Show blank screen warning Automatically open the last service - Automatically open the last service + Automatically open the last service Show the splash screen - Show the splash screen + Show the splash screen Application Settings - Application Settings + Application Settings Prompt to save before starting a new service - + Prompt to save before starting a new service Automatically preview next item in service - + Automatically preview next item in service Slide loop delay: - + Slide loop delay: sec - + sec CCLI Details - CCLI Details + CCLI Details CCLI number: - + CCLI number: SongSelect username: - + SongSelect username: SongSelect password: - + SongSelect password: Display Position - + Display Position X - + X Y - + Y Height - + Height Width - + Width Override display position - + Override display position Screen - Screen + Screen primary - primary + primary OpenLP.LanguageManager - + Language - + Language - + Please restart OpenLP to use your new language setting. - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - - - New Service - New Service - - - - Open Service - Open Service - - - - Save Service - Save Service - OpenLP 2.0 - OpenLP 2.0 - - - - AddHereYourLanguageName - + OpenLP 2.0 &File - &File + &File &Import - &Import + &Import &Export - &Export + &Export &View - &View + &View M&ode - M&ode + M&ode &Tools - &Tools + &Tools &Settings - &Settings + &Settings &Language - &Language + &Language &Help - &Help + &Help Media Manager - Media Manager + Media Manager Service Manager - Service Manager + Service Manager Theme Manager - Theme Manager + Theme Manager &New - &New + &New + + + + New Service + New Service Create a new service. - + Create a new service. Ctrl+N - Ctrl+N + Ctrl+N &Open - &Open + &Open + + + + Open Service + Open Service Open an existing service. - + Open an existing service. Ctrl+O - Ctrl+O + Ctrl+O &Save - &Save + &Save + + + + Save Service + Save Service Save the current service to disk. - + Save the current service to disk. Ctrl+S - Ctrl+S + Ctrl+S Save &As... - Save &As... + Save &As... Save Service As - Save Service As + Save Service As Save the current service under a new name. - + Save the current service under a new name. Ctrl+Shift+S - + Ctrl+Shift+S E&xit - E&xit + E&xit Quit OpenLP - Quit OpenLP + Quit OpenLP Alt+F4 - Alt+F4 + Alt+F4 &Theme - &Theme + &Theme &Configure OpenLP... - + &Configure OpenLP... &Media Manager - &Media Manager + &Media Manager Toggle Media Manager - Toggle Media Manager + Toggle Media Manager Toggle the visibility of the media manager. - + Toggle the visibility of the media manager. F8 - F8 + F8 &Theme Manager - &Theme Manager + &Theme Manager Toggle Theme Manager - Toggle Theme Manager + Toggle Theme Manager Toggle the visibility of the theme manager. - + Toggle the visibility of the theme manager. F10 - F10 + F10 &Service Manager - &Service Manager + &Service Manager Toggle Service Manager - Toggle Service Manager + Toggle Service Manager Toggle the visibility of the service manager. - + Toggle the visibility of the service manager. F9 - F9 + F9 &Preview Panel - &Preview Panel + &Preview Panel Toggle Preview Panel - Toggle Preview Panel + Toggle Preview Panel Toggle the visibility of the preview panel. - + Toggle the visibility of the preview panel. F11 - F11 + F11 &Live Panel - + &Live Panel Toggle Live Panel - + Toggle Live Panel Toggle the visibility of the live panel. - + Toggle the visibility of the live panel. F12 - F12 + F12 &Plugin List - &Plugin List + &Plugin List List the Plugins - List the Plugins + List the Plugins Alt+F7 - Alt+F7 + Alt+F7 &User Guide - &User Guide + &User Guide &About - &About + &About More information about OpenLP - More information about OpenLP + More information about OpenLP Ctrl+F1 - Ctrl+F1 + Ctrl+F1 &Online Help - &Online Help + &Online Help &Web Site - &Web Site + &Web Site &Auto Detect - + &Auto Detect Use the system language, if available. - + Use the system language, if available. Set the interface language to %s - + Set the interface language to %s Add &Tool... - + Add &Tool... Add an application to the list of tools. - + Add an application to the list of tools. &Default - + &Default Set the view mode back to the default. - + Set the view mode back to the default. &Setup - + &Setup Set the view mode to Setup. - + Set the view mode to Setup. &Live - &Live + &Live Set the view mode to Live. - + Set the view mode to 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/. - + 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/. OpenLP Version Updated - OpenLP Version Updated + OpenLP Version Updated - + OpenLP Main Display Blanked - OpenLP Main Display Blanked + OpenLP Main Display Blanked - + The Main Display has been blanked out - The Main Display has been blanked out + The Main Display has been blanked out - + Save Changes to Service? - Save Changes to Service? + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s - + Default Theme: %s - + English - English + Please add the name of your language here + English (United Kingdom) OpenLP.MediaManagerItem - + No Items Selected - + No Items Selected - + + Import %s + Import %s + + + + Import a %s + Import a %s + + + + Load %s + Load %s + + + + Load a new %s + Load a new %s + + + + New %s + New %s + + + + Add a new %s + Add a new %s + + + + Edit %s + Edit %s + + + + Edit the selected %s + Edit the selected %s + + + + Delete %s + Delete %s + + + + Delete the selected item + Delete the selected item + + + + Preview %s + Preview %s + + + + Preview the selected item + Preview the selected item + + + + Send the selected item live + Send the selected item live + + + + Add %s to Service + Add %s to Service + + + + Add the selected item(s) to the service + Add the selected item(s) to the service + + + &Edit %s - + &Edit %s - + &Delete %s - + &Delete %s - + &Preview %s - + &Preview %s - + &Show Live - &Show Live + &Show Live - + &Add to Service - &Add to Service + &Add to Service - + &Add to selected Service Item - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items to send live. - + You must select one or more items. - + You must select one or more items. - + No items selected - + No items selected - + You must select one or more items - You must select one or more items + You must select one or more items - + No Service Item Selected - + No Service Item Selected - + You must select an existing service item to add to. - + You must select an existing service item to add to. - + Invalid Service Item - + Invalid Service Item - + You must select a %s service item. - + You must select a %s service item. @@ -2491,52 +2426,52 @@ You can download the latest version from http://openlp.org/. Plugin List - Plugin List + Plugin List Plugin Details - Plugin Details + Plugin Details Version: - Version: + Version: About: - About: + About: Status: - Status: + Status: Active - Active + Active Inactive - Inactive + Inactive - + %s (Inactive) - + %s (Inactive) - + %s (Active) - + %s (Active) - + %s (Disabled) - + %s (Disabled) @@ -2544,22 +2479,22 @@ You can download the latest version from http://openlp.org/. Reorder Service Item - + Reorder Service Item Up - + Up Delete - Delete + Delete Down - + Down @@ -2567,178 +2502,184 @@ You can download the latest version from http://openlp.org/. New Service - New Service + New Service Create a new service - Create a new service + Create a new service - + Open Service - Open Service + Open Service Load an existing service - Load an existing service + Load an existing service - + Save Service - Save Service + Save Service Save this service - Save this service + Save this service Theme: - Theme: + Theme: Select a theme for the service - Select a theme for the service + Select a theme for the service Move to &top - + Move to &top Move item to the top of the service. - + Move item to the top of the service. Move &up - + Move &up Move item up one position in the service. - + Move item up one position in the service. Move &down - + Move &down Move item down one position in the service. - + Move item down one position in the service. Move to &bottom - + Move to &bottom Move item to the end of the service. - + Move item to the end of the service. &Delete From Service - + &Delete From Service Delete the selected item from the service. - + Delete the selected item from the service. &Add New Item - + &Add New Item &Add to Selected Item - + &Add to Selected Item &Edit Item - &Edit Item + &Edit Item &Reorder Item - + &Reorder Item &Notes - &Notes + &Notes &Preview Verse - &Preview Verse + &Preview Verse &Live Verse - &Live Verse + &Live Verse &Change Item Theme - &Change Item Theme + &Change Item Theme - + Save Changes to Service? - Save Changes to Service? + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - Error + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. +The content encoding is not UTF-8. - + File is not a valid service. - + File is not a valid service. - + Missing Display Handler - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it - + Your item cannot be displayed as there is no handler to display it + + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + Your item cannot be displayed as the plugin required to display it is missing or inactive @@ -2746,7 +2687,7 @@ The content encoding is not UTF-8. Service Item Notes - Service Item Notes + Service Item Notes @@ -2754,7 +2695,7 @@ The content encoding is not UTF-8. Configure OpenLP - + Configure OpenLP @@ -2762,95 +2703,80 @@ The content encoding is not UTF-8. Live - Live + Live Preview - Preview + Preview Move to previous - Move to previous + Move to previous Move to next - Move to next + Move to next Hide - + Hide - - Blank Screen - Blank Screen - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - Move to live + Move to live - - Edit and re-preview song - - - - + Start continuous loop - Start continuous loop + Start continuous loop - + Stop continuous loop - Stop continuous loop + Stop continuous loop - + s - s + s - + Delay between slides in seconds - Delay between slides in seconds + Delay between slides in seconds - + Start playing media - Start playing media + Start playing media - + Go To - + Go To + + + + Edit and reload song preview + Edit and reload song preview OpenLP.SpellTextEdit - + Spelling Suggestions - + Spelling Suggestions - + Formatting Tags - + Formatting Tags @@ -2858,178 +2784,179 @@ The content encoding is not UTF-8. New Theme - New Theme + New Theme Create a new theme. - + Create a new theme. Edit Theme - Edit Theme + Edit Theme Edit a theme. - + Edit a theme. Delete Theme - Delete Theme + Delete Theme Delete a theme. - + Delete a theme. Import Theme - Import Theme + Import Theme Import a theme. - + Import a theme. Export Theme - Export Theme + Export Theme Export a theme. - + Export a theme. &Edit Theme - + &Edit Theme &Delete Theme - + &Delete Theme Set As &Global Default - + Set As &Global Default E&xport Theme - + E&xport Theme %s (default) - + %s (default) You must select a theme to edit. - + You must select a theme to edit. You must select a theme to delete. - + You must select a theme to delete. Delete Confirmation - + Delete Confirmation Delete theme? - + Delete theme? Error - Error + Error You are unable to delete the default theme. - - - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - + You are unable to delete the default theme. You have not selected a theme. - + You have not selected a theme. Save Theme - (%s) - Save Theme - (%s) + Save Theme - (%s) Theme Exported - + Theme Exported Your theme has been successfully exported. - + Your theme has been successfully exported. Theme Export Failed - + Theme Export Failed Your theme could not be exported due to an error. - + Your theme could not be exported due to an error. Select Theme Import File - Select Theme Import File + Select Theme Import File Theme (*.*) - + Theme (*.*) File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. +The content encoding is not UTF-8. File is not a valid theme. - + File is not a valid theme. Theme Exists - Theme Exists + Theme Exists A theme with this name already exists. Would you like to overwrite it? - + A theme with this name already exists. Would you like to overwrite it? + + + + Theme %s is used in the %s plugin. + Theme %s is used in the %s plugin. + + + + Theme %s is used by the service manager. + Theme %s is used by the service manager. @@ -3037,47 +2964,47 @@ The content encoding is not UTF-8. Themes - Themes + Themes Global Theme - + Global Theme Theme Level - + Theme Level S&ong Level - + S&ong 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. - 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. + 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 - + &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. - 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. + 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 - + &Global Level Use the global theme, overriding any themes associated with either the service or the songs. - Use the global theme, overriding any themes associated with either the service or the songs. + Use the global theme, overriding any themes associated with either the service or the songs. @@ -3085,110 +3012,55 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - - - Presentation - Presentation - - - - Presentations - Presentations - - - - Load - - - - - Load a new Presentation - - - - - Delete - Delete - - - - Delete the selected Presentation - - - - - Preview - Preview - - - - Preview the selected Presentation - - - - - Live - Live - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - + <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. PresentationPlugin.MediaItem - + + Presentation + Presentation + + + Select Presentation(s) - Select Presentation(s) + Select Presentation(s) - + Automatic - + Automatic - + Present using: - Present using: + Present using: - + File Exists - + File Exists - + A presentation with that filename already exists. - A presentation with that filename already exists. + A presentation with that filename already exists. - + Unsupported File - + Unsupported File - + This type of presentation is not supported. - + This type of presentation is not supported. - + You must select an item to delete. - + You must select an item to delete. @@ -3196,22 +3068,22 @@ The content encoding is not UTF-8. Presentations - Presentations + Presentations Available Controllers - Available Controllers + Available Controllers Advanced - Advanced + Advanced Allow presentation application to be overriden - + Allow presentation application to be overriden @@ -3219,17 +3091,7 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - - - Remote - - - - - Remotes - Remotes + <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. @@ -3237,22 +3099,22 @@ The content encoding is not UTF-8. Remotes - Remotes + Remotes Serve on IP address: - + Serve on IP address: Port number: - + Port number: Server Settings - + Server Settings @@ -3260,47 +3122,42 @@ The content encoding is not UTF-8. &Song Usage Tracking - + &Song Usage Tracking &Delete Tracking Data - + &Delete Tracking Data Delete song usage data up to a specified date. - + Delete song usage data up to a specified date. &Extract Tracking Data - + &Extract Tracking Data Generate a report on song usage. - + Generate a report on song usage. Toggle Tracking - + Toggle Tracking Toggle the tracking of song usage. - + Toggle the tracking of song usage. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - - - SongUsage - + <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. @@ -3308,17 +3165,17 @@ The content encoding is not UTF-8. Delete Song Usage Data - + Delete Song Usage Data Delete Selected Song Usage Events? - + Delete Selected Song Usage Events? Are you sure you want to delete selected Song Usage data? - + Are you sure you want to delete selected Song Usage data? @@ -3326,27 +3183,27 @@ The content encoding is not UTF-8. Song Usage Extraction - + Song Usage Extraction Select Date Range - + Select Date Range to - to + to Report Location - Report Location + Report Location Output File Location - Output File Location + Output File Location @@ -3359,82 +3216,12 @@ The content encoding is not UTF-8. Import songs using the import wizard. - + Import songs using the import wizard. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - - - Song - Song - - - - Songs - Songs - - - - Add - Add - - - - Add a new Song - - - - - Edit - Edit - - - - Edit the selected Song - - - - - Delete - Delete - - - - Delete the selected Song - - - - - Preview - Preview - - - - Preview the selected Song - - - - - Live - Live - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - + <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. @@ -3442,42 +3229,42 @@ The content encoding is not UTF-8. Author Maintenance - Author Maintenance + Author Maintenance Display name: - Display name: + Display name: First name: - First name: + First name: Last name: - Last name: + Last name: Error - Error + Error You need to type in the first name of the author. - You need to type in the first name of the author. + You need to type in the first name of the author. You need to type in the last name of the author. - You need to type in the last name of the author. + You need to type in the last name of the author. - You have not set a display name for the author, would you like me to combine the first and last names for you? - + You have not set a display name for the author, combine the first and last names? + You have not set a display name for the author, combine the first and last names? @@ -3485,242 +3272,242 @@ The content encoding is not UTF-8. Song Editor - Song Editor + Song Editor &Title: - + &Title: Alt&ernate title: - + Alt&ernate title: &Lyrics: - + &Lyrics: &Verse order: - + &Verse order: &Add - + &Add &Edit - &Edit + &Edit Ed&it All - + Ed&it All &Delete - + &Delete Title && Lyrics - Title && Lyrics + Title && Lyrics Authors - Authors + Authors &Add to Song - &Add to Song + &Add to Song &Remove - &Remove + &Remove &Manage Authors, Topics, Song Books - + &Manage Authors, Topics, Song Books Topic - Topic + Topic A&dd to Song - A&dd to Song + A&dd to Song R&emove - R&emove + R&emove Song Book - Song Book + Song Book Book: - Book: + Book: Number: - + Number: Authors, Topics && Song Book - + Authors, Topics && Song Book Theme - Theme + Theme New &Theme - + New &Theme Copyright Information - Copyright Information + Copyright Information - © - + © + © CCLI number: - + CCLI number: Comments - Comments + Comments Theme, Copyright Info && Comments - Theme, Copyright Info && Comments + Theme, Copyright Info && Comments Save && Preview - Save && Preview + Save && Preview Add Author - + Add Author This author does not exist, do you want to add them? - + This author does not exist, do you want to add them? Error - Error + Error This author is already in the list. - + This author is already in the list. No Author Selected - + No Author Selected You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. Add Topic - + Add Topic This topic does not exist, do you want to add it? - + This topic does not exist, do you want to add it? This topic is already in the list. - + This topic is already in the list. No Topic Selected - + No Topic Selected You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. You need to type in a song title. - + You need to type in a song title. You need to type in at least one verse. - + You need to type in at least one verse. Warning - + Warning You have not added any authors for this song. Do you want to add an author now? - + You have not added any authors for this song. Do you want to add an author now? The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? Add Book - + Add Book This song book does not exist, do you want to add it? - + This song book does not exist, do you want to add it? @@ -3728,343 +3515,378 @@ The content encoding is not UTF-8. Edit Verse - Edit Verse + Edit Verse &Verse type: - + &Verse type: &Insert - + &Insert SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Open Song Files - + Select Words of Worship Files - + Select Words of Worship Files - + Select CCLI Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Select Document/Presentation Files - + Starting import... - Starting import... + Starting import... - + Song Import Wizard - + Song Import Wizard - + Welcome to the Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + This wizard will help you to import songs 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 Import Source + Select Import Source - + Select the import format, and where to import from. - Select the import format, and where to import from. + Select the import format, and where to import from. - + Format: - Format: + Format: - + OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 - + openlp.org 1.x - + openlp.org 1.x - + OpenLyrics - + OpenLyrics - + OpenSong - OpenSong + OpenSong - + Words of Worship - + Words of Worship - + CCLI/SongSelect - + CCLI/SongSelect - + Songs of Fellowship - + Songs of Fellowship - + Generic Document/Presentation - + Generic Document/Presentation - + Filename: - + Filename: - + Browse... - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + Add Files... - + Add Files... - + Remove File(s) - + Remove File(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + Importing - Importing + Importing - + Please wait while your songs are imported. - + Please wait while your songs are imported. - + Ready. - Ready. + Ready. - + %p% - + %p% - + Importing "%s"... - + Importing "%s"... - + Importing %s... - + Importing %s... + + + + No EasyWorship Song Database Selected + No EasyWorship Song Database Selected + + + + You need to select an EasyWorship song database file to import from. + You need to select an EasyWorship song database file to import from. + + + + Select EasyWorship Database File + Select EasyWorship Database File + + + + EasyWorship + EasyWorship + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + Administered by %s + Administered by %s SongsPlugin.MediaItem - + + Song + Song + + + Song Maintenance - Song Maintenance + Song Maintenance - + Maintain the lists of authors, topics and books - Maintain the lists of authors, topics and books - - - - Search: - Search: + Maintain the lists of authors, topics and books - Type: - Type: + Search: + Search: - Clear - Clear + Type: + Type: - Search - Search + Clear + Clear - - Titles - + + Search + Search - Lyrics - Lyrics + Titles + Titles + Lyrics + Lyrics + + + Authors - Authors + Authors - + You must select an item to edit. - + You must select an item to edit. - + You must select an item to delete. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + Delete Song(s)? - + CCLI Licence: - CCLI Licence: + CCLI Licence: @@ -4072,53 +3894,53 @@ The content encoding is not UTF-8. Song Book Maintenance - + Song Book Maintenance &Name: - + &Name: &Publisher: - + &Publisher: Error - Error + Error You need to type in a name for the book. - + You need to type in a name for the book. SongsPlugin.SongImport - + copyright - + copyright - - © - + + © + © SongsPlugin.SongImportForm - + Finished import. - Finished import. + Finished import. - + Your song import failed. - + Your song import failed. @@ -4126,147 +3948,147 @@ The content encoding is not UTF-8. Song Maintenance - Song Maintenance + Song Maintenance Authors - Authors + Authors Topics - Topics + Topics Song Books - + Song Books &Add - + &Add &Edit - &Edit + &Edit &Delete - + &Delete Error - Error + Error Could not add your author. - + Could not add your author. This author already exists. - + This author already exists. Could not add your topic. - + Could not add your topic. This topic already exists. - + This topic already exists. Could not add your book. - + Could not add your book. This book already exists. - + This book already exists. Could not save your changes. - - - - - Could not save your modified author, because he already exists. - + Could not save your changes. Could not save your modified topic, because it already exists. - + Could not save your modified topic, because it already exists. Delete Author - Delete Author + Delete Author Are you sure you want to delete the selected author? - + Are you sure you want to delete the selected author? This author cannot be deleted, they are currently assigned to at least one song. - + This author cannot be deleted, they are currently assigned to at least one song. No author selected! - + No author selected Delete Topic - Delete Topic + Delete Topic Are you sure you want to delete the selected topic? - Are you sure you want to delete the selected topic? + Are you sure you want to delete the selected topic? This topic cannot be deleted, it is currently assigned to at least one song. - + This topic cannot be deleted, it is currently assigned to at least one song. No topic selected! - No topic selected! + No topic selected Delete Book - Delete Book + Delete Book Are you sure you want to delete the selected book? - Are you sure you want to delete the selected book? + Are you sure you want to delete the selected book? This book cannot be deleted, it is currently assigned to at least one song. - + This book cannot be deleted, it is currently assigned to at least one song. No book selected! - + No book selected + + + + Could not save your modified author, because the author already exists. + Could not save your modified author, because the author already exists. @@ -4274,22 +4096,22 @@ The content encoding is not UTF-8. Songs - Songs + Songs Songs Mode - Songs Mode + Songs Mode Enable search as you type - + Enable search as you type Display verses on live tool bar - + Display verses on live tool bar @@ -4297,22 +4119,22 @@ The content encoding is not UTF-8. Topic Maintenance - Topic Maintenance + Topic Maintenance Topic name: - Topic name: + Topic name: Error - Error + Error - You need to type in a topic name! - + You need to type in a topic name. + You need to type in a topic name. @@ -4320,37 +4142,37 @@ The content encoding is not UTF-8. Verse - Verse + Verse Chorus - Chorus + Chorus Bridge - Bridge + Bridge Pre-Chorus - Pre-Chorus + Pre-Chorus Intro - Intro + Intro Ending - Ending + Ending Other - Other + Other diff --git a/resources/i18n/en_ZA.ts b/resources/i18n/en_ZA.ts index b546f1bce..8be87da0e 100644 --- a/resources/i18n/en_ZA.ts +++ b/resources/i18n/en_ZA.ts @@ -1,5 +1,6 @@ - + + AlertsPlugin @@ -17,16 +18,6 @@ <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - Alert - - - - - Alerts - Alerts - AlertsPlugin.AlertForm @@ -172,6 +163,19 @@ Bottom + + BiblePlugin.MediaItem + + + Error + Error + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + + BiblesPlugin @@ -184,86 +188,6 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - Bible - Bible - - - - Bibles - Bibles - - - - Import - - - - - Import a Bible - - - - - Add - - - - - Add a new Bible - - - - - Edit - Edit - - - - Edit the selected Bible - - - - - Delete - Delete - - - - Delete the selected Bible - - - - - Preview - Preview - - - - Preview the selected Bible - - - - - Live - Live - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - - BiblesPlugin.BibleDB @@ -287,7 +211,7 @@ - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -296,7 +220,7 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -595,42 +519,32 @@ Changes do not affect verses already in the service. You need to specify a version name for your Bible. - + Empty Copyright Empty Copyright - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - + Bible Exists Bible Exists - - This Bible already exists! Please import a different Bible or first delete the existing one. - This Bible already exists! Please import a different Bible or first delete the existing one. - - - + Open OSIS File Open OSIS File - + Open Books CSV File Open Books CSV File - + Open Verses CSV File Open Verses CSV File - + Open OpenSong Bible Open OpenSong Bible @@ -640,120 +554,130 @@ Changes do not affect verses already in the service. Starting import... - + Finished import. Finished import. - + Your Bible import failed. Your Bible import failed. + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + This Bible already exists. Please import a different Bible or first delete the existing one. + BiblesPlugin.MediaItem - + + Bible + Bible + + + Quick Quick - + Advanced Advanced - + Version: Version: - + Dual: Dual: - + Search type: Search type: - + Find: Find: - + Search Search - + Results: Results: - + Book: Book: - + Chapter: Chapter: - + Verse: Verse: - + From: From: - + To: To: - + Verse Search Verse Search - + Text Search Text Search - + Clear Clear - + Keep Keep - + No Book Found No Book Found - + No matching book could be found in this Bible. No matching book could be found in this Bible. - - etc - etc - - - + Bible not fully loaded. Bible not fully loaded. @@ -770,8 +694,8 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -923,241 +847,78 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - + + Custom + Custom + + + You haven't selected an item to edit. You haven't selected an item to edit. - + You haven't selected an item to delete. You haven't selected an item to delete. - - CustomsPlugin - - - Custom - Custom - - - - Customs - - - - - Import - - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - - - - - Add a new Custom - - - - - Edit - Edit - - - - Edit the selected Custom - - - - - Delete - Delete - - - - Delete the selected Custom - - - - - Preview - Preview - - - - Preview the selected Custom - - - - - Live - Live - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - - - ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Image - - - - Images - - - - - Load - - - - - Load a new Image - - - - - Add - - - - - Add a new Image - - - - - Edit - Edit - - - - Edit the selected Image - - - - - Delete - Delete - - - - Delete the selected Image - - - - - Preview - Preview - - - - Preview the selected Image - - - - - Live - Live - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + Image + + + Select Image(s) Select Image(s) - + All Files All Files - + Replace Live Background Replace Live Background - + Replace Background Replace Background - + You must select an image to delete. You must select an image to delete. - + Image(s) Image(s) - + You must select an image to replace the background with. You must select an image to replace the background with. - + You must select a media file to replace the background with. You must select a media file to replace the background with. - + Reset Live Background Reset Live Background @@ -1169,111 +930,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - Media - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - - - - - Add a new Media - - - - - Edit - Edit - - - - Edit the selected Media - - - - - Delete - Delete - - - - Delete the selected Media - - - - - Preview - Preview - - - - Preview the selected Media - - - - - Live - Live - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - - MediaPlugin.MediaItem - + Media Media - + Select Media Select Media - + Replace Live Background Replace Live Background - + Replace Background Replace Background - + You must select a media file to delete. You must select a media file to delete. @@ -1281,7 +962,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files Image Files @@ -1421,8 +1102,8 @@ Built With - 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 + 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. @@ -2013,15 +1694,15 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - - - Error Occured - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + + + Error Occurred + Error Occurred @@ -2155,12 +1836,12 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language Language - + Please restart OpenLP to use your new language setting. Please restart OpenLP to use your new language setting. @@ -2172,11 +1853,6 @@ This General Public License does not permit incorporating your program into prop OpenLP 2.0 OpenLP 2.0 - - - English - English - &File @@ -2390,7 +2066,7 @@ This General Public License does not permit incorporating your program into prop Toggle Service Manager - Toggle Service Manager. + Toggle Service Manager @@ -2548,27 +2224,27 @@ This General Public License does not permit incorporating your program into prop OpenLP Version Updated - + OpenLP Main Display Blanked OpenLP Main Display Blanked - + The Main Display has been blanked out The Main Display has been blanked out - + Save Changes to Service? Save Changes to Service? - + Your service has changed. Do you want to save those changes? Your service has changed. Do you want to save those changes? - + Default Theme: %s Default Theme: %s @@ -2582,90 +2258,166 @@ You can download the latest version from http://openlp.org/. You can download the latest version from http://openlp.org/. - - AddHereYourLanguageName - + + English + Please add the name of your language here + English (South Africa) OpenLP.MediaManagerItem - + No Items Selected No Items Selected - + + Import %s + Import %s + + + + Import a %s + Import a %s + + + + Load %s + Load %s + + + + Load a new %s + Load a new %s + + + + New %s + New %s + + + + Add a new %s + Add a new %s + + + + Edit %s + Edit %s + + + + Edit the selected %s + Edit the selected %s + + + + Delete %s + Delete %s + + + + Delete the selected item + Delete the selected item + + + + Preview %s + Preview %s + + + + Preview the selected item + Preview the selected item + + + + Send the selected item live + Send the selected item live + + + + Add %s to Service + Add %s to Service + + + + Add the selected item(s) to the service + Add the selected item(s) to the service + + + &Edit %s &Edit %s - + &Delete %s &Delete %s - + &Preview %s &Preview %s - + &Show Live &Show Live - + &Add to Service &Add to Service - + &Add to selected Service Item &Add to selected Service Item - + You must select one or more items to preview. You must select one or more items to preview. - + You must select one or more items to send live. You must select one or more items to send live. - + You must select one or more items. You must select one or more items. - + No items selected No items selected - + You must select one or more items You must select one or more items - + No Service Item Selected No Service Item Selected - + You must select an existing service item to add to. You must select an existing service item to add to. - + Invalid Service Item Invalid Service Item - + You must select a %s service item. You must select a %s service item. @@ -2708,17 +2460,17 @@ You can download the latest version from http://openlp.org/. Inactive - + %s (Inactive) %s (Inactive) - + %s (Active) %s (Active) - + %s (Disabled) %s (Disabled) @@ -2759,7 +2511,7 @@ You can download the latest version from http://openlp.org/. Create a new service - + Open Service Open Service @@ -2769,7 +2521,7 @@ You can download the latest version from http://openlp.org/. Load an existing service - + Save Service Save Service @@ -2879,52 +2631,57 @@ You can download the latest version from http://openlp.org/. &Change Item Theme - + Save Changes to Service? Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. File is not a valid service. - + Missing Display Handler Missing Display Handler - + Your item cannot be displayed as there is no handler to display it Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + Your item cannot be displayed as the plugin required to display it is missing or inactive + OpenLP.ServiceNoteForm @@ -2970,70 +2727,55 @@ The content encoding is not UTF-8. Hide - + Move to live Move to live - + Start continuous loop Start continuous loop - + Stop continuous loop Stop continuous loop - + s s - + Delay between slides in seconds Delay between slides in seconds - + Start playing media Start playing media - - Edit and re-preview song - Edit and re-preview song - - - + Go To Go To - - Blank Screen - - - - - Blank to Theme - - - - - Show Desktop - + + Edit and reload song preview + Edit and reload song preview OpenLP.SpellTextEdit - + Spelling Suggestions Spelling Suggestions - + Formatting Tags Formatting Tags @@ -3145,16 +2887,6 @@ The content encoding is not UTF-8. You are unable to delete the default theme. You are unable to delete the default theme. - - - Theme %s is use in %s plugin. - Theme %s is use in %s plugin. - - - - Theme %s is use by the service manager. - Theme %s is use by the service manager. - You have not selected a theme. @@ -3217,6 +2949,16 @@ The content encoding is not UTF-8. A theme with this name already exists. Would you like to overwrite it? A theme with this name already exists. Would you like to overwrite it? + + + Theme %s is used in the %s plugin. + Theme %s is used in the %s plugin. + + + + Theme %s is used by the service manager. + Theme %s is used by the service manager. + OpenLP.ThemesTab @@ -3273,108 +3015,53 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - Presentation - - - - Presentations - Presentations - - - - Load - - - - - Load a new Presentation - - - - - Delete - Delete - - - - Delete the selected Presentation - - - - - Preview - Preview - - - - Preview the selected Presentation - - - - - Live - Live - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - + + Presentation + Presentation + + + Select Presentation(s) Select Presentation(s) - + Automatic Automatic - + Present using: Present using: - + File Exists File Exists - + A presentation with that filename already exists. A presentation with that filename already exists. - + Unsupported File Unsupported File - + You must select an item to delete. You must select an item to delete. - + This type of presentation is not supported. - + This type of presentation is not supported. @@ -3407,16 +3094,6 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - Remotes - RemotePlugin.RemoteTab @@ -3483,11 +3160,6 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3552,76 +3224,6 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - Song - - - - Songs - - - - - Add - - - - - Add a new Song - - - - - Edit - Edit - - - - Edit the selected Song - - - - - Delete - Delete - - - - Delete the selected Song - - - - - Preview - Preview - - - - Preview the selected Song - - - - - Live - Live - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm @@ -3662,8 +3264,8 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? - You have not set a display name for the author, would you like me to combine the first and last names for you? + You have not set a display name for the author, combine the first and last names? + You have not set a display name for the author, combine the first and last names? @@ -3770,7 +3372,7 @@ The content encoding is not UTF-8. - © + © © @@ -3901,12 +3503,12 @@ The content encoding is not UTF-8. Book: - Book: + Book: Number: - + Number: @@ -3914,343 +3516,378 @@ The content encoding is not UTF-8. Edit Verse - Edit Verse + Edit Verse &Verse type: - + &Verse type: &Insert - + &Insert SongsPlugin.ImportWizardForm - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + You need to add at least one OpenSong song file to import from. - + No CCLI Files Selected - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + You need to add at least one CCLI file to import from. - + Starting import... - Starting import... + Starting import... - + Song Import Wizard - + Song Import Wizard - + Welcome to the Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + This wizard will help you to import songs 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 Import Source + Select Import Source - + Select the import format, and where to import from. - Select the import format, and where to import from. + Select the import format, and where to import from. - + Format: - Format: + Format: - + OpenLyrics - + OpenLyrics - + OpenSong - OpenSong + OpenSong - + Add Files... - + Add Files... - + Remove File(s) - + Remove File(s) - + Filename: - + Filename: - + Browse... - + Browse... - + Importing - Importing + Importing - + Please wait while your songs are imported. - + Please wait while your songs are imported. - + Ready. - Ready. + Ready. - + %p% - + %p% - + No OpenLP 2.0 Song Database Selected - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - + You need to select an openlp.org 1.x song database file to import from. - + No Words of Worship Files Selected - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + You need to add at least one Words of Worship file to import from. - + No Songs of Fellowship File Selected - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Open Song Files - + Select Words of Worship Files - + Select Words of Worship Files - + Select Songs of Fellowship Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Select Document/Presentation Files - + OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 - + openlp.org 1.x - + openlp.org 1.x - + Words of Worship - + Words of Worship - + CCLI/SongSelect - + CCLI/SongSelect - + Songs of Fellowship - + Songs of Fellowship - + Generic Document/Presentation - + Generic Document/Presentation - + Select CCLI Files - + Select CCLI Files - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + Importing "%s"... - + Importing "%s"... - + Importing %s... - + Importing %s... + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + No EasyWorship Song Database Selected + No EasyWorship Song Database Selected + + + + You need to select an EasyWorship song database file to import from. + You need to select an EasyWorship song database file to import from. + + + + Select EasyWorship Database File + Select EasyWorship Database File + + + + EasyWorship + EasyWorship + + + + Administered by %s + Administered by %s SongsPlugin.MediaItem - + + Song + Song + + + Song Maintenance - + Song Maintenance - + Maintain the lists of authors, topics and books - Maintain the lists of authors, topics and books - - - - Search: - Search: + Maintain the lists of authors, topics and books - Type: - Type: + Search: + Search: - Clear - Clear + Type: + Type: - Search - Search + Clear + Clear - - Titles - Titles + + Search + Search - Lyrics - Lyrics + Titles + Titles + Lyrics + Lyrics + + + Authors - Authors + Authors - + You must select an item to edit. - + You must select an item to edit. - + You must select an item to delete. - You must select an item to delete. + You must select an item to delete. - + CCLI Licence: - CCLI License: + CCLI License: - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + Delete Song(s)? @@ -4258,53 +3895,53 @@ The content encoding is not UTF-8. Song Book Maintenance - + Song Book Maintenance &Name: - + &Name: &Publisher: - + &Publisher: Error - Error + Error You need to type in a name for the book. - + You need to type in a name for the book. SongsPlugin.SongImport - + copyright - + copyright - - © - © + + © + © SongsPlugin.SongImportForm - + Finished import. - Finished import. + Finished import. - + Your song import failed. - + Your song import failed. @@ -4312,147 +3949,147 @@ The content encoding is not UTF-8. Song Maintenance - + Song Maintenance Authors - Authors + Authors Topics - + Topics Song Books - + Song Books &Add - &Add + &Add &Edit - &Edit + &Edit &Delete - &Delete + &Delete Error - Error + Error Could not add your author. - + Could not add your author. This author already exists. - + This author already exists. Could not add your topic. - + Could not add your topic. This topic already exists. - + This topic already exists. Could not add your book. - + Could not add your book. This book already exists. - + This book already exists. Could not save your changes. - - - - - Could not save your modified author, because he already exists. - + Could not save your changes. Could not save your modified topic, because it already exists. - + Could not save your modified topic, because it already exists. Delete Author - + Delete Author Are you sure you want to delete the selected author? - Are you sure you want to delete the selected author? + Are you sure you want to delete the selected author? This author cannot be deleted, they are currently assigned to at least one song. - + This author cannot be deleted, they are currently assigned to at least one song. No author selected! - No author selected! + No author selected! Delete Topic - Delete Topic + Delete Topic Are you sure you want to delete the selected topic? - + Are you sure you want to delete the selected topic? This topic cannot be deleted, it is currently assigned to at least one song. - + This topic cannot be deleted, it is currently assigned to at least one song. No topic selected! - + No topic selected! Delete Book - Delete Book + Delete Book Are you sure you want to delete the selected book? - Are you sure you want to delete the selected book? + Are you sure you want to delete the selected book? This book cannot be deleted, it is currently assigned to at least one song. - + This book cannot be deleted, it is currently assigned to at least one song. No book selected! - No book selected! + No book selected! + + + + Could not save your modified author, because the author already exists. + Could not save your modified author, because the author already exists. @@ -4460,22 +4097,22 @@ The content encoding is not UTF-8. Songs - + Songs Songs Mode - + Songs Mode Enable search as you type - + Enable search as you type Display verses on live tool bar - + Display verses on live tool bar @@ -4483,22 +4120,22 @@ The content encoding is not UTF-8. Topic Maintenance - + Topic Maintenance Topic name: - Topic name: + Topic name: Error - Error + Error - You need to type in a topic name! - You need to type in a topic name! + You need to type in a topic name. + You need to type in a topic name. @@ -4506,37 +4143,37 @@ The content encoding is not UTF-8. Verse - + Verse Chorus - + Chorus Bridge - Bridge + Bridge Pre-Chorus - Pre-Chorus + Pre-Chorus Intro - Intro + Intro Ending - Ending + Ending Other - Other + Other diff --git a/resources/i18n/es.ts b/resources/i18n/es.ts index eba4f91cc..38f2c691f 100644 --- a/resources/i18n/es.ts +++ b/resources/i18n/es.ts @@ -10,22 +10,12 @@ Show an alert message. - + Mostrar mensaje de alerta <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - Alertas + <strong>Alerts Plugin</strong><br />El plugin de alertas controla la visualización de mensajes de guardería @@ -38,12 +28,12 @@ Alert &text: - + &Texto de Alerta: &Parameter(s): - + &Parámetro(s): @@ -58,32 +48,32 @@ &Delete - + &Eliminar Displ&ay - + Mostr&ar Display && Cl&ose - + M&ostrar && Cerrar &Close - + &Cerrar New Alert - + Alerta Nueva You haven't specified any text for your alert. Please type in some text before clicking New. - + No ha especificado ningún texto de alerta. Por favor, escriba algún texto antes de hacer clic en Nueva. @@ -91,7 +81,7 @@ Alert message created and displayed. - + Mensaje creado y mostrado. @@ -109,22 +99,22 @@ Font name: - + Nombre: Font color: - + Color: Background color: - + Color de Fondo: Font size: - + Tamaño: @@ -159,7 +149,7 @@ Top - + Superior @@ -169,6 +159,19 @@ Bottom + Inferior + + + + BiblePlugin.MediaItem + + + Error + + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? @@ -182,87 +185,7 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - - - Bible - Biblia - - - - Bibles - Biblias - - - - Import - Importar - - - - Import a Bible - - - - - Add - Agregar - - - - Add a new Bible - - - - - Edit - Editar - - - - Edit the selected Bible - - - - - Delete - Eliminar - - - - Delete the selected Bible - - - - - Preview - Vista Previa - - - - Preview the selected Bible - - - - - Live - En vivo - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Bible Plugin</strong><br />El plugin de Biblia proporciona la capacidad de mostrar versículos de la Biblia de fuentes diferentes durante el servicio.. @@ -270,12 +193,12 @@ Book not found - + Libro no localizado The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + El libro solicitado no se encuentra en esta Biblia. Por favor compruebe la ortografía y que este buscando en una edición completa de La Biblia. @@ -283,11 +206,11 @@ Scripture Reference Error - + Error de Referencia Bíblica - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -586,42 +509,32 @@ Changes do not affect verses already in the service. - + Empty Copyright Derechos de autor en blanco - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - ¡Tiene que establecer los derechos de autor de la Biblia! Biblias de Dominio Público deben ser marcados como tales. - - - + Bible Exists Ya existe la Biblia - - This Bible already exists! Please import a different Bible or first delete the existing one. - ¡La Biblia ya existe! Por favor, importe una diferente o borre la anterior. - - - + Open OSIS File - + Open Books CSV File - + Open Verses CSV File - + Open OpenSong Bible Abrir Biblia OpenSong @@ -631,120 +544,130 @@ Changes do not affect verses already in the service. Iniciando importación... - + Finished import. Importación finalizada. - + Your Bible import failed. La importación de su Biblia falló. + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + + BiblesPlugin.MediaItem - + + Bible + Biblia + + + Quick Rápida - + Advanced Avanzado - + Version: Versión: - + Dual: Paralela: - + Search type: - + Find: Encontrar: - + Search Buscar - + Results: Resultados: - + Book: Libro: - + Chapter: Capítulo: - + Verse: Versículo: - + From: Desde: - + To: Hasta: - + Verse Search Búsqueda de versículo - + Text Search Búsqueda de texto - + Clear Limpiar - + Keep Conservar - + No Book Found No se encontró el libro - + No matching book could be found in this Bible. No se encuentra un libro que concuerde, en esta Biblia. - - etc - - - - + Bible not fully loaded. @@ -761,7 +684,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -914,106 +837,18 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - - Customs + + You haven't selected an item to edit. - - Import - Importar - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - Agregar - - - - Add a new Custom - - - - - Edit - Editar - - - - Edit the selected Custom - - - - - Delete - Eliminar - - - - Delete the selected Custom - - - - - Preview - Vista Previa - - - - Preview the selected Custom - - - - - Live - En vivo - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service + + You haven't selected an item to delete. @@ -1021,134 +856,59 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Imagen - - - - Images - Imágenes - - - - Load - - - - - Load a new Image - - - - - Add - Agregar - - - - Add a new Image - - - - - Edit - Editar - - - - Edit the selected Image - - - - - Delete - Eliminar - - - - Delete the selected Image - - - - - Preview - Vista Previa - - - - Preview the selected Image - - - - - Live - En vivo - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + Imagen + + + Select Image(s) Seleccionar Imagen(es) - + All Files - + Replace Live Background - + Replace Background - + Reset Live Background - + You must select an image to delete. - + Image(s) Imagen(es) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -1160,111 +920,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - Medios - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - Agregar - - - - Add a new Media - - - - - Edit - Editar - - - - Edit the selected Media - - - - - Delete - Eliminar - - - - Delete the selected Media - - - - - Preview - Vista Previa - - - - Preview the selected Media - - - - - Live - En vivo - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - - MediaPlugin.MediaItem - - Select Media - Seleccionar Medios - - - - Replace Live Background - - - - - Replace Background - - - - + Media Medios - + + Select Media + Seleccionar Medios + + + + Replace Live Background + + + + + Replace Background + + + + You must select a media file to delete. @@ -1272,7 +952,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1771,7 +1451,7 @@ This General Public License does not permit incorporating your program into prop Top - + Superior @@ -1781,7 +1461,7 @@ This General Public License does not permit incorporating your program into prop Bottom - + Inferior @@ -1832,13 +1512,13 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - - Error Occured + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + Error Occurred @@ -1973,43 +1653,23 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - - - New Service - Servicio Nuevo - - - - Open Service - Abrir Servicio - - - - Save Service - Guardar Servicio - OpenLP 2.0 OpenLP 2.0 - - - AddHereYourLanguageName - - &File @@ -2075,6 +1735,11 @@ This General Public License does not permit incorporating your program into prop &New &Nuevo + + + New Service + Servicio Nuevo + Create a new service. @@ -2090,6 +1755,11 @@ This General Public License does not permit incorporating your program into prop &Open &Abrir + + + Open Service + Abrir Servicio + Open an existing service. @@ -2105,6 +1775,11 @@ This General Public License does not permit incorporating your program into prop &Save &Guardar + + + Save Service + Guardar Servicio + Save the current service to disk. @@ -2373,115 +2048,191 @@ You can download the latest version from http://openlp.org/. Versión de OpenLP Actualizada - + OpenLP Main Display Blanked Pantalla Principal de OpenLP en Blanco - + The Main Display has been blanked out La Pantalla Principal esta en negro - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s - + English - Ingles + Please add the name of your language here + Español OpenLP.MediaManagerItem - + No Items Selected - + + Import %s + + + + + Import a %s + + + + + Load %s + + + + + Load a new %s + + + + + New %s + + + + + Add a new %s + + + + + Edit %s + + + + + Edit the selected %s + + + + + Delete %s + + + + + Delete the selected item + Borrar el ítem seleccionado + + + + Preview %s + + + + + Preview the selected item + Vista Previa del ítem seleccionado + + + + Send the selected item live + Enviar en vivo el ítem seleccionado + + + + Add %s to Service + + + + + Add the selected item(s) to the service + Agregar el elemento(s) seleccionado al servicio + + + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live Mo&star En Vivo - + &Add to Service &Agregar al Servicio - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Usted debe seleccionar uno o más elementos - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2524,17 +2275,17 @@ You can download the latest version from http://openlp.org/. Inactivo - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2326,7 @@ You can download the latest version from http://openlp.org/. Crear un servicio nuevo - + Open Service Abrir Servicio @@ -2585,7 +2336,7 @@ You can download the latest version from http://openlp.org/. Abrir un servicio existente - + Save Service Guardar Servicio @@ -2695,51 +2446,56 @@ You can download the latest version from http://openlp.org/. &Cambiar Tema de Ítem - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + + OpenLP.ServiceNoteForm @@ -2785,70 +2541,55 @@ The content encoding is not UTF-8. - - Blank Screen - Pantalla en Blanco - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live Proyectar en vivo - - Edit and re-preview song - - - - + Start continuous loop Iniciar bucle continuo - + Stop continuous loop Detener el bucle - + s s - + Delay between slides in seconds Espera entre diapositivas en segundos - + Start playing media Iniciar la reproducción de medios - + Go To + + + Edit and reload song preview + + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -2960,16 +2701,6 @@ The content encoding is not UTF-8. You are unable to delete the default theme. - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - - You have not selected a theme. @@ -3031,6 +2762,16 @@ The content encoding is not UTF-8. A theme with this name already exists. Would you like to overwrite it? + + + Theme %s is used in the %s plugin. + + + + + Theme %s is used by the service manager. + + OpenLP.ThemesTab @@ -3087,106 +2828,51 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - Presentación - - - - Presentations - Presentaciones - - - - Load - - - - - Load a new Presentation - - - - - Delete - Eliminar - - - - Delete the selected Presentation - - - - - Preview - Vista Previa - - - - Preview the selected Presentation - - - - - Live - En vivo - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - + + Presentation + Presentación + + + Select Presentation(s) Seleccionar Presentación(es) - + Automatic - + Present using: Mostrar usando: - + File Exists - + A presentation with that filename already exists. Ya existe una presentación con ese nombre. - + Unsupported File - + This type of presentation is not supported. - + You must select an item to delete. @@ -3221,16 +2907,6 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - Remotas - RemotePlugin.RemoteTab @@ -3297,11 +2973,6 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3366,76 +3037,6 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - Canción - - - - Songs - Canciones - - - - Add - Agregar - - - - Add a new Song - - - - - Edit - Editar - - - - Edit the selected Song - - - - - Delete - Eliminar - - - - Delete the selected Song - - - - - Preview - Vista Previa - - - - Preview the selected Song - - - - - Live - En vivo - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm @@ -3476,7 +3077,7 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? + You have not set a display name for the author, combine the first and last names? @@ -3525,7 +3126,7 @@ The content encoding is not UTF-8. &Delete - + &Eliminar @@ -3744,325 +3345,360 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Iniciando importación... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Seleccione Origen de Importación - + Select the import format, and where to import from. Seleccione el formato y el lugar del cual importar. - + Format: Formato: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + Add Files... - + Remove File(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + Importing Importando - + Please wait while your songs are imported. - + Ready. Listo. - + %p% - + Importing "%s"... - + Importing %s... + + + No EasyWorship Song Database Selected + + + + + You need to select an EasyWorship song database file to import from. + + + + + Select EasyWorship Database File + + + + + EasyWorship + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + + Administered by %s + + SongsPlugin.MediaItem - + + Song + Canción + + + Song Maintenance - + Maintain the lists of authors, topics and books Administrar la lista de autores, categorías y libros - + Search: Buscar: - + Type: Tipo: - + Clear Limpiar - + Search Buscar - + Titles Títulos - + Lyrics Letra - + Authors Autores - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: Licencia CCLI: @@ -4098,12 +3734,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4111,12 +3747,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importación finalizada. - + Your song import failed. @@ -4156,7 +3792,7 @@ The content encoding is not UTF-8. &Delete - + &Eliminar @@ -4198,11 +3834,6 @@ The content encoding is not UTF-8. Could not save your changes. - - - Could not save your modified author, because he already exists. - - Could not save your modified topic, because it already exists. @@ -4268,6 +3899,11 @@ The content encoding is not UTF-8. No book selected! ¡Ningún libro seleccionado! + + + Could not save your modified author, because the author already exists. + + SongsPlugin.SongsTab @@ -4311,8 +3947,8 @@ The content encoding is not UTF-8. - You need to type in a topic name! - ¡Usted tiene que escribir un nombre para la categoría! + You need to type in a topic name. + diff --git a/resources/i18n/et.ts b/resources/i18n/et.ts index 9ba29a478..d12ba6898 100644 --- a/resources/i18n/et.ts +++ b/resources/i18n/et.ts @@ -1,31 +1,22 @@ - + + AlertsPlugin &Alert - + &Teade Show an alert message. - + Teate kuvamine. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - + <strong>Teadete plugin</strong><br />Teadete plugina abil saab juhtida näiteks lastehoiu teadete kuvamist ekraanil @@ -33,57 +24,57 @@ Alert Message - + Teate sõnum Alert &text: - + Teate &tekst: &Parameter(s): - + &Parameetrid: &New - + &Uus &Save - + &Salvesta &Delete - + &Kustuta Displ&ay - + &Kuva Display && Cl&ose - + Kuva && &sulge &Close - + &Sulge New Alert - + Uus teade You haven't specified any text for your alert. Please type in some text before clicking New. - + Sa ei ole oma teatele teksti lisanud. Enne nupu Uus vajutamist sisesta mingi tekst. @@ -91,7 +82,7 @@ Alert message created and displayed. - + Teate sõnum loodi ja kuvati. @@ -99,77 +90,90 @@ Alerts - + Teated Font - + Kirjastiil Font name: - + Kirjastiili nimi: Font color: - + Kirja värvus: Background color: - + Taustavärvus: Font size: - + Kirja suurus: pt - + pt Alert timeout: - + Teate kestus: s - + s Location: - + Asukoht: Preview - + Eelvaade OpenLP 2.0 - + OpenLP 2.0 Top - + Üleval Middle - + Keskel Bottom - + All + + + + BiblePlugin.MediaItem + + + Error + Viga + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + Ühe piiblitõlkega ja mitme piiblitõlkega salme pole võimalik kombineerida. Kas tahad kustutada otsitulemuse ja alustada uut otsingut? @@ -177,92 +181,12 @@ &Bible - + &Piibel <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - - - Bible - - - - - Bibles - - - - - Import - - - - - Import a Bible - - - - - Add - - - - - Add a new Bible - - - - - Edit - - - - - Edit the selected Bible - - - - - Delete - - - - - Delete the selected Bible - - - - - Preview - - - - - Preview the selected Bible - - - - - Live - - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Piibli plugin</strong><br />Piibli plugina abil saab teenistuse ajal kuvada erinevate tõlgete piiblisalme. @@ -270,12 +194,12 @@ Book not found - + Raamatut ei leitud The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + Soovitud raamatut ei leitud sellest Piiblist. Kontrolli õigekirja, ning et tegemist on kogu Piibli, mitte ainult ühe testamendiga. @@ -283,11 +207,11 @@ Scripture Reference Error - + Kirjakohaviite tõrge - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -296,7 +220,15 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Sisestatud kirjakohaviit kas ei ole toetatud, või on vigane. Palun veendu, et viide sobib ühega järgnevaist mustritest: + +Raamat peatükk +Raamat peatükk-peatükk +Raamat peatükk:salm-salm +Raamat peatükk:salm-salm,salm-salm +Raamat peatükk:salm-salm,peatükk:salm-salm +Raamat peatükk:salm-peatükk:salm + @@ -304,78 +236,79 @@ Book Chapter:Verse-Chapter:Verse Bibles - + Piiblid Verse Display - + Salmi kuvamine Only show new chapter numbers - + Kuvatakse ainult uute peatükkide numbreid Layout style: - + Paigutuse laad: Display style: - + Kuvalaad: Bible theme: - + Piibli kujundus: Verse Per Slide - + Iga salm eraldi slaidil Verse Per Line - + Iga salm eraldi real Continuous - + Jätkuv No Brackets - + Ilma sulgudeta ( And ) - + ( ja ) { And } - + { ja } [ And ] - + [ ja ] Note: Changes do not affect verses already in the service. - + Märkus: +Muudatused ei rakendu juba teenistusesse lisatud salmidele. Display dual Bible verses - + Piiblisalme kuvatakse kahes keeles @@ -383,370 +316,370 @@ Changes do not affect verses already in the service. Bible Import Wizard - + Piibli importimise nõustaja Welcome to the Bible Import Wizard - + Teretulemast Piibli importimise nõustajasse 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. - + See nõustaja aitab erinevatest vormingutest Piibleid importida. Klõpsa all asuvale edasi nupule, et alustada vormingu valimisest, millest importida. Select Import Source - + Importimise allika valimine Select the import format, and where to import from. - + Vali importimise vorming ning kust importida. Format: - + Vorming: OSIS - + OSIS CSV - + CSV OpenSong - + OpenSong Web Download - + Veebist allalaadimine File location: - + Faili asukoht: Books location: - + Raamatute asukoht: Verse location: - + Salmide asukoht: Bible filename: - + Piibli failinimi: Location: - + Asukoht: Crosswalk - + Crosswalk BibleGateway - + BibleGateway Bible: - + Piibel: Download Options - + Allalaadimise valikud Server: - + Server: Username: - + Kasutajanimi: Password: - + Parool: Proxy Server (Optional) - + Proksiserver (valikuline) License Details - + Litsentsist lähemalt Set up the Bible's license details. - + Määra Piibli litsentsi andmed. Version name: - + Versiooni nimi: Copyright: - + Autoriõigus: Permission: - + Õigus: Importing - + Importimine Please wait while your Bible is imported. - + Palun oota, kuni sinu Piiblit imporditakse. Ready. - + Valmis. Invalid Bible Location - + Ebakorrektne Piibli asukoht You need to specify a file to import your Bible from. - + Pead määrama faili, millest Piibel importida. Invalid Books File - + Vigane raamatute fail You need to specify a file with books of the Bible to use in the import. - + Pead määrama faili, mis sisaldab piibliraamatuid, mida tahad importida. Invalid Verse File - + Vigane salmide fail You need to specify a file of Bible verses to import. - + Pead ette andma piiblisalmide faili, mida importida. Invalid OpenSong Bible - + Mittekorrektne OpenSong Piibel You need to specify an OpenSong Bible file to import. - + Pead määrama OpenSong piiblifaili, mida importida. Empty Version Name - + Versiooni nimi määramata You need to specify a version name for your Bible. - + Pead määrama Piibli versiooni nime. - + Empty Copyright - + Autoriõigused määramata - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + Pead määrama piiblitõlke autoriõiguse! Avalikkuse omandisse kuuluvad Piiblid tuleb vastavalt tähistada. - + Bible Exists - + Piibel on juba olemas - - This Bible already exists! Please import a different Bible or first delete the existing one. - + + This Bible already exists. Please import a different Bible or first delete the existing one. + See Piibel on juba olemas! Palun impordi mingi muu Piibel või kustuta enne olemasolev. - + Open OSIS File - + OSIS faili avamine - + Open Books CSV File - + Raamatute CSV faili avamine - + Open Verses CSV File - + Salmide CSV faili avamine - + Open OpenSong Bible - + OpenSong Piibli avamine Starting import... - + Importimise alustamine... - + Finished import. - + Importimine lõpetatud. - + Your Bible import failed. - + Piibli importimine nurjus. BiblesPlugin.MediaItem - + + Bible + Piibel + + + Quick - + Kiirotsing - + Advanced - + Täpsem - + Version: - + Tõlge: - + Dual: - + Teine: - + Search type: - + Otsingu liik: - + Find: - - - - - Search - - - - - Results: - - - - - Book: - - - - - Chapter: - - - - - Verse: - - - - - From: - + Otsing: + Search + Otsi + + + + Results: + Tulemused: + + + + Book: + Raamat: + + + + Chapter: + Peatükk: + + + + Verse: + Salm: + + + + From: + Algus: + + + To: - + Kuni: - + Verse Search - + Salmi otsing - + Text Search - + Tekstiotsing - + Clear - + Puhasta - + Keep - + Säilita - + No Book Found - + Ühtegi raamatut ei leitud - + No matching book could be found in this Bible. - + Sellest Piiblist ei leitud seda raamatut. - - etc - - - - + Bible not fully loaded. - + Piibel ei ole täielikult laaditud. @@ -754,15 +687,15 @@ Changes do not affect verses already in the service. Importing - + Importimine CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Kohandatud plugin</strong><br />Kohandatud plugin võimaldab tekitada oma tekstiga slaidid, mida kuvatakse ekraanil täpselt nagu laulusõnugi. See plugin võimaldab rohkem vabadust, kui laulude plugin. @@ -770,17 +703,17 @@ Changes do not affect verses already in the service. Custom - + Kohandatud Custom Display - + Kohandatud kuva Display footer - + Jaluse kuvamine @@ -788,369 +721,206 @@ Changes do not affect verses already in the service. Edit Custom Slides - + Kohandatud slaidide muutmine Move slide up one position. - + Slaidi liigutamine koha võrra ülesse. Move slide down one position. - + Slaidi liigutamine koha võrra alla. &Title: - + &Pealkiri: Add New - + Uue lisamine Add a new slide at bottom. - + Uue slaidi lisamine kõige alumiseks. Edit - + Muuda Edit the selected slide. - + Valitud slaidi muutmine. Edit All - + Kõigi muutmine Edit all the slides at once. - + Kõigi slaidide muutmine ühekorraga. Save - + Salvesta Save the slide currently being edited. - + Praegu muutmisel oleva slaidi salvestamine. Delete - + Kustuta Delete the selected slide. - + Praeguse slaidi kustutamine. Clear - + Puhasta Clear edit area - + Muutmise ala puhastamine Split Slide - + Slaidi tükeldamine Split a slide into two by inserting a slide splitter. - + Tükelda slaid kaheks, sisestades slaidide eraldaja. The&me: - + &Kujundus: &Credits: - + &Autorid: Save && Preview - + Salvesta && eelvaatle Error - + Viga You need to type in a title. - + Pead sisestama pealkirja. You need to add at least one slide - + Pead lisama vähemalt ühe slaidi You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Sul on vähemalt üks salvestamata slaid, palun salvesta need või eemalda muudatused. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - + Kohandatud - - Customs - + + You haven't selected an item to edit. + Sa pole valinud kirjet, mida muuta. - - Import - - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - - - - - Add a new Custom - - - - - Edit - - - - - Edit the selected Custom - - - - - Delete - - - - - Delete the selected Custom - - - - - Preview - - - - - Preview the selected Custom - - - - - Live - - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - + + You haven't selected an item to delete. + Sa ei ole valinud kirjet, mida kustutada. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - - - - - Images - - - - - Load - - - - - Load a new Image - - - - - Add - - - - - Add a new Image - - - - - Edit - - - - - Edit the selected Image - - - - - Delete - - - - - Delete the selected Image - - - - - Preview - - - - - Preview the selected Image - - - - - Live - - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + <strong>Pildiplugin</strong><br />Pildiplugin võimaldab piltide kuvamise.<br />Üks selle plugina One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + Pilt + + + Select Image(s) - + Pildi (piltide) valimine - + All Files - + Kõik failid - + Replace Live Background - + Ekraani tausta asendamine - + Replace Background - + Tausta asendamine - + Reset Live Background - + Ekraani tausta asendamine - + You must select an image to delete. - + Pead valima pildi, mida kustutada. - + Image(s) - + Pildid - + You must select an image to replace the background with. - + Pead enne valima pildi, millega tausta asendada. - + You must select a media file to replace the background with. - + Pead enne valima meediafaili, millega tausta asendada. @@ -1158,123 +928,43 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - - - Media - - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - - - - - Add a new Media - - - - - Edit - - - - - Edit the selected Media - - - - - Delete - - - - - Delete the selected Media - - - - - Preview - - - - - Preview the selected Media - - - - - Live - - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - + <strong>Meediaplugin</strong><br />Meedia plugin võimaldab audio- ja videofailide taasesitamist. MediaPlugin.MediaItem - - Select Media - - - - - Replace Live Background - - - - - Replace Background - - - - + Media - + Meedia - + + Select Media + Meedia valimine + + + + Replace Live Background + Ekraani tausta asendamine + + + + Replace Background + Tausta asendamine + + + You must select a media file to delete. - + Pead valima meedia, mida kustutada. OpenLP - + Image Files - + Pildifailid @@ -1282,7 +972,37 @@ Changes do not affect verses already in the service. About OpenLP - + OpenLP-st lähemalt + + + + About + Programmist + + + + Credits + Autorid + + + + License + Litsents + + + + Contribute + Aita kaasa + + + + Close + Sulge + + + + build %s + kompileering %s @@ -1293,12 +1013,13 @@ OpenLP is free church presentation software, or lyrics projection software, used 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 - + OpenLP <version><revision> - avatud lähtekoodiga laulusõnade kuvaja + +OpenLP on vaba esitlustarkvara kirikusse, võib öelda ka laulusõnade projitseerimise tarkvara, mis sobib laulusõnade, piiblisalmide, videote, piltide ja isegi esitluste (kui OpenOffice.org, PowerPoint või PowerPoint Viewer on paigaldatud) kuvamiseks dataprojektori kaudu kirikus. + +OpenLP kohta võid lähemalt uurida aadressil: http://openlp.org/ + +OpenLP on kirjutatud vabatahtlike poolt. Kui sulle meeldiks näha rohkem kristlikku tarkvara, siis võid annetada, selleks klõpsa alumisele nupule. @@ -1340,17 +1061,48 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ - - - - - Credits - + Projekti juht + Raoul \"superfly\" Snyman + +Arendajad + Tim \"TRB143\" Bentley + Jonathan \"gushie\" Corwin + Michael \"cocooncrash\" Gorven + Scott \"sguerrieri\" Guerrieri + Raoul \"superfly\" Snyman + Jon \"Meths\" Tibble + +Kaastöölised + Meinert \"m2j\" Jordan + Andreas \"googol\" Preikschat + Christian \"crichter\" Richter + Philip \"Phill\" Ridout + Maikel Stuivenberg + Carsten \"catini\" Tingaard + Frode \"frodus\" Woldsund + +Testijad + Philip \"Phill\" Ridout + Wesley \"wrst\" Stout (lead) + +Pakendajad + Thomas \"tabthorpe\" Abthorpe (FreeBSD) + Tim \"TRB143\" Bentley (Fedora) + Michael \"cocooncrash\" Gorven (Ubuntu) + Matthias \"matthub\" Hub (Mac OS X) + Raoul \"superfly\" Snyman (Windows, Ubuntu) + +Abivahendid + Python: http://www.python.org/ + Qt4: http://qt.nokia.com/ + PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro + Oxygeni ikoonid: http://oxygen-icons.org/ + - 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 + 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. @@ -1480,27 +1232,137 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gno 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. - - - - - License - - - - - Contribute - - - - - Close - - - - - build %s - + Autoriõigus © 2004-2010 Raoul Snyman +Osaline autoriõigus © 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. @@ -1508,27 +1370,27 @@ This General Public License does not permit incorporating your program into prop Advanced - + Täpsem UI Settings - + Kasutajaliidese sätted Number of recent files to display: - + Kuvatavate hiljutiste failide arv: Remember active media manager tab on startup - + Käivitumisel tuletatakse meelde, milline meediahalduri osa oli aktiivne Double-click to send items straight to live (requires restart) - + Topeltklõps saadab kirjed otse suurele ekraanile (vajalik on taaskäivitus) @@ -1536,310 +1398,310 @@ This General Public License does not permit incorporating your program into prop Theme Maintenance - + Kujunduste haldus Theme &name: - + Kujunduse &nimi: Type: - + Liik: Solid Color - + Ühtlane värv Gradient - + Üleminek Image - + Pilt Image: - + Pilt: Gradient: - + Üleminek: Horizontal - + Horisontaalne Vertical - + Vertikaalne Circular - + Ümmargune &Background - + &Taust Main Font - + Peamine kirjastiil Font: - + Kirjastiil: Color: - + Värvus: Size: - + Suurus: pt - + pt Adjust line spacing: - + Reavahe kohendus: Normal - + Tavaline Bold - + Rasvane Italics - + Kursiiv Bold/Italics - + Rasvane/kaldkiri Style: - + Laad: Display Location - + Kuva asukoht Use default location - + Vaikimisi asukoht X position: - + X-asukoht: Y position: - + Y-asukoht: Width: - + Laius: Height: - + Kõrgus: px - + px &Main Font - + &Peafont Footer Font - + Jaluse kirjatüüp &Footer Font - + &Jaluse font Outline - + Välisjoon Outline size: - + Kontuurjoone paksus: Outline color: - + Kontuurjoone värvus: Show outline: - + Kontuurjoone kuvamine: Shadow - + Vari Shadow size: - + Varju suurus: Shadow color: - + Varju värvus: Show shadow: - + Varju kuvamine: Alignment - + Joondus Horizontal align: - + Horisontaaljoondus: Left - + Vasakul Right - + Paremal Center - + Keskel Vertical align: - + Vertikaaljoondus: Top - + Üleval Middle - + Keskel Bottom - + All Slide Transition - + Slaidide üleminek Transition active - + Üleminek aktiivne &Other Options - + &Muud valikud Preview - + Eelvaade All Files - + Kõik failid Select Image - + Pildi valimine First color: - + Esimene värvus: Second color: - + Teine värvus: Slide height is %s rows. - + Slaidi kõrgus on %s rida. OpenLP.ExceptionDialog - Error Occured - + Error Occurred + Esines viga Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - + Uups! OpenLP-s esines viga, millest pole võimalik taastada. Alumises kastis olev tekst võib olla kasulik OpenLP arendajatele, palun meili see aadressil bugs@openlp.org, koos täpse kirjeldusega sellest, mida sa tegid, kui selline probleem esines. @@ -1847,643 +1709,716 @@ This General Public License does not permit incorporating your program into prop General - + Üldine Monitors - + Monitorid Select monitor for output display: - + Vali väljundkuva ekraan: Display if a single screen - + Kuvatakse, kui on ainult üks ekraan Application Startup - + Rakenduse käivitumine Show blank screen warning - + Kuvatakse tühja ekraani hoiatust Automatically open the last service - + Automaatselt avatakse viimane teenistus Show the splash screen - + Käivitumisel kuvatakse logo Application Settings - + Rakenduse sätted Prompt to save before starting a new service - + Enne uue teenistuse alustamist küsitakse, kas salvestada avatud teenistus Automatically preview next item in service - + Järgmise teenistuse elemendi automaatne eelvaade Slide loop delay: - + Slaidi näitamise pikkus korduses: sec - + sek CCLI Details - + CCLI andmed CCLI number: - + CCLI number: SongSelect username: - + SongSelecti kasutajanimi: SongSelect password: - + SongSelecti parool: Display Position - + Kuva asukoht X - + X Y - + Y Height - + Kõrgus Width - + Laius Override display position - + Kuva asukoht määratakse jõuga Screen - + Ekraan primary - + peamine OpenLP.LanguageManager - + Language - + Keel - + Please restart OpenLP to use your new language setting. - + Uue keele kasutamiseks käivita OpenLP uuesti. OpenLP.MainWindow - - - New Service - - - - - Open Service - - - - - Save Service - - OpenLP 2.0 - - - - - AddHereYourLanguageName - + OpenLP 2.0 &File - + &Fail &Import - + &Impordi &Export - + &Ekspordi &View - + &Vaade M&ode - + &Režiim &Tools - + &Tööriistad &Settings - + &Sätted &Language - + &Keel &Help - + A&bi Media Manager - + Meediahaldur Service Manager - + Teenistuse haldur Theme Manager - + Kujunduse haldur &New - + &Uus + + + + New Service + Uus teenistus Create a new service. - + Uue teenistuse loomine. Ctrl+N - + Ctrl+N &Open - + &Ava + + + + Open Service + Teenistuse avamine Open an existing service. - + Olemasoleva teenistuse avamine. Ctrl+O - + Ctrl+O &Save - + &Salvesta + + + + Save Service + Teenistuse salvestamine Save the current service to disk. - + Praeguse teenistuse salvestamine kettale. Ctrl+S - + Ctrl+S Save &As... - + Salvesta &kui... Save Service As - + Salvesta teenistus kui Save the current service under a new name. - + Praeguse teenistuse salvestamine uue nimega. Ctrl+Shift+S - + Ctrl+Shift+S E&xit - + &Välju Quit OpenLP - + Lahku OpenLPst Alt+F4 - + Alt+F4 &Theme - + &Kujundus &Configure OpenLP... - + &Seadista OpenLP... &Media Manager - + &Meediahaldur Toggle Media Manager - + Meediahalduri lüliti Toggle the visibility of the media manager. - + Meediahalduri nähtavuse ümberlüliti. F8 - + F8 &Theme Manager - + &Kujunduse haldur Toggle Theme Manager - + Kujunduse halduri lüliti Toggle the visibility of the theme manager. - + Kujunduse halduri nähtavuse ümberlülitamine. F10 - + F10 &Service Manager - + &Teenistuse haldur Toggle Service Manager - + Teenistuse halduri lüliti Toggle the visibility of the service manager. - + Teenistuse halduri nähtavuse ümberlülitamine. F9 - + F9 &Preview Panel - + &Eelvaatluspaneel Toggle Preview Panel - + Eelvaatluspaneeli lüliti Toggle the visibility of the preview panel. - + Eelvaatluspaneeli nähtavuse ümberlülitamine. F11 - + F11 &Live Panel - + &Ekraani paneel Toggle Live Panel - + Ekraani paneeli lüliti Toggle the visibility of the live panel. - + Ekraani paneeli nähtavuse muutmine. F12 - + F12 &Plugin List - + &Pluginate loend List the Plugins - + Pluginate loend Alt+F7 - + Alt+F7 &User Guide - + &Kasutajajuhend &About - + &Lähemalt More information about OpenLP - + Lähem teave OpenLP kohta Ctrl+F1 - + Ctrl+F1 &Online Help - + &Abi veebis &Web Site - + &Veebileht &Auto Detect - + &Isetuvastus Use the system language, if available. - + Kui saadaval, kasutatakse süsteemi keelt. Set the interface language to %s - + Kasutajaliidese keeleks %s määramine Add &Tool... - + Lisa &tööriist... Add an application to the list of tools. - + Rakenduse lisamine tööriistade loendisse. &Default - + &Vaikimisi Set the view mode back to the default. - + Vaikimisi kuvarežiimi taastamine. &Setup - + &Ettevalmistus Set the view mode to Setup. - + Ettevalmistuse kuvarežiimi valimine. &Live - + &Otse Set the view mode to Live. - + Vaate režiimiks ekraanivaate valimine. + + + + OpenLP Version Updated + OpenLP uuendus + + + + OpenLP Main Display Blanked + OpenLP peakuva on tühi + + + + The Main Display has been blanked out + Peakuva on tühi + + + + Save Changes to Service? + Kas salvestada teenistusse tehtud muudatused? + + + + Your service has changed. Do you want to save those changes? + Seda teenistust on muudetud. Kas sa tahad need muudatused salvestada? + + + + Default Theme: %s + Vaikimisi kujundus: %s 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/. - + OpenLP versioon %s on nüüd allalaadimiseks saadaval (sina kasutad praegu versiooni %s). + +Sa võid viimase versiooni alla laadida aadressilt http://openlp.org/. - - OpenLP Version Updated - - - - - OpenLP Main Display Blanked - - - - - The Main Display has been blanked out - - - - - Save Changes to Service? - - - - - Your service has changed. Do you want to save those changes? - - - - - Default Theme: %s - - - - + English - + Please add the name of your language here + Eesti OpenLP.MediaManagerItem - + No Items Selected - + Ühtegi elementi pole valitud - + + Import %s + Impordi %s + + + + Import a %s + %s importimine + + + + Load %s + Laadi %s + + + + Load a new %s + Uue %s avamine + + + + New %s + Uus %s + + + + Add a new %s + Uue %s lisamine + + + + Edit %s + %s muutmine + + + + Edit the selected %s + Valitud %s muutmine + + + + Delete %s + %s kustutamine + + + + Delete the selected item + Valitud elemendi kustutamine + + + + Preview %s + %s eelvaade + + + + Preview the selected item + Valitud kirje eelvaatlus + + + + Send the selected item live + Valitud kirje saatmine ekraanile + + + + Add %s to Service + %s lisamine teenistusele + + + + Add the selected item(s) to the service + Valitud kirje(te) lisamine teenistusse + + + &Edit %s - + %s &muutmine - + &Delete %s - + %s &kustutamine - + &Preview %s - + %s &eelvaatlus - + &Show Live - + &Kuva ekraanil - + &Add to Service - + &Lisa teenistusele - + &Add to selected Service Item - + &Lisa valitud teenistuse elemendile - + You must select one or more items to preview. - + Sa pead valima vähemalt ühe kirje, mida eelvaadelda. - + You must select one or more items to send live. - + Sa pead valima vähemalt ühe kirje, mida tahad ekraanil näidata. - + You must select one or more items. - + Pead valima vähemalt ühe elemendi. - + No items selected - + Ühtegi elementi pole valitud - + You must select one or more items - + Pead valima vähemalt ühe elemendi - + No Service Item Selected - + Ühtegi teenistuse elementi pole valitud - + You must select an existing service item to add to. - + Pead valima olemasoleva teenistuse, millele lisada. - + Invalid Service Item - + Vigane teenistuse element - + You must select a %s service item. - + Pead valima teenistuse elemendi %s. @@ -2491,52 +2426,52 @@ You can download the latest version from http://openlp.org/. Plugin List - + Pluginate loend Plugin Details - + Plugina andmed Version: - + Versioon: About: - + Kirjeldus: Status: - + Olek: Active - + Aktiivne Inactive - + Pole aktiivne - + %s (Inactive) - + %s (pole aktiivne) - + %s (Active) - + %s (aktiivne) - + %s (Disabled) - + %s (keelatud) @@ -2544,22 +2479,22 @@ You can download the latest version from http://openlp.org/. Reorder Service Item - + Teenistuse elementide ümberjärjestamine Up - + Üles Delete - + Kustuta Down - + Alla @@ -2567,178 +2502,184 @@ You can download the latest version from http://openlp.org/. New Service - + Uus teenistus Create a new service - + Uue teenistuse loomine - + Open Service - + Teenistuse avamine Load an existing service - + Olemasoleva teenistuse laadimine - + Save Service - + Salvesta teenistus Save this service - + Selle teenistuse salvestamine Theme: - + Kujundus: Select a theme for the service - + Vali teenistuse jaoks kujundus Move to &top - + Tõsta ü&lemiseks Move item to the top of the service. - + Teenistuse algusesse tõstmine. Move &up - + Liiguta &üles Move item up one position in the service. - + Elemendi liigutamine teenistuses ühe koha võrra ettepoole. Move &down - + Liiguta &alla Move item down one position in the service. - + Elemendi liigutamine teenistuses ühe koha võrra tahapoole. Move to &bottom - + Tõsta &alumiseks Move item to the end of the service. - + Teenistuse lõppu tõstmine. &Delete From Service - + &Kustuta teenistusest Delete the selected item from the service. - + Valitud elemendi kustutamine teenistusest. &Add New Item - + &Lisa uus element &Add to Selected Item - + &Lisa valitud elemendile &Edit Item - + &Muuda kirjet &Reorder Item - + &Muuda elemendi kohta järjekorras &Notes - + &Märkmed &Preview Verse - + &Salmi eelvaatlus &Live Verse - + &Otse ekraanile &Change Item Theme - + &Muuda elemendi kujundust - + Save Changes to Service? - + Kas salvestada teenistusse tehtud muudatused? - + Your service is unsaved, do you want to save those changes before creating a new one? - + See teenistus pole salvestatud, kas tahad selle enne uue avamist salvestada? - + OpenLP Service Files (*.osz) - + OpenLP teenistusefailid (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + See teenistus pole salvestatud, kas tahad enne uue avamist muudatused salvestada? - + Error - + Viga - + File is not a valid service. The content encoding is not UTF-8. - + Fail ei ole sobiv teenistus. +Sisu ei ole UTF-8 kodeeringus. - + File is not a valid service. - + Fail pole sobiv teenistus. - + Missing Display Handler - + Puudub kuvakäsitleja - + Your item cannot be displayed as there is no handler to display it - + Seda elementi pole võimalik näidata ekraanil, kuna puudub seda käsitsev programm + + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + Seda elementi pole võimalik näidata ekraanil, kuna puudub seda käsitsev programm @@ -2746,7 +2687,7 @@ The content encoding is not UTF-8. Service Item Notes - + Teenistuse elemendi märkmed @@ -2754,7 +2695,7 @@ The content encoding is not UTF-8. Configure OpenLP - + Seadista OpenLP @@ -2762,95 +2703,80 @@ The content encoding is not UTF-8. Live - + Ekraan Preview - + Eelvaade Move to previous - + Eelmisele liikumine Move to next - + Järgmisele liikumine Hide - + Peida - - Blank Screen - - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - + Tõsta ekraanile - - Edit and re-preview song - + + Edit and reload song preview + Muuda ja kuva laulu eelvaade uuesti - + Start continuous loop - + Katkematu korduse alustamine - + Stop continuous loop - + Katkematu korduse lõpetamine - + s - + s - + Delay between slides in seconds - + Viivitus slaidide vahel sekundites - + Start playing media - + Meediaesituse alustamine - + Go To - + Liigu kohta OpenLP.SpellTextEdit - + Spelling Suggestions - + Õigekirjasoovitused - + Formatting Tags - + Siltide vormindus @@ -2858,178 +2784,179 @@ The content encoding is not UTF-8. New Theme - + Uus kujundus Create a new theme. - + Uue kujunduse loomine. Edit Theme - + Kujunduse muutmine Edit a theme. - + Kujunduse muutmine. Delete Theme - + Kujunduse kustutamine Delete a theme. - + Kujunduse kustutamine. Import Theme - + Kujunduse importimine Import a theme. - + Kujunduse importimine. Export Theme - + Kujunduse eksportimine Export a theme. - + Kujunduse eksportimine. &Edit Theme - + Kujunduse &muutmine &Delete Theme - + Kujunduse &kustutamine Set As &Global Default - + Määra &globaalseks vaikeväärtuseks E&xport Theme - + &Ekspordi kujundus %s (default) - + %s (vaikimisi) You must select a theme to edit. - + Pead valima kujunduse, mida muuta. You must select a theme to delete. - + Pead valima kujunduse, mida tahad kustutada. Delete Confirmation - + Kustutamise kinnitus Delete theme? - + Kas kustutada kujundus? Error - + Viga You are unable to delete the default theme. - + Vaikimisi kujundust pole võimalik kustutada. - Theme %s is use in %s plugin. - + Theme %s is used in the %s plugin. + Kujundust %s kasutatakse pluginas %s. - Theme %s is use by the service manager. - + Theme %s is used by the service manager. + Teenistuse halduri nähtavuse ümberlülitamine. You have not selected a theme. - + Sa ei ole kujundust valinud. Save Theme - (%s) - + Salvesta kujundus - (%s) Theme Exported - + Kujundus eksporditud Your theme has been successfully exported. - + Sinu kujunduse on edukalt eksporditud. Theme Export Failed - + Kujunduse eksportimine nurjus Your theme could not be exported due to an error. - + Sinu kujundust polnud võimalik eksportida, kuna esines viga. Select Theme Import File - + Importimiseks kujunduse faili valimine Theme (*.*) - + Kujundus (*.*) File is not a valid theme. The content encoding is not UTF-8. - + See fail ei ole korrektne kujundus. +Sisu kodeering ei ole UTF-8. File is not a valid theme. - + See fail ei ole sobilik kujundus. Theme Exists - + Kujundus on juba olemas A theme with this name already exists. Would you like to overwrite it? - + Sellenimeline kujundus on juba olemas. Kas tahad selle üle kirjutada? @@ -3037,47 +2964,47 @@ The content encoding is not UTF-8. Themes - + Kujundused Global Theme - + Üldine kujundus Theme Level - + Kujunduse tase S&ong Level - + &Laulu tase 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. - + Iga laulu jaoks kasutatakse sellele andmebaasis määratud kujundust. Kui laulul kujundus puudub, kasutatakse teenistuse kujundust. Kui teenistusel kujundus puudub, siis kasutatakse üleüldist kujundust. &Service Level - + &Teenistuse tase 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. - + Kasutatakse teenistuse kujundust, eirates laulude kujundusi. Kui teenistusel kujundust pole, kasutatakse globaalset. &Global Level - + &Üleüldine tase Use the global theme, overriding any themes associated with either the service or the songs. - + Kasutatakse globaalset kujundust, eirates nii teenistuse kui laulu kujundust. @@ -3085,110 +3012,55 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - - - Presentation - - - - - Presentations - - - - - Load - - - - - Load a new Presentation - - - - - Delete - - - - - Delete the selected Presentation - - - - - Preview - - - - - Preview the selected Presentation - - - - - Live - - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - + <strong>Esitluse plugin</strong><br />Esitluse plugin võimaldab näidata esitlusi erinevate programmidega. Saadaolevate esitlusprogrammide valik on saadaval valikukastis. PresentationPlugin.MediaItem - + + Presentation + Esitlus + + + Select Presentation(s) - + Esitlus(t)e valimine - + Automatic - + Automaatne - + Present using: - + Esitluseks kasutatakse: - + File Exists - + Fail on olemas - + A presentation with that filename already exists. - + Sellise nimega esitluse fail on juba olemas. - + Unsupported File - + Toetamata fail - + This type of presentation is not supported. - + Seda liiki esitlus ei ole toetatud. - + You must select an item to delete. - + Pead valima kirje, mida kustutada. @@ -3196,22 +3068,22 @@ The content encoding is not UTF-8. Presentations - + Esitlused Available Controllers - + Saadaolevad juhtijad Advanced - + Täpsem Allow presentation application to be overriden - + Esitlusrakendust on lubatud asendada @@ -3219,17 +3091,7 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - - - Remote - - - - - Remotes - + <b>Kaugjuhtimisplugin</b><br>See plugin võimaldab töötavale openlp programmile teadete saatmise teisest arvutist veebilehitseja või mõne muu rakenduse kaudu.<br>Selle peamine rakendus on teadete saatmine lastehoiust. @@ -3237,22 +3099,22 @@ The content encoding is not UTF-8. Remotes - + Kaugjuhtimine Serve on IP address: - + Saadaval IP-aadressilt: Port number: - + Pordi number: Server Settings - + Serveri sätted @@ -3260,47 +3122,42 @@ The content encoding is not UTF-8. &Song Usage Tracking - + &Laulude kasutuse jälgimine &Delete Tracking Data - + &Kustuta kogutud andmed Delete song usage data up to a specified date. - + Laulude kasutuse andmete kustutamine kuni antud kuupäevani. &Extract Tracking Data - + &Eralda laulukasutuse andmed Generate a report on song usage. - + Genereeri raport laulude kasutuse kohta. Toggle Tracking - + Laulukasutuse jälgimine Toggle the tracking of song usage. - + Laulukasutuse jälgimise sisse- ja väljalülitamine. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - - - SongUsage - + <strong>Laulude plugin</strong><br />See plugin võimaldab laulude kuvamise ja haldamise. @@ -3308,17 +3165,17 @@ The content encoding is not UTF-8. Delete Song Usage Data - + Laulukasutuse andmete kustutamine Delete Selected Song Usage Events? - + Kas kustutada valitud laulude kasutamise sündmused? Are you sure you want to delete selected Song Usage data? - + Kas oled kindel, et tahad kustutada valitud laulude kasutuse andmed? @@ -3326,27 +3183,27 @@ The content encoding is not UTF-8. Song Usage Extraction - + Laulukasutuse salvestamine Select Date Range - + Vali kuupäevade vahemik to - + kuni Report Location - + Asukohast raporteerimine Output File Location - + Väljundfaili asukoht @@ -3354,87 +3211,17 @@ The content encoding is not UTF-8. &Song - + &Laul Import songs using the import wizard. - + Laulude importimine importimise nõustajaga. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - - - Song - - - - - Songs - - - - - Add - - - - - Add a new Song - - - - - Edit - - - - - Edit the selected Song - - - - - Delete - - - - - Delete the selected Song - - - - - Preview - - - - - Preview the selected Song - - - - - Live - - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - + <strong>Laulude plugin</strong><br />See plugin võimaldab laulude kuvamise ja haldamise. @@ -3442,42 +3229,42 @@ The content encoding is not UTF-8. Author Maintenance - + Autorite haldus Display name: - + Täisnimi: First name: - + Eesnimi: Last name: - + Perekonnanimi: Error - + Viga You need to type in the first name of the author. - + Pead sisestama autori eesnime. You need to type in the last name of the author. - + Pead sisestama autori perekonnanime. - You have not set a display name for the author, would you like me to combine the first and last names for you? - + You have not set a display name for the author, combine the first and last names? + Sa ei ole sisestanud autori kuvamise nime, kas see tuleks kombineerida ees- ja perekonnanimest? @@ -3485,242 +3272,242 @@ The content encoding is not UTF-8. Song Editor - + Lauluredaktor &Title: - + &Pealkiri: Alt&ernate title: - + &Alternatiivne pealkiri: &Lyrics: - + &Sõnad: &Verse order: - + &Salmide järjekord: &Add - + &Lisa &Edit - + &Muuda Ed&it All - + Muuda &kõiki &Delete - + &Kustuta Title && Lyrics - + Pealkiri && laulusõnad Authors - + Autorid &Add to Song - + &Lisa laulule &Remove - + &Eemalda &Manage Authors, Topics, Song Books - + &Autorite, teemade ja laulikute haldamine Topic - + Teema A&dd to Song - + L&isa laulule R&emove - + &Eemalda Song Book - + Laulik Book: - + Book: Number: - + Number: Authors, Topics && Song Book - + Autorid, teemad && laulik Theme - + Kujundus New &Theme - + Uus &kujundus Copyright Information - + Autoriõiguse andmed - © - + © + © CCLI number: - + CCLI number: Comments - + Kommentaarid Theme, Copyright Info && Comments - + Kujundus, autoriõigus && kommentaarid Save && Preview - + Salvesta && eelvaatle Add Author - + Autori lisamine This author does not exist, do you want to add them? - + Seda autorit veel pole, kas tahad autori lisada? Error - + Viga This author is already in the list. - + See autor juba on loendis. No Author Selected - + Autorit pole valitud You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Sa ei ole valinud ühtegi sobilikku autorit. Vali autor loendist või sisesta uue autori nimi ja klõpsa uue nupul "Lisa laulule autor". Add Topic - + Teema lisamine This topic does not exist, do you want to add it? - + Sellist teemat pole. Kas tahad selle lisada? This topic is already in the list. - + See teema juba on loendis. No Topic Selected - + Ühtegi teemat pole valitud You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + Sa pole valinud sobivat teemat. Vali teema kas loendist või sisesta uus teema ja selle lisamiseks klõpsa nupule "Lisa laulule teema". You need to type in a song title. - + Pead sisestama laulu pealkirja. You need to type in at least one verse. - + Pead sisestama vähemalt ühe salmi. Warning - + Hoiatus You have not added any authors for this song. Do you want to add an author now? - + Sa pole sellele laulule lisanud mitte ühtegi autorit. Kas sa tahad laulule nüüd autori lisada? The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + Salmide järjekord pole sobiv. Mitte ükski valm ei vasta %s-le. Sobivad salmid on %s. You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Sa pole kasutanud %s mitte kusagil salmide järjekorras. Kas sa oled kindel, et tahad laulu selliselt salvestada? Add Book - + Lauliku lisamine This song book does not exist, do you want to add it? - + Sellist laulikut pole. Kas tahad selle lisada? @@ -3728,343 +3515,378 @@ The content encoding is not UTF-8. Edit Verse - + Salmi muutmine &Verse type: - + &Salmi liik: &Insert - + &Sisesta SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + Ühtegi OpenLP 2.0 lauluandmebaasi pole valitud - + You need to select an OpenLP 2.0 song database file to import from. - + Pead valima OpenLP 2.0 lauluandmebaasi, mida importida. - + No openlp.org 1.x Song Database Selected - + Ühtegi openlp 1.x lauluandmebaasi faili pole valitud - + You need to select an openlp.org 1.x song database file to import from. - + Pead valima openlp.org 1.x andmebaasi, millest importida. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + Ühtegi OpenSong faili pole valitud - + You need to add at least one OpenSong song file to import from. - + Pead lisama vähemalt ühe OpenSong faili, mida importida. - + No Words of Worship Files Selected - + Ühtegi Words of Worship faili pole valitud - + You need to add at least one Words of Worship file to import from. - + Tuleb lisada vähemalt üks Words of Worship fail, millest importida. - + No CCLI Files Selected - + Ühtegi CCLI faili pole valitud - + You need to add at least one CCLI file to import from. - + Tuleb lisada vähemalt üks CCLI fail, millest importida. - + No Songs of Fellowship File Selected - + Ühtegi Songs of Fellowship faili pole valitud - + You need to add at least one Songs of Fellowship file to import from. - + Pead lisama vähemalt ühe Songs of Fellowship faili, mida importida. - + No Document/Presentation Selected - + Ühtegi dokumenti/esitlust pole valitud - + You need to add at least one document or presentation file to import from. - + Pead lisama vähemalt ühe dokumendi või esitluse faili, millest importida. - + + No EasyWorship Song Database Selected + Ühtegi EasyWorship lauluandmebaasi faili pole valitud + + + + You need to select an EasyWorship song database file to import from. + Pead valima vähemalt ühe EasyWorship lauluandmebaasi, millest importida. + + + Select OpenLP 2.0 Database File - + OpenLP 2.0 andmebaasifaili valimine - + Select openlp.org 1.x Database File - + openlp.org 1.x andmebaasifaili valimine - - Select OpenLyrics Files - - - - + Select Open Song Files - + Open Song failide valimine - + Select Words of Worship Files - + Words of Worship failide valimine - + Select CCLI Files - + CCLI failide valimine - + Select Songs of Fellowship Files - + Songs of Fellowship failide valimine - + Select Document/Presentation Files - + Dokumentide/esitluste valimine - + + Select EasyWorship Database File + EasyWorship andmebaasifaili valimine + + + Starting import... - + Importimise alustamine... - + Song Import Wizard - + Laulude importimise nõustaja - + Welcome to the Song Import Wizard - + Tere tulemast laulude importimise nõustajasse - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + See nõustaja aitab sul laule importida paljudest erinevatest formaatidest. Klõpsa all asuvat edasi nuppu, et jätkata tegevust importimise vormingu valimisega. - + Select Import Source - + Importimise allika valimine - + Select the import format, and where to import from. - + Vali importimise vorming ning kust importida. - + Format: - + Vorming: - + OpenLP 2.0 - + OpenLP 2.0 - + openlp.org 1.x - + openlp.org 1.x - + OpenLyrics - + OpenLyrics - + OpenSong - + OpenSong - + Words of Worship - + Words of Worship - + CCLI/SongSelect - + CCLI/SongSelect - + Songs of Fellowship - + Songs of Fellowship fail - + Generic Document/Presentation - + Tavaline dokumenti/esitlus - + + EasyWorship + EasyWorship + + + Filename: - + Failinimi: - + Browse... - + Lehitse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + openlp.org 1.x importija on ühe puuduva Pythoni mooduli pärast keelatud. Kui sa tahad seda importijat kasutada, pead paigaldama mooduli "python-sqlite". + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + OpenLyrics importija ei ole veel valmis, kuid nagu sa näed, on meil plaanis see luua. Loodetavasti saab see järgmiseks väljalaskeks valmis. + + + Add Files... - + Lisa faile... - + Remove File(s) - + Faili(de) eemaldamine - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + Songs of Fellowship importija on keelatud, kuna OpenLP ei suuda leida sinu arvutist OpenOffice.org-i. + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + Tavalisest dokumendist/esitlusest importija on keelatud, kuna OpenLP ei suuda leida sinu arvutist OpenOffice.org-i. + + + Importing - + Importimine - + Please wait while your songs are imported. - + Palun oota, kuni laule imporditakse. - + Ready. - + Valmis. - + %p% - + %p% - + Importing "%s"... - + "%s" importimine... - + Importing %s... + %s importimine... + + + + Administered by %s SongsPlugin.MediaItem - + + Song + Laul + + + Song Maintenance - + Laulude haldus - + Maintain the lists of authors, topics and books - - - - - Search: - + Autorite, teemade ja raamatute loendi haldamine - Type: - + Search: + Otsi: - Clear - + Type: + Liik: - Search - + Clear + Puhasta - - Titles - + + Search + Otsi - Lyrics - + Titles + Pealkirjad + Lyrics + Laulusõnad + + + Authors - + Autorid - + You must select an item to edit. - + Pead valima kirje, mida muuta. - + You must select an item to delete. - + Pead valima kirje, mida tahad kustutada. - + Are you sure you want to delete the selected song? - + Kas oeld kindel, et tahad valitud laulu kustutada? - + Are you sure you want to delete the %d selected songs? - + Kas oled kindel, et tahad kustutada %s valitud laulu? - + Delete Song(s)? - + Kas kustutada laul(ud)? - + CCLI Licence: - + CCLI litsents: @@ -4072,53 +3894,53 @@ The content encoding is not UTF-8. Song Book Maintenance - + Lauliku haldus &Name: - + &Nimi: &Publisher: - + &Kirjastaja: Error - + Viga You need to type in a name for the book. - + Pead sisestama lauliku nime. SongsPlugin.SongImport - + copyright - + autoriõigus - - © - + + © + © SongsPlugin.SongImportForm - + Finished import. - + Importimine lõpetatud. - + Your song import failed. - + Laulu importimine nurjus. @@ -4126,147 +3948,147 @@ The content encoding is not UTF-8. Song Maintenance - + Laulude haldus Authors - + Autorid Topics - + Teemad Song Books - + Laulikud &Add - + &Lisa &Edit - + &Muuda &Delete - + &Kustuta Error - + Viga Could not add your author. - + Autori lisamine pole võimalik. This author already exists. - + See autor on juba olemas. Could not add your topic. - + Sinu teema lisamine pole võimalik. This topic already exists. - + Teema on juba olemas. Could not add your book. - + Lauliku lisamine pole võimalik. This book already exists. - + See laulik on juba olemas. Could not save your changes. - + Muudatuste salvestamine pole võimalik. - Could not save your modified author, because he already exists. - + Could not save your modified author, because the author already exists. + Sinu muudetud autorit pole võimalik salvestada, kuna autor on juba olemas. Could not save your modified topic, because it already exists. - + Sinu muudetud teemat pole võimalik salvestada, kuna selline on juba olemas. Delete Author - + Autori kustutamine Are you sure you want to delete the selected author? - + Kas oled kindel, et tahad kustutada valitud autori? This author cannot be deleted, they are currently assigned to at least one song. - + Seda autorit pole võimalik kustutada, kuna ta on märgitud vähemalt ühe laulu autoriks. No author selected! - + Ühtegi autorit pole valitud! Delete Topic - + Teema kustutamine Are you sure you want to delete the selected topic? - + Kas oled kindel, et tahad valitud teema kustutada? This topic cannot be deleted, it is currently assigned to at least one song. - + Seda teemat pole võimalik kustutada, kuna see on seostatud vähemalt ühe lauluga. No topic selected! - + Ühtegi teemat pole valitud! Delete Book - + Lauliku kustutamine Are you sure you want to delete the selected book? - + Kas oled kindel, et tahad valitud lauliku kustutada? This book cannot be deleted, it is currently assigned to at least one song. - + Seda laulikut pole võimalik kustutada, kuna vähemalt üks laul kuulub sellesse laulikusse. No book selected! - + Ühtegi laulikut pole valitud! @@ -4274,22 +4096,22 @@ The content encoding is not UTF-8. Songs - + Laulud Songs Mode - + Laulurežiim Enable search as you type - + Otsing sisestamise ajal Display verses on live tool bar - + Salme kuvatakse ekraani tööriistaribal @@ -4297,22 +4119,22 @@ The content encoding is not UTF-8. Topic Maintenance - + Teemade haldus Topic name: - + Teema nimi: Error - + Viga - You need to type in a topic name! - + You need to type in a topic name. + Pead sisestama teema nime. @@ -4320,37 +4142,37 @@ The content encoding is not UTF-8. Verse - + Salm Chorus - + Refrään Bridge - + Vahemäng Pre-Chorus - + Eelrefrään Intro - + Sissejuhatus Ending - + Lõpetus Other - + Muu diff --git a/resources/i18n/hu.ts b/resources/i18n/hu.ts index 031a9de32..e02111ee9 100644 --- a/resources/i18n/hu.ts +++ b/resources/i18n/hu.ts @@ -5,27 +5,17 @@ &Alert - &Figyelmeztetés + &Figyelmeztetés Show an alert message. - + Figyelmeztetést jelenít meg. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - Figyelmeztetések + <strong>Figyelmeztetés bővítmény</strong><br />A figyelmeztetés bővítmény kezeli gyermekfelügyelet felhívásait a vetítőn @@ -33,57 +23,57 @@ Alert Message - Figyelmeztetés + Figyelmeztetés Alert &text: - Figyelmeztető &szöveg: + Figyelmeztető &szöveg: &Parameter(s): - &Paraméterek: + &Paraméter(ek): &New - &Új + &Új &Save - + &Mentés &Delete - &Törlés + &Törlés Displ&ay - &Megjelenítés + &Megjelenítés Display && Cl&ose - M&egjelenítés és bezárás + M&egjelenítés és bezárás &Close - &Bezárás + &Bezárás New Alert - + Új figyelmeztetés You haven't specified any text for your alert. Please type in some text before clicking New. - + A figyelmeztető szöveg nincs megadva. Adj meg valamilyen szöveget az Új gombra való kattintás előtt. @@ -91,7 +81,7 @@ Alert message created and displayed. - + A figyelmeztető üzenet létrejött és megjelent. @@ -99,76 +89,89 @@ Alerts - Figyelmeztetések + Figyelmeztetések Font - Betűkészlet + Betűkészlet Font name: - + Betűkészlet neve: Font color: - + Betűszín: Background color: - + Háttérszín: Font size: - + Betűméret: pt - + Alert timeout: - Figyelmeztetés késleltetése: + Figyelmeztetés késleltetése: s - mp + mp Location: - Hely: + Hely: Preview - Előnézet + Előnézet OpenLP 2.0 - + Top - + Felülre Middle - Középre + Középre Bottom + Alulra + + + + BiblePlugin.MediaItem + + + Error + Hiba + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? @@ -177,92 +180,12 @@ &Bible - &Biblia + &Biblia <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - - - Bible - Biblia - - - - Bibles - Bibliák - - - - Import - Importálás - - - - Import a Bible - - - - - Add - Hozzáadás - - - - Add a new Bible - - - - - Edit - Szerkesztés - - - - Edit the selected Bible - - - - - Delete - Törlés - - - - Delete the selected Bible - - - - - Preview - Előnézet - - - - Preview the selected Bible - - - - - Live - Egyenes adás - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Biblia bővítmény</strong><br />A Biblia bővítmény különféle forrásokból származó igehelyek vetítését teszi lehetővé a szolgálat alatt. @@ -270,12 +193,12 @@ Book not found - + A könyv nem található The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + A kért könyv nem található ebben a Bibliában. Kérlek, ellenőrizd a helyesírást és hogy ez egy teljes Biblia, nem csak az egyik szövetség. @@ -283,11 +206,11 @@ Scripture Reference Error - + Igehely hivatkozási hiba - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -296,7 +219,15 @@ Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Ezt az igehely hivatkozást nem támogatja az OpenLP vagy nem helyes. Kérlek, ellenőrizd, hogy a hivatkozás megfelel-e az egyik alábbi mintának: + +Könyv fejezet +Könyv fejezet-Vers +Könyv fejezet:Vers-Vers +Könyv fejezet:Vers-Vers,Vers-Vers +Könyv fejezet:Vers-Vers,Fejezet:Vers-Vers +Könyv fejezet:Vers-Fejezet:Vers + @@ -304,78 +235,79 @@ Book Chapter:Verse-Chapter:Verse Bibles - Bibliák + Bibliák Verse Display - Vers megjelenítés + Vers megjelenítés Only show new chapter numbers - Csak az új fejezetszámok megjelenítése + Csak az új fejezetszámok megjelenítése Layout style: - + Elrendezési stílus: Display style: - + Megjelenítési stílus: Bible theme: - + Biblia téma: Verse Per Slide - + Egy vers diánként Verse Per Line - + Egy vers soronként Continuous - + Folytonos No Brackets - + Nincsenek zárójelek ( And ) - + ( és ) { And } - + { és } [ And ] - + [ és ] Note: Changes do not affect verses already in the service. - + Megjegyzés: +A módosítások nem érintik a már a szolgálatban lévő verseket. Display dual Bible verses - + Kettőzött bibliaversek megjelenítése @@ -383,370 +315,370 @@ Changes do not affect verses already in the service. Bible Import Wizard - Bibliaimportáló tündér + Bibliaimportáló tündér Welcome to the Bible Import Wizard - Üdvözlet a Bibliaimportáló tündérben + Üdvözlet a Bibliaimportáló tündérben 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. - A tündérrel különféle formátumú Bibliákat lehet importálni. Az alább található Tovább gombra való kattintással indítható a folyamat első lépése a formátum kiválasztásával. + A tündérrel különféle formátumú Bibliákat lehet importálni. Az alább található Tovább gombra való kattintással indítható a folyamat első lépése a formátum kiválasztásával. Select Import Source - Válassza ki az importálandó forrást + Válaszd ki az importálandó forrást Select the import format, and where to import from. - Válassza ki a importálandó forrást és a helyet, ahonnan importálja. + Válaszd ki az importálandó forrást és a helyet, ahonnan importálja. Format: - Formátum: + Formátum: OSIS - OSIS + CSV - + OpenSong - + Web Download - Web letöltés + Web letöltés File location: - + Fájl helye: Books location: - + Könyvek helye: Verse location: - + Vers helye: Bible filename: - + Biblia fájl: Location: - Hely: + Hely: Crosswalk - + BibleGateway - + Bible: - Biblia: + Biblia: Download Options - Letöltési beállítások + Letöltési beállítások Server: - Szerver: + Szerver: Username: - Felhasználói név: + Felhasználói név: Password: - Jelszó: + Jelszó: Proxy Server (Optional) - Proxy szerver (választható) + Proxy szerver (választható) License Details - Licenc részletek + Licenc részletek Set up the Bible's license details. - Állítsa be a Biblia licenc részleteit. + Állítsd be a Biblia licenc részleteit. Version name: - + Verzió neve: Copyright: - Copyright: + Szerzői jog: Permission: - Engedély: + Engedély: Importing - Importálás + Importálás Please wait while your Bible is imported. - Kérem, várjon, míg a Biblia importálás alatt áll. + Kérlek, várj, míg a Biblia importálás alatt áll. Ready. - Kész. + Kész. Invalid Bible Location - Érvénytelen a Biblia elérési útvonala + Érvénytelen a Biblia elérési útvonala You need to specify a file to import your Bible from. - Meg kell adni egy fájlt, amelyből a Bibliát importálni lehet. + Meg kell adni egy fájlt, amelyből a Bibliát importálni lehet. Invalid Books File - Érvénytelen könyv fájl + Érvénytelen könyv fájl You need to specify a file with books of the Bible to use in the import. - Meg kell adni egy fájlt a bibliai könyvekről az importáláshoz. + Meg kell adni egy fájlt a bibliai könyvekről az importáláshoz. Invalid Verse File - Érvénytelen versszak fájl + Érvénytelen versszak fájl You need to specify a file of Bible verses to import. - Meg kell adni egy fájlt a bibliai versekről az importáláshoz. + Meg kell adni egy fájlt a bibliai versekről az importáláshoz. Invalid OpenSong Bible - Érvénytelen OpenSong Biblia + Érvénytelen OpenSong Biblia You need to specify an OpenSong Bible file to import. - Meg kell adni egy OpenSong Biblia fájlt az importáláshoz. + Meg kell adni egy OpenSong Biblia fájlt az importáláshoz. Empty Version Name - Üres verziónév + Üres verziónév You need to specify a version name for your Bible. - Meg kell adni a Biblia verziószámát. + Meg kell adni a Biblia verziószámát. - + Empty Copyright - Üres a szerzői jog + Üres a szerzői jog - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Meg kell adni a szerzői jogokat! A közkincs Bibliákat meg kell jelölni ilyennek. - - - + Bible Exists - Biblia létezik + Biblia létezik - - This Bible already exists! Please import a different Bible or first delete the existing one. - Ez a Biblia már létezik! Kérem, importáljon egy másik Bibliát vagy előbb törölje a meglévőt. - - - + Open OSIS File - OSIS fájl megnyitása + OSIS fájl megnyitása - + Open Books CSV File - Könyv CSV fájl megnyitása + Könyv CSV fájl megnyitása - + Open Verses CSV File - Versszak CSV fájl megnyitása + Versszak CSV fájl megnyitása - + Open OpenSong Bible - OpenSong Biblia megnyitása + OpenSong Biblia megnyitása Starting import... - Importálás indítása... + Importálás indítása... - + Finished import. - Az importálás befejeződött. + Az importálás befejeződött. - + Your Bible import failed. - A Biblia importálása nem sikerült. + A Biblia importálása nem sikerült. + + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + Meg kell adni a Biblia szerzői jogait. A közkincs Bibliákat meg kell jelölni ilyennek. + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + Ez a Biblia már létezik. Kérlek, importálj egy másik Bibliát vagy előbb töröld a meglévőt. BiblesPlugin.MediaItem - + + Bible + Biblia + + + Quick - Gyors + Gyors - + Advanced - Haladó + Haladó - + Version: - Verzió: + Verzió: - + Dual: - Második: + Második: - + Search type: - + Keresés típusa: - + Find: - Keresés: - - - - Search - Keresés - - - - Results: - Eredmények: - - - - Book: - Könyv: - - - - Chapter: - Fejezet: - - - - Verse: - Vers: - - - - From: - Innentől: + Keresés: + Search + Keresés + + + + Results: + Eredmények: + + + + Book: + Könyv: + + + + Chapter: + Fejezet: + + + + Verse: + Vers: + + + + From: + Innentől: + + + To: - Idáig: + Idáig: - + Verse Search - Vers keresése + Vers keresése - + Text Search - Szöveg keresése + Szöveg keresése - + Clear - + Törlés - + Keep - Megtartása + Megtartása - + No Book Found - Nincs ilyen könyv + Nincs ilyen könyv - + No matching book could be found in this Bible. - Nem található ilyen könyv ebben a Bibliában. + Nem található ilyen könyv ebben a Bibliában. - - etc - - - - + Bible not fully loaded. - + A Biblia nem töltődött be teljesen. @@ -754,15 +686,15 @@ Changes do not affect verses already in the service. Importing - Importálás + Importálás CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. - + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. + <strong>Egyedi bővítmény</strong><br />Az egyedi bővítmény dalokhoz hasonló egyedi diák vetítését teszi lehetővé. Ugyanakkor több szabadságot enged meg, mint a dalok bővítmény. @@ -770,17 +702,17 @@ Changes do not affect verses already in the service. Custom - Egyedi + Egyedi dia Custom Display - Egyedi megjelenés + Egyedi dia megjelenés Display footer - + Lábjegyzet megjelenítése @@ -788,369 +720,206 @@ Changes do not affect verses already in the service. Edit Custom Slides - Egyedi diák szerkesztése + Egyedi diák szerkesztése Move slide up one position. - + A dia eggyel feljebb helyezése. Move slide down one position. - + A dia eggyel lejjebb helyezése. &Title: - + &Cím: Add New - Új hozzáadása + Új hozzáadása Add a new slide at bottom. - + Új dia hozzáadása alulra. Edit - Szerkesztés + Szerkesztés Edit the selected slide. - + Kiválasztott dia szerkesztése. Edit All - Összes szerkesztése + Összes szerkesztése Edit all the slides at once. - + Minden kiválasztott dia szerkesztése egyszerre. Save - Mentés + Mentés Save the slide currently being edited. - + Az éppen szerkesztett dia mentése. Delete - Törlés + Törlés Delete the selected slide. - + Kiválasztott dia törlése. Clear - + Szöveg törlése Clear edit area - Szerkesztő terület törlése + Szerkesztő terület törlése Split Slide - Dia kettéválasztása + Dia kettéválasztása Split a slide into two by inserting a slide splitter. - + Dia ketté vágása egy diaelválasztó beszúrásával. The&me: - + &Téma: &Credits: - + &Közreműködők: Save && Preview - Mentés és előnézet + Mentés és előnézet Error - Hiba + Hiba You need to type in a title. - + Meg kell adnod a címet. You need to add at least one slide - + Meg kell adnod legalább egy diát You have one or more unsaved slides, please either save your slide(s) or clear your changes. - + Egy vagy több mentés nélküli dia van, kérlek, vagy ments el a diá(ka)t, vagy töröld a módosításokat. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - Egyedi + Egyedi dia - - Customs - + + You haven't selected an item to edit. + Nincs kiválasztott elem a szerkesztéshez. - - Import - Importálás - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - Hozzáadás - - - - Add a new Custom - - - - - Edit - Szerkesztés - - - - Edit the selected Custom - - - - - Delete - Törlés - - - - Delete the selected Custom - - - - - Preview - Előnézet - - - - Preview the selected Custom - - - - - Live - Egyenes adás - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - + + You haven't selected an item to delete. + Nincs kiválasztott elem a törléshez. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Kép - - - - Images - Képek - - - - Load - - - - - Load a new Image - - - - - Add - Hozzáadás - - - - Add a new Image - - - - - Edit - Szerkesztés - - - - Edit the selected Image - - - - - Delete - Törlés - - - - Delete the selected Image - - - - - Preview - Előnézet - - - - Preview the selected Image - - - - - Live - Egyenes adás - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service - + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. + <strong>Kép bővítmény</strong><br />A kép a bővítmény mindenféle kép vetítését teszi lehetővé.<br />A bővítmény egyik különös figyelmet érdemlő képessége az, hogy képes a szolgálatkezelőn csoportba foglalni a képeket, így könnyebbé téve sok kép vetítését. A bővítmény képes az OpenLP „időzített körkörös” lejátszásra is, amivel a diákat automatikusan tudjuk léptetni. Továbbá, a bővítményben megadott képekkel felülírhatjuk a téma háttérképét, amellyel a szöveg alapú elemek, mint pl. a dalok, a megadott háttérképpel jelennek meg, a témában beállított háttérkép helyett. ImagePlugin.MediaItem - + + Image + Kép + + + Select Image(s) - Kép(ek) kiválasztása + Kép(ek) kiválasztása - + All Files - + Minden fájl - + Replace Live Background - + Élő adás hátterének cseréje - + Replace Background - + Háttér cseréje - + Reset Live Background - + Élő adás hátterének visszaállítása - + You must select an image to delete. - + Ki kell választani egy képet a törléshez. - + Image(s) - Kép(ek) + Kép(ek) - + You must select an image to replace the background with. - + Ki kell választani egy képet a háttér cseréjéhez. - + You must select a media file to replace the background with. - + Ki kell választani média fájlt a háttér cseréjéhez. @@ -1158,123 +927,43 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - - - Media - Média - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - Hozzáadás - - - - Add a new Media - - - - - Edit - Szerkesztés - - - - Edit the selected Media - - - - - Delete - Törlés - - - - Delete the selected Media - - - - - Preview - Előnézet - - - - Preview the selected Media - - - - - Live - Egyenes adás - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - + <strong>Média bővítmény</strong><br />A média bővítmény hangok és videók lejátszását teszi lehetővé. MediaPlugin.MediaItem - - Select Media - Média kiválasztása - - - - Replace Live Background - - - - - Replace Background - - - - + Media - Média + Média - + + Select Media + Média kiválasztása + + + + Replace Live Background + Élő adás hátterének cseréje + + + + Replace Background + Háttér cseréje + + + You must select a media file to delete. - + Ki kell választani egy média fájlt a törléshez. OpenLP - + Image Files - + Kép fájlok @@ -1282,7 +971,7 @@ Changes do not affect verses already in the service. About OpenLP - Az OpenLP névjegye + Az OpenLP névjegye @@ -1293,18 +982,18 @@ OpenLP is free church presentation software, or lyrics projection software, used 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. - OpenLP <version> összeállítás <revision> – Nyílt forrású dalszöveg vetítő + OpenLP <version> <revision> – Nyílt forrású dalszöveg vetítő Az OpenLP egy templomi/gyülekezeti, ill. dalszöveg vetítő szabad szoftver, mely használható daldiák, bibliai versek, videók, képek és bemutatók (ha az OpenOffice.org, PowerPoint vagy a PowerPoint Viewer telepítve van) vetítésére a gyülekezeti dicsőítés alatt egy számítógép és egy projektor segítségével. Többet az OpenLP-ről: http://openlp.org/ -Az OpenLP-t önkéntesek készítették és tartják karban. Ha szeretne több keresztény számítógépes programot, fontolja meg a részvételt az alábbi gombbal. +Az OpenLP-t önkéntesek készítették és tartják karban. Ha szeretnél több keresztény számítógépes programot, fontold meg a részvételt az alábbi gomb igénybevételével. About - Névjegy + Névjegy @@ -1346,12 +1035,49 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ - + Projektvezetés + Raoul „superfly” Snyman + +Fejlesztők + Tim „TRB143” Bentley + Jonathan „gushie” Corwin + Michael „cocooncrash” Gorven + Scott „sguerrieri” Guerrieri + Raoul „superfly” Snyman + Martin „mijiti” Thompson + Jon „Meths” Tibble + +Közreműködők + Meinert „m2j” Jordan + Andreas „googol” Preikschat + Christian „crichter” Richter + Philip „Phill” Ridout + Maikel Stuivenberg + Carsten „catini” Tingaard + Frode „frodus” Woldsund + +Tesztelők + Philip „Phill” Ridout + Wesley „wrst” Stout (lead) + +Csomagkészítők + Thomas „tabthorpe” Abthorpe (FreeBSD) + Tim „TRB143” Bentley (Fedora) + Michael „cocooncrash” Gorven (Ubuntu) + Matthias „matthub” Hub (Mac OS X) + Raoul „superfly” Snyman (Windows, Ubuntu) + +Fordítva + Python: http://www.python.org/ + Qt4: http://qt.nokia.com/ + PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro + Oxygen Icons: http://oxygen-icons.org/ + Credits - Közreműködők + Közreműködők @@ -1486,27 +1212,154 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gno 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. - + Copyright © 2004-2010 Raoul Snyman +Részleges copyright © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard + +Ez a program szabad szoftver; terjeszthető illetve módosítható a Free Software Foundation által kiadott GNU General Public License dokumentumában leírtak; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint. + +Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz, de minden egyéb GARANCIA NÉLKÜL, az ELADHATÓSÁGRA vagy VALAMELY CÉLRA VALÓ ALKALMAZHATÓSÁGRA való származtatott garanciát is beleértve. További részleteket a GNU General Public License tartalmaz. + + +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. Bárki terjesztheti, másolhatja a dokumentumot, de a módosítása nem megengedett. (A fordítás csak tájékoztató jellegű és jogi szempontból csakis az angol eredeti a mérvadó.) + +Előszó + +A legtöbb szoftver licencei azzal a szándékkal készültek, hogy minél kevesebb lehetőséget adjanak a szoftver megváltoztatására és terjesztésére. Ezzel szemben a GNU GPL célja, hogy garantálja a szabad szoftver másolásának és terjesztésének szabadságát, ezáltal biztosítva a szoftver szabad felhasználhatóságát minden felhasználó számára. A GPL szabályai vonatkoznak a Free Software Foundation legtöbb szoftverére, illetve minden olyan programra, melynek szerzője úgy dönt, hogy ezt használja a szerzői jog megjelölésekor. (A Free Software Foundation egyes szoftvereire a GNU LGPL érvényes.) Bárki használhatja a programjaiban a GPL-t a szerzői jogi megjegyzésnél. + +A szabad szoftver megjelölés nem jelenti azt, hogy a szoftvernek nem lehet ára. A GPL licencek célja, hogy garantálja a szabad szoftver másolatainak szabad terjesztését (és e szolgáltatásért akár díj felszámítását), a forráskód elérhetőségét, hogy bárki szabadon módosíthassa a szoftvert, vagy felhasználhassa a részeit új szabad programokban; és hogy mások megismerhessék ezt a lehetőséget. + +A szerző jogainak védelmében korlátozásokat kell hozni, amelyek megtiltják, hogy bárki megtagadhassa ezeket a jogokat másoktól, vagy ezekről való lemondásra kényszerítsen bárki mást. Ezek a megszorítások bizonyos felelősségeket jelentenek azok számára, akik a szoftver másolatait terjesztik vagy módosítják. + +Ha valaki például ilyen program másolatait terjeszti, akár ingyen vagy bizonyos összeg fejében, a szoftverre vonatkozó minden jogot tovább kell adnia a fogadó feleknek. Biztosítani kell továbbá, hogy megkapják vagy legalábbis megkaphassák a forráskódot is. És persze ezeket a licencfeltételeket is el kell juttatni, hogy tisztában legyenek a jogaikkal. + +A jogok védelme két lépésből áll: + +(1) a szoftver szerzői jogainak védelméből és + +(2) a jelen licenc biztosításából, amely jogalapot biztosít a szoftver másolására, terjesztésére és/vagy módosítására. + +Az egyes szerzők és a magunk védelmében biztosítani akarjuk, hogy mindenki megértse: a jelen szabad szoftverre nincs jótállás. Ha a szoftvert módosították és továbbadták, akkor mindenkinek, aki a módosított változatot kapja, tudnia kell, hogy az nem az eredeti, így a mások által okozott hibáknak nem lehet hatása az eredeti szerző hírnevére. + +Végül, a szabad szoftver létét állandóan fenyegetik a szoftverszabadalmak. El szeretnénk kerülni annak veszélyét, hogy a szabad program terjesztői szabadalmat jegyezhessenek be rá, ezáltal saját szellemi tulajdont képezővé tegyék a programot. Ennek megelőzéséhez tisztázni kívánjuk: szabadalom szabad szoftverrel kapcsolatban csak mindenki általi szabad használatra jegyezhető be, vagy egyáltalán nem jegyezhető be. + +A másolásra, terjesztésre, módosításra vonatkozó pontos szabályok és feltételek: +A MÁSOLÁSRA, TERJESZTÉSRE ÉS MÓDOSÍTÁSRA VONATKOZÓ FELTÉTELEK ÉS KIKÖTÉSEK + +0. Ez a licenc minden olyan programra vagy munkára vonatkozik, amelynek a szerzői jogi megjegyzésében a jog tulajdonosa a következő szöveget helyezte el: a GPL-ben foglaltak alapján terjeszthető. Az alábbiakban a Program kifejezés bármely ilyen programra vagy munkára vonatkozik, a Programon alapuló munka pedig magát a programot vagy egy szerzői joggal védett munkát jelenti: vagyis olyan munkát, amely tartalmazza a programot vagy annak egy részletét, módosítottan vagy módosítatlanul és/vagy más nyelvre fordítva. (Az alábbiakban a fordítás minden egyéb megkötés nélkül beletartozik a módosítás fogalmába.) Minden engedélyezés címzettje Ön. + +A jelen licenc a másoláson, terjesztésen és módosításon kívül más tevékenységre nem vonatkozik, azok a hatályán kívül esnek. A Program futtatása nincs korlátozva, illetve a Program kimenetére is csak abban az esetben vonatkozik ez a szabályozás, ha az tartalmazza a Programon alapuló munka egy részletét (függetlenül attól, hogy ez a Program futtatásával jött-e létre). Ez tehát a Program működésétől függ. + +1. A Program forráskódja módosítás nélkül másolható és bármely adathordozón terjeszthető, feltéve, hogy minden egyes példányon pontosan szerepel a megfelelő szerzői jogi megjegyzés, illetve a garanciavállalás elutasítása; érintetlenül kell hagyni minden erre a szabályozásra és a garancia teljes hiányára utaló szöveget és a jelen licencdokumentumot is el kell juttatni mindazokhoz, akik a Programot kapják. + +Felszámítható díj a másolat fizikai továbbítása fejében, illetve ellenszolgáltatás fejében a Programhoz garanciális támogatás is biztosítható. + +2. A Program vagy annak egy része módosítható, így a Programon alapuló munka jön létre. A módosítás ezután az 1. szakaszban adott feltételek szerint tovább terjeszthető, ha az alábbi feltételek is teljesülnek: + +a) A módosított fájlokat el kell látni olyan megjegyzéssel, amely feltünteti a módosítást végző nevét és a módosítások dátumát. + +b) Minden olyan munkát, amely részben vagy egészben tartalmazza a Programot vagy a Programon alapul, olyan szabályokkal kell kiadni vagy terjeszteni, hogy annak használati joga harmadik személy részére licencdíjmentesen hozzáférhető legyen, a jelen dokumentumban található feltételeknek megfelelően. + +c) Ha a módosított Program interaktívan olvassa a parancsokat futás közben, akkor úgy kell elkészíteni, hogy a megszokott módon történő indításkor megjelenítsen egy üzenetet a megfelelő szerzői jogi megjegyzéssel és a garancia hiányára utaló közléssel (vagy éppen azzal az információval, hogy miként juthat valaki garanciához), illetve azzal az információval, hogy bárki terjesztheti a Programot a jelen feltételeknek megfelelően, és arra is utalást kell tenni, hogy a felhasználó miként tekintheti meg a licenc egy példányát. (Kivétel: ha a Program interaktív ugyan, de nem jelenít meg hasonló üzenetet, akkor a Programon alapuló munkának sem kell ezt tennie.) + +Ezek a feltételek a módosított munkára, mint egészre vonatkoznak. Ha a munka azonosítható részei nem a Programon alapulnak és független munkákként elkülönülten azonosíthatók, akkor ez a szabályozás nem vonatkozik ezekre a részekre, ha azok külön munkaként kerülnek terjesztésre. Viszont, ha ugyanez a rész az egész részeként kerül terjesztésre, amely a Programon alapuló munka, akkor az egész terjesztése csak a jelen dokumentum alapján lehetséges, amely ebben az esetben a jogokat minden egyes felhasználó számára kiterjeszti az egészre tekintet nélkül arra, hogy melyik részt ki írta. + +E szövegrésznek tehát nem az a célja, hogy mások jogait elvegye vagy korlátozza a kizárólag saját maga által írt munkákra; a cél az, hogy a jogok gyakorlása szabályozva legyen a Programon alapuló illetve a gyűjteményes munkák terjesztése esetében. + +Ezenkívül más munkáknak, amelyek nem a Programon alapulnak, a Programmal (vagy a Programon alapuló munkával) közös adathordozón vagy adattárolón szerepeltetése nem jelenti a jelen szabályok érvényességét azokra is. + +3. A Program (vagy a Programon alapuló munka a 2. szakasznak megfelelően) másolható és terjeszthető tárgykódú vagy végrehajtható kódú formájában az 1. és 2. szakaszban foglaltak szerint, amennyiben az alábbi feltételek is teljesülnek: + +a) a teljes, gép által értelmezhető forráskód kíséri az anyagot, amelynek terjesztése az 1. és 2. szakaszban foglaltak szerint történik, jellemzően szoftverterjesztésre használt adathordozón; vagy, + +b) legalább három évre szólóan írásban vállalja, hogy bármely külső személynek rendelkezésre áll a teljes gép által értelmezhető forráskód, a fizikai továbbítást fedező összegnél nem nagyobb díjért az 1. és 2. szakaszban foglaltak szerint szoftverterjesztésre használt adathordozón; vagy, + +c) a megfelelő forráskód terjesztésére vonatkozóan megkapott tájékoztatás kíséri az anyagot. (Ez az alternatíva csak nem kereskedelmi terjesztés esetén alkalmazható abban az esetben, ha a terjesztő a Programhoz a tárgykódú vagy forráskódú formájában jutott hozzá az ajánlattal együtt a fenti b. cikkelynek megfelelően.) + +Egy munka forráskódja a munkának azt a formáját jelenti, amelyben a módosításokat elsődlegesen végezni szokás. Egy végrehajtható program esetében a teljes forráskód a tartalmazott összes modul forráskódját jelenti, továbbá a kapcsolódó felületdefiníciós fájlokat és a fordítást vezérlő parancsfájlokat. Egy speciális kivételként a forráskódnak nem kell tartalmaznia normál esetben a végrehajtható kód futtatására szolgáló operációs rendszer főbb részeiként (kernel, fordítóprogram stb.) terjesztett részeit (forrás vagy bináris formában), kivéve, ha a komponens maga a végrehajtható állományt kíséri. + +Ha a végrehajtható program vagy tárgykód terjesztése a forráskód hozzáférését egy megadott helyen biztosító írásban vállalja, akkor ez egyenértékű a forráskód terjesztésével, bár másoknak nem kell a forrást lemásolniuk a tárgykóddal együtt. + +4. A Programot csak a jelen Licencben leírtaknak megfelelően szabad lemásolni, terjeszteni, módosítani és allicencbe adni. Az egyéb módon történő másolás, módosítás, terjesztés és allicencbe adás érvénytelen, és azonnal érvényteleníti a dokumentumban megadott jogosultságokat. Mindazonáltal azok, akik a Licencet megszegőtől kaptak példányokat vagy jogokat, tovább gyakorolhatják a Licenc által meghatározott jogaikat mindaddig, amíg teljesen megfelelnek a Licenc feltételeinek. + +5. Önnek nem kötelező elfogadnia ezt a szabályozást, hiszen nem írta alá. Ezen kívül viszont semmi más nem ad jogokat a Program terjesztésére és módosítására. Ezeket a cselekedeteket a törvény bünteti, ha nem a jelen szerzői jogi szabályozás keretei között történnek. Mindezek miatt a Program (vagy a Programon alapuló munka) terjesztése vagy módosítása a jelen dokumentum szabályainak, és azon belül a Program vagy a munka módosítására, másolására vagy terjesztésére vonatkozó összes feltételének elfogadását jelenti. + +6. Minden alkalommal, amikor a Program (vagy az azon alapuló munka) továbbadása történik, a Programot megkapó személy automatikusan hozzájut az eredeti licenctulajdonostól származó licenchez, amely a jelen szabályok szerint biztosítja a jogot a Program másolására, terjesztésére és módosítására. Nem lehet semmilyen módon tovább korlátozni a fogadó félnek az itt megadott jogait. A Program továbbadója nem felelős harmadik személyekkel betartatni a jelen szabályokat. + +7. Ha bírósági határozat, szabadalomsértés vélelme, vagy egyéb (nem kizárólag szabadalmakkal kapcsolatos) okból olyan feltételeknek kell megfelelnie (akár bírósági határozat, akár megállapodás, akár bármi más eredményeképp), amelyek ellentétesek a jelen feltételekkel, az nem menti fel a terjesztőt a jelen feltételek figyelembevétele alól. Ha a terjesztés nem lehetséges a jelen Licenc és az egyéb feltételek kötelezettségeinek együttes betartásával, akkor tilos a Program terjesztése. Ha például egy szabadalmi szerződés nem engedi meg egy program jogdíj nélküli továbbterjesztését azok számára, akik közvetve vagy közvetlenül megkapják, akkor az egyetlen módja, hogy eleget tegyen valaki mindkét feltételnek az, hogy eláll a Program terjesztésétől. + +Ha ennek a szakasznak bármely része érvénytelen, vagy nem érvényesíthető valamely körülmény folytán, akkor a szakasz maradék részét kell alkalmazni, egyéb esetekben pedig a szakasz egésze alkalmazandó. + +Ennek a szakasznak nem az a célja, hogy a szabadalmak vagy egyéb hasonló jogok megsértésére ösztönözzön bárkit is; mindössze meg szeretné védeni a szabad szoftver terjesztési rendszerének egységét, amelyet a szabad közreadást szabályozó feltételrendszerek teremtenek meg. Sok ember nagymértékben járult hozzá az e rendszer keretében terjesztett, különféle szoftverekhez, és számít a rendszer következetes alkalmazására; azt a szerző/adományozó dönti el, hogy a szoftverét más rendszer szerint is közzé kívánja-e tenni, és a licencet kapók ezt nem befolyásolhatják. + +E szakasz célja, hogy pontosan tisztázza azt, ami elgondolásunk szerint a jelen licenc többi részének a következménye. + +8. Ha a Program terjesztése és/vagy használata egyes országokban nem lehetséges akár szabadalmak, akár szerzői jogokkal védett felületek miatt, akkor a Program szerzői jogainak eredeti tulajdonosa, aki a Programot ezen szabályozás alapján adja közre, egy explicit földrajzi megkötést adhat a terjesztésre, és egyes országokat kizárhat. Ebben az esetben úgy tekintendő, hogy a jelen licenc ezt a megkötést is tartalmazza, ugyanúgy mintha csak a fő szövegében lenne leírva. + +9. A Free Software Foundation időről időre kiadja a General Public License dokumentum felülvizsgált és/vagy újabb változatait. Ezek az újabb dokumentumok az előzőek szellemében készülnek, de részletekben különbözhetnek, hogy új problémákat vagy aggályokat is kezeljenek. + +A dokumentum minden változata egy megkülönböztető verziószámmal ellátva jelenik meg. Ha a Program szerzői jogi megjegyzésében egy bizonyos vagy annál újabb verzió van megjelölve, akkor lehetőség van akár a megjelölt, vagy a Free Software Foundation által kiadott későbbi verzióban leírt feltételek követésére. Ha nincs ilyen megjelölt verzió, akkor lehetőség van a Free Software Foundation által valaha kibocsátott bármelyik dokumentum alkalmazására. + +10. A Programot más szabad szoftverbe, amelynek szerzői jogi szabályozása különbözik, csak akkor építheti be, ha a szerzőtől erre engedélyt szerzett. Abban az esetben, ha a program szerzői jogainak tulajdonosa a Free Software Foundation, akkor a Free Software Foundation címére kell írni; néha kivételt teszünk. A döntés a következő két cél szem előtt tartásával fog történni: megmaradjon a szabad szoftveren alapuló munkák szabad állapota, valamint segítse elő a szoftver újrafelhasználását és megosztását. +GARANCIAVÁLLALÁS HIÁNYA + +11. MIVEL A JELEN PROGRAM HASZNÁLATI JOGA DÍJMENTES, AZ ALKALMAZHATÓ JOGSZABÁLYOK ÁLTAL BIZTOSÍTOTT MAXIMÁLIS MÉRTÉKBEN VISSZAUTASÍTJUK A PROGRAMHOZ A GARANCIA BIZTOSÍTÁSÁT. AMENNYIBEN A SZERZŐI JOGOK TULAJDONOSAI ÍRÁSBAN MÁSKÉNT NEM NYILATKOZNAK, A PROGRAM A &quot;JELEN ÁLLAPOTÁBAN&quot; KERÜL KIADÁSRA, MINDENFÉLE GARANCIAVÁLLALÁS NÉLKÜL, LEGYEN AZ KIFEJEZETT VAGY BELEÉRTETT, BELEÉRTVE, DE NEM KIZÁRÓLAGOSAN A FORGALOMBA HOZHATÓSÁGRA VAGY ALKALMAZHATÓSÁGRA VONATKOZÓ GARANCIÁKAT. A PROGRAM MINŐSÉGÉBŐL ÉS MŰKÖDÉSÉBŐL FAKADÓ ÖSSZES KOCKÁZAT A FELHASZNÁLÓT TERHELI. HA A PROGRAM HIBÁSAN MŰKÖDIK, A FELHASZNÁLÓNAK MAGÁNAK KELL VÁLLALNIA A JAVÍTÁSHOZ SZÜKSÉGES MINDEN KÖLTSÉGET. + +12. AMENNYIBEN A HATÁLYOS JOGSZABÁLYOK VAGY A SZERZŐI JOGOK TULAJDONOSAI ÍRÁSOS MEGÁLLAPODÁSBAN MÁSKÉNT NEM RENDELKEZNEK, SEM A PROGRAM SZERZŐJE, SEM MÁSOK, AKIK MÓDOSÍTOTTÁK ÉS/VAGY TERJESZTETTÉK A PROGRAMOT A FENTIEKNEK MEGFELELŐEN, NEM TEHETŐK FELELŐSSÉ A KÁROKÉRT, BELEÉRTVE MINDEN VÉLETLEN, VAGY KÖVETKEZMÉNYES KÁRT, AMELY A PROGRAM HASZNÁLATÁBÓL VAGY A HASZNÁLAT MEGAKADÁLYOZÁSÁBÓL SZÁRMAZIK (BELEÉRTVE, DE NEM KIZÁRÓLAGOSAN AZ ADATVESZTÉST ÉS A HELYTELEN ADATFELDOLGOZÁST, VALAMINT A MÁS PROGRAMOKKAL VALÓ HIBÁS EGYÜTTMŰKÖDÉST), MÉG AKKOR SEM, HA EZEN FELEK TUDATÁBAN VOLTAK, HOGY ILYEN KÁROK KELETKEZHETNEK. + +FELTÉTELEK ÉS SZABÁLYOK VÉGE +Hogyan alkalmazhatók ezek a szabályok egy új programra? +Ha valaki egy új programot készít és szeretné, hogy az bárki számára a lehető leginkább hasznos legyen, akkor a legjobb módszer, hogy azt szabad szoftverré teszi, megengedve mindenkinek a szabad másolást és módosítást a jelen feltételeknek megfelelően. + +Ehhez a következő megjegyzést kell csatolni a programhoz. A legbiztosabb ezt minden egyes forrásfájl elejére beírni, így közölve leghatásosabban a garancia visszautasítását; ezenkívül minden fájl kell, hogy tartalmazzon egy copyright sort és egy mutatót arra a helyre, ahol a teljes szöveg található. + +Egy sor, amely megadja a program nevét és funkcióját +Copyright (C) év; szerző neve; + +Ez a program szabad szoftver; terjeszthető illetve módosítható a Free Software Foundation által kiadott GNU General Public License dokumentumában leírtak; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint. + +Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz, de minden egyéb GARANCIA NÉLKÜL, az ELADHATÓSÁGRA vagy VALAMELY CÉLRA VALÓ ALKALMAZHATÓSÁGRA való származtatott garanciát is beleértve. További részleteket a GNU General Public License tartalmaz. + +A felhasználónak a programmal együtt meg kell kapnia a GNU General Public License egy példányát; ha mégsem kapta meg, akkor ezt a Free Software Foundationnak küldött levélben jelezze (cím: Free Software Foundation Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.) + +A programhoz csatolni kell azt is, hogy miként lehet kapcsolatba lépni a szerzővel, elektronikus vagy hagyományos levél küldésével. + +Ha a program interaktív, a következőhöz hasonló üzenettel lehet ezt megtenni a program indulásakor: + +Gnomovision version 69, Copyright (C) év, a szerző neve. +A Gnomovision programhoz SEMMILYEN GARANCIA NEM JÁR; részletekért írja be a &apos;show w&apos; parancsot. Ez egy szabad szoftver, bizonyos feltételek mellett terjeszthető, illetve módosítható; részletekért írja be a &apos;show c&apos; parancsot. + +A show w és show c képzeletbeli parancsok, és a GPL megfelelő részeit kell megjeleníteniük. Természetesen a valódi parancsok a show w és show c parancstól különbözhetnek; lehetnek akár egérkattintások vagy menüpontok is, ami a programnak megfelel. + +Ha szükséges, meg kell szerezni a munkáltatótól (ha a szerző programozóként dolgozik) vagy az iskolától a program szerzői jogairól való lemondás igazolását. Erre itt egy példa; változtassa meg a neveket: + +A Fiktív Bt. ezennel lemond minden szerzői jogi érdekeltségéről a „Gnomovision” programmal (amelyet több fázisban fordítanak le a fordítóprogramok) kapcsolatban, amelyet H. Ekker János írt. + +Aláírás: Tira Mihály, 1989. április 1. Tira Mihály ügyvezető + +A GNU General Public License nem engedi meg, hogy a program része legyen szellemi tulajdont képező programoknak. Ha a program egy szubrutinkönyvtár, akkor megfontolhatja, hogy nem célszerűbb-e megengedni, hogy szellemi tulajdont képező alkalmazásokkal is összefűzhető legyen a programkönyvtár. Ha ezt szeretné, akkor a GPL helyett a GNU LGPL-t kell használni. License - Licenc + Licenc Contribute - Részvétel + Részvétel Close - Bezárás + Bezárás build %s - + @@ -1514,27 +1367,27 @@ This General Public License does not permit incorporating your program into prop Advanced - Haladó + Haladó UI Settings - + Felhasználói felület beállításai Number of recent files to display: - + Előzmények megjelenítésének hossza: Remember active media manager tab on startup - + Újraindításkor visszaállítsa az aktív médiakezelő fülét Double-click to send items straight to live (requires restart) - + Dupla kattintással egyenesen az élő adásba küldés (újraindítás szükséges) @@ -1542,310 +1395,310 @@ This General Public License does not permit incorporating your program into prop Theme Maintenance - Témák kezelése + Témák kezelése Theme &name: - + Téma &neve: Type: - Típus: + Típus: Solid Color - Homogén szín + Homogén szín Gradient - Színátmenet + Színátmenet Image - Kép + Kép Image: - Kép: + Kép: Gradient: - + Színátmenet: Horizontal - Vízszintes + Vízszintes Vertical - Függőleges + Függőleges Circular - Körkörös + Körkörös &Background - + &Háttér Main Font - Alap betűkészlet + Alap betűkészlet Font: - Betűkészlet: + Betűkészlet: Color: - + Szín: Size: - Méret: + Méret: pt - + Adjust line spacing: - + Sorköz igazítása: Normal - Normál + Normál Bold - Félkövér + Félkövér Italics - Dőlt + Dőlt Bold/Italics - Félkövér dőlt + Félkövér dőlt Style: - + Stílus: Display Location - Hely megjelenítése + Hely megjelenítése Use default location - + Alapértelmezett hely alkalmazása X position: - + X pozíció: Y position: - + Y pozíció: Width: - Szélesség: + Szélesség: Height: - Magasság: + Magasság: px - + &Main Font - + &Alap betűkészlet Footer Font - Lábjegyzet betűkészlete + Lábjegyzet betűkészlete &Footer Font - + &Lábjegyzet betűkészlete Outline - Körvonal + Körvonal Outline size: - + Körvonal mérete: Outline color: - + Körvonal színe: Show outline: - + Körvonal megjelenítése: Shadow - Árnyék + Árnyék Shadow size: - + Árnyék mérete: Shadow color: - + Árnyék színe: Show shadow: - + Árnyék megjelenítése: Alignment - Igazítás + Igazítás Horizontal align: - + Vízszintes igazítás: Left - Balra zárt + Balra zárt Right - Jobbra zárt + Jobbra zárt Center - Középre igazított + Középre igazított Vertical align: - + Függőleges igazítás: Top - + Felülre Middle - Középre + Középre Bottom - + Alulra Slide Transition - Diaátmenet + Diaátmenet Transition active - + Aktív átmenet &Other Options - + &További beállítások Preview - Előnézet + Előnézet All Files - + Minden fájl Select Image - + Kép kiválasztása First color: - + Első szín: Second color: - + Második szín: Slide height is %s rows. - + A dia magassága %s sor. OpenLP.ExceptionDialog - - - Error Occured - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - + Hoppá! Az OpenLP hibába ütközött, és nem tudta lekezelni. Az alábbi dobozban található szöveg olyan információkat tartalmaz, amelyek hasznosak lehetnek az OpenLP fejlesztői számára, tehát kérjük, küld el bugs@openlp.org email címre egy részletes leírás mellett, amely tartalmazza, hogy éppen merre és mit tettél, amikor a hiba történt. + + + + Error Occurred + Hiba történt @@ -1853,643 +1706,716 @@ This General Public License does not permit incorporating your program into prop General - Általános + Általános Monitors - Monitorok + Monitorok Select monitor for output display: - Válassza ki a vetítési képernyőt: + Válaszd ki a vetítési képernyőt: Display if a single screen - Megjelenítés egy képernyő esetén + Megjelenítés egy képernyő esetén Application Startup - Alkalmazás indítása + Alkalmazás indítása Show blank screen warning - Figyelmeztetés megjelenítése a fekete képernyőről + Figyelmeztetés megjelenítése a fekete képernyőről Automatically open the last service - Utolsó szolgálat automatikus megnyitása + Utolsó szolgálat automatikus megnyitása Show the splash screen - Indító képernyő megjelenítése + Indító képernyő megjelenítése Application Settings - Alkalmazás beállítások + Alkalmazás beállítások Prompt to save before starting a new service - + Rákérdezés mentésre új szolgálat kezdése előtt Automatically preview next item in service - + Következő elem automatikus előnézete a szolgálatban Slide loop delay: - + Időzített diák késleltetése: sec - + mp CCLI Details - CCLI részletek + CCLI részletek CCLI number: - + CCLI szám: SongSelect username: - + SongSelect felhasználói név: SongSelect password: - + SongSelect jelszó: Display Position - + Megjelenítés pozíciója X - + Y - + Height - + Magasság Width - + Szélesség Override display position - + Megjelenítési pozíció felülírása Screen - Képernyő + Képernyő primary - elsődleges + elsődleges OpenLP.LanguageManager - + Language - Nyelv + Nyelv - + Please restart OpenLP to use your new language setting. - + A nyelvi beállítások az OpenLP újraindítása után lépnek érvénybe. OpenLP.MainWindow - - - New Service - Új szolgálat - - - - Open Service - Szolgálat megnyitása - - - - Save Service - Szolgálat mentése - OpenLP 2.0 - - - - - AddHereYourLanguageName - + &File - &Fájl + &Fájl &Import - &Importálás + &Importálás &Export - &Exportálás + &Exportálás &View - &Nézet + &Nézet M&ode - &Mód + &Mód &Tools - &Eszközök + &Eszközök &Settings - &Beállítások + &Beállítások &Language - &Nyelv + &Nyelv &Help - &Súgó + &Súgó Media Manager - Médiakezelő + Médiakezelő Service Manager - Szolgálatkezelő + Szolgálatkezelő Theme Manager - Témakezelő + Témakezelő &New - &Új + &Új + + + + New Service + Új szolgálat Create a new service. - + Új szolgálat létrehozása. Ctrl+N - + &Open - &Megnyitás + &Megnyitás + + + + Open Service + Szolgálat megnyitása Open an existing service. - + Meglévő szolgálat megnyitása. Ctrl+O - + &Save - + &Mentés + + + + Save Service + Szolgálat mentése Save the current service to disk. - + Aktuális szolgálat mentése lemezre. Ctrl+S - + Save &As... - Mentés má&sként... + Mentés má&sként... Save Service As - Szolgálat mentése másként + Szolgálat mentése másként Save the current service under a new name. - + Az aktuális szolgálat más néven való mentése. Ctrl+Shift+S - + E&xit - &Kilépés + &Kilépés Quit OpenLP - OpenLP bezárása + OpenLP bezárása Alt+F4 - + &Theme - &Téma + &Téma &Configure OpenLP... - + OpenLP &beállítása... &Media Manager - &Médiakezelő + &Médiakezelő Toggle Media Manager - Médiakezelő átváltása + Médiakezelő átváltása Toggle the visibility of the media manager. - + A médiakezelő láthatóságának átváltása. F8 - + &Theme Manager - &Témakezelő + &Témakezelő Toggle Theme Manager - Témakezelő átváltása + Témakezelő átváltása Toggle the visibility of the theme manager. - + A témakezelő láthatóságának átváltása. F10 - + &Service Manager - &Szolgálatkezelő + &Szolgálatkezelő Toggle Service Manager - Szolgálatkezelő átváltása + Szolgálatkezelő átváltása Toggle the visibility of the service manager. - + A szolgálatkezelő láthatóságának átváltása. F9 - + &Preview Panel - &Előnézet panel + &Előnézet panel Toggle Preview Panel - Előnézet panel átváltása + Előnézet panel átváltása Toggle the visibility of the preview panel. - + Az előnézet panel láthatóságának átváltása. F11 - + &Live Panel - + &Élő adás panel Toggle Live Panel - + Élő adás panel átváltása Toggle the visibility of the live panel. - + Az élő adás panel láthatóságának átváltása. F12 - + &Plugin List - &Bővítménylista + &Bővítménylista List the Plugins - Bővítmények listája + Bővítmények listája Alt+F7 - + &User Guide - &Felhasználói kézikönyv + &Felhasználói kézikönyv &About - &Névjegy + &Névjegy More information about OpenLP - Több információ az OpenLP-ről + További információ az OpenLP-ről Ctrl+F1 - + &Online Help - &Online súgó + &Online súgó &Web Site - &Weboldal + &Weboldal &Auto Detect - &Automatikus felismerés + &Automatikus felismerés Use the system language, if available. - + Rendszernyelv használata, ha elérhető. Set the interface language to %s - + A felhasználói felület nyelvének átváltása erre: %s Add &Tool... - &Eszköz hozzáadása... + &Eszköz hozzáadása... Add an application to the list of tools. - + Egy alkalmazás hozzáadása az eszközök listához. &Default - + &Alapértelmezett Set the view mode back to the default. - + Nézetmód visszaállítása az alapértelmezettre. &Setup - + &Szerkesztés Set the view mode to Setup. - + Nézetmód váltása a Beállítás módra. &Live - &Egyenes adás + &Élő adás Set the view mode to Live. - + Nézetmód váltása a Élő módra. 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/. - + Már letölthető az OpenLP %s verziója (jelenleg a %s verzió fut). + +A legfrissebb verzió a http://openlp.org/ oldalról szerezhető be. OpenLP Version Updated - OpenLP verziófrissítés + OpenLP verziófrissítés - + OpenLP Main Display Blanked - Sötét OpenLP fő képernyő + Sötét OpenLP fő képernyő - + The Main Display has been blanked out - A fő képernyő el lett sötétítve + A fő képernyő el lett sötétítve - + Save Changes to Service? - + Mentsük a változásokat a szolgálatban? - + Your service has changed. Do you want to save those changes? - + A szolgálat módosult. Szeretné elmenteni? - + Default Theme: %s - + Alapértelmezett téma: %s - + English + Please add the name of your language here Magyar OpenLP.MediaManagerItem - + No Items Selected - Nincs kiválasztott elem + Nincs kiválasztott elem - + + Import %s + %s importálása + + + + Import a %s + Egy %s importálása + + + + Load %s + %s betöltése + + + + Load a new %s + Új %s betöltése + + + + New %s + Új %s + + + + Add a new %s + Új %s hozzáadása + + + + Edit %s + %s szerkesztése + + + + Edit the selected %s + A kiválasztott %s szerkesztése + + + + Delete %s + %s törlése + + + + Delete the selected item + Kiválasztott elem törlése + + + + Preview %s + %s előnézete + + + + Preview the selected item + A kiválasztott elem előnézete + + + + Send the selected item live + A kiválasztott elem élő adásba küldése + + + + Add %s to Service + %s hozzáadása a szolgálathoz + + + + Add the selected item(s) to the service + A kiválasztott elem(ek) hozzáadása a szolgálathoz + + + &Edit %s - + %s sz&erkesztése - + &Delete %s - + %s &törlése - + &Preview %s - + %s elő&nézete - + &Show Live - Egyenes &adásba + Élő &adásba - + &Add to Service - &Hozzáadás a szolgálathoz + &Hozzáadás a szolgálathoz - + &Add to selected Service Item - &Hozzáadás a kiválasztott szolgálat elemhez + &Hozzáadás a kiválasztott szolgálat elemhez - + You must select one or more items to preview. - + Ki kell választani egy elemet az előnézethez. - + You must select one or more items to send live. - + Ki kell választani egy élő adásba küldendő elemet. - + You must select one or more items. - Ki kell választani egy vagy több elemet. + Ki kell választani egy vagy több elemet. - + No items selected - Nincs kiválasztott elem + Nincs kiválasztott elem - + You must select one or more items - Ki kell választani egy vagy több elemet + Ki kell választani egy vagy több elemet - + No Service Item Selected - Nincs kiválasztott szolgálat elem + Nincs kiválasztott szolgálat elem - + You must select an existing service item to add to. - Ki kell választani egy szolgálati elemet, amihez hozzá szeretné adni. + Ki kell választani egy szolgálati elemet, amihez hozzá szeretné adni. - + Invalid Service Item - Érvénytelen szolgálat elem + Érvénytelen szolgálat elem - + You must select a %s service item. - + Ki kell választani egy %s szolgálati elemet. @@ -2497,52 +2423,52 @@ You can download the latest version from http://openlp.org/. Plugin List - Bővítménylista + Bővítménylista Plugin Details - Bővítmény részletei + Bővítmény részletei Version: - Verzió: + Verzió: About: - Névjegy: + Névjegy: Status: - Állapot: + Állapot: Active - Aktív + Aktív Inactive - Inaktív + Inaktív - + %s (Inactive) - + %s (inaktív) - + %s (Active) - + %s (aktív) - + %s (Disabled) - + %s (letiltott) @@ -2550,22 +2476,22 @@ You can download the latest version from http://openlp.org/. Reorder Service Item - + Szolgálati elemek újrarendezése Up - Fel + Fel Delete - Törlés + Törlés Down - Le + Le @@ -2573,178 +2499,184 @@ You can download the latest version from http://openlp.org/. New Service - Új szolgálat + Új szolgálat Create a new service - Új szolgálat létrehozása + Új szolgálat létrehozása - + Open Service - Szolgálat megnyitása + Szolgálat megnyitása Load an existing service - Egy meglévő szolgálat betöltése + Egy meglévő szolgálat betöltése - + Save Service - Szolgálat mentése + Szolgálat mentése Save this service - Aktuális szolgálat mentése + Aktuális szolgálat mentése Theme: - Téma: + Téma: Select a theme for the service - + Válasszon egy témát a szolgálathoz Move to &top - Mozgatás &felülre + Mozgatás &felülre Move item to the top of the service. - + Elem mozgatása a szolgálat elejére. Move &up - Mozgatás f&eljebb + Mozgatás f&eljebb Move item up one position in the service. - + Elem mozgatása a szolgálatban eggyel feljebb. Move &down - Mozgatás &lejjebb + Mozgatás &lejjebb Move item down one position in the service. - + Elem mozgatása a szolgálatban eggyel lejjebb. Move to &bottom - Mozgatás &alulra + Mozgatás &alulra Move item to the end of the service. - + Elem mozgatása a szolgálat végére. &Delete From Service - &Törlés a szolgálatból + &Törlés a szolgálatból Delete the selected item from the service. - + Kiválasztott elem törlése a szolgálatból. &Add New Item - Új elem &hozzáadása + Új elem &hozzáadása &Add to Selected Item - &Hozzáadás a kiválasztott elemhez + &Hozzáadás a kiválasztott elemhez &Edit Item - &Elem szerkesztése + &Elem szerkesztése &Reorder Item - + Elem újra&rendezése &Notes - &Jegyzetek + &Jegyzetek &Preview Verse - Versszak &előnézete + Versszak &előnézete &Live Verse - &Adásban lévő versszak + &Adásban lévő versszak &Change Item Theme - + Elem témájának &módosítása - + Save Changes to Service? - + Mentsük a változásokat a szolgálatban? - + Your service is unsaved, do you want to save those changes before creating a new one? - A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat létrehozná? + A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat létrehozná? - + OpenLP Service Files (*.osz) - + OpenLP szolgálat fájlok (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat megnyitná? + A szolgálat nincs elmentve, szeretné menteni, mielőtt az újat megnyitná? - + Error - Hiba + Hiba - + File is not a valid service. The content encoding is not UTF-8. - + A fájl nem érvényes szolgálat. +A tartalom kódolása nem UTF-8. - + File is not a valid service. - + A fájl nem érvényes szolgálat. - + Missing Display Handler - Hiányzó képernyő kezelő + Hiányzó képernyő kezelő - + Your item cannot be displayed as there is no handler to display it - Az elemet nem lehet megjeleníteni, mert nincs kezelő, amely megjelenítené + Az elemet nem lehet megjeleníteni, mert nincs kezelő, amely megjelenítené + + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + Az elemet nem lehet megjeleníteni, mert a bővítmény, amely kezelné, hiányzik vagy inaktív @@ -2752,7 +2684,7 @@ The content encoding is not UTF-8. Service Item Notes - Szolgálat elem jegyzetek + Szolgálat elem jegyzetek @@ -2760,7 +2692,7 @@ The content encoding is not UTF-8. Configure OpenLP - + OpenLP beállítása @@ -2768,95 +2700,80 @@ The content encoding is not UTF-8. Live - Egyenes adás + Élő adás Preview - Előnézet + Előnézet Move to previous - Mozgatás az előzőre + Mozgatás az előzőre Move to next - Mozgatás a következőre + Mozgatás a következőre Hide - + Elrejtés - - Blank Screen - Elsötétített képernyő - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - Mozgatás az egyenes adásban lévőre + Élő adásba küldés - - Edit and re-preview song - - - - + Start continuous loop - Folyamatos vetítés indítása + Folyamatos vetítés indítása - + Stop continuous loop - Folyamatos vetítés leállítása + Folyamatos vetítés leállítása - + s - mp + mp - + Delay between slides in seconds - Diák közötti késleltetés másodpercben + Diák közötti késleltetés másodpercben - + Start playing media - Médialejátszás indítása + Médialejátszás indítása - + Go To - + Ugrás erre + + + + Edit and reload song preview + Szerkesztés és az dal előnézetének újraolvasása OpenLP.SpellTextEdit - + Spelling Suggestions - + Helyesírási javaslatok - + Formatting Tags - + Formázó címkék @@ -2864,178 +2781,179 @@ The content encoding is not UTF-8. New Theme - Új téma + Új téma Create a new theme. - + Új téma létrehozása. Edit Theme - Téma szerkesztése + Téma szerkesztése Edit a theme. - + Egy téma szerkesztése. Delete Theme - Téma törlése + Téma törlése Delete a theme. - + Egy téma törlése. Import Theme - Téma importálása + Téma importálása Import a theme. - + Egy téma importálása. Export Theme - Téma exportálása + Téma exportálása Export a theme. - + Egy téma exportálása. &Edit Theme - + Téma sz&erkesztése &Delete Theme - + Téma &törlése Set As &Global Default - + Beállítás &globális alapértelmezetté E&xport Theme - + Téma e&xportálása %s (default) - + %s (alapértelmezett) You must select a theme to edit. - + Ki kell választani témát a szerkesztéshez. You must select a theme to delete. - + Ki kell választani témát a törléshez. Delete Confirmation - Törlés megerősítése + Törlés megerősítése Delete theme? - + Törölhető a téma? Error - Hiba + Hiba You are unable to delete the default theme. - Az alapértelmezett témát nem lehet törölni. - - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - + Az alapértelmezett témát nem lehet törölni. You have not selected a theme. - Nincs kiválasztva egy téma sem. + Nincs kiválasztva egy téma sem. Save Theme - (%s) - Téma mentése – (%s) + Téma mentése – (%s) Theme Exported - + Téma exportálva Your theme has been successfully exported. - + A téma sikeresen exportálásra került. Theme Export Failed - + A téma exportálása nem sikerült Your theme could not be exported due to an error. - + A témát nem sikerült exportálni egy hiba miatt. Select Theme Import File - Importálandó téma fájl kiválasztása + Importálandó téma fájl kiválasztása Theme (*.*) - + Témák (*.*) File is not a valid theme. The content encoding is not UTF-8. - + Nem érvényes témafájl. +A tartalom kódolása nem UTF-8. File is not a valid theme. - Nem érvényes témafájl. + Nem érvényes témafájl. Theme Exists - A téma már létezik + A téma már létezik A theme with this name already exists. Would you like to overwrite it? - + Egy ilyen nevű téma már létezik. Szeretnéd felülírni? + + + + Theme %s is used in the %s plugin. + A(z) %s témát a(z) %s bővítmény használja. + + + + Theme %s is used by the service manager. + A(z) %s témát a szolgálatkezelő használja. @@ -3043,47 +2961,47 @@ The content encoding is not UTF-8. Themes - Témák + Témák Global Theme - + Globális téma Theme Level - + Téma szint S&ong Level - + Dal &szint 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. - Minden dalra az adatbázisban tárolt téma alkalmazása. Ha egy dalhoz nincs saját téma beállítva, akkor a szolgálathoz beállított használata. Ha a szolgálathoz sincs téma beállítva, akkor a globális téma alkalmazása. + Minden dalra az adatbázisban tárolt téma alkalmazása. Ha egy dalhoz nincs saját téma beállítva, akkor a szolgálathoz beállított alkalmazása. Ha a szolgálathoz sincs téma beállítva, akkor a globális téma alkalmazása. &Service Level - + Szolgálati &szint 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. - A szolgálathoz beállított téma alkalmazása, vagyis az egyes dalokhoz megadott témák felülírása. Ha a szolgálathoz nincs téma beállítva, akkor a globális téma alkalmazása. + A szolgálathoz beállított téma alkalmazása, vagyis az egyes dalokhoz megadott témák felülírása. Ha a szolgálathoz nincs téma beállítva, akkor a globális téma alkalmazása. &Global Level - + &Globális szint Use the global theme, overriding any themes associated with either the service or the songs. - A globális téma alkalmazása, vagyis a szolgálathoz, ill. a dalokhoz beállított témák felülírása. + A globális téma alkalmazása, vagyis a szolgálathoz, ill. a dalokhoz beállított témák felülírása. @@ -3091,110 +3009,55 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - - - Presentation - Bemutató - - - - Presentations - Bemutatók - - - - Load - - - - - Load a new Presentation - - - - - Delete - Törlés - - - - Delete the selected Presentation - - - - - Preview - Előnézet - - - - Preview the selected Presentation - - - - - Live - Egyenes adás - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - + <strong>Bemutató bővítmény</strong><br />A bemutató bővítmény különböző külső programok segítségével bemutatók megjelenítését teszi lehetővé. A prezentációs programok egy listából választhatók ki. PresentationPlugin.MediaItem - + + Presentation + Bemutató + + + Select Presentation(s) - Bemutató(k) kiválasztása + Bemutató(k) kiválasztása - + Automatic - Automatikus + Automatikus - + Present using: - Bemutató ezzel: + Bemutató ezzel: - + File Exists - + A fájl létezik - + A presentation with that filename already exists. - Ilyen fájlnéven már létezik egy bemutató. + Ilyen fájlnéven már létezik egy bemutató. - + Unsupported File - + Nem támogatott fájl - + This type of presentation is not supported. - + Ez a bemutató típus nem támogatott. - + You must select an item to delete. - + Ki kell választani egy törlendő elemet. @@ -3202,22 +3065,22 @@ The content encoding is not UTF-8. Presentations - Bemutatók + Bemutatók Available Controllers - Elérhető vezérlők + Elérhető vezérlők Advanced - Haladó + Haladó Allow presentation application to be overriden - + A bemutató program felülírásának engedélyezése @@ -3225,17 +3088,7 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - - - Remote - - - - - Remotes - Távvezérlés + <strong>Távvezérlő bővítmény</strong><br />A távvezérlő bővítmény egy böngésző vagy egy távoli API segítségével lehetővé teszi egy másik számítógépen futó OpenLP számára való üzenetküldést. @@ -3243,22 +3096,22 @@ The content encoding is not UTF-8. Remotes - Távvezérlés + Távvezérlés Serve on IP address: - + Szolgáltatás IP címe: Port number: - + Port száma: Server Settings - + Szerver beállítások @@ -3266,47 +3119,42 @@ The content encoding is not UTF-8. &Song Usage Tracking - + &Dalstatisztika rögzítése &Delete Tracking Data - + Rögzített adatok &törlése Delete song usage data up to a specified date. - + Dalstatisztika adatok törlése egy meghatározott dátumig. &Extract Tracking Data - + Rögzített adatok &kicsomagolása Generate a report on song usage. - + Dalstatisztika jelentés összeállítása. Toggle Tracking - + Rögzítés Toggle the tracking of song usage. - + Dalstatisztika rögzítésének átváltása. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - - - SongUsage - + <strong>Dalstatisztika bővítmény</strong><br />Ez a bővítmény rögzíti, hogy a dalok mikor lettek vetítve egy élő szolgálat során. @@ -3314,17 +3162,17 @@ The content encoding is not UTF-8. Delete Song Usage Data - + Dalstatisztika adatok törlése Delete Selected Song Usage Events? - Valóban törölhetők a kiválasztott dalstatisztika események? + Valóban törölhetők a kiválasztott dalstatisztika események? Are you sure you want to delete selected Song Usage data? - Valóban törölhetők a kiválasztott dalstatisztika adatok? + Valóban törölhetők a kiválasztott dalstatisztika adatok? @@ -3332,27 +3180,27 @@ The content encoding is not UTF-8. Song Usage Extraction - Dalstatisztika kicsomagolása + Dalstatisztika kicsomagolása Select Date Range - Időintervallum megadása + Időintervallum megadása to - + Report Location - Helyszín jelentése + Helyszín jelentése Output File Location - Kimeneti fájl elérési útvonala + Kimeneti fájl elérési útvonala @@ -3360,87 +3208,17 @@ The content encoding is not UTF-8. &Song - &Dal + &Dal Import songs using the import wizard. - Dalok importálása az importálás tündérrel. + Dalok importálása az importálás tündérrel. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - - - Song - Dal - - - - Songs - Dalok - - - - Add - Hozzáadás - - - - Add a new Song - - - - - Edit - Szerkesztés - - - - Edit the selected Song - - - - - Delete - Törlés - - - - Delete the selected Song - - - - - Preview - Előnézet - - - - Preview the selected Song - - - - - Live - Egyenes adás - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - + <strong>Dalok bővítmény</strong><br />A dalok bővítmény dalok megjelenítését és kezelését teszi lehetővé. @@ -3448,42 +3226,42 @@ The content encoding is not UTF-8. Author Maintenance - Szerzők kezelése + Szerzők kezelése Display name: - Megjelenített név: + Megjelenített név: First name: - Keresztnév: + Keresztnév: Last name: - Vezetéknév: + Vezetéknév: Error - Hiba + Hiba You need to type in the first name of the author. - Meg kell adni a szerző vezetéknevét. + Meg kell adni a szerző vezetéknevét. You need to type in the last name of the author. - Meg kell adni a szerző keresztnevét. + Meg kell adni a szerző keresztnevét. - You have not set a display name for the author, would you like me to combine the first and last names for you? - + You have not set a display name for the author, combine the first and last names? + Nincs megadva a szerző megjelenített neve, legyen előállítva a vezeték és keresztnevéből? @@ -3491,242 +3269,242 @@ The content encoding is not UTF-8. Song Editor - Dalszerkesztő + Dalszerkesztő &Title: - + &Cím: Alt&ernate title: - + &Alternatív cím: &Lyrics: - + &Dalszöveg: &Verse order: - + Versszak &sorrend: &Add - + &Hozzáadás &Edit - &Szerkesztés + &Szerkesztés Ed&it All - + &Összes szerkesztése &Delete - &Törlés + &Törlés Title && Lyrics - Cím és dalszöveg + Cím és dalszöveg Authors - Szerzők + Szerzők &Add to Song - &Hozzáadás dalhoz + &Hozzáadás dalhoz &Remove - &Eltávolítás + &Eltávolítás &Manage Authors, Topics, Song Books - + Szerzők, témakörök, énekeskönyvek &kezelése Topic - Témakör + Témakör A&dd to Song - &Hozzáadás dalhoz + &Hozzáadás dalhoz R&emove - &Eltávolítás + &Eltávolítás Song Book - Daloskönyv + Énekeskönyv Book: - Könyv: + Könyv: Number: - + Szám: Authors, Topics && Song Book - + Szerzők, témakörök és énekeskönyvek Theme - Téma + Téma New &Theme - + Új &téma Copyright Information - Szerzői jogi információ + Szerzői jogi információ © - + CCLI number: - + CCLI szám: Comments - Megjegyzések + Megjegyzések Theme, Copyright Info && Comments - Téma, szerzői jogi infók és megjegyzések + Téma, szerzői jogi infók és megjegyzések Save && Preview - Mentés és előnézet + Mentés és előnézet Add Author - + Szerző hozzáadása This author does not exist, do you want to add them? - + Ez a szerző még nem létezik, valóban hozzá kívánja adni? Error - Hiba + Hiba This author is already in the list. - + A szerző már benne van a listában. No Author Selected - + Nincs kiválasztott szerző You have not selected a valid author. Either select an author from the list, or type in a new author and click the "Add Author to Song" button to add the new author. - + Nincs kiválasztva egyetlen szerző sem. Vagy válassz egy szerzőt a listából, vagy írj az új szerző mezőbe és kattints az „Szerző hozzáadása a dalhoz” gombon a szerző megjelöléséhez. Add Topic - + Témakör hozzáadása This topic does not exist, do you want to add it? - + Ez a témakör még nem létezik, szeretnéd hozzáadni? This topic is already in the list. - + A témakör már benne van a listában. No Topic Selected - + Nincs kiválasztott témakör You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - + Nincs kiválasztva egyetlen témakör sem. Vagy válassz egy témakört a listából, vagy írj az új témakör mezőbe és kattints a Témakör hozzáadása a dalhoz gombon a témakör megjelöléséhez. You need to type in a song title. - + Add meg a dal címét. You need to type in at least one verse. - + Legalább egy versszakot meg kell adnod. Warning - + Figyelmeztetés You have not added any authors for this song. Do you want to add an author now? - + Még nincs hozzáadva egyetlen szerző sem. Szeretnél most egyet megjelölni? The verse order is invalid. There is no verse corresponding to %s. Valid entries are %s. - + A versszaksorrend hibás. Nincs ilyen versszak: %s. Az érvényes elemek ezek: %s. You have not used %s anywhere in the verse order. Are you sure you want to save the song like this? - + Ez a versszak sehol nem lett megadva a sorrendben: %s. Biztosan így kívánod elmenteni a dalt? Add Book - + Könyv hozzáadása This song book does not exist, do you want to add it? - + Ez az énekeskönyv még nem létezik, szeretnéd hozzáadni a listához? @@ -3734,343 +3512,378 @@ The content encoding is not UTF-8. Edit Verse - Versszak szerkesztése + Versszak szerkesztése &Verse type: - + Versszak &típusa: &Insert - + &Beszúrás SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + Nincs kiválasztott OpenLP 2.0 adatbázis - + You need to select an OpenLP 2.0 song database file to import from. - + Ki kell választani egy OpenLP 2.0 adatbázis fájlt az importáláshoz. - + No openlp.org 1.x Song Database Selected - + Nincs kiválasztott openlp.org 1.x adatbázis - + You need to select an openlp.org 1.x song database file to import from. - + Ki kell választani egy openlp.org 1.x adatbázis fájlt az importáláshoz. - - No OpenLyrics Files Selected - Nincsenek kijelölt OpenLyrics fájlok - - - - You need to add at least one OpenLyrics song file to import from. - Meg kell adni legalább egy OpenLyrics dal fájlt az importáláshoz. - - - + No OpenSong Files Selected - Nincsenek kijelölt OpenSong fájlok + Nincsenek kiválasztott OpenSong fájlok - + You need to add at least one OpenSong song file to import from. - Meg kell adni legalább egy OpenSong dal fájlt az importáláshoz. + Ki kell választani legalább egy OpenSong dal fájlt az importáláshoz. - + No Words of Worship Files Selected - + Nincsenek kiválasztott Words of Worship fájlok - + You need to add at least one Words of Worship file to import from. - + Ki kell választani legalább egy Words of Worship dal fájlt az importáláshoz. - + No CCLI Files Selected - Nincsenek kijelölt CCLI fájlok + Nincsenek kiválasztott CCLI fájlok - + You need to add at least one CCLI file to import from. - Meg kell adni legalább egy CCLI fájlt az importáláshoz. + Ki kell választani legalább egy CCLI fájlt az importáláshoz. - + No Songs of Fellowship File Selected - + Nincs kiválasztott Songs of Fellowship fájl - + You need to add at least one Songs of Fellowship file to import from. - + Ki kell választani legalább egy Songs of Fellowship fájlt az importáláshoz. - + No Document/Presentation Selected - + Nincs kiválasztott dokumentum vagy bemutató - + You need to add at least one document or presentation file to import from. - + Ki kell választani legalább egy dokumentumot vagy bemutatót az importáláshoz. - + Select OpenLP 2.0 Database File - + Válassz egy OpenLP 2.0 adatbázis fájlt - + Select openlp.org 1.x Database File - + Válassz egy openlp.org 1.x adatbázis fájlt - - Select OpenLyrics Files - - - - + Select Open Song Files - + Válassz OpenSong fájlokat - + Select Words of Worship Files - + Válassz Words of Worship fájlokat - + Select CCLI Files - + Válassz CCLI fájlokat - + Select Songs of Fellowship Files - + Válassz Songs of Fellowship fájlokat - + Select Document/Presentation Files - + Válassz dokumentum vagy bemutató fájlokat - + Starting import... - Importálás indítása... + Importálás indítása... - + Song Import Wizard - Dalimportáló tündér + Dalimportáló tündér - + Welcome to the Song Import Wizard - Üdvözlet a dalimportáló tündérben + Üdvözlet a dalimportáló tündérben - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - A tündérrel különféle formátumú dalokat lehet importálni. Az alább található Tovább gombra való kattintással indítható a folyamat első lépése a formátum kiválasztásával. + A tündérrel különféle formátumú dalokat lehet importálni. Az alább található Tovább gombra való kattintással indítható a folyamat első lépése a formátum kiválasztásával. - + Select Import Source - Válassza ki az importálandó forrást + Válaszd ki az importálandó forrást - + Select the import format, and where to import from. - Válassza ki a importálandó forrást és a helyet, ahonnan importálja. + Válaszd ki a importálandó forrást és a helyet. - + Format: - Formátum: + Formátum: - + OpenLP 2.0 - + - + openlp.org 1.x - + - + OpenLyrics - + - + OpenSong - + - + Words of Worship - + - + CCLI/SongSelect - + - + Songs of Fellowship - + - + Generic Document/Presentation - + Általános dokumentum vagy bemutató - + Filename: - Fájlnév: + Fájlnév: - + Browse... - Tallózás... + Tallózás... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + Az openlp.org 1.x importáló le lett tiltva egy hiányzó Python modul miatt. Ha szeretnéd használni ezt az importálót, telepíteni kell a „python-sqlite” modult. + + + Add Files... - Fájlok hozzáadása... + Fájlok hozzáadása... - + Remove File(s) - Fájlok törlése + Fájl(ok) törlése - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + A Songs of Fellowship importáló le lett tiltva, mivel az OpenLP nem találja az OpenOffice.org-ot a számítógépen. + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + Az általános dokumentum, ill. bemutató importáló le lett tiltva, mivel az OpenLP nem találja az OpenOffice.org-ot a számítógépen. + + + Importing - Importálás + Importálás - + Please wait while your songs are imported. - Kérem, várjon, míg a dalok importálás alatt állnak. + Kérlek, várj, míg a dalok importálás alatt állnak. - + Ready. - Kész. + Kész. - + %p% - + - + Importing "%s"... - + Importálás „%s”... - + Importing %s... + Importálás %s... + + + + No EasyWorship Song Database Selected + Nincs kiválasztott EasyWorship dal adatbázis + + + + You need to select an EasyWorship song database file to import from. + Ki kell választani egy EasyWorship dal adatbázis fájlt az importáláshoz. + + + + Select EasyWorship Database File + Válassz egy EasyWorship adatbázis fájlt + + + + EasyWorship + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + Az OpenLyrics importáló még nem lett kifejlesztve, de amint már láthatod, szándékozunk elkészíteni. Remélhetőleg a következő kiadásban már benne lesz. + + + + Administered by %s SongsPlugin.MediaItem - + + Song + Dal + + + Song Maintenance - Dalok kezelése + Dalok kezelése - + Maintain the lists of authors, topics and books - A szerzők, témakörök, könyvek listájának kezelése - - - - Search: - Keresés: + Szerzők, témakörök, könyvek listájának kezelése - Type: - Típus: + Search: + Keresés: - Clear - + Type: + Típus: - Search - Keresés + Clear + Törlés - - Titles - Címek + + Search + Keresés - Lyrics - Dalszöveg + Titles + Címek + Lyrics + Dalszöveg + + + Authors - Szerzők + Szerzők - + You must select an item to edit. - + Ki kell választani egy szerkesztendő elemet. - + You must select an item to delete. - + Ki kell választani egy törlendő elemet. - + Are you sure you want to delete the selected song? - + Valóban törölhető a kiválasztott dal? - + Are you sure you want to delete the %d selected songs? - + Valóban törölhetők a kiválasztott dalok: %d? - + Delete Song(s)? - + Törölhető(ek) a dal(ok)? - + CCLI Licence: - CCLI licenc: + CCLI licenc: @@ -4078,53 +3891,53 @@ The content encoding is not UTF-8. Song Book Maintenance - + Énekeskönyvek kezelése &Name: - + &Név: &Publisher: - + &Kiadó: Error - Hiba + Hiba You need to type in a name for the book. - + Meg kell adni a könyv nevét. SongsPlugin.SongImport - + copyright - + szerzői jog - + © - + SongsPlugin.SongImportForm - + Finished import. - Az importálás befejeződött. + Az importálás befejeződött. - + Your song import failed. - + Az importálás meghiúsult. @@ -4132,147 +3945,147 @@ The content encoding is not UTF-8. Song Maintenance - Dalok kezelése + Dalok kezelése Authors - Szerzők + Szerzők Topics - Témakörök + Témakörök Song Books - + Énekeskönyvek &Add - + &Hozzáadás &Edit - &Szerkesztés + &Szerkesztés &Delete - &Törlés + &Törlés Error - Hiba + Hiba Could not add your author. - + A szerzőt nem lehet hozzáadni. This author already exists. - + Ez a szerző már létezik. Could not add your topic. - + A témakört nem lehet hozzáadni. This topic already exists. - + Ez a témakör már létezik. Could not add your book. - + A könyvet nem lehet hozzáadni. This book already exists. - + Ez a könyv már létezik. Could not save your changes. - - - - - Could not save your modified author, because he already exists. - + A módosításokat nem lehet elmenteni. Could not save your modified topic, because it already exists. - + A módosított témakört nem lehet elmenteni, mivel már létezik. Delete Author - Szerző törlése + Szerző törlése Are you sure you want to delete the selected author? - A kiválasztott szerző biztosan törölhető? + A kiválasztott szerző biztosan törölhető? This author cannot be deleted, they are currently assigned to at least one song. - + Ezt a szerzőt nem lehet törölni, mivel jelenleg legalább egy dalhoz hozzá van rendelve. No author selected! - Nincs kiválasztott szerző! + Nincs kiválasztott szerző. Delete Topic - Témakör törlése + Témakör törlése Are you sure you want to delete the selected topic? - A kiválasztott témakör biztosan törölhető? + A kiválasztott témakör biztosan törölhető? This topic cannot be deleted, it is currently assigned to at least one song. - + Ezt a témakört nem lehet törölni, mivel jelenleg legalább egy dalhoz hozzá van rendelve. No topic selected! - Nincs kiválasztott témakör! + Nincs kiválasztott témakör. Delete Book - Könyv törlése + Könyv törlése Are you sure you want to delete the selected book? - A kiválasztott könyv biztosan törölhető? + A kiválasztott könyv biztosan törölhető? This book cannot be deleted, it is currently assigned to at least one song. - + Ezt a könyvet nem lehet törölni, mivel jelenleg legalább egy dalhoz hozzá van rendelve. No book selected! - Nincs kiválasztott könyv! + Nincs kiválasztott könyv. + + + + Could not save your modified author, because the author already exists. + A módosított szerzőt nem lehet elmenteni, mivel már a szerző létezik. @@ -4280,22 +4093,22 @@ The content encoding is not UTF-8. Songs - Dalok + Dalok Songs Mode - Dalmód + Dalmód Enable search as you type - Gépelés közbeni keresés engedélyezése + Gépelés közbeni keresés engedélyezése Display verses on live tool bar - + Versszakok megjelenítése az élő adás eszköztáron @@ -4303,22 +4116,22 @@ The content encoding is not UTF-8. Topic Maintenance - Témakörök kezelése + Témakörök kezelése Topic name: - Témakör neve: + Témakör neve: Error - Hiba + Hiba - You need to type in a topic name! - Meg kell adni egy témakör nevet! + You need to type in a topic name. + Meg kell adni egy témakör nevet. @@ -4326,37 +4139,37 @@ The content encoding is not UTF-8. Verse - Versszak + Versszak Chorus - Refrén + Refrén Bridge - Mellékdal + Mellékdal Pre-Chorus - Elő-refrén + Elő-refrén Intro - Bevezetés + Bevezetés Ending - Befejezés + Befejezés Other - Egyéb + Egyéb diff --git a/resources/i18n/ko.ts b/resources/i18n/ko.ts index 59be559d5..07347e7d5 100644 --- a/resources/i18n/ko.ts +++ b/resources/i18n/ko.ts @@ -17,16 +17,6 @@ <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - Alert - - - - - Alerts - - AlertsPlugin.AlertForm @@ -172,6 +162,19 @@ + + BiblePlugin.MediaItem + + + Error + + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + + + BiblesPlugin @@ -184,86 +187,6 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - Bible - 성경 - - - - Bibles - - - - - Import - - - - - Import a Bible - - - - - Add - - - - - Add a new Bible - - - - - Edit - - - - - Edit the selected Bible - - - - - Delete - - - - - Delete the selected Bible - - - - - Preview - - - - - Preview the selected Bible - - - - - Live - - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - - BiblesPlugin.BibleDB @@ -287,7 +210,7 @@ - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -586,42 +509,32 @@ Changes do not affect verses already in the service. - + Empty Copyright - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - - - - + Bible Exists - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - - + Open OSIS File - + Open Books CSV File - + Open Verses CSV File - + Open OpenSong Bible @@ -631,120 +544,130 @@ Changes do not affect verses already in the service. - + Finished import. - + Your Bible import failed. + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + + BiblesPlugin.MediaItem - + + Bible + 성경 + + + Quick 즉시 - + Advanced - + Version: - + Dual: - + Search type: - + Find: - + Search - + Results: - + Book: - + Chapter: - + Verse: - + From: - + To: - + Verse Search - + Text Search - + Clear - + Keep - + No Book Found - + No matching book could be found in this Bible. - - etc - - - - + Bible not fully loaded. @@ -761,7 +684,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -914,106 +837,18 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - - Customs + + You haven't selected an item to edit. - - Import - - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - - - - - Add a new Custom - - - - - Edit - - - - - Edit the selected Custom - - - - - Delete - - - - - Delete the selected Custom - - - - - Preview - - - - - Preview the selected Custom - - - - - Live - - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service + + You haven't selected an item to delete. @@ -1021,134 +856,59 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - - - - - Images - - - - - Load - - - - - Load a new Image - - - - - Add - - - - - Add a new Image - - - - - Edit - - - - - Edit the selected Image - - - - - Delete - - - - - Delete the selected Image - - - - - Preview - - - - - Preview the selected Image - - - - - Live - - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme.
ImagePlugin.MediaItem - + + Image + + + + Select Image(s) - + All Files - + Replace Live Background - + Replace Background - + Reset Live Background - + You must select an image to delete. - + Image(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -1160,111 +920,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - - - - - Add a new Media - - - - - Edit - - - - - Edit the selected Media - - - - - Delete - - - - - Delete the selected Media - - - - - Preview - - - - - Preview the selected Media - - - - - Live - - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - - MediaPlugin.MediaItem - - Select Media - - - - - Replace Live Background - - - - - Replace Background - - - - + Media - + + Select Media + + + + + Replace Live Background + + + + + Replace Background + + + + You must select a media file to delete. @@ -1272,7 +952,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1832,13 +1512,13 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - - Error Occured + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + Error Occurred @@ -1973,43 +1653,23 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - - - New Service - - - - - Open Service - - - - - Save Service - - OpenLP 2.0 - - - AddHereYourLanguageName - - &File @@ -2075,6 +1735,11 @@ This General Public License does not permit incorporating your program into prop &New + + + New Service + + Create a new service. @@ -2090,6 +1755,11 @@ This General Public License does not permit incorporating your program into prop &Open + + + Open Service + + Open an existing service. @@ -2105,6 +1775,11 @@ This General Public License does not permit incorporating your program into prop &Save + + + Save Service + + Save the current service to disk. @@ -2373,115 +2048,191 @@ You can download the latest version from http://openlp.org/. - + OpenLP Main Display Blanked - + The Main Display has been blanked out - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s - + English + Please add the name of your language here OpenLP.MediaManagerItem - + No Items Selected - + + Import %s + + + + + Import a %s + + + + + Load %s + + + + + Load a new %s + + + + + New %s + + + + + Add a new %s + + + + + Edit %s + + + + + Edit the selected %s + + + + + Delete %s + + + + + Delete the selected item + + + + + Preview %s + + + + + Preview the selected item + + + + + Send the selected item live + + + + + Add %s to Service + + + + + Add the selected item(s) to the service + + + + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2524,17 +2275,17 @@ You can download the latest version from http://openlp.org/. - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2326,7 @@ You can download the latest version from http://openlp.org/. - + Open Service @@ -2585,7 +2336,7 @@ You can download the latest version from http://openlp.org/. - + Save Service @@ -2695,51 +2446,56 @@ You can download the latest version from http://openlp.org/. - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + + OpenLP.ServiceNoteForm @@ -2785,70 +2541,55 @@ The content encoding is not UTF-8. - - Blank Screen - - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - - Edit and re-preview song - - - - + Start continuous loop - + Stop continuous loop - + s - + Delay between slides in seconds - + Start playing media - + Go To + + + Edit and reload song preview + + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -2960,16 +2701,6 @@ The content encoding is not UTF-8. You are unable to delete the default theme. - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - - You have not selected a theme. @@ -3031,6 +2762,16 @@ The content encoding is not UTF-8. A theme with this name already exists. Would you like to overwrite it? + + + Theme %s is used in the %s plugin. + + + + + Theme %s is used by the service manager. + + OpenLP.ThemesTab @@ -3087,106 +2828,51 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - - - - - Presentations - - - - - Load - - - - - Load a new Presentation - - - - - Delete - - - - - Delete the selected Presentation - - - - - Preview - - - - - Preview the selected Presentation - - - - - Live - - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - + + Presentation + + + + Select Presentation(s) - + Automatic - + Present using: - + File Exists - + A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported. - + You must select an item to delete. @@ -3221,16 +2907,6 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - - RemotePlugin.RemoteTab @@ -3297,11 +2973,6 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3366,76 +3037,6 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - - - - - Songs - - - - - Add - - - - - Add a new Song - - - - - Edit - - - - - Edit the selected Song - - - - - Delete - - - - - Delete the selected Song - - - - - Preview - - - - - Preview the selected Song - - - - - Live - - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm @@ -3476,7 +3077,7 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? + You have not set a display name for the author, combine the first and last names? @@ -3744,325 +3345,360 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs 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: - + OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + Add Files... - + Remove File(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + Importing - + Please wait while your songs are imported. - + Ready. - + %p% - + Importing "%s"... - + Importing %s... + + + No EasyWorship Song Database Selected + + + + + You need to select an EasyWorship song database file to import from. + + + + + Select EasyWorship Database File + + + + + EasyWorship + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + + Administered by %s + + SongsPlugin.MediaItem - + + Song + + + + Song Maintenance - + Maintain the lists of authors, topics and books - + Search: - + Type: - + Clear - + Search - + Titles - + Lyrics - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: @@ -4098,12 +3734,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4111,12 +3747,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. - + Your song import failed. @@ -4198,11 +3834,6 @@ The content encoding is not UTF-8. Could not save your changes. - - - Could not save your modified author, because he already exists. - - Could not save your modified topic, because it already exists. @@ -4268,6 +3899,11 @@ The content encoding is not UTF-8. No book selected! + + + Could not save your modified author, because the author already exists. + + SongsPlugin.SongsTab @@ -4311,7 +3947,7 @@ The content encoding is not UTF-8. - You need to type in a topic name! + You need to type in a topic name. diff --git a/resources/i18n/nb.ts b/resources/i18n/nb.ts index 316e1ecc3..f97f7fec6 100644 --- a/resources/i18n/nb.ts +++ b/resources/i18n/nb.ts @@ -5,27 +5,17 @@ &Alert - + &Varsel Show an alert message. - + Vis en varselmelding. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - + <strong>Varsel Tilleg</strong><br />Varsels tillegg kontrolleren viser barn-varsel på visnings skjermen @@ -33,52 +23,52 @@ Alert Message - Varsel-melding + Varsel-melding Alert &text: - + Varsel &tekst: &Parameter(s): - + %Parameter(e): &New - &Ny + &Ny &Save - &Lagre + &Lagre &Delete - + &Slett Displ&ay - + Vis Display && Cl&ose - + Vis && Lukk &Close - + &Lukk New Alert - + Nytt Varsel @@ -91,7 +81,7 @@ Alert message created and displayed. - + Varsel beskjed er laget og vist @@ -99,76 +89,89 @@ Alerts - + Varsel Font - Skrifttype + Skrifttype Font name: - + Skrift navn: Font color: - + Skrift farge Background color: - + Bakgrunns farge: Font size: - + Skrift størrelse pt - + pt Alert timeout: - + Varsel varighet: s - + s Location: - + Plassering: Preview - + Forhåndsvisning OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 Top - Topp + Topp Middle - Midtstilt + Midtstilt Bottom + Bunn + + + + BiblePlugin.MediaItem + + + Error + + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? @@ -177,100 +180,20 @@ &Bible - + &Bibel <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - Bible - Bibel - - - - Bibles - Bibler - - - - Import - - - - - Import a Bible - - - - - Add - - - - - Add a new Bible - - - - - Edit - - - - - Edit the selected Bible - - - - - Delete - - - - - Delete the selected Bible - - - - - Preview - - - - - Preview the selected Bible - - - - - Live - Direkte - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - - BiblesPlugin.BibleDB Book not found - + Fant ikke boken @@ -287,7 +210,7 @@ - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -304,17 +227,17 @@ Book Chapter:Verse-Chapter:Verse Bibles - Bibler + Bibler Verse Display - + Vers visning Only show new chapter numbers - + Bare vis nye kapittel nummer @@ -334,17 +257,17 @@ Book Chapter:Verse-Chapter:Verse Verse Per Slide - + Vers pr side Verse Per Line - + Vers pr linje Continuous - + Kontinuerlig @@ -354,17 +277,17 @@ Book Chapter:Verse-Chapter:Verse ( And ) - + ( og ) { And } - + { og } [ And ] - + [ og ] @@ -375,7 +298,7 @@ Changes do not affect verses already in the service. Display dual Bible verses - + Vis doble Bibel vers @@ -383,77 +306,77 @@ Changes do not affect verses already in the service. Bible Import Wizard - Bibelimporteringsverktøy + Bibelimporteringsverktøy Welcome to the Bible Import Wizard - + Velkommen til bibelimporterings-veilederen 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. - Denne veiviseren vil hjelpe deg å importere Bibler fra en rekke ulike formater. Klikk på neste-knappen under for å starte prosessen ved å velge et format å importere fra. + Denne veiviseren vil hjelpe deg å importere Bibler fra en rekke ulike formater. Klikk på neste-knappen under for å starte prosessen ved å velge et format å importere fra. Select Import Source - Velg importeringskilde + Velg importeringskilde Select the import format, and where to import from. - + Velg importeringsformat og hvor du vil importere dem Format: - Format: + Format: OSIS - + OSIS CSV - + CSV OpenSong - OpenSong + OpenSong Web Download - + Web nedlastning File location: - + Fil plassering: Books location: - + Bok plassering: Verse location: - + Vers plassering: Bible filename: - + Bibel filnavn: Location: - + Plassering: @@ -468,112 +391,112 @@ Changes do not affect verses already in the service. Bible: - Bibel: + Bibel: Download Options - Nedlastingsalternativer + Nedlastingsalternativer Server: - Server: + Server: Username: - Brukernavn: + Brukernavn: Password: - + Passord: Proxy Server (Optional) - + Proxy Server (valgfritt) License Details - Lisensdetaljer + Lisensdetaljer Set up the Bible's license details. - Skriv inn Bibelens lisensdetaljer. + Skriv inn Bibelens lisensdetaljer. Version name: - + Versons navn: Copyright: - Copyright: + Opphavsrett: Permission: - Tillatelse: + Tillatelse: Importing - + Importerer Please wait while your Bible is imported. - + Vennligst vent mens bibelen blir importert Ready. - Klar. + Klar. Invalid Bible Location - Ugyldig Bibelplassering + Ugyldig Bibelplassering You need to specify a file to import your Bible from. - + Du om spesifisere en fil for å importere bibelen. Invalid Books File - + Ugyldig Book fil You need to specify a file with books of the Bible to use in the import. - Du må angi en fil som inneholder bøkene i Bibelen. + Du må angi en fil som inneholder bøkene i Bibelen du vil importere. Invalid Verse File - + Ugyldig vers fil You need to specify a file of Bible verses to import. - Du må angi en fil med bibelvers som skal importeres. + Du må angi en fil med bibelvers som skal importeres. Invalid OpenSong Bible - Ugyldig OpenSong Bibel + Ugyldig OpenSong Bibel You need to specify an OpenSong Bible file to import. - + Du må spesifisere en OpenSong Bibel fil å importere @@ -583,170 +506,170 @@ Changes do not affect verses already in the service. You need to specify a version name for your Bible. - + Du må spesifisere et versjonsnummer for Bibelen din. - + Empty Copyright Tom copyright - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Du må angi hvem som har opphavsrett til denne bibelutgaven! Bibler som ikke er tilknyttet noen opphavsrett må bli merket med dette. - - - + Bible Exists Bibelen eksisterer - - This Bible already exists! Please import a different Bible or first delete the existing one. - - - - + Open OSIS File - + Åpne OSIS fil - + Open Books CSV File - + Åpne Bøker CSV fil - + Open Verses CSV File - + Åpne Vers CSV fil - + Open OpenSong Bible - + Åpne OpenSong Bibel Starting import... - + Starter å importere... - + Finished import. Import fullført. - + Your Bible import failed. Bibelimporteringen mislyktes. + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + + BiblesPlugin.MediaItem - + + Bible + Bibel + + + Quick Rask - + Advanced Avansert - + Version: - + Versjon: - + Dual: Dobbel: - + Search type: - + Søk type: - + Find: Finn: - + Search - Søk - - - - Results: - Resultat: - - - - Book: - Bok: - - - - Chapter: - Kapittel - - - - Verse: - + Søk + Results: + Resultat: + + + + Book: + Bok: + + + + Chapter: + Kapittel: + + + + Verse: + Vers: + + + From: Fra: - + To: Til: - + Verse Search Søk i vers - + Text Search Tekstsøk - + Clear - + Keep Behold - + No Book Found Ingen bøker funnet - + No matching book could be found in this Bible. Finner ingen matchende bøker i denne Bibelen. - - etc - - - - + Bible not fully loaded. - + Bibelen ble ikke lastet. @@ -754,14 +677,14 @@ Changes do not affect verses already in the service. Importing - + Importerer CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -780,7 +703,7 @@ Changes do not affect verses already in the service. Display footer - + Vis bunntekst @@ -803,7 +726,7 @@ Changes do not affect verses already in the service. &Title: - + &Tittel: @@ -818,22 +741,22 @@ Changes do not affect verses already in the service. Edit - + Rediger Edit the selected slide. - + Rediger merket side Edit All - + Rediger Alt Edit all the slides at once. - + Rediger alle sider på en gang. @@ -914,106 +837,18 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - - Customs + + You haven't selected an item to edit. - - Import - - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - - - - - Add a new Custom - - - - - Edit - - - - - Edit the selected Custom - - - - - Delete - - - - - Delete the selected Custom - - - - - Preview - - - - - Preview the selected Custom - - - - - Live - Direkte - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service + + You haven't selected an item to delete. @@ -1021,134 +856,59 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - - - - - Images - - - - - Load - - - - - Load a new Image - - - - - Add - - - - - Add a new Image - - - - - Edit - - - - - Edit the selected Image - - - - - Delete - - - - - Delete the selected Image - - - - - Preview - - - - - Preview the selected Image - - - - - Live - Direkte - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + + + + Select Image(s) Velg bilde(r) - + All Files - + Replace Live Background - + Replace Background - + Reset Live Background - + You must select an image to delete. - + Image(s) Bilde(r) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -1160,111 +920,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - - - - - Add a new Media - - - - - Edit - - - - - Edit the selected Media - - - - - Delete - - - - - Delete the selected Media - - - - - Preview - - - - - Preview the selected Media - - - - - Live - Direkte - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - - MediaPlugin.MediaItem - - Select Media - Velg media - - - - Replace Live Background - - - - - Replace Background - - - - + Media - + + Select Media + Velg media + + + + Replace Live Background + + + + + Replace Background + + + + You must select a media file to delete. @@ -1272,7 +952,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1616,7 +1296,7 @@ This General Public License does not permit incorporating your program into prop pt - + pt @@ -1781,7 +1461,7 @@ This General Public License does not permit incorporating your program into prop Bottom - + Bunn @@ -1801,7 +1481,7 @@ This General Public License does not permit incorporating your program into prop Preview - + Forhåndsvisning @@ -1832,13 +1512,13 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - - Error Occured + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + Error Occurred @@ -1973,43 +1653,23 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - - - New Service - - - - - Open Service - Åpne møteplan - - - - Save Service - - OpenLP 2.0 OpenLP 2.0 - - - AddHereYourLanguageName - - &File @@ -2075,6 +1735,11 @@ This General Public License does not permit incorporating your program into prop &New &Ny + + + New Service + + Create a new service. @@ -2090,6 +1755,11 @@ This General Public License does not permit incorporating your program into prop &Open &Åpne + + + Open Service + Åpne møteplan + Open an existing service. @@ -2105,6 +1775,11 @@ This General Public License does not permit incorporating your program into prop &Save &Lagre + + + Save Service + + Save the current service to disk. @@ -2373,115 +2048,191 @@ You can download the latest version from http://openlp.org/. OpenLP versjonen har blitt oppdatert - + OpenLP Main Display Blanked - + The Main Display has been blanked out - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s - + English + Please add the name of your language here Norsk OpenLP.MediaManagerItem - + No Items Selected - + + Import %s + + + + + Import a %s + + + + + Load %s + + + + + Load a new %s + + + + + New %s + + + + + Add a new %s + + + + + Edit %s + + + + + Edit the selected %s + + + + + Delete %s + + + + + Delete the selected item + + + + + Preview %s + + + + + Preview the selected item + + + + + Send the selected item live + + + + + Add %s to Service + + + + + Add the selected item(s) to the service + + + + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live - + &Add to Service &Legg til i møteplan - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2501,7 +2252,7 @@ You can download the latest version from http://openlp.org/. Version: - + Versjon: @@ -2524,17 +2275,17 @@ You can download the latest version from http://openlp.org/. - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2326,7 @@ You can download the latest version from http://openlp.org/. Opprett ny møteplan - + Open Service Åpne møteplan @@ -2585,7 +2336,7 @@ You can download the latest version from http://openlp.org/. - + Save Service @@ -2695,51 +2446,56 @@ You can download the latest version from http://openlp.org/. &Bytt objekttema - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) OpenLP møteplan (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + + OpenLP.ServiceNoteForm @@ -2767,7 +2523,7 @@ The content encoding is not UTF-8. Preview - + Forhåndsvisning @@ -2785,70 +2541,55 @@ The content encoding is not UTF-8. - - Blank Screen - - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - - Edit and re-preview song - - - - + Start continuous loop Start kontinuerlig løkke - + Stop continuous loop - + s - + s - + Delay between slides in seconds Forsinkelse mellom lysbilder i sekund - + Start playing media Start avspilling av media - + Go To + + + Edit and reload song preview + + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -2960,16 +2701,6 @@ The content encoding is not UTF-8. You are unable to delete the default theme. Du kan ikke slette det globale temaet - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - - You have not selected a theme. @@ -3031,6 +2762,16 @@ The content encoding is not UTF-8. A theme with this name already exists. Would you like to overwrite it? + + + Theme %s is used in the %s plugin. + + + + + Theme %s is used by the service manager. + + OpenLP.ThemesTab @@ -3087,106 +2828,51 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - Presentasjon - - - - Presentations - - - - - Load - - - - - Load a new Presentation - - - - - Delete - - - - - Delete the selected Presentation - - - - - Preview - - - - - Preview the selected Presentation - - - - - Live - Direkte - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - + + Presentation + Presentasjon + + + Select Presentation(s) Velg presentasjon(er) - + Automatic Automatisk - + Present using: Presenter ved hjelp av: - + File Exists - + A presentation with that filename already exists. - + Unsupported File - + This type of presentation is not supported. - + You must select an item to delete. @@ -3221,16 +2907,6 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - Fjernmeldinger - RemotePlugin.RemoteTab @@ -3297,11 +2973,6 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3366,76 +3037,6 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - Sang - - - - Songs - Sanger - - - - Add - - - - - Add a new Song - - - - - Edit - - - - - Edit the selected Song - - - - - Delete - - - - - Delete the selected Song - - - - - Preview - - - - - Preview the selected Song - - - - - Live - Direkte - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm @@ -3476,7 +3077,7 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? + You have not set a display name for the author, combine the first and last names? @@ -3490,7 +3091,7 @@ The content encoding is not UTF-8. &Title: - + &Tittel: @@ -3525,7 +3126,7 @@ The content encoding is not UTF-8. &Delete - + &Slett @@ -3744,325 +3345,360 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... - + Starter å importere... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Velg importeringskilde - + Select the import format, and where to import from. - + Velg importeringsformat og hvor du vil importere dem - + Format: Format: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + Add Files... - + Remove File(s) - - Importing + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. - + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + Importing + Importerer + + + Please wait while your songs are imported. - + Ready. Klar. - + %p% - + Importing "%s"... - + Importing %s... + + + No EasyWorship Song Database Selected + + + + + You need to select an EasyWorship song database file to import from. + + + + + Select EasyWorship Database File + + + + + EasyWorship + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + + Administered by %s + + SongsPlugin.MediaItem - + + Song + Sang + + + Song Maintenance - + Maintain the lists of authors, topics and books Rediger liste over forfattere, emner og bøker. - + Search: Søk: - + Type: Type: - + Clear - + Search Søk - + Titles Titler - + Lyrics - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI lisens: @@ -4098,12 +3734,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4111,12 +3747,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Import fullført. - + Your song import failed. @@ -4156,7 +3792,7 @@ The content encoding is not UTF-8. &Delete - + &Slett @@ -4198,11 +3834,6 @@ The content encoding is not UTF-8. Could not save your changes. - - - Could not save your modified author, because he already exists. - - Could not save your modified topic, because it already exists. @@ -4268,6 +3899,11 @@ The content encoding is not UTF-8. No book selected! Ingen bok er valgt! + + + Could not save your modified author, because the author already exists. + + SongsPlugin.SongsTab @@ -4311,8 +3947,8 @@ The content encoding is not UTF-8. - You need to type in a topic name! - Skriv inn et emnenavn! + You need to type in a topic name. + diff --git a/resources/i18n/pt_BR.ts b/resources/i18n/pt_BR.ts index 23e3dc594..400d6d86c 100644 --- a/resources/i18n/pt_BR.ts +++ b/resources/i18n/pt_BR.ts @@ -5,27 +5,17 @@ &Alert - &Alerta + &Alerta Show an alert message. - + Exibir uma mensagem de alerta. <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - - - Alert - - - - - Alerts - Alertas + <strong>Plugin de Alertas</strong><br />O plugin de alertas controla a exibição de alertas de berçário na tela de apresentação @@ -33,57 +23,57 @@ Alert Message - Mensagem de Alerta + Mensagem de Alerta Alert &text: - + &Texto de Alerta: &Parameter(s): - &Parâmetro(s) + &Parâmetro(s) &New - &Novo + &Novo &Save - &Salvar + &Salvar &Delete - &Deletar + &Deletar Displ&ay - + &Exibir Display && Cl&ose - + Exibir && &Fechar &Close - &Fechar + &Fechar New Alert - Novo Alerta + Novo Alerta You haven't specified any text for your alert. Please type in some text before clicking New. - + Você não digitou nenhum texto para o seu alerta. Por favor digite algum texto antes de clicar em Novo. @@ -91,7 +81,7 @@ Alert message created and displayed. - + Mensagem de alerta criada e exibida. @@ -99,76 +89,89 @@ Alerts - Alertas + Alertas Font - Fonte + Fonte Font name: - Nome da fonte: + Nome da fonte: Font color: - + Cor da fonte: Background color: - + Cor do plano de fundo: Font size: - + Tamanho da fonte: pt - pt + pt Alert timeout: - Tempo Limite para o Alerta: + Tempo limite para o Alerta: s - s + s Location: - Localização: + Localização: Preview - + Pré-Visualização OpenLP 2.0 - OpenLP 2.0 + OpenLP 2.0 Top - Topo + Topo Middle - Meio + Meio Bottom + Rodapé + + + + BiblePlugin.MediaItem + + + Error + Erro + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? @@ -177,92 +180,12 @@ &Bible - &Bíblia + &Bíblia <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - <strong>Bible Plugin</strong><br />Este plugin permite exibir versículos bíblicos de diferentes fontes durante o culto. - - - - Bible - Bíblia - - - - Bibles - Bíblias - - - - Import - Importar - - - - Import a Bible - - - - - Add - Adicionar - - - - Add a new Bible - - - - - Edit - Editar - - - - Edit the selected Bible - - - - - Delete - Deletar - - - - Delete the selected Bible - - - - - Preview - - - - - Preview the selected Bible - - - - - Live - Ao Vivo - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - + <strong>Plugin da Bíblia</strong><br />Este plugin permite exibir versículos bíblicos de diferentes fontes durante o culto. @@ -270,12 +193,12 @@ Book not found - Livro não encontrado + Livro não encontrado The book you requested could not be found in this bible. Please check your spelling and that this is a complete bible not just one testament. - + O livro que você solicitou não foi encontrado nesta Bíblia. Por favor verifique se está escrito corretamente e se esta é uma Bíblia completa ou somente um testamento. @@ -283,11 +206,11 @@ Scripture Reference Error - + Erro de Referência na Escritura. - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -304,73 +227,74 @@ Book Chapter:Verse-Chapter:Verse Bibles - Bíblias + Bíblias Verse Display - Exibição do Versículo + Exibição do Versículo Only show new chapter numbers - Somente mostre números de capítulos novos + Somente mostrar números de capítulos novos Layout style: - + Estilo do Layout: Display style: - + Estilo de Exibição: Bible theme: - + Tema da Bíblia: Verse Per Slide - + Versículos por Slide Verse Per Line - + Versículos por Linha Continuous - Contínuo + Contínuo No Brackets - + Sem Parênteses ( And ) - ( e ) + ( E ) { And } - + { E } [ And ] - + [ E ] Note: Changes do not affect verses already in the service. - + Nota: +Mudanças não afetam os versículos que já estão no culto. @@ -383,77 +307,77 @@ Changes do not affect verses already in the service. Bible Import Wizard - Assistente de Importação da Bíblia + Assistente de Importação de Bíblia Welcome to the Bible Import Wizard - Bem Vindo ao assistente de Importação de Bíblias + Bem Vindo ao assistente de Importação de Bíblias 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. - Este assistente irá ajudá-lo a importar Bíblias de uma variedade de formatos. Clique no botão próximo abaixo para comecar o processo selecionando o formato a ser importado. + Este assistente irá ajudá-lo a importar Bíblias de uma variedade de formatos. Clique no botão próximo abaixo para começar o processo selecionando o formato a ser importado. Select Import Source - Selecionar Origem da Importação + Selecionar Origem da Importação Select the import format, and where to import from. - Selecione o formato e de onde será a importação + Selecione o formato, e de onde importar. Format: - Formato: + Formato: OSIS - OSIS + OSIS CSV - CSV + CSV OpenSong - OpenSong + OpenSong Web Download - Download da Internet + Download da Internet File location: - Local do arquivo: + Local do arquivo: Books location: - + Localização dos livros: Verse location: - + Localização do Versículo: Bible filename: - + Nome do arquivo da Bíblia: Location: - Localização: + Localização: @@ -468,285 +392,285 @@ Changes do not affect verses already in the service. Bible: - Bíblia: + Bíblia: Download Options - Opções de Download + Opções de Download Server: - Servidor: + Servidor: Username: - Nome de Usuário: + Nome de Usuário: Password: - Senha: + Senha: Proxy Server (Optional) - Servidor Proxy (Opcional) + Servidor Proxy (Opcional) License Details - Detalhes da Licença + Detalhes da Licença Set up the Bible's license details. - Configurar detalhes de licença da Bíblia. + Configurar detalhes de licença da Bíblia. Version name: - + Nome da Versão: Copyright: - Direito Autoral: + Direito Autoral: Permission: - Permissão: + Permissão: Importing - Importando + Importando Please wait while your Bible is imported. - Por favor aguarde enquanto a sua Bíblia é importada. + Por favor aguarde enquanto a sua Bíblia é importada. Ready. - Pronto. + Pronto. Invalid Bible Location - Localização da Bíblia Inválida + Localização da Bíblia Inválida You need to specify a file to import your Bible from. - + Você precisa especificar um arquivo para importar a sua Bíblia. Invalid Books File - Arquivo de Livros Inválido + Arquivo de Livros Inválido You need to specify a file with books of the Bible to use in the import. - Você precisa especificar um arquivo com os livros da Bíblia a serem importados. + Você precisa especificar um arquivo com os livros da Bíblia para usar na importação. Invalid Verse File - Arquivo de Versículo Inválido + Arquivo de Versículo Inválido You need to specify a file of Bible verses to import. - + Você precisa especificar um arquivo de Versículos da Bíblia para importar. Invalid OpenSong Bible - Bíblia do OpenSong Inválida + Bíblia do OpenSong Inválida You need to specify an OpenSong Bible file to import. - + Você precisa especificar uma Bíblia do OpenSong para importar. Empty Version Name - Nome da Versão Vazio + Nome da Versão Vazio You need to specify a version name for your Bible. - + Você precisa especificar um nome de versão para a sua Bíblia - + Empty Copyright - Limpar Direito Autoral + Limpar Direito Autoral - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Você precisa definir um direito autoral para a sua Bíblia! Bíblias em Domínio Público necessitam ser marcadas como tal. - - - + Bible Exists - Bíblia Existe + Bíblia Existe - - This Bible already exists! Please import a different Bible or first delete the existing one. - A Bíblia já existe! Por favor importe uma Bíblia diferente ou primeiro delete a existente. - - - + Open OSIS File - Abrir arquivo OSIS + Abrir arquivo OSIS - + Open Books CSV File - Abrir arquivo CSV de Livros + Abrir arquivo CSV de Livros - + Open Verses CSV File - + Abrir arquivo CSV de Versículos - + Open OpenSong Bible - Abrir Biblia do OpenSong + Abrir Biblia do OpenSong Starting import... - Iniciando importação... + Iniciando importação... - + Finished import. - Importação Finalizada. + Importação Finalizada. - + Your Bible import failed. - A sua Importação da Bíblia falhou. + A sua Importação da Bíblia falhou. + + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + BiblesPlugin.MediaItem - + + Bible + Bíblia + + + Quick - Rápido + Rápido - + Advanced - Avançado + Avançado - + Version: - Versão: + Versão: - + Dual: - Duplo: + Duplo: - + Search type: - Tipo de busca: + Tipo de busca: - + Find: - Buscar: - - - - Search - Buscar - - - - Results: - Resultados: - - - - Book: - Livro: - - - - Chapter: - Capítulo: - - - - Verse: - Versículo: - - - - From: - De: + Buscar: + Search + Pesquisar + + + + Results: + Resultados: + + + + Book: + Livro: + + + + Chapter: + Capítulo: + + + + Verse: + Versículo: + + + + From: + De: + + + To: - Para: + Para: - + Verse Search - Busca de Versículos + Busca de Versículos - + Text Search - Busca de Texto + Busca por Texto - + Clear - Limpar + Limpar - + Keep - Manter + Manter - + No Book Found - Nenhum Livro Encontrado + Nenhum Livro Encontrado - + No matching book could be found in this Bible. - Nenhum livro foi encontrado nesta Bíblia + O livro não foi encontrado nesta Bíblia. - - etc - - - - + Bible not fully loaded. - + A Bíblia não foi completamente carregada. @@ -754,14 +678,14 @@ Changes do not affect verses already in the service. Importing - Importando + Importando CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -770,12 +694,12 @@ Changes do not affect verses already in the service. Custom - Customizado + Customizado Custom Display - Exibição Customizada + Exibição Customizada @@ -788,122 +712,122 @@ Changes do not affect verses already in the service. Edit Custom Slides - Editar Slides Customizados + Editar Slides Customizados Move slide up one position. - + Mover slide uma posição acima. Move slide down one position. - Mover slide uma posição para baixo. + Mover slide uma posição para baixo. &Title: - &Título: + &Título: Add New - Adicionar Novo + Adicionar Novo Add a new slide at bottom. - + Adicionar um novo slide no final. Edit - Editar + Editar Edit the selected slide. - Editar o slide selecionado. + Editar o slide selecionado. Edit All - Editar Todos + Editar Todos Edit all the slides at once. - + Editar todos os slides de uma vez. Save - Salvar + Salvar Save the slide currently being edited. - + Salvar o slide que está sendo editado. Delete - Deletar + Deletar Delete the selected slide. - + Deletar a Bíblia selecionada. Clear - Limpar + Limpar Clear edit area - Limpar área de edição + Limpar área de edição Split Slide - + Dividir Slide Split a slide into two by inserting a slide splitter. - Dividir um slide em dois, inserindo um divisor de slides. + Dividir um slide em dois, inserindo um divisor de slides. The&me: - + The&ma: &Credits: - &Créditos: + &Créditos: Save && Preview - Salvar && Pré-Visualizar + Salvar && Pré-Visualizar Error - Erro + Erro You need to type in a title. - Você precisa digitar um título. + Você precisa digitar um título. You need to add at least one slide - + Você precisa adicionar pelo menos um slide @@ -914,241 +838,78 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - + + Custom + Customizado + + + You haven't selected an item to edit. - + You haven't selected an item to delete. - - CustomsPlugin - - - Custom - Customizado - - - - Customs - - - - - Import - Importar - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - Adicionar - - - - Add a new Custom - - - - - Edit - Editar - - - - Edit the selected Custom - - - - - Delete - Deletar - - - - Delete the selected Custom - - - - - Preview - - - - - Preview the selected Custom - - - - - Live - Ao Vivo - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service - - - ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Imagem - - - - Images - Imagens - - - - Load - - - - - Load a new Image - - - - - Add - Adicionar - - - - Add a new Image - - - - - Edit - Editar - - - - Edit the selected Image - - - - - Delete - Deletar - - - - Delete the selected Image - - - - - Preview - - - - - Preview the selected Image - - - - - Live - Ao Vivo - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + Imagem + + + Select Image(s) - Selecionar Imagem(s) + Selecionar Imagem(s) - + All Files - Todos os Arquivos + Todos os Arquivos - + Replace Live Background - + Replace Background - Substituir Plano de Fundo + Substituir Plano de Fundo - + Reset Live Background - + You must select an image to delete. - + Image(s) - Imagem(s) + Imagem(s) - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -1160,111 +921,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - Mídia - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - Adicionar - - - - Add a new Media - - - - - Edit - Editar - - - - Edit the selected Media - - - - - Delete - Deletar - - - - Delete the selected Media - - - - - Preview - - - - - Preview the selected Media - - - - - Live - Ao Vivo - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - -
MediaPlugin.MediaItem - - Select Media - Selecionar Mídia + + Media + Mídia - + + Select Media + Selecionar Mídia + + + Replace Live Background - + Replace Background - Substituir Plano de Fundo + Substituir Plano de Fundo - - Media - Mídia - - - + You must select a media file to delete. @@ -1272,7 +953,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1282,7 +963,7 @@ Changes do not affect verses already in the service. About OpenLP - Sobre o OpenLP + Sobre o OpenLP @@ -1298,7 +979,7 @@ OpenLP is written and maintained by volunteers. If you would like to see more fr About - Sobre + Sobre @@ -1340,7 +1021,7 @@ Built With PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro Oxygen Icons: http://oxygen-icons.org/ - Líder do Projeto + Líder do Projeto Raoul "superfly" Snyman Desenvolvedores @@ -1361,7 +1042,7 @@ Contribuidores Carsten "catini" Tingaard Frode "frodus" Woldsund -Testes +Testadores Philip "Phill" Ridout Wesley "wrst" Stout (lead) @@ -1372,7 +1053,7 @@ Criação de Pacotes Matthias "matthub" Hub (Mac OS X) Raoul "superfly" Snyman (Windows, Ubuntu) -Criado Usando +Criado Utilizando Python: http://www.python.org/ Qt4: http://qt.nokia.com/ PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro @@ -1382,7 +1063,7 @@ Criado Usando Credits - Créditos + Créditos @@ -1522,22 +1203,22 @@ This General Public License does not permit incorporating your program into prop License - Licença + Licença Contribute - Contribuir + Contribuir Close - Fechar + Fechar build %s - + compilação %s @@ -1545,17 +1226,17 @@ This General Public License does not permit incorporating your program into prop Advanced - Avançado + Avançado UI Settings - Configurações da Interface + Configurações da Interface Number of recent files to display: - Número de arquivos recentes a serem mostrados: + Número de arquivos recentes a serem exibidos: @@ -1573,87 +1254,87 @@ This General Public License does not permit incorporating your program into prop Theme Maintenance - Manutenção do Tema + Manutenção do Tema Theme &name: - &Nome do Tema: + &Nome do Tema: Type: - Tipo: + Tipo: Solid Color - Cor Sólida + Cor Sólida Gradient - Gradiente + Gradiente Image - Imagem + Imagem Image: - Imagem: + Imagem: Gradient: - + Gradiente: Horizontal - Horizontal + Horizontal Vertical - Vertical + Vertical Circular - Circular + Circular &Background - + &Plano de Fundo Main Font - Fonte Principal + Fonte Principal Font: - Fonte: + Fonte: Color: - + Cor: Size: - Tamanho: + Tamanho: pt - pt + pt @@ -1663,202 +1344,202 @@ This General Public License does not permit incorporating your program into prop Normal - Normal + Normal Bold - Negrito + Negrito Italics - Itálico + Itálico Bold/Italics - Negrito/Itálico + Negrito/Itálico Style: - Estilo: + Estilo: Display Location - Local de Exibição + Local de Exibição Use default location - + Usar local padrão X position: - + Posição X: Y position: - + Posição Y: Width: - Largura: + Largura: Height: - Altura: + Altura: px - px + px &Main Font - + Fonte &Principal Footer Font - Fonte do Rodapé + Fonte do Rodapé &Footer Font - Fonte do &Rodapé + Fonte do &Rodapé Outline - Esboço + Esboço Outline size: - + Tamanho do Esboço: Outline color: - + Cor do Esboço: Show outline: - + Exibir Esboço: Shadow - Sombra + Sombra Shadow size: - + Tamanho da Sombra: Shadow color: - + Cor da Sombra: Show shadow: - + Exibir Sombra: Alignment - Alinhamento + Alinhamento Horizontal align: - + Alinhamento horizontal: Left - Esquerda + Esquerda Right - Direita + Direita Center - Centralizar + Centralizar Vertical align: - + Alinhamento vertical: Top - Topo + Topo Middle - Meio + Meio Bottom - + Rodapé Slide Transition - Transição do Slide + Transição do Slide Transition active - + Transição ativada &Other Options - &Outras Opções + &Outras Opções Preview - + Pré-Visualização All Files - Todos os Arquivos + Todos os Arquivos Select Image - Selecionar Imagem + Selecionar Imagem First color: - + Primeira cor: Second color: - + Segunda cor: @@ -1869,13 +1550,13 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - - Error Occured + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + Error Occurred @@ -1884,17 +1565,17 @@ This General Public License does not permit incorporating your program into prop General - Geral + Geral Monitors - Monitores + Monitores Select monitor for output display: - Selecione um monitor para exibição: + Selecione um monitor para exibição: @@ -1904,27 +1585,27 @@ This General Public License does not permit incorporating your program into prop Application Startup - Inicialização da Aplicação + Inicialização da Aplicação Show blank screen warning - Exibir alerta de tela em branco + Exibir alerta de tela em branco Automatically open the last service - Abrir o último culto automaticamente + Abrir a última Lista de Exibição automaticamente Show the splash screen - Exibir a tela inicial + Exibir a tela inicial Application Settings - Configurações da Aplicação + Configurações da Aplicação @@ -1934,7 +1615,7 @@ This General Public License does not permit incorporating your program into prop Automatically preview next item in service - Pré-visualizar automaticamente o próximo item na Lista de Exibição + Pré-visualizar automaticamente o próximo item na Lista de Exibição @@ -1949,7 +1630,7 @@ This General Public License does not permit incorporating your program into prop CCLI Details - Detalhes de CCLI + Detalhes de CCLI @@ -1964,7 +1645,7 @@ This General Public License does not permit incorporating your program into prop SongSelect password: - Senha do SongSelect: + Senha do SongSelect: @@ -1974,22 +1655,22 @@ This General Public License does not permit incorporating your program into prop X - + X Y - + Y Height - Altura + Altura Width - + Largura @@ -1999,213 +1680,208 @@ This General Public License does not permit incorporating your program into prop Screen - Tela + Tela primary - principal + principal OpenLP.LanguageManager - + Language - Idioma + Idioma - + Please restart OpenLP to use your new language setting. - Por favor reinicie o OpenLP para usar a nova configuração de idioma. + Por favor reinicie o OpenLP para usar a nova configuração de idioma. OpenLP.MainWindow - - - New Service - Novo Culto - - - - Open Service - - - - - Save Service - Salvar Culto - OpenLP 2.0 - OpenLP 2.0 - - - - AddHereYourLanguageName - + OpenLP 2.0 &File - &Arquivo + &Arquivo &Import - &Importar + &Importar &Export - &Exportar + &Exportar &View - &Visualizar + &Visualizar M&ode - M&odo + M&odo &Tools - &Ferramentas + &Ferramentas &Settings - &Configurações + &Configurações &Language - &Idioma + &Idioma &Help - &Ajuda + &Ajuda Media Manager - Gerenciador de Mídia + Gerenciador de Mídia Service Manager - Gerenciador de Culto + Gerenciador de Lista de Exibição Theme Manager - Gerenciador de Temas + Gerenciador de Temas &New - &Novo + &Novo + + + + New Service + Novo Culto Create a new service. - + Criar uma nova Lista de Exibição. Ctrl+N - Ctrl+N + Ctrl+N &Open - &Abrir + &Abrir + + + + Open Service + Abrir Lista de Exibição Open an existing service. - + Abrir uma Lista de Exibição existente. Ctrl+O - Ctrl+O + Ctrl+O &Save - &Salvar + &Salvar + + + + Save Service + Salvar Lista de Exibição Save the current service to disk. - + Salvar a Lista de Exibição no disco. Ctrl+S - Ctrl+S + Ctrl+S Save &As... - Salvar &Como... + Salvar &Como... Save Service As - Salvar Culto Como + Salvar Lista de Exibição Como Save the current service under a new name. - + Salvar a Lista de Exibição atual com um novo nome. Ctrl+Shift+S - + Ctrl+Shift+S E&xit - S&air + S&air Quit OpenLP - Fechar o OpenLP + Fechar o OpenLP Alt+F4 - Alt+F4 + Alt+F4 &Theme - &Tema + &Tema &Configure OpenLP... - &Configurar o OpenLP... + &Configurar o OpenLP... &Media Manager - &Gerenciador de Mídia + &Gerenciador de Mídia Toggle Media Manager - Alternar Gerenciador de Mídia + Alternar Gerenciador de Mídia @@ -2215,37 +1891,37 @@ This General Public License does not permit incorporating your program into prop F8 - F8 + F8 &Theme Manager - &Gerenciador de Temas + &Gerenciador de Temas Toggle Theme Manager - Alternar para Gerenciamento de Temas + Alternar para Gerenciamento de Temas Toggle the visibility of the theme manager. - Alternar a visibilidade do Gerenciador de Temas. + Alternar a visibilidade do Gerenciador de Temas. F10 - F10 + F10 &Service Manager - &Gerenciador de Culto + &Gerenciador de Lista de Exibição Toggle Service Manager - Alternar para o Gerenciador de Cultos + Alternar para o Gerenciador de Lista de Exibição @@ -2255,17 +1931,17 @@ This General Public License does not permit incorporating your program into prop F9 - F9 + F9 &Preview Panel - &Painel de Pré-Visualização + &Painel de Pré-Visualização Toggle Preview Panel - Alternar para Painel de Pré-Visualização + Alternar para Painel de Pré-Visualização @@ -2275,7 +1951,7 @@ This General Public License does not permit incorporating your program into prop F11 - F11 + F11 @@ -2295,82 +1971,82 @@ This General Public License does not permit incorporating your program into prop F12 - F12 + F12 &Plugin List - &Lista de Plugin + &Lista de Plugins List the Plugins - Listar os Plugins + Listar os Plugins Alt+F7 - Alt+F7 + Alt+F7 &User Guide - &Guia do Usuário + &Guia do Usuário &About - &Sobre + &Sobre More information about OpenLP - Mais informações sobre o OpenLP + Mais informações sobre o OpenLP Ctrl+F1 - Ctrl+F1 + Ctrl+F1 &Online Help - &Ajuda Online + &Ajuda Online &Web Site - &Web Site + &Web Site &Auto Detect - + &Auto-detectar Use the system language, if available. - Usar o idioma do sistema, caso disponível. + Usar o idioma do sistema, caso disponível. Set the interface language to %s - Definir o idioma da interface como %s + Definir o idioma da interface como %s Add &Tool... - + Adicionar &Ferramenta... Add an application to the list of tools. - + Adicionar uma aplicação à lista de ferramentas. &Default - + &Padrão @@ -2380,7 +2056,7 @@ This General Public License does not permit incorporating your program into prop &Setup - + &Configurar @@ -2390,7 +2066,7 @@ This General Public License does not permit incorporating your program into prop &Live - &Ao Vivo + &Ao Vivo @@ -2407,118 +2083,194 @@ You can download the latest version from http://openlp.org/. OpenLP Version Updated - Versão do OpenLP Atualizada + Versão do OpenLP Atualizada - + OpenLP Main Display Blanked - Tela Principal do OpenLP em Branco + Tela Principal do OpenLP em Branco - + The Main Display has been blanked out - A Tela Principal foi apagada + A Tela Principal foi apagada - + Save Changes to Service? - Salvar Mudanças no Culto? + Salvar Mudanças na Lista de Exibição? - + Your service has changed. Do you want to save those changes? - + A sua Lista de Exibição teve mudanças. Você deseja salvá-la? - + Default Theme: %s - Tema padrão: %s + Tema padrão: %s - + English - Inglês + Please add the name of your language here + Português OpenLP.MediaManagerItem - + No Items Selected - + Nenhum Item Selecionado - + + Import %s + Importar %s + + + + Import a %s + Importar um %s + + + + Load %s + Carregar %s + + + + Load a new %s + Carregar um novo %s + + + + New %s + Novo %s + + + + Add a new %s + Adicionar um novo %s + + + + Edit %s + Editar %s + + + + Edit the selected %s + Editar o %s selecionado + + + + Delete %s + Deletar %s + + + + Delete the selected item + Deletar o item selecionado + + + + Preview %s + Pré-visualizar %s + + + + Preview the selected item + Pré-Visualizar o item selecionado + + + + Send the selected item live + Enviar o item selecionado para o ao vivo + + + + Add %s to Service + Adicionar %s à Lista de Exibição + + + + Add the selected item(s) to the service + Adicionar o item selecionado à Lista de Exibição + + + &Edit %s - + &Editar %s - + &Delete %s - &Deletar %s + &Deletar %s - + &Preview %s - + &Pré-visualizar %s - + &Show Live - &Mostrar Ao Vivo + &Mostrar Projeção - + &Add to Service - &Adicionar ao Culto + &Adicionar à Lista de Exibição - + &Add to selected Service Item - + &Adicionar à Lista de Exibição selecionada - + You must select one or more items to preview. - + Você precisa selecionar um ou mais itens para pré-visualizar. - + You must select one or more items to send live. - + You must select one or more items. - Você precisa selecionar um ou mais itens. + Você precisa selecionar um ou mais itens. - + No items selected - + You must select one or more items - Você precisa selecionar um ou mais itens + Você precisa selecionar um ou mais itens - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2528,52 +2280,52 @@ You can download the latest version from http://openlp.org/. Plugin List - Lista de Plugins + Lista de Plugins Plugin Details - Detalhes do Plugin + Detalhes do Plugin Version: - Versão: + Versão: About: - Sobre: + Sobre: Status: - Status: + Status: Active - Ativo + Ativo Inactive - Inativo + Inativo - + %s (Inactive) - %s (Inativo) + %s (Inativo) - + %s (Active) - + %s (Ativo) - + %s (Disabled) - + %s (Desabilitado) @@ -2581,22 +2333,22 @@ You can download the latest version from http://openlp.org/. Reorder Service Item - + Reordenar Item da Lista de Exibição Up - + Para Cima Delete - Deletar + Deletar Down - + Para Baixo @@ -2604,179 +2356,184 @@ You can download the latest version from http://openlp.org/. New Service - Novo Culto + Nova Lista de Exibição Create a new service - Criar um novo culto + Criar uma nova Lista de Exibição - + Open Service - + Abrir Lista de Exibição Load an existing service - Carregar um culto existente + Carregar uma Lista de Exibição existente - + Save Service - Salvar Culto + Salvar Lista de Exibição Save this service - Salvar este culto + Salvar esta Lista de Exibição Theme: - Tema: + Tema: Select a theme for the service - Selecione um tema para o culto + Selecione um tema para a Lista de Exibição Move to &top - + Mover para o &topo Move item to the top of the service. - + Mover item para o topo da Lista de Exibição. Move &up - + Mover para &cima Move item up one position in the service. - Mover o ítem uma posição acima no culto. + Mover item uma posição acima na Lista de Exibição. Move &down - + Mover para &baixo Move item down one position in the service. - + Mover item uma posição abaixo na Lista de Exibição. Move to &bottom - + Mover para o &final Move item to the end of the service. - + Mover item para o final da Lista de Exibição. &Delete From Service - + &Deletar da Lista de Exibição Delete the selected item from the service. - + Deletar o item selecionado da Lista de Exibição. &Add New Item - + &Adicionar um Novo Item &Add to Selected Item - + &Adicionar ao Item Selecionado &Edit Item - &Editar Item + &Editar Item &Reorder Item - + &Reordenar Item &Notes - &Notas + &Notas &Preview Verse - &Pré-Visualizar Versículo + &Pré-Visualizar Versículo &Live Verse - &Versículo Ao Vivo + &Versículo na Projeção &Change Item Theme - &Alterar Tema do Item + &Alterar Tema do Item - + Save Changes to Service? - Salvar Mudanças no Culto? + Salvar Mudanças na Lista de Exibição? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - Arquivo de Culto do OpenLP (*.osz) + Arquivo de Lista de Exibição do OpenLP (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error - Erro + Erro - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + + OpenLP.ServiceNoteForm @@ -2791,7 +2548,7 @@ The content encoding is not UTF-8. Configure OpenLP - Configurar o OpenLP + Configurar o OpenLP @@ -2799,22 +2556,22 @@ The content encoding is not UTF-8. Live - Ao Vivo + Projeção Preview - + Pré-Visualização Move to previous - Mover para o anterior + Mover para o anterior Move to next - Mover para o próximo + Mover para o próximo @@ -2822,70 +2579,55 @@ The content encoding is not UTF-8. - - Blank Screen - Tela em Branco - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live - Mover para ao vivo + Mover para projeção - - Edit and re-preview song + + Start continuous loop + Iniciar repetição contínua + + + + Stop continuous loop + Parar repetição contínua + + + + s + s + + + + Delay between slides in seconds + Intervalo entre slides em segundos + + + + Start playing media + Iniciar a reprodução de mídia + + + + Go To - - Start continuous loop - Iniciar repetição contínua - - - - Stop continuous loop - Parar repetição contínua - - - - s - s - - - - Delay between slides in seconds - Intervalo entre slides em segundos - - - - Start playing media - Iniciar a reprodução de mídia - - - - Go To + + Edit and reload song preview OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -2895,17 +2637,17 @@ The content encoding is not UTF-8. New Theme - Novo Tema + Novo Tema Create a new theme. - Criar um novo tema. + Criar um novo tema. Edit Theme - Editar Tema + Editar Tema @@ -2915,7 +2657,7 @@ The content encoding is not UTF-8. Delete Theme - Deletar Tema + Deletar Tema @@ -2925,7 +2667,7 @@ The content encoding is not UTF-8. Import Theme - Importar Tema + Importar Tema @@ -2935,7 +2677,7 @@ The content encoding is not UTF-8. Export Theme - Exportar Tema + Exportar Tema @@ -2950,7 +2692,7 @@ The content encoding is not UTF-8. &Delete Theme - &Apagar Tema + &Apagar Tema @@ -2990,32 +2732,22 @@ The content encoding is not UTF-8. Error - Erro + Erro You are unable to delete the default theme. - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - - You have not selected a theme. - Você não selecionou um tema. + Você não selecionou um tema. Save Theme - (%s) - Salvar Tema - (%s) + Salvar Tema - (%s) @@ -3035,12 +2767,12 @@ The content encoding is not UTF-8. Your theme could not be exported due to an error. - O tema não pôde ser exportado devido a um erro. + O tema não pôde ser exportado devido a um erro. Select Theme Import File - Selecionar Arquivo de Importação de Tema + Selecionar Arquivo de Importação de Tema @@ -3051,31 +2783,41 @@ The content encoding is not UTF-8. File is not a valid theme. The content encoding is not UTF-8. - O arquivo não é um tema válido. + O arquivo não é um tema válido. A codificação do conteúdo não é UTF-8. File is not a valid theme. - O arquivo não é um tema válido. + O arquivo não é um tema válido. Theme Exists - Tema Existe + Tema Existe A theme with this name already exists. Would you like to overwrite it? + + + Theme %s is used in the %s plugin. + + + + + Theme %s is used by the service manager. + + OpenLP.ThemesTab Themes - Temas + Temas @@ -3090,12 +2832,12 @@ A codificação do conteúdo não é UTF-8. S&ong Level - Nível de &Música + Nível de &Música 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. - Use o tema de cada música na base de dados. Se uma música não tiver um tema associado com ela, então use o tema do culto. Se o culto não tiver um tema, então use o tema global. + Use o tema de cada música na base de dados. Se uma música não tiver um tema associado com ela, então use o tema do culto. Se o culto não tiver um tema, então use o tema global. @@ -3105,7 +2847,7 @@ A codificação do conteúdo não é UTF-8. 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. - Usar o tema do culto, sobrescrevendo qualquer um dos temas individuais das músicas. Se o culto não tiver um tema, então use o tema global. + Usar o tema da lista de exibição, sobrescrevendo qualquer um dos temas individuais das músicas. Se a lista de exibição não tiver um tema, então use o tema global. @@ -3115,7 +2857,7 @@ A codificação do conteúdo não é UTF-8. Use the global theme, overriding any themes associated with either the service or the songs. - Usar o tema global, sobrescrevendo qualquer tema associado com cultos ou músicas. + Usar o tema global, sobrescrevendo qualquer tema associado às lista de exibição ou músicas. @@ -3125,106 +2867,51 @@ A codificação do conteúdo não é UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - Apresentação - - - - Presentations - Apresentações - - - - Load - - - - - Load a new Presentation - - - - - Delete - Deletar - - - - Delete the selected Presentation - - - - - Preview - - - - - Preview the selected Presentation - - - - - Live - Ao Vivo - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - - Select Presentation(s) - Selecionar Apresentação(ões) + + Presentation + Apresentação - + + Select Presentation(s) + Selecionar Apresentação(ões) + + + Automatic - + Present using: - Apresentar usando: + Apresentar usando: - + File Exists - + A presentation with that filename already exists. - Uma apresentação com este nome já existe. + Já existe uma apresentação com este nome. - + Unsupported File - + This type of presentation is not supported. - + You must select an item to delete. @@ -3234,17 +2921,17 @@ A codificação do conteúdo não é UTF-8. Presentations - Apresentações + Apresentações Available Controllers - Controladores Disponíveis + Controladores Disponíveis Advanced - Avançado + Avançado @@ -3259,23 +2946,13 @@ A codificação do conteúdo não é UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - Remoto - RemotePlugin.RemoteTab Remotes - Remoto + Remoto @@ -3335,11 +3012,6 @@ A codificação do conteúdo não é UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3369,22 +3041,22 @@ A codificação do conteúdo não é UTF-8. Select Date Range - Selecionar Faixa de Datas + Selecionar Faixa de Datas to - para + para Report Location - Localização do Relatório + Localização do Relatório Output File Location - Local do arquivo de saída + Local do arquivo de saída @@ -3404,118 +3076,48 @@ A codificação do conteúdo não é UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - Música - - - - Songs - Músicas - - - - Add - Adicionar - - - - Add a new Song - - - - - Edit - Editar - - - - Edit the selected Song - - - - - Delete - Deletar - - - - Delete the selected Song - - - - - Preview - - - - - Preview the selected Song - - - - - Live - Ao Vivo - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm Author Maintenance - Manutenção de Autores + Manutenção de Autores Display name: - Nome da Tela: + Nome da Tela: First name: - Primeiro Nome: + Primeiro Nome: Last name: - Sobrenome: + Sobrenome: Error - Erro + Erro You need to type in the first name of the author. - Você precisa digitar o primeiro nome do autor. + Você precisa digitar o primeiro nome do autor. You need to type in the last name of the author. - Você precisa digitar o sobrenome do autor. + Você precisa digitar o sobrenome do autor. - You have not set a display name for the author, would you like me to combine the first and last names for you? - Você não configurou um nome de exibição para o autor. Você quer que eu combine o primeiro e último nomes para você? + You have not set a display name for the author, combine the first and last names? + @@ -3523,17 +3125,17 @@ A codificação do conteúdo não é UTF-8. Song Editor - Editor de Músicas + Editor de Músicas &Title: - &Título: + &Título: Alt&ernate title: - Título &Alternativo: + Título &Alternativo: @@ -3543,17 +3145,17 @@ A codificação do conteúdo não é UTF-8. &Verse order: - Ordem das &estrofes: + Ordem das &estrofes: &Add - %Adicionar + %Adicionar &Edit - &Editar + &Editar @@ -3563,27 +3165,27 @@ A codificação do conteúdo não é UTF-8. &Delete - &Deletar + &Deletar Title && Lyrics - Título && Letras + Título && Letras Authors - Autores + Autores &Add to Song - &Adicionar à Música + &Adicionar à Música &Remove - &Remover + &Remover @@ -3598,22 +3200,22 @@ A codificação do conteúdo não é UTF-8. A&dd to Song - A&dicionar uma Música + A&dicionar uma Música R&emove - R&emover + R&emover Song Book - Livro de Músicas + Livro de Músicas Book: - Livro: + Livro: @@ -3628,7 +3230,7 @@ A codificação do conteúdo não é UTF-8. Theme - Tema + Tema @@ -3638,7 +3240,7 @@ A codificação do conteúdo não é UTF-8. Copyright Information - Informação de Direitos Autorais + Informação de Direitos Autorais @@ -3653,32 +3255,32 @@ A codificação do conteúdo não é UTF-8. Comments - Comentários + Comentários Theme, Copyright Info && Comments - Tema, Direitos Autorais && Comentários + Tema, Direitos Autorais && Comentários Save && Preview - Salvar && Pré-Visualizar + Salvar && Pré-Visualizar Add Author - Adicionar Autor + Adicionar Autor This author does not exist, do you want to add them? - Este autor não existe, deseja adicioná-lo? + Este autor não existe, deseja adicioná-lo? Error - Erro + Erro @@ -3703,12 +3305,12 @@ A codificação do conteúdo não é UTF-8. This topic does not exist, do you want to add it? - Este tópico não existe, deseja adicioná-lo? + Este tópico não existe, deseja adicioná-lo? This topic is already in the list. - Este tópico já está na lista. + Este tópico já está na lista. @@ -3718,7 +3320,7 @@ A codificação do conteúdo não é UTF-8. You have not selected a valid topic. Either select a topic from the list, or type in a new topic and click the "Add Topic to Song" button to add the new topic. - Não há nenhum tópico válido selecionado. Selecione um tópico da lista, ou digite um novo tópico e clique em "Adicionar Tópico à Música" para adicionar o novo tópico. + Não há nenhum tópico válido selecionado. Selecione um tópico da lista ou digite um novo tópico e clique em "Adicionar Tópico à Música" para adicionar o novo tópico. @@ -3738,7 +3340,7 @@ A codificação do conteúdo não é UTF-8. You have not added any authors for this song. Do you want to add an author now? - Você não adicionou nenhum autor a esta música. Deseja adicionar um agora? + Você não adicionou nenhum autor a esta música. Deseja adicionar um autor agora? @@ -3758,7 +3360,7 @@ A codificação do conteúdo não é UTF-8. This song book does not exist, do you want to add it? - Este hinário não existe, deseja adicioná-lo? + Este hinário não existe, deseja adicioná-lo? @@ -3766,12 +3368,12 @@ A codificação do conteúdo não é UTF-8. Edit Verse - Editar Versículo + Editar Versículo &Verse type: - Tipo de &Versículo: + Tipo de &Versículo: @@ -3782,327 +3384,362 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - Você precisa adicionar ao menos um arquivo CCLI para importação. + Você precisa adicionar ao menos um arquivo CCLI para importação. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Iniciando importação... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Selecionar Origem da Importação - + Select the import format, and where to import from. - Selecione o formato e de onde será a importação + Selecione o formato, e de onde importar. - + Format: Formato: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + Add Files... - + Remove File(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + Importing Importando - + Please wait while your songs are imported. - Por favor aguarde enquanto as músicas são importadas. + - + Ready. Pronto. - + %p% - + Importing "%s"... - + Importing %s... + + + No EasyWorship Song Database Selected + + + + + You need to select an EasyWorship song database file to import from. + + + + + Select EasyWorship Database File + + + + + EasyWorship + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + + Administered by %s + + SongsPlugin.MediaItem - + + Song + + + + Song Maintenance - Manutenção de Músicas + Gerenciamento de Músicas - + Maintain the lists of authors, topics and books - Gerenciar as listas de autores, tópicos e livros - - - - Search: - Buscar: + + Search: + + + + Type: Tipo: - + Clear Limpar - + Search - Buscar - - - - Titles - Títulos + Pesquisar - Lyrics - Letras + Titles + + Lyrics + + + + Authors Autores - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: - Licença CCLI: + @@ -4136,12 +3773,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4149,12 +3786,12 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.SongImportForm - + Finished import. Importação Finalizada. - + Your song import failed. @@ -4164,7 +3801,7 @@ A codificação do conteúdo não é UTF-8. Song Maintenance - Manutenção de Músicas + Gerenciamento de Músicas @@ -4174,7 +3811,7 @@ A codificação do conteúdo não é UTF-8. Topics - Tópicos + @@ -4214,7 +3851,7 @@ A codificação do conteúdo não é UTF-8. Could not add your topic. - Não foi possível adicionar o seu tópico. + @@ -4224,7 +3861,7 @@ A codificação do conteúdo não é UTF-8. Could not add your book. - Não foi possível adicionar o livro. + @@ -4236,25 +3873,20 @@ A codificação do conteúdo não é UTF-8. Could not save your changes. - - - Could not save your modified author, because he already exists. - Não foi possível salvar o seu autor modificado, porque ele já existe. - Could not save your modified topic, because it already exists. - Não foi possível salvar o tópico modificado, porque ele já existe. + Delete Author - Deletar Autor + Are you sure you want to delete the selected author? - Você tem certeza que deseja deletar o autor selecionado? + @@ -4264,37 +3896,37 @@ A codificação do conteúdo não é UTF-8. No author selected! - Nenhum autor selecionado! + Delete Topic - Deletar Tópico + Are you sure you want to delete the selected topic? - Você tem certeza que deseja deletar o tópico selecionado? + This topic cannot be deleted, it is currently assigned to at least one song. - Este tópico não pode ser removido, pois está associado a pelo menos uma música. + No topic selected! - Nenhum tópico selecionado! + Delete Book - Deletar Livro + Apagar Livro Are you sure you want to delete the selected book? - Você tem certeza que deseja deletar o livro selecionado? + @@ -4304,7 +3936,12 @@ A codificação do conteúdo não é UTF-8. No book selected! - Nenhum livro selecionado! + + + + + Could not save your modified author, because the author already exists. + @@ -4312,12 +3949,12 @@ A codificação do conteúdo não é UTF-8. Songs - Músicas + Songs Mode - Modo de Músicas + @@ -4335,12 +3972,12 @@ A codificação do conteúdo não é UTF-8. Topic Maintenance - Manutenção de Tópico + Topic name: - Nome do tópico: + @@ -4349,8 +3986,8 @@ A codificação do conteúdo não é UTF-8. - You need to type in a topic name! - Você precisa digitar um nome para o tópico! + You need to type in a topic name. + @@ -4358,37 +3995,37 @@ A codificação do conteúdo não é UTF-8. Verse - Versículo + Chorus - Refrão + Bridge - Ligação + Pre-Chorus - Pré-Refrão + Intro - Introdução + Ending - Terminando + Other - Outro + diff --git a/resources/i18n/sv.ts b/resources/i18n/sv.ts index 701f2e3f0..be456b31b 100644 --- a/resources/i18n/sv.ts +++ b/resources/i18n/sv.ts @@ -17,16 +17,6 @@ <strong>Alerts Plugin</strong><br />The alert plugin controls the displaying of nursery alerts on the display screen - - - Alert - - - - - Alerts - Alarm - AlertsPlugin.AlertForm @@ -172,6 +162,19 @@ + + BiblePlugin.MediaItem + + + Error + + + + + You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search? + + + BiblesPlugin @@ -184,86 +187,6 @@ <strong>Bible Plugin</strong><br />The Bible plugin provides the ability to display bible verses from different sources during the service. - - - Bible - Bibel - - - - Bibles - Biblar - - - - Import - Importera - - - - Import a Bible - - - - - Add - Lägg till - - - - Add a new Bible - - - - - Edit - Redigera - - - - Edit the selected Bible - - - - - Delete - Ta bort - - - - Delete the selected Bible - - - - - Preview - Förhandsgranska - - - - Preview the selected Bible - - - - - Live - Live - - - - Send the selected Bible live - - - - - Service - - - - - Add the selected Bible to the service - - BiblesPlugin.BibleDB @@ -287,7 +210,7 @@ - Your scripture reference is either not supported by OpenLP or invalid. Please make sure your reference conforms to one of the following patterns: + Your scripture reference is either not supported by OpenLP or is invalid. Please make sure your reference conforms to one of the following patterns: Book Chapter Book Chapter-Chapter @@ -586,42 +509,32 @@ Changes do not affect verses already in the service. Du måste ange ett versionsnamn för din Bibel. - + Empty Copyright Tom copyright-information - - You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such. - Du måste infoga copyright-information för din Bibel! Biblar i den publika domänen måste innehålla det. - - - + Bible Exists Bibel existerar - - This Bible already exists! Please import a different Bible or first delete the existing one. - Bibeln existerar redan! Importera en annan BIbel eller ta bort den som finns. - - - + Open OSIS File - + Open Books CSV File - + Open Verses CSV File - + Open OpenSong Bible Öppna OpenSong Bibel @@ -631,120 +544,130 @@ Changes do not affect verses already in the service. Påbörjar import... - + Finished import. Importen är färdig. - + Your Bible import failed. Din Bibelimport misslyckades. + + + You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such. + + + + + This Bible already exists. Please import a different Bible or first delete the existing one. + + BiblesPlugin.MediaItem - + + Bible + Bibel + + + Quick Snabb - + Advanced Avancerat - + Version: Version: - + Dual: Dubbel: - + Search type: - + Find: Hitta: - + Search Sök - + Results: Resultat: - + Book: Bok: - + Chapter: Kapitel: - + Verse: Vers: - + From: Från: - + To: Till: - + Verse Search Sök vers - + Text Search Textsökning - + Clear - + Keep Behåll - + No Book Found Ingen bok hittades - + No matching book could be found in this Bible. Ingen matchande bok kunde hittas i den här Bibeln. - - etc - - - - + Bible not fully loaded. @@ -761,7 +684,7 @@ Changes do not affect verses already in the service. CustomPlugin - <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way Customs are. This plugin provides greater freedom over the Customs plugin. + <strong>Custom Plugin</strong><br />The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin. @@ -914,106 +837,18 @@ Changes do not affect verses already in the service. CustomPlugin.MediaItem - - You haven't selected an item to edit. - - - - - You haven't selected an item to delete. - - - - - CustomsPlugin - - + Custom - - Customs + + You haven't selected an item to edit. - - Import - Importera - - - - Import a Custom - - - - - Load - - - - - Load a new Custom - - - - - Add - Lägg till - - - - Add a new Custom - - - - - Edit - Redigera - - - - Edit the selected Custom - - - - - Delete - Ta bort - - - - Delete the selected Custom - - - - - Preview - Förhandsgranska - - - - Preview the selected Custom - - - - - Live - Live - - - - Send the selected Custom live - - - - - Service - - - - - Add the selected Custom to the service + + You haven't selected an item to delete. @@ -1021,134 +856,59 @@ Changes do not affect verses already in the service. ImagePlugin - <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like Images with the selected image as a background instead of the background provided by the theme. - - - - - Image - Bild - - - - Images - Bilder - - - - Load - - - - - Load a new Image - - - - - Add - Lägg till - - - - Add a new Image - - - - - Edit - Redigera - - - - Edit the selected Image - - - - - Delete - Ta bort - - - - Delete the selected Image - - - - - Preview - Förhandsgranska - - - - Preview the selected Image - - - - - Live - Live - - - - Send the selected Image live - - - - - Service - - - - - Add the selected Image to the service + <strong>Image Plugin</strong><br />The image plugin provides displaying of images.<br />One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP's "timed looping" feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme's background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme. ImagePlugin.MediaItem - + + Image + Bild + + + Select Image(s) Välj bild(er) - + All Files - + Replace Live Background - + Replace Background - + Reset Live Background - + You must select an image to delete. - + Image(s) Bilder - + You must select an image to replace the background with. - + You must select a media file to replace the background with. @@ -1160,111 +920,31 @@ Changes do not affect verses already in the service. <strong>Media Plugin</strong><br />The media plugin provides playback of audio and video. - - - Media - Media - - - - Medias - - - - - Load - - - - - Load a new Media - - - - - Add - Lägg till - - - - Add a new Media - - - - - Edit - Redigera - - - - Edit the selected Media - - - - - Delete - Ta bort - - - - Delete the selected Media - - - - - Preview - Förhandsgranska - - - - Preview the selected Media - - - - - Live - Live - - - - Send the selected Media live - - - - - Service - - - - - Add the selected Media to the service - - MediaPlugin.MediaItem - - Select Media - Välj media - - - - Replace Live Background - - - - - Replace Background - - - - + Media Media - + + Select Media + Välj media + + + + Replace Live Background + + + + + Replace Background + + + + You must select a media file to delete. @@ -1272,7 +952,7 @@ Changes do not affect verses already in the service. OpenLP - + Image Files @@ -1832,13 +1512,13 @@ This General Public License does not permit incorporating your program into prop OpenLP.ExceptionDialog - - Error Occured + + Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. - - Oops! OpenLP hit a problem, and couldn't recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred. + + Error Occurred @@ -1973,43 +1653,23 @@ This General Public License does not permit incorporating your program into prop OpenLP.LanguageManager - + Language - + Please restart OpenLP to use your new language setting. OpenLP.MainWindow - - - New Service - - - - - Open Service - - - - - Save Service - - OpenLP 2.0 OpenLP 2.0 - - - AddHereYourLanguageName - - &File @@ -2075,6 +1735,11 @@ This General Public License does not permit incorporating your program into prop &New &Ny + + + New Service + + Create a new service. @@ -2090,6 +1755,11 @@ This General Public License does not permit incorporating your program into prop &Open &Öppna + + + Open Service + + Open an existing service. @@ -2105,6 +1775,11 @@ This General Public License does not permit incorporating your program into prop &Save &Spara + + + Save Service + + Save the current service to disk. @@ -2373,115 +2048,191 @@ You can download the latest version from http://openlp.org/. OpenLP-version uppdaterad - + OpenLP Main Display Blanked OpenLP huvuddisplay tömd - + The Main Display has been blanked out Huvuddisplayen har rensats - + Save Changes to Service? - + Your service has changed. Do you want to save those changes? - + Default Theme: %s - + English + Please add the name of your language here Engelska OpenLP.MediaManagerItem - + No Items Selected - + + Import %s + + + + + Import a %s + + + + + Load %s + + + + + Load a new %s + + + + + New %s + + + + + Add a new %s + + + + + Edit %s + + + + + Edit the selected %s + + + + + Delete %s + + + + + Delete the selected item + Ta bort det valda objektet + + + + Preview %s + + + + + Preview the selected item + Förhandsgranska det valda objektet + + + + Send the selected item live + Skicka det valda objektet till live + + + + Add %s to Service + + + + + Add the selected item(s) to the service + Lägg till valda objekt till planeringen + + + &Edit %s - + &Delete %s - + &Preview %s - + &Show Live &Visa Live - + &Add to Service &Lägg till i mötesplanering - + &Add to selected Service Item - + You must select one or more items to preview. - + You must select one or more items to send live. - + You must select one or more items. - + No items selected - + You must select one or more items Du måste välja ett eller flera objekt - + No Service Item Selected - + You must select an existing service item to add to. - + Invalid Service Item - + You must select a %s service item. @@ -2524,17 +2275,17 @@ You can download the latest version from http://openlp.org/. Inaktiv - + %s (Inactive) - + %s (Active) - + %s (Disabled) @@ -2575,7 +2326,7 @@ You can download the latest version from http://openlp.org/. Skapa en ny mötesplanering - + Open Service @@ -2585,7 +2336,7 @@ You can download the latest version from http://openlp.org/. Ladda en planering - + Save Service @@ -2695,51 +2446,56 @@ You can download the latest version from http://openlp.org/. &Byt objektets tema - + Save Changes to Service? - + Your service is unsaved, do you want to save those changes before creating a new one? - + OpenLP Service Files (*.osz) - + Your current service is unsaved, do you want to save the changes before opening a new one? - + Error Fel - + File is not a valid service. The content encoding is not UTF-8. - + File is not a valid service. - + Missing Display Handler - + Your item cannot be displayed as there is no handler to display it + + + Your item cannot be displayed as the plugin required to display it is missing or inactive + + OpenLP.ServiceNoteForm @@ -2785,70 +2541,55 @@ The content encoding is not UTF-8. - - Blank Screen - Töm skärm - - - - Blank to Theme - - - - - Show Desktop - - - - + Move to live Flytta till live - - Edit and re-preview song - - - - + Start continuous loop Börja oändlig loop - + Stop continuous loop Stoppa upprepad loop - + s s - + Delay between slides in seconds Fördröjning mellan bilder, i sekunder - + Start playing media Börja spela media - + Go To + + + Edit and reload song preview + + OpenLP.SpellTextEdit - + Spelling Suggestions - + Formatting Tags @@ -2960,16 +2701,6 @@ The content encoding is not UTF-8. You are unable to delete the default theme. Du kan inte ta bort standardtemat. - - - Theme %s is use in %s plugin. - - - - - Theme %s is use by the service manager. - - You have not selected a theme. @@ -3031,6 +2762,16 @@ The content encoding is not UTF-8. A theme with this name already exists. Would you like to overwrite it? + + + Theme %s is used in the %s plugin. + + + + + Theme %s is used by the service manager. + + OpenLP.ThemesTab @@ -3087,106 +2828,51 @@ The content encoding is not UTF-8. <strong>Presentation Plugin</strong><br />The presentation plugin provides 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. - - - Presentation - Presentation - - - - Presentations - Presentationer - - - - Load - - - - - Load a new Presentation - - - - - Delete - Ta bort - - - - Delete the selected Presentation - - - - - Preview - Förhandsgranska - - - - Preview the selected Presentation - - - - - Live - Live - - - - Send the selected Presentation live - - - - - Service - - - - - Add the selected Presentation to the service - - PresentationPlugin.MediaItem - + + Presentation + Presentation + + + Select Presentation(s) Välj presentation(er) - + Automatic Automatisk - + Present using: Presentera genom: - + File Exists - + A presentation with that filename already exists. En presentation med det namnet finns redan. - + Unsupported File - + This type of presentation is not supported. - + You must select an item to delete. @@ -3221,16 +2907,6 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - - - Remote - - - - - Remotes - Fjärrstyrningar - RemotePlugin.RemoteTab @@ -3297,11 +2973,6 @@ The content encoding is not UTF-8. <strong>SongUsage Plugin</strong><br />This plugin tracks the usage of songs in services. - - - SongUsage - - SongUsagePlugin.SongUsageDeleteForm @@ -3366,76 +3037,6 @@ The content encoding is not UTF-8. <strong>Songs Plugin</strong><br />The songs plugin provides the ability to display and manage songs. - - - Song - Sång - - - - Songs - Sånger - - - - Add - Lägg till - - - - Add a new Song - - - - - Edit - Redigera - - - - Edit the selected Song - - - - - Delete - Ta bort - - - - Delete the selected Song - - - - - Preview - Förhandsgranska - - - - Preview the selected Song - - - - - Live - Live - - - - Send the selected Song live - - - - - Service - - - - - Add the selected Song to the service - - SongsPlugin.AuthorsForm @@ -3476,7 +3077,7 @@ The content encoding is not UTF-8. - You have not set a display name for the author, would you like me to combine the first and last names for you? + You have not set a display name for the author, combine the first and last names? @@ -3744,325 +3345,360 @@ The content encoding is not UTF-8. SongsPlugin.ImportWizardForm - + No OpenLP 2.0 Song Database Selected - + You need to select an OpenLP 2.0 song database file to import from. - + No openlp.org 1.x Song Database Selected - + You need to select an openlp.org 1.x song database file to import from. - - No OpenLyrics Files Selected - - - - - You need to add at least one OpenLyrics song file to import from. - - - - + No OpenSong Files Selected - + You need to add at least one OpenSong song file to import from. - + No Words of Worship Files Selected - + You need to add at least one Words of Worship file to import from. - + No CCLI Files Selected - + You need to add at least one CCLI file to import from. - + No Songs of Fellowship File Selected - + You need to add at least one Songs of Fellowship file to import from. - + No Document/Presentation Selected - + You need to add at least one document or presentation file to import from. - + Select OpenLP 2.0 Database File - + Select openlp.org 1.x Database File - - Select OpenLyrics Files - - - - + Select Open Song Files - + Select Words of Worship Files - + Select CCLI Files - + Select Songs of Fellowship Files - + Select Document/Presentation Files - + Starting import... Påbörjar import... - + Song Import Wizard - + Welcome to the Song Import Wizard - + This wizard will help you to import songs from a variety of formats. Click the next button below to start the process by selecting a format to import from. - + Select Import Source Välj importkälla - + Select the import format, and where to import from. Välj format för import, och plats att importera från. - + Format: Format: - + OpenLP 2.0 OpenLP 2.0 - + openlp.org 1.x - + OpenLyrics - + OpenSong OpenSong - + Words of Worship - + CCLI/SongSelect - + Songs of Fellowship - + Generic Document/Presentation - + Filename: - + Browse... - + + The openlp.org 1.x importer has been disabled due to a missing Python module. If you want to use this importer, you will need to install the "python-sqlite" module. + + + + Add Files... - + Remove File(s) - + + The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + + The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer. + + + + Importing Importerar - + Please wait while your songs are imported. - + Ready. Redo. - + %p% - + Importing "%s"... - + Importing %s... + + + No EasyWorship Song Database Selected + + + + + You need to select an EasyWorship song database file to import from. + + + + + Select EasyWorship Database File + + + + + EasyWorship + + + + + The OpenLyrics importer has not yet been developed, but as you can see, we are still intending to do so. Hopefully it will be in the next release. + + + + + Administered by %s + + SongsPlugin.MediaItem - + + Song + Sång + + + Song Maintenance Sångunderhåll - + Maintain the lists of authors, topics and books Hantera listorna över författare, ämnen och böcker - + Search: Sök: - + Type: Typ: - + Clear - + Search Sök - + Titles Titlar - + Lyrics Sångtexter - + Authors - + You must select an item to edit. - + You must select an item to delete. - + Are you sure you want to delete the selected song? - + Are you sure you want to delete the %d selected songs? - + Delete Song(s)? - + CCLI Licence: CCLI-licens: @@ -4098,12 +3734,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImport - + copyright - + © @@ -4111,12 +3747,12 @@ The content encoding is not UTF-8. SongsPlugin.SongImportForm - + Finished import. Importen är färdig. - + Your song import failed. @@ -4198,11 +3834,6 @@ The content encoding is not UTF-8. Could not save your changes. - - - Could not save your modified author, because he already exists. - - Could not save your modified topic, because it already exists. @@ -4268,6 +3899,11 @@ The content encoding is not UTF-8. No book selected! Ingen bok vald! + + + Could not save your modified author, because the author already exists. + + SongsPlugin.SongsTab @@ -4311,8 +3947,8 @@ The content encoding is not UTF-8. - You need to type in a topic name! - Du måste skriva in ett namn på ämnet! + You need to type in a topic name. + diff --git a/resources/openlp.desktop b/resources/openlp.desktop index 3c1b94d71..684119773 100755 --- a/resources/openlp.desktop +++ b/resources/openlp.desktop @@ -1,4 +1,3 @@ -#!/usr/bin/env xdg-open [Desktop Entry] Categories=AudioVideo; Comment[de]= From d249b2a326fa2e91d04ce8d651e6175e1b109045 Mon Sep 17 00:00:00 2001 From: rimach Date: Mon, 27 Sep 2010 20:17:39 +0200 Subject: [PATCH 31/95] changes for SongBeamer import --- openlp/plugins/songs/lib/songbeamerimport.py | 71 ++++++++++---------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 02c989d22..fcd3da076 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -28,12 +28,34 @@ The :mod:`songbeamerimport` module provides the functionality for importing SongBeamer songs into the OpenLP database. """ import os +import re import logging from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) +class SongBeamerTypes(object): + MarkTypes = { + u'Refrain': u'C', + u'Chorus': u'C', + u'Vers': u'V', + u'Verse': u'V', + u'Strophe': u'V', + u'Intro': u'I', + u'Coda': u'E', + u'Ending': u'E', + u'Bridge': u'B', + u'Interlude': u'B', + u'Zwischenspiel': u'B', + u'Pre-Chorus': u'P', + u'Pre-Refrain': u'P', + u'Pre-Bridge': u'O', + u'Pre-Coda': u'O', + u'Unbekannt': u'O', + u'Unknown': u'O' + } + class SongBeamerImport(SongImport): """ """ @@ -117,7 +139,7 @@ class SongBeamerImport(SongImport): elif tag_val[0] == '#Categories': pass elif tag_val[0] == '#CCLI': - pass + self.ccli_number = tag_val[1] elif tag_val[0] == '#Chords': pass elif tag_val[0] == '#ChurchSongID': @@ -125,7 +147,7 @@ class SongBeamerImport(SongImport): elif tag_val[0] == '#ColorChords': pass elif tag_val[0] == '#Comments': - pass + self.comments = tag_val[1] elif tag_val[0] == '#Editor': pass elif tag_val[0] == '#Font': @@ -162,9 +184,12 @@ class SongBeamerImport(SongImport): elif tag_val[0] == '#QuickFind': pass elif tag_val[0] == '#Rights': - pass + song_book_pub = tag_val[1] elif tag_val[0] == '#Songbook': - pass + book_num = tag_val[1].split(' / ') + self.song_book_name = book_num[0] + if len(book_num) == book_num[1]: + self.song_number = u'' elif tag_val[0] == '#Speed': pass elif tag_val[0] == '#TextAlign': @@ -195,34 +220,10 @@ class SongBeamerImport(SongImport): def check_verse_marks(self, line): - if line.startswith('Refrain') or \ - line.startswith('Chorus'): - self.current_verse_type = u'V' - elif line.startswith('Vers') or \ - line.startswith('Verse') or \ - line.startswith('Strophe'): - self.current_verse_type = u'V' - elif line.startswith('Intro'): - pass - elif line.startswith('Coda'): - pass - elif line.startswith('Ending'): - pass - elif line.startswith('Bridge'): - pass - elif line.startswith('Interlude'): - pass - elif line.startswith('Zwischenspiel'): - pass - elif line.startswith('Pre-Chorus'): - pass - elif line.startswith('Pre-Refrain'): - pass - elif line.startswith('Pre-Bridge'): - pass - elif line.startswith('Pre-Coda'): - pass - elif line.startswith('Unbekannt'): - pass - elif line.startswith('Unknown'): - pass + marks = line.split(' ') + if len(marks) <= 2 and \ + marks[0] in SongBeamerTypes.MarkTypes: + self.current_verse_type = SongBeamerTypes.MarkTypes[marks[0]] + if len(marks) == 2: + #TODO: may check, because of only digits are allowed + self.current_verse_type += marks[1] From 0872cefacf52e628667284e1cb0989e0511fe36d Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 28 Sep 2010 19:51:42 +0200 Subject: [PATCH 32/95] clean ups --- openlp/plugins/bibles/bibleplugin.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 7f69c6ff0..292342c8b 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -79,8 +79,7 @@ class BiblePlugin(Plugin): self.exportBibleItem = QtGui.QAction(export_menu) self.exportBibleItem.setObjectName(u'exportBibleItem') export_menu.addAction(self.exportBibleItem) - self.exportBibleItem.setText(translate( - 'BiblesPlugin', '&Bible')) + self.exportBibleItem.setText(translate('BiblesPlugin', '&Bible')) self.exportBibleItem.setVisible(False) def onBibleImportClick(self): @@ -96,7 +95,6 @@ class BiblePlugin(Plugin): def usesTheme(self, theme): """ Called to find out if the bible plugin is currently using a theme. - Returns True if the theme is being used, otherwise returns False. """ if self.settings_tab.bible_theme == theme: From 0f480a6dd500f7f12243c677de48fe260c1e724f Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 29 Sep 2010 17:48:45 +0100 Subject: [PATCH 33/95] Fix loading of service items bug Fixes: https://launchpad.net/bugs/651076 --- openlp/core/lib/serviceitem.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index e7ec9c2af..398606422 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -306,6 +306,7 @@ class ServiceItem(object): filename = os.path.join(path, text_image[u'title']) self.add_from_command( path, text_image[u'title'], text_image[u'image'] ) + self._new_item() def merge(self, other): """ From 345a94381afdbee22599f89e2999b2ca45bdcb66 Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 29 Sep 2010 22:37:52 +0200 Subject: [PATCH 34/95] bugfixing --- openlp/core/utils/__init__.py | 8 +----- openlp/plugins/songs/lib/songbeamerimport.py | 29 ++++++++++++-------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 695e00b3f..119bf6b55 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -133,13 +133,7 @@ class AppLocation(object): path = os.path.join(os.getenv(u'HOME'), u'.openlp') return path elif dir_type == AppLocation.DataDir: - settings = QtCore.QSettings() - settings.beginGroup(u'general') - extDbPath = settings.value(u'ext db path', QtCore.QVariant(u'')).toString() - if settings.value(u'ext db usage', QtCore.QVariant(False)).toBool()\ - and QtCore.QDir(extDbPath).exists(): - path = os.path.abspath(str(settings.value(u'ext db path', QtCore.QVariant(u'')).toString())) - elif sys.platform == u'win32': + if sys.platform == u'win32': path = os.path.join(os.getenv(u'APPDATA'), u'openlp', u'data') elif sys.platform == u'darwin': path = os.path.join(os.getenv(u'HOME'), u'Library', diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index fcd3da076..a839e2418 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -27,9 +27,11 @@ The :mod:`songbeamerimport` module provides the functionality for importing SongBeamer songs into the OpenLP database. """ +import logging import os import re -import logging +import chardet +import codecs from openlp.plugins.songs.lib.songimport import SongImport @@ -58,12 +60,13 @@ class SongBeamerTypes(object): class SongBeamerImport(SongImport): """ + Import Song Beamer files(s) + Song Beamer file format is text based + in the beginning are one or more control tags written """ - def __init__(self, master_manager, **kwargs): """ Initialise the import. - ``master_manager`` The song manager for the running OpenLP installation. """ @@ -79,7 +82,6 @@ class SongBeamerImport(SongImport): """ Recieve a single file, or a list of files to import. """ - if isinstance(self.import_source, list): self.import_wizard.importProgressBar.setMaximum( len(self.import_source)) @@ -90,11 +92,16 @@ class SongBeamerImport(SongImport): self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( "Importing %s" % (self.file_name), 0) - self.songFile = open(file, 'r') - self.songData = self.songFile.read().decode('utf8') - self.songData = self.songData.splitlines() - self.songFile.close() + if os.path.isfile(file): + detect_file = open(file, u'r') + details = chardet.detect(detect_file.read(2048)) + detect_file.close() + infile = codecs.open(file, u'r', details['encoding']) + self.songData = infile.readlines() + else: + return False for line in self.songData: + line = line.strip() if line.startswith('#'): log.debug(u'find tag: %s' % line) if not self.parse_tags(line): @@ -102,7 +109,8 @@ class SongBeamerImport(SongImport): elif line.startswith('---'): log.debug(u'find ---') if len(self.current_verse) > 0: - self.add_verse(self.current_verse, self.current_verse_type) + self.add_verse(self.current_verse, + self.current_verse_type) self.current_verse = u'' self.current_verse_type = u'V' self.read_verse = True @@ -137,7 +145,7 @@ class SongBeamerImport(SongImport): elif tag_val[0] == '#Bible': pass elif tag_val[0] == '#Categories': - pass + self.topics = line.split(',') elif tag_val[0] == '#CCLI': self.ccli_number = tag_val[1] elif tag_val[0] == '#Chords': @@ -217,7 +225,6 @@ class SongBeamerImport(SongImport): else: pass return True - def check_verse_marks(self, line): marks = line.split(' ') From ec162989084d19d15da143d50e11f131cf8f8ad9 Mon Sep 17 00:00:00 2001 From: rimach Date: Wed, 29 Sep 2010 23:06:59 +0200 Subject: [PATCH 35/95] add missing newlines, simplify getString function, wrap long lines --- openlp/core/lib/plugin.py | 12 ++++----- openlp/core/ui/settingsform.py | 3 ++- openlp/plugins/alerts/alertsplugin.py | 3 ++- openlp/plugins/bibles/bibleplugin.py | 23 ++++++++++------ openlp/plugins/custom/customplugin.py | 26 ++++++++++++------- openlp/plugins/images/imageplugin.py | 23 ++++++++++------ openlp/plugins/media/mediaplugin.py | 23 ++++++++++------ .../presentations/presentationplugin.py | 17 +++++++----- openlp/plugins/remotes/remoteplugin.py | 2 +- openlp/plugins/songs/songsplugin.py | 20 +++++++++----- openlp/plugins/songusage/songusageplugin.py | 2 +- 11 files changed, 98 insertions(+), 56 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 8069d9a71..a4487dc0a 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -305,13 +305,13 @@ class Plugin(QtCore.QObject): pass def getString(self, name): - if name in self.text_strings: - return self.text_strings[name] - else: - # do something here? - return None + """ + encapsulate access of plugins translated text strings + """ + return self.text_strings[name] def setPluginTextStrings(self): """ Called to define all translatable texts of the plugin - """ \ No newline at end of file + """ + diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index 631ebd534..d1cf19622 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -79,7 +79,8 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): log.debug(u'remove %s tab' % tab.tabTitleVisible) for tabIndex in range(0, self.settingsTabWidget.count()): if self.settingsTabWidget.widget(tabIndex): - if self.settingsTabWidget.widget(tabIndex).tabTitleVisible == tab.tabTitleVisible: + if self.settingsTabWidget.widget(tabIndex).tabTitleVisible == \ + tab.tabTitleVisible: self.settingsTabWidget.removeTab(tabIndex) def accept(self): diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 44d919295..0b3063ed7 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -114,4 +114,5 @@ class AlertsPlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.text_strings[StringContent.VisibleName] = { u'title': translate('AlertsPlugin', 'Alerts') - } \ No newline at end of file + } + diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 3f27f0736..d81329025 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -135,35 +135,42 @@ class BiblePlugin(Plugin): ## Import Button ## self.text_strings[StringContent.Import] = { u'title': translate('BiblesPlugin', 'Import'), - u'tooltip': translate('BiblesPlugin', 'Import a Bible') + u'tooltip': translate('BiblesPlugin', + 'Import a Bible') } ## New Button ## self.text_strings[StringContent.New] = { u'title': translate('BiblesPlugin', 'Add'), - u'tooltip': translate('BiblesPlugin', 'Add a new Bible') + u'tooltip': translate('BiblesPlugin', + 'Add a new Bible') } ## Edit Button ## self.text_strings[StringContent.Edit] = { u'title': translate('BiblesPlugin', 'Edit'), - u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') + u'tooltip': translate('BiblesPlugin', + 'Edit the selected Bible') } ## Delete Button ## self.text_strings[StringContent.Delete] = { u'title': translate('BiblesPlugin', 'Delete'), - u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') + u'tooltip': translate('BiblesPlugin', + 'Delete the selected Bible') } ## Preview ## self.text_strings[StringContent.Preview] = { u'title': translate('BiblesPlugin', 'Preview'), - u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') + u'tooltip': translate('BiblesPlugin', + 'Preview the selected Bible') } ## Live Button ## self.text_strings[StringContent.Live] = { u'title': translate('BiblesPlugin', 'Live'), - u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') + u'tooltip': translate('BiblesPlugin', + 'Send the selected Bible live') } ## Add to service Button ## self.text_strings[StringContent.Service] = { u'title': translate('BiblesPlugin', 'Service'), - u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } \ No newline at end of file + u'tooltip': translate('BiblesPlugin', + 'Add the selected Bible to the service') + } diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 91f928ad8..1b828c9de 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -115,40 +115,48 @@ class CustomPlugin(Plugin): ## Import Button ## self.text_strings[StringContent.Import] = { u'title': translate('CustomsPlugin', 'Import'), - u'tooltip': translate('CustomsPlugin', 'Import a Custom') + u'tooltip': translate('CustomsPlugin', + 'Import a Custom') } ## Load Button ## self.text_strings[StringContent.Load] = { u'title': translate('CustomsPlugin', 'Load'), - u'tooltip': translate('CustomsPlugin', 'Load a new Custom') + u'tooltip': translate('CustomsPlugin', + 'Load a new Custom') } ## New Button ## self.text_strings[StringContent.New] = { u'title': translate('CustomsPlugin', 'Add'), - u'tooltip': translate('CustomsPlugin', 'Add a new Custom') + u'tooltip': translate('CustomsPlugin', + 'Add a new Custom') } ## Edit Button ## self.text_strings[StringContent.Edit] = { u'title': translate('CustomsPlugin', 'Edit'), - u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') + u'tooltip': translate('CustomsPlugin', + 'Edit the selected Custom') } ## Delete Button ## self.text_strings[StringContent.Delete] = { u'title': translate('CustomsPlugin', 'Delete'), - u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') + u'tooltip': translate('CustomsPlugin', + 'Delete the selected Custom') } ## Preview ## self.text_strings[StringContent.Preview] = { u'title': translate('CustomsPlugin', 'Preview'), - u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') + u'tooltip': translate('CustomsPlugin', + 'Preview the selected Custom') } ## Live Button ## self.text_strings[StringContent.Live] = { u'title': translate('CustomsPlugin', 'Live'), - u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') + u'tooltip': translate('CustomsPlugin', + 'Send the selected Custom live') } ## Add to service Button ## self.text_strings[StringContent.Service] = { u'title': translate('CustomsPlugin', 'Service'), - u'tooltip': translate('CustomsPlugin', 'Add the selected Custom to the service') - } \ No newline at end of file + u'tooltip': translate('CustomsPlugin', + 'Add the selected Custom to the service') + } diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 5f4f5d146..c6c5aceb9 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -75,35 +75,42 @@ class ImagePlugin(Plugin): ## Load Button ## self.text_strings[StringContent.Load] = { u'title': translate('ImagePlugin', 'Load'), - u'tooltip': translate('ImagePlugin', 'Load a new Image') + u'tooltip': translate('ImagePlugin', + 'Load a new Image') } ## New Button ## self.text_strings[StringContent.New] = { u'title': translate('ImagePlugin', 'Add'), - u'tooltip': translate('ImagePlugin', 'Add a new Image') + u'tooltip': translate('ImagePlugin', + 'Add a new Image') } ## Edit Button ## self.text_strings[StringContent.Edit] = { u'title': translate('ImagePlugin', 'Edit'), - u'tooltip': translate('ImagePlugin', 'Edit the selected Image') + u'tooltip': translate('ImagePlugin', + 'Edit the selected Image') } ## Delete Button ## self.text_strings[StringContent.Delete] = { u'title': translate('ImagePlugin', 'Delete'), - u'tooltip': translate('ImagePlugin', 'Delete the selected Image') + u'tooltip': translate('ImagePlugin', + 'Delete the selected Image') } ## Preview ## self.text_strings[StringContent.Preview] = { u'title': translate('ImagePlugin', 'Preview'), - u'tooltip': translate('ImagePlugin', 'Preview the selected Image') + u'tooltip': translate('ImagePlugin', + 'Preview the selected Image') } ## Live Button ## self.text_strings[StringContent.Live] = { u'title': translate('ImagePlugin', 'Live'), - u'tooltip': translate('ImagePlugin', 'Send the selected Image live') + u'tooltip': translate('ImagePlugin', + 'Send the selected Image live') } ## Add to service Button ## self.text_strings[StringContent.Service] = { u'title': translate('ImagePlugin', 'Service'), - u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } \ No newline at end of file + u'tooltip': translate('ImagePlugin', + 'Add the selected Image to the service') + } diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 474c6d18d..ff1838133 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -94,35 +94,42 @@ class MediaPlugin(Plugin): ## Load Button ## self.text_strings[StringContent.Load] = { u'title': translate('MediaPlugin', 'Load'), - u'tooltip': translate('MediaPlugin', 'Load a new Media') + u'tooltip': translate('MediaPlugin', + 'Load a new Media') } ## New Button ## self.text_strings[StringContent.New] = { u'title': translate('MediaPlugin', 'Add'), - u'tooltip': translate('MediaPlugin', 'Add a new Media') + u'tooltip': translate('MediaPlugin', + 'Add a new Media') } ## Edit Button ## self.text_strings[StringContent.Edit] = { u'title': translate('MediaPlugin', 'Edit'), - u'tooltip': translate('MediaPlugin', 'Edit the selected Media') + u'tooltip': translate('MediaPlugin', + 'Edit the selected Media') } ## Delete Button ## self.text_strings[StringContent.Delete] = { u'title': translate('MediaPlugin', 'Delete'), - u'tooltip': translate('MediaPlugin', 'Delete the selected Media') + u'tooltip': translate('MediaPlugin', + 'Delete the selected Media') } ## Preview ## self.text_strings[StringContent.Preview] = { u'title': translate('MediaPlugin', 'Preview'), - u'tooltip': translate('MediaPlugin', 'Preview the selected Media') + u'tooltip': translate('MediaPlugin', + 'Preview the selected Media') } ## Live Button ## self.text_strings[StringContent.Live] = { u'title': translate('MediaPlugin', 'Live'), - u'tooltip': translate('MediaPlugin', 'Send the selected Media live') + u'tooltip': translate('MediaPlugin', + 'Send the selected Media live') } ## Add to service Button ## self.text_strings[StringContent.Service] = { u'title': translate('MediaPlugin', 'Service'), - u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } \ No newline at end of file + u'tooltip': translate('MediaPlugin', + 'Add the selected Media to the service') + } diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index f80079639..ce1e0bf32 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -162,25 +162,30 @@ class PresentationPlugin(Plugin): ## Load Button ## self.text_strings[StringContent.Load] = { u'title': translate('PresentationPlugin', 'Load'), - u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') + u'tooltip': translate('PresentationPlugin', + 'Load a new Presentation') } ## Delete Button ## self.text_strings[StringContent.Delete] = { u'title': translate('PresentationPlugin', 'Delete'), - u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') + u'tooltip': translate('PresentationPlugin', + 'Delete the selected Presentation') } ## Preview ## self.text_strings[StringContent.Preview] = { u'title': translate('PresentationPlugin', 'Preview'), - u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') + u'tooltip': translate('PresentationPlugin', + 'Preview the selected Presentation') } ## Live Button ## self.text_strings[StringContent.Live] = { u'title': translate('PresentationPlugin', 'Live'), - u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') + u'tooltip': translate('PresentationPlugin', + 'Send the selected Presentation live') } ## Add to service Button ## self.text_strings[StringContent.Service] = { u'title': translate('PresentationPlugin', 'Service'), - u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') - } \ No newline at end of file + u'tooltip': translate('PresentationPlugin', + 'Add the selected Presentation to the service') + } diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 595cc14d6..498c896d0 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -90,4 +90,4 @@ class RemotesPlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.text_strings[StringContent.VisibleName] = { u'title': translate('RemotePlugin', 'Remotes') - } \ No newline at end of file + } diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 297be7ed8..cf1357336 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -166,30 +166,36 @@ class SongsPlugin(Plugin): ## New Button ## self.text_strings[StringContent.New] = { u'title': translate('SongsPlugin', 'Add'), - u'tooltip': translate('SongsPlugin', 'Add a new Song') + u'tooltip': translate('SongsPlugin', + 'Add a new Song') } ## Edit Button ## self.text_strings[StringContent.Edit] = { u'title': translate('SongsPlugin', 'Edit'), - u'tooltip': translate('SongsPlugin', 'Edit the selected Song') + u'tooltip': translate('SongsPlugin', + 'Edit the selected Song') } ## Delete Button ## self.text_strings[StringContent.Delete] = { u'title': translate('SongsPlugin', 'Delete'), - u'tooltip': translate('SongsPlugin', 'Delete the selected Song') + u'tooltip': translate('SongsPlugin', + 'Delete the selected Song') } ## Preview ## self.text_strings[StringContent.Preview] = { u'title': translate('SongsPlugin', 'Preview'), - u'tooltip': translate('SongsPlugin', 'Preview the selected Song') + u'tooltip': translate('SongsPlugin', + 'Preview the selected Song') } ## Live Button ## self.text_strings[StringContent.Live] = { u'title': translate('SongsPlugin', 'Live'), - u'tooltip': translate('SongsPlugin', 'Send the selected Song live') + u'tooltip': translate('SongsPlugin', + 'Send the selected Song live') } ## Add to service Button ## self.text_strings[StringContent.Service] = { u'title': translate('SongsPlugin', 'Service'), - u'tooltip': translate('SongsPlugin', 'Add the selected Song to the service') - } \ No newline at end of file + u'tooltip': translate('SongsPlugin', + 'Add the selected Song to the service') + } diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 167a00029..5863490a6 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -175,4 +175,4 @@ class SongUsagePlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.text_strings[StringContent.VisibleName] = { u'title': translate('SongUsagePlugin', 'SongUsage') - } \ No newline at end of file + } From 2e72e2cbe778692d24db3c8d8dd996896667437e Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 30 Sep 2010 07:04:31 +0200 Subject: [PATCH 36/95] add missing function content --- openlp/core/lib/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index a4487dc0a..ad91400a3 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -314,4 +314,4 @@ class Plugin(QtCore.QObject): """ Called to define all translatable texts of the plugin """ - + pass From 68b38aa88c96f1b800b3cbc55c2229c3400e6d86 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 30 Sep 2010 18:07:27 +0100 Subject: [PATCH 37/95] fix up rest of service load updates --- openlp/core/lib/serviceitem.py | 10 +++++++++- openlp/core/ui/servicemanager.py | 4 ++++ openlp/plugins/songs/lib/mediaitem.py | 22 +++++++++++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 17508e274..b4dc263e9 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -102,6 +102,8 @@ class ServiceItem(object): self.footer = None self.bg_image_bytes = None self._new_item() + self.search_string = u'' + self.data_string = u'' def _new_item(self): """ @@ -259,7 +261,9 @@ class ServiceItem(object): u'audit':self.audit, u'notes':self.notes, u'from_plugin':self.from_plugin, - u'capabilities':self.capabilities + u'capabilities':self.capabilities, + u'search':self.search_string, + u'data':self.data_string } service_data = [] if self.service_item_type == ServiceItemType.Text: @@ -297,6 +301,10 @@ class ServiceItem(object): self.notes = header[u'notes'] self.from_plugin = header[u'from_plugin'] self.capabilities = header[u'capabilities'] + # Added later so may not be present in older services. + if u'search' in header: + self.search_string = header[u'search'] + self.data_string = header[u'data'] if self.service_item_type == ServiceItemType.Text: for slide in serviceitem[u'serviceitem'][u'data']: self._raw_frames.append(slide) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 521be71a6..9ae90580a 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -810,9 +810,13 @@ class ServiceManager(QtGui.QWidget): """ Triggered from plugins to update service items. """ + editId, uuid = message.split(u':') print message for item in self.serviceItems: print item[u'service_item'].title, item[u'service_item']._uuid + if item[u'service_item']._uuid == uuid: + print u'match' + item[u'service_item'].editId = editId def addServiceItem(self, item, rebuild=False, expand=True, replace=False): """ diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index c1ca57227..29e105bdc 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -372,11 +372,31 @@ class SongMediaItem(MediaManagerItem): service_item.audit = [ song.title, author_audit, song.copyright, unicode(song.ccli_number) ] + service_item.data_string = {u'title':song.search_title, u'authors':author_list} return True def serviceLoad(self, item): """ Triggered by a song being loaded by the service item """ - Receiver.send_message(u'service_item_update', u'0:0') + print item.data_string[u'title'].split(u'@')[0] + search_results = self.parent.manager.get_all_objects(Song, + Song.search_title.like(u'%' + item.data_string[u'title'].split(u'@')[0] + u'%'), + Song.search_title.asc()) + print item.data_string[u'authors'].split(u',') + author_list = item.data_string[u'authors'].split(u',') + editId = 0 + uuid = 0 + if search_results: + for song in search_results: + count = 0 + for author in song.authors: + if author.display_name in author_list: + count += 1 + if count == len(author_list): + editId = song.id + uuid = item._uuid + if editId != 0: + Receiver.send_message(u'service_item_update', + u'%s:%s' %(editId, uuid)) From 74752da6948f0350c305e7a2010851af6761f7b0 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 30 Sep 2010 20:40:10 +0200 Subject: [PATCH 38/95] implemented 'text search' for bibles --- openlp/plugins/bibles/lib/db.py | 8 ++++---- openlp/plugins/bibles/lib/manager.py | 22 +++++++++++++++++++++- openlp/plugins/bibles/lib/mediaitem.py | 20 +++++++++++++------- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 49bc82102..ca7fcfda7 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -240,7 +240,7 @@ class BibleDB(QtCore.QObject, Manager): and the value is the verse text. """ log.debug(u'create_chapter %s,%s', book_id, chapter) - #text list has book and chapter as first two elements of the array + # text list has book and chapter as first two elements of the array for verse_number, verse_text in textlist.iteritems(): verse = Verse.populate( book_id = book_id, @@ -353,9 +353,9 @@ class BibleDB(QtCore.QObject, Manager): QtGui.QMessageBox.information(self.bible_plugin.mediaItem, translate('BiblesPlugin.BibleDB', 'Book not found'), translate('BiblesPlugin.BibleDB', 'The book you requested ' - 'could not be found in this bible. Please check your ' - 'spelling and that this is a complete bible not just ' - 'one testament.')) + 'could not be found in this bible. Please check your ' + 'spelling and that this is a complete bible not just ' + 'one testament.')) return verse_list def verse_search(self, text): diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index fd2c2adff..4a5869ca6 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -254,9 +254,29 @@ class BibleManager(object): 'Book Chapter:Verse-Verse\n' 'Book Chapter:Verse-Verse,Verse-Verse\n' 'Book Chapter:Verse-Verse,Chapter:Verse-Verse\n' - 'Book Chapter:Verse-Chapter:Verse\n')) + 'Book Chapter:Verse-Chapter:Verse')) return None + def verse_search(self, bible, text): + """ + ``bible`` + The bible to seach in. + + ``text`` + The text to search for. + """ + log.debug(u'BibleManager.verse_search("%s", "%s")', bible, text) + if text: + return self.db_cache[bible].verse_search(text) + else: + QtGui.QMessageBox.information(self.parent.mediaItem, + translate('BiblesPlugin.BibleManager', + 'Scripture Reference Error'), + translate('BiblesPlugin.BibleManager', 'Your scripture ' + 'reference is not valid. Make sure to state a keyword to search' + ' for. Keywords separated by a comma will be treated as OR.')) + return None + def save_meta_data(self, bible, version, copyright, permissions): """ Saves the bibles meta data diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 92eb200ee..fe0e7409c 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -535,10 +535,19 @@ class BibleMediaItem(MediaManagerItem): bible = unicode(self.QuickVersionComboBox.currentText()) dual_bible = unicode(self.QuickSecondBibleComboBox.currentText()) text = unicode(self.QuickSearchEdit.text()) - self.search_results = self.parent.manager.get_verses(bible, text) - if dual_bible: - self.dual_search_results = self.parent.manager.get_verses( - dual_bible, text) + if self.QuickSearchComboBox.currentIndex() == 0: # Verse Search + self.search_results = self.parent.manager.get_verses(bible, text) + if dual_bible: + self.dual_search_results = self.parent.manager.get_verses( + dual_bible, text) + else: # Text Search + self.search_results = self.parent.manager.verse_search(bible, text) + if dual_bible: + for count, verse in enumerate(self.search_results): + text = u'%s %s:%s' % (verse.book.name, verse.chapter, + verse.verse) + self.dual_search_results[count] = self.parent.manager.\ + get_verses(dual_bible, text)[0] if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() if self.listView.count() != 0 and self.search_results: @@ -702,19 +711,16 @@ class BibleMediaItem(MediaManagerItem): if bible_text: raw_slides.append(bible_text) bible_text = u'' - # Service Item: Capabilities if self.parent.settings_tab.layout_style == 2 and not dual_bible: # Split the line but do not replace line breaks in renderer. service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) - # Service Item: Title for title in raw_title: if not service_item.title: service_item.title = title else: service_item.title += u', ' + title - # Service Item: Theme if len(self.parent.settings_tab.bible_theme) == 0: service_item.theme = None else: From 4d3a473e91683e92b0937bdbc9bfbec91bb1d964 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 30 Sep 2010 21:21:45 +0100 Subject: [PATCH 39/95] Service Manager loading - finished --- openlp/core/ui/servicemanager.py | 3 --- openlp/plugins/songs/lib/mediaitem.py | 39 +++++++++++++-------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 9ae90580a..818a83c84 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -811,11 +811,8 @@ class ServiceManager(QtGui.QWidget): Triggered from plugins to update service items. """ editId, uuid = message.split(u':') - print message for item in self.serviceItems: - print item[u'service_item'].title, item[u'service_item']._uuid if item[u'service_item']._uuid == uuid: - print u'match' item[u'service_item'].editId = editId def addServiceItem(self, item, rebuild=False, expand=True, replace=False): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 29e105bdc..078741ca7 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -379,24 +379,23 @@ class SongMediaItem(MediaManagerItem): """ Triggered by a song being loaded by the service item """ - print item.data_string[u'title'].split(u'@')[0] - search_results = self.parent.manager.get_all_objects(Song, - Song.search_title.like(u'%' + item.data_string[u'title'].split(u'@')[0] + u'%'), - Song.search_title.asc()) - print item.data_string[u'authors'].split(u',') - author_list = item.data_string[u'authors'].split(u',') - editId = 0 - uuid = 0 - if search_results: - for song in search_results: - count = 0 - for author in song.authors: - if author.display_name in author_list: - count += 1 - if count == len(author_list): - editId = song.id - uuid = item._uuid - if editId != 0: - Receiver.send_message(u'service_item_update', - u'%s:%s' %(editId, uuid)) + if item.data_string: + search_results = self.parent.manager.get_all_objects(Song, + Song.search_title.like(u'%' + item.data_string[u'title'].split(u'@')[0] + u'%'), + Song.search_title.asc()) + author_list = item.data_string[u'authors'].split(u',') + editId = 0 + uuid = 0 + if search_results: + for song in search_results: + count = 0 + for author in song.authors: + if author.display_name in author_list: + count += 1 + if count == len(author_list): + editId = song.id + uuid = item._uuid + if editId != 0: + Receiver.send_message(u'service_item_update', + u'%s:%s' %(editId, uuid)) From 8fafc971a1cba6cc8ec36f76984565834d195314 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Fri, 1 Oct 2010 08:17:50 -0500 Subject: [PATCH 40/95] Adding documentation From e17f6c7c9ed37d1f1c580dd9ae02d02560836572 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 1 Oct 2010 15:50:29 +0200 Subject: [PATCH 41/95] -disable search buttons while searching, -clean ups --- openlp/plugins/bibles/lib/__init__.py | 2 +- openlp/plugins/bibles/lib/db.py | 26 +++++++++++++------------- openlp/plugins/bibles/lib/manager.py | 12 ++++++------ openlp/plugins/bibles/lib/mediaitem.py | 20 +++++++++++++++----- 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py index 06f9d7cc7..e3f0d8f46 100644 --- a/openlp/plugins/bibles/lib/__init__.py +++ b/openlp/plugins/bibles/lib/__init__.py @@ -75,7 +75,7 @@ def parse_reference(reference): 7 None|[0-9]+|end None or the end of the second verse range. The reference list is a list of tuples, with each tuple structured like - this:: + this: (book, chapter, start_verse, end_verse) ``reference`` diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index ca7fcfda7..6f947cb87 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -281,23 +281,23 @@ class BibleDB(QtCore.QObject, Manager): def create_meta(self, key, value): """ - Utility method to save BibleMeta objects in a Bible database + Utility method to save BibleMeta objects in a Bible database. ``key`` - The key for this instance + The key for this instance. ``value`` - The value for this instance + The value for this instance. """ log.debug(u'save_meta %s/%s', key, value) self.save_object(BibleMeta.populate(key=key, value=value)) def get_book(self, book): """ - Return a book object from the database + Return a book object from the database. ``book`` - The name of the book to return + The name of the book to return. """ log.debug(u'BibleDb.get_book("%s")', book) db_book = self.get_object_filtered(Book, Book.name.like(book + u'%')) @@ -320,14 +320,14 @@ class BibleDB(QtCore.QObject, Manager): ``reference_list`` This is the list of references the media manager item wants. It is - a list of tuples, with the following format:: + a list of tuples, with the following format: (book, chapter, start_verse, end_verse) Therefore, when you are looking for multiple items, simply break them up into references like this, bundle them into a list. This function then runs through the list, and returns an amalgamated - list of ``Verse`` objects. For example:: + list of ``Verse`` objects. For example: [(u'Genesis', 1, 1, 1), (u'Genesis', 2, 2, 3)] """ @@ -387,10 +387,10 @@ class BibleDB(QtCore.QObject, Manager): def get_chapter_count(self, book): """ - Return the number of chapters in a book + Return the number of chapters in a book. ``book`` - The book to get the chapter count for + The book to get the chapter count for. """ log.debug(u'BibleDB.get_chapter_count("%s")', book) count = self.session.query(Verse.chapter).join(Book)\ @@ -403,13 +403,13 @@ class BibleDB(QtCore.QObject, Manager): def get_verse_count(self, book, chapter): """ - Return the number of verses in a chapter + Return the number of verses in a chapter. ``book`` - The book containing the chapter + The book containing the chapter. ``chapter`` - The chapter to get the verse count for + The chapter to get the verse count for. """ log.debug(u'BibleDB.get_verse_count("%s", %s)', book, chapter) count = self.session.query(Verse).join(Book)\ @@ -423,7 +423,7 @@ class BibleDB(QtCore.QObject, Manager): def dump_bible(self): """ - Utility debugging method to dump the contents of a bible + Utility debugging method to dump the contents of a bible. """ log.debug(u'.........Dumping Bible Database') log.debug('...............................Books ') diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 4a5869ca6..78d8e770a 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -137,7 +137,7 @@ class BibleManager(object): name = bible.get_name() log.debug(u'Bible Name: "%s"', name) self.db_cache[name] = bible - # look to see if lazy load bible exists and get create getter. + # Look to see if lazy load bible exists and get create getter. source = self.db_cache[name].get_object(BibleMeta, u'download source') if source: @@ -204,7 +204,7 @@ class BibleManager(object): def get_chapter_count(self, bible, book): """ - Returns the number of Chapters for a given book + Returns the number of Chapters for a given book. """ log.debug(u'get_book_chapter_count %s', book) return self.db_cache[bible].get_chapter_count(book) @@ -212,7 +212,7 @@ class BibleManager(object): def get_verse_count(self, bible, book, chapter): """ Returns all the number of verses for a given - book and chapterMaxBibleBookVerses + book and chapterMaxBibleBookVerses. """ log.debug(u'BibleManager.get_verse_count("%s", "%s", %s)', bible, book, chapter) @@ -279,7 +279,7 @@ class BibleManager(object): def save_meta_data(self, bible, version, copyright, permissions): """ - Saves the bibles meta data + Saves the bibles meta data. """ log.debug(u'save_meta data %s,%s, %s,%s', bible, version, copyright, permissions) @@ -289,14 +289,14 @@ class BibleManager(object): def get_meta_data(self, bible, key): """ - Returns the meta data for a given key + Returns the meta data for a given key. """ log.debug(u'get_meta %s,%s', bible, key) return self.db_cache[bible].get_object(BibleMeta, key) def exists(self, name): """ - Check cache to see if new bible + Check cache to see if new bible. """ if not isinstance(name, unicode): name = unicode(name) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index fe0e7409c..ab39665f8 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -497,6 +497,7 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedSearchButton(self): log.debug(u'Advanced Search Button pressed') + self.AdvancedSearchButton.setEnabled(False) bible = unicode(self.AdvancedVersionComboBox.currentText()) dual_bible = unicode(self.AdvancedSecondBibleComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) @@ -529,9 +530,11 @@ class BibleMediaItem(MediaManagerItem): self.displayResults(bible, dual_bible) else: self.displayResults(bible, dual_bible) + self.AdvancedSearchButton.setEnabled(True) def onQuickSearchButton(self): log.debug(u'Quick Search Button pressed') + self.QuickSearchButton.setEnabled(False) bible = unicode(self.QuickVersionComboBox.currentText()) dual_bible = unicode(self.QuickSecondBibleComboBox.currentText()) text = unicode(self.QuickSearchEdit.text()) @@ -543,11 +546,17 @@ class BibleMediaItem(MediaManagerItem): else: # Text Search self.search_results = self.parent.manager.verse_search(bible, text) if dual_bible: - for count, verse in enumerate(self.search_results): - text = u'%s %s:%s' % (verse.book.name, verse.chapter, - verse.verse) - self.dual_search_results[count] = self.parent.manager.\ - get_verses(dual_bible, text)[0] + text = [] + for verse in self.search_results: + text.append((verse.book.name, verse.chapter, verse.verse, + verse.verse)) + self.dual_search_results = self.parent.manager.get_verses( + dual_bible, text) +# for count, verse in enumerate(self.search_results): +# text = u'%s %s:%s' % (verse.book.name, verse.chapter, +# verse.verse) +# self.dual_search_results[count] = self.parent.manager.\ +# get_verses(dual_bible, text)[0] if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() if self.listView.count() != 0 and self.search_results: @@ -567,6 +576,7 @@ class BibleMediaItem(MediaManagerItem): self.displayResults(bible, dual_bible) elif self.search_results: self.displayResults(bible, dual_bible) + self.QuickSearchButton.setEnabled(True) def displayResults(self, bible, dual_bible=u''): """ From 919b07bd61f07d5569f05154f58234c2cb0c2e4f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 1 Oct 2010 16:18:15 +0200 Subject: [PATCH 42/95] clean ups --- openlp/plugins/bibles/lib/db.py | 6 +++--- openlp/plugins/bibles/lib/http.py | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 6f947cb87..60b9a8836 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -4,7 +4,7 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # +# Copyright (c) 2008-2010 Raoul Snyman + # # Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # @@ -64,10 +64,10 @@ class Verse(BaseModel): def init_schema(url): """ - Setup a bible database connection and initialise the database schema + Setup a bible database connection and initialise the database schema. ``url`` - The database to setup + The database to setup. """ session, metadata = init_db(url) diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 415a0cde5..8abb3e62f 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -187,16 +187,16 @@ class BGExtract(object): def get_bible_chapter(self, version, bookname, chapter): """ - Access and decode bibles via the BibleGateway website + Access and decode bibles via the BibleGateway website. ``version`` - The version of the bible like 31 for New International version + The version of the bible like 31 for New International version. ``bookname`` - Name of the Book + Name of the Book. ``chapter`` - Chapter number + Chapter number. """ log.debug(u'get_bible_chapter %s, %s, %s', version, bookname, chapter) url_params = urllib.urlencode( @@ -298,13 +298,13 @@ class CWExtract(object): versetext = versetext + part elif part and part.attrMap and \ (part.attrMap[u'class'] == u'WordsOfChrist' or \ - part.attrMap[u'class'] == u'strongs'): + part.attrMap[u'class'] == u'strongs'): for subpart in part.contents: Receiver.send_message(u'openlp_process_events') if isinstance(subpart, NavigableString): versetext = versetext + subpart elif subpart and subpart.attrMap and \ - subpart.attrMap[u'class'] == u'strongs': + subpart.attrMap[u'class'] == u'strongs': for subsub in subpart.contents: Receiver.send_message(u'openlp_process_events') if isinstance(subsub, NavigableString): @@ -382,14 +382,14 @@ class HTTPBible(BibleDB): ``reference_list`` This is the list of references the media manager item wants. It is - a list of tuples, with the following format:: + a list of tuples, with the following format: (book, chapter, start_verse, end_verse) Therefore, when you are looking for multiple items, simply break them up into references like this, bundle them into a list. This function then runs through the list, and returns an amalgamated - list of ``Verse`` objects. For example:: + list of ``Verse`` objects. For example: [(u'Genesis', 1, 1, 1), (u'Genesis', 2, 2, 3)] """ @@ -428,7 +428,7 @@ class HTTPBible(BibleDB): def get_chapter(self, book, chapter): """ - Receive the request and call the relevant handler methods + Receive the request and call the relevant handler methods. """ log.debug(u'get_chapter %s, %s', book, chapter) log.debug(u'source = %s', self.download_source) From f8ed4acf78fa6168008762525f229f8119bfb0df Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 1 Oct 2010 16:37:51 +0200 Subject: [PATCH 43/95] clean ups --- openlp/plugins/bibles/lib/mediaitem.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index ab39665f8..94519ba88 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -540,23 +540,23 @@ class BibleMediaItem(MediaManagerItem): text = unicode(self.QuickSearchEdit.text()) if self.QuickSearchComboBox.currentIndex() == 0: # Verse Search self.search_results = self.parent.manager.get_verses(bible, text) - if dual_bible: + if dual_bible and self.search_results: self.dual_search_results = self.parent.manager.get_verses( dual_bible, text) else: # Text Search self.search_results = self.parent.manager.verse_search(bible, text) - if dual_bible: - text = [] - for verse in self.search_results: - text.append((verse.book.name, verse.chapter, verse.verse, - verse.verse)) - self.dual_search_results = self.parent.manager.get_verses( - dual_bible, text) -# for count, verse in enumerate(self.search_results): -# text = u'%s %s:%s' % (verse.book.name, verse.chapter, -# verse.verse) -# self.dual_search_results[count] = self.parent.manager.\ -# get_verses(dual_bible, text)[0] + if dual_bible and self.search_results: +# text = [] +# for verse in self.search_results: +# text.append((verse.book.name, verse.chapter, verse.verse, +# verse.verse)) +# self.dual_search_results = self.parent.manager.get_verses( +# dual_bible, text) + for count, verse in enumerate(self.search_results): + text = u'%s %s:%s' % (verse.book.name, verse.chapter, + verse.verse) + self.dual_search_results[count] = self.parent.manager.\ + get_verses(dual_bible, text)[0] if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() if self.listView.count() != 0 and self.search_results: From ffb315056aec4abc57ae1d196a5549e378cad0ad Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Fri, 1 Oct 2010 09:54:08 -0500 Subject: [PATCH 44/95] Adding documentation, I think I added it this time. --- documentation/source/manual/Introduction.rst | 5 + documentation/source/manual/Makefile | 130 +++++ .../_build/doctrees/Introduction.doctree | Bin 0 -> 2841 bytes .../manual/_build/doctrees/environment.pickle | Bin 0 -> 4591 bytes .../manual/_build/doctrees/index.doctree | Bin 0 -> 6370 bytes .../source/manual/_build/html/.buildinfo | 4 + .../manual/_build/html/Introduction.html | 102 ++++ .../_build/html/_sources/Introduction.txt | 5 + .../manual/_build/html/_sources/index.txt | 21 + .../manual/_build/html/_static/basic.css | 509 +++++++++++++++++ .../manual/_build/html/_static/default.css | 256 +++++++++ .../manual/_build/html/_static/doctools.js | 247 +++++++++ .../manual/_build/html/_static/file.png | Bin 0 -> 392 bytes .../manual/_build/html/_static/jquery.js | 154 ++++++ .../manual/_build/html/_static/minus.png | Bin 0 -> 199 bytes .../manual/_build/html/_static/plus.png | Bin 0 -> 199 bytes .../manual/_build/html/_static/pygments.css | 62 +++ .../manual/_build/html/_static/searchtools.js | 518 ++++++++++++++++++ .../manual/_build/html/_static/sidebar.js | 148 +++++ .../manual/_build/html/_static/underscore.js | 16 + .../source/manual/_build/html/genindex.html | 90 +++ .../source/manual/_build/html/index.html | 121 ++++ .../source/manual/_build/html/objects.inv | Bin 0 -> 202 bytes .../source/manual/_build/html/search.html | 96 ++++ .../source/manual/_build/html/searchindex.js | 1 + documentation/source/manual/conf.py | 216 ++++++++ documentation/source/manual/index.rst | 21 + documentation/source/manual/make.bat | 155 ++++++ 28 files changed, 2877 insertions(+) create mode 100644 documentation/source/manual/Introduction.rst create mode 100644 documentation/source/manual/Makefile create mode 100644 documentation/source/manual/_build/doctrees/Introduction.doctree create mode 100644 documentation/source/manual/_build/doctrees/environment.pickle create mode 100644 documentation/source/manual/_build/doctrees/index.doctree create mode 100644 documentation/source/manual/_build/html/.buildinfo create mode 100644 documentation/source/manual/_build/html/Introduction.html create mode 100644 documentation/source/manual/_build/html/_sources/Introduction.txt create mode 100644 documentation/source/manual/_build/html/_sources/index.txt create mode 100644 documentation/source/manual/_build/html/_static/basic.css create mode 100644 documentation/source/manual/_build/html/_static/default.css create mode 100644 documentation/source/manual/_build/html/_static/doctools.js create mode 100644 documentation/source/manual/_build/html/_static/file.png create mode 100644 documentation/source/manual/_build/html/_static/jquery.js create mode 100644 documentation/source/manual/_build/html/_static/minus.png create mode 100644 documentation/source/manual/_build/html/_static/plus.png create mode 100644 documentation/source/manual/_build/html/_static/pygments.css create mode 100644 documentation/source/manual/_build/html/_static/searchtools.js create mode 100644 documentation/source/manual/_build/html/_static/sidebar.js create mode 100644 documentation/source/manual/_build/html/_static/underscore.js create mode 100644 documentation/source/manual/_build/html/genindex.html create mode 100644 documentation/source/manual/_build/html/index.html create mode 100644 documentation/source/manual/_build/html/objects.inv create mode 100644 documentation/source/manual/_build/html/search.html create mode 100644 documentation/source/manual/_build/html/searchindex.js create mode 100644 documentation/source/manual/conf.py create mode 100644 documentation/source/manual/index.rst create mode 100644 documentation/source/manual/make.bat diff --git a/documentation/source/manual/Introduction.rst b/documentation/source/manual/Introduction.rst new file mode 100644 index 000000000..4ab03d452 --- /dev/null +++ b/documentation/source/manual/Introduction.rst @@ -0,0 +1,5 @@ +============= +Introduction +============= + +- Thank you for using OpenLP diff --git a/documentation/source/manual/Makefile b/documentation/source/manual/Makefile new file mode 100644 index 000000000..c4cde2c41 --- /dev/null +++ b/documentation/source/manual/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OpenLP.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OpenLP.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/OpenLP" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OpenLP" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/documentation/source/manual/_build/doctrees/Introduction.doctree b/documentation/source/manual/_build/doctrees/Introduction.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9dc9bcb26370515702250f5d82e0436ca7a70d15 GIT binary patch literal 2841 zcma)833nVv5tikwq+K1B9oq@9MZ}R<0i+EfKrlxRLLew?0&ykg7>3!I-t9p%(^K6& zI)H(g97Nn#xDt|Z6Yl%I?;Cy+U(e32*URI5ReO2{U-7_6VDlBZAn2k(D z!nE9DDl*&R16Q5n>5>nwQ8NotVfS)j_@a^| zrZPVgJ;Spl&(TsIXe0bo7!&kiq3Lmpmcl}7c=3%YbSQYfL#;@JN(Ys_g$^AF3affb z*-TmC8yjfLi<<{%)?tYw!%HO}k~6e$0gz=wbD@lr2*&xa$44f^GonJ=;)@a8(UOlL zIvwoPFpkp{%>XZu@g;JaX6pBsPMXmo*F_eGpsdADI(rI)w53W#dqb(P1@kTXF+7bS5f_?eprVX_9u z&yv#;M6It)hKN)q2yO#BwM)KwO&+iEJ{}K0TV5iM%1h-5xk8QV0$(Em`Z;S7P_LCh z_*@BG&y#@kdeaRZ5Q33=uTem7D*zk zpTq`MUIOITmwW@R(9{^v`LR=cql0_X8qEw|@=MPiKrYuE-kTlrm$^W0ae=(t!GDE= z-x$Kbb<)3c?8jE5Eq*1uZaK}Nry<+kX2jJBX&ubjAI~|lWfYKQvp-Cht;-IgCT(Qm}*M$Is`mChJe9_NljS{Mpa)glc286i9`UD{*l3wmE^3*5Ftb8%E_Qvq#S9LHjK z+v6Qt96B2S*e!XFmg6jnHI&GQto4O8{1%VjN^?e7i@GrUwy|#PX_Z-#MXkGnq<}zk zsrc z+ij~9^bXhhH&0R4Sdmi{2(nRLDnxY0&qSOyie1R=yy{y3ZQg0NOOLVgIJO4Ct_P9{N7C@ z24P^VWP`!*KFkRjBxv#K!235Fv{-|vMeze2c}<5-3ayp)fmB6c)E_*e1)~Is`yeel zhz3_A93}{pKSYg4bc;TJxI@b#?FyIJy+jx(gyoOy(~2r=UfBO;^P?CRU?a5r5FjD9 zS&{m?uEP0aVDC^=q`5z;DZ?KJR}kSi>#6$KCmhK;fzBLY*b+g?pX|^v$9peMs;v3Y z7T~plKSgu+uztnW*GBv>9TvMWhAGOrFf})ifSZ|6Wxcr1pRRL-irbD&Y?bCmVL41x zu;q(1h!a1EFf*&M^4Np4f=JR)r=8EbZ*s@gU4Dn65_0s_ct!F+n_ki5i9NtzXAq zrdEC374#Fh9cSYy;;&G%I=OB@!dK~#AH^oi?bn-=St-WCB|bGVopCt*YWYPv1iaxO9)2 z^!s#q-K0A^I~)0)l`5;6G!olwoHT9z0iC=s>WO0ip?rvzoG|(4BmEIg#}WS+{uS0C z%=tPYKiQ`fgLV>$sCpV)Sm_Tpj-R4vYwoI&H2gDA${ERPzL(fF1*7!SWI`S)@K zGL9kkhiZuZ(T%P@xgqxF(GK?)Y$+IRe{}=xZv{1n;%WHr9{+=8Tn%7%`e(`iD!Lp0 E29+HoLX$JbFK+vZzvff{S5&-Vp)%_|Wl>1{gpXO2 zQEy4~Yz`A0d8wQDQAmqjFLL?VcqoiK85fOgk(L0VFQcU;(XE|{I7+oEX_;sfMJGwL zUrrMM9+c6+CDG-jb=EhgLo7N}bh?2P$Cw>v(cz-2?6|wNti*JLMMsKu-;3!ei;fl@ z`IciWIyMzuu7a1e45{CuRSi#xPIwfm$K+=;-jEoNX?I3}k*MXob{E+nW)vA_y}{IR zLX?p<%-Aqfv8WnEWjl%7L`&c%`3sSXZhOMfVI>V++B3@czzBH0rU|iPSm8QmaUs)TMGTZ&9tv-*_PC-?6% zO84(bqBNn~L~kN%bzB`8+jS>VG-J^|QM6lJy4?{=FF6gL-f|Cs+^#)9Vb(Pq-VltQwHc+VlkgKX*Y8?re|C996UcJGej{@ z@*#+f9R#KGX@Aql=8n@{=4IQ@lDkEr=7gyeB=lT7Yq(i_(dc<&g%$`sUvz32NGFzb zk7!>rw3_Y}eJZI1N(Obi48C~^Um&{kQ=uZg@W~7OB6Y7QB86ng_c^8)Tl5mKg!jWr zDCXuKe5pk*6P*nfz1$H+Ba$eIXZ95+aI)g0Q1g|d8yaH|m#0@*^y;P$=sr=1@YDr$ zb(cl2QFl8d^AdV3fND+*|Fi4pb?QFRfr^*b>Gh*{vb$(M(h zdgp-^<$mM~y-N)^D7){DMX?g4p~o7=^d4S%FEE?+Plhh5^r4JCES5A<)AmDi31j+5MjurJ7JW?J@5G{;uc~b<|9D295DOq5 z(F!B!>`5{LB(Ogy0Zb%e< zR~G5V0DLT?pR@pfYD$@_B5m&f&rshBkWaNwKSykU{tG_mm+YNi@v*<=!+s;W{E(jm zC!pWn!6!e;C;tw0`+%n8_o&c+$mnq#sa8PpF_c`zO+`~H`eV-NJHP?-r-p3H+4Sd} zvv5{4=`U#+SBOLUL`Hu_CxDQmG5K3bp&j|VLKpH6h4$m03Z2Kl)LM)FovL*f{imc5 zIo&p|tu52@@NMqY^UY+nrQ0#Ue!YO{X_oF_dWNM7OxIev6Es!p)f2$eU6_;4pb7k~GGXZ1|1`N4~DIj~90&+1^KrR6V zKYcJbupZ|ef)V2$$`rVV@k%4K`fz3ruo_432x=V3%dMd5qcBBW*N?L)tj5typK4d8 zkAd{ev_2Lj)BX5DWpzH_*a(i`hFS5~$F-OTUID$_EOK=9@fc?M1bkZ_IMGaC?g|Xp zo|Q~tPl+kaU&R#W4}i{g>q(d&kb#Zorl?QGDh?b3$@CDutpkU7BD(N;mXTAQUX3}* zVcuEmQ!s;Hq0btO!~*Uw^rwXzQs_!>#IobjlK8HS2c6IxOq??MPJIEDEjE$WD>Geg+BCG>d}u!o?Qb0FVil?6fn-|Z z3)TOhY=x25kF%L3h~ury8qd=Ri8r2y4Y3^0ql(IF+OOtqtD2LPIcc$_ea0NH^f-fx zE++^~h1a`{Sdfct+VJqI`0;xloK^#7_~0W`353z3;OBWY)-@v>vamSV4I*c^E%Dnb zuu=T9)?rFRg%=#4G&LDObpeh5*39*k**GVa?db?<6%uK zRa9vI>_G03f!1J*bcm%f|J+E+rroe7E0M107)y7esYUjBd4C!!DHEL-{?TZMYIY@x zk}ygnx}Qefv||)zsZ%4=iw0*lz8} z`X-j>^}~9apxbl#7iv}C%*^gIsSK_ijQy(Ki+L*gnr~X`2a%q}g85CPZ!tJ{C2Tk~ Q7mW3-U}pL@-d!I0FE7Xnwg3PC literal 0 HcmV?d00001 diff --git a/documentation/source/manual/_build/doctrees/index.doctree b/documentation/source/manual/_build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ec212ef6236a3e66749e50a37d305b325f9a57be GIT binary patch literal 6370 zcmds5cX%Ad6}M$eC!MWg*#?X;UIPXhEXg(ojOZOBBbo<`a-8;VN7|M4c6Z+HssIZZ zFd#6!_uhN&om4`4LK+F_2`Qu}r2pPr@ktI}@^`-PzMI{*Z{GX8H@}&AGiTN0Ek7Se zjvID(z9qvnzZRqyrPb6W>s3vnrnQL%&n(DjERdm^o~YWk-tDGLnKB~XykC$;I~dlp*SKW`2k`SBo-gJ2B0%LbZKH?I0GF#-ly*+l%AT9=1;y54G47 zwMD}_X4Fo0of(ViuH#A7)}4aa5_q))DX7oej%y)vYUhmFrEPK|FlsJRuoS6lPgDm| zrzx>+6D5uUCDt6hIVC!g;Z}Q&y`?=*)M_(onT@!Yx7mnxg^eJ0wGrA%8&U0M1L*Ft z4SY6G*}$^LWGHLpD7d=nfAzm7hNCM{djYb|SlZ*98RsS&1!>FyG6OrU_C}2RBx+xd zu>k{qkncqxRM@5Vs|ux|(nIaf;T)jDIgrCSh{HLU!#RY*Ih4a`D2H>Hy=s!x!vS!0 zqK;sI>|vk(2oN(b@MF(Pt8U<1lc*!1ujyM(Zhcur^)R5LG@zpy&@rMp^79c%**=08 z14-&wlR+NGAlEWT0gydqjK}B0z;?XR4%4!VYecDgTCIcg-b9^HbPhKsg1%l{$Vrlx zI%(W)5w&_MsFOunk9O#L?wHDqi|GTdpHrudv(GGh?_&a(3^2zK@*;&alLO*g86|sq zXCnElA@QwP&s^1io*FPko$Xi_cxsP}nU0rtV=N>NFELI=4ch&ts4tkKmJA|W4RzPV z$mkm8kqiE%N^z)y&asShC1N&BTwavN8T54q15xYBVd*N>UBl3cp@)?vBLcAzLCg^h zmuA;Uce9wztEUrae&&8W9G$3(t zGr9!%xinFi0b=jl2)VevOx$n~K6V8%c>I?dd6FiFnHx(N`P;5yCqJaY8NO$%wPWKr z85p}RGgd6`TCuWgx0S|km#F)haa_f$-n@!=00Vbxao}vdi#@2FJj6~OW+#uZlSkRZV-w6j zj$!#2n@=FRClmD)+}dpaJ{{fU4JsGAU}DyFKr;0-kUo>BXUlPyAc+}OTIxAY!t-sS zt|(M5^iD-kJ2Su+8R|<+qn8=^D~$J5#@kv>$7`ESO!l00P=lq_>u~=@qTb|0HN$2X z%9F0X0jZal(LVJSqIjl6?}kc0^$7;_Nu97yvD;5Giq9~f&oY3w0id!4eNL~B?#c{l9KZUm{$}|FEClL% zx=R>Y>V3xeeMb8OF$0~kEbBE~{cxN|;zu0Jk2!>&h&p^mb*6r5pIiy&XOkHr3xREh zPMB6dMKDaGfccj?J-=d$zit!LIbQXl{eEu>Faf2V-+v<+%5NFe@7U|_d6RjU z7v(>Is}lnHBN+OpMEx1|b;a=k7>Z=oml3GHXv(6j!p~-Qe3YoaLc59`1s|zLiQK3D zwuv3Kro`Vh+J7+Ge=??j0TWFDSpkctqOBqZ)vz3UCr!gcLeufjVYAVXsu)7G`on?@ z)p3V~8A@@xC`0w!!a)PKaF9mJNuG_+X$A{H44R3Dgc|W*vOdWEuthQ_sEOqjT2M1y z%gmq_)+;ii95c;=tcn!WTJC_spxN93faY)ufOA>7njo|VB+L=ol2s7PR@?&nJZ?)Q z(fGG!0q8*U@sQ9q_%GrI=mq)(R<>m&SXrnA9}Y5rYHE-H0keY^u_mBx$1VJAj}|l; zU zSbuFDYTsBOraHcNN89517mOFWVf`E6ZJ-LPBF0@RoIh?D#Sjg1c8xINXgMWA(Ecsw4Wp?e$ zpEj{;KfG4hwLj~<*IUOESto}MfTWsR2bR^DTL-Z^5FN}d5FWzH6S#FKB$``?u?m7Y zoLhij&25QWI)Ecsz})J_LqcotUkL#8I#RzQD?O|SLq}=Bhl7k^0=^mADrnVEj*cpE#X)p=eyZ*uaGhjXXq6EIBP;dtnFp>*FOF_ zXHwU!Rxq_fjujeE%V--tua`28Sy|Ef>NQ1iT5O-}X<0v9@Axo&hUs||`=L$Ak-1S28bT^+r)`v2R zu(gI1;I*oD=qG)8w$jI&Zj8$&Quyu@;Xk2}bwz7ApIN@?K$JrvMfd`ov*FJt3s*(F zFH0|v!y(1^)+1(8e;yrhZ4{GB!;p#jb`%9&ot=^I<8sT9QGbU|1D$qMa64&)H5!n& zywn#eqeTx*febiQWY)ut6^&`*O(D*qLAF$xhjglzHlmcT!gv~6tmPx?7@f|~jW~4; z#JIsiM@v$|vKr~p8T`;-;cSAVNFksz@y-G0LCWgGC7lIXHwGJ_;)cxARG{@*F>RYJ z3O_!B(%Gz5D;i7qiuXix4(r*=dc-yua-XsYg?HP5Z1L5`vCGBdxlj`=9DRt6HvGHD z25n$*ttE5u0G-E{M2p0Eo+&eiW3?@1MCU_3E*9W)8N|`Y*}s4d)iE^OHH`C1Bj0-A zb|5>-^Nucr45Qj?#f2bSp>RkSL5|soipTN#{gU#=qH@!SNvJCafCk6A0$r?i=kl=e zsgFlLi=q^vfbW;!BaTcmXkWZ+rA3$W>nu6y;2?|H6^ErPUdE~%=t_LNKrBG0h01cUiAGs{dZVkLG%lt| zZb3su1xhcN+~PXX`3^O=W?6| zydkw0cs3P(WTG~8m#OOwdMQt4Qx38j`_&HrN#k1(cQ>AMMx|`pO|90U@_pn+6%5RDL35?vmc<&KSnq`}EdY_h}zz;Sp8~1b1g{5U< zWMrfx7{e8crlHU3xq$ z7CnKFm~1m}JB|rkls#FLHR{w?TK?@?&M8M-<;6X+-Zuwc&2CYoY1rQZ?iYz zB)r&ejYaE(YyIN3`J7gK9{;FnmT=Adg6@R+;6)Z<*MEuIMHzY-ZTUKlUST2MsL`wZ kgreXzw6SO?ZxSKB4nc + + + + + + Introduction — OpenLP v2.0 documentation + + + + + + + + + + + + +
+
+
+
+ +
+

Introduction

+
    +
  • Thank you for using OpenLP
  • +
+
+ + +
+
+
+
+
+

Previous topic

+

Welcome to OpenLP’s documentation!

+

This Page

+ + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/documentation/source/manual/_build/html/_sources/Introduction.txt b/documentation/source/manual/_build/html/_sources/Introduction.txt new file mode 100644 index 000000000..4ab03d452 --- /dev/null +++ b/documentation/source/manual/_build/html/_sources/Introduction.txt @@ -0,0 +1,5 @@ +============= +Introduction +============= + +- Thank you for using OpenLP diff --git a/documentation/source/manual/_build/html/_sources/index.txt b/documentation/source/manual/_build/html/_sources/index.txt new file mode 100644 index 000000000..2e28abc7b --- /dev/null +++ b/documentation/source/manual/_build/html/_sources/index.txt @@ -0,0 +1,21 @@ +.. OpenLP documentation master file, created by + sphinx-quickstart on Thu Sep 30 21:24:54 2010. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to OpenLP's documentation! +================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + Introduction +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/documentation/source/manual/_build/html/_static/basic.css b/documentation/source/manual/_build/html/_static/basic.css new file mode 100644 index 000000000..69f30d4fb --- /dev/null +++ b/documentation/source/manual/_build/html/_static/basic.css @@ -0,0 +1,509 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +.align-left { + text-align: left; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/documentation/source/manual/_build/html/_static/default.css b/documentation/source/manual/_build/html/_static/default.css new file mode 100644 index 000000000..2a3ac1331 --- /dev/null +++ b/documentation/source/manual/_build/html/_static/default.css @@ -0,0 +1,256 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} \ No newline at end of file diff --git a/documentation/source/manual/_build/html/_static/doctools.js b/documentation/source/manual/_build/html/_static/doctools.js new file mode 100644 index 000000000..eeea95ea5 --- /dev/null +++ b/documentation/source/manual/_build/html/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for all documentation. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/documentation/source/manual/_build/html/_static/file.png b/documentation/source/manual/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/documentation/source/manual/_build/html/_static/jquery.js b/documentation/source/manual/_build/html/_static/jquery.js new file mode 100644 index 000000000..7c2430802 --- /dev/null +++ b/documentation/source/manual/_build/html/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/documentation/source/manual/_build/html/_static/minus.png b/documentation/source/manual/_build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/documentation/source/manual/_build/html/_static/pygments.css b/documentation/source/manual/_build/html/_static/pygments.css new file mode 100644 index 000000000..1a14f2ae1 --- /dev/null +++ b/documentation/source/manual/_build/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/documentation/source/manual/_build/html/_static/searchtools.js b/documentation/source/manual/_build/html/_static/searchtools.js new file mode 100644 index 000000000..5cbfe004b --- /dev/null +++ b/documentation/source/manual/_build/html/_static/searchtools.js @@ -0,0 +1,518 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('