This commit is contained in:
Andreas Preikschat 2012-09-19 20:22:17 +02:00
commit 78b88fada5
22 changed files with 984 additions and 786 deletions

View File

@ -1 +1 @@
1.9.11
1.9.12

View File

@ -365,7 +365,7 @@ class Renderer(object):
The theme information
"""
if not theme_data.font_main_override:
return QtCore.QRect(10, 0, self.width, self.footer_start)
return QtCore.QRect(10, 0, self.width - 20, self.footer_start)
else:
return QtCore.QRect(theme_data.font_main_x, theme_data.font_main_y,
theme_data.font_main_width - 1, theme_data.font_main_height - 1)

View File

@ -38,7 +38,7 @@ import sys
from openlp.core.lib import SettingsTab, translate, build_icon, Receiver
from openlp.core.lib.settings import Settings
from openlp.core.lib.ui import UiStrings
from openlp.core.utils import get_images_filter, AppLocation
from openlp.core.utils import get_images_filter, AppLocation, format_time
from openlp.core.lib import SlideLimits
log = logging.getLogger(__name__)
@ -527,7 +527,7 @@ class AdvancedTab(SettingsTab):
'Click "No" to stop loading OpenLP. allowing you to fix '
'the the problem.\n\n'
'Click "Yes" to reset the data directory to the default '
'location.' % self.currentDataPath),
'location.').replace('%s', self.currentDataPath),
QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
@ -612,18 +612,18 @@ class AdvancedTab(SettingsTab):
def generateServiceNameExample(self):
preset_is_valid = True
if self.serviceNameDay.currentIndex() == 7:
time = datetime.now()
local_time = datetime.now()
else:
now = datetime.now()
day_delta = self.serviceNameDay.currentIndex() - now.weekday()
if day_delta < 0:
day_delta += 7
time = now + timedelta(days=day_delta)
time = time.replace(hour = self.serviceNameTime.time().hour(),
local_time = time.replace(hour = self.serviceNameTime.time().hour(),
minute = self.serviceNameTime.time().minute())
try:
service_name_example = time.strftime(unicode(
self.serviceNameEdit.text()))
service_name_example = format_time(unicode(
self.serviceNameEdit.text()), local_time)
except ValueError:
preset_is_valid = False
service_name_example = translate('OpenLP.AdvancedTab',
@ -686,7 +686,7 @@ class AdvancedTab(SettingsTab):
'Are you sure you want to change the location of the OpenLP '
'data directory to:\n\n%s\n\n'
'The data directory will be changed when OpenLP is closed.'
% new_data_path),
).replace('%s', new_data_path),
QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
@ -750,7 +750,7 @@ class AdvancedTab(SettingsTab):
'The location you have selected \n\n%s\n\n'
'appears to contain OpenLP data files. Do you wish to replace '
'these files with the current data files?'
% os.path.abspath(data_path,)),
).replace('%s', os.path.abspath(data_path,)),
QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),

View File

@ -138,11 +138,16 @@ class MainDisplay(Display):
if Settings().value(u'advanced/x11 bypass wm',
QtCore.QVariant(True)).toBool():
windowFlags |= QtCore.Qt.X11BypassWindowManagerHint
# FIXME: QtCore.Qt.SplashScreen is workaround to make display screen
# stay always on top on Mac OS X. For details see bug 906926.
# It needs more investigation to fix it properly.
# TODO: The following combination of windowFlags works correctly
# on Mac OS X. For next OpenLP version we should test it on other
# platforms. For OpenLP 2.0 keep it only for OS X to not cause any
# regressions on other platforms.
if sys.platform == 'darwin':
windowFlags |= QtCore.Qt.SplashScreen
windowFlags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Window
# For primary screen ensure it stays above the OS X dock
# and menu bar
if self.screens.current[u'primary']:
self.setWindowState(QtCore.Qt.WindowFullScreen)
self.setWindowFlags(windowFlags)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setTransparency(False)

View File

@ -998,7 +998,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
'settings file.\n\n'
'Section [%s] is not valid \n\n'
'Processing has terminated and no changed have been made.'
% section),
).replace('%s', section),
QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Ok))
return
@ -1517,7 +1517,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
translate('OpenLP.MainWindow',
'Copying OpenLP data to new data directory location - %s '
'- Please wait for copy to finish'
% self.newDataPath))
).replace('%s', self.newDataPath))
dir_util.copy_tree(old_data_path, self.newDataPath)
log.info(u'Copy sucessful')
except (IOError, os.error, DistutilsFileError), why:
@ -1527,7 +1527,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
translate('OpenLP.MainWindow', 'New Data Directory Error'),
translate('OpenLP.MainWindow',
'OpenLP Data directory copy failed\n\n%s'
% unicode(why)),
).replace('%s', unicode(why)),
QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Ok))
return False

View File

@ -287,7 +287,7 @@ class MediaController(object):
"""
player.resize(display)
def video(self, controller, file, muted, isBackground):
def video(self, controller, file, muted, isBackground, hidden=False):
"""
Loads and starts a video to run with the option of sound
"""
@ -333,11 +333,19 @@ class MediaController(object):
if controller.isLive and not controller.media_info.is_background:
display.frame.evaluateJavaScript(u'show_video( \
"setBackBoard", null, null, null,"visible");')
# now start playing
if controller.isLive and \
(Settings().value(u'general/auto unblank',
QtCore.QVariant(False)).toBool() or \
controller.media_info.is_background) or not controller.isLive:
# now start playing - Preview is autoplay!
autoplay = False
# Preview requested
if not controller.isLive:
autoplay = True
# Visible or background requested
elif not hidden or controller.media_info.is_background:
autoplay = True
# Unblank on load set
elif Settings().value(u'general/auto unblank',
QtCore.QVariant(False)).toBool():
autoplay = True
if autoplay:
if not self.video_play([controller]):
critical_error_message_box(
translate('MediaPlugin.MediaItem', 'Unsupported File'),

View File

@ -63,37 +63,32 @@ if VLC_AVAILABLE:
VLC_AVAILABLE = False
log.debug(u'VLC could not be loaded: %s' % version)
AUDIO_EXT = [
u'*.mp3'
, u'*.wav'
, u'*.wma'
, u'*.ogg'
]
AUDIO_EXT = [u'*.mp3', u'*.wav', u'*.wma', u'*.ogg']
VIDEO_EXT = [
u'*.3gp'
, u'*.asf', u'*.wmv'
, u'*.au'
, u'*.avi'
, u'*.flv'
, u'*.mov'
, u'*.mp4'
, u'*.ogm'
, u'*.mkv', u'*.mka'
, u'*.ts', u'*.mpg'
, u'*.mpg', u'*.mp2'
, u'*.nsc'
, u'*.nsv'
, u'*.nut'
, u'*.ra', u'*.ram', u'*.rm', u'*.rv' ,u'*.rmbv'
, u'*.a52', u'*.dts', u'*.aac', u'*.flac' ,u'*.dv', u'*.vid'
, u'*.tta', u'*.tac'
, u'*.ty'
, u'*.dts'
, u'*.xa'
, u'*.iso'
, u'*.vob'
]
u'*.3gp',
u'*.asf', u'*.wmv',
u'*.au',
u'*.avi',
u'*.flv',
u'*.mov',
u'*.mp4',
u'*.ogm', u'*.ogv',
u'*.mkv', u'*.mka',
u'*.ts', u'*.mpg',
u'*.mpg', u'*.mp2',
u'*.nsc',
u'*.nsv',
u'*.nut',
u'*.ra', u'*.ram', u'*.rm', u'*.rv' ,u'*.rmbv',
u'*.a52', u'*.dts', u'*.aac', u'*.flac' ,u'*.dv', u'*.vid',
u'*.tta', u'*.tac',
u'*.ty',
u'*.dts',
u'*.xa',
u'*.iso',
u'*.vob'
]
class VlcPlayer(MediaPlayer):

View File

@ -47,7 +47,8 @@ from openlp.core.lib.ui import UiStrings, critical_error_message_box, \
create_widget_action, find_and_set_in_combo_box
from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm
from openlp.core.ui.printserviceform import PrintServiceForm
from openlp.core.utils import AppLocation, delete_file, split_filename
from openlp.core.utils import AppLocation, delete_file, split_filename, \
format_time
from openlp.core.utils.actions import ActionList, CategoryOrder
class ServiceManagerList(QtGui.QTreeWidget):
@ -519,7 +520,7 @@ class ServiceManager(QtGui.QWidget):
'Service File Missing'))
message = unicode(translate('OpenLP.ServiceManager',
'File missing from service\n\n %s \n\n'
'Continue saving?' % path_from ))
'Continue saving?')) % path_from
answer = QtGui.QMessageBox.critical(self, title,
message,
QtGui.QMessageBox.StandardButtons(
@ -602,7 +603,7 @@ class ServiceManager(QtGui.QWidget):
service_day = Settings().value(
u'advanced/default service day', 7).toInt()[0]
if service_day == 7:
time = datetime.now()
local_time = datetime.now()
else:
service_hour = Settings().value(
u'advanced/default service hour', 11).toInt()[0]
@ -613,7 +614,7 @@ class ServiceManager(QtGui.QWidget):
if day_delta < 0:
day_delta += 7
time = now + timedelta(days=day_delta)
time = time.replace(hour=service_hour, minute=service_minute)
local_time = time.replace(hour=service_hour, minute=service_minute)
default_pattern = unicode(Settings().value(
u'advanced/default service name',
translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M',
@ -621,7 +622,7 @@ class ServiceManager(QtGui.QWidget):
'/\\?*|<>\[\]":+\nSee http://docs.python.org/library/'
'datetime.html#strftime-strptime-behavior for more '
'information.')).toString())
default_filename = time.strftime(default_pattern)
default_filename = format_time(default_pattern, local_time)
else:
default_filename = u''
directory = unicode(SettingsManager.get_last_dir(

View File

@ -1347,7 +1347,7 @@ class SlideController(Controller):
"""
log.debug(u'SlideController onMediaStart')
file = os.path.join(item.get_frame_path(), item.get_frame_title())
self.mediaController.video(self, file, False, False)
self.mediaController.video(self, file, False, False, self.hideMode())
if not self.isLive or self.mediaController.withLivePreview:
self.previewDisplay.show()
self.slidePreview.hide()

View File

@ -518,7 +518,7 @@ class ThemeManager(QtGui.QWidget):
translate('OpenLP.ThemeManager', 'Theme Already Exists'),
translate('OpenLP.ThemeManager',
'Theme %s already exists. Do you want to replace it?'
% theme_name),
).replace('%s', theme_name),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
QtGui.QMessageBox.No)

View File

@ -469,10 +469,29 @@ def get_uno_instance(resolver):
return resolver.resolve(u'uno:socket,host=localhost,port=2002;' \
+ u'urp;StarOffice.ComponentContext')
def format_time(text, local_time):
"""
Workaround for Python built-in time formatting fuction time.strftime().
time.strftime() accepts only ascii characters. This function accepts
unicode string and passes individual % placeholders to time.strftime().
This ensures only ascii characters are passed to time.strftime().
``text``
The text to be processed.
``local_time``
The time to be used to add to the string. This is a time object
"""
def match_formatting(match):
return local_time.strftime(match.group())
return re.sub('\%[a-zA-Z]', match_formatting, text)
from languagemanager import LanguageManager
from actions import ActionList
__all__ = [u'AppLocation', u'get_application_version', u'check_latest_version',
u'add_actions', u'get_filesystem_encoding', u'LanguageManager',
u'ActionList', u'get_web_page', u'get_uno_command', u'get_uno_instance',
u'delete_file', u'clean_filename']
u'delete_file', u'clean_filename', u'format_time']

View File

@ -124,6 +124,8 @@ class BGExtract(object):
self._remove_elements(tag, 'div', 'footnotes')
self._remove_elements(tag, 'div', 'crossrefs')
self._remove_elements(tag, 'h3')
self._remove_elements(tag, 'h4')
self._remove_elements(tag, 'h5')
def _extract_verses(self, tags):
"""
@ -155,12 +157,59 @@ class BGExtract(object):
text = text.replace(old, new)
text = u' '.join(text.split())
if verse and text:
verses.append((int(verse.strip()), text))
verse = verse.strip()
try:
verse = int(verse)
except (TypeError, ValueError):
verse_parts = verse.split(u'-')
if len(verse_parts) > 1:
verse = int(verse_parts[0])
verses.append((verse, text))
verse_list = {}
for verse, text in verses[::-1]:
verse_list[verse] = text
return verse_list
def _extract_verses_old(self, div):
"""
Use the old style of parsing for those Bibles on BG who mysteriously
have not been migrated to the new (still broken) HTML.
``div``
The parent div.
"""
verse_list = {}
# Cater for inconsistent mark up in the first verse of a chapter.
first_verse = div.find(u'versenum')
if first_verse and first_verse.contents:
verse_list[1] = unicode(first_verse.contents[0])
for verse in div(u'sup', u'versenum'):
raw_verse_num = verse.next
clean_verse_num = 0
# Not all verses exist in all translations and may or may not be
# represented by a verse number. If they are not fine, if they are
# it will probably be in a format that breaks int(). We will then
# have no idea what garbage may be sucked in to the verse text so
# if we do not get a clean int() then ignore the verse completely.
try:
clean_verse_num = int(str(raw_verse_num))
except ValueError:
log.warn(u'Illegal verse number: %s', unicode(raw_verse_num))
if clean_verse_num:
verse_text = raw_verse_num.next
part = raw_verse_num.next.next
while not (isinstance(part, Tag) and
part.get(u'class') == u'versenum'):
# While we are still in the same verse grab all the text.
if isinstance(part, NavigableString):
verse_text += part
if isinstance(part.next, Tag) and part.next.name == u'div':
# Run out of verses so stop.
break
part = part.next
verse_list[clean_verse_num] = unicode(verse_text)
return verse_list
def get_bible_chapter(self, version, book_name, chapter):
"""
Access and decode Bibles via the BibleGateway website.
@ -189,7 +238,13 @@ class BGExtract(object):
Receiver.send_message(u'openlp_process_events')
div = soup.find('div', 'result-text-style-normal')
self._clean_soup(div)
verse_list = self._extract_verses(div.findAll('span', 'text'))
span_list = div.findAll('span', 'text')
log.debug('Span list: %s', span_list)
if not span_list:
# If we don't get any spans then we must have the old HTML format
verse_list = self._extract_verses_old(div)
else:
verse_list = self._extract_verses(span_list)
if not verse_list:
log.debug(u'No content found in the BibleGateway response.')
send_error_message(u'parse')

View File

@ -103,7 +103,7 @@ class PowerSongImport(SongImport):
self.logError(unicode(translate('SongsPlugin.PowerSongImport',
'No songs to import.')),
unicode(translate('SongsPlugin.PowerSongImport',
'No %s files found.' % PS_string)))
'No %s files found.')) % PS_string)
return
self.importWizard.progressBar.setMaximum(len(self.importSource))
for file in self.importSource:
@ -122,8 +122,8 @@ class PowerSongImport(SongImport):
parse_error = True
self.logError(os.path.basename(file), unicode(
translate('SongsPlugin.PowerSongImport',
'Invalid %s file. Unexpected byte value.'
% PS_string)))
'Invalid %s file. Unexpected byte value.'))
% PS_string)
break
else:
if label == u'TITLE':
@ -141,14 +141,14 @@ class PowerSongImport(SongImport):
if not self.title:
self.logError(os.path.basename(file), unicode(
translate('SongsPlugin.PowerSongImport',
'Invalid %s file. Missing "TITLE" header.' % PS_string)))
'Invalid %s file. Missing "TITLE" header.')) % PS_string)
continue
# Check that file had COPYRIGHTLINE label
if not found_copyright:
self.logError(self.title, unicode(
translate('SongsPlugin.PowerSongImport',
'Invalid %s file. Missing "COPYRIGHTLINE" '
'header.' % PS_string)))
'header.')) % PS_string)
continue
# Check that file had at least one verse
if not self.verses:

View File

@ -91,7 +91,7 @@ class ZionWorxImport(SongImport):
self.logError(unicode(translate('SongsPlugin.ZionWorxImport',
'Error reading CSV file.')),
unicode(translate('SongsPlugin.ZionWorxImport',
'Line %d: %s' % (songs_reader.line_num, e))))
'Line %d: %s')) % (songs_reader.line_num, e))
return
num_records = len(records)
log.info(u'%s records found in CSV file' % num_records)
@ -111,7 +111,7 @@ class ZionWorxImport(SongImport):
self.logError(unicode(translate(
'SongsPlugin.ZionWorxImport', 'Record %d' % index)),
unicode(translate('SongsPlugin.ZionWorxImport',
'Decoding error: %s' % e)))
'Decoding error: %s')) % e)
continue
except TypeError, e:
self.logError(unicode(translate(
@ -130,7 +130,7 @@ class ZionWorxImport(SongImport):
title = self.title
if not self.finish():
self.logError(unicode(translate(
'SongsPlugin.ZionWorxImport', 'Record %d' % index))
'SongsPlugin.ZionWorxImport', 'Record %d')) % index
+ (u': "' + title + u'"' if title else u''))
def _decode(self, str):

View File

@ -1368,7 +1368,9 @@ vraag afgelaai word en dus is &apos;n internet konneksie nodig.</translation>
<source>Are you sure you want to completely delete &quot;%s&quot; Bible from OpenLP?
You will need to re-import this Bible to use it again.</source>
<translation type="unfinished"/>
<translation>Wis Bybel &quot;%s&quot; geheel en al vanaf OpenLP?
Hierdie Bybel sal weer ingevoer moet word voordat dit gebruik geneem kan word.</translation>
</message>
</context>
<context>
@ -1376,7 +1378,7 @@ You will need to re-import this Bible to use it again.</source>
<message>
<location filename="openlp/plugins/bibles/lib/opensong.py" line="118"/>
<source>Incorrect Bible file type supplied. OpenSong Bibles may be compressed. You must decompress them before import.</source>
<translation type="unfinished"/>
<translation>Ongeldige Bybel lêer</translation>
</message>
</context>
<context>
@ -1700,7 +1702,7 @@ word en dus is &apos;n Internet verbinding nodig.</translation>
<message>
<location filename="openlp/plugins/custom/forms/editcustomslidedialog.py" line="52"/>
<source>Edit Slide</source>
<translation type="unfinished"/>
<translation>Redigeer Skyfie</translation>
</message>
</context>
<context>
@ -5042,12 +5044,12 @@ Die inhoud enkodering is nie UTF-8 nie.</translation>
<message>
<location filename="openlp/core/ui/themewizard.py" line="554"/>
<source>Preview and Save</source>
<translation type="unfinished"/>
<translation>Skou en Stoor</translation>
</message>
<message>
<location filename="openlp/core/ui/themewizard.py" line="556"/>
<source>Preview the theme and save it.</source>
<translation type="unfinished"/>
<translation>Skou die tema en stoor dit.</translation>
</message>
</context>
<context>
@ -6901,37 +6903,37 @@ Die enkodering is verantwoordelik vir die korrekte karrakter voorstelling.</tran
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="321"/>
<source>SundayPlus Song Files</source>
<translation type="unfinished"/>
<translation>SundayPlus Lied Leêrs</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="172"/>
<source>This importer has been disabled.</source>
<translation type="unfinished"/>
<translation>Hierdie invoerder is onaktief gestel.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="260"/>
<source>MediaShout Database</source>
<translation type="unfinished"/>
<translation>MediaShout Databasis</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="262"/>
<source>The MediaShout importer is only supported on Windows. It has been disabled due to a missing Python module. If you want to use this importer, you will need to install the &quot;pyodbc&quot; module.</source>
<translation type="unfinished"/>
<translation>Die MediaShout invoerder word slegs ondersteun op Windows. Dit is vanweë &apos;n vermiste Python module, gedeaktiveer. As jy hierdie invoerder wil gebruik, sal jy die &quot;pyodbc&quot; module moet installeer.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="293"/>
<source>SongPro Text Files</source>
<translation type="unfinished"/>
<translation>SongPro Teks Leêrs</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="295"/>
<source>SongPro (Export File)</source>
<translation type="unfinished"/>
<translation>SongPro (Voer Leêr uit)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="297"/>
<source>In SongPro, export your songs using the File -&gt; Export menu</source>
<translation type="unfinished"/>
<translation>In SongPro, voer liedere uit deur middel van die Leêr -&gt; Uitvoer spyskaart</translation>
</message>
</context>
<context>
@ -7016,7 +7018,7 @@ Die enkodering is verantwoordelik vir die korrekte karrakter voorstelling.</tran
<message>
<location filename="openlp/plugins/songs/lib/mediashoutimport.py" line="61"/>
<source>Unable to open the MediaShout database.</source>
<translation type="unfinished"/>
<translation>Die MediaShout databasis kan nie oopgemaak word nie.</translation>
</message>
</context>
<context>

File diff suppressed because it is too large Load Diff

View File

@ -1370,7 +1370,8 @@ werden. Daher ist eine Internetverbindung erforderlich.</translation>
<source>Are you sure you want to completely delete &quot;%s&quot; Bible from OpenLP?
You will need to re-import this Bible to use it again.</source>
<translation type="unfinished"/>
<translation>Sind Sie sicher, das Sie die &quot;%s&quot; Bibel komplett löschen wollen?
Um sie wieder zu benutzen, muss sie erneut importier werden.</translation>
</message>
</context>
<context>
@ -1378,7 +1379,7 @@ You will need to re-import this Bible to use it again.</source>
<message>
<location filename="openlp/plugins/bibles/lib/opensong.py" line="118"/>
<source>Incorrect Bible file type supplied. OpenSong Bibles may be compressed. You must decompress them before import.</source>
<translation type="unfinished"/>
<translation>Falscher Dateityp. OpenSong Bibeln sind möglicherweise komprimiert und müssen entpackt werden, bevor sie importiert werden.</translation>
</message>
</context>
<context>
@ -1701,7 +1702,7 @@ Bitte beachten Sie, dass Bibeltexte von Onlinebibeln bei Bedarf heruntergeladen
<message>
<location filename="openlp/plugins/custom/forms/editcustomslidedialog.py" line="52"/>
<source>Edit Slide</source>
<translation type="unfinished"/>
<translation>Folie bearbeiten</translation>
</message>
</context>
<context>
@ -5050,12 +5051,12 @@ Der Inhalt ist nicht in UTF-8 kodiert.</translation>
<message>
<location filename="openlp/core/ui/themewizard.py" line="554"/>
<source>Preview and Save</source>
<translation type="unfinished"/>
<translation>Vorschau und Speichern</translation>
</message>
<message>
<location filename="openlp/core/ui/themewizard.py" line="556"/>
<source>Preview the theme and save it.</source>
<translation type="unfinished"/>
<translation>Vorschau des Designs zeigen und speichern.</translation>
</message>
</context>
<context>
@ -6909,37 +6910,37 @@ Easy Worship]</translation>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="321"/>
<source>SundayPlus Song Files</source>
<translation type="unfinished"/>
<translation>SundayPlus Lied Dateien</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="172"/>
<source>This importer has been disabled.</source>
<translation type="unfinished"/>
<translation>Dieser Import Typ wurde deaktiviert.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="260"/>
<source>MediaShout Database</source>
<translation type="unfinished"/>
<translation>Media Shout Datenbestand</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="262"/>
<source>The MediaShout importer is only supported on Windows. It has been disabled due to a missing Python module. If you want to use this importer, you will need to install the &quot;pyodbc&quot; module.</source>
<translation type="unfinished"/>
<translation>Der Import von MediaShout Datensätzen wird nur unter Windows unterstützt. Er wurde aufgrund fehlender Python Module deaktiviert. Wenn Sie diese Dateien importieren wollen, müssen sie das &quot;pyodbc&quot; Modul installieren.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="293"/>
<source>SongPro Text Files</source>
<translation type="unfinished"/>
<translation>SongPro Text Dateien</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="295"/>
<source>SongPro (Export File)</source>
<translation type="unfinished"/>
<translation>SongPro (Export Datei)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="297"/>
<source>In SongPro, export your songs using the File -&gt; Export menu</source>
<translation type="unfinished"/>
<translation>Um in SongPro Dateien zu exportieren, nutzen Sie dort das Menü &quot;Datei -&gt; Export&quot;</translation>
</message>
</context>
<context>
@ -7024,7 +7025,7 @@ Easy Worship]</translation>
<message>
<location filename="openlp/plugins/songs/lib/mediashoutimport.py" line="61"/>
<source>Unable to open the MediaShout database.</source>
<translation type="unfinished"/>
<translation>Der MediaShout Datensatz kann nicht geöffnet werden.</translation>
</message>
</context>
<context>

View File

@ -1377,7 +1377,7 @@ Deberá reimportar esta Biblia para utilizarla de nuevo.</translation>
<message>
<location filename="openlp/plugins/bibles/lib/opensong.py" line="118"/>
<source>Incorrect Bible file type supplied. OpenSong Bibles may be compressed. You must decompress them before import.</source>
<translation type="unfinished"/>
<translation>Tipo de archivo incorrecto. Las Biblias OpenSong pueden estar comprimidas y es necesario extraerlas antes de la importación.</translation>
</message>
</context>
<context>
@ -6913,27 +6913,27 @@ La codificación se encarga de la correcta representación de caracteres.</trans
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="260"/>
<source>MediaShout Database</source>
<translation type="unfinished"/>
<translation>Base de datos MediaShout</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="262"/>
<source>The MediaShout importer is only supported on Windows. It has been disabled due to a missing Python module. If you want to use this importer, you will need to install the &quot;pyodbc&quot; module.</source>
<translation type="unfinished"/>
<translation>El importador MediaShout se puede usar en windows únicamente. Se ha deshabilitado porque falta un módulo Python. Debe instalar el módulo &quot;pyodbc&quot; para usar este importador.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="293"/>
<source>SongPro Text Files</source>
<translation type="unfinished"/>
<translation>Archivos de texto SongPro</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="295"/>
<source>SongPro (Export File)</source>
<translation type="unfinished"/>
<translation>SongPro (Archivo Exportado)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="297"/>
<source>In SongPro, export your songs using the File -&gt; Export menu</source>
<translation type="unfinished"/>
<translation>En SongPro, puede exportar canciones en el menú Archivo -&gt; Exportar</translation>
</message>
</context>
<context>
@ -7018,7 +7018,7 @@ La codificación se encarga de la correcta representación de caracteres.</trans
<message>
<location filename="openlp/plugins/songs/lib/mediashoutimport.py" line="61"/>
<source>Unable to open the MediaShout database.</source>
<translation type="unfinished"/>
<translation>No se logró abrir la base de datos MediaShout</translation>
</message>
</context>
<context>

View File

@ -32,7 +32,7 @@
<message>
<location filename="openlp/plugins/alerts/alertsplugin.py" line="173"/>
<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>&lt;strong&gt;Hälytykset liitännäinen&lt;/strong&gt;&lt;br /&gt;Hälytykset liitännäinen huolehtii lastenhoidon viestien näyttämisestä esityksen aikana.</translation>
<translation>&lt;strong&gt;Hälytykset lisäosa&lt;/strong&gt;&lt;br /&gt;Hälytykset lisäosa huolehtii lastenhoidon viestien näyttämisestä esityksen aikana.</translation>
</message>
</context>
<context>
@ -112,7 +112,7 @@ Tahdotko jatkaa siitä huolimatta?</translation>
<message>
<location filename="openlp/plugins/alerts/lib/alertsmanager.py" line="73"/>
<source>Alert message created and displayed.</source>
<translation>Hälytysviesti on luota ja näytetty.</translation>
<translation>Hälytysviesti on luotu ja näytetty.</translation>
</message>
</context>
<context>
@ -216,12 +216,12 @@ Tahdotko jatkaa siitä huolimatta?</translation>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="199"/>
<source>Add the selected Bible to the service.</source>
<translation>Lisää valittu Raamatun teksti tilaisuuden ajolistalle.</translation>
<translation>Lisää valittu Raamatun teksti ajolistalle.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="148"/>
<source>&lt;strong&gt;Bible Plugin&lt;/strong&gt;&lt;br /&gt;The Bible plugin provides the ability to display Bible verses from different sources during the service.</source>
<translation>&lt;strong&gt;Raamattu-liitännäinen&lt;/strong&gt;&lt;br /&gt;Raamattu-liitännäisellä voi näyttää Raamatun jakeita suoraan Raamatusta tilaisuuden aikana.</translation>
<translation>&lt;strong&gt;Raamattu-lisäosa&lt;/strong&gt;&lt;br /&gt;Raamattu-lisäosalla voi näyttää Raamatun jakeita suoraan Raamatusta tilaisuuden aikana.</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="125"/>
@ -1590,12 +1590,12 @@ Ole hyvä ja huomaa, että jakeet nettiraamatuista ladataan käytettäessä, jot
<message>
<location filename="openlp/plugins/custom/customplugin.py" line="120"/>
<source>Send the selected custom slide live.</source>
<translation type="unfinished"/>
<translation>Lähetä valittu mukautettu dia esitykseen.</translation>
</message>
<message>
<location filename="openlp/plugins/custom/customplugin.py" line="122"/>
<source>Add the selected custom slide to the service.</source>
<translation type="unfinished"/>
<translation>Lisää valittu mukautettu dia ajolistalle.</translation>
</message>
</context>
<context>
@ -1603,12 +1603,12 @@ Ole hyvä ja huomaa, että jakeet nettiraamatuista ladataan käytettäessä, jot
<message>
<location filename="openlp/plugins/custom/lib/customtab.py" line="59"/>
<source>Custom Display</source>
<translation type="unfinished"/>
<translation>Mukautettu näyttö</translation>
</message>
<message>
<location filename="openlp/plugins/custom/lib/customtab.py" line="61"/>
<source>Display footer</source>
<translation type="unfinished"/>
<translation>Näytä lopputunniste</translation>
</message>
</context>
<context>
@ -1616,7 +1616,7 @@ Ole hyvä ja huomaa, että jakeet nettiraamatuista ladataan käytettäessä, jot
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="107"/>
<source>Edit Custom Slides</source>
<translation type="unfinished"/>
<translation>Muokkaa mukautettuja dioja</translation>
</message>
<message>
<location filename="openlp/plugins/custom/forms/editcustomdialog.py" line="109"/>
@ -1695,60 +1695,60 @@ Ole hyvä ja huomaa, että jakeet nettiraamatuista ladataan käytettäessä, jot
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="53"/>
<source>&lt;strong&gt;Image Plugin&lt;/strong&gt;&lt;br /&gt;The image plugin provides displaying of images.&lt;br /&gt;One of the distinguishing features of this plugin is the ability to group a number of images together in the service manager, making the displaying of multiple images easier. This plugin can also make use of OpenLP&apos;s &quot;timed looping&quot; feature to create a slide show that runs automatically. In addition to this, images from the plugin can be used to override the current theme&apos;s background, which renders text-based items like songs with the selected image as a background instead of the background provided by the theme.</source>
<translation type="unfinished"/>
<translation>&lt;strong&gt;Kuvankatselu lisäosa&lt;/strong&gt;&lt;br /&gt;Kuvankatselu toteuttaa helpon kuvien näyttämisen.&lt;br /&gt;Lisäosa mahdollistaa kokonaisen kuvajoukon näyttämisen yhdessä ajolistalla, mikä tekee useiden kuvien näyttämisestä hallitumpaa. Kuvia voi myös ajaa slideshowna OpenLP:n ajastusta hyödyntäen. Lisäksi kuvia voi käyttää jumalanpalvelukselle valitun taustakuvan sijaan, mikä mahdollistaa kuvien käyttämisen taustakuvana teksteille teeman sijaan.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="72"/>
<source>Image</source>
<comment>name singular</comment>
<translation type="unfinished"/>
<translation>Kuva</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="73"/>
<source>Images</source>
<comment>name plural</comment>
<translation type="unfinished"/>
<translation>Kuvat</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="77"/>
<source>Images</source>
<comment>container title</comment>
<translation type="unfinished"/>
<translation>Kuvat</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="81"/>
<source>Load a new image.</source>
<translation type="unfinished"/>
<translation>Lataa uusi kuva.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="83"/>
<source>Add a new image.</source>
<translation type="unfinished"/>
<translation>Lisää uusi kuva.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="84"/>
<source>Edit the selected image.</source>
<translation type="unfinished"/>
<translation>Muokkaa valittua kuvaa.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="85"/>
<source>Delete the selected image.</source>
<translation type="unfinished"/>
<translation>Poista valittu kuva.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="86"/>
<source>Preview the selected image.</source>
<translation type="unfinished"/>
<translation>Esikatsele valittua kuvaa.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="87"/>
<source>Send the selected image live.</source>
<translation type="unfinished"/>
<translation>Lähetä valittu kuva esitykseen.</translation>
</message>
<message>
<location filename="openlp/plugins/images/imageplugin.py" line="88"/>
<source>Add the selected image to the service.</source>
<translation type="unfinished"/>
<translation>Lisää valittu kuva ajolistalle.</translation>
</message>
</context>
<context>
@ -1756,7 +1756,7 @@ Ole hyvä ja huomaa, että jakeet nettiraamatuista ladataan käytettäessä, jot
<message>
<location filename="openlp/core/ui/exceptionform.py" line="217"/>
<source>Select Attachment</source>
<translation type="unfinished"/>
<translation>Valitse liite</translation>
</message>
</context>
<context>
@ -1764,43 +1764,44 @@ Ole hyvä ja huomaa, että jakeet nettiraamatuista ladataan käytettäessä, jot
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="61"/>
<source>Select Image(s)</source>
<translation type="unfinished"/>
<translation>Valitse kuva(t)</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="106"/>
<source>You must select an image to delete.</source>
<translation type="unfinished"/>
<translation>Sinun pitää valita kuva, jonka poistat.</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="222"/>
<source>You must select an image to replace the background with.</source>
<translation type="unfinished"/>
<translation>Sinun pitää valita kuva, jolla korvaa taustan.</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="190"/>
<source>Missing Image(s)</source>
<translation type="unfinished"/>
<translation>Puuttuvat kuva(t)</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="183"/>
<source>The following image(s) no longer exist: %s</source>
<translation type="unfinished"/>
<translation>Seuraavaa kuvaa (kuvia) ei enää ole olemassa: %s</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="190"/>
<source>The following image(s) no longer exist: %s
Do you want to add the other images anyway?</source>
<translation type="unfinished"/>
<translation>Seuraavaa kuvaa (kuvia) ei ole enää olemassa: %s
Haluatko lisätä toisia kuvia siitä huolimatta?</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="240"/>
<source>There was a problem replacing your background, the image file &quot;%s&quot; no longer exists.</source>
<translation type="unfinished"/>
<translation>Taustakuvan korvaaminen ei onnistunut. Kuvatiedosto &quot;%s&quot; ei ole enää olemassa.</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/mediaitem.py" line="236"/>
<source>There was no display item to amend.</source>
<translation type="unfinished"/>
<translation>Muutettavaa näyttöotsaketta ei ole.</translation>
</message>
</context>
<context>
@ -1808,12 +1809,12 @@ Do you want to add the other images anyway?</source>
<message>
<location filename="openlp/plugins/images/lib/imagetab.py" line="70"/>
<source>Background Color</source>
<translation type="unfinished"/>
<translation>Taustaväri</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/imagetab.py" line="72"/>
<source>Default Color:</source>
<translation type="unfinished"/>
<translation>Oletusväri:</translation>
</message>
<message>
<location filename="openlp/plugins/images/lib/imagetab.py" line="74"/>
@ -1826,60 +1827,60 @@ Do you want to add the other images anyway?</source>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="68"/>
<source>&lt;strong&gt;Media Plugin&lt;/strong&gt;&lt;br /&gt;The media plugin provides playback of audio and video.</source>
<translation type="unfinished"/>
<translation>&lt;strong&gt;Media-lisäosa&lt;/strong&gt;&lt;br /&gt; Media-lisäosa mahdollistaa audio ja video lähteiden toistamisen.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="78"/>
<source>Media</source>
<comment>name singular</comment>
<translation type="unfinished"/>
<translation>Media</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="79"/>
<source>Media</source>
<comment>name plural</comment>
<translation type="unfinished"/>
<translation>Media</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="83"/>
<source>Media</source>
<comment>container title</comment>
<translation type="unfinished"/>
<translation>Media</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="87"/>
<source>Load new media.</source>
<translation type="unfinished"/>
<translation>Lataa uusi media.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="89"/>
<source>Add new media.</source>
<translation type="unfinished"/>
<translation>Lisää uusi media.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="90"/>
<source>Edit the selected media.</source>
<translation type="unfinished"/>
<translation>Muokkaa valittua mediaa.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="91"/>
<source>Delete the selected media.</source>
<translation type="unfinished"/>
<translation>Poista valittu media.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="92"/>
<source>Preview the selected media.</source>
<translation type="unfinished"/>
<translation>Esikatsele valittua mediaa.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="93"/>
<source>Send the selected media live.</source>
<translation type="unfinished"/>
<translation>Lähetä valittu media esitykseen.</translation>
</message>
<message>
<location filename="openlp/plugins/media/mediaplugin.py" line="94"/>
<source>Add the selected media to the service.</source>
<translation type="unfinished"/>
<translation>Lisää valittu media ajolistalle.</translation>
</message>
</context>
<context>
@ -1887,57 +1888,57 @@ Do you want to add the other images anyway?</source>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="97"/>
<source>Select Media</source>
<translation type="unfinished"/>
<translation>Valitse media</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="277"/>
<source>You must select a media file to delete.</source>
<translation type="unfinished"/>
<translation>Sinun täytyy valita mediatiedosto poistettavaksi.</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="171"/>
<source>You must select a media file to replace the background with.</source>
<translation type="unfinished"/>
<translation>Sinun täytyy valita mediatiedosto, jolla taustakuva korvataan.</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="185"/>
<source>There was a problem replacing your background, the media file &quot;%s&quot; no longer exists.</source>
<translation type="unfinished"/>
<translation>Taustakuvan korvaamisessa on ongelmia, mediatiedosto &apos;%s&quot; ei ole enää saatavilla.</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="200"/>
<source>Missing Media File</source>
<translation type="unfinished"/>
<translation>Puuttuva mediatiedosto</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="200"/>
<source>The file %s no longer exists.</source>
<translation type="unfinished"/>
<translation>Tiedosto %s ei ole enää olemassa.</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="238"/>
<source>Videos (%s);;Audio (%s);;%s (*)</source>
<translation type="unfinished"/>
<translation>Videoita (%s);;Audio (%s);;%s (*)</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="181"/>
<source>There was no display item to amend.</source>
<translation type="unfinished"/>
<translation>Ei ollut muutettavaa näyttöelementtiä.</translation>
</message>
<message>
<location filename="openlp/core/ui/media/mediacontroller.py" line="342"/>
<source>Unsupported File</source>
<translation type="unfinished"/>
<translation>Tiedostotyyppiä ei tueta.</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="106"/>
<source>Automatic</source>
<translation type="unfinished"/>
<translation>Automaattinen</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediaitem.py" line="108"/>
<source>Use Player:</source>
<translation type="unfinished"/>
<translation>Käytä soitinta:</translation>
</message>
</context>
<context>
@ -1945,17 +1946,17 @@ Do you want to add the other images anyway?</source>
<message>
<location filename="openlp/plugins/media/lib/mediatab.py" line="119"/>
<source>Available Media Players</source>
<translation type="unfinished"/>
<translation>Saatavilla olevat mediasoittimet</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediatab.py" line="128"/>
<source>%s (unavailable)</source>
<translation type="unfinished"/>
<translation>%s (ei ole saatavilla)</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediatab.py" line="131"/>
<source>Player Order</source>
<translation type="unfinished"/>
<translation>Soittimien järjestys</translation>
</message>
<message>
<location filename="openlp/plugins/media/lib/mediatab.py" line="134"/>
@ -1968,19 +1969,21 @@ Do you want to add the other images anyway?</source>
<message>
<location filename="openlp/core/utils/__init__.py" line="361"/>
<source>Image Files</source>
<translation type="unfinished"/>
<translation>Kuvatiedostot</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="88"/>
<source>Information</source>
<translation type="unfinished"/>
<translation>Tiedot</translation>
</message>
<message>
<location filename="openlp/plugins/bibles/bibleplugin.py" line="88"/>
<source>Bible format has changed.
You have to upgrade your existing Bibles.
Should OpenLP upgrade now?</source>
<translation type="unfinished"/>
<translation>Raamatun tiedostomuoto on muuttunut.
Sinun tarvitsee päivittää aiemmin asennetut Raamatut.
Pitäisikö OpenLP:n päivittää ne nyt?</translation>
</message>
</context>
<context>
@ -1988,32 +1991,32 @@ Should OpenLP upgrade now?</source>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="220"/>
<source>Credits</source>
<translation type="unfinished"/>
<translation>Kiitokset</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="615"/>
<source>License</source>
<translation type="unfinished"/>
<translation>Lisenssi</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="618"/>
<source>Contribute</source>
<translation type="unfinished"/>
<translation>Avustus</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutform.py" line="51"/>
<source> build %s</source>
<translation type="unfinished"/>
<translation>build %s</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="232"/>
<source>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.</source>
<translation type="unfinished"/>
<translation>Tämä ohjelma on vapaa, voit jakaa ja / tai muuttaa sitä ehtojen mukaisesti GNU General Public Licensen julkaissut Free Software Foundation, version 2 lisenssillä.</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="237"/>
<source>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See below for more details.</source>
<translation type="unfinished"/>
<translation>Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen, mutta ilman mitään takuuta; ilman edes hiljaista takuuta kaupallisesti hyväksyttävästä laadusta tai soveltuvuudesta tiettyyn tarkoitukseen.</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="144"/>
@ -2078,7 +2081,7 @@ Final Credit
on the cross, setting us free from sin. We
bring this software to you for free because
He has set us free.</source>
<translation type="unfinished"/>
<translation>Projektin johto %s Kehittäjät %s Osallistujat %s Testaajat %s Paketoijat %s Kääntäjät afrikaans (af) %s saksa (de) %s brittienglanti (en_GB) %s englanti, Etelä-Afrikka (en_ZA) %s viro (et) %s ranska (fr) %s unkari (hu) %s japani (ja) %s norja bokmål (nb) %s hollanti (nl) %s portugali, brasilia (pt_BR) %s venäjä (ru) %s Dokumentaatio %s rakennettu Python: http://www.python.org/~~V ⏎ Qt4: http://qt.nokia.com/ ⏎ PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro ⏎ Oxygen kuvakkeet: http://oxygen-icons.org/ ⏎ ⏎ Muut kiitokset ⏎ &quot;Sillä niin on Jumala maailmaa rakastanut, että Hän antoi ⏎ ainokaisen Poikansa, niin että kuka tahansa ⏎ uskoo Häneen ei hukkuisi, vaan perii ⏎ iankaikkisen elämän.&quot; - Joh. 3:16 ⏎ ⏎ Ja viimeisenä, mutta ei vähäisimpänä, kaikkein suurin ansio ⏎ Jumala, Isämme, joka lähetti Poikansa kuolemaan ⏎ ristillä, jossa hän vapautti meidät synnistä. Me ⏎ annamme tämän ohjelmiston sinulle maksutta koska ⏎ Hän vapautti meidät maksutta.</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="85"/>
@ -2089,7 +2092,7 @@ OpenLP is free church presentation software, or lyrics projection software, used
Find out more about OpenLP: http://openlp.org/
OpenLP is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below.</source>
<translation type="unfinished"/>
<translation>OpenLP &lt;version&gt; &lt;revision&gt; - Open Source Lyrics Projection OpenLP on vapaa esitysohjelmisto seurakuntakontekstiin, jolla voi näyttää laulujen sanoja, dioja, Raamatun jakeita, videoita, kuvia, ja jopa esitysgrafiikkaa (jos käytössä on joko Impress, PowerPoint tai PowerPoint Viewer) käyttäen tietokonetta ja dataprojektoria. lisätietoja OpenLP: http://openlp.org/ ⏎ ⏎ OpenLP on toteutettu ja sitä ylläpidetään vapaaehtoisvoimin. Jos haluat nähdä yhä enemmän vapaita kristillisiä ohjelmistoja on tuottettavan, harkitse edistää työtä painammalla alla olevaa painiketta.</translation>
</message>
<message>
<location filename="openlp/core/ui/aboutdialog.py" line="223"/>
@ -2103,87 +2106,87 @@ Portions copyright © 2004-2012 %s</source>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="342"/>
<source>UI Settings</source>
<translation type="unfinished"/>
<translation>Käyttöliittymän asetukset</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="346"/>
<source>Number of recent files to display:</source>
<translation type="unfinished"/>
<translation>Kuinka monta viimeisintä tiedostoa näytetään</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="349"/>
<source>Remember active media manager tab on startup</source>
<translation type="unfinished"/>
<translation>Muista aktivoida median hallinnan välilehti käynnistyksessä</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="351"/>
<source>Double-click to send items straight to live</source>
<translation type="unfinished"/>
<translation>Tuplaklikkaa lähettääksesi otsakkeet suoraan esitykseen</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="355"/>
<source>Expand new service items on creation</source>
<translation type="unfinished"/>
<translation>Näytä uudet ajolistan otsakkeet avoimina luodessa</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="357"/>
<source>Enable application exit confirmation</source>
<translation type="unfinished"/>
<translation>Varmista sovelluksen sulkeminen ennen poistumista</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="393"/>
<source>Mouse Cursor</source>
<translation type="unfinished"/>
<translation>Hiiren osoitin</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="395"/>
<source>Hide mouse cursor when over display window</source>
<translation type="unfinished"/>
<translation>Piilota hiiren osoitin, kun se on näyttöikkunan päällä</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="397"/>
<source>Default Image</source>
<translation type="unfinished"/>
<translation>Oletuskuva</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="399"/>
<source>Background color:</source>
<translation type="unfinished"/>
<translation>Taustaväri:</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="403"/>
<source>Image file:</source>
<translation type="unfinished"/>
<translation>Kuvatiedosto:</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="658"/>
<source>Open File</source>
<translation type="unfinished"/>
<translation>Avaa tiedosto</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="71"/>
<source>Advanced</source>
<translation type="unfinished"/>
<translation>Edistyneet</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="353"/>
<source>Preview items when clicked in Media Manager</source>
<translation type="unfinished"/>
<translation>Esikatsele otsaketta, kun sitä klikataan median hallinnassa</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="401"/>
<source>Click to select a color.</source>
<translation type="unfinished"/>
<translation>Valitse väri klikkaamalla.</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="405"/>
<source>Browse for an image file to display.</source>
<translation type="unfinished"/>
<translation>Selaa näytettäviä kuvia.</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="407"/>
<source>Revert to the default OpenLP logo.</source>
<translation type="unfinished"/>
<translation>Palauta oletusarvoinen OpenLP logo.</translation>
</message>
<message>
<location filename="openlp/core/ui/servicemanager.py" line="611"/>
@ -2375,38 +2378,39 @@ This location will be used after OpenLP is closed.</source>
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="86"/>
<source>Error Occurred</source>
<translation type="unfinished"/>
<translation>Tapahtui virhe</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="91"/>
<source>Oops! OpenLP hit a problem, and couldn&apos;t recover. The text in the box below contains information that might be helpful to the OpenLP developers, so please e-mail it to bugs@openlp.org, along with a detailed description of what you were doing when the problem occurred.</source>
<translation type="unfinished"/>
<translation>Uups. OpenLP päätyi virheeseen, josta ei voi jatkaa. Tekstikentässä on tietoa virheestä, joka saattaa helpottaa ohjelmakehittäjien työtä, joten ole hyvä ja lähetä se sähköpostilla osoitteeseen bugs@openlp.org. Lisää myös kuvaus siitä, mitä olit tekemässä, kun virhe tapahtui.</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="97"/>
<source>Send E-Mail</source>
<translation type="unfinished"/>
<translation>Lähetä sähköposti</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="99"/>
<source>Save to File</source>
<translation type="unfinished"/>
<translation>Tallenna tiedostoon</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="88"/>
<source>Please enter a description of what you were doing to cause this error
(Minimum 20 characters)</source>
<translation type="unfinished"/>
<translation>Ole hyvä ja kerro lyhyesti, mitä olit tekemässä, kun virhe tapahtui.
(Vähintään 20 kirjainta)</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptiondialog.py" line="101"/>
<source>Attach File</source>
<translation type="unfinished"/>
<translation>Liitä tiedosto</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptionform.py" line="212"/>
<source>Description characters to enter : %s</source>
<translation type="unfinished"/>
<translation>Kuvauksessa on merkkejä: %s</translation>
</message>
</context>
<context>
@ -2415,17 +2419,18 @@ This location will be used after OpenLP is closed.</source>
<location filename="openlp/core/ui/exceptionform.py" line="116"/>
<source>Platform: %s
</source>
<translation type="unfinished"/>
<translation>Järjestelmä: %s
</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptionform.py" line="150"/>
<source>Save Crash Report</source>
<translation type="unfinished"/>
<translation>Tallenna virheraportti</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptionform.py" line="150"/>
<source>Text files (*.txt *.log *.text)</source>
<translation type="unfinished"/>
<translation>Teksti tiedostot (*.txt *.log *.text)</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptionform.py" line="143"/>
@ -2443,7 +2448,8 @@ Version: %s
--- Library Versions ---
%s
</source>
<translation type="unfinished"/>
<translation>**OpenLP virheraportti** Versio: %s --- Poikkeuksen tiedot. --- %s --- Poikkeuksen traceback --- %s --- Järjestelmätiedot --- %s --- Kirjastoversiot --- %s
</translation>
</message>
<message>
<location filename="openlp/core/ui/exceptionform.py" line="180"/>
@ -2462,7 +2468,8 @@ Version: %s
%s
</source>
<comment>Please add the information that bug reports are favoured written in English.</comment>
<translation type="unfinished"/>
<translation>**OpenLP virheraportti** Versio: %s --- Poikkeuksen tiedot. --- %s --- Poikkeuksen traceback --- %s --- Järjestelmätiedot --- %s --- Kirjastoversiot --- %s
</translation>
</message>
</context>
<context>
@ -2470,17 +2477,17 @@ Version: %s
<message>
<location filename="openlp/core/ui/filerenameform.py" line="51"/>
<source>File Rename</source>
<translation type="unfinished"/>
<translation>Tiedoston uudelleennimeäminen</translation>
</message>
<message>
<location filename="openlp/core/ui/filerenamedialog.py" line="55"/>
<source>New File Name:</source>
<translation type="unfinished"/>
<translation>Uusi tiedostonimi:</translation>
</message>
<message>
<location filename="openlp/core/ui/filerenameform.py" line="48"/>
<source>File Copy</source>
<translation type="unfinished"/>
<translation>Tiedoston kopiointi</translation>
</message>
</context>
<context>
@ -2488,17 +2495,17 @@ Version: %s
<message>
<location filename="openlp/core/ui/firsttimelanguagedialog.py" line="64"/>
<source>Select Translation</source>
<translation type="unfinished"/>
<translation>Valitse käännös</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimelanguagedialog.py" line="66"/>
<source>Choose the translation you&apos;d like to use in OpenLP.</source>
<translation type="unfinished"/>
<translation>Valitse käännös, jota haluat käyttää OpenLP:ssä</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimelanguagedialog.py" line="68"/>
<source>Translation:</source>
<translation type="unfinished"/>
<translation>Käännös:</translation>
</message>
</context>
<context>
@ -2506,107 +2513,107 @@ Version: %s
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="211"/>
<source>Songs</source>
<translation type="unfinished"/>
<translation>Laulut</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="198"/>
<source>First Time Wizard</source>
<translation type="unfinished"/>
<translation>Ensikäynnistyksen avustaja</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="200"/>
<source>Welcome to the First Time Wizard</source>
<translation type="unfinished"/>
<translation>Tervetuloa ensikäynnistyksen avustajaan</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="207"/>
<source>Activate required Plugins</source>
<translation type="unfinished"/>
<translation>Aktivoi vaaditut lisäosat</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="209"/>
<source>Select the Plugins you wish to use. </source>
<translation type="unfinished"/>
<translation>Valitse lisäosat, joita haluat käyttää.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="214"/>
<source>Bible</source>
<translation type="unfinished"/>
<translation>Raamattu</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="215"/>
<source>Images</source>
<translation type="unfinished"/>
<translation>Kuvat</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="217"/>
<source>Presentations</source>
<translation type="unfinished"/>
<translation>Esitykset</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="221"/>
<source>Media (Audio and Video)</source>
<translation type="unfinished"/>
<translation>Media (audio ja video)</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="223"/>
<source>Allow remote access</source>
<translation type="unfinished"/>
<translation>Salli etäkäyttö</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="225"/>
<source>Monitor Song Usage</source>
<translation type="unfinished"/>
<translation>Tilastoi laulujen käyttöä</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="227"/>
<source>Allow Alerts</source>
<translation type="unfinished"/>
<translation>Salli hälytykset</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="257"/>
<source>Default Settings</source>
<translation type="unfinished"/>
<translation>Oletusasetukset</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimeform.py" line="96"/>
<source>Downloading %s...</source>
<translation type="unfinished"/>
<translation>Ladataan %s...</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimeform.py" line="396"/>
<source>Download complete. Click the finish button to start OpenLP.</source>
<translation type="unfinished"/>
<translation>Lataus valmis. Paina lopetuspainiketta käynnistääksesi OpenLP:n.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimeform.py" line="417"/>
<source>Enabling selected plugins...</source>
<translation type="unfinished"/>
<translation>Otetaan käyttöön valittuja lisäosia...</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="229"/>
<source>No Internet Connection</source>
<translation type="unfinished"/>
<translation>Ei internetyhteyttä</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="231"/>
<source>Unable to detect an Internet connection.</source>
<translation type="unfinished"/>
<translation>Toimivaa internetyhteyttä ei saatavilla.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="245"/>
<source>Sample Songs</source>
<translation type="unfinished"/>
<translation>Esimerkkejä lauluista</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="247"/>
<source>Select and download public domain songs.</source>
<translation type="unfinished"/>
<translation>Valitse ja lataa tekijäinoikeusvapaita lauluja.</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="249"/>
<source>Sample Bibles</source>
<translation type="unfinished"/>
<translation>Esimerkkejä Raamatuista</translation>
</message>
<message>
<location filename="openlp/core/ui/firsttimewizard.py" line="251"/>
@ -3236,12 +3243,12 @@ To cancel the First Time Wizard completely (and not start OpenLP), click the Can
<message>
<location filename="openlp/core/ui/mainwindow.py" line="492"/>
<source>&amp;Plugin List</source>
<translation type="unfinished"/>
<translation>&amp;Luettelo lisäosista</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="494"/>
<source>List the Plugins</source>
<translation type="unfinished"/>
<translation>Lisäosien luettelo</translation>
</message>
<message>
<location filename="openlp/core/ui/mainwindow.py" line="500"/>
@ -3628,12 +3635,12 @@ Suffix not supported</source>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="75"/>
<source>Plugin List</source>
<translation type="unfinished"/>
<translation>Luettelo lisäosista</translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="77"/>
<source>Plugin Details</source>
<translation type="unfinished"/>
<translation>Lisäosan tiedot</translation>
</message>
<message>
<location filename="openlp/core/ui/plugindialog.py" line="81"/>
@ -5592,19 +5599,19 @@ The content encoding is not UTF-8.</source>
<location filename="openlp/plugins/presentations/presentationplugin.py" line="157"/>
<source>Presentation</source>
<comment>name singular</comment>
<translation type="unfinished"/>
<translation>Esitys</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/presentationplugin.py" line="159"/>
<source>Presentations</source>
<comment>name plural</comment>
<translation type="unfinished"/>
<translation>Esitykset</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/presentationplugin.py" line="164"/>
<source>Presentations</source>
<comment>container title</comment>
<translation type="unfinished"/>
<translation>Esitykset</translation>
</message>
<message>
<location filename="openlp/plugins/presentations/presentationplugin.py" line="169"/>
@ -5754,7 +5761,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/remotes/lib/httpserver.py" line="293"/>
<source>Alerts</source>
<translation type="unfinished"/>
<translation>Hälytykset</translation>
</message>
<message>
<location filename="openlp/plugins/remotes/lib/httpserver.py" line="294"/>
@ -5794,7 +5801,7 @@ The content encoding is not UTF-8.</source>
<message>
<location filename="openlp/plugins/remotes/lib/httpserver.py" line="304"/>
<source>Show Alert</source>
<translation type="unfinished"/>
<translation>Näytä hälytys</translation>
</message>
<message>
<location filename="openlp/plugins/remotes/lib/httpserver.py" line="305"/>

File diff suppressed because it is too large Load Diff

View File

@ -1367,7 +1367,9 @@ indien nodig en een internetverbinding is dus noodzakelijk.</translation>
<source>Are you sure you want to completely delete &quot;%s&quot; Bible from OpenLP?
You will need to re-import this Bible to use it again.</source>
<translation type="unfinished"/>
<translation>Weet u zeker dat u de bijbel &quot;%s&quot; uit OpenLP wilt verwijderen?
Opnieuw importeren om alsnog te gebruiken.</translation>
</message>
</context>
<context>
@ -1375,7 +1377,7 @@ You will need to re-import this Bible to use it again.</source>
<message>
<location filename="openlp/plugins/bibles/lib/opensong.py" line="118"/>
<source>Incorrect Bible file type supplied. OpenSong Bibles may be compressed. You must decompress them before import.</source>
<translation type="unfinished"/>
<translation>Incorrect bijbelbestand. OpenSong bijbels mogen gecomprimeerd zijn. Decomprimeren voordat u ze importeert.</translation>
</message>
</context>
<context>
@ -1698,7 +1700,7 @@ Let op, de bijbelverzen worden gedownload indien nodig en een internetverbinding
<message>
<location filename="openlp/plugins/custom/forms/editcustomslidedialog.py" line="52"/>
<source>Edit Slide</source>
<translation type="unfinished"/>
<translation>Bewerk dia</translation>
</message>
</context>
<context>
@ -2194,7 +2196,7 @@ Portions copyright © 2004-2012 %s</translation>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="342"/>
<source>UI Settings</source>
<translation>Werkomgeving instellingen</translation>
<translation>UI instellingen</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="346"/>
@ -3103,7 +3105,7 @@ To cancel the First Time Wizard completely (and not start OpenLP), click the Can
<message>
<location filename="openlp/core/ui/generaltab.py" line="261"/>
<source>Start background audio paused</source>
<translation>Start achtergrond geluid gepausseerd</translation>
<translation>Start achtergrond geluid gepauseerd</translation>
</message>
<message>
<location filename="openlp/core/ui/advancedtab.py" line="440"/>
@ -6908,32 +6910,32 @@ De tekstcodering is verantwoordelijk voor een correcte weergave van lettertekens
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="172"/>
<source>This importer has been disabled.</source>
<translation type="unfinished"/>
<translation>importeren is uitgeschakeld</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="260"/>
<source>MediaShout Database</source>
<translation type="unfinished"/>
<translation>MediaShout Database</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="262"/>
<source>The MediaShout importer is only supported on Windows. It has been disabled due to a missing Python module. If you want to use this importer, you will need to install the &quot;pyodbc&quot; module.</source>
<translation type="unfinished"/>
<translation>MediaShout importeren wordt alleen ondersteund onder Windows. Het is uitgeschakeld omdat een bepaalde Python module ontbreekt. Om te kunnen importeren, moet u de &quot;pyodbc&quot; module installeren.</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="293"/>
<source>SongPro Text Files</source>
<translation type="unfinished"/>
<translation>SongPro Tekst bestanden</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="295"/>
<source>SongPro (Export File)</source>
<translation type="unfinished"/>
<translation>SongPro (Exporteer bestand)</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/importer.py" line="297"/>
<source>In SongPro, export your songs using the File -&gt; Export menu</source>
<translation type="unfinished"/>
<translation>Exporteer de liederen in SongPro via het menu File -&gt; Export</translation>
</message>
</context>
<context>
@ -7018,7 +7020,7 @@ De tekstcodering is verantwoordelijk voor een correcte weergave van lettertekens
<message>
<location filename="openlp/plugins/songs/lib/mediashoutimport.py" line="61"/>
<source>Unable to open the MediaShout database.</source>
<translation type="unfinished"/>
<translation>Kan de MediaShout database niet openen.</translation>
</message>
</context>
<context>

View File

@ -6953,7 +6953,7 @@ Teckenkodningen ansvarar för rätt teckenrepresentation.</translation>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="154"/>
<source>Titles</source>
<translation>Titlel</translation>
<translation>Titel</translation>
</message>
<message>
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="154"/>