This commit is contained in:
Andreas Preikschat 2010-09-26 16:59:59 +02:00
commit 8026eea0e6
41 changed files with 8741 additions and 3148 deletions

View File

@ -3,6 +3,7 @@ recursive-include openlp *.sqlite
recursive-include openlp *.csv
recursive-include openlp *.html
recursive-include openlp *.js
recursive-include openlp *.qm
recursive-include documentation *
recursive-include resources/forms *
recursive-include resources/i18n *

View File

@ -81,6 +81,9 @@ html_expands.append({u'desc':u'Italics', u'start tag':u'{it}',
u'start html':u'<em>', u'end tag':u'{/it}', u'end html':u'</em>',
u'protected':True})
# Image image_cache to stop regualar image resizing
image_cache = {}
def translate(context, text, comment=None):
"""
A special shortcut method to wrap around the Qt4 translation functions.
@ -220,7 +223,7 @@ def image_to_byte(image):
``image``
The image to converted.
"""
log.debug(u'image_to_byte')
log.debug(u'image_to_byte')
byte_array = QtCore.QByteArray()
# use buffer to store pixmap into byteArray
buffie = QtCore.QBuffer(byte_array)
@ -250,7 +253,7 @@ def resize_image(image, width, height, background=QtCore.Qt.black):
The background colour defaults to black.
"""
log.debug(u'resize_image')
log.debug(u'resize_image')
preview = QtGui.QImage(image)
if not preview.isNull():
# Only resize if different size
@ -258,6 +261,9 @@ def resize_image(image, width, height, background=QtCore.Qt.black):
return preview
preview = preview.scaled(width, height, QtCore.Qt.KeepAspectRatio,
QtCore.Qt.SmoothTransformation)
image_cache_key = u'%s%s%s' % (image, unicode(width), unicode(height))
if image_cache_key in image_cache:
return image_cache[image_cache_key]
realw = preview.width()
realh = preview.height()
# and move it to the centre of the preview space
@ -266,6 +272,7 @@ def resize_image(image, width, height, background=QtCore.Qt.black):
new_image.fill(background)
painter = QtGui.QPainter(new_image)
painter.drawImage((width - realw) / 2, (height - realh) / 2, preview)
image_cache[image_cache_key] = new_image
return new_image
def check_item_selected(list_widget, message):

View File

@ -333,7 +333,7 @@ def build_html(item, screen, alert, islive):
build_alert_css(alert, width),
build_footer_css(item, height),
build_lyrics_css(item, webkitvers),
u'true' if theme and theme.display_slideTransition and islive \
u'true' if theme and theme.display_slide_transition and islive \
else u'false',
image,
build_lyrics_html(item, webkitvers))
@ -370,18 +370,18 @@ def build_background_css(item, width, height):
background = \
u'background: ' \
u'-webkit-gradient(linear, left top, left bottom, ' \
'from(%s), to(%s))' % (theme.background_startColor,
theme.background_endColor)
'from(%s), to(%s))' % (theme.background_start_color,
theme.background_end_color)
elif theme.background_direction == u'vertical':
background = \
u'background: -webkit-gradient(linear, left top, ' \
u'right top, from(%s), to(%s))' % \
(theme.background_startColor, theme.background_endColor)
(theme.background_start_color, theme.background_end_color)
else:
background = \
u'background: -webkit-gradient(radial, %s 50%%, 100, %s ' \
u'50%%, %s, from(%s), to(%s))' % (width, width, width,
theme.background_startColor, theme.background_endColor)
theme.background_start_color, theme.background_end_color)
return background
def build_lyrics_css(item, webkitvers):
@ -500,15 +500,15 @@ def build_lyrics_format_css(theme, width, height):
Height of the lyrics block
"""
if theme.display_horizontalAlign == 2:
if theme.display_horizontal_align == 2:
align = u'center'
elif theme.display_horizontalAlign == 1:
elif theme.display_horizontal_align == 1:
align = u'right'
else:
align = u'left'
if theme.display_verticalAlign == 2:
if theme.display_vertical_align == 2:
valign = u'bottom'
elif theme.display_verticalAlign == 1:
elif theme.display_vertical_align == 1:
valign = u'middle'
else:
valign = u'top'
@ -576,7 +576,7 @@ def build_footer_css(item, height):
font-size: %spt;
color: %s;
text-align: left;
white-space:nowrap;
white-space:nowrap;
"""
theme = item.themedata
if not theme or not item.footer:

View File

@ -192,13 +192,15 @@ class RenderManager(object):
log.debug(u'generate preview')
# set the default image size for previews
self.calculate_default(self.screens.preview[u'size'])
verse = u'Amazing Grace!\n'\
'How sweet the sound\n'\
'To save a wretch like me;\n'\
'I once was lost but now am found,\n'\
'Was blind, but now I see.'
verse = u'The Lord said to {r}Noah{/r}: \n' \
'There\'s gonna be a {su}floody{/su}, {sb}floody{/sb}\n' \
'The Lord said to {g}Noah{/g}:\n' \
'There\'s gonna be a {st}floody{/st}, {it}floody{/it}\n' \
'Get those children out of the muddy, muddy \n' \
'{r}C{/r}{b}h{/b}{bl}i{/bl}{y}l{/y}{g}d{/g}{pk}' \
'r{/pk}{o}e{/o}{pp}n{/pp} of the Lord\n'
footer = []
footer.append(u'Amazing Grace (John Newton)' )
footer.append(u'Arky Arky (Unknown)' )
footer.append(u'Public Domain')
footer.append(u'CCLI 123456')
# build a service item to generate preview

View File

@ -27,6 +27,7 @@
Provide the theme XML and handling functions for OpenLP v2 themes.
"""
import os
import re
from xml.dom.minidom import Document
from xml.etree.ElementTree import ElementTree, XML
@ -86,6 +87,13 @@ class ThemeLevel(object):
Service = 2
Song = 3
boolean_list = [u'italics', u'override', u'outline', u'shadow', \
u'slide_transition']
integer_list =[u'proportion', u'line_adjustment', u'x', u'height', u'y', \
u'width', u'shadow_size', u'outline_size', u'horizontal_align', \
u'vertical_align', u'wrap_style' ]
class ThemeXML(object):
"""
A class to encapsulate the Theme XML.
@ -326,16 +334,14 @@ class ThemeXML(object):
def dump_xml(self):
"""
Dump the XML to file.
Dump the XML to file used for debugging
"""
# Debugging aid to see what we have
return self.theme_xml.toprettyxml(indent=u' ')
def extract_xml(self):
"""
Pull out the XML string.
Print out the XML string.
"""
# Print our newly created XML
return self.theme_xml.toxml(u'utf-8').decode(u'utf-8')
def extract_formatted_xml(self):
@ -372,33 +378,37 @@ class ThemeXML(object):
if element.getchildren():
master = element.tag + u'_'
else:
#background transparent tags have no children so special case
# background transparent tags have no children so special case
if element.tag == u'background':
for e in element.attrib.iteritems():
setattr(self, element.tag + u'_' + e[0], e[1])
self._create_attr(element.tag , e[0], e[1])
if element.attrib:
for e in element.attrib.iteritems():
if master == u'font_' and e[0] == u'type':
master += e[1] + u'_'
elif master == u'display_' and (element.tag == u'shadow' \
or element.tag == u'outline' ):
et = str_to_bool(element.text)
setattr(self, master + element.tag, et)
setattr(self, master + element.tag + u'_'+ e[0], e[1])
self._create_attr(master, element.tag, element.text)
self._create_attr(master, element.tag + u'_'+ e[0], e[1])
else:
field = master + e[0]
if e[1] == u'True' or e[1] == u'False':
setattr(self, field, str_to_bool(e[1]))
else:
setattr(self, field, e[1])
self._create_attr(master, e[0], e[1])
else:
if element.tag:
field = master + element.tag
element.text = element.text.strip().lstrip()
if element.text == u'True' or element.text == u'False':
setattr(self, field, str_to_bool(element.text))
else:
setattr(self, field, element.text)
self._create_attr(master , element.tag, element.text)
def _create_attr(self, master , element, value):
"""
Create the attributes with the correct data types and name format
"""
field = self._de_hump(element)
if field in boolean_list:
setattr(self, master + field, str_to_bool(value))
elif field in integer_list:
setattr(self, master + field, int(value))
else:
setattr(self, master + field, unicode(value))
def __str__(self):
"""
@ -409,3 +419,11 @@ class ThemeXML(object):
if key[0:1] != u'_':
theme_strings.append(u'%30s: %s' % (key, getattr(self, key)))
return u'\n'.join(theme_strings)
def _de_hump(self, name):
"""
Change Camel Case string to python string
"""
s1 = re.sub(u'(.)([A-Z][a-z]+)', r'\1_\2', name)
return re.sub(u'([a-z0-9])([A-Z])', r'\1_\2', s1).lower()

View File

@ -37,6 +37,7 @@ class HideMode(object):
Theme = 2
Screen = 3
from filerenameform import FileRenameForm
from maindisplay import MainDisplay
from slidecontroller import HideMode
from servicenoteform import ServiceNoteForm

View File

@ -150,8 +150,8 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
unicode(self.theme.background_color))
elif self.theme.background_type == u'gradient':
new_theme.add_background_gradient(
unicode(self.theme.background_startColor),
unicode(self.theme.background_endColor),
unicode(self.theme.background_start_color),
unicode(self.theme.background_end_color),
self.theme.background_direction)
else:
filename = \
@ -185,10 +185,10 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
unicode(self.theme.display_shadow_color),
unicode(self.theme.display_outline),
unicode(self.theme.display_outline_color),
unicode(self.theme.display_horizontalAlign),
unicode(self.theme.display_verticalAlign),
unicode(self.theme.display_wrapStyle),
unicode(self.theme.display_slideTransition),
unicode(self.theme.display_horizontal_align),
unicode(self.theme.display_vertical_align),
unicode(self.theme.display_wrap_style),
unicode(self.theme.display_slide_transition),
unicode(self.theme.display_shadow_size),
unicode(self.theme.display_outline_size))
theme = new_theme.extract_xml()
@ -217,7 +217,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.imageLineEdit.setText(filename)
self.theme.background_filename = filename
self.previewTheme()
#
# Main Font Tab
#
@ -301,7 +300,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
if self.theme.font_main_height != self.fontMainHeightSpinBox.value():
self.theme.font_main_height = self.fontMainHeightSpinBox.value()
self.previewTheme()
#
# Footer Font Tab
#
@ -382,7 +380,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.theme.font_footer_height = \
self.fontFooterHeightSpinBox.value()
self.previewTheme()
#
# Background Tab
#
@ -407,10 +404,10 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.theme.background_direction = u'vertical'
else:
self.theme.background_direction = u'circular'
if self.theme.background_startColor is None:
self.theme.background_startColor = u'#000000'
if self.theme.background_endColor is None:
self.theme.background_endColor = u'#ff0000'
if self.theme.background_start_color is None:
self.theme.background_start_color = u'#000000'
if self.theme.background_end_color is None:
self.theme.background_end_color = u'#ff0000'
self.imageLineEdit.setText(u'')
else:
self.theme.background_type = u'image'
@ -427,22 +424,21 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
unicode(self.theme.background_color))
else:
new_color = QtGui.QColorDialog.getColor(
QtGui.QColor(self.theme.background_startColor), self)
QtGui.QColor(self.theme.background_start_color), self)
if new_color.isValid():
self.theme.background_startColor = new_color.name()
self.theme.background_start_color = new_color.name()
self.color1PushButton.setStyleSheet(u'background-color: %s' %
unicode(self.theme.background_startColor))
unicode(self.theme.background_start_color))
self.previewTheme()
def onColor2PushButtonClicked(self):
new_color = QtGui.QColorDialog.getColor(
QtGui.QColor(self.theme.background_endColor), self)
QtGui.QColor(self.theme.background_end_color), self)
if new_color.isValid():
self.theme.background_endColor = new_color.name()
self.theme.background_end_color = new_color.name()
self.color2PushButton.setStyleSheet(u'background-color: %s' %
unicode(self.theme.background_endColor))
unicode(self.theme.background_end_color))
self.previewTheme()
#
# Other Tab
#
@ -483,9 +479,9 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
def onSlideTransitionCheckBoxChanged(self, value):
if value == 2: # checked
self.theme.display_slideTransition = True
self.theme.display_slide_transition = True
else:
self.theme.display_slideTransition = False
self.theme.display_slide_transition = False
self.stateChanging(self.theme)
self.previewTheme()
@ -499,15 +495,14 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.previewTheme()
def onHorizontalComboBoxSelected(self, currentIndex):
self.theme.display_horizontalAlign = currentIndex
self.theme.display_horizontal_align = currentIndex
self.stateChanging(self.theme)
self.previewTheme()
def onVerticalComboBoxSelected(self, currentIndex):
self.theme.display_verticalAlign = currentIndex
self.theme.display_vertical_align = currentIndex
self.stateChanging(self.theme)
self.previewTheme()
#
# Local Methods
#
@ -598,13 +593,13 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.shadowCheckBox.setChecked(False)
self.shadowColorPushButton.setEnabled(False)
self.shadowSpinBox.setValue(int(self.theme.display_shadow_size))
if self.theme.display_slideTransition:
if self.theme.display_slide_transition:
self.slideTransitionCheckBox.setCheckState(QtCore.Qt.Checked)
else:
self.slideTransitionCheckBox.setCheckState(QtCore.Qt.Unchecked)
self.horizontalComboBox.setCurrentIndex(
self.theme.display_horizontalAlign)
self.verticalComboBox.setCurrentIndex(self.theme.display_verticalAlign)
self.theme.display_horizontal_align)
self.verticalComboBox.setCurrentIndex(self.theme.display_vertical_align)
def stateChanging(self, theme):
self.backgroundTypeComboBox.setVisible(True)
@ -625,9 +620,9 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.gradientComboBox.setVisible(False)
elif theme.background_type == u'gradient':
self.color1PushButton.setStyleSheet(u'background-color: %s' \
% unicode(theme.background_startColor))
% unicode(theme.background_start_color))
self.color2PushButton.setStyleSheet(u'background-color: %s' \
% unicode(theme.background_endColor))
% unicode(theme.background_end_color))
self.color1Label.setText(
translate('OpenLP.AmendThemeForm', 'First color:'))
self.color2Label.setText(

View File

@ -27,7 +27,6 @@
from PyQt4 import QtCore, QtGui
from exceptiondialog import Ui_ExceptionDialog
from openlp.core.lib import translate
class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog):
"""

View File

@ -0,0 +1,59 @@
# -*- 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 #
###############################################################################
from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate
class Ui_FileRenameDialog(object):
def setupUi(self, FileRenameDialog):
FileRenameDialog.setObjectName("FileRenameDialog")
FileRenameDialog.resize(400, 87)
self.buttonBox = QtGui.QDialogButtonBox(FileRenameDialog)
self.buttonBox.setGeometry(QtCore.QRect(210, 50, 171, 25))
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.widget = QtGui.QWidget(FileRenameDialog)
self.widget.setGeometry(QtCore.QRect(10, 10, 381, 35))
self.widget.setObjectName("widget")
self.horizontalLayout = QtGui.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.FileRenameLabel = QtGui.QLabel(self.widget)
self.FileRenameLabel.setObjectName("FileRenameLabel")
self.horizontalLayout.addWidget(self.FileRenameLabel)
self.FileNameEdit = QtGui.QLineEdit(self.widget)
self.FileNameEdit.setObjectName("FileNameEdit")
self.horizontalLayout.addWidget(self.FileNameEdit)
self.retranslateUi(FileRenameDialog)
QtCore.QMetaObject.connectSlotsByName(FileRenameDialog)
def retranslateUi(self, FileRenameDialog):
FileRenameDialog.setWindowTitle(translate('OpenLP.FileRenameForm',
'File Rename'))
self.FileRenameLabel.setText(translate('OpenLP.FileRenameForm',
'New File Name:'))

View File

@ -0,0 +1,42 @@
# -*- 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 #
###############################################################################
from PyQt4 import QtCore, QtGui
from filerenamedialog import Ui_FileRenameDialog
from openlp.core.lib import translate
class FileRenameForm(QtGui.QDialog, Ui_FileRenameDialog):
"""
The exception dialog
"""
def __init__(self, parent):
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'),
self.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'),
self.reject)

View File

@ -183,6 +183,9 @@ class MainDisplay(DisplayWidget):
The slide text to be displayed
"""
log.debug(u'text')
# Wait for the webview to update before displayiong text.
while not self.loaded:
Receiver.send_message(u'openlp_process_events')
self.frame.evaluateJavaScript(u'show_text("%s")' % \
slide.replace(u'\\', u'\\\\').replace(u'\"', u'\\\"'))
return self.preview()
@ -234,8 +237,11 @@ class MainDisplay(DisplayWidget):
Display an image, as is.
"""
if image:
js = u'show_image("data:image/png;base64,%s");' % \
image_to_byte(image)
if isinstance(image, QtGui.QImage):
js = u'show_image("data:image/png;base64,%s");' % \
image_to_byte(image)
else:
js = u'show_image("data:image/png;base64,%s");' % image
else:
js = u'show_image("");'
self.frame.evaluateJavaScript(js)
@ -246,7 +252,7 @@ class MainDisplay(DisplayWidget):
Used after Image plugin has changed the background
"""
log.debug(u'resetImage')
self.displayImage(self.serviceItem.bg_frame)
self.displayImage(self.serviceItem.bg_image_bytes)
def resetVideo(self):
"""
@ -318,7 +324,7 @@ class MainDisplay(DisplayWidget):
# Wait for the fade to finish before geting the preview.
# Important otherwise preview will have incorrect text if at all !
if self.serviceItem.themedata and \
self.serviceItem.themedata.display_slideTransition:
self.serviceItem.themedata.display_slide_transition:
while self.frame.evaluateJavaScript(u'show_text_complete()') \
.toString() == u'false':
Receiver.send_message(u'openlp_process_events')

View File

@ -343,7 +343,7 @@ class Ui_MainWindow(object):
Set up the translation system
"""
MainWindow.mainTitle = translate('OpenLP.MainWindow', 'OpenLP 2.0')
MainWindow.language = translate('OpenLP.MainWindow', 'English')
# MainWindow.language = translate('OpenLP.MainWindow', 'English')
MainWindow.setWindowTitle(MainWindow.mainTitle)
self.FileMenu.setTitle(translate('OpenLP.MainWindow', '&File'))
self.FileImportMenu.setTitle(translate('OpenLP.MainWindow', '&Import'))

View File

@ -236,7 +236,7 @@ class ServiceManager(QtGui.QWidget):
self.addToAction = self.dndMenu.addAction(
translate('OpenLP.ServiceManager', '&Add to Selected Item'))
self.addToAction.setIcon(build_icon(u':/general/general_edit.png'))
#build the context menu
# build the context menu
self.menu = QtGui.QMenu()
self.editAction = self.menu.addAction(
translate('OpenLP.ServiceManager', '&Edit Item'))
@ -559,7 +559,7 @@ class ServiceManager(QtGui.QWidget):
QtCore.QVariant(item[u'order']))
for count, frame in enumerate(serviceitem.get_frames()):
treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
text = frame[u'title']
text = frame[u'title'].replace(u'\n', u' ')
treewidgetitem1.setText(0, text[:40])
treewidgetitem1.setData(0, QtCore.Qt.UserRole,
QtCore.QVariant(count))

View File

@ -32,7 +32,7 @@ import logging
from xml.etree.ElementTree import ElementTree, XML
from PyQt4 import QtCore, QtGui
from openlp.core.ui import AmendThemeForm
from openlp.core.ui import AmendThemeForm, FileRenameForm
from openlp.core.theme import Theme
from openlp.core.lib import OpenLPToolbar, context_menu_action, \
ThemeXML, str_to_bool, get_text_file_string, build_icon, Receiver, \
@ -54,6 +54,7 @@ class ThemeManager(QtGui.QWidget):
self.layout.setSpacing(0)
self.layout.setMargin(0)
self.amendThemeForm = AmendThemeForm(self)
self.fileRenameForm = FileRenameForm(self)
self.toolbar = OpenLPToolbar(self)
self.toolbar.addToolbarButton(
translate('OpenLP.ThemeManager', 'New Theme'),
@ -87,31 +88,32 @@ class ThemeManager(QtGui.QWidget):
self.themeListWidget.setAlternatingRowColors(True)
self.themeListWidget.setIconSize(QtCore.QSize(88, 50))
self.layout.addWidget(self.themeListWidget)
self.themeListWidget.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.themeListWidget.addAction(
context_menu_action(self.themeListWidget,
u':/themes/theme_edit.png',
translate('OpenLP.ThemeManager', '&Edit Theme'),
self.onEditTheme))
self.themeListWidget.addAction(
context_menu_separator(self.themeListWidget))
self.themeListWidget.addAction(
context_menu_action(self.themeListWidget,
u':/general/general_delete.png',
translate('OpenLP.ThemeManager', '&Delete Theme'),
self.onDeleteTheme))
self.themeListWidget.addAction(
context_menu_action(self.themeListWidget,
u':/general/general_export.png',
translate('OpenLP.ThemeManager', 'Set As &Global Default'),
self.changeGlobalFromScreen))
self.themeListWidget.addAction(
context_menu_action(self.themeListWidget,
u':/general/general_export.png',
translate('OpenLP.ThemeManager', 'E&xport Theme'),
self.onExportTheme))
self.themeListWidget.addAction(
context_menu_separator(self.themeListWidget))
self.themeListWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
QtCore.QObject.connect(self.themeListWidget,
QtCore.SIGNAL('customContextMenuRequested(QPoint)'),
self.contextMenu)
# build the context menu
self.menu = QtGui.QMenu()
self.editAction = self.menu.addAction(
translate('OpenLP.ThemeManager', '&Edit Theme'))
self.editAction.setIcon(build_icon(u':/themes/theme_edit.png'))
self.copyAction = self.menu.addAction(
translate('OpenLP.ThemeManager', '&Copy Theme'))
self.copyAction.setIcon(build_icon(u':/themes/theme_edit.png'))
self.renameAction = self.menu.addAction(
translate('OpenLP.ThemeManager', '&Rename Theme'))
self.renameAction.setIcon(build_icon(u':/themes/theme_edit.png'))
self.deleteAction = self.menu.addAction(
translate('OpenLP.ThemeManager', '&Delete Theme'))
self.deleteAction.setIcon(build_icon(u':/general/general_delete.png'))
self.sep1 = self.menu.addAction(u'')
self.sep1.setSeparator(True)
self.globalAction = self.menu.addAction(
translate('OpenLP.ThemeManager', 'Set As &Global Default'))
self.globalAction.setIcon(build_icon(u':/general/general_export.png'))
self.exportAction = self.menu.addAction(
translate('OpenLP.ThemeManager', '&Export Theme'))
self.exportAction.setIcon(build_icon(u':/general/general_export.png'))
#Signals
QtCore.QObject.connect(self.themeListWidget,
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'),
@ -132,6 +134,34 @@ class ThemeManager(QtGui.QWidget):
self.settingsSection + u'/global theme',
QtCore.QVariant(u'')).toString())
def contextMenu(self, point):
item = self.themeListWidget.itemAt(point)
if item is None:
return
realThemeName = unicode(item.data(QtCore.Qt.UserRole).toString())
themeName = unicode(item.text())
self.deleteAction.setVisible(False)
self.renameAction.setVisible(False)
self.globalAction.setVisible(False)
# If default theme restrict actions
if realThemeName == themeName:
self.deleteAction.setVisible(True)
self.renameAction.setVisible(True)
self.globalAction.setVisible(True)
action = self.menu.exec_(self.themeListWidget.mapToGlobal(point))
if action == self.editAction:
self.onEditTheme()
if action == self.copyAction:
self.onCopyTheme()
if action == self.renameAction:
self.onRenameTheme()
if action == self.deleteAction:
self.onDeleteTheme()
if action == self.globalAction:
self.changeGlobalFromScreen()
if action == self.exportAction:
self.onExportTheme()
def changeGlobalFromTab(self, themeName):
"""
Change the global theme when it is changed through the Themes settings
@ -189,6 +219,92 @@ class ThemeManager(QtGui.QWidget):
self.saveThemeName = u''
self.amendThemeForm.exec_()
def onRenameTheme(self):
"""
Renames an existing theme to a new name
"""
item = self.themeListWidget.currentItem()
oldThemeName = unicode(item.data(QtCore.Qt.UserRole).toString())
self.fileRenameForm.FileNameEdit.setText(oldThemeName)
self.saveThemeName = u''
if self.fileRenameForm.exec_():
newThemeName = unicode(self.fileRenameForm.FileNameEdit.text())
oldThemeData = self.getThemeData(oldThemeName)
self.deleteTheme(oldThemeName)
self.cloneThemeData(oldThemeData, newThemeName)
def onCopyTheme(self):
"""
Copies an existing theme to a new name
"""
item = self.themeListWidget.currentItem()
oldThemeName = unicode(item.data(QtCore.Qt.UserRole).toString())
self.fileRenameForm.FileNameEdit.setText(oldThemeName)
self.saveThemeName = u''
if self.fileRenameForm.exec_():
newThemeName = unicode(self.fileRenameForm.FileNameEdit.text())
oldThemeData = self.getThemeData(oldThemeName)
self.cloneThemeData(oldThemeData, newThemeName)
self.loadThemes()
def cloneThemeData(self, oldThemeData, newThemeName):
"""
"""
log.debug(u'cloneThemeData')
new_theme = ThemeXML()
new_theme.new_document(newThemeName)
save_from = None
save_to = None
if oldThemeData.background_type == u'solid':
new_theme.add_background_solid(
unicode(oldThemeData.background_color))
elif oldThemeData.background_type == u'gradient':
new_theme.add_background_gradient(
unicode(oldThemeData.background_start_color),
unicode(oldThemeData.background_end_color),
oldThemeData.background_direction)
else:
filename = \
os.path.split(unicode(oldThemeData.background_filename))[1]
new_theme.add_background_image(filename)
save_to = os.path.join(self.path, theme_name, filename)
save_from = oldThemeData.background_filename
new_theme.add_font(unicode(oldThemeData.font_main_name),
unicode(oldThemeData.font_main_color),
unicode(oldThemeData.font_main_proportion),
unicode(oldThemeData.font_main_override), u'main',
unicode(oldThemeData.font_main_weight),
unicode(oldThemeData.font_main_italics),
unicode(oldThemeData.font_main_line_adjustment),
unicode(oldThemeData.font_main_x),
unicode(oldThemeData.font_main_y),
unicode(oldThemeData.font_main_width),
unicode(oldThemeData.font_main_height))
new_theme.add_font(unicode(oldThemeData.font_footer_name),
unicode(oldThemeData.font_footer_color),
unicode(oldThemeData.font_footer_proportion),
unicode(oldThemeData.font_footer_override), u'footer',
unicode(oldThemeData.font_footer_weight),
unicode(oldThemeData.font_footer_italics),
0, # line adjustment
unicode(oldThemeData.font_footer_x),
unicode(oldThemeData.font_footer_y),
unicode(oldThemeData.font_footer_width),
unicode(oldThemeData.font_footer_height))
new_theme.add_display(unicode(oldThemeData.display_shadow),
unicode(oldThemeData.display_shadow_color),
unicode(oldThemeData.display_outline),
unicode(oldThemeData.display_outline_color),
unicode(oldThemeData.display_horizontal_align),
unicode(oldThemeData.display_vertical_align),
unicode(oldThemeData.display_wrap_style),
unicode(oldThemeData.display_slide_transition),
unicode(oldThemeData.display_shadow_size),
unicode(oldThemeData.display_outline_size))
theme = new_theme.extract_xml()
pretty_theme = new_theme.extract_formatted_xml()
self.saveTheme(newThemeName, theme, pretty_theme, save_from, save_to)
def onEditTheme(self):
"""
Loads the settings for the theme that is to be edited and launches the
@ -462,11 +578,7 @@ class ThemeManager(QtGui.QWidget):
log.exception(u'Theme XML is not UTF-8 '
u'encoded.')
break
if self.checkVersion1(xml_data):
# upgrade theme xml
filexml = self.migrateVersion122(xml_data)
else:
filexml = xml_data
filexml = self.checkVersionAndConvert(xml_data)
outfile = open(fullpath, u'w')
outfile.write(filexml.encode(u'utf-8'))
else:
@ -492,20 +604,21 @@ class ThemeManager(QtGui.QWidget):
if outfile:
outfile.close()
def checkVersion1(self, xmlfile):
def checkVersionAndConvert(self, xml_data):
"""
Check if a theme is from OpenLP version 1
``xmlfile``
``xml_data``
Theme XML to check the version of
"""
log.debug(u'checkVersion1 ')
theme = xmlfile.encode(u'ascii', u'xmlcharrefreplace')
theme = xml_data.encode(u'ascii', u'xmlcharrefreplace')
tree = ElementTree(element=XML(theme)).getroot()
# look for old version 1 tags
if tree.find(u'BackgroundType') is None:
return False
return xml_data
else:
return True
return self.migrateVersion122(xml_data)
def migrateVersion122(self, xml_data):
"""
@ -699,61 +812,5 @@ class ThemeManager(QtGui.QWidget):
"""
theme = ThemeXML()
theme.parse(theme_xml)
self.cleanTheme(theme)
theme.extend_image_filename(path)
return theme
def cleanTheme(self, theme):
"""
Clean a theme loaded from an XML file by removing stray whitespace and
making sure parameters are the correct type for the theme object
attributes
"""
theme.background_color = theme.background_color.strip()
theme.background_direction = theme.background_direction.strip()
theme.background_endColor = theme.background_endColor.strip()
if theme.background_filename:
theme.background_filename = theme.background_filename.strip()
#theme.background_mode
theme.background_startColor = theme.background_startColor.strip()
#theme.background_type
if theme.display_display:
theme.display_display = theme.display_display.strip()
theme.display_horizontalAlign = \
int(theme.display_horizontalAlign.strip())
theme.display_outline = str_to_bool(theme.display_outline)
#theme.display_outline_color
theme.display_shadow = str_to_bool(theme.display_shadow)
#theme.display_shadow_color
theme.display_verticalAlign = int(theme.display_verticalAlign.strip())
theme.display_wrapStyle = theme.display_wrapStyle.strip()
theme.display_slideTransition = theme.display_slideTransition
theme.font_footer_color = theme.font_footer_color.strip()
theme.font_footer_height = int(theme.font_footer_height.strip())
theme.font_footer_italics = str_to_bool(theme.font_footer_italics)
theme.font_footer_name = theme.font_footer_name.strip()
#theme.font_footer_override
theme.font_footer_proportion = \
int(theme.font_footer_proportion.strip())
theme.font_footer_weight = theme.font_footer_weight.strip()
theme.font_footer_width = int(theme.font_footer_width.strip())
theme.font_footer_x = int(theme.font_footer_x.strip())
theme.font_footer_y = int(theme.font_footer_y.strip())
theme.font_main_color = theme.font_main_color.strip()
theme.font_main_height = int(theme.font_main_height.strip())
theme.font_main_italics = str_to_bool(theme.font_main_italics)
theme.font_main_name = theme.font_main_name.strip()
#theme.font_main_override
theme.font_main_proportion = int(theme.font_main_proportion.strip())
theme.font_main_weight = theme.font_main_weight.strip()
theme.font_main_width = int(theme.font_main_width.strip())
theme.font_main_x = int(theme.font_main_x.strip())
theme.font_main_y = int(theme.font_main_y.strip())
#theme.theme_mode
theme.theme_name = theme.theme_name.strip()
#theme.theme_version
# Remove the Transparent settings as they are not relevent
if theme.background_mode == u'transparent':
theme.background_mode = u'opaque'
theme.background_type = u'solid'
theme.background_startColor = u'#000000'

View File

@ -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,15 +108,13 @@ class LanguageManager(object):
``action``
The language menu option
"""
if action is None:
action_name = u'en'
else:
language = u'en'
if action:
action_name = u'%s' % action.objectName()
qm_list = LanguageManager.get_qm_list()
if LanguageManager.auto_language:
language = u'[%s]' % qm_list[action_name]
else:
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)
@ -132,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():

View File

@ -35,7 +35,7 @@ class ImagePlugin(Plugin):
log.info(u'Image Plugin loaded')
def __init__(self, plugin_helpers):
Plugin.__init__(self, u'Images', u'1.9.3', plugin_helpers)
Plugin.__init__(self, u'Images', u'1.9.4', plugin_helpers)
self.weight = -7
self.icon_path = u':/plugins/plugin_images.png'
self.icon = build_icon(self.icon_path)

View File

@ -187,8 +187,7 @@ class ImageMediaItem(MediaManagerItem):
for item in items:
bitem = self.listView.item(item.row())
filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
frame = QtGui.QImage(unicode(filename))
self.parent.liveController.display.image(frame)
self.parent.liveController.display.image(filename)
self.resetButton.setVisible(True)
def onPreviewClick(self):

View File

@ -218,6 +218,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
self.CCLNumberEdit.setText(self.song.ccli_number)
else:
self.CCLNumberEdit.setText(u'')
if self.song.song_number:
self.songBookNumberEdit.setText(self.song.song_number)
else:
self.songBookNumberEdit.setText(u'')
# lazy xml migration for now
self.VerseListWidget.clear()
self.VerseListWidget.setRowCount(0)
@ -604,7 +609,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
self.song = Song()
item = int(self.SongbookCombo.currentIndex())
text = unicode(self.SongbookCombo.currentText())
if item == 0 and text:
if self.SongbookCombo.findText(text, QtCore.Qt.MatchExactly) < 0:
if QtGui.QMessageBox.question(self,
translate('SongsPlugin.EditSongForm', 'Add Book'),
translate('SongsPlugin.EditSongForm', 'This song book does '
@ -613,7 +618,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes:
book = Book.populate(name=text, publisher=u'')
self.songmanager.save_object(book)
self.song.book = book
else:
return
if self.saveSong():
@ -629,11 +633,17 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
self.song.alternate_title = unicode(self.AlternativeEdit.text())
self.song.copyright = unicode(self.CopyrightEditItem.text())
self.song.search_title = self.song.title + u'@' + \
unicode(self.AlternativeEdit.text())
self.song.alternate_title
self.song.comments = unicode(self.CommentsEdit.toPlainText())
self.song.verse_order = unicode(self.VerseOrderEdit.text())
self.song.ccli_number = unicode(self.CCLNumberEdit.text())
self.song.song_number = unicode(self.songBookNumberEdit.text())
book_name = unicode(self.SongbookCombo.currentText())
if book_name:
self.song.book = self.songmanager.get_object_filtered(Book,
Book.name == book_name)
else:
self.song.book = None
if self._validate_song():
self.processLyrics()
self.processTitle()
@ -669,7 +679,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
unicode(self.VerseListWidget.item(i, 0).text())) + u' '
if (bits[1] > u'1') and (bits[0][0] not in multiple):
multiple.append(bits[0][0])
self.song.search_lyrics = text
self.song.search_lyrics = text.lower()
self.song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
for verse in multiple:
self.song.verse_order = re.sub(u'([' + verse.upper() +
@ -682,4 +692,4 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
def processTitle(self):
log.debug(u'processTitle')
self.song.search_title = re.sub(r'[\'"`,;:(){}?]+', u'',
unicode(self.song.search_title))
unicode(self.song.search_title)).lower()

View File

@ -30,8 +30,8 @@ from openlp.core.lib import build_icon, translate
class Ui_SongImportWizard(object):
def setupUi(self, songImportWizard):
openIcon = build_icon(u':/general/general_open.png')
deleteIcon = build_icon(u':/general/general_delete.png')
self.openIcon = build_icon(u':/general/general_open.png')
self.deleteIcon = build_icon(u':/general/general_delete.png')
songImportWizard.setObjectName(u'songImportWizard')
songImportWizard.resize(550, 386)
songImportWizard.setModal(True)
@ -88,16 +88,6 @@ class Ui_SongImportWizard(object):
self.formatComboBox.sizePolicy().hasHeightForWidth())
self.formatComboBox.setSizePolicy(sizePolicy)
self.formatComboBox.setObjectName(u'formatComboBox')
self.formatComboBox.addItem(u'')
self.formatComboBox.addItem(u'')
self.formatComboBox.addItem(u'')
self.formatComboBox.addItem(u'')
self.formatComboBox.addItem(u'')
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,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
@ -106,362 +96,28 @@ class Ui_SongImportWizard(object):
self.formatStackedWidget = QtGui.QStackedWidget(self.sourcePage)
self.formatStackedWidget.setObjectName(u'FormatStackedWidget')
# OpenLP 2.0
self.openLP2Page = QtGui.QWidget()
self.openLP2Page.setObjectName(u'openLP2Page')
self.openLP2Layout = QtGui.QFormLayout(self.openLP2Page)
self.openLP2Layout.setMargin(0)
self.openLP2Layout.setSpacing(8)
self.openLP2Layout.setObjectName(u'openLP2Layout')
self.openLP2FilenameLabel = QtGui.QLabel(self.openLP2Page)
self.openLP2FilenameLabel.setObjectName(u'openLP2FilenameLabel')
self.openLP2Layout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.openLP2FilenameLabel)
self.openLP2FileLayout = QtGui.QHBoxLayout()
self.openLP2FileLayout.setSpacing(8)
self.openLP2FileLayout.setObjectName(u'openLP2FileLayout')
self.openLP2FilenameEdit = QtGui.QLineEdit(self.openLP2Page)
self.openLP2FilenameEdit.setObjectName(u'openLP2FilenameEdit')
self.openLP2FileLayout.addWidget(self.openLP2FilenameEdit)
self.openLP2BrowseButton = QtGui.QToolButton(self.openLP2Page)
self.openLP2BrowseButton.setIcon(openIcon)
self.openLP2BrowseButton.setObjectName(u'openLP2BrowseButton')
self.openLP2FileLayout.addWidget(self.openLP2BrowseButton)
self.openLP2Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.openLP2FileLayout)
self.formatStackedWidget.addWidget(self.openLP2Page)
self.addSingleFileSelectItem(u'openLP2')
# openlp.org 1.x
self.openLP1Page = QtGui.QWidget()
self.openLP1Page.setObjectName(u'openLP1Page')
self.openLP1Layout = QtGui.QVBoxLayout(self.openLP1Page)
self.openLP1Layout.setMargin(0)
self.openLP1Layout.setSpacing(0)
self.openLP1Layout.setObjectName(u'openLP1Layout')
self.openLP1DisabledWidget = QtGui.QWidget(self.openLP1Page)
self.openLP1DisabledLayout = QtGui.QVBoxLayout(self.openLP1DisabledWidget)
self.openLP1DisabledLayout.setMargin(0)
self.openLP1DisabledLayout.setSpacing(8)
self.openLP1DisabledLayout.setObjectName(u'openLP1DisabledLayout')
self.openLP1DisabledLabel = QtGui.QLabel(self.openLP1DisabledWidget)
self.openLP1DisabledLabel.setWordWrap(True)
self.openLP1DisabledLabel.setObjectName(u'openLP1DisabledLabel')
self.openLP1DisabledLayout.addWidget(self.openLP1DisabledLabel)
self.openLP1DisabledWidget.setVisible(False)
self.openLP1Layout.addWidget(self.openLP1DisabledWidget)
self.openLP1ImportWidget = QtGui.QWidget(self.openLP1Page)
self.openLP1ImportLayout = QtGui.QFormLayout(self.openLP1ImportWidget)
self.openLP1ImportLayout.setMargin(0)
self.openLP1ImportLayout.setSpacing(8)
self.openLP1ImportLayout.setObjectName(u'openLP1ImportLayout')
self.openLP1FilenameLabel = QtGui.QLabel(self.openLP1ImportWidget)
self.openLP1FilenameLabel.setObjectName(u'openLP1FilenameLabel')
self.openLP1ImportLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.openLP1FilenameLabel)
self.openLP1FileLayout = QtGui.QHBoxLayout()
self.openLP1FileLayout.setSpacing(8)
self.openLP1FileLayout.setObjectName(u'openLP1FileLayout')
self.openLP1FilenameEdit = QtGui.QLineEdit(self.openLP1ImportWidget)
self.openLP1FilenameEdit.setObjectName(u'openLP1FilenameEdit')
self.openLP1FileLayout.addWidget(self.openLP1FilenameEdit)
self.openLP1BrowseButton = QtGui.QToolButton(self.openLP1ImportWidget)
self.openLP1BrowseButton.setIcon(openIcon)
self.openLP1BrowseButton.setObjectName(u'openLP1BrowseButton')
self.openLP1FileLayout.addWidget(self.openLP1BrowseButton)
self.openLP1ImportLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.openLP1FileLayout)
self.openLP1Layout.addWidget(self.openLP1ImportWidget)
self.formatStackedWidget.addWidget(self.openLP1Page)
self.addSingleFileSelectItem(u'openLP1', None, True)
# OpenLyrics
self.openLyricsPage = QtGui.QWidget()
self.openLyricsPage.setObjectName(u'OpenLyricsPage')
self.openLyricsLayout = QtGui.QVBoxLayout(self.openLyricsPage)
self.openLyricsLayout.setSpacing(8)
self.openLyricsLayout.setMargin(0)
self.openLyricsLayout.setObjectName(u'OpenLyricsLayout')
self.openLyricsDisabledLabel = QtGui.QLabel(self.openLyricsPage)
self.openLyricsDisabledLabel.setWordWrap(True)
self.openLyricsDisabledLabel.setObjectName(u'openLyricsDisabledLabel')
self.openLyricsLayout.addWidget(self.openLyricsDisabledLabel)
# Commented out for future use.
#self.openLyricsFileListWidget = QtGui.QListWidget(self.openLyricsPage)
#self.openLyricsFileListWidget.setSelectionMode(
# QtGui.QAbstractItemView.ExtendedSelection)
#self.openLyricsFileListWidget.setObjectName(u'OpenLyricsFileListWidget')
#self.openLyricsLayout.addWidget(self.openLyricsFileListWidget)
#self.openLyricsButtonLayout = QtGui.QHBoxLayout()
#self.openLyricsButtonLayout.setSpacing(8)
#self.openLyricsButtonLayout.setObjectName(u'OpenLyricsButtonLayout')
#self.openLyricsAddButton = QtGui.QPushButton(self.openLyricsPage)
#self.openLyricsAddButton.setIcon(openIcon)
#self.openLyricsAddButton.setObjectName(u'OpenLyricsAddButton')
#self.openLyricsButtonLayout.addWidget(self.openLyricsAddButton)
#self.openLyricsButtonSpacer = QtGui.QSpacerItem(40, 20,
# QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
#self.openLyricsButtonLayout.addItem(self.openLyricsButtonSpacer)
#self.openLyricsRemoveButton = QtGui.QPushButton(self.openLyricsPage)
#self.openLyricsRemoveButton.setIcon(deleteIcon)
#self.openLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton')
#self.openLyricsButtonLayout.addWidget(self.openLyricsRemoveButton)
#self.openLyricsLayout.addLayout(self.openLyricsButtonLayout)
self.formatStackedWidget.addWidget(self.openLyricsPage)
self.addMultiFileSelectItem(u'openLyrics', u'OpenLyrics', True)
# set OpenLyrics to disabled by default
self.openLyricsDisabledWidget.setVisible(True)
self.openLyricsImportWidget.setVisible(False)
# Open Song
self.openSongPage = QtGui.QWidget()
self.openSongPage.setObjectName(u'OpenSongPage')
self.openSongLayout = QtGui.QVBoxLayout(self.openSongPage)
self.openSongLayout.setSpacing(8)
self.openSongLayout.setMargin(0)
self.openSongLayout.setObjectName(u'OpenSongLayout')
self.openSongFileListWidget = QtGui.QListWidget(self.openSongPage)
self.openSongFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.openSongFileListWidget.setObjectName(u'OpenSongFileListWidget')
self.openSongLayout.addWidget(self.openSongFileListWidget)
self.openSongButtonLayout = QtGui.QHBoxLayout()
self.openSongButtonLayout.setSpacing(8)
self.openSongButtonLayout.setObjectName(u'OpenSongButtonLayout')
self.openSongAddButton = QtGui.QPushButton(self.openSongPage)
self.openSongAddButton.setIcon(openIcon)
self.openSongAddButton.setObjectName(u'OpenSongAddButton')
self.openSongButtonLayout.addWidget(self.openSongAddButton)
self.openSongButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.openSongButtonLayout.addItem(self.openSongButtonSpacer)
self.openSongRemoveButton = QtGui.QPushButton(self.openSongPage)
self.openSongRemoveButton.setIcon(deleteIcon)
self.openSongRemoveButton.setObjectName(u'OpenSongRemoveButton')
self.openSongButtonLayout.addWidget(self.openSongRemoveButton)
self.openSongLayout.addLayout(self.openSongButtonLayout)
self.formatStackedWidget.addWidget(self.openSongPage)
self.addMultiFileSelectItem(u'openSong', u'OpenSong')
# Words of Worship
self.wordsOfWorshipPage = QtGui.QWidget()
self.wordsOfWorshipPage.setObjectName(u'wordsOfWorshipPage')
self.wordsOfWorshipLayout = QtGui.QVBoxLayout(self.wordsOfWorshipPage)
self.wordsOfWorshipLayout.setSpacing(8)
self.wordsOfWorshipLayout.setMargin(0)
self.wordsOfWorshipLayout.setObjectName(u'wordsOfWorshipLayout')
self.wordsOfWorshipFileListWidget = QtGui.QListWidget(
self.wordsOfWorshipPage)
self.wordsOfWorshipFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.wordsOfWorshipFileListWidget.setObjectName(
u'wordsOfWorshipFileListWidget')
self.wordsOfWorshipLayout.addWidget(self.wordsOfWorshipFileListWidget)
self.wordsOfWorshipButtonLayout = QtGui.QHBoxLayout()
self.wordsOfWorshipButtonLayout.setSpacing(8)
self.wordsOfWorshipButtonLayout.setObjectName(
u'wordsOfWorshipButtonLayout')
self.wordsOfWorshipAddButton = QtGui.QPushButton(
self.wordsOfWorshipPage)
self.wordsOfWorshipAddButton.setIcon(openIcon)
self.wordsOfWorshipAddButton.setObjectName(u'wordsOfWorshipAddButton')
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipAddButton)
self.wordsOfWorshipButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.wordsOfWorshipButtonLayout.addItem(self.wordsOfWorshipButtonSpacer)
self.wordsOfWorshipRemoveButton = QtGui.QPushButton(
self.wordsOfWorshipPage)
self.wordsOfWorshipRemoveButton.setIcon(deleteIcon)
self.wordsOfWorshipRemoveButton.setObjectName(
u'wordsOfWorshipRemoveButton')
self.wordsOfWorshipButtonLayout.addWidget(
self.wordsOfWorshipRemoveButton)
self.wordsOfWorshipLayout.addLayout(self.wordsOfWorshipButtonLayout)
self.formatStackedWidget.addWidget(self.wordsOfWorshipPage)
self.addMultiFileSelectItem(u'wordsOfWorship')
# CCLI File import
self.ccliPage = QtGui.QWidget()
self.ccliPage.setObjectName(u'ccliPage')
self.ccliLayout = QtGui.QVBoxLayout(self.ccliPage)
self.ccliLayout.setSpacing(8)
self.ccliLayout.setMargin(0)
self.ccliLayout.setObjectName(u'ccliLayout')
self.ccliFileListWidget = QtGui.QListWidget(self.ccliPage)
self.ccliFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.ccliFileListWidget.setObjectName(u'ccliFileListWidget')
self.ccliLayout.addWidget(self.ccliFileListWidget)
self.ccliButtonLayout = QtGui.QHBoxLayout()
self.ccliButtonLayout.setSpacing(8)
self.ccliButtonLayout.setObjectName(u'ccliButtonLayout')
self.ccliAddButton = QtGui.QPushButton(self.ccliPage)
self.ccliAddButton.setIcon(openIcon)
self.ccliAddButton.setObjectName(u'ccliAddButton')
self.ccliButtonLayout.addWidget(self.ccliAddButton)
self.ccliButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.ccliButtonLayout.addItem(self.ccliButtonSpacer)
self.ccliRemoveButton = QtGui.QPushButton(self.ccliPage)
self.ccliRemoveButton.setIcon(deleteIcon)
self.ccliRemoveButton.setObjectName(u'ccliRemoveButton')
self.ccliButtonLayout.addWidget(self.ccliRemoveButton)
self.ccliLayout.addLayout(self.ccliButtonLayout)
self.formatStackedWidget.addWidget(self.ccliPage)
self.addMultiFileSelectItem(u'ccli')
# Songs of Fellowship
self.songsOfFellowshipPage = QtGui.QWidget()
self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
self.songsOfFellowshipLayout = QtGui.QVBoxLayout(
self.songsOfFellowshipPage)
self.songsOfFellowshipLayout.setMargin(0)
self.songsOfFellowshipLayout.setSpacing(0)
self.songsOfFellowshipLayout.setObjectName(u'songsOfFellowshipLayout')
self.songsOfFellowshipDisabledWidget = QtGui.QWidget(
self.songsOfFellowshipPage)
self.songsOfFellowshipDisabledWidget.setVisible(False)
self.songsOfFellowshipDisabledWidget.setObjectName(
u'songsOfFellowshipDisabledWidget')
self.songsOfFellowshipDisabledLayout = QtGui.QVBoxLayout(
self.songsOfFellowshipDisabledWidget)
self.songsOfFellowshipDisabledLayout.setMargin(0)
self.songsOfFellowshipDisabledLayout.setSpacing(8)
self.songsOfFellowshipDisabledLayout.setObjectName(
u'songsOfFellowshipDisabledLayout')
self.songsOfFellowshipDisabledLabel = QtGui.QLabel(
self.songsOfFellowshipDisabledWidget)
self.songsOfFellowshipDisabledLabel.setWordWrap(True)
self.songsOfFellowshipDisabledLabel.setObjectName(
u'songsOfFellowshipDisabledLabel')
self.songsOfFellowshipDisabledLayout.addWidget(
self.songsOfFellowshipDisabledLabel)
self.songsOfFellowshipLayout.addWidget(
self.songsOfFellowshipDisabledWidget)
self.songsOfFellowshipImportWidget = QtGui.QWidget(
self.songsOfFellowshipPage)
self.songsOfFellowshipImportWidget.setObjectName(
u'songsOfFellowshipImportWidget')
self.songsOfFellowshipImportLayout = QtGui.QVBoxLayout(
self.songsOfFellowshipImportWidget)
self.songsOfFellowshipImportLayout.setMargin(0)
self.songsOfFellowshipImportLayout.setSpacing(8)
self.songsOfFellowshipImportLayout.setObjectName(
u'songsOfFellowshipImportLayout')
self.songsOfFellowshipFileListWidget = QtGui.QListWidget(
self.songsOfFellowshipImportWidget)
self.songsOfFellowshipFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.songsOfFellowshipFileListWidget.setObjectName(
u'songsOfFellowshipFileListWidget')
self.songsOfFellowshipImportLayout.addWidget(
self.songsOfFellowshipFileListWidget)
self.songsOfFellowshipButtonLayout = QtGui.QHBoxLayout()
self.songsOfFellowshipButtonLayout.setSpacing(8)
self.songsOfFellowshipButtonLayout.setObjectName(
u'songsOfFellowshipButtonLayout')
self.songsOfFellowshipAddButton = QtGui.QPushButton(
self.songsOfFellowshipImportWidget)
self.songsOfFellowshipAddButton.setIcon(openIcon)
self.songsOfFellowshipAddButton.setObjectName(
u'songsOfFellowshipAddButton')
self.songsOfFellowshipButtonLayout.addWidget(
self.songsOfFellowshipAddButton)
self.songsOfFellowshipButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.songsOfFellowshipButtonLayout.addItem(
self.songsOfFellowshipButtonSpacer)
self.songsOfFellowshipRemoveButton = QtGui.QPushButton(
self.songsOfFellowshipImportWidget)
self.songsOfFellowshipRemoveButton.setIcon(deleteIcon)
self.songsOfFellowshipRemoveButton.setObjectName(
u'songsOfFellowshipRemoveButton')
self.songsOfFellowshipButtonLayout.addWidget(
self.songsOfFellowshipRemoveButton)
self.songsOfFellowshipImportLayout.addLayout(
self.songsOfFellowshipButtonLayout)
self.songsOfFellowshipLayout.addWidget(
self.songsOfFellowshipImportWidget)
self.formatStackedWidget.addWidget(self.songsOfFellowshipPage)
self.addMultiFileSelectItem(u'songsOfFellowship', None, True)
# Generic Document/Presentation import
self.genericPage = QtGui.QWidget()
self.genericPage.setObjectName(u'genericPage')
self.genericLayout = QtGui.QVBoxLayout(self.genericPage)
self.genericLayout.setMargin(0)
self.genericLayout.setSpacing(0)
self.genericLayout.setObjectName(u'genericLayout')
self.genericDisabledWidget = QtGui.QWidget(self.genericPage)
self.genericDisabledWidget.setObjectName(u'genericDisabledWidget')
self.genericDisabledLayout = QtGui.QVBoxLayout(self.genericDisabledWidget)
self.genericDisabledLayout.setMargin(0)
self.genericDisabledLayout.setSpacing(8)
self.genericDisabledLayout.setObjectName(u'genericDisabledLayout')
self.genericDisabledLabel = QtGui.QLabel(self.genericDisabledWidget)
self.genericDisabledLabel.setWordWrap(True)
self.genericDisabledLabel.setObjectName(u'genericDisabledLabel')
self.genericDisabledWidget.setVisible(False)
self.genericDisabledLayout.addWidget(self.genericDisabledLabel)
self.genericLayout.addWidget(self.genericDisabledWidget)
self.genericImportWidget = QtGui.QWidget(self.genericPage)
self.genericImportWidget.setObjectName(u'genericImportWidget')
self.genericImportLayout = QtGui.QVBoxLayout(self.genericImportWidget)
self.genericImportLayout.setMargin(0)
self.genericImportLayout.setSpacing(8)
self.genericImportLayout.setObjectName(u'genericImportLayout')
self.genericFileListWidget = QtGui.QListWidget(self.genericImportWidget)
self.genericFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.genericFileListWidget.setObjectName(u'genericFileListWidget')
self.genericImportLayout.addWidget(self.genericFileListWidget)
self.genericButtonLayout = QtGui.QHBoxLayout()
self.genericButtonLayout.setSpacing(8)
self.genericButtonLayout.setObjectName(u'genericButtonLayout')
self.genericAddButton = QtGui.QPushButton(self.genericImportWidget)
self.genericAddButton.setIcon(openIcon)
self.genericAddButton.setObjectName(u'genericAddButton')
self.genericButtonLayout.addWidget(self.genericAddButton)
self.genericButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.genericButtonLayout.addItem(self.genericButtonSpacer)
self.genericRemoveButton = QtGui.QPushButton(self.genericImportWidget)
self.genericRemoveButton.setIcon(deleteIcon)
self.genericRemoveButton.setObjectName(u'genericRemoveButton')
self.genericButtonLayout.addWidget(self.genericRemoveButton)
self.genericImportLayout.addLayout(self.genericButtonLayout)
self.genericLayout.addWidget(self.genericImportWidget)
self.formatStackedWidget.addWidget(self.genericPage)
self.addMultiFileSelectItem(u'generic', None, True)
# EasyWorship
self.ewPage = QtGui.QWidget()
self.ewPage.setObjectName(u'ewPage')
self.ewLayout = QtGui.QFormLayout(self.ewPage)
self.ewLayout.setMargin(0)
self.ewLayout.setSpacing(8)
self.ewLayout.setObjectName(u'ewLayout')
self.ewFilenameLabel = QtGui.QLabel(self.ewPage)
self.ewFilenameLabel.setObjectName(u'ewFilenameLabel')
self.ewLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.ewFilenameLabel)
self.ewFileLayout = QtGui.QHBoxLayout()
self.ewFileLayout.setSpacing(8)
self.ewFileLayout.setObjectName(u'ewFileLayout')
self.ewFilenameEdit = QtGui.QLineEdit(self.ewPage)
self.ewFilenameEdit.setObjectName(u'ewFilenameEdit')
self.ewFileLayout.addWidget(self.ewFilenameEdit)
self.ewBrowseButton = QtGui.QToolButton(self.ewPage)
self.ewBrowseButton.setIcon(openIcon)
self.ewBrowseButton.setObjectName(u'ewBrowseButton')
self.ewFileLayout.addWidget(self.ewBrowseButton)
self.ewLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.ewFileLayout)
self.formatStackedWidget.addWidget(self.ewPage)
self.addSingleFileSelectItem(u'ew')
# Commented out for future use.
# self.csvPage = QtGui.QWidget()
# self.csvPage.setObjectName(u'CSVPage')
# self.csvLayout = QtGui.QFormLayout(self.csvPage)
# self.csvLayout.setMargin(0)
# self.csvLayout.setSpacing(8)
# self.csvLayout.setObjectName(u'CSVLayout')
# self.csvFilenameLabel = QtGui.QLabel(self.csvPage)
# self.csvFilenameLabel.setObjectName(u'CSVFilenameLabel')
# self.csvLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
# self.csvFilenameLabel)
# self.csvFileLayout = QtGui.QHBoxLayout()
# self.csvFileLayout.setSpacing(8)
# self.csvFileLayout.setObjectName(u'CSVFileLayout')
# self.csvFilenameEdit = QtGui.QLineEdit(self.csvPage)
# self.csvFilenameEdit.setObjectName(u'CSVFilenameEdit')
# self.csvFileLayout.addWidget(self.csvFilenameEdit)
# self.csvBrowseButton = QtGui.QToolButton(self.csvPage)
# self.csvBrowseButton.setIcon(openIcon)
# self.csvBrowseButton.setObjectName(u'CSVBrowseButton')
# self.csvFileLayout.addWidget(self.csvBrowseButton)
# self.csvLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
# self.csvFileLayout)
# self.formatStackedWidget.addWidget(self.csvPage)
# self.addSingleFileSelectItem(u'csv', u'CSV')
self.sourceLayout.addWidget(self.formatStackedWidget)
songImportWizard.addPage(self.sourcePage)
self.importPage = QtGui.QWizardPage()
@ -593,3 +249,123 @@ class Ui_SongImportWizard(object):
translate('SongsPlugin.ImportWizardForm', 'Ready.'))
self.importProgressBar.setFormat(
translate('SongsPlugin.ImportWizardForm', '%p%'))
def addSingleFileSelectItem(self, prefix, obj_prefix=None,
can_disable=False):
if not obj_prefix:
obj_prefix = prefix
page = QtGui.QWidget()
page.setObjectName(obj_prefix + u'Page')
if can_disable:
importWidget = self.disablableWidget(page, prefix, obj_prefix)
else:
importWidget = page
importLayout = QtGui.QFormLayout(importWidget)
importLayout.setMargin(0)
importLayout.setSpacing(8)
if can_disable:
importLayout.setObjectName(obj_prefix + u'ImportLayout')
else:
importLayout.setObjectName(obj_prefix + u'Layout')
filenameLabel = QtGui.QLabel(importWidget)
filenameLabel.setObjectName(obj_prefix + u'FilenameLabel')
importLayout.setWidget(0, QtGui.QFormLayout.LabelRole, filenameLabel)
fileLayout = QtGui.QHBoxLayout()
fileLayout.setSpacing(8)
fileLayout.setObjectName(obj_prefix + u'FileLayout')
filenameEdit = QtGui.QLineEdit(importWidget)
filenameEdit.setObjectName(obj_prefix + u'FilenameEdit')
fileLayout.addWidget(filenameEdit)
browseButton = QtGui.QToolButton(importWidget)
browseButton.setIcon(self.openIcon)
browseButton.setObjectName(obj_prefix + u'BrowseButton')
fileLayout.addWidget(browseButton)
importLayout.setLayout(0, QtGui.QFormLayout.FieldRole, fileLayout)
self.formatStackedWidget.addWidget(page)
setattr(self, prefix + u'Page', page)
setattr(self, prefix + u'FilenameLabel', filenameLabel)
setattr(self, prefix + u'FileLayout', fileLayout)
setattr(self, prefix + u'FilenameEdit', filenameEdit)
setattr(self, prefix + u'BrowseButton', browseButton)
if can_disable:
setattr(self, prefix + u'ImportLayout', importLayout)
else:
setattr(self, prefix + u'Layout', importLayout)
self.formatComboBox.addItem(u'')
def addMultiFileSelectItem(self, prefix, obj_prefix=None,
can_disable=False):
if not obj_prefix:
obj_prefix = prefix
page = QtGui.QWidget()
page.setObjectName(obj_prefix + u'Page')
if can_disable:
importWidget = self.disablableWidget(page, prefix, obj_prefix)
else:
importWidget = page
importLayout = QtGui.QVBoxLayout(importWidget)
importLayout.setMargin(0)
importLayout.setSpacing(8)
if can_disable:
importLayout.setObjectName(obj_prefix + u'ImportLayout')
else:
importLayout.setObjectName(obj_prefix + u'Layout')
fileListWidget = QtGui.QListWidget(importWidget)
fileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
fileListWidget.setObjectName(obj_prefix + u'FileListWidget')
importLayout.addWidget(fileListWidget)
buttonLayout = QtGui.QHBoxLayout()
buttonLayout.setSpacing(8)
buttonLayout.setObjectName(obj_prefix + u'ButtonLayout')
addButton = QtGui.QPushButton(importWidget)
addButton.setIcon(self.openIcon)
addButton.setObjectName(obj_prefix + u'AddButton')
buttonLayout.addWidget(addButton)
buttonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
buttonLayout.addItem(buttonSpacer)
removeButton = QtGui.QPushButton(importWidget)
removeButton.setIcon(self.deleteIcon)
removeButton.setObjectName(obj_prefix + u'RemoveButton')
buttonLayout.addWidget(removeButton)
importLayout.addLayout(buttonLayout)
self.formatStackedWidget.addWidget(page)
setattr(self, prefix + u'Page', page)
setattr(self, prefix + u'FileListWidget', fileListWidget)
setattr(self, prefix + u'ButtonLayout', buttonLayout)
setattr(self, prefix + u'ButtonSpacer', buttonSpacer)
setattr(self, prefix + u'AddButton', addButton)
setattr(self, prefix + u'RemoveButton', removeButton)
if can_disable:
setattr(self, prefix + u'ImportLayout', importLayout)
else:
setattr(self, prefix + u'Layout', importLayout)
self.formatComboBox.addItem(u'')
def disablableWidget(self, page, prefix, obj_prefix):
layout = QtGui.QVBoxLayout(page)
layout.setMargin(0)
layout.setSpacing(0)
layout.setObjectName(obj_prefix + u'Layout')
disabledWidget = QtGui.QWidget(page)
disabledWidget.setVisible(False)
disabledWidget.setObjectName(obj_prefix + u'DisabledWidget')
disabledLayout = QtGui.QVBoxLayout(disabledWidget)
disabledLayout.setMargin(0)
disabledLayout.setSpacing(8)
disabledLayout.setObjectName(obj_prefix + u'DisabledLayout')
disabledLabel = QtGui.QLabel(disabledWidget)
disabledLabel.setWordWrap(True)
disabledLabel.setObjectName(obj_prefix + u'DisabledLabel')
disabledLayout.addWidget(disabledLabel)
layout.addWidget(disabledWidget)
importWidget = QtGui.QWidget(page)
importWidget.setObjectName(obj_prefix + u'ImportWidget')
layout.addWidget(importWidget)
setattr(self, prefix + u'Layout', layout)
setattr(self, prefix + u'DisabledWidget', disabledWidget)
setattr(self, prefix + u'DisabledLayout', disabledLayout)
setattr(self, prefix + u'DisabledLabel', disabledLabel)
setattr(self, prefix + u'ImportWidget', importWidget)
return importWidget

View File

@ -1,6 +1,28 @@
# -*- 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, Jeffrey Smith #
# --------------------------------------------------------------------------- #
# 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:`ewimport` module provides the functionality for importing
EasyWorship song databases into the current installation database.
@ -10,6 +32,7 @@ import sys
import os
import struct
from openlp.core.lib import translate
from songimport import SongImport
def strip_rtf(blob):
@ -146,27 +169,44 @@ class EasyWorshipSongImport(SongImport):
raw_record = db_file.read(record_size)
self.fields = self.record_struct.unpack(raw_record)
self.set_defaults()
self.title = self.get_field(fi_title)
self.import_wizard.incrementProgressBar(
u'Importing "%s"...' % self.title, 0)
self.copyright = self.get_field(fi_copy) + \
u', Administered by ' + self.get_field(fi_admin)
self.ccli_number = self.get_field(fi_ccli)
# Format the lyrics
if self.stop_import_flag:
success = False
break
words = self.get_field(fi_words)
words = strip_rtf(words)
for verse in words.split(u'\n\n'):
self.add_verse(verse.strip(), u'V')
# Split up the authors
# Get title and update progress bar message
title = self.get_field(fi_title)
if title:
self.import_wizard.incrementProgressBar(
unicode(translate('SongsPlugin.ImportWizardForm',
'Importing "%s"...')) % title, 0)
self.title = title
# Get remaining fields
copy = self.get_field(fi_copy)
admin = self.get_field(fi_admin)
ccli = self.get_field(fi_ccli)
authors = self.get_field(fi_author)
author_list = authors.split(u'/')
if len(author_list) < 2:
author_list = authors.split(u',')
for author_name in author_list:
self.add_author(author_name.strip())
words = self.get_field(fi_words)
# Set the SongImport object members
if copy:
self.copyright = copy
if admin:
if copy:
self.copyright += u', '
self.copyright += \
unicode(translate('SongsPlugin.ImportWizardForm',
'Administered by %s')) % admin
if ccli:
self.ccli_number = ccli
if authors:
# Split up the authors
author_list = authors.split(u'/')
if len(author_list) < 2:
author_list = authors.split(u';')
if len(author_list) < 2:
author_list = authors.split(u',')
for author_name in author_list:
self.add_author(author_name.strip())
if words:
# Format the lyrics
words = strip_rtf(words)
for verse in words.split(u'\n\n'):
self.add_verse(verse.strip(), u'V')
if self.stop_import_flag:
success = False
break
@ -214,12 +254,12 @@ class EasyWorshipSongImport(SongImport):
def get_field(self, field_desc_index):
field = self.fields[field_desc_index]
field_desc = self.field_descs[field_desc_index]
# Check for 'blank' entries
# Return None in case of 'blank' entries
if isinstance(field, str):
if len(field.rstrip('\0')) == 0:
return u''
return None
elif field == 0:
return 0
return None
# Format the field depending on the field type
if field_desc.type == 1:
# string
@ -235,19 +275,20 @@ class EasyWorshipSongImport(SongImport):
return (field ^ 0x80 == 1)
elif field_desc.type == 0x0c or field_desc.type == 0x0d:
# Memo or Blob
sub_block, block_start, blob_size = \
struct.unpack_from('<bhxi', field, len(field)-10)
self.memo_file.seek(block_start * 256)
block_start, blob_size = \
struct.unpack_from('<II', field, len(field)-10)
sub_block = block_start & 0xff;
block_start &= ~0xff
self.memo_file.seek(block_start)
memo_block_type, = struct.unpack('b', self.memo_file.read(1))
if memo_block_type == 2:
self.memo_file.seek(8, os.SEEK_CUR)
elif memo_block_type == 3:
if sub_block < 0 or sub_block > 63:
if sub_block > 63:
return u'';
self.memo_file.seek(11 + (5 * sub_block), os.SEEK_CUR)
sub_block_start, = struct.unpack('B', self.memo_file.read(1))
self.memo_file.seek((block_start * 256) +
(sub_block_start * 16))
self.memo_file.seek(block_start + (sub_block_start * 16))
else:
return u'';
return self.memo_file.read(blob_size)

View File

@ -166,13 +166,13 @@ class SongMediaItem(MediaManagerItem):
if search_type == 0:
log.debug(u'Titles Search')
search_results = self.parent.manager.get_all_objects(Song,
Song.search_title.like(u'%' + search_keywords + u'%'),
Song.search_title.like(u'%' + search_keywords.lower() + u'%'),
Song.search_title.asc())
self.displayResultsSong(search_results)
elif search_type == 1:
log.debug(u'Lyrics Search')
search_results = self.parent.manager.get_all_objects(Song,
Song.search_lyrics.like(u'%' + search_keywords + u'%'),
Song.search_lyrics.like(u'%' + search_keywords.lower() + u'%'),
Song.search_lyrics.asc())
self.displayResultsSong(search_results)
elif search_type == 2:

View File

@ -55,6 +55,7 @@ class SongImport(QtCore.QObject):
self.set_defaults()
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'songs_stop_import'), self.stop_import)
def set_defaults(self):
"""
Create defaults for properties - call this before each song
@ -262,8 +263,8 @@ class SongImport(QtCore.QObject):
log.info(u'commiting song %s to database', self.title)
song = Song()
song.title = self.title
song.search_title = self.remove_punctuation(self.title) \
+ '@' + self.alternate_title
song.search_title = self.remove_punctuation(self.title).lower() \
+ '@' + self.remove_punctuation(self.alternate_title).lower()
song.song_number = self.song_number
song.search_lyrics = u''
verses_changed_to_other = {}
@ -291,6 +292,7 @@ class SongImport(QtCore.QObject):
versetag = newversetag
sxml.add_verse_to_lyrics(versetype, versetag[1:], versetext)
song.search_lyrics += u' ' + self.remove_punctuation(versetext)
song.search_lyrics = song.search_lyrics.lower()
song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
for i, current_verse_tag in enumerate(self.verse_order_list):
if verses_changed_to_other.has_key(current_verse_tag):

0
openlp/plugins/songs/lib/test/test3.opensong Executable file → Normal file
View File

View File

@ -63,7 +63,7 @@ class SongsPlugin(Plugin):
log.info(u'Songs Initialising')
Plugin.initialise(self)
self.mediaItem.displayResultsSong(
self.manager.get_all_objects(Song, order_by_ref=Song.title))
self.manager.get_all_objects(Song, order_by_ref=Song.search_title))
def getMediaManagerItem(self):
"""
@ -140,7 +140,7 @@ class SongsPlugin(Plugin):
Song.theme_name == oldTheme)
for song in songsUsingTheme:
song.theme_name = newTheme
self.custommanager.save_object(song)
self.manager.save_object(song)
def importSongs(self, format, **kwargs):
class_ = SongFormat.get_class(format)

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FileRenameDialog</class>
<widget class="QWidget" name="FileRenameDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>87</height>
</rect>
</property>
<property name="windowTitle">
<string>File Rename</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>210</x>
<y>50</y>
<width>171</width>
<height>25</height>
</rect>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>381</width>
<height>27</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="FileRenameLabel">
<property name="text">
<string>New File Name:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="FileNameEdit"/>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,95 +1,893 @@
<ui version="4.0" >
<class>ThemeWizard</class>
<widget class="QWizard" name="ThemeWizard" >
<property name="windowModality" >
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry" >
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Wizard</class>
<widget class="QWizard" name="Wizard">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>576</width>
<height>397</height>
<width>559</width>
<height>487</height>
</rect>
</property>
<property name="windowTitle" >
<property name="windowTitle">
<string>Theme Wizard</string>
</property>
<property name="modal" >
<property name="modal">
<bool>true</bool>
</property>
<property name="wizardStyle" >
<property name="wizardStyle">
<enum>QWizard::ModernStyle</enum>
</property>
<property name="options" >
<set>QWizard::DisabledBackButtonOnLastPage|QWizard::IndependentPages|QWizard::NoBackButtonOnStartPage|QWizard::NoCancelButton</set>
<property name="options">
<set>QWizard::HaveCustomButton1|QWizard::NoBackButtonOnStartPage</set>
</property>
<widget class="QWizardPage" name="WelcomePage" >
<property name="title" >
<string>Welcome</string>
</property>
<property name="subTitle" >
<widget class="QWizardPage" name="WelcomePage">
<property name="title">
<string/>
</property>
<widget class="QLabel" name="WelcomeLabel" >
<property name="geometry" >
<rect>
<x>20</x>
<y>100</y>
<width>341</width>
<height>31</height>
</rect>
<property name="subTitle">
<string/>
</property>
<layout class="QHBoxLayout" name="WelcomeLayout">
<property name="spacing">
<number>8</number>
</property>
<property name="text" >
<string>Welcome to the Theme Wizard. This wizard will guide you through the process of creating a new theme.</string>
<property name="margin">
<number>0</number>
</property>
<property name="wordWrap" >
<bool>true</bool>
</property>
</widget>
<item>
<widget class="QLabel" name="ImportBibleImage">
<property name="minimumSize">
<size>
<width>163</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>163</width>
<height>16777215</height>
</size>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images/openlp-2.qrc">:/wizards/wizard_importbible.bmp</pixmap>
</property>
<property name="indent">
<number>0</number>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="WelcomePageLayout">
<property name="spacing">
<number>8</number>
</property>
<item>
<widget class="QLabel" name="TitleLabel">
<property name="text">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:14pt; font-weight:600;&quot;&gt;Welcome to the Theme Wizard&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<spacer name="WelcomeTopSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="InformationLabel">
<property name="text">
<string>This wizard will help you to maintain Themes . Click the next button below to start the process..</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>10</number>
</property>
</widget>
</item>
<item>
<spacer name="WelcomeBottomSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWizardPage" name="NamePage" >
<property name="title" >
<string>Theme Name</string>
<widget class="QWizardPage" name="BackgroundPage">
<property name="title">
<string>Select Import Source</string>
</property>
<property name="subTitle" >
<string>Choose a name for your theme</string>
<property name="subTitle">
<string>Select the import format, and where to import from.</string>
</property>
<widget class="QLabel" name="NameLabel" >
<property name="geometry" >
<rect>
<x>100</x>
<y>130</y>
<width>91</width>
<height>17</height>
</rect>
<layout class="QFormLayout" name="formLayout">
<property name="labelAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="text" >
<string>Theme Name:</string>
</property>
</widget>
<widget class="QLineEdit" name="NameEdit" >
<property name="geometry" >
<rect>
<x>200</x>
<y>127</y>
<width>261</width>
<height>22</height>
</rect>
</property>
</widget>
<item row="0" column="0">
<layout class="QHBoxLayout" name="BackgroundlLayout">
<item>
<widget class="QLabel" name="BackgroundLabel">
<property name="text">
<string>Background:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="BackgroundComboBox">
<item>
<property name="text">
<string>Opaque</string>
</property>
</item>
<item>
<property name="text">
<string>Transparent</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="BackgroundTypeLabel">
<property name="text">
<string>Background Type:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="BackgroundTypeComboBox">
<item>
<property name="text">
<string>Solid Color</string>
</property>
</item>
<item>
<property name="text">
<string>Gradient</string>
</property>
</item>
<item>
<property name="text">
<string>Image</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="Color1Label">
<property name="text">
<string>&lt;Color1&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="Color1PushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="Color2Label">
<property name="text">
<string>&lt;Color2&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="Color2PushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<layout class="QHBoxLayout" name="GradientLayout">
<item>
<widget class="QLabel" name="GradientLabel">
<property name="text">
<string>Gradient :</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="GradientComboBox">
<item>
<property name="text">
<string>Horizontal</string>
</property>
</item>
<item>
<property name="text">
<string>Vertical</string>
</property>
</item>
<item>
<property name="text">
<string>Circular</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="4" column="0" colspan="2">
<layout class="QHBoxLayout" name="ImageLayout">
<item>
<widget class="QLabel" name="ImageLabel">
<property name="text">
<string>Image:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="ImageLineEdit"/>
</item>
<item>
<widget class="QToolButton" name="ImageToolButton">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWizardPage" name="BackgroundPage" >
<property name="title" >
<string>Select Background</string>
<widget class="QWizardPage" name="FontMainPage">
<property name="title">
<string>Main Area Font Details</string>
</property>
<property name="subTitle" >
<string>Select a background type and configure your background</string>
<property name="subTitle">
<string>Define the font and display charaistics for the Display text</string>
</property>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="1">
<widget class="QLabel" name="FontMainlabel">
<property name="text">
<string>Font:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QFontComboBox" name="FontMainComboBox"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="FontMainColorLabel">
<property name="text">
<string>Font Color:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="FontMainColorPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="FontMainSize">
<property name="text">
<string>Size:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="FontMainSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>pt</string>
</property>
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>16</number>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="FontMainWrapIndentationLabel">
<property name="text">
<string>Wrap Indentation</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QSpinBox" name="FontMainLineSpacingSpinBox"/>
</item>
<item row="8" column="0">
<widget class="QLabel" name="FontMainLinesPageLabel">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="OutlineEnabledLabel_2">
<property name="text">
<string>Show Outline:</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QCheckBox" name="OutlineCheckBox_2">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="OutlineColorLabel_2">
<property name="text">
<string>Outline Color:</string>
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="QPushButton" name="OutlineColorPushButton_2">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="ShadowEnabledLabel_2">
<property name="text">
<string>Show Shadow:</string>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QCheckBox" name="ShadowCheckBox_2">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="15" column="0">
<widget class="QLabel" name="ShadowColorLabel_2">
<property name="text">
<string>Shadow Color:</string>
</property>
</widget>
</item>
<item row="16" column="1">
<widget class="QPushButton" name="ShadowColorPushButton_2">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWizardPage" name="FontFooterPage">
<property name="title">
<string>Footer Area Font Details</string>
</property>
<property name="subTitle">
<string>Define the font and display charaistics for the Footer text</string>
</property>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="FontFooterLabel">
<property name="text">
<string>Font:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QFontComboBox" name="FontFooterComboBox"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="FontFooterColorLabel">
<property name="text">
<string>Font Color:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="FontFooterColorPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="FontFooterSizeLabel">
<property name="text">
<string>Size:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="FontFooterSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>pt</string>
</property>
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="OutlineEnabledLabel">
<property name="text">
<string>Show Outline:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="OutlineCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="ShadowColorLabel">
<property name="text">
<string>Shadow Color:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="OutlineColorPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="ShadowEnabledLabel">
<property name="text">
<string>Show Shadow:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="ShadowCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="OutlineColorLabel">
<property name="text">
<string>Outline Color:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="ShadowColorPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWizardPage" name="DisplayCharactisticsPage">
<property name="title">
<string>Text Display Layout</string>
</property>
<property name="subTitle">
<string>Allows you to change and move the Main and Footer areas.</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QCheckBox" name="FontFooterDefaultCheckBox">
<property name="text">
<string/>
</property>
<property name="tristate">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1" colspan="2">
<widget class="QLabel" name="label">
<property name="text">
<string>Main Area</string>
</property>
</widget>
</item>
<item row="0" column="3" colspan="2">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Footer Area</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="FontMainXLabel">
<property name="text">
<string>X Position:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="FontMainXSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="FontFooterXLabel">
<property name="text">
<string>X Position:</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QSpinBox" name="FontFooterXSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="FontMainYLabel">
<property name="text">
<string>Y Position:</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="FontMainYSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="FontFooterYLabel">
<property name="text">
<string>Y Position:</string>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QSpinBox" name="FontFooterYSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="FontMainWidthLabel">
<property name="text">
<string>Width:</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QSpinBox" name="FontMainWidthSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="FontFooterWidthLabel">
<property name="text">
<string>Width:</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QSpinBox" name="FontFooterWidthSpinBox">
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QLabel" name="FontMainHeightLabel">
<property name="text">
<string>Height:</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QSpinBox" name="FontMainHeightSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QLabel" name="FontFooterHeightLabel">
<property name="text">
<string>Height:</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QSpinBox" name="FontFooterHeightSpinBox">
<property name="minimumSize">
<size>
<width>78</width>
<height>0</height>
</size>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QLabel" name="FontFooterDefaultLabel">
<property name="text">
<string>Use Default Location:</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWizardPage" name="PreviewPage">
<property name="title">
<string>Save and Preview</string>
</property>
<property name="subTitle">
<string>View the theme and save it replacing the current one or change the name to create a new theme</string>
</property>
<layout class="QFormLayout" name="formLayout_4">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="ThemeNameLabel">
<property name="text">
<string>Theme Name:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="PreviewLabel">
<property name="text">
<string>Preview</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="ThemePreview">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>300</width>
<height>225</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::WinPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<resources>
<include location="../images/openlp-2.qrc" />
<include location="../images/openlp-2.qrc"/>
</resources>
<connections/>
</ui>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -162,6 +162,19 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -496,57 +509,57 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation type="unfinished"></translation>
</message>
@ -559,107 +572,102 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation type="unfinished"></translation>
</message>
@ -1645,12 +1653,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation type="unfinished"></translation>
</message>
@ -1662,11 +1670,6 @@ This General Public License does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2069,6 +2072,12 @@ You can download the latest version from http://openlp.org/.</source>
<source>Default Theme: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2317,7 +2326,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation type="unfinished"></translation>
</message>
@ -2327,7 +2336,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation type="unfinished"></translation>
</message>
@ -2437,53 +2446,53 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -2575,12 +2584,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation type="unfinished"></translation>
</message>
@ -3461,137 +3470,137 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation type="unfinished"></translation>
</message>
@ -3600,6 +3609,11 @@ The content encoding is not UTF-8.</source>
<source>Importing &quot;%s&quot;...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/opensongimport.py" line="163"/>
<source>Importing %s...</source>
@ -3720,12 +3734,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>&#xa9;</source>
<translation type="unfinished"></translation>
</message>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1">
<!DOCTYPE TS>
<TS version="2.0" language="en_GB">
<context>
<name>AlertsPlugin</name>
<message>
@ -162,6 +163,19 @@
<translation>Bottom</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -206,7 +220,15 @@ Book Chapter:Verse-Verse,Verse-Verse
Book Chapter:Verse-Verse,Chapter:Verse-Verse
Book Chapter:Verse-Chapter:Verse
</source>
<translation type="unfinished"></translation>
<translation>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
</translation>
</message>
</context>
<context>
@ -497,59 +519,59 @@ Changes do not affect verses already in the service.</translation>
<translation>You need to specify a version name for your Bible.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation>Empty Copyright</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation>Bible Exists</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation>Open OSIS File</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation>Open Books CSV File</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation>Open Verses CSV File</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation>Open OpenSong Bible</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation>Starting import...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation>Finished import.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation>Your Bible import failed.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
<translation>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
<translation>This Bible already exists. Please import a different Bible or first delete the existing one.</translation>
</message>
</context>
<context>
@ -560,107 +582,102 @@ Changes do not affect verses already in the service.</translation>
<translation>Bible</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation>Quick</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation>Advanced</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation>Version:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation>Dual:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation>Search type:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation>Find:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation>Search</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation>Results:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation>Book:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation>Chapter:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation>Verse:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation>From:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation>To:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation>Verse Search</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation>Text Search</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation>Keep</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation>No Book Found</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation>No matching book could be found in this Bible.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation>etc</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation>Bible not fully loaded.</translation>
</message>
@ -1065,8 +1082,8 @@ Oxygen Icons: http://oxygen-icons.org/
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="173"/>
<source>Copyright &#xa9; 2004-2010 Raoul Snyman
Portions copyright &#xa9; 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
<source>Copyright © 2004-2010 Raoul Snyman
Portions copyright © 2004-2010 Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Carsten Tinggaard
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.
@ -1685,7 +1702,7 @@ This General Public Licence does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="75"/>
<source>Error Occurred</source>
<translation type="unfinished"></translation>
<translation>Error Occurred</translation>
</message>
</context>
<context>
@ -1819,12 +1836,12 @@ This General Public Licence does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation>Language</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation>Please restart OpenLP to use your new language setting.</translation>
</message>
@ -1836,11 +1853,6 @@ This General Public Licence does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation>OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation>English</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2244,6 +2256,12 @@ You can download the latest version from http://openlp.org/.</translation>
<source>Default Theme: %s</source>
<translation>Default Theme: %s</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation>English (United Kingdom)</translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2492,7 +2510,7 @@ You can download the latest version from http://openlp.org/.</translation>
<translation>Create a new service</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation>Open Service</translation>
</message>
@ -2502,7 +2520,7 @@ You can download the latest version from http://openlp.org/.</translation>
<translation>Load an existing service</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation>Save Service</translation>
</message>
@ -2612,56 +2630,56 @@ You can download the latest version from http://openlp.org/.</translation>
<translation>&amp;Change Item Theme</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation>Save Changes to Service?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation>Your service is unsaved, do you want to save those changes before creating a new one?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation>OpenLP Service Files (*.osz)</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation>Your current service is unsaved, do you want to save the changes before opening a new one?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation>File is not a valid service.
The content encoding is not UTF-8.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation>File is not a valid service.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation>Missing Display Handler</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation>Your item cannot be displayed as there is no handler to display it</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
<translation>Your item cannot be displayed as the plugin required to display it is missing or inactive</translation>
</message>
</context>
<context>
@ -2745,18 +2763,18 @@ The content encoding is not UTF-8.</translation>
<message>
<location filename="openlp/core/ui/slidecontroller.py" line="210"/>
<source>Edit and reload song preview</source>
<translation type="unfinished"></translation>
<translation>Edit and reload song preview</translation>
</message>
</context>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation>Spelling Suggestions</translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation>Formatting Tags</translation>
</message>
@ -2933,12 +2951,12 @@ The content encoding is not UTF-8.</translation>
<message>
<location filename="openlp/core/ui/thememanager.py" line="242"/>
<source>Theme %s is used in the %s plugin.</source>
<translation type="unfinished"></translation>
<translation>Theme %s is used in the %s plugin.</translation>
</message>
<message>
<location filename="openlp/core/ui/thememanager.py" line="249"/>
<source>Theme %s is used by the service manager.</source>
<translation type="unfinished"></translation>
<translation>Theme %s is used by the service manager.</translation>
</message>
</context>
<context>
@ -3246,7 +3264,7 @@ The content encoding is not UTF-8.</translation>
<message>
<location filename="openlp/plugins/songs/forms/authorsform.py" line="96"/>
<source>You have not set a display name for the author, combine the first and last names?</source>
<translation type="unfinished"></translation>
<translation>You have not set a display name for the author, combine the first and last names?</translation>
</message>
</context>
<context>
@ -3373,7 +3391,7 @@ The content encoding is not UTF-8.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="462"/>
<source>&#xa9;</source>
<source>©</source>
<translation>©</translation>
</message>
<message>
@ -3623,127 +3641,127 @@ The content encoding is not UTF-8.</translation>
<translation>Starting import...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation>Song Import Wizard</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation>Welcome to the Song Import Wizard</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation>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.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation>Select Import Source</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation>Select the import format, and where to import from.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation>Format:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation>OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation>openlp.org 1.x</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation>OpenLyrics</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation>OpenSong</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation>Words of Worship</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation>CCLI/SongSelect</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation>Songs of Fellowship</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation>Generic Document/Presentation</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation>Filename:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation>Browse...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation>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 &quot;python-sqlite&quot; module.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation>Add Files...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation>Remove File(s)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation>Importing</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation>Please wait while your songs are imported.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation>Ready.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation>%p%</translation>
</message>
@ -3760,27 +3778,32 @@ The content encoding is not UTF-8.</translation>
<message>
<location filename="openlp/plugins/songs/forms/songimportform.py" line="222"/>
<source>No EasyWorship Song Database Selected</source>
<translation type="unfinished"></translation>
<translation>No EasyWorship Song Database Selected</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportform.py" line="222"/>
<source>You need to select an EasyWorship song database file to import from.</source>
<translation type="unfinished"></translation>
<translation>You need to select an EasyWorship song database file to import from.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportform.py" line="339"/>
<source>Select EasyWorship Database File</source>
<translation type="unfinished"></translation>
<translation>Select EasyWorship Database File</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
<translation>EasyWorship</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
<translation>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.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation>Administered by %s</translation>
</message>
</context>
<context>
@ -3897,13 +3920,13 @@ The content encoding is not UTF-8.</translation>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation>copyright</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<source>&#xa9;</source>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>©</source>
<translation>©</translation>
</message>
</context>
@ -4065,7 +4088,7 @@ The content encoding is not UTF-8.</translation>
<message>
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="324"/>
<source>Could not save your modified author, because the author already exists.</source>
<translation type="unfinished"></translation>
<translation>Could not save your modified author, because the author already exists.</translation>
</message>
</context>
<context>
@ -4111,7 +4134,7 @@ The content encoding is not UTF-8.</translation>
<message>
<location filename="openlp/plugins/songs/forms/topicsform.py" line="51"/>
<source>You need to type in a topic name.</source>
<translation type="unfinished"></translation>
<translation>You need to type in a topic name.</translation>
</message>
</context>
<context>

View File

@ -163,6 +163,19 @@
<translation>Bottom</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -214,7 +227,8 @@ 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</translation>
Book Chapter:Verse-Chapter:Verse
</translation>
</message>
</context>
<context>
@ -505,57 +519,57 @@ Changes do not affect verses already in the service.</translation>
<translation>You need to specify a version name for your Bible.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation>Empty Copyright</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation>Bible Exists</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation>Open OSIS File</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation>Open Books CSV File</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation>Open Verses CSV File</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation>Open OpenSong Bible</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation>Starting import...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation>Finished import.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation>Your Bible import failed.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation>This Bible already exists. Please import a different Bible or first delete the existing one.</translation>
</message>
@ -568,107 +582,102 @@ Changes do not affect verses already in the service.</translation>
<translation>Bible</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation>Quick</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation>Advanced</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation>Version:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation>Dual:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation>Search type:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation>Find:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation>Search</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation>Results:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation>Book:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation>Chapter:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation>Verse:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation>From:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation>To:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation>Verse Search</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation>Text Search</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation>Keep</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation>No Book Found</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation>No matching book could be found in this Bible.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation>etc</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation>Bible not fully loaded.</translation>
</message>
@ -1827,12 +1836,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation>Language</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation>Please restart OpenLP to use your new language setting.</translation>
</message>
@ -1844,11 +1853,6 @@ This General Public License does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation>OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation>English (South Africa)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2253,6 +2257,12 @@ You can download the latest version from http://openlp.org/.</source>
You can download the latest version from http://openlp.org/.</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation>English (South Africa)</translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2501,7 +2511,7 @@ You can download the latest version from http://openlp.org/.</translation>
<translation>Create a new service</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation>Open Service</translation>
</message>
@ -2511,7 +2521,7 @@ You can download the latest version from http://openlp.org/.</translation>
<translation>Load an existing service</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation>Save Service</translation>
</message>
@ -2621,54 +2631,54 @@ You can download the latest version from http://openlp.org/.</translation>
<translation>&amp;Change Item Theme</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation>Save Changes to Service?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation>Your service is unsaved, do you want to save those changes before creating a new one?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation>OpenLP Service Files (*.osz)</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation>Your current service is unsaved, do you want to save the changes before opening a new one?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation>File is not a valid service.
The content encoding is not UTF-8.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation>File is not a valid service.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation>Missing Display Handler</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation>Your item cannot be displayed as there is no handler to display it</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation>Your item cannot be displayed as the plugin required to display it is missing or inactive</translation>
</message>
@ -2760,12 +2770,12 @@ The content encoding is not UTF-8.</translation>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation>Spelling Suggestions</translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation>Formatting Tags</translation>
</message>
@ -3547,82 +3557,82 @@ The content encoding is not UTF-8.</translation>
<translation>Starting import...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation>Song Import Wizard</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation>Welcome to the Song Import Wizard</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation>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.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation>Select Import Source</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation>Select the import format, and where to import from.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation>Format:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation>OpenLyrics</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation>OpenSong</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation>Add Files...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation>Remove File(s)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation>Filename:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation>Browse...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation>Importing</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation>Please wait while your songs are imported.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation>Ready.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation>%p%</translation>
</message>
@ -3707,32 +3717,32 @@ The content encoding is not UTF-8.</translation>
<translation>Select Document/Presentation Files</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation>OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation>openlp.org 1.x</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation>Words of Worship</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation>CCLI/SongSelect</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation>Songs of Fellowship</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation>Generic Document/Presentation</translation>
</message>
@ -3742,17 +3752,17 @@ The content encoding is not UTF-8.</translation>
<translation>Select CCLI Files</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation>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 &quot;python-sqlite&quot; module.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</translation>
</message>
@ -3767,7 +3777,7 @@ The content encoding is not UTF-8.</translation>
<translation>Importing %s...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation>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.</translation>
</message>
@ -3787,10 +3797,15 @@ The content encoding is not UTF-8.</translation>
<translation>Select EasyWorship Database File</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation>EasyWorship</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation>Administered by %s</translation>
</message>
</context>
<context>
<name>SongsPlugin.MediaItem</name>
@ -3906,12 +3921,12 @@ The content encoding is not UTF-8.</translation>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation>copyright</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>©</source>
<translation>©</translation>
</message>

View File

@ -10,12 +10,12 @@
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="71"/>
<source>Show an alert message.</source>
<translation type="unfinished"></translation>
<translation>Mostrar mensaje de alerta</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="100"/>
<source>&lt;strong&gt;Alerts Plugin&lt;/strong&gt;&lt;br /&gt;The alert plugin controls the displaying of nursery alerts on the display screen</source>
<translation type="unfinished"></translation>
<translation>&lt;strong&gt;Alerts Plugin&lt;/strong&gt;&lt;br /&gt;El plugin de alertas controla la visualización de mensajes de guardería</translation>
</message>
</context>
<context>
@ -28,12 +28,12 @@
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="128"/>
<source>Alert &amp;text:</source>
<translation type="unfinished"></translation>
<translation>&amp;Texto de Alerta:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="130"/>
<source>&amp;Parameter(s):</source>
<translation type="unfinished"></translation>
<translation>&amp;Parámetro(s):</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="132"/>
@ -48,32 +48,32 @@
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="136"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
<translation>&amp;Eliminar</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="138"/>
<source>Displ&amp;ay</source>
<translation type="unfinished"></translation>
<translation>Mostr&amp;ar</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="140"/>
<source>Display &amp;&amp; Cl&amp;ose</source>
<translation type="unfinished"></translation>
<translation>M&amp;ostrar &amp;&amp; Cerrar</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="142"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
<translation>&amp;Cerrar</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="96"/>
<source>New Alert</source>
<translation type="unfinished"></translation>
<translation>Alerta Nueva</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="96"/>
<source>You haven&apos;t specified any text for your alert. Please type in some text before clicking New.</source>
<translation type="unfinished"></translation>
<translation>No ha especificado ningún texto de alerta. Por favor, escriba algún texto antes de hacer clic en Nueva.</translation>
</message>
</context>
<context>
@ -81,7 +81,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertsmanager.py" line="72"/>
<source>Alert message created and displayed.</source>
<translation type="unfinished"></translation>
<translation>Mensaje creado y mostrado.</translation>
</message>
</context>
<context>
@ -99,22 +99,22 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="193"/>
<source>Font name:</source>
<translation type="unfinished"></translation>
<translation>Nombre:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="195"/>
<source>Font color:</source>
<translation type="unfinished"></translation>
<translation>Color:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="197"/>
<source>Background color:</source>
<translation type="unfinished"></translation>
<translation>Color de Fondo:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="199"/>
<source>Font size:</source>
<translation type="unfinished"></translation>
<translation>Tamaño:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="201"/>
@ -149,7 +149,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="213"/>
<source>Top</source>
<translation type="unfinished"></translation>
<translation>Superior</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="215"/>
@ -159,6 +159,19 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="217"/>
<source>Bottom</source>
<translation>Inferior</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -172,7 +185,7 @@
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="91"/>
<source>&lt;strong&gt;Bible Plugin&lt;/strong&gt;&lt;br /&gt;The Bible plugin provides the ability to display bible verses from different sources during the service.</source>
<translation type="unfinished"></translation>
<translation>&lt;strong&gt;Bible Plugin&lt;/strong&gt;&lt;br /&gt;El plugin de Biblia proporciona la capacidad de mostrar versículos de la Biblia de fuentes diferentes durante el servicio..</translation>
</message>
</context>
<context>
@ -180,12 +193,12 @@
<message>
<location filename="openlp/plugins/bibles/lib/db.py" line="353"/>
<source>Book not found</source>
<translation type="unfinished"></translation>
<translation>Libro no localizado</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/db.py" line="353"/>
<source>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.</source>
<translation type="unfinished"></translation>
<translation>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.</translation>
</message>
</context>
<context>
@ -193,7 +206,7 @@
<message>
<location filename="openlp/plugins/bibles/lib/manager.py" line="245"/>
<source>Scripture Reference Error</source>
<translation type="unfinished"></translation>
<translation>Error de Referencia Bíblica</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/manager.py" line="245"/>
@ -496,57 +509,57 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation type="unfinished">Derechos de autor en blanco</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation type="unfinished">Ya existe la Biblia</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation type="unfinished">Abrir Biblia OpenSong</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation type="unfinished">Iniciando importación...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation type="unfinished">Importación finalizada.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation type="unfinished">La importación de su Biblia falló.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
</message>
@ -559,107 +572,102 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished">Biblia</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation type="unfinished">Rápida</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation type="unfinished">Avanzado</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation type="unfinished">Versión:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation type="unfinished">Paralela:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation type="unfinished">Encontrar:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation type="unfinished">Buscar</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation type="unfinished">Resultados:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation type="unfinished">Libro:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation type="unfinished">Capítulo:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation type="unfinished">Versículo:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation type="unfinished">Desde:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation type="unfinished">Hasta:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation type="unfinished">Búsqueda de versículo</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation type="unfinished">Búsqueda de texto</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation type="unfinished">Limpiar</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation type="unfinished">Conservar</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation type="unfinished">No se encontró el libro</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation type="unfinished">No se encuentra un libro que concuerde, en esta Biblia.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation type="unfinished"></translation>
</message>
@ -1443,7 +1451,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/amendthemedialog.py" line="785"/>
<source>Top</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Superior</translation>
</message>
<message>
<location filename="openlp/core/ui/amendthemedialog.py" line="787"/>
@ -1453,7 +1461,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/amendthemedialog.py" line="789"/>
<source>Bottom</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Inferior</translation>
</message>
<message>
<location filename="openlp/core/ui/amendthemedialog.py" line="791"/>
@ -1645,12 +1653,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation type="unfinished"></translation>
</message>
@ -1662,11 +1670,6 @@ This General Public License does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation type="unfinished">Ingles</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2069,6 +2072,12 @@ You can download the latest version from http://openlp.org/.</source>
<source>Default Theme: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation type="unfinished">Español</translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2317,7 +2326,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">Crear un servicio nuevo</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation type="unfinished">Abrir Servicio</translation>
</message>
@ -2327,7 +2336,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">Abrir un servicio existente</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation type="unfinished">Guardar Servicio</translation>
</message>
@ -2437,53 +2446,53 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">&amp;Cambiar Tema de Ítem</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation type="unfinished">Error</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -2575,12 +2584,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation type="unfinished"></translation>
</message>
@ -3117,7 +3126,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="427"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
<translation type="unfinished">&amp;Eliminar</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="429"/>
@ -3446,127 +3455,127 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished">Iniciando importación...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation type="unfinished">Seleccione Origen de Importación</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation type="unfinished">Seleccione el formato y el lugar del cual importar.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation type="unfinished">Formato:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation type="unfinished">OpenSong</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation type="unfinished">Importando</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation type="unfinished">Listo.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation type="unfinished"></translation>
</message>
@ -3596,15 +3605,20 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SongsPlugin.MediaItem</name>
@ -3720,12 +3734,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>&#xa9;</source>
<translation type="unfinished"></translation>
</message>
@ -3778,7 +3792,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/forms/songmaintenancedialog.py" line="238"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
<translation type="unfinished">&amp;Eliminar</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="391"/>

4178
resources/i18n/et.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1">
<!DOCTYPE TS><TS version="1.1" language="ja_JP">
<context>
<name>AlertsPlugin</name>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="70"/>
<source>&amp;Alert</source>
<translation type="unfinished"></translation>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="71"/>
<source>Show an alert message.</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="100"/>
@ -23,12 +23,12 @@
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="126"/>
<source>Alert Message</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="128"/>
<source>Alert &amp;text:</source>
<translation type="unfinished"></translation>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="130"/>
@ -38,42 +38,42 @@
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="132"/>
<source>&amp;New</source>
<translation type="unfinished"></translation>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="134"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="136"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
<translation>(&amp;D)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="138"/>
<source>Displ&amp;ay</source>
<translation type="unfinished"></translation>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="140"/>
<source>Display &amp;&amp; Cl&amp;ose</source>
<translation type="unfinished"></translation>
<translation>(&amp;O)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="142"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="96"/>
<source>New Alert</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="96"/>
<source>You haven&apos;t specified any text for your alert. Please type in some text before clicking New.</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -81,7 +81,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertsmanager.py" line="72"/>
<source>Alert message created and displayed.</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -89,32 +89,32 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="42"/>
<source>Alerts</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="191"/>
<source>Font</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="193"/>
<source>Font name:</source>
<translation type="unfinished"></translation>
<translation>:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="195"/>
<source>Font color:</source>
<translation type="unfinished"></translation>
<translation>:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="197"/>
<source>Background color:</source>
<translation type="unfinished"></translation>
<translation>:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="199"/>
<source>Font size:</source>
<translation type="unfinished"></translation>
<translation>:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="201"/>
@ -124,17 +124,17 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="203"/>
<source>Alert timeout:</source>
<translation type="unfinished"></translation>
<translation>:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="205"/>
<source>s</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="207"/>
<source>Location:</source>
<translation type="unfinished"></translation>
<translation>:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="209"/>
@ -144,7 +144,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="211"/>
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
<translation>OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="213"/>
@ -162,6 +162,19 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -363,7 +376,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="345"/>
<source>Location:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="347"/>
@ -496,57 +509,57 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation type="unfinished"></translation>
</message>
@ -559,107 +572,102 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation type="unfinished"></translation>
</message>
@ -753,7 +761,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="167"/>
<source>Save</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="169"/>
@ -773,7 +781,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="177"/>
<source>Clear</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="179"/>
@ -1645,12 +1653,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation type="unfinished"></translation>
</message>
@ -1660,57 +1668,52 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="345"/>
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation type="unfinished"></translation>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;F)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="349"/>
<source>&amp;Import</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;I)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="350"/>
<source>&amp;Export</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;E)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="351"/>
<source>&amp;View</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;V)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="352"/>
<source>M&amp;ode</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;O)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="353"/>
<source>&amp;Tools</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;T)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="354"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;S)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="402"/>
<source>&amp;Language</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;L)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="357"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;H)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="358"/>
@ -1730,7 +1733,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="364"/>
<source>&amp;New</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;N)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="365"/>
@ -1750,7 +1753,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="370"/>
<source>&amp;Open</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;O)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="371"/>
@ -1770,7 +1773,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="376"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;S)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="377"/>
@ -1790,7 +1793,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="382"/>
<source>Save &amp;As...</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;A)...</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="384"/>
@ -1810,7 +1813,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="390"/>
<source>E&amp;xit</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;X)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="392"/>
@ -1825,12 +1828,12 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="400"/>
<source>&amp;Theme</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;T)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="404"/>
<source>&amp;Configure OpenLP...</source>
<translation type="unfinished"></translation>
<translation type="unfinished">OpenLPの設定(&amp;C)...</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="406"/>
@ -1935,7 +1938,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="446"/>
<source>&amp;Plugin List</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;P)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="448"/>
@ -1950,7 +1953,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="452"/>
<source>&amp;User Guide</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;U)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="454"/>
@ -1970,17 +1973,17 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="459"/>
<source>&amp;Online Help</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;O)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="461"/>
<source>&amp;Web Site</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;W)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="463"/>
<source>&amp;Auto Detect</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;A)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="465"/>
@ -1995,7 +1998,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="472"/>
<source>Add &amp;Tool...</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;T)...</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="474"/>
@ -2005,7 +2008,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="477"/>
<source>&amp;Default</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;D)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="479"/>
@ -2015,7 +2018,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/mainwindow.py" line="482"/>
<source>&amp;Setup</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;S)</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="483"/>
@ -2069,6 +2072,12 @@ You can download the latest version from http://openlp.org/.</source>
<source>Default Theme: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2233,17 +2242,17 @@ You can download the latest version from http://openlp.org/.</source>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="103"/>
<source>Plugin List</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="105"/>
<source>Plugin Details</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="107"/>
<source>Version:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">:</translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="109"/>
@ -2253,27 +2262,27 @@ You can download the latest version from http://openlp.org/.</source>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="111"/>
<source>Status:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">:</translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="113"/>
<source>Active</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="115"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/pluginform.py" line="135"/>
<source>%s (Inactive)</source>
<translation type="unfinished"></translation>
<translation type="unfinished">%s ()</translation>
</message>
<message>
<location filename="openlp/core/ui/pluginform.py" line="132"/>
<source>%s (Active)</source>
<translation type="unfinished"></translation>
<translation type="unfinished">%s ()</translation>
</message>
<message>
<location filename="openlp/core/ui/pluginform.py" line="138"/>
@ -2317,7 +2326,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation type="unfinished"></translation>
</message>
@ -2327,7 +2336,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation type="unfinished"></translation>
</message>
@ -2437,53 +2446,53 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -2501,7 +2510,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/core/ui/settingsdialog.py" line="67"/>
<source>Configure OpenLP</source>
<translation type="unfinished"></translation>
<translation type="unfinished">OpenLPの設定</translation>
</message>
</context>
<context>
@ -2554,7 +2563,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/core/ui/slidecontroller.py" line="230"/>
<source>s</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/slidecontroller.py" line="232"/>
@ -2575,12 +2584,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation type="unfinished"></translation>
</message>
@ -3117,7 +3126,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="427"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;D)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="429"/>
@ -3446,132 +3455,132 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation type="unfinished"></translation>
</message>
@ -3601,10 +3610,15 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SongsPlugin.MediaItem</name>
@ -3720,12 +3734,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>&#xa9;</source>
<translation type="unfinished"></translation>
</message>
@ -3778,7 +3792,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/forms/songmaintenancedialog.py" line="238"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
<translation type="unfinished">(&amp;D)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="391"/>
@ -3972,7 +3986,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/lib/__init__.py" line="63"/>
<source>Other</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
</TS>

View File

@ -162,6 +162,19 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -496,57 +509,57 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
</message>
@ -559,107 +572,102 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation type="unfinished"></translation>
</message>
@ -1645,12 +1653,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation type="unfinished"></translation>
</message>
@ -1662,11 +1670,6 @@ This General Public License does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2069,6 +2072,12 @@ You can download the latest version from http://openlp.org/.</source>
<source>Default Theme: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2317,7 +2326,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation type="unfinished"></translation>
</message>
@ -2327,7 +2336,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation type="unfinished"></translation>
</message>
@ -2437,53 +2446,53 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -2575,12 +2584,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation type="unfinished"></translation>
</message>
@ -3446,127 +3455,127 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation type="unfinished"></translation>
</message>
@ -3596,15 +3605,20 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SongsPlugin.MediaItem</name>
@ -3720,12 +3734,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>&#xa9;</source>
<translation type="unfinished"></translation>
</message>

View File

@ -15,7 +15,7 @@
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="100"/>
<source>&lt;strong&gt;Alerts Plugin&lt;/strong&gt;&lt;br /&gt;The alert plugin controls the displaying of nursery alerts on the display screen</source>
<translation type="unfinished"></translation>
<translation>&lt;strong&gt;Varsel Tilleg&lt;/strong&gt;&lt;br /&gt;Varsels tillegg kontrolleren viser barn-varsel visnings skjermen</translation>
</message>
</context>
<context>
@ -23,7 +23,7 @@
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="126"/>
<source>Alert Message</source>
<translation type="unfinished">Varsel-melding</translation>
<translation>Varsel-melding</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="128"/>
@ -53,17 +53,17 @@
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="138"/>
<source>Displ&amp;ay</source>
<translation type="unfinished"></translation>
<translation>Vis</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="140"/>
<source>Display &amp;&amp; Cl&amp;ose</source>
<translation type="unfinished"></translation>
<translation>Vis &amp;&amp; Lukk</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertdialog.py" line="142"/>
<source>&amp;Close</source>
<translation>%Lukk</translation>
<translation>&amp;Lukk</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="96"/>
@ -81,7 +81,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertsmanager.py" line="72"/>
<source>Alert message created and displayed.</source>
<translation type="unfinished"></translation>
<translation>Varsel beskjed er laget og vist</translation>
</message>
</context>
<context>
@ -99,7 +99,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="193"/>
<source>Font name:</source>
<translation type="unfinished"></translation>
<translation>Skrift navn:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="195"/>
@ -109,7 +109,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="197"/>
<source>Background color:</source>
<translation type="unfinished"></translation>
<translation>Bakgrunns farge:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="199"/>
@ -119,22 +119,22 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="201"/>
<source>pt</source>
<translation type="unfinished"></translation>
<translation>pt</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="203"/>
<source>Alert timeout:</source>
<translation type="unfinished"></translation>
<translation>Varsel varighet:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="205"/>
<source>s</source>
<translation type="unfinished"></translation>
<translation>s</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="207"/>
<source>Location:</source>
<translation type="unfinished">Plassering:</translation>
<translation>Plassering:</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="209"/>
@ -154,7 +154,7 @@
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="215"/>
<source>Middle</source>
<translation type="unfinished">Midtstilt</translation>
<translation>Midtstilt</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/lib/alertstab.py" line="217"/>
@ -162,6 +162,19 @@
<translation>Bunn</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -219,12 +232,12 @@ Book Chapter:Verse-Chapter:Verse
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="153"/>
<source>Verse Display</source>
<translation type="unfinished"></translation>
<translation>Vers visning</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="155"/>
<source>Only show new chapter numbers</source>
<translation type="unfinished"></translation>
<translation>Bare vis nye kapittel nummer</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="158"/>
@ -244,7 +257,7 @@ Book Chapter:Verse-Chapter:Verse
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="164"/>
<source>Verse Per Slide</source>
<translation type="unfinished"></translation>
<translation>Vers pr side</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="166"/>
@ -254,7 +267,7 @@ Book Chapter:Verse-Chapter:Verse
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="168"/>
<source>Continuous</source>
<translation type="unfinished"></translation>
<translation>Kontinuerlig</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="170"/>
@ -285,7 +298,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="180"/>
<source>Display dual Bible verses</source>
<translation type="unfinished"></translation>
<translation>Vis doble Bibel vers</translation>
</message>
</context>
<context>
@ -338,7 +351,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="335"/>
<source>Web Download</source>
<translation type="unfinished"></translation>
<translation>Web nedlastning</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="337"/>
@ -388,7 +401,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="356"/>
<source>Server:</source>
<translation type="unfinished">Server:</translation>
<translation>Server:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="358"/>
@ -403,7 +416,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="362"/>
<source>Proxy Server (Optional)</source>
<translation type="unfinished"></translation>
<translation>Proxy Server (valgfritt)</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="366"/>
@ -423,7 +436,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="373"/>
<source>Copyright:</source>
<translation type="unfinished">Copyright: </translation>
<translation>Opphavsrett: </translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="375"/>
@ -433,7 +446,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="377"/>
<source>Importing</source>
<translation type="unfinished"></translation>
<translation>Importerer</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="379"/>
@ -453,12 +466,12 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="127"/>
<source>You need to specify a file to import your Bible from.</source>
<translation type="unfinished"></translation>
<translation>Du om spesifisere en fil for å importere bibelen.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="137"/>
<source>Invalid Books File</source>
<translation type="unfinished"></translation>
<translation>Ugyldig Book fil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="137"/>
@ -468,7 +481,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="146"/>
<source>Invalid Verse File</source>
<translation type="unfinished"></translation>
<translation>Ugyldig vers fil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="146"/>
@ -483,7 +496,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="157"/>
<source>You need to specify an OpenSong Bible file to import.</source>
<translation type="unfinished"></translation>
<translation>Du spesifisere en OpenSong Bibel fil å importere</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="172"/>
@ -493,60 +506,60 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="172"/>
<source>You need to specify a version name for your Bible.</source>
<translation type="unfinished"></translation>
<translation>Du spesifisere et versjonsnummer for Bibelen din.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation type="unfinished">Tom copyright</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation type="unfinished">Bibelen eksisterer</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation type="unfinished"></translation>
<translation>Åpne OSIS fil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation type="unfinished"></translation>
<translation>Åpne Bøker CSV fil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation type="unfinished"></translation>
<translation>Åpne Vers CSV fil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation type="unfinished"></translation>
<translation>Åpne OpenSong Bibel</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation type="unfinished"></translation>
<translation>Starter å importere...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation type="unfinished">Import fullført.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation type="unfinished">Bibelimporteringen mislyktes.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
</message>
@ -559,109 +572,104 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished">Bibel</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation type="unfinished">Rask</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation type="unfinished">Avansert</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation type="unfinished"></translation>
<translation>Versjon:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation type="unfinished">Dobbel:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation type="unfinished"></translation>
<translation>Søk type:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation type="unfinished">Finn:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation type="unfinished">Søk</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Results:</source>
<translation type="unfinished">Resultat: </translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>Book:</source>
<translation type="unfinished">Bok:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>Chapter:</source>
<translation type="unfinished">Kapittel</translation>
<translation>Søk</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Verse:</source>
<translation type="unfinished"></translation>
<source>Results:</source>
<translation>Resultat:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation>Bok:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation>Kapittel:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation>Vers:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation type="unfinished">Fra:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation type="unfinished">Til:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation type="unfinished">Søk i vers</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation type="unfinished">Tekstsøk </translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation type="unfinished">Behold</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation type="unfinished">Ingen bøker funnet</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation type="unfinished">Finner ingen matchende bøker i denne Bibelen.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation type="unfinished"></translation>
<translation>Bibelen ble ikke lastet.</translation>
</message>
</context>
<context>
@ -669,7 +677,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/bibles/lib/opensong.py" line="90"/>
<source>Importing</source>
<translation type="unfinished"></translation>
<translation>Importerer</translation>
</message>
</context>
<context>
@ -695,7 +703,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/custom/lib/customtab.py" line="63"/>
<source>Display footer</source>
<translation type="unfinished"></translation>
<translation>Vis bunntekst</translation>
</message>
</context>
<context>
@ -718,7 +726,7 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="150"/>
<source>&amp;Title:</source>
<translation type="unfinished"></translation>
<translation>&amp;Tittel:</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="152"/>
@ -733,22 +741,22 @@ Changes do not affect verses already in the service.</source>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="157"/>
<source>Edit</source>
<translation type="unfinished"></translation>
<translation>Rediger</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="159"/>
<source>Edit the selected slide.</source>
<translation type="unfinished"></translation>
<translation>Rediger merket side</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="162"/>
<source>Edit All</source>
<translation type="unfinished"></translation>
<translation>Rediger Alt</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="164"/>
<source>Edit all the slides at once.</source>
<translation type="unfinished"></translation>
<translation>Rediger alle sider en gang.</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="167"/>
@ -1288,7 +1296,7 @@ This General Public License does not permit incorporating your program into prop
<message>
<location filename="openlp/core/ui/amendthemedialog.py" line="718"/>
<source>pt</source>
<translation type="unfinished"></translation>
<translation type="unfinished">pt</translation>
</message>
<message>
<location filename="openlp/core/ui/amendthemedialog.py" line="675"/>
@ -1645,12 +1653,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation type="unfinished"></translation>
</message>
@ -1662,11 +1670,6 @@ This General Public License does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation type="unfinished">Norsk</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2069,6 +2072,12 @@ You can download the latest version from http://openlp.org/.</source>
<source>Default Theme: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation type="unfinished">Norsk</translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2243,7 +2252,7 @@ You can download the latest version from http://openlp.org/.</source>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="107"/>
<source>Version:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Versjon:</translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="109"/>
@ -2317,7 +2326,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">Opprett ny møteplan</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation type="unfinished">Åpne møteplan</translation>
</message>
@ -2327,7 +2336,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation type="unfinished"></translation>
</message>
@ -2437,53 +2446,53 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">&amp;Bytt objekttema</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished">OpenLP møteplan (*.osz)</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -2549,7 +2558,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/core/ui/slidecontroller.py" line="230"/>
<source>s</source>
<translation type="unfinished"></translation>
<translation type="unfinished">s</translation>
</message>
<message>
<location filename="openlp/core/ui/slidecontroller.py" line="232"/>
@ -2575,12 +2584,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation type="unfinished"></translation>
</message>
@ -3082,7 +3091,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="413"/>
<source>&amp;Title:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">&amp;Tittel:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="415"/>
@ -3443,130 +3452,130 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/songs/forms/songimportform.py" line="392"/>
<source>Starting import...</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Starter å importere...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation type="unfinished">Velg importeringskilde </translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation type="unfinished">Velg importeringsformat og hvor du vil importere dem</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation type="unfinished">Format: </translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation type="unfinished">OpenSong</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Importerer</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation type="unfinished">Klar.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation type="unfinished"></translation>
</message>
@ -3596,15 +3605,20 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SongsPlugin.MediaItem</name>
@ -3720,12 +3734,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>&#xa9;</source>
<translation type="unfinished"></translation>
</message>

File diff suppressed because it is too large Load Diff

View File

@ -162,6 +162,19 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="487"/>
<source>You cannot combine single and dual bible verses. Do you want to delete your search results and start a new search?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -496,57 +509,57 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished">Du måste ange ett versionsnamn för din Bibel.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>Empty Copyright</source>
<translation type="unfinished">Tom copyright-information</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>Bible Exists</source>
<translation type="unfinished">Bibel existerar</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="221"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="218"/>
<source>Open OSIS File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="229"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="226"/>
<source>Open Books CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="237"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="234"/>
<source>Open Verses CSV File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="244"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="241"/>
<source>Open OpenSong Bible</source>
<translation type="unfinished">Öppna OpenSong Bibel</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="389"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="386"/>
<source>Starting import...</source>
<translation type="unfinished">Påbörjar import...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="445"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="441"/>
<source>Finished import.</source>
<translation type="unfinished">Importen är färdig.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="449"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="444"/>
<source>Your Bible import failed.</source>
<translation type="unfinished">Din Bibelimport misslyckades.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="181"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="180"/>
<source>You need to set a copyright for your Bible. Bibles in the Public Domain need to be marked as such.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="191"/>
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="189"/>
<source>This Bible already exists. Please import a different Bible or first delete the existing one.</source>
<translation type="unfinished"></translation>
</message>
@ -559,107 +572,102 @@ Changes do not affect verses already in the service.</source>
<translation type="unfinished">Bibel</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="148"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="142"/>
<source>Quick</source>
<translation type="unfinished">Snabb</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="233"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="227"/>
<source>Advanced</source>
<translation type="unfinished">Avancerat</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<source>Version:</source>
<translation type="unfinished">Version:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="301"/>
<source>Dual:</source>
<translation type="unfinished">Dubbel:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="297"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="291"/>
<source>Search type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="299"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="293"/>
<source>Find:</source>
<translation type="unfinished">Hitta:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="321"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<source>Search</source>
<translation type="unfinished">Sök</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<source>Results:</source>
<translation type="unfinished">Resultat:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="303"/>
<source>Book:</source>
<translation type="unfinished">Bok:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="305"/>
<source>Chapter:</source>
<translation type="unfinished">Kapitel:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="313"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="307"/>
<source>Verse:</source>
<translation type="unfinished">Vers:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="315"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="309"/>
<source>From:</source>
<translation type="unfinished">Från:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="311"/>
<source>To:</source>
<translation type="unfinished">Till:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="323"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="317"/>
<source>Verse Search</source>
<translation type="unfinished">Sök vers</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="319"/>
<source>Text Search</source>
<translation type="unfinished">Textsökning</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="331"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="325"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="333"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="327"/>
<source>Keep</source>
<translation type="unfinished">Behåll</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No Book Found</source>
<translation type="unfinished">Ingen bok hittades</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="378"/>
<source>No matching book could be found in this Bible.</source>
<translation type="unfinished">Ingen matchande bok kunde hittas i den här Bibeln.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="569"/>
<source>etc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="627"/>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="711"/>
<source>Bible not fully loaded.</source>
<translation type="unfinished"></translation>
</message>
@ -1645,12 +1653,12 @@ This General Public License does not permit incorporating your program into prop
<context>
<name>OpenLP.LanguageManager</name>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="119"/>
<location filename="openlp/core/utils/languagemanager.py" line="121"/>
<source>Please restart OpenLP to use your new language setting.</source>
<translation type="unfinished"></translation>
</message>
@ -1662,11 +1670,6 @@ This General Public License does not permit incorporating your program into prop
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<translation type="unfinished">Engelska</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="348"/>
<source>&amp;File</source>
@ -2069,6 +2072,12 @@ You can download the latest version from http://openlp.org/.</source>
<source>Default Theme: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/utils/languagemanager.py" line="85"/>
<source>English</source>
<comment>Please add the name of your language here</comment>
<translation type="unfinished">Engelska</translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
@ -2317,7 +2326,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">Skapa en ny mötesplanering</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="640"/>
<location filename="openlp/core/ui/servicemanager.py" line="642"/>
<source>Open Service</source>
<translation type="unfinished"></translation>
</message>
@ -2327,7 +2336,7 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">Ladda en planering</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>Save Service</source>
<translation type="unfinished"></translation>
</message>
@ -2437,53 +2446,53 @@ You can download the latest version from http://openlp.org/.</source>
<translation type="unfinished">&amp;Byt objektets tema</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Save Changes to Service?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="495"/>
<location filename="openlp/core/ui/servicemanager.py" line="497"/>
<source>Your service is unsaved, do you want to save those changes before creating a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="580"/>
<location filename="openlp/core/ui/servicemanager.py" line="582"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="654"/>
<location filename="openlp/core/ui/servicemanager.py" line="656"/>
<source>Your current service is unsaved, do you want to save the changes before opening a new one?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>Error</source>
<translation type="unfinished">Fel</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="683"/>
<location filename="openlp/core/ui/servicemanager.py" line="685"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="718"/>
<location filename="openlp/core/ui/servicemanager.py" line="720"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="850"/>
<location filename="openlp/core/ui/servicemanager.py" line="852"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="884"/>
<location filename="openlp/core/ui/servicemanager.py" line="886"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -2575,12 +2584,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>OpenLP.SpellTextEdit</name>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="72"/>
<location filename="openlp/core/lib/spelltextedit.py" line="76"/>
<source>Spelling Suggestions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/spelltextedit.py" line="83"/>
<location filename="openlp/core/lib/spelltextedit.py" line="87"/>
<source>Formatting Tags</source>
<translation type="unfinished"></translation>
</message>
@ -3446,127 +3455,127 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished">Påbörjar import...</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="490"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="146"/>
<source>Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="492"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="148"/>
<source>Welcome to the Song Import Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="496"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="152"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="501"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="157"/>
<source>Select Import Source</source>
<translation type="unfinished">Välj importkälla</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="503"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="159"/>
<source>Select the import format, and where to import from.</source>
<translation type="unfinished">Välj format för import, och plats att importera från.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="506"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="162"/>
<source>Format:</source>
<translation type="unfinished">Format:</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="508"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="164"/>
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="510"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="166"/>
<source>openlp.org 1.x</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="512"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="168"/>
<source>OpenLyrics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="514"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="170"/>
<source>OpenSong</source>
<translation type="unfinished">OpenSong</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="516"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="172"/>
<source>Words of Worship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="518"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="174"/>
<source>CCLI/SongSelect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="520"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="176"/>
<source>Songs of Fellowship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="522"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="178"/>
<source>Generic Document/Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="579"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="235"/>
<source>Filename:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="581"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="237"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="537"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="193"/>
<source>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 &quot;python-sqlite&quot; module.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="571"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="227"/>
<source>Add Files...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="573"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="229"/>
<source>Remove File(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="567"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="223"/>
<source>The Songs of Fellowship importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="575"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="231"/>
<source>The generic document/presentation importer has been disabled because OpenLP cannot find OpenOffice.org on your computer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="587"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="243"/>
<source>Importing</source>
<translation type="unfinished">Importerar</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="589"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="245"/>
<source>Please wait while your songs are imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="592"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="248"/>
<source>Ready.</source>
<translation type="unfinished">Redo.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="594"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="250"/>
<source>%p%</source>
<translation type="unfinished"></translation>
</message>
@ -3596,15 +3605,20 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="525"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="181"/>
<source>EasyWorship</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="546"/>
<location filename="openlp/plugins/songs/forms/songimportwizard.py" line="202"/>
<source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/ewimport.py" line="192"/>
<source>Administered by %s</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SongsPlugin.MediaItem</name>
@ -3720,12 +3734,12 @@ The content encoding is not UTF-8.</source>
<context>
<name>SongsPlugin.SongImport</name>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="79"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="80"/>
<source>copyright</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/songimport.py" line="81"/>
<location filename="openlp/plugins/songs/lib/songimport.py" line="82"/>
<source>&#xa9;</source>
<translation type="unfinished"></translation>
</message>

View File

@ -1,11 +1,21 @@
#!/usr/bin/env xdg-open
[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=

View File

@ -157,6 +157,21 @@ def run(command):
print_verbose(u'Output:\n%s' % process.readAllStandardOutput())
print u' Done.'
def update_export_at_pootle(source_filename):
"""
This is needed because of database and exported *.ts file can be out of sync
``source_filename``
The file to sync.
"""
language = source_filename[:-3]
REVIEW_URL = u'http://pootle.projecthq.biz/%s/openlp/review.html' % language
print_verbose(u'Accessing: %s' % (REVIEW_URL))
page = urllib.urlopen(REVIEW_URL)
page.close()
def download_file(source_filename, dest_filename):
"""
Download a file and save it to disk.
@ -183,11 +198,13 @@ def download_translations():
page = urllib.urlopen(SERVER_URL)
soup = BeautifulSoup(page)
languages = soup.findAll(text=re.compile(r'.*\.ts'))
for language in languages:
for language_file in languages:
update_export_at_pootle(language_file)
for language_file in languages:
filename = os.path.join(os.path.abspath(u'..'), u'resources', u'i18n',
language)
language_file)
print_verbose(u'Get Translation File: %s' % filename)
download_file(language, filename)
download_file(language_file, filename)
print u' Done.'
def prepare_project():