sync with head

This commit is contained in:
rimach 2011-09-28 22:57:01 +02:00
commit 33d9ce07ac
30 changed files with 3168 additions and 10686 deletions

View File

@ -27,9 +27,13 @@
"""
Provide HTML Tag management and Formatting Tag access class
"""
import cPickle
from PyQt4 import QtCore
from openlp.core.lib import translate
class FormattingTags(object):
"""
Static Class to HTML Tags to be access around the code the list is managed
@ -42,6 +46,8 @@ class FormattingTags(object):
"""
Provide access to the html_expands list.
"""
# Load user defined tags otherwise user defined tags are not present.
FormattingTags.load_tags()
return FormattingTags.html_expands
@staticmethod
@ -49,6 +55,8 @@ class FormattingTags(object):
"""
Resets the html_expands list.
"""
temporary_tags = [tag for tag in FormattingTags.html_expands
if tag.get(u'temporary')]
FormattingTags.html_expands = []
base_tags = []
# Append the base tags.
@ -56,75 +64,160 @@ class FormattingTags(object):
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Red'),
u'start tag': u'{r}',
u'start html': u'<span style="-webkit-text-fill-color:red">',
u'end tag': u'{/r}', u'end html': u'</span>', u'protected': True})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Black'),
u'end tag': u'{/r}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Black'),
u'start tag': u'{b}',
u'start html': u'<span style="-webkit-text-fill-color:black">',
u'end tag': u'{/b}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/b}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Blue'),
u'start tag': u'{bl}',
u'start html': u'<span style="-webkit-text-fill-color:blue">',
u'end tag': u'{/bl}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/bl}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Yellow'),
u'start tag': u'{y}',
u'start html': u'<span style="-webkit-text-fill-color:yellow">',
u'end tag': u'{/y}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/y}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Green'),
u'start tag': u'{g}',
u'start html': u'<span style="-webkit-text-fill-color:green">',
u'end tag': u'{/g}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/g}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Pink'),
u'start tag': u'{pk}',
u'start html': u'<span style="-webkit-text-fill-color:#FFC0CB">',
u'end tag': u'{/pk}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/pk}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Orange'),
u'start tag': u'{o}',
u'start html': u'<span style="-webkit-text-fill-color:#FFA500">',
u'end tag': u'{/o}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/o}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Purple'),
u'start tag': u'{pp}',
u'start html': u'<span style="-webkit-text-fill-color:#800080">',
u'end tag': u'{/pp}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/pp}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'White'),
u'start tag': u'{w}',
u'start html': u'<span style="-webkit-text-fill-color:white">',
u'end tag': u'{/w}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/w}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({
u'desc': translate('OpenLP.FormattingTags', 'Superscript'),
u'start tag': u'{su}', u'start html': u'<sup>',
u'end tag': u'{/su}', u'end html': u'</sup>', u'protected': True})
u'end tag': u'{/su}', u'end html': u'</sup>', u'protected': True,
u'temporary': False})
base_tags.append({
u'desc': translate('OpenLP.FormattingTags', 'Subscript'),
u'start tag': u'{sb}', u'start html': u'<sub>',
u'end tag': u'{/sb}', u'end html': u'</sub>', u'protected': True})
u'end tag': u'{/sb}', u'end html': u'</sub>', u'protected': True,
u'temporary': False})
base_tags.append({
u'desc': translate('OpenLP.FormattingTags', 'Paragraph'),
u'start tag': u'{p}', u'start html': u'<p>', u'end tag': u'{/p}',
u'end html': u'</p>', u'protected': True})
u'end html': u'</p>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Bold'),
u'start tag': u'{st}', u'start html': u'<strong>',
u'end tag': u'{/st}', u'end html': u'</strong>',
u'protected': True})
u'protected': True, u'temporary': False})
base_tags.append({
u'desc': translate('OpenLP.FormattingTags', 'Italics'),
u'start tag': u'{it}', u'start html': u'<em>', u'end tag': u'{/it}',
u'end html': u'</em>', u'protected': True})
u'end html': u'</em>', u'protected': True, u'temporary': False})
base_tags.append({
u'desc': translate('OpenLP.FormattingTags', 'Underline'),
u'start tag': u'{u}',
u'start html': u'<span style="text-decoration: underline;">',
u'end tag': u'{/u}', u'end html': u'</span>', u'protected': True})
u'end tag': u'{/u}', u'end html': u'</span>', u'protected': True,
u'temporary': False})
base_tags.append({u'desc': translate('OpenLP.FormattingTags', 'Break'),
u'start tag': u'{br}', u'start html': u'<br>', u'end tag': u'',
u'end html': u'', u'protected': True})
u'end html': u'', u'protected': True, u'temporary': False})
FormattingTags.add_html_tags(base_tags)
FormattingTags.add_html_tags(temporary_tags)
@staticmethod
def add_html_tags(tags):
def save_html_tags():
"""
Add a list of tags to the list
Saves all formatting tags except protected ones.
"""
tags = []
for tag in FormattingTags.html_expands:
if not tag[u'protected'] and not tag.get(u'temporary'):
tags.append(tag)
# Remove key 'temporary' from tags. It is not needed to be saved.
for tag in tags:
if u'temporary' in tag:
del tag[u'temporary']
# Formatting Tags were also known as display tags.
QtCore.QSettings().setValue(u'displayTags/html_tags',
QtCore.QVariant(cPickle.dumps(tags) if tags else u''))
@staticmethod
def load_tags():
"""
Load the Tags from store so can be used in the system or used to
update the display. If Cancel was selected this is needed to reset the
dsiplay to the correct version.
"""
# Initial Load of the Tags
FormattingTags.reset_html_tags()
# Formatting Tags were also known as display tags.
user_expands = QtCore.QSettings().value(u'displayTags/html_tags',
QtCore.QVariant(u'')).toString()
# cPickle only accepts str not unicode strings
user_expands_string = str(unicode(user_expands).encode(u'utf8'))
if user_expands_string:
user_tags = cPickle.loads(user_expands_string)
# If we have some user ones added them as well
FormattingTags.add_html_tags(user_tags)
@staticmethod
def add_html_tags(tags, save=False):
"""
Add a list of tags to the list.
``tags``
The list with tags to add.
``save``
Defaults to ``False``. If set to ``True`` the given ``tags`` are
saved to the config.
Each **tag** has to be a ``dict`` and should have the following keys:
* desc
The formatting tag's description, e. g. **Red**
* start tag
The start tag, e. g. ``{r}``
* end tag
The end tag, e. g. ``{/r}``
* start html
The start html tag. For instance ``<span style="
-webkit-text-fill-color:red">``
* end html
The end html tag. For example ``</span>``
* protected
A boolean stating whether this is a build-in tag or not. Should be
``True`` in most cases.
* temporary
A temporary tag will not be saved, but is also considered when
displaying text containing the tag. It has to be a ``boolean``.
"""
FormattingTags.html_expands.extend(tags)
if save:
FormattingTags.save_html_tags()
@staticmethod
def remove_html_tag(tag_id):

View File

@ -34,8 +34,8 @@ from openlp.core.lib.theme import BackgroundType, BackgroundGradientType, \
log = logging.getLogger(__name__)
# FIXME: Add html5 doctype. However, do not break theme gradients.
HTMLSRC = u"""
<!DOCTYPE html>
<html>
<head>
<title>OpenLP Display</title>
@ -330,7 +330,7 @@ def build_background_css(item, width, height):
background = \
u'background: ' \
u'-webkit-gradient(linear, left top, left bottom, ' \
'from(%s), to(%s))' % (theme.background_start_color,
'from(%s), to(%s)) fixed' % (theme.background_start_color,
theme.background_end_color)
elif theme.background_direction == \
BackgroundGradientType.to_string( \
@ -338,7 +338,7 @@ def build_background_css(item, width, height):
background = \
u'background: ' \
u'-webkit-gradient(linear, left top, right bottom, ' \
'from(%s), to(%s))' % (theme.background_start_color,
'from(%s), to(%s)) fixed' % (theme.background_start_color,
theme.background_end_color)
elif theme.background_direction == \
BackgroundGradientType.to_string \
@ -346,20 +346,21 @@ def build_background_css(item, width, height):
background = \
u'background: ' \
u'-webkit-gradient(linear, left bottom, right top, ' \
'from(%s), to(%s))' % (theme.background_start_color,
'from(%s), to(%s)) fixed' % (theme.background_start_color,
theme.background_end_color)
elif theme.background_direction == \
BackgroundGradientType.to_string \
(BackgroundGradientType.Vertical):
background = \
u'background: -webkit-gradient(linear, left top, ' \
u'right top, from(%s), to(%s))' % \
u'right top, from(%s), to(%s)) fixed' % \
(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_start_color, theme.background_end_color)
u'50%%, %s, from(%s), to(%s)) fixed' % (width, width,
width, theme.background_start_color,
theme.background_end_color)
return background
def build_lyrics_css(item, webkitvers):
@ -483,11 +484,15 @@ def build_lyrics_format_css(theme, width, height):
left_margin = int(theme.font_main_outline_size) * 2
else:
left_margin = 0
lyrics = u'white-space:pre-wrap; word-wrap: break-word; ' \
justify = u'white-space:pre-wrap;'
# fix tag incompatibilities
if theme.display_horizontal_align == HorizontalType.Justify:
justify = u''
lyrics = u'%s word-wrap: break-word; ' \
'text-align: %s; vertical-align: %s; font-family: %s; ' \
'font-size: %spt; color: %s; line-height: %d%%; margin: 0;' \
'padding: 0; padding-left: %spx; width: %spx; height: %spx; ' % \
(align, valign, theme.font_main_name, theme.font_main_size,
(justify, align, valign, theme.font_main_name, theme.font_main_size,
theme.font_main_color, 100 + int(theme.font_main_line_adjustment),
left_margin, width, height)
if theme.font_main_outline:

View File

@ -44,6 +44,7 @@ VERSE = u'The Lord said to {r}Noah{/r}: \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'
VERSE_FOR_LINE_COUNT = u'\n'.join(map(unicode, xrange(50)))
FOOTER = [u'Arky Arky (Unknown)', u'Public Domain', u'CCLI 123456']
class Renderer(object):
@ -193,7 +194,7 @@ class Renderer(object):
serviceItem.theme = theme_data
if self.force_page:
# make big page for theme edit dialog to get line count
serviceItem.add_from_text(u'', VERSE + VERSE + VERSE)
serviceItem.add_from_text(u'', VERSE_FOR_LINE_COUNT)
else:
self.imageManager.del_image(theme_data.theme_name)
serviceItem.add_from_text(u'', VERSE)
@ -227,14 +228,10 @@ class Renderer(object):
# Bibles
if item.is_capable(ItemCapabilities.CanWordSplit):
pages = self._paginate_slide_words(text.split(u'\n'), line_end)
else:
# Clean up line endings.
lines = self._lines_split(text)
pages = self._paginate_slide(lines, line_end)
# Songs and Custom
if item.is_capable(ItemCapabilities.CanSoftBreak) and \
len(pages) > 1 and u'[---]' in text:
pages = []
# Songs and Custom
elif item.is_capable(ItemCapabilities.CanSoftBreak):
pages = []
if u'[---]' in text:
while True:
slides = text.split(u'\n[---]\n', 2)
# If there are (at least) two occurrences of [---] we use
@ -275,6 +272,11 @@ class Renderer(object):
lines = text.strip(u'\n').split(u'\n')
pages.extend(self._paginate_slide(lines, line_end))
break
else:
# Clean up line endings.
pages = self._paginate_slide(text.split(u'\n'), line_end)
else:
pages = self._paginate_slide(text.split(u'\n'), line_end)
new_pages = []
for page in pages:
while page.endswith(u'<br>'):
@ -588,12 +590,3 @@ class Renderer(object):
# this parse we are to be wordy
line = line.replace(u'\n', u' ')
return line.split(u' ')
def _lines_split(self, text):
"""
Split the slide up by physical line
"""
# this parse we do not want to use this so remove it
text = text.replace(u'\n[---]', u'')
text = text.replace(u'[---]', u'')
return text.split(u'\n')

View File

@ -176,8 +176,9 @@ class HorizontalType(object):
Left = 0
Right = 1
Center = 2
Justify = 3
Names = [u'left', u'right', u'center']
Names = [u'left', u'right', u'center', u'justify']
class VerticalType(object):

View File

@ -30,14 +30,13 @@ protected and included each time loaded. Custom tags can be defined and saved.
The Custom Tag arrays are saved in a pickle so QSettings works on them. Base
Tags cannot be changed.
"""
import cPickle
from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate, FormattingTags
from openlp.core.lib.ui import critical_error_message_box
from openlp.core.ui.formattingtagdialog import Ui_FormattingTagDialog
class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
"""
The :class:`FormattingTagForm` manages the settings tab .
@ -48,7 +47,6 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
"""
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
self._loadFormattingTags()
QtCore.QObject.connect(self.tagTableWidget,
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onRowSelected)
QtCore.QObject.connect(self.newPushButton,
@ -59,41 +57,24 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
QtCore.SIGNAL(u'pressed()'), self.onDeletePushed)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'),
self.close)
# Forces reloading of tags from openlp configuration.
FormattingTags.load_tags()
def exec_(self):
"""
Load Display and set field state.
"""
# Create initial copy from master
self._loadFormattingTags()
self._resetTable()
self.selected = -1
return QtGui.QDialog.exec_(self)
def _loadFormattingTags(self):
"""
Load the Tags from store so can be used in the system or used to
update the display. If Cancel was selected this is needed to reset the
dsiplay to the correct version.
"""
# Initial Load of the Tags
FormattingTags.reset_html_tags()
# Formatting Tags were also known as display tags.
user_expands = QtCore.QSettings().value(u'displayTags/html_tags',
QtCore.QVariant(u'')).toString()
# cPickle only accepts str not unicode strings
user_expands_string = str(unicode(user_expands).encode(u'utf8'))
if user_expands_string:
user_tags = cPickle.loads(user_expands_string)
# If we have some user ones added them as well
FormattingTags.add_html_tags(user_tags)
def onRowSelected(self):
"""
Table Row selected so display items and set field state.
"""
row = self.tagTableWidget.currentRow()
html = FormattingTags.get_html_tags()[row]
html = FormattingTags.html_expands[row]
self.selected = row
self.descriptionLineEdit.setText(html[u'desc'])
self.tagLineEdit.setText(self._strip(html[u'start tag']))
@ -118,7 +99,7 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
"""
Add a new tag to list only if it is not a duplicate.
"""
for html in FormattingTags.get_html_tags():
for html in FormattingTags.html_expands:
if self._strip(html[u'start tag']) == u'n':
critical_error_message_box(
translate('OpenLP.FormattingTagForm', 'Update Error'),
@ -132,7 +113,8 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
u'start html': translate('OpenLP.FormattingTagForm', '<HTML here>'),
u'end tag': u'{/n}',
u'end html': translate('OpenLP.FormattingTagForm', '</and here>'),
u'protected': False
u'protected': False,
u'temporary': False
}
FormattingTags.add_html_tags([tag])
self._resetTable()
@ -149,13 +131,13 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
FormattingTags.remove_html_tag(self.selected)
self.selected = -1
self._resetTable()
self._saveTable()
FormattingTags.save_html_tags()
def onSavedPushed(self):
"""
Update Custom Tag details if not duplicate and save the data.
"""
html_expands = FormattingTags.get_html_tags()
html_expands = FormattingTags.html_expands
if self.selected != -1:
html = html_expands[self.selected]
tag = unicode(self.tagLineEdit.text())
@ -172,21 +154,11 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
html[u'end html'] = unicode(self.endTagLineEdit.text())
html[u'start tag'] = u'{%s}' % tag
html[u'end tag'] = u'{/%s}' % tag
# Keep temporary tags when the user changes one.
html[u'temporary'] = False
self.selected = -1
self._resetTable()
self._saveTable()
def _saveTable(self):
"""
Saves all formatting tags except protected ones.
"""
tags = []
for tag in FormattingTags.get_html_tags():
if not tag[u'protected']:
tags.append(tag)
# Formatting Tags were also known as display tags.
QtCore.QSettings().setValue(u'displayTags/html_tags',
QtCore.QVariant(cPickle.dumps(tags) if tags else u''))
FormattingTags.save_html_tags()
def _resetTable(self):
"""
@ -197,9 +169,8 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
self.newPushButton.setEnabled(True)
self.savePushButton.setEnabled(False)
self.deletePushButton.setEnabled(False)
for linenumber, html in enumerate(FormattingTags.get_html_tags()):
self.tagTableWidget.setRowCount(
self.tagTableWidget.rowCount() + 1)
for linenumber, html in enumerate(FormattingTags.html_expands):
self.tagTableWidget.setRowCount(self.tagTableWidget.rowCount() + 1)
self.tagTableWidget.setItem(linenumber, 0,
QtGui.QTableWidgetItem(html[u'desc']))
self.tagTableWidget.setItem(linenumber, 1,
@ -208,6 +179,9 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
QtGui.QTableWidgetItem(html[u'start html']))
self.tagTableWidget.setItem(linenumber, 3,
QtGui.QTableWidgetItem(html[u'end html']))
# Permanent (persistent) tags do not have this key.
if u'temporary' not in html:
html[u'temporary'] = False
self.tagTableWidget.resizeRowsToContents()
self.descriptionLineEdit.setText(u'')
self.tagLineEdit.setText(u'')

View File

@ -30,6 +30,7 @@ import logging
import os
import shutil
import zipfile
from tempfile import mkstemp
log = logging.getLogger(__name__)
@ -467,15 +468,24 @@ class ServiceManager(QtGui.QWidget):
def saveFile(self):
"""
Save the current Service file.
Save the current service file.
A temporary file is created so that we don't overwrite the existing one
and leave a mangled service file should there be an error when saving.
Audio files are also copied into the service manager directory, and
then packaged into the zip file.
"""
if not self.fileName():
return self.saveFileAs()
temp_file, temp_file_name = mkstemp(u'.osz', u'openlp_')
# We don't need the file handle.
os.close(temp_file)
log.debug(temp_file_name)
path_file_name = unicode(self.fileName())
path, file_name = os.path.split(path_file_name)
basename, extension = os.path.splitext(file_name)
service_file_name = '%s.osd' % basename
log.debug(u'ServiceManager.saveFile - %s' % path_file_name)
log.debug(u'ServiceManager.saveFile - %s', path_file_name)
SettingsManager.set_last_dir(
self.mainwindow.servicemanagerSettingsSection,
path)
@ -494,7 +504,8 @@ class ServiceManager(QtGui.QWidget):
if len(service_item[u'header'][u'background_audio']) > 0:
for i, filename in \
enumerate(service_item[u'header'][u'background_audio']):
new_file = os.path.join(u'audio', item[u'service_item']._uuid,
new_file = os.path.join(u'audio',
item[u'service_item']._uuid,
os.path.split(filename)[1])
audio_files.append((filename, new_file))
service_item[u'header'][u'background_audio'][i] = new_file
@ -545,30 +556,38 @@ class ServiceManager(QtGui.QWidget):
success = True
self.mainwindow.incrementProgressBar()
try:
zip = zipfile.ZipFile(path_file_name, 'w', zipfile.ZIP_STORED,
zip = zipfile.ZipFile(temp_file_name, 'w', zipfile.ZIP_STORED,
allow_zip_64)
# First we add service contents.
# We save ALL filenames into ZIP using UTF-8.
zip.writestr(service_file_name.encode(u'utf-8'), service_content)
# Finally add all the listed media files.
for path_from in write_list:
zip.write(path_from, path_from.encode(u'utf-8'))
for path_from, path_to in audio_files:
if path_from == path_to:
# If this file has already been saved, let's use set the
# from path to the real location of the files
path_from = os.path.join(self.servicePath, path_from)
else:
# If this file has not yet been saved, let's copy the file
# to the service manager path
save_file = os.path.join(self.servicePath, path_to)
save_path = os.path.split(save_file)[0]
if not os.path.exists(save_path):
os.makedirs(save_path)
shutil.copy(path_from, save_file)
zip.write(path_from, path_to.encode(u'utf-8'))
for write_from in write_list:
zip.write(write_from, write_from.encode(u'utf-8'))
for audio_from, audio_to in audio_files:
if audio_from.startswith(u'audio'):
# When items are saved, they get new UUID's. Let's copy the
# file to the new location. Unused files can be ignored,
# OpenLP automatically cleans up the service manager dir on
# exit.
audio_from = os.path.join(self.servicePath, audio_from)
save_file = os.path.join(self.servicePath, audio_to)
save_path = os.path.split(save_file)[0]
if not os.path.exists(save_path):
os.makedirs(save_path)
if not os.path.exists(save_file):
shutil.copy(audio_from, save_file)
zip.write(audio_from, audio_to.encode(u'utf-8'))
except IOError:
log.exception(u'Failed to save service to disk')
log.exception(u'Failed to save service to disk: %s', temp_file_name)
# Add this line in after the release to notify the user that saving
# their file failed. Commented out due to string freeze.
#Receiver.send_message(u'openlp_error_message', {
# u'title': translate(u'OpenLP.ServiceManager',
# u'Error Saving File'),
# u'message': translate(u'OpenLP.ServiceManager',
# u'There was an error saving your file.')
#})
success = False
finally:
if zip:
@ -576,10 +595,13 @@ class ServiceManager(QtGui.QWidget):
self.mainwindow.finishedProgressBar()
Receiver.send_message(u'cursor_normal')
if success:
shutil.copy(temp_file_name, path_file_name)
self.mainwindow.addRecentFile(path_file_name)
self.setModified(False)
else:
delete_file(path_file_name)
try:
delete_file(temp_file_name)
except:
pass
return success
def saveFileAs(self):
@ -623,6 +645,7 @@ class ServiceManager(QtGui.QWidget):
osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile))
if not osfile.startswith(u'audio'):
osfile = os.path.split(osfile)[1]
log.debug(u'Extract file: %s', osfile)
zipinfo.filename = osfile
zip.extract(zipinfo, self.servicePath)
if osfile.endswith(u'osd'):
@ -637,14 +660,17 @@ class ServiceManager(QtGui.QWidget):
for item in items:
self.mainwindow.incrementProgressBar()
serviceItem = ServiceItem()
serviceItem.from_service = True
serviceItem.renderer = self.mainwindow.renderer
serviceItem.set_from_service(item, self.servicePath)
self.validateItem(serviceItem)
self.addServiceItem(serviceItem, repaint=False)
self.loadItem_uuid = 0
if serviceItem.is_capable(ItemCapabilities.OnLoadUpdate):
Receiver.send_message(u'%s_service_load' %
serviceItem.name.lower(), serviceItem)
# if the item has been processed
if serviceItem._uuid == self.loadItem_uuid:
serviceItem.edit_id = int(self.loadItem_editId)
self.addServiceItem(serviceItem, repaint=False)
delete_file(p_file)
self.setFileName(fileName)
self.mainwindow.addRecentFile(fileName)
@ -1022,11 +1048,12 @@ class ServiceManager(QtGui.QWidget):
"""
Empties the servicePath of temporary files.
"""
log.debug(u'Cleaning up servicePath')
for file in os.listdir(self.servicePath):
file_path = os.path.join(self.servicePath, file)
delete_file(file_path)
if os.path.exists(os.path.join(self.servicePath, u'audio')):
shutil.rmtree(os.path.join(self.servicePath, u'audio'), False)
shutil.rmtree(os.path.join(self.servicePath, u'audio'), True)
def onThemeComboBoxSelected(self, currentIndex):
"""
@ -1098,12 +1125,10 @@ class ServiceManager(QtGui.QWidget):
def serviceItemUpdate(self, message):
"""
Triggered from plugins to update service items.
Save the values as they will be used as part of the service load
"""
editId, uuid = message.split(u':')
for item in self.serviceItems:
if item[u'service_item']._uuid == uuid:
item[u'service_item'].edit_id = int(editId)
self.setModified()
editId, self.loadItem_uuid = message.split(u':')
self.loadItem_editId = int(editId)
def replaceServiceItem(self, newItem):
"""

View File

@ -246,7 +246,7 @@ class Ui_ThemeWizard(object):
self.horizontalLabel = QtGui.QLabel(self.alignmentPage)
self.horizontalLabel.setObjectName(u'HorizontalLabel')
self.horizontalComboBox = QtGui.QComboBox(self.alignmentPage)
self.horizontalComboBox.addItems([u'', u'', u''])
self.horizontalComboBox.addItems([u'', u'', u'', u''])
self.horizontalComboBox.setObjectName(u'HorizontalComboBox')
self.alignmentLayout.addRow(self.horizontalLabel,
self.horizontalComboBox)
@ -495,6 +495,8 @@ class Ui_ThemeWizard(object):
translate('OpenLP.ThemeWizard', 'Right'))
self.horizontalComboBox.setItemText(HorizontalType.Center,
translate('OpenLP.ThemeWizard', 'Center'))
self.horizontalComboBox.setItemText(HorizontalType.Justify,
translate('OpenLP.ThemeWizard', 'Justify'))
self.transitionsLabel.setText(
translate('OpenLP.ThemeWizard', 'Transitions:'))
self.areaPositionPage.setTitle(

View File

@ -127,6 +127,9 @@ class AppLocation(object):
CacheDir = 6
LanguageDir = 7
# Base path where data/config/cache dir is located
BaseDir = None
@staticmethod
def get_directory(dir_type=1):
"""
@ -152,6 +155,8 @@ class AppLocation(object):
os.path.abspath(os.path.split(sys.argv[0])[0]),
_get_os_dir_path(dir_type))
return os.path.join(app_path, u'i18n')
elif dir_type == AppLocation.DataDir and AppLocation.BaseDir:
return os.path.join(AppLocation.BaseDir, 'data')
else:
return _get_os_dir_path(dir_type)

View File

@ -682,7 +682,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
text = unicode(self.songBookComboBox.currentText())
if item == 0 and text:
temp_song_book = text
self.mediaitem.song_maintenance_form.exec_()
self.mediaitem.songMaintenanceForm.exec_()
self.loadAuthors()
self.loadBooks()
self.loadTopics()

View File

@ -428,7 +428,8 @@ class SongMediaItem(MediaManagerItem):
def generateSlideData(self, service_item, item=None, xmlVersion=False,
remote=False):
log.debug(u'generateSlideData (%s:%s)' % (service_item, item))
log.debug(u'generateSlideData: %s, %s, %s' %
(service_item, item, self.remoteSong))
item_id = self._getIdOfItemToGenerate(item, self.remoteSong)
service_item.add_capability(ItemCapabilities.CanEdit)
service_item.add_capability(ItemCapabilities.CanPreview)
@ -509,7 +510,8 @@ class SongMediaItem(MediaManagerItem):
# Add the audio file to the service item.
if len(song.media_files) > 0:
service_item.add_capability(ItemCapabilities.HasBackgroundAudio)
service_item.background_audio = [m.file_name for m in song.media_files]
service_item.background_audio = \
[m.file_name for m in song.media_files]
return True
def serviceLoad(self, item):
@ -559,6 +561,9 @@ class SongMediaItem(MediaManagerItem):
self._updateBackgroundAudio(song, item)
editId = song.id
self.onSearchTextButtonClick()
else:
# Make sure we temporary import formatting tags.
self.openLyrics.xml_to_song(item.xml_version, True)
# Update service with correct song id.
if editId:
Receiver.send_message(u'service_item_update',

View File

@ -61,19 +61,21 @@ The XML of an `OpenLyrics <http://openlyrics.info/>`_ song looks like this::
</song>
"""
import datetime
import logging
import re
from lxml import etree, objectify
from openlp.core.lib import FormattingTags
from openlp.plugins.songs.lib import clean_song, VerseType
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic
from openlp.core.utils import get_application_version
log = logging.getLogger(__name__)
CHORD_REGEX = re.compile(u'<chord name=".*?"/>')
NAMESPACE = u'http://openlyrics.info/namespace/2009/song'
NSMAP = '{' + NAMESPACE + '}' + '%s'
class SongXML(object):
"""
@ -173,7 +175,7 @@ class SongXML(object):
class OpenLyrics(object):
"""
This class represents the converter for OpenLyrics XML (version 0.7)
This class represents the converter for OpenLyrics XML (version 0.8)
to/from a song.
As OpenLyrics has a rich set of different features, we cannot support them
@ -198,11 +200,15 @@ class OpenLyrics(object):
``<key>``
This property is not supported.
``<format>``
The custom formatting tags are fully supported.
``<keywords>``
This property is not supported.
``<lines>``
The attribute *part* is not supported.
The attribute *part* is not supported. The *break* attribute is
supported.
``<publisher>``
This property is not supported.
@ -227,15 +233,35 @@ class OpenLyrics(object):
``<verse name="v1a" lang="he" translit="en">``
The attribute *translit* is not supported. Note, the attribute *lang* is
considered, but there is not further functionality implemented yet.
considered, but there is not further functionality implemented yet. The
following verse "types" are supported by OpenLP:
* v
* c
* b
* p
* i
* e
* o
The verse "types" stand for *Verse*, *Chorus*, *Bridge*, *Pre-Chorus*,
*Intro*, *Ending* and *Other*. Any numeric value is allowed after the
verse type. The complete verse name in OpenLP always consists of the
verse type and the verse number. If not number is present *1* is
assumed.
OpenLP will merge verses which are split up by appending a letter to the
verse name, such as *v1a*.
``<verseOrder>``
OpenLP supports this property.
"""
IMPLEMENTED_VERSION = u'0.7'
IMPLEMENTED_VERSION = u'0.8'
def __init__(self, manager):
self.manager = manager
self.start_tags_regex = re.compile(r'\{(\w+)\}') # {abc} -> abc
self.end_tags_regex = re.compile(r'\{\/(\w+)\}') # {/abc} -> abc
def song_to_xml(self, song):
"""
@ -244,13 +270,14 @@ class OpenLyrics(object):
sxml = SongXML()
song_xml = objectify.fromstring(u'<song/>')
# Append the necessary meta data to the song.
song_xml.set(u'xmlns', u'http://openlyrics.info/namespace/2009/song')
song_xml.set(u'xmlns', NAMESPACE)
song_xml.set(u'version', OpenLyrics.IMPLEMENTED_VERSION)
application_name = u'OpenLP ' + get_application_version()[u'version']
song_xml.set(u'createdIn', application_name)
song_xml.set(u'modifiedIn', application_name)
# "Convert" 2011-08-27 11:49:15 to 2011-08-27T11:49:15.
song_xml.set(u'modifiedDate',
datetime.datetime.now().strftime(u'%Y-%m-%dT%H:%M:%S'))
unicode(song.last_modified).replace(u' ', u'T'))
properties = etree.SubElement(song_xml, u'properties')
titles = etree.SubElement(properties, u'titles')
self._add_text_to_element(u'title', titles, song.title)
@ -284,29 +311,40 @@ class OpenLyrics(object):
themes = etree.SubElement(properties, u'themes')
for topic in song.topics:
self._add_text_to_element(u'theme', themes, topic.name)
# Process the formatting tags.
# Have we any tags in song lyrics?
tags_element = None
match = re.search(u'\{/?\w+\}', song.lyrics, re.UNICODE)
if match:
# Reset available tags.
FormattingTags.reset_html_tags()
# Named 'formatting' - 'format' is built-in fuction in Python.
format_ = etree.SubElement(song_xml, u'format')
tags_element = etree.SubElement(format_, u'tags')
tags_element.set(u'application', u'OpenLP')
# Process the song's lyrics.
lyrics = etree.SubElement(song_xml, u'lyrics')
verse_list = sxml.get_verses(song.lyrics)
for verse in verse_list:
verse_tag = verse[0][u'type'][0].lower()
verse_number = verse[0][u'label']
verse_def = verse_tag + verse_number
verse_element = \
self._add_text_to_element(u'verse', lyrics, None, verse_def)
if u'lang' in verse[0]:
verse_element.set(u'lang', verse[0][u'lang'])
# Create a list with all "virtual" verses.
virtual_verses = verse[1].split(u'[---]')
for index, virtual_verse in enumerate(virtual_verses):
verse_def = verse_tag + verse_number
# We need "v1a" because we have more than one virtual verse.
if len(virtual_verses) > 1:
verse_def += list(u'abcdefghijklmnopqrstuvwxyz')[index]
element = \
self._add_text_to_element(u'verse', lyrics, None, verse_def)
if verse[0].has_key(u'lang'):
element.set(u'lang', verse[0][u'lang'])
element = self._add_text_to_element(u'lines', element)
for line in virtual_verse.strip(u'\n').split(u'\n'):
self._add_text_to_element(u'line', element, line)
# Add formatting tags to text
lines_element = self._add_text_with_tags_to_lines(verse_element,
virtual_verse, tags_element)
# Do not add the break attribute to the last lines element.
if index < len(virtual_verses) - 1:
lines_element.set(u'break', u'optional')
return self._extract_xml(song_xml)
def xml_to_song(self, xml):
def xml_to_song(self, xml, parse_and_not_save=False):
"""
Create and save a song from OpenLyrics format xml to the database. Since
we also export XML from external sources (e. g. OpenLyrics import), we
@ -314,19 +352,26 @@ class OpenLyrics(object):
``xml``
The XML to parse (unicode).
``parse_and_not_save``
Switch to skip processing the whole song and to prevent storing the
songs to the database. Defaults to ``False``.
"""
# No xml get out of here.
if not xml:
return None
if xml[:5] == u'<?xml':
xml = xml[38:]
# Remove chords from xml.
xml = CHORD_REGEX.sub(u'', xml)
song_xml = objectify.fromstring(xml)
if hasattr(song_xml, u'properties'):
properties = song_xml.properties
else:
return None
# Formatting tags are new in OpenLyrics 0.8
if float(song_xml.get(u'version')) > 0.7:
self._process_formatting_tags(song_xml, parse_and_not_save)
if parse_and_not_save:
return
song = Song()
# Values will be set when cleaning the song.
song.search_lyrics = u''
@ -336,7 +381,7 @@ class OpenLyrics(object):
self._process_cclinumber(properties, song)
self._process_titles(properties, song)
# The verse order is processed with the lyrics!
self._process_lyrics(properties, song_xml.lyrics, song)
self._process_lyrics(properties, song_xml, song)
self._process_comments(properties, song)
self._process_authors(properties, song)
self._process_songbooks(properties, song)
@ -355,6 +400,57 @@ class OpenLyrics(object):
parent.append(element)
return element
def _add_tag_to_formatting(self, tag_name, tags_element):
"""
Add new formatting tag to the element ``<format>``
if the tag is not present yet.
"""
available_tags = FormattingTags.get_html_tags()
start_tag = '{%s}' % tag_name
for t in available_tags:
if t[u'start tag'] == start_tag:
# Create new formatting tag in openlyrics xml.
el = self._add_text_to_element(u'tag', tags_element)
el.set(u'name', tag_name)
el_open = self._add_text_to_element(u'open', el)
el_open.text = etree.CDATA(t[u'start html'])
# Check if formatting tag contains end tag. Some formatting
# tags e.g. {br} has only start tag. If no end tag is present
# <close> element has not to be in OpenLyrics xml.
if t['end tag']:
el_close = self._add_text_to_element(u'close', el)
el_close.text = etree.CDATA(t[u'end html'])
def _add_text_with_tags_to_lines(self, verse_element, text, tags_element):
"""
Convert text with formatting tags from OpenLP format to OpenLyrics
format and append it to element ``<lines>``.
"""
start_tags = self.start_tags_regex.findall(text)
end_tags = self.end_tags_regex.findall(text)
# Replace start tags with xml syntax.
for tag in start_tags:
# Tags already converted to xml structure.
xml_tags = tags_element.xpath(u'tag/attribute::name')
# Some formatting tag has only starting part e.g. <br>.
# Handle this case.
if tag in end_tags:
text = text.replace(u'{%s}' % tag, u'<tag name="%s">' % tag)
else:
text = text.replace(u'{%s}' % tag, u'<tag name="%s"/>' % tag)
# Add tag to <format> element if tag not present.
if tag not in xml_tags:
self._add_tag_to_formatting(tag, tags_element)
# Replace end tags.
for t in end_tags:
text = text.replace(u'{/%s}' % t, u'</tag>')
# Replace \n with <br/>.
text = text.replace(u'\n', u'<br/>')
text = u'<lines>' + text + u'</lines>'
element = etree.XML(text)
verse_element.append(element)
return element
def _extract_xml(self, xml):
"""
Extract our newly created XML song.
@ -362,20 +458,6 @@ class OpenLyrics(object):
return etree.tostring(xml, encoding=u'UTF-8',
xml_declaration=True)
def _get(self, element, attribute):
"""
This returns the element's attribute as unicode string.
``element``
The element.
``attribute``
The element's attribute (unicode).
"""
if element.get(attribute) is not None:
return unicode(element.get(attribute))
return u''
def _text(self, element):
"""
This returns the text of an element as unicode string.
@ -457,29 +539,155 @@ class OpenLyrics(object):
if hasattr(properties, u'copyright'):
song.copyright = self._text(properties.copyright)
def _process_lyrics(self, properties, lyrics, song):
def _process_formatting_tags(self, song_xml, temporary):
"""
Process the formatting tags from the song and either add missing tags
temporary or permanently to the formatting tag list.
"""
if not hasattr(song_xml, u'format'):
return
found_tags = []
for tag in song_xml.format.tags.getchildren():
name = tag.get(u'name')
if name is None:
continue
start_tag = u'{%s}' % name[:5]
# Some tags have only start tag e.g. {br}
end_tag = u'{/' + name[:5] + u'}' if hasattr(tag, 'close') else u''
openlp_tag = {
u'desc': name,
u'start tag': start_tag,
u'end tag': end_tag,
u'start html': tag.open.text,
# Some tags have only start html e.g. {br}
u'end html': tag.close.text if hasattr(tag, 'close') else u'',
u'protected': False,
}
# Add 'temporary' key in case the formatting tag should not be
# saved otherwise it is supposed that formatting tag is permanent.
if temporary:
openlp_tag[u'temporary'] = temporary
found_tags.append(openlp_tag)
existing_tag_ids = [tag[u'start tag']
for tag in FormattingTags.get_html_tags()]
new_tags = [tag for tag in found_tags
if tag[u'start tag'] not in existing_tag_ids]
FormattingTags.add_html_tags(new_tags, True)
def _process_lines_mixed_content(self, element, newlines=True):
"""
Converts the xml text with mixed content to OpenLP representation.
Chords are skipped and formatting tags are converted.
``element``
The property object (lxml.etree.Element).
``newlines``
The switch to enable/disable processing of line breaks <br/>.
The <br/> is used since OpenLyrics 0.8.
"""
text = u''
use_endtag = True
# Skip <comment> elements - not yet supported.
if element.tag == NSMAP % u'comment':
if element.tail:
# Append tail text at chord element.
text += element.tail
return text
# Skip <chord> element - not yet supported.
elif element.tag == NSMAP % u'chord':
if element.tail:
# Append tail text at chord element.
text += element.tail
return text
# Convert line breaks <br/> to \n.
elif newlines and element.tag == NSMAP % u'br':
text += u'\n'
if element.tail:
text += element.tail
return text
# Start formatting tag.
if element.tag == NSMAP % u'tag':
text += u'{%s}' % element.get(u'name')
# Some formattings may have only start tag.
# Handle this case if element has no children and contains no text.
if len(element) == 0 and not element.text:
use_endtag = False
# Append text from element.
if element.text:
text += element.text
# Process nested formatting tags.
for child in element:
# Use recursion since nested formatting tags are allowed.
text += self._process_lines_mixed_content(child, newlines)
# Append text from tail and add formatting end tag.
if element.tag == NSMAP % 'tag' and use_endtag:
text += u'{/%s}' % element.get(u'name')
# Append text from tail.
if element.tail:
text += element.tail
return text
def _process_verse_lines(self, lines, version):
"""
Converts lyrics lines to OpenLP representation.
``lines``
The lines object (lxml.objectify.ObjectifiedElement).
"""
text = u''
# Convert lxml.objectify to lxml.etree representation.
lines = etree.tostring(lines)
element = etree.XML(lines)
# OpenLyrics 0.8 uses <br/> for new lines.
# Append text from "lines" element to verse text.
if version > '0.7':
text = self._process_lines_mixed_content(element)
# OpenLyrics version <= 0.7 contais <line> elements to represent lines.
# First child element is tested.
else:
# Loop over the "line" elements removing comments and chords.
for line in element:
# Skip comment lines.
if line.tag == NSMAP % u'comment':
continue
if text:
text += u'\n'
text += self._process_lines_mixed_content(line, newlines=False)
return text
def _process_lyrics(self, properties, song_xml, song_obj):
"""
Processes the verses and search_lyrics for the song.
``properties``
The properties object (lxml.objectify.ObjectifiedElement).
``lyrics``
The lyrics object (lxml.objectify.ObjectifiedElement).
``song_xml``
The objectified song (lxml.objectify.ObjectifiedElement).
``song``
``song_obj``
The song object.
"""
sxml = SongXML()
verses = {}
verse_def_list = []
lyrics = song_xml.lyrics
# Loop over the "verse" elements.
for verse in lyrics.verse:
text = u''
# Loop over the "lines" elements.
for lines in verse.lines:
if text:
text += u'\n'
text += u'\n'.join([unicode(line) for line in lines.line])
verse_def = self._get(verse, u'name').lower()
# Append text from "lines" element to verse text.
text += self._process_verse_lines(lines,
version=song_xml.get(u'version'))
# Add a virtual split to the verse text.
if lines.get(u'break') is not None:
text += u'\n[---]'
verse_def = verse.get(u'name', u' ').lower()
if verse_def[0] in VerseType.Tags:
verse_tag = verse_def[0]
else:
@ -489,11 +697,16 @@ class OpenLyrics(object):
# not correct the verse order.
if not verse_number:
verse_number = u'1'
lang = None
if self._get(verse, u'lang'):
lang = self._get(verse, u'lang')
if verses.has_key((verse_tag, verse_number, lang)):
lang = verse.get(u'lang')
# In OpenLP 1.9.6 we used v1a, v1b ... to represent visual slide
# breaks. In OpenLyrics 0.7 an attribute has been added.
if song_xml.get(u'modifiedIn') in (u'1.9.6', u'OpenLP 1.9.6') and \
song_xml.get(u'version') == u'0.7' and \
(verse_tag, verse_number, lang) in verses:
verses[(verse_tag, verse_number, lang)] += u'\n[---]\n' + text
# Merge v1a, v1b, .... to v1.
elif (verse_tag, verse_number, lang) in verses:
verses[(verse_tag, verse_number, lang)] += u'\n' + text
else:
verses[(verse_tag, verse_number, lang)] = text
verse_def_list.append((verse_tag, verse_number, lang))
@ -501,10 +714,10 @@ class OpenLyrics(object):
for verse in verse_def_list:
sxml.add_verse_to_lyrics(
verse[0], verse[1], verses[verse], verse[2])
song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
song_obj.lyrics = unicode(sxml.extract_xml(), u'utf-8')
# Process verse order
if hasattr(properties, u'verseOrder'):
song.verse_order = self._text(properties.verseOrder)
song_obj.verse_order = self._text(properties.verseOrder)
def _process_songbooks(self, properties, song):
"""
@ -520,7 +733,7 @@ class OpenLyrics(object):
song.song_number = u''
if hasattr(properties, u'songbooks'):
for songbook in properties.songbooks.songbook:
bookname = self._get(songbook, u'name')
bookname = songbook.get(u'name', u'')
if bookname:
book = self.manager.get_object_filtered(Book,
Book.name == bookname)
@ -529,7 +742,7 @@ class OpenLyrics(object):
book = Book.populate(name=bookname, publisher=u'')
self.manager.save_object(book)
song.song_book_id = book.id
song.song_number = self._get(songbook, u'entry')
song.song_number = songbook.get(u'entry', u'')
# We only support one song book, so take the first one.
break

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1160,7 +1160,7 @@ Wollen Sie die anderen Bilder trotzdem hinzufügen?</translation>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="228"/>
<source>There was no display item to amend.</source>
<translation type="unfinished"></translation>
<translation>Es waren keine Änderungen nötig.</translation>
</message>
</context>
<context>
@ -1282,17 +1282,17 @@ Wollen Sie die anderen Bilder trotzdem hinzufügen?</translation>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="123"/>
<source>There was no display item to amend.</source>
<translation type="unfinished"></translation>
<translation>Es waren keine Änderungen nötig.</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="161"/>
<source>File Too Big</source>
<translation type="unfinished"></translation>
<translation>Diese Datei ist zu groß</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="161"/>
<source>The file you are trying to load is too big. Please reduce it to less than 50MiB.</source>
<translation type="unfinished"></translation>
<translation>Die ausgewählte Datei ist zu groß. Die maximale Dateigröße ist 50 MiB.</translation>
</message>
</context>
<context>
@ -1311,7 +1311,7 @@ Wollen Sie die anderen Bilder trotzdem hinzufügen?</translation>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation>Bilddateien</translation>
</message>
@ -1851,19 +1851,6 @@ Version: %s
<source>Unable to detect an Internet connection.</source>
<translation>Es könnte keine Internetverbindung aufgebaut werden.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="233"/>
<source>No Internet connection was found. The First Time Wizard needs an Internet connection in order to be able to download sample songs, Bibles and themes.
To re-run the First Time Wizard and import this sample data at a later stage, press the cancel button now, check your Internet connection, and restart OpenLP.
To cancel the First Time Wizard completely, press the finish button now.</source>
<translation type="obsolete">Es konnte keine Internetverbindung aufgebaut werden. Der Einrichtungsassistent benötigt eine Internetverbindung um Lieder, Bibeln und Design herunter zu laden.
Um den Einrichtungsassistent später erneut zu starten und diese Beispieldaten zu importieren, drücken Sie »Abbrechen«, überprüfen Sie Ihre Internetverbindung und starten Sie OpenLP erneut.
Um den Einrichtungsassistent nicht auszuführen, drücken Sie »Abschließen«.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="244"/>
<source>Sample Songs</source>
@ -1964,19 +1951,23 @@ Um den Einrichtungsassistent nicht auszuführen, drücken Sie »Abschließen«.<
<source>No Internet connection was found. The First Time Wizard needs an Internet connection in order to be able to download sample songs, Bibles and themes. Press the Finish button now to start OpenLP with initial settings and no sample data.
To re-run the First Time Wizard and import this sample data at a later time, check your Internet connection and re-run this wizard by selecting &quot;Tools/Re-run First Time Wizard&quot; from OpenLP.</source>
<translation type="unfinished"></translation>
<translation>Es wurde keine Internetverbindung erkannt. Um während des erstmaligen Startes von OpenLP Beispiel Lieder, Bibeln und Designs zu installieren ist eine Internetverbindung nötig. Klicken Sie &gt;&gt;Abschließen&lt;&lt;, um OpenLP nun mit Grundeinstellungen und ohne Beispiel Daten zu starten.
Um diesen Einrichtungsassistenten erneut zu starten und die Beispiel Daten zu importieren, prüfen Sie Ihre Internetverbindung und starten den Assistenten im Menü &quot;Extras/Einrichtungsassistenten starten&quot;.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="241"/>
<source>
To cancel the First Time Wizard completely (and not start OpenLP), press the Cancel button now.</source>
<translation type="unfinished"></translation>
<translation>
Um den Einrichtungsassistenten zu unterbrechen (und OpenLP nicht zu starten), bitte &gt;&gt;Abbrechen&lt;&lt; klicken.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="266"/>
<source>Finish</source>
<translation type="unfinished">Ende</translation>
<translation>Ende</translation>
</message>
</context>
<context>
@ -2035,32 +2026,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation>Aktualisierungsfehler</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation>Tag »n« bereits definiert.</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation>Neuer Tag</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation>&lt;HTML hier&gt;</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation>&lt;/und hier&gt;</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation>Tag »%s« bereits definiert.</translation>
</message>
@ -2068,82 +2059,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation>rot</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation>schwarz</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation>blau</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation>gelb</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation>grün</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation>rosa</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation>orange</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation>lila</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation>weiß</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation>hochgestellt</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation>tiefgestellt</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation>Textabsatz</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation>fett</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation>kursiv</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation>unterstrichen</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation>Textumbruch</translation>
</message>
@ -2278,12 +2269,12 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<message>
<location filename="openlp/core/ui/generaltab.py" line="255"/>
<source>Background Audio</source>
<translation type="unfinished"></translation>
<translation>Hintergrundmusik</translation>
</message>
<message>
<location filename="openlp/core/ui/generaltab.py" line="257"/>
<source>Start background audio paused</source>
<translation type="unfinished"></translation>
<translation>Starte Hintergrundmusik pausiert</translation>
</message>
</context>
<context>
@ -2708,11 +2699,6 @@ Der Einrichtungsassistent kann einige Einstellungen verändern und ggf. neue Lie
<source>&amp;Recent Files</source>
<translation>&amp;Zuletzte geöffnete Abläufe</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="419"/>
<source>&amp;Configure Formatting Tags...</source>
<translation type="obsolete">Konfiguriere &amp;Formatvorlagen...</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="1365"/>
<source>Clear List</source>
@ -2785,12 +2771,12 @@ Falsche Einstellungen können fehlerhaftes Verhalten von OpenLP verursachen.</tr
<message>
<location filename="openlp/core/ui/mainwindow.py" line="430"/>
<source>Export OpenLP settings to a specified *.config file</source>
<translation type="unfinished"></translation>
<translation>Exportiere OpenLPs Einstellungen in ein *.config-Datei.</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="434"/>
<source>Import OpenLP settings from a specified *.config file previously exported on this or another machine</source>
<translation type="unfinished"></translation>
<translation>Importiere OpenLPs Einstellungen aus ein *.config-Datei, die vorher an diesem oder einem anderen Computer exportiert wurde.</translation>
</message>
</context>
<context>
@ -2805,20 +2791,24 @@ Falsche Einstellungen können fehlerhaftes Verhalten von OpenLP verursachen.</tr
<source>The database being loaded was created in a more recent version of OpenLP. The database is version %d, while OpenLP expects version %d. The database will not be loaded.
Database: %s</source>
<translation type="unfinished"></translation>
<translation>Die Datenbank die versucht wird zu laden, wurde in einer neueren Version von OpenLP erstellt. Die Datenbank hat die Version %d, wobei OpenLP die Version %d erwartet. Die Datenkbank wird nicht geladen.
Datenbank: %s</translation>
</message>
<message>
<location filename="openlp/core/lib/db.py" line="218"/>
<source>OpenLP cannot load your database.
Database: %s</source>
<translation type="unfinished"></translation>
<translation>OpenLP kann die Datenbank nicht laden.
Datenbank: %s</translation>
</message>
</context>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation>Keine Elemente ausgewählt.</translation>
</message>
@ -2887,7 +2877,7 @@ Dateiendung nicht unterstützt.</translation>
<message>
<location filename="openlp/core/lib/mediamanageritem.py" line="401"/>
<source>Duplicate files were found on import and were ignored.</source>
<translation type="unfinished"></translation>
<translation>Duplikate wurden beim Importieren gefunden und wurden ignoriert.</translation>
</message>
</context>
<context>
@ -3141,29 +3131,29 @@ Dateiendung nicht unterstützt.</translation>
<translation>&amp;Design des Elements ändern</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation>Die gewählte Datei ist keine gültige OpenLP Ablaufdatei.
Der Inhalt ist nicht in UTF-8 kodiert.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation>Die Datei ist keine gültige OpenLP Ablaufdatei.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation>Fehlende Anzeigesteuerung</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation>Dieses Element kann nicht angezeigt werden, da es keine Steuerung dafür gibt.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation>Dieses Element kann nicht angezeigt werden, da die zugehörige Erweiterung fehlt oder inaktiv ist.</translation>
</message>
@ -3193,7 +3183,7 @@ Der Inhalt ist nicht in UTF-8 kodiert.</translation>
<translation>Ablauf öffnen</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation>OpenLP Ablaufdateien (*.osz)</translation>
</message>
@ -3248,22 +3238,22 @@ Der Inhalt ist nicht in UTF-8 kodiert.</translation>
<translation>&amp;Live</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation>Datei konnte nicht geöffnet werden, da sie fehlerhaft ist.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation>Leere Datei</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation>Diese Datei enthält keine Daten.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation>Dehlerhaft Datei</translation>
</message>
@ -3303,17 +3293,17 @@ Der Inhalt ist nicht in UTF-8 kodiert.</translation>
<translation>Design für den Ablauf auswählen.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation>Entweder ist die Datei fehlerhaft oder sie ist keine OpenLP 2.0 Ablauf-Datei.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation>Element-Design</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation>Notizen</translation>
</message>
@ -3502,7 +3492,7 @@ Der Inhalt ist nicht in UTF-8 kodiert.</translation>
<message>
<location filename="openlp/core/ui/slidecontroller.py" line="260"/>
<source>Pause audio.</source>
<translation type="unfinished"></translation>
<translation>Pausiere Musik.</translation>
</message>
</context>
<context>
@ -4050,12 +4040,12 @@ Sie ist nicht in UTF-8 kodiert.</translation>
<message>
<location filename="openlp/core/ui/themewizard.py" line="435"/>
<source>Starting color:</source>
<translation type="unfinished"></translation>
<translation>Startfarbe:</translation>
</message>
<message>
<location filename="openlp/core/ui/themewizard.py" line="437"/>
<source>Ending color:</source>
<translation type="unfinished"></translation>
<translation>Endfarbe</translation>
</message>
<message>
<location filename="openlp/core/ui/themewizard.py" line="451"/>
@ -4706,52 +4696,52 @@ Sie ist nicht in UTF-8 kodiert.</translation>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation>Präsentationen auswählen</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation>automatisch</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation>Anzeigen mit:</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation>Eine Präsentation mit diesem Dateinamen existiert bereits.</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation>Datei existiert</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation>Präsentationsdateien dieses Dateiformats werden nicht unterstützt.</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation>Präsentationen (%s)</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation>Fehlende Präsentation</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation>Die Präsentation »%s« existiert nicht mehr.</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation>Die Präsentation »%s« ist nicht vollständig, bitte neu laden.</translation>
</message>
@ -4999,12 +4989,12 @@ Sie ist nicht in UTF-8 kodiert.</translation>
<message>
<location filename="openlp/plugins/songusage/songusageplugin.py" line="203"/>
<source>display</source>
<translation type="unfinished"></translation>
<translation>Bildschirm</translation>
</message>
<message>
<location filename="openlp/plugins/songusage/songusageplugin.py" line="210"/>
<source>printed</source>
<translation type="unfinished"></translation>
<translation>gedruckt</translation>
</message>
</context>
<context>
@ -5037,7 +5027,7 @@ Sie ist nicht in UTF-8 kodiert.</translation>
<message>
<location filename="openlp/plugins/songusage/forms/songusagedeletedialog.py" line="62"/>
<source>Select the date up to which the song usage data should be deleted. All data recorded before this date will be permanently deleted.</source>
<translation type="unfinished"></translation>
<translation>Bitte wählen Sie das Datum bis zu dem die Protokollierungsdaten gelöscht werden sollen. Alle gespeicherten Daten, welche älter sind, werden dauerhaft gelöscht.</translation>
</message>
</context>
<context>
@ -5333,7 +5323,9 @@ Einstellung korrekt.</translation>
<source>
[above are Song Tags with notes imported from
EasyWorship]</source>
<translation type="unfinished"></translation>
<translation>
[obige Liedformatierungen und Notizen werden importiert von
Easy Worship]</translation>
</message>
</context>
<context>
@ -5521,27 +5513,27 @@ Einstellung korrekt.</translation>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="341"/>
<source>Linked Audio</source>
<translation type="unfinished"></translation>
<translation>Hintergrundmusik</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="344"/>
<source>Add &amp;File(s)</source>
<translation type="unfinished"></translation>
<translation>&amp;Datei(en) hinzufügen</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="346"/>
<source>Add &amp;Media</source>
<translation type="unfinished"></translation>
<translation>&amp;Medien hinzufügen</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongdialog.py" line="350"/>
<source>Remove &amp;All</source>
<translation type="unfinished"></translation>
<translation type="unfinished">&amp;Alle Entfernen</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/editsongform.py" line="710"/>
<source>Open File(s)</source>
<translation type="unfinished"></translation>
<translation>Datei(en) öffnen</translation>
</message>
</context>
<context>
@ -5574,11 +5566,6 @@ Einstellung korrekt.</translation>
<source>Song Export Wizard</source>
<translation>Lied Exportassistent</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songexportform.py" line="171"/>
<source>This wizard will help to export your songs to the open and free OpenLyrics worship song format.</source>
<translation type="obsolete">Dieser Assistent wird Ihnen helfen Lieder in das freie und offene OpenLyrics Lobpreis Lieder Format zu exportieren.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songexportform.py" line="175"/>
<source>Select Songs</source>
@ -5768,12 +5755,12 @@ Einstellung korrekt.</translation>
<message>
<location filename="openlp/plugins/songs/forms/mediafilesdialog.py" line="69"/>
<source>Select Media File(s)</source>
<translation type="unfinished"></translation>
<translation>Wähle Audio-/Videodatei(en)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/mediafilesdialog.py" line="71"/>
<source>Select one or more audio files from the list below, and click OK to import them into this song.</source>
<translation type="unfinished"></translation>
<translation>Wähle eine oder mehrere Audio Dateien von der folgenden Liste und klicke &gt;&gt;OK&lt;&lt;, um sie in dieses Lied zu importieren.</translation>
</message>
</context>
<context>
@ -5789,7 +5776,7 @@ Einstellung korrekt.</translation>
<translation>Liedtext</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation>CCLI-Lizenz: </translation>
</message>
@ -5867,11 +5854,6 @@ Einstellung korrekt.</translation>
</context>
<context>
<name>SongsPlugin.SongExportForm</name>
<message>
<location filename="openlp/plugins/songs/forms/songexportform.py" line="287"/>
<source>Finished export.</source>
<translation type="obsolete">Export beendet.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songexportform.py" line="292"/>
<source>Your song export failed.</source>

View File

@ -1290,7 +1290,7 @@ Do you want to add the other images anyway?</source>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation type="unfinished"></translation>
</message>
@ -1899,32 +1899,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation type="unfinished"></translation>
</message>
@ -1932,82 +1932,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation type="unfinished"></translation>
</message>
@ -2669,7 +2669,7 @@ Database: %s</source>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation type="unfinished"></translation>
</message>
@ -2991,33 +2991,33 @@ Suffix not supported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<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="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<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="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -3117,22 +3117,22 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation type="unfinished"></translation>
</message>
@ -3152,7 +3152,7 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation type="unfinished"></translation>
</message>
@ -3162,12 +3162,12 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
@ -4554,52 +4554,52 @@ The content encoding is not UTF-8.</source>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation type="unfinished"></translation>
</message>
@ -5626,7 +5626,7 @@ The encoding is responsible for the correct character representation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation type="unfinished"></translation>
</message>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="2.0" language="id" sourcelanguage="">
<context>
<name>AlertPlugin.AlertForm</name>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="178"/>
<source>You have not entered a parameter to be replaced.
Do you want to continue anyway?</source>
<translation type="obsolete">Anda belum memasukkan parameter baru.
Tetap lanjutkan?</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="178"/>
<source>No Parameter Found</source>
<translation type="obsolete">Parameter Tidak Ditemukan</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="189"/>
<source>No Placeholder Found</source>
<translation type="obsolete">Placeholder Tidak Ditemukan</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="189"/>
<source>The alert text does not contain &apos;&lt;&gt;&apos;.
Do you want to continue anyway?</source>
<translation type="obsolete">Peringatan tidak mengandung &apos;&lt;&gt;&apos;.
Tetap lanjutkan?</translation>
</message>
</context>
<context>
<name>AlertsPlugin</name>
<message>
@ -39,11 +12,6 @@ Tetap lanjutkan?</translation>
<source>Show an alert message.</source>
<translation>Menampilkan pesan peringatan.</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="105"/>
<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="obsolete">&lt;strong&gt;Plugin Peringatan&lt;/strong&gt;&lt;br /&gt;Plugin peringatan mengendalikan tampilan pesan pada layar</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="116"/>
<source>Alert</source>
@ -181,94 +149,6 @@ Tetap lanjutkan?</translation>
<translation>Waktu-habis untuk peringatan:</translation>
</message>
</context>
<context>
<name>BibleDB.Wizard</name>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="117"/>
<source>Importing books... %s</source>
<translation type="obsolete">Mengimpor kitab... %s</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="157"/>
<source>Importing verses from %s...</source>
<comment>Importing verses from &lt;book name&gt;...</comment>
<translation type="obsolete">Mengimpor ayat dari %s...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="166"/>
<source>Importing verses... done.</source>
<translation type="obsolete">Mengimpor ayat... selesai.</translation>
</message>
</context>
<context>
<name>BiblePlugin</name>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="119"/>
<source>&amp;Upgrade older Bibles</source>
<translation type="obsolete">&amp;Upgrade Alkitab lama</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/bibleplugin.py" line="121"/>
<source>Upgrade the Bible databases to the latest format</source>
<translation type="obsolete">Upgrade basis data Alkitab ke format terbaru.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="121"/>
<source>Upgrade the Bible databases to the latest format.</source>
<translation type="obsolete">Upgrade basis data Alkitab ke format terbaru.</translation>
</message>
</context>
<context>
<name>BiblePlugin.HTTPBible</name>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="596"/>
<source>Download Error</source>
<translation type="obsolete">Unduhan Gagal</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="596"/>
<source>There was a problem downloading your verse selection. Please check your Internet connection, and if this error continues to occur please consider reporting a bug.</source>
<translation type="obsolete">Ada masalah dalam mengunduh ayat yang terpilih. Mohon periksa sambungan internet Anda dan jika masalah berlanjut, pertimbangkan untuk melaporkan hal ini sebagai kutu.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="603"/>
<source>Parse Error</source>
<translation type="obsolete">Galat saat parsing</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="603"/>
<source>There was a problem extracting your verse selection. If this error continues to occur please consider reporting a bug.</source>
<translation type="obsolete">Ada masalah dalam mengekstrak ayat yang terpilih. Jika masalah berlanjut, pertimbangkan untuk melaporkan hal ini sebagai kutu.</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="438"/>
<source>Bible not fully loaded.</source>
<translation type="obsolete">Alkitab belum termuat seluruhnya.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="88"/>
<source>You cannot combine single and dual Bible verse search results. Do you want to delete your search results and start a new search?</source>
<translation type="obsolete">Tidak dapat menggabungkan hasil pencarian ayat. Ingin menghapus hasil pencarian dan mulai pencarian baru?</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="695"/>
<source>Information</source>
<translation type="obsolete">Informasi</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/lib/mediaitem.py" line="695"/>
<source>The second Bibles does not contain all the verses that are in the main Bible. Only verses found in both Bibles will be shown. %d verses have not been included in the results.</source>
<translation type="obsolete">Alkitab kedua tidak memiliki seluruh ayat yang ada di Alkitab utama. Hanya ayat yang ditemukan di kedua Alkitab yang akan ditampilkan. %d ayat tidak terlihat di hasil.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="695"/>
<source>The second Bible does not contain all the verses that are in the main Bible. Only verses found in both Bibles will be shown. %d verses have not been included in the results.</source>
<translation type="obsolete">Alkitab kedua tidak memiliki seluruh ayat yang ada di Alkitab utama. Hanya ayat yang ditemukan di kedua Alkitab yang akan ditampilkan. %d ayat tidak terlihat di hasil.</translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -922,16 +802,6 @@ dibutuhkan dan membutuhkan koneksi internet.</translation>
<source>Please select the Bibles to upgrade</source>
<translation>Mohon pilih Alkitab untuk dimutakhirkan</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="389"/>
<source>Version name:</source>
<translation type="obsolete">Nama versi:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="391"/>
<source>This Bible still exists. Please change the name or uncheck it.</source>
<translation type="obsolete">Alkitab masih ada. Mohon ubah namanya atau kosongkan centang.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="291"/>
<source>Upgrading</source>
@ -942,43 +812,6 @@ dibutuhkan dan membutuhkan koneksi internet.</translation>
<source>Please wait while your Bibles are upgraded.</source>
<translation>Mohon tunggu sementara Alkitab sedang diperbarui.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="414"/>
<source>You need to specify a Backup Directory for your Bibles.</source>
<translation type="obsolete">Anda harus menentukan Direktori Cadangan untuk Alkitab.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/forms/bibleupgradeform.py" line="422"/>
<source>The backup was not successful.
To backup your Bibles you need permission to write to the given directory. If you have write permissions and this error still occurs, please report a bug.</source>
<translation type="obsolete">Pencadangan gagal.
Untuk mencadangkan Alkitab Anda membutuhkan izin untuk write di direktori tersebut. Jika Anda sudah memiliki izin dan tetap terjadi galat, mohon laporkan ini sebagai kutu.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="433"/>
<source>You need to specify a version name for your Bible.</source>
<translation type="obsolete">Anda harus menentukan nama versi untuk Alkitab Anda.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="471"/>
<source>Bible Exists</source>
<translation type="obsolete">Alkitab Sudah Ada</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="471"/>
<source>This Bible already exists. Please upgrade a different Bible, delete the existing one or uncheck.</source>
<translation type="obsolete">Alkitab sudah ada. Mohon mutakhirkan Alkitab yang lain, hapus yang sudah ada, atau hilangkan centang.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/forms/bibleupgradeform.py" line="522"/>
<source>Starting upgrading Bible(s)...</source>
<translation type="obsolete">Memulai pemutakhiran Alkitab...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="533"/>
<source>There are no Bibles available to upgrade.</source>
<translation type="obsolete">Tidak ada Alkitab yang dapat dimutakhirkan.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="570"/>
<source>Upgrading Bible %s of %s: &quot;%s&quot;
@ -998,39 +831,18 @@ Memutakhirkan...</translation>
<source>Download Error</source>
<translation type="unfinished">Unduhan Gagal</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/forms/bibleupgradeform.py" line="603"/>
<source>To upgrade your Web Bibles an Internet connection is required. If you have a working Internet connection and this error still occurs, please report a bug.</source>
<translation type="obsolete">To upgrade your Web Bibles an Internet connection is required. If you have a working Internet connection and this error still occurs, please report a bug.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="536"/>
<source>Upgrading Bible %s of %s: &quot;%s&quot;
Upgrading %s ...</source>
<translation>Memutakhirkan Alkitab %s dari %s: &quot;%s&quot;
Memutakhirkan %s...</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/forms/bibleupgradeform.py" line="736"/>
<source>Upgrading Bible %s of %s: &quot;%s&quot;
Done</source>
<translation type="obsolete">Memutakhirkan Alkitab %s dari %s: &quot;%s&quot;
Selesai</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="605"/>
<source>, %s failed</source>
<translation>, %s gagal</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/bibles/forms/bibleupgradeform.py" line="770"/>
<source>Upgrading Bible(s): %s successful%s
Please note, that verses from Web Bibles will be downloaded
on demand and so an Internet connection is required.</source>
<translation type="obsolete">Memutakhirkan Alkitab: %s berhasil%s
Mohon perhatikan bahwa ayat dari Alkitab Internet
akan diunduh saat diperlukan. Koneksi diperlukan.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="619"/>
<source>Upgrading Bible(s): %s successful%s</source>
@ -1048,11 +860,6 @@ To backup your Bibles you need permission to write to the given directory.</sour
<translation>Pencadangan gagal.
Untuk mencadangkan Alkitab Anda perlu izin untuk menulis di direktori terpilih.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="521"/>
<source>Starting Bible upgrade...</source>
<translation type="obsolete">Memulai pemutakhiran Alkitab...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="440"/>
<source>To upgrade your Web Bibles an Internet connection is required.</source>
@ -1088,11 +895,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
</context>
<context>
<name>CustomPlugin</name>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="57"/>
<source>&lt;strong&gt;Custom Plugin&lt;/strong&gt;&lt;br /&gt;The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin.</source>
<translation type="obsolete">&lt;strong&gt;Plugin Tambahan&lt;/strong&gt;&lt;br/&gt;Plugin tambahan menyediakan kemampuan untuk mengatur slide teks yang dapat ditampilkan pada layar dengan cara yang sama dengan lagu. Plugin ini lebih fleksibel ketimbang plugin lagu.</translation>
</message>
<message>
<location filename="openlp/plugins/custom/customplugin.py" line="57"/>
<source>&lt;strong&gt;Custom Slide Plugin&lt;/strong&gt;&lt;br /&gt;The custom slide plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin.</source>
@ -1197,11 +999,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
<source>Edit all the slides at once.</source>
<translation>Sunting seluruh slide bersamaan.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/forms/editcustomslidedialog.py" line="57"/>
<source>Split Slide</source>
<translation type="obsolete">Pecah Slide</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomslidedialog.py" line="61"/>
<source>Split a slide into two by inserting a slide splitter.</source>
@ -1248,75 +1045,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
</translation>
</message>
</context>
<context>
<name>CustomsPlugin</name>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="98"/>
<source>Custom</source>
<comment>name singular</comment>
<translation type="obsolete">Suaian</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="99"/>
<source>Customs</source>
<comment>name plural</comment>
<translation type="obsolete">Suaian</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="103"/>
<source>Custom</source>
<comment>container title</comment>
<translation type="obsolete">Suaian</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="107"/>
<source>Load a new Custom.</source>
<translation type="obsolete">Muat Suaian baru.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="108"/>
<source>Import a Custom.</source>
<translation type="obsolete">Impor sebuah Suaian.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="109"/>
<source>Add a new Custom.</source>
<translation type="obsolete">Tambahkan sebuah Suaian.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="110"/>
<source>Edit the selected Custom.</source>
<translation type="obsolete">Sunting Suaian terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="111"/>
<source>Delete the selected Custom.</source>
<translation type="obsolete">Hapus Suaian terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="113"/>
<source>Preview the selected Custom.</source>
<translation type="obsolete">Pratinjau Suaian terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="115"/>
<source>Send the selected Custom live.</source>
<translation type="obsolete">Tayangkan Suaian terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="117"/>
<source>Add the selected Custom to the service.</source>
<translation type="obsolete">Tambahkan Suaian ke dalam layanan</translation>
</message>
</context>
<context>
<name>GeneralTab</name>
<message>
<location filename="openlp/core/ui/generaltab.py" line="47"/>
<source>General</source>
<translation type="obsolete">Umum</translation>
</message>
</context>
<context>
<name>ImagePlugin</name>
<message>
@ -1342,41 +1070,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
<comment>container title</comment>
<translation>Gambar</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="73"/>
<source>Load a new Image.</source>
<translation type="obsolete">Muat Gambar baru</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="75"/>
<source>Add a new Image.</source>
<translation type="obsolete">Tambahkan Gambar baru</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="76"/>
<source>Edit the selected Image.</source>
<translation type="obsolete">Sunting Gambar terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="77"/>
<source>Delete the selected Image.</source>
<translation type="obsolete">Hapus Gambar terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="78"/>
<source>Preview the selected Image.</source>
<translation type="obsolete">Pratinjau Gambar terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="79"/>
<source>Send the selected Image live.</source>
<translation type="obsolete">Tayangkan Gambar terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/images/imageplugin.py" line="80"/>
<source>Add the selected Image to the service.</source>
<translation type="obsolete">Tambahkan Gambar terpilih ke layanan.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="79"/>
<source>Load a new image.</source>
@ -1509,41 +1202,6 @@ Ingin tetap menambah gambar lain?</translation>
<comment>container title</comment>
<translation>Media</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="115"/>
<source>Load a new Media.</source>
<translation type="obsolete">Muat Media baru.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="117"/>
<source>Add a new Media.</source>
<translation type="obsolete">Tambahkan Media baru.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="118"/>
<source>Edit the selected Media.</source>
<translation type="obsolete">Sunting Media terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="119"/>
<source>Delete the selected Media.</source>
<translation type="obsolete">Hapus Media terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="120"/>
<source>Preview the selected Media.</source>
<translation type="obsolete">Pratinjau Media terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="121"/>
<source>Send the selected Media live.</source>
<translation type="obsolete">Tayangkan Media terpilih.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/media/mediaplugin.py" line="122"/>
<source>Add the selected Media to the service.</source>
<translation type="obsolete">Tambahkan Media terpilih ke layanan.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="115"/>
<source>Load new media.</source>
@ -1649,7 +1307,7 @@ Ingin tetap menambah gambar lain?</translation>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation>Berkas Gambar</translation>
</message>
@ -1930,67 +1588,6 @@ Portions copyright &#xa9; 2004-2011 %s</source>
<translation>Balikkan ke logo OpenLP bawaan.</translation>
</message>
</context>
<context>
<name>OpenLP.DisplayTagDialog</name>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="126"/>
<source>Edit Selection</source>
<translation type="obsolete">Sunting pilihan</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="139"/>
<source>Description</source>
<translation type="obsolete">Deskripsi</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="132"/>
<source>Tag</source>
<translation type="obsolete">Label</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="133"/>
<source>Start tag</source>
<translation type="obsolete">Label awal</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="135"/>
<source>End tag</source>
<translation type="obsolete">Label akhir</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="141"/>
<source>Tag Id</source>
<translation type="obsolete">ID Label</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="143"/>
<source>Start HTML</source>
<translation type="obsolete">HTML Awal</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="145"/>
<source>End HTML</source>
<translation type="obsolete">Akhir HTML</translation>
</message>
</context>
<context>
<name>OpenLP.DisplayTagTab</name>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="164"/>
<source>Update Error</source>
<translation type="obsolete">Galat dalam Memperbarui</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="122"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="obsolete">Label &quot;n&quot; sudah terdefinisi.</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="164"/>
<source>Tag %s already defined.</source>
<translation type="obsolete">Label %s telah terdefinisi.</translation>
</message>
</context>
<context>
<name>OpenLP.ExceptionDialog</name>
<message>
@ -2192,11 +1789,6 @@ Mohon gunakan bahasa Inggris untuk laporan kutu.</translation>
<source>Songs</source>
<translation>Lagu</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="211"/>
<source>Custom Text</source>
<translation type="obsolete">Teks </translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="213"/>
<source>Bible</source>
@ -2242,19 +1834,6 @@ Mohon gunakan bahasa Inggris untuk laporan kutu.</translation>
<source>Unable to detect an Internet connection.</source>
<translation>Tidak dapat mendeteksi koneksi Internet.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="233"/>
<source>No Internet connection was found. The First Time Wizard needs an Internet connection in order to be able to download sample songs, Bibles and themes.
To re-run the First Time Wizard and import this sample data at a later stage, press the cancel button now, check your Internet connection, and restart OpenLP.
To cancel the First Time Wizard completely, press the finish button now.</source>
<translation type="obsolete">Koneksi Internet tidak ditemukan. Wisaya Kali Pertama butuh sambungan Internet untuk mengunduh contoh lagu, Alkitab, dan tema.
Untuk menjalankan lagi Wisaya Kali Pertama dan mengimpor contoh data, tekan batal, cek koneksi Internet, dan mulai ulang OpenLP.
Untuk membatalkan Wisaya Kali Pertama, tekan tombol selesai.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="244"/>
<source>Sample Songs</source>
@ -2295,16 +1874,6 @@ Untuk membatalkan Wisaya Kali Pertama, tekan tombol selesai.</translation>
<source>Set up default settings to be used by OpenLP.</source>
<translation>Atur pengaturan bawaan pada OpenLP.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/core/ui/firsttimewizard.py" line="257"/>
<source>Setting Up And Importing</source>
<translation type="obsolete">Pengaturan Awal dan Pengimporan</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/core/ui/firsttimewizard.py" line="259"/>
<source>Please wait while OpenLP is set up and your data is imported.</source>
<translation type="obsolete">Mohon tunggu selama OpenLP diatur dan data diimpor.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="260"/>
<source>Default output display:</source>
@ -2436,32 +2005,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation type="unfinished">Galat dalam Memperbarui</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="unfinished">Label &quot;n&quot; sudah terdefinisi.</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation type="unfinished">Label %s telah terdefinisi.</translation>
</message>
@ -2469,82 +2038,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation type="unfinished"></translation>
</message>
@ -3040,11 +2609,6 @@ Versi terbaru dapat diunduh dari http://openlp.org/.</translation>
<source>Are you sure you want to close OpenLP?</source>
<translation>Yakin ingin menutup OpenLP?</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/core/ui/mainwindow.py" line="360"/>
<source>Print the current Service Order.</source>
<translation type="obsolete">Cetak Daftar Layanan aktif</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="499"/>
<source>Open &amp;Data Folder...</source>
@ -3055,11 +2619,6 @@ Versi terbaru dapat diunduh dari http://openlp.org/.</translation>
<source>Open the folder where songs, bibles and other data resides.</source>
<translation>Buka folder tempat lagu, Alkitab, dan data lain disimpan.</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="412"/>
<source>&amp;Configure Display Tags</source>
<translation type="obsolete">&amp;Konfigurasi Label Tampilan</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="491"/>
<source>&amp;Autodetect</source>
@ -3218,7 +2777,7 @@ Database: %s</source>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation>Tidak Ada Barang yang Terpilih</translation>
</message>
@ -3257,13 +2816,6 @@ Database: %s</source>
<source>You must select a %s service item.</source>
<translation>Anda harus memilih sebuah butir layanan %s.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/core/lib/mediamanageritem.py" line="341"/>
<source>Duplicate file name %s.
Filename already exists in list</source>
<translation type="obsolete">Nama berkas %s ganda.
Nama berkas sudah ada di daftar.</translation>
</message>
<message>
<location filename="openlp/core/lib/mediamanageritem.py" line="569"/>
<source>You must select one or more items to add.</source>
@ -3359,11 +2911,6 @@ Suffix not supported</source>
<source>Options</source>
<translation>Pilihan</translation>
</message>
<message>
<location filename="openlp/core/ui/printservicedialog.py" line="71"/>
<source>Close</source>
<translation type="obsolete">Tutup</translation>
</message>
<message>
<location filename="openlp/core/ui/printservicedialog.py" line="66"/>
<source>Copy</source>
@ -3409,11 +2956,6 @@ Suffix not supported</source>
<source>Include play length of media items</source>
<translation>Masukkan lama putar butir media</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/core/ui/printservicedialog.py" line="161"/>
<source>Service Order Sheet</source>
<translation type="obsolete">Lembar Daftar Layanan</translation>
</message>
<message>
<location filename="openlp/core/ui/printservicedialog.py" line="150"/>
<source>Add page break before each text item</source>
@ -3557,34 +3099,34 @@ Suffix not supported</source>
<translation>&amp;Ubah Tema</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation>Berkas Layanan OpenLP (*.osz)</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation>Berkas bukan berupa layanan.
Isi berkas tidak berupa UTF-8.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation>Berkas bukan layanan sahih.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation>Penangan Tayang hilang</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation>Butir tidak dapat ditayangkan karena tidak ada penangan untuk menayangkannya.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -3664,22 +3206,22 @@ Isi berkas tidak berupa UTF-8.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation type="unfinished"></translation>
</message>
@ -3719,17 +3261,17 @@ Isi berkas tidak berupa UTF-8.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
@ -5121,52 +4663,52 @@ The content encoding is not UTF-8.</source>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation type="unfinished"></translation>
</message>
@ -6193,7 +5735,7 @@ The encoding is responsible for the correct character representation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation type="unfinished"></translation>
</message>

File diff suppressed because it is too large Load Diff

View File

@ -12,11 +12,6 @@
<source>Show an alert message.</source>
<translation> .</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="105"/>
<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="obsolete">&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt; .</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="116"/>
<source>Alert</source>
@ -796,11 +791,6 @@ demand and thus an internet connection is required.</source>
<source>Please select the Bibles to upgrade</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="389"/>
<source>Version name:</source>
<translation type="obsolete"> :</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="291"/>
<source>Upgrading</source>
@ -1301,7 +1291,7 @@ Do you want to add the other images anyway?</source>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation type="unfinished"></translation>
</message>
@ -1910,32 +1900,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation type="unfinished"></translation>
</message>
@ -1943,82 +1933,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation type="unfinished"></translation>
</message>
@ -2680,7 +2670,7 @@ Database: %s</source>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation type="unfinished"></translation>
</message>
@ -3002,28 +2992,28 @@ Suffix not supported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<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="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<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="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -3053,7 +3043,7 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
@ -3108,22 +3098,22 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation type="unfinished"></translation>
</message>
@ -3163,17 +3153,17 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
@ -4565,52 +4555,52 @@ The content encoding is not UTF-8.</source>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation type="unfinished"></translation>
</message>
@ -5637,7 +5627,7 @@ The encoding is responsible for the correct character representation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation type="unfinished"></translation>
</message>

View File

@ -1,32 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="2.0" language="nb" sourcelanguage="">
<context>
<name>AlertPlugin.AlertForm</name>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="178"/>
<source>You have not entered a parameter to be replaced.
Do you want to continue anyway?</source>
<translation type="obsolete">Du har ikke angitt et parameter å erstatte.
Vil du fortsette likevel?</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="178"/>
<source>No Parameter Found</source>
<translation type="obsolete">Ingen parametre funnet</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="189"/>
<source>No Placeholder Found</source>
<translation type="obsolete">Ingen plassholder funnet</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="189"/>
<source>The alert text does not contain &apos;&lt;&gt;&apos;.
Do you want to continue anyway?</source>
<translation type="obsolete">Varselteksten inneholder ikke &apos;&lt;&gt;&apos;.
Vil du fortsette likevel?</translation>
</message>
</context>
<context>
<name>AlertsPlugin</name>
<message>
@ -39,11 +12,6 @@ Vil du fortsette likevel?</translation>
<source>Show an alert message.</source>
<translation>Vis en varselmelding.</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="105"/>
<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="obsolete">&lt;strong&gt;Varsel Tilleg&lt;/strong&gt;&lt;br /&gt;Varsels tillegg kontrolleren viser barn-varsel visnings skjermen</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="116"/>
<source>Alert</source>
@ -181,61 +149,6 @@ Vil du fortsette likevel?</translation>
<translation>Varselvarighet:</translation>
</message>
</context>
<context>
<name>BibleDB.Wizard</name>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="117"/>
<source>Importing books... %s</source>
<translation type="obsolete">Importerer bøker... %s</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="157"/>
<source>Importing verses from %s...</source>
<comment>Importing verses from &lt;book name&gt;...</comment>
<translation type="obsolete">Importerer vers fra %s...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="166"/>
<source>Importing verses... done.</source>
<translation type="obsolete">Importerer vers... ferdig.</translation>
</message>
</context>
<context>
<name>BiblePlugin.HTTPBible</name>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="596"/>
<source>Download Error</source>
<translation type="obsolete">Nedlastningsfeil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="603"/>
<source>Parse Error</source>
<translation type="obsolete">Analysefeil</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="596"/>
<source>There was a problem downloading your verse selection. Please check your Internet connection, and if this error continues to occur please consider reporting a bug.</source>
<translation type="obsolete">Det oppstod et problem ved nedlastingen av de valgte versene. Vennligst sjekk internettilkoblingen, dersom denne feilen vedvarer, vær vennlig å rapportere feilen.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="603"/>
<source>There was a problem extracting your verse selection. If this error continues to occur please consider reporting a bug.</source>
<translation type="obsolete">Det oppstod et problem ved uthenting av de valgte versene. Dersom denne feilen vedvarer, vær vennlig å rapportere feilen.</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="438"/>
<source>Bible not fully loaded.</source>
<translation type="obsolete">Bibelen er ikke ferdiglastet.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="88"/>
<source>You cannot combine single and dual Bible verse search results. Do you want to delete your search results and start a new search?</source>
<translation type="obsolete">Du kan ikke kombinere enkle og doble bibelverssøkeresultat. Vil du fjerne søkeresultatene og starte et nytt søk?</translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -888,11 +801,6 @@ demand and thus an internet connection is required.</source>
<source>Please select the Bibles to upgrade</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="389"/>
<source>Version name:</source>
<translation type="obsolete">Versjonsnavn:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="291"/>
<source>Upgrading</source>
@ -903,16 +811,6 @@ demand and thus an internet connection is required.</source>
<source>Please wait while your Bibles are upgraded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="433"/>
<source>You need to specify a version name for your Bible.</source>
<translation type="obsolete">Du spesifisere et versjonsnavn for Bibelen din.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="471"/>
<source>Bible Exists</source>
<translation type="obsolete">Bibelen finnes</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="570"/>
<source>Upgrading Bible %s of %s: &quot;%s&quot;
@ -992,11 +890,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
</context>
<context>
<name>CustomPlugin</name>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="57"/>
<source>&lt;strong&gt;Custom Plugin&lt;/strong&gt;&lt;br /&gt;The custom plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin.</source>
<translation type="obsolete">&lt;strong&gt;Egendefinert lystbildetillegg&lt;/strong&gt;&lt;br /&gt;Tillegget gir mulighet til å sette opp tilpassede lysbilder med tekst som kan vises skjermen samme måte som sanger. Tillegget tilbyr større fleksibilitet enn sangteksttillegget.</translation>
</message>
<message>
<location filename="openlp/plugins/custom/customplugin.py" line="57"/>
<source>&lt;strong&gt;Custom Slide Plugin&lt;/strong&gt;&lt;br /&gt;The custom slide plugin provides the ability to set up custom text slides that can be displayed on the screen the same way songs are. This plugin provides greater freedom over the songs plugin.</source>
@ -1101,11 +994,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
<source>Edit all the slides at once.</source>
<translation>Rediger alle lysbilder en gang.</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/forms/editcustomslidedialog.py" line="57"/>
<source>Split Slide</source>
<translation type="obsolete">Del opp lysbilde</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomslidedialog.py" line="61"/>
<source>Split a slide into two by inserting a slide splitter.</source>
@ -1153,35 +1041,6 @@ Please note that verses from Web Bibles will be downloaded on demand and so an I
</translation>
</message>
</context>
<context>
<name>CustomsPlugin</name>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="98"/>
<source>Custom</source>
<comment>name singular</comment>
<translation type="obsolete">Egendefinert lysbilde</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="99"/>
<source>Customs</source>
<comment>name plural</comment>
<translation type="obsolete">Egendefinerte lysbilder</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/plugins/custom/customplugin.py" line="103"/>
<source>Custom</source>
<comment>container title</comment>
<translation type="obsolete">Egendefinert lysbilde</translation>
</message>
</context>
<context>
<name>GeneralTab</name>
<message>
<location filename="openlp/core/ui/generaltab.py" line="47"/>
<source>General</source>
<translation type="obsolete">Generell</translation>
</message>
</context>
<context>
<name>ImagePlugin</name>
<message>
@ -1444,7 +1303,7 @@ Vil du likevel legge til de andre bildene?</translation>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation>Bildefiler</translation>
</message>
@ -2113,32 +1972,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation type="unfinished"></translation>
</message>
@ -2146,82 +2005,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation type="unfinished"></translation>
</message>
@ -2883,7 +2742,7 @@ Database: %s</source>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation type="unfinished"></translation>
</message>
@ -3205,28 +3064,28 @@ Suffix not supported</source>
<translation type="unfinished">&amp;Bytt objekttema</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<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="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<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="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -3256,7 +3115,7 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
@ -3311,22 +3170,22 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation type="unfinished"></translation>
</message>
@ -3366,17 +3225,17 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
@ -4255,11 +4114,6 @@ The content encoding is not UTF-8.</source>
<source>OpenLP 2.0</source>
<translation type="unfinished">OpenLP 2.0</translation>
</message>
<message>
<location filename="build/lib.linux-i686-2.7/openlp/core/lib/ui.py" line="105"/>
<source>Open Service</source>
<translation type="obsolete">Åpne møteplan</translation>
</message>
<message>
<location filename="openlp/core/lib/ui.py" line="107"/>
<source>Preview</source>
@ -4773,52 +4627,52 @@ The content encoding is not UTF-8.</source>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation type="unfinished">Velg presentasjon(er)</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation type="unfinished">Automatisk</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation type="unfinished">Presenter ved hjelp av:</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation type="unfinished"></translation>
</message>
@ -5845,7 +5699,7 @@ The encoding is responsible for the correct character representation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation type="unfinished"></translation>
</message>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="2.0" language="ru" sourcelanguage="">
<context>
<name>AlertPlugin.AlertForm</name>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="178"/>
<source>You have not entered a parameter to be replaced.
Do you want to continue anyway?</source>
<translation type="obsolete">Вы не указали параметры для замены.
Все равно продолжить?</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="178"/>
<source>No Parameter Found</source>
<translation type="obsolete">Параметр не найден</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="189"/>
<source>No Placeholder Found</source>
<translation type="obsolete">Заполнитель не найден</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/forms/alertform.py" line="189"/>
<source>The alert text does not contain &apos;&lt;&gt;&apos;.
Do you want to continue anyway?</source>
<translation type="obsolete">Текст оповещения не содержит &apos;&lt;&gt;.
Все равно продолжить?</translation>
</message>
</context>
<context>
<name>AlertsPlugin</name>
<message>
@ -39,11 +12,6 @@ Do you want to continue anyway?</source>
<source>Show an alert message.</source>
<translation>Показать текст оповещения.</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="105"/>
<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="obsolete">&lt;strong&gt;Плагин оповещений&lt;/strong&gt;&lt;br /&gt;Плагин оповещений управляет отображением срочных сообщений на экране</translation>
</message>
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="116"/>
<source>Alert</source>
@ -181,61 +149,6 @@ Do you want to continue anyway?</source>
<translation>Таймаут оповещения:</translation>
</message>
</context>
<context>
<name>BibleDB.Wizard</name>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="117"/>
<source>Importing books... %s</source>
<translation type="obsolete">Импорт книг... %s</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="157"/>
<source>Importing verses from %s...</source>
<comment>Importing verses from &lt;book name&gt;...</comment>
<translation type="obsolete">Импорт стихов из %s...</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/csvbible.py" line="166"/>
<source>Importing verses... done.</source>
<translation type="obsolete">Импорт стихов... завершен.</translation>
</message>
</context>
<context>
<name>BiblePlugin.HTTPBible</name>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="596"/>
<source>Download Error</source>
<translation type="obsolete">Ошибка загрузки</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="596"/>
<source>There was a problem downloading your verse selection. Please check your Internet connection, and if this error continues to occur please consider reporting a bug.</source>
<translation type="obsolete">Возникла проблема при загрузке секции стихов. Пожалуйста, проверьте параметры Интернет соединения. В случае если ошибка происходит при нормальном Интернет соединении, сообщите о ней на сайте разработчика в разделе &quot;Ошибки&quot;.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="603"/>
<source>Parse Error</source>
<translation type="obsolete">Обработка ошибки</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/http.py" line="603"/>
<source>There was a problem extracting your verse selection. If this error continues to occur please consider reporting a bug.</source>
<translation type="obsolete">Возникла проблема при распковкие раздела стихов. Если это ошибка будет повторяться, пожалуйста сообщите о ней.</translation>
</message>
</context>
<context>
<name>BiblePlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="438"/>
<source>Bible not fully loaded.</source>
<translation type="obsolete">Библия загружена не полностью.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="88"/>
<source>You cannot combine single and dual Bible verse search results. Do you want to delete your search results and start a new search?</source>
<translation type="obsolete">Вы не можете комбинировать результат поиска для одной и двух Библий. Желаете удалить результаты поиска и начать новый поиск?</translation>
</message>
</context>
<context>
<name>BiblesPlugin</name>
<message>
@ -889,16 +802,6 @@ demand and thus an internet connection is required.</source>
<source>Please select the Bibles to upgrade</source>
<translation>Выберите Библии для обновления</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="389"/>
<source>Version name:</source>
<translation type="obsolete">Название версии:</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="391"/>
<source>This Bible still exists. Please change the name or uncheck it.</source>
<translation type="obsolete">Эта Библия все еще существует. Пожалуйста, измените имя или снимите с нее отметку.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="291"/>
<source>Upgrading</source>
@ -909,21 +812,6 @@ demand and thus an internet connection is required.</source>
<source>Please wait while your Bibles are upgraded.</source>
<translation>Пожалуйста, подождите пока выполнится обновление Библий.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="433"/>
<source>You need to specify a version name for your Bible.</source>
<translation type="obsolete">Вы должны указать название версии Библии.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="471"/>
<source>Bible Exists</source>
<translation type="obsolete">Библия существует</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="471"/>
<source>This Bible already exists. Please upgrade a different Bible, delete the existing one or uncheck.</source>
<translation type="obsolete">Библия уже существует. Пожалуйста, обновите другую Библию, удалите существующую, или отмените выбор текущей.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/forms/bibleupgradeform.py" line="570"/>
<source>Upgrading Bible %s of %s: &quot;%s&quot;
@ -1423,7 +1311,7 @@ Do you want to add the other images anyway?</source>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation>Файлы изображений</translation>
</message>
@ -1712,170 +1600,6 @@ Portions copyright © 2004-2011 %s</translation>
<translation>Возврат к логотипу OpenLP</translation>
</message>
</context>
<context>
<name>OpenLP.DisplayTagDialog</name>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="126"/>
<source>Edit Selection</source>
<translation type="obsolete">Редактор тегов</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="139"/>
<source>Description</source>
<translation type="obsolete">Описание</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="132"/>
<source>Tag</source>
<translation type="obsolete">Тег</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="133"/>
<source>Start tag</source>
<translation type="obsolete">Начальный тег</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="135"/>
<source>End tag</source>
<translation type="obsolete">Конечный тег</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="141"/>
<source>Tag Id</source>
<translation type="obsolete">Дескриптор тега</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="143"/>
<source>Start HTML</source>
<translation type="obsolete">Начальный тег HTML</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="145"/>
<source>End HTML</source>
<translation type="obsolete">Конечный тег HTML</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagdialog.py" line="128"/>
<source>Save</source>
<translation type="obsolete">Сохранить</translation>
</message>
</context>
<context>
<name>OpenLP.DisplayTagTab</name>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="164"/>
<source>Update Error</source>
<translation type="obsolete">Ошибка обновления</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="122"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="obsolete">Тег &quot;n&quot; уже определен.</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="164"/>
<source>Tag %s already defined.</source>
<translation type="obsolete">Тег %s уже определен.</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="129"/>
<source>New Tag</source>
<translation type="obsolete">Новый тег</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="133"/>
<source>&lt;/and here&gt;</source>
<translation type="obsolete">&lt;/и здесь&gt;</translation>
</message>
<message>
<location filename="openlp/core/ui/displaytagform.py" line="131"/>
<source>&lt;HTML here&gt;</source>
<translation type="obsolete">&lt;HTML сюда&gt;</translation>
</message>
</context>
<context>
<name>OpenLP.DisplayTags</name>
<message>
<location filename="openlp/core/lib/displaytags.py" line="56"/>
<source>Red</source>
<translation type="obsolete">Красный</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="60"/>
<source>Black</source>
<translation type="obsolete">Черный</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="64"/>
<source>Blue</source>
<translation type="obsolete">Синий</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="68"/>
<source>Yellow</source>
<translation type="obsolete">Желтый</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="72"/>
<source>Green</source>
<translation type="obsolete">Зеленый</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="76"/>
<source>Pink</source>
<translation type="obsolete">Розовый</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="80"/>
<source>Orange</source>
<translation type="obsolete">Оранжевый</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="84"/>
<source>Purple</source>
<translation type="obsolete">Пурпурный</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="88"/>
<source>White</source>
<translation type="obsolete">Белый</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="92"/>
<source>Superscript</source>
<translation type="obsolete">Надстрочный</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="96"/>
<source>Subscript</source>
<translation type="obsolete">Подстрочный</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="99"/>
<source>Paragraph</source>
<translation type="obsolete">Абзац</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="102"/>
<source>Bold</source>
<translation type="obsolete">Жирный</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="106"/>
<source>Italics</source>
<translation type="obsolete">Курсив</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="109"/>
<source>Underline</source>
<translation type="obsolete">Подчеркнутый</translation>
</message>
<message>
<location filename="openlp/core/lib/displaytags.py" line="113"/>
<source>Break</source>
<translation type="obsolete">Разрыв</translation>
</message>
</context>
<context>
<name>OpenLP.ExceptionDialog</name>
<message>
@ -2122,19 +1846,6 @@ Version: %s
<source>Unable to detect an Internet connection.</source>
<translation>Не удалось найти соединение с интернетом.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="233"/>
<source>No Internet connection was found. The First Time Wizard needs an Internet connection in order to be able to download sample songs, Bibles and themes.
To re-run the First Time Wizard and import this sample data at a later stage, press the cancel button now, check your Internet connection, and restart OpenLP.
To cancel the First Time Wizard completely, press the finish button now.</source>
<translation type="obsolete">Соединение с интернетом не было найдено. Для Мастера первого запуска необходимо наличие интернет-соединения чтобы загрузить образцы песен, Библию и темы.
Чтобы перезапустить Мастер первого запуска и импортировать данные позже, нажмите кнопку Отмена, проверьте интернет-соединение и перезапустите OpenLP.
Чтобы полностью отменить запуск Мастера первого запуска, нажмите кнопку Завершить.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="244"/>
<source>Sample Songs</source>
@ -2306,32 +2017,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation type="unfinished">Ошибка обновления</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="unfinished">Тег &quot;n&quot; уже определен.</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation type="unfinished">Новый тег</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation>&lt;HTML здесь&gt;</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation type="unfinished">&lt;/и здесь&gt;</translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation type="unfinished">Тег %s уже определен.</translation>
</message>
@ -2339,82 +2050,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation type="unfinished">Красный</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation type="unfinished">Черный</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation type="unfinished">Синий</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation type="unfinished">Желтый</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation type="unfinished">Зеленый</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation type="unfinished">Розовый</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation type="unfinished">Оранжевый</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation type="unfinished">Пурпурный</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation type="unfinished">Белый</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation type="unfinished">Надстрочный</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation type="unfinished">Подстрочный</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation type="unfinished">Абзац</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation type="unfinished">Жирный</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation type="unfinished">Курсив</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation type="unfinished">Подчеркнутый</translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation type="unfinished">Разрыв</translation>
</message>
@ -2979,11 +2690,6 @@ Re-running this wizard may make changes to your current OpenLP configuration and
<source>&amp;Recent Files</source>
<translation>&amp;Недавние файлы</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="419"/>
<source>&amp;Configure Formatting Tags...</source>
<translation type="obsolete">&amp;Настроить теги форматирования...</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="1365"/>
<source>Clear List</source>
@ -3085,7 +2791,7 @@ Database: %s</source>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation type="unfinished">Объекты не выбраны</translation>
</message>
@ -3151,11 +2857,6 @@ Suffix not supported</source>
<translation>Неправильный файл %s.
Расширение не поддерживается</translation>
</message>
<message>
<location filename="openlp/core/lib/mediamanageritem.py" line="396"/>
<source>Duplicate files found on import and ignored.</source>
<translation type="obsolete">Во время импорта обнаружены и проигнорированы дубликаты.</translation>
</message>
<message>
<location filename="openlp/core/lib/mediamanageritem.py" line="401"/>
<source>Duplicate files were found on import and were ignored.</source>
@ -3463,7 +3164,7 @@ Suffix not supported</source>
<translation type="unfinished">Открыть файл</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation>Открыть файл служения OpenLP (*.osz)</translation>
</message>
@ -3473,29 +3174,29 @@ Suffix not supported</source>
<translation>Измененное служение</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<source>File is not a valid service.
The content encoding is not UTF-8.</source>
<translation>Файл не является правильным служением.
Формат кодирования не UTF-8.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation>Файл не является правильным служением.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation>Отсутствует обработчик показа</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<source>Your item cannot be displayed as there is no handler to display it</source>
<translation>Объект не может быть показан, поскольку отсутствует обработчик для его показа</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation>Элемент служения не может быть показан, поскольку требуемый плагин отсутствует или отключен</translation>
</message>
@ -3520,22 +3221,22 @@ The content encoding is not UTF-8.</source>
<translation>Текущее служение было изменено. Вы хотите сохранить это служение?</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation>Файл не может быть открыт, поскольку он поврежден.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation>Пустой файл</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation>Файл служения не содержит данных.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation>Поврежденный файл</translation>
</message>
@ -3575,17 +3276,17 @@ The content encoding is not UTF-8.</source>
<translation>Выбрать тему для служения.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation>Этот файл поврежден или не является файлом служения OpenLP 2.0.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation>Тема слайда</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation>Заметки</translation>
</message>
@ -4486,11 +4187,6 @@ The content encoding is not UTF-8.</source>
<source>Import</source>
<translation>Импорт</translation>
</message>
<message>
<location filename="openlp/core/lib/ui.py" line="85"/>
<source>Length %s</source>
<translation type="obsolete">Длина %s</translation>
</message>
<message>
<location filename="openlp/core/lib/ui.py" line="86"/>
<source>Live</source>
@ -4983,52 +4679,52 @@ The content encoding is not UTF-8.</source>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation type="unfinished"></translation>
</message>
@ -5849,11 +5545,6 @@ The encoding is responsible for the correct character representation.</source>
<source>Song Export Wizard</source>
<translation>Мастер экспорта песен</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songexportform.py" line="171"/>
<source>This wizard will help to export your songs to the open and free OpenLyrics worship song format.</source>
<translation type="obsolete">Этот мастер поможет вам экспортировать песни в открытый и свободный формат OpenLyrics.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/forms/songexportform.py" line="175"/>
<source>Select Songs</source>
@ -6068,11 +5759,6 @@ The encoding is responsible for the correct character representation.</source>
<source>Lyrics</source>
<translation>Слова</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="355"/>
<source>Delete Song(s)?</source>
<translation type="obsolete">Удалить песню(и)?</translation>
</message>
<message numerus="yes">
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="383"/>
<source>Are you sure you want to delete the %n selected song(s)?</source>
@ -6083,7 +5769,7 @@ The encoding is responsible for the correct character representation.</source>
</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation>Лицензия CCLI: </translation>
</message>
@ -6387,12 +6073,4 @@ The encoding is responsible for the correct character representation.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ThemeTab</name>
<message>
<location filename="openlp/core/ui/themestab.py" line="40"/>
<source>Themes</source>
<translation type="obsolete">Темы</translation>
</message>
</context>
</TS>

File diff suppressed because it is too large Load Diff

View File

@ -1290,7 +1290,7 @@ Do you want to add the other images anyway?</source>
<context>
<name>OpenLP</name>
<message>
<location filename="openlp/core/utils/__init__.py" line="375"/>
<location filename="openlp/core/utils/__init__.py" line="380"/>
<source>Image Files</source>
<translation type="unfinished"></translation>
</message>
@ -1899,32 +1899,32 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTagForm</name>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Update Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="123"/>
<location filename="openlp/core/ui/formattingtagform.py" line="104"/>
<source>Tag &quot;n&quot; already defined.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="130"/>
<location filename="openlp/core/ui/formattingtagform.py" line="111"/>
<source>New Tag</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="132"/>
<location filename="openlp/core/ui/formattingtagform.py" line="113"/>
<source>&lt;HTML here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="134"/>
<location filename="openlp/core/ui/formattingtagform.py" line="115"/>
<source>&lt;/and here&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/formattingtagform.py" line="165"/>
<location filename="openlp/core/ui/formattingtagform.py" line="147"/>
<source>Tag %s already defined.</source>
<translation type="unfinished"></translation>
</message>
@ -1932,82 +1932,82 @@ To cancel the First Time Wizard completely (and not start OpenLP), press the Can
<context>
<name>OpenLP.FormattingTags</name>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="56"/>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="60"/>
<location filename="openlp/core/lib/formattingtags.py" line="69"/>
<source>Black</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="64"/>
<location filename="openlp/core/lib/formattingtags.py" line="74"/>
<source>Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="68"/>
<location filename="openlp/core/lib/formattingtags.py" line="79"/>
<source>Yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="72"/>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<source>Green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="76"/>
<location filename="openlp/core/lib/formattingtags.py" line="89"/>
<source>Pink</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="80"/>
<location filename="openlp/core/lib/formattingtags.py" line="94"/>
<source>Orange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="84"/>
<location filename="openlp/core/lib/formattingtags.py" line="99"/>
<source>Purple</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="88"/>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<source>White</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="92"/>
<location filename="openlp/core/lib/formattingtags.py" line="109"/>
<source>Superscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="96"/>
<location filename="openlp/core/lib/formattingtags.py" line="114"/>
<source>Subscript</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="100"/>
<location filename="openlp/core/lib/formattingtags.py" line="119"/>
<source>Paragraph</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="104"/>
<location filename="openlp/core/lib/formattingtags.py" line="124"/>
<source>Bold</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="108"/>
<location filename="openlp/core/lib/formattingtags.py" line="128"/>
<source>Italics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="112"/>
<location filename="openlp/core/lib/formattingtags.py" line="132"/>
<source>Underline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/lib/formattingtags.py" line="117"/>
<location filename="openlp/core/lib/formattingtags.py" line="138"/>
<source>Break</source>
<translation type="unfinished"></translation>
</message>
@ -2669,7 +2669,7 @@ Database: %s</source>
<context>
<name>OpenLP.MediaManagerItem</name>
<message>
<location filename="openlp/core/lib/__init__.py" line="203"/>
<location filename="openlp/core/lib/__init__.py" line="205"/>
<source>No Items Selected</source>
<translation type="unfinished"></translation>
</message>
@ -2991,33 +2991,33 @@ Suffix not supported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="578"/>
<location filename="openlp/core/ui/servicemanager.py" line="590"/>
<source>OpenLP Service Files (*.osz)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="606"/>
<location filename="openlp/core/ui/servicemanager.py" line="618"/>
<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="643"/>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<source>File is not a valid service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Missing Display Handler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="1169"/>
<location filename="openlp/core/ui/servicemanager.py" line="1181"/>
<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="1221"/>
<location filename="openlp/core/ui/servicemanager.py" line="1233"/>
<source>Your item cannot be displayed as the plugin required to display it is missing or inactive</source>
<translation type="unfinished"></translation>
</message>
@ -3097,22 +3097,22 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="649"/>
<location filename="openlp/core/ui/servicemanager.py" line="661"/>
<source>File could not be opened because it is corrupt.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>Empty File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="655"/>
<location filename="openlp/core/ui/servicemanager.py" line="667"/>
<source>This service file does not contain any data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>Corrupt File</source>
<translation type="unfinished"></translation>
</message>
@ -3152,17 +3152,17 @@ The content encoding is not UTF-8.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="662"/>
<location filename="openlp/core/ui/servicemanager.py" line="674"/>
<source>This file is either corrupt or it is not an OpenLP 2.0 service file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="972"/>
<location filename="openlp/core/ui/servicemanager.py" line="984"/>
<source>Slide theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="976"/>
<location filename="openlp/core/ui/servicemanager.py" line="988"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
@ -4554,52 +4554,52 @@ The content encoding is not UTF-8.</source>
<context>
<name>PresentationPlugin.MediaItem</name>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="69"/>
<source>Select Presentation(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="71"/>
<source>Automatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="72"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="73"/>
<source>Present using:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="179"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
<source>A presentation with that filename already exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="203"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="204"/>
<source>This type of presentation is not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="88"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="89"/>
<source>Presentations (%s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>Missing Presentation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="289"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="290"/>
<source>The Presentation %s no longer exists.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="280"/>
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="281"/>
<source>The Presentation %s is incomplete, please reload.</source>
<translation type="unfinished"></translation>
</message>
@ -5626,7 +5626,7 @@ The encoding is responsible for the correct character representation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="499"/>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="502"/>
<source>CCLI License: </source>
<translation type="unfinished"></translation>
</message>