r1522 + resolved conflicts
@ -6,20 +6,36 @@
|
|||||||
Welcome to the OpenLP 2.0 User Manual
|
Welcome to the OpenLP 2.0 User Manual
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
Contents:
|
Getting Started With OpenLP
|
||||||
|
---------------------------
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
introduction
|
introduction
|
||||||
glossary
|
installation
|
||||||
wizard
|
|
||||||
dualmonitors
|
Reference Manual
|
||||||
configure
|
----------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
alert
|
||||||
bibles
|
bibles
|
||||||
themes
|
configure
|
||||||
|
dualmonitors
|
||||||
|
wizard
|
||||||
|
glossary
|
||||||
mediamanager
|
mediamanager
|
||||||
songs
|
songs
|
||||||
alert
|
themes
|
||||||
|
|
||||||
|
Questions and Troubleshooting
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
faq
|
faq
|
||||||
troubleshooting
|
troubleshooting
|
||||||
|
66
documentation/manual/source/installation.rst
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
Installing OpenLP
|
||||||
|
=================
|
||||||
|
|
||||||
|
Microsoft Windows
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Installing OpenLP is identical over all supported versions of Windows. After
|
||||||
|
downloading the file from the `download page <http://www.openlp.org/en/download.html>`_
|
||||||
|
open the file by double clicking when the download is complete. After opening
|
||||||
|
the downloaded file agree to open the unverified file if you are prompted.
|
||||||
|
|
||||||
|
Next select your language and click :guilabel:`OK`
|
||||||
|
|
||||||
|
.. image:: pics/selectlanguage.png
|
||||||
|
|
||||||
|
After reading the welcome message click :guilabel:`Next` to continue the
|
||||||
|
installation.
|
||||||
|
|
||||||
|
.. image:: pics/welcome.png
|
||||||
|
|
||||||
|
Agree to the license agreement. Click :guilabel:`Next` to continue.
|
||||||
|
|
||||||
|
.. image:: pics/license.png
|
||||||
|
|
||||||
|
Select the install location for OpenLP. Choosing the default location is
|
||||||
|
generally the best choice. Click :guilabel:`Next` to continue.
|
||||||
|
|
||||||
|
.. image:: pics/installlocation.png
|
||||||
|
|
||||||
|
Select a start menu folder for OpenLP to be visible in. The default location
|
||||||
|
here is generally the best choice. Click :guilabel:`Next` to continue.
|
||||||
|
|
||||||
|
.. image:: pics/startmenufolder.png
|
||||||
|
|
||||||
|
Select if you want to create a desktop or Quick Launch icon. Click :guilabel:`Next`
|
||||||
|
to continue.
|
||||||
|
|
||||||
|
.. image:: pics/additionaltask.png
|
||||||
|
|
||||||
|
Review your previous choices. If you need to make any changes click the
|
||||||
|
:guilabel:`Back button` to get to the previous choices, or click :guilabel:`Install`
|
||||||
|
|
||||||
|
.. image:: pics/readytoinstall.png
|
||||||
|
|
||||||
|
The progress bar will update you on how far along the installation has gone.
|
||||||
|
|
||||||
|
.. image:: pics/progress.png
|
||||||
|
|
||||||
|
When the install is complete you will have the option to launch OpenLP. After
|
||||||
|
making your selection click :guilabel:`Finish`
|
||||||
|
|
||||||
|
Mac OS X
|
||||||
|
--------
|
||||||
|
|
||||||
|
Installing OpenLP on OS X is very simple. After downloading the correct file
|
||||||
|
from the OpenLP `download page <http://www.openlp.org/en/download.html>`_
|
||||||
|
double click on the .dmg file. Drag the OpenLP icon over to the Applications
|
||||||
|
folder and you will be ready to use OpenLP. OpenLP will be available in your
|
||||||
|
Applications folder.
|
||||||
|
|
||||||
|
.. image:: pics/osxinstall.png
|
||||||
|
|
||||||
|
Linux
|
||||||
|
-----
|
||||||
|
|
||||||
|
Installation process on Linux distributions vary by distribution. See the OpenLP `download page <http://www.openlp.org/en/download.html>`_ for distribution specific instructions.
|
BIN
documentation/manual/source/pics/additionaltask.png
Executable file
After Width: | Height: | Size: 20 KiB |
BIN
documentation/manual/source/pics/installcomplete.png
Executable file
After Width: | Height: | Size: 156 KiB |
BIN
documentation/manual/source/pics/installlocation.png
Executable file
After Width: | Height: | Size: 22 KiB |
BIN
documentation/manual/source/pics/license.png
Executable file
After Width: | Height: | Size: 24 KiB |
BIN
documentation/manual/source/pics/osxinstall.png
Normal file
After Width: | Height: | Size: 153 KiB |
BIN
documentation/manual/source/pics/progress.png
Executable file
After Width: | Height: | Size: 18 KiB |
BIN
documentation/manual/source/pics/readytoinstall.png
Executable file
After Width: | Height: | Size: 22 KiB |
BIN
documentation/manual/source/pics/selectlanguage.png
Executable file
After Width: | Height: | Size: 9.5 KiB |
BIN
documentation/manual/source/pics/startmenufolder.png
Executable file
After Width: | Height: | Size: 22 KiB |
BIN
documentation/manual/source/pics/welcome.png
Executable file
After Width: | Height: | Size: 134 KiB |
@ -152,7 +152,7 @@ class Ui_PrintServiceDialog(object):
|
|||||||
self.slideTextCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
self.slideTextCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
||||||
'Include slide text if available'))
|
'Include slide text if available'))
|
||||||
self.pageBreakAfterText.setText(translate('OpenLP.PrintServiceForm',
|
self.pageBreakAfterText.setText(translate('OpenLP.PrintServiceForm',
|
||||||
'Add page break before each text item.'))
|
'Add page break before each text item'))
|
||||||
self.notesCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
self.notesCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
||||||
'Include service item notes'))
|
'Include service item notes'))
|
||||||
self.metaDataCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
self.metaDataCheckBox.setText(translate('OpenLP.PrintServiceForm',
|
||||||
@ -165,3 +165,4 @@ class Ui_PrintServiceDialog(object):
|
|||||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.SeventyFive])
|
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.SeventyFive])
|
||||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Fifty])
|
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Fifty])
|
||||||
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive])
|
self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive])
|
||||||
|
|
||||||
|
@ -115,11 +115,11 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
UiStrings().CreateService, self.onNewServiceClicked)
|
UiStrings().CreateService, self.onNewServiceClicked)
|
||||||
self.toolbar.addToolbarButton(
|
self.toolbar.addToolbarButton(
|
||||||
UiStrings().OpenService, u':/general/general_open.png',
|
UiStrings().OpenService, u':/general/general_open.png',
|
||||||
translate('OpenLP.ServiceManager', 'Load an existing service'),
|
translate('OpenLP.ServiceManager', 'Load an existing service.'),
|
||||||
self.onLoadServiceClicked)
|
self.onLoadServiceClicked)
|
||||||
self.toolbar.addToolbarButton(
|
self.toolbar.addToolbarButton(
|
||||||
UiStrings().SaveService, u':/general/general_save.png',
|
UiStrings().SaveService, u':/general/general_save.png',
|
||||||
translate('OpenLP.ServiceManager', 'Save this service'),
|
translate('OpenLP.ServiceManager', 'Save this service.'),
|
||||||
self.saveFile)
|
self.saveFile)
|
||||||
self.toolbar.addSeparator()
|
self.toolbar.addSeparator()
|
||||||
self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self)
|
self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self)
|
||||||
@ -128,7 +128,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.toolbar.addToolbarWidget(u'ThemeLabel', self.themeLabel)
|
self.toolbar.addToolbarWidget(u'ThemeLabel', self.themeLabel)
|
||||||
self.themeComboBox = QtGui.QComboBox(self.toolbar)
|
self.themeComboBox = QtGui.QComboBox(self.toolbar)
|
||||||
self.themeComboBox.setToolTip(translate('OpenLP.ServiceManager',
|
self.themeComboBox.setToolTip(translate('OpenLP.ServiceManager',
|
||||||
'Select a theme for the service'))
|
'Select a theme for the service.'))
|
||||||
self.themeComboBox.setSizeAdjustPolicy(
|
self.themeComboBox.setSizeAdjustPolicy(
|
||||||
QtGui.QComboBox.AdjustToMinimumContentsLength)
|
QtGui.QComboBox.AdjustToMinimumContentsLength)
|
||||||
self.themeComboBox.setSizePolicy(
|
self.themeComboBox.setSizePolicy(
|
||||||
@ -676,17 +676,17 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
action = self.menu.exec_(self.serviceManagerList.mapToGlobal(point))
|
action = self.menu.exec_(self.serviceManagerList.mapToGlobal(point))
|
||||||
if action == self.editAction:
|
if action == self.editAction:
|
||||||
self.remoteEdit()
|
self.remoteEdit()
|
||||||
if action == self.maintainAction:
|
elif action == self.maintainAction:
|
||||||
self.onServiceItemEditForm()
|
self.onServiceItemEditForm()
|
||||||
if action == self.deleteAction:
|
elif action == self.deleteAction:
|
||||||
self.onDeleteFromService()
|
self.onDeleteFromService()
|
||||||
if action == self.notesAction:
|
elif action == self.notesAction:
|
||||||
self.onServiceItemNoteForm()
|
self.onServiceItemNoteForm()
|
||||||
if action == self.timeAction:
|
elif action == self.timeAction:
|
||||||
self.onStartTimeForm()
|
self.onStartTimeForm()
|
||||||
if action == self.previewAction:
|
elif action == self.previewAction:
|
||||||
self.makePreview()
|
self.makePreview()
|
||||||
if action == self.liveAction:
|
elif action == self.liveAction:
|
||||||
self.makeLive()
|
self.makeLive()
|
||||||
|
|
||||||
def onServiceItemNoteForm(self):
|
def onServiceItemNoteForm(self):
|
||||||
|
@ -137,13 +137,15 @@ class BiblePlugin(Plugin):
|
|||||||
# Middle Header Bar
|
# Middle Header Bar
|
||||||
tooltips = {
|
tooltips = {
|
||||||
u'load': u'',
|
u'load': u'',
|
||||||
u'import': translate('BiblesPlugin', 'Import a Bible'),
|
u'import': translate('BiblesPlugin', 'Import a Bible.'),
|
||||||
u'new': translate('BiblesPlugin', 'Add a new Bible'),
|
u'new': translate('BiblesPlugin', 'Add a new Bible.'),
|
||||||
u'edit': translate('BiblesPlugin', 'Edit the selected Bible'),
|
u'edit': translate('BiblesPlugin', 'Edit the selected Bible.'),
|
||||||
u'delete': translate('BiblesPlugin', 'Delete the selected Bible'),
|
u'delete': translate('BiblesPlugin', 'Delete the selected Bible.'),
|
||||||
u'preview': translate('BiblesPlugin', 'Preview the selected Bible'),
|
u'preview': translate('BiblesPlugin',
|
||||||
u'live': translate('BiblesPlugin', 'Send the selected Bible live'),
|
'Preview the selected Bible.'),
|
||||||
|
u'live': translate('BiblesPlugin', 'Send the selected Bible live.'),
|
||||||
u'service': translate('BiblesPlugin',
|
u'service': translate('BiblesPlugin',
|
||||||
'Add the selected Bible to the service')
|
'Add the selected Bible to the service.')
|
||||||
}
|
}
|
||||||
self.setPluginUiTextStrings(tooltips)
|
self.setPluginUiTextStrings(tooltips)
|
||||||
|
|
||||||
|
@ -106,17 +106,18 @@ class CustomPlugin(Plugin):
|
|||||||
}
|
}
|
||||||
# Middle Header Bar
|
# Middle Header Bar
|
||||||
tooltips = {
|
tooltips = {
|
||||||
u'load': translate('CustomsPlugin', 'Load a new Custom'),
|
u'load': translate('CustomsPlugin', 'Load a new Custom.'),
|
||||||
u'import': translate('CustomsPlugin', 'Import a Custom'),
|
u'import': translate('CustomsPlugin', 'Import a Custom.'),
|
||||||
u'new': translate('CustomsPlugin', 'Add a new Custom'),
|
u'new': translate('CustomsPlugin', 'Add a new Custom.'),
|
||||||
u'edit': translate('CustomsPlugin', 'Edit the selected Custom'),
|
u'edit': translate('CustomsPlugin', 'Edit the selected Custom.'),
|
||||||
u'delete': translate('CustomsPlugin', 'Delete the selected Custom'),
|
u'delete': translate('CustomsPlugin',
|
||||||
|
'Delete the selected Custom.'),
|
||||||
u'preview': translate('CustomsPlugin',
|
u'preview': translate('CustomsPlugin',
|
||||||
'Preview the selected Custom'),
|
'Preview the selected Custom.'),
|
||||||
u'live': translate('CustomsPlugin',
|
u'live': translate('CustomsPlugin',
|
||||||
'Send the selected Custom live'),
|
'Send the selected Custom live.'),
|
||||||
u'service': translate('CustomsPlugin',
|
u'service': translate('CustomsPlugin',
|
||||||
'Add the selected Custom to the service')
|
'Add the selected Custom to the service.')
|
||||||
}
|
}
|
||||||
self.setPluginUiTextStrings(tooltips)
|
self.setPluginUiTextStrings(tooltips)
|
||||||
|
|
||||||
|
@ -69,14 +69,14 @@ class ImagePlugin(Plugin):
|
|||||||
}
|
}
|
||||||
# Middle Header Bar
|
# Middle Header Bar
|
||||||
tooltips = {
|
tooltips = {
|
||||||
u'load': translate('ImagePlugin', 'Load a new Image'),
|
u'load': translate('ImagePlugin', 'Load a new Image.'),
|
||||||
u'import': u'',
|
u'import': u'',
|
||||||
u'new': translate('ImagePlugin', 'Add a new Image'),
|
u'new': translate('ImagePlugin', 'Add a new Image.'),
|
||||||
u'edit': translate('ImagePlugin', 'Edit the selected Image'),
|
u'edit': translate('ImagePlugin', 'Edit the selected Image.'),
|
||||||
u'delete': translate('ImagePlugin', 'Delete the selected Image'),
|
u'delete': translate('ImagePlugin', 'Delete the selected Image.'),
|
||||||
u'preview': translate('ImagePlugin', 'Preview the selected Image'),
|
u'preview': translate('ImagePlugin', 'Preview the selected Image.'),
|
||||||
u'live': translate('ImagePlugin', 'Send the selected Image live'),
|
u'live': translate('ImagePlugin', 'Send the selected Image live.'),
|
||||||
u'service': translate('ImagePlugin',
|
u'service': translate('ImagePlugin',
|
||||||
'Add the selected Image to the service')
|
'Add the selected Image to the service.')
|
||||||
}
|
}
|
||||||
self.setPluginUiTextStrings(tooltips)
|
self.setPluginUiTextStrings(tooltips)
|
||||||
|
@ -111,14 +111,14 @@ class MediaPlugin(Plugin):
|
|||||||
}
|
}
|
||||||
# Middle Header Bar
|
# Middle Header Bar
|
||||||
tooltips = {
|
tooltips = {
|
||||||
u'load': translate('MediaPlugin', 'Load a new Media'),
|
u'load': translate('MediaPlugin', 'Load a new Media.'),
|
||||||
u'import': u'',
|
u'import': u'',
|
||||||
u'new': translate('MediaPlugin', 'Add a new Media'),
|
u'new': translate('MediaPlugin', 'Add a new Media.'),
|
||||||
u'edit': translate('MediaPlugin', 'Edit the selected Media'),
|
u'edit': translate('MediaPlugin', 'Edit the selected Media.'),
|
||||||
u'delete': translate('MediaPlugin', 'Delete the selected Media'),
|
u'delete': translate('MediaPlugin', 'Delete the selected Media.'),
|
||||||
u'preview': translate('MediaPlugin', 'Preview the selected Media'),
|
u'preview': translate('MediaPlugin', 'Preview the selected Media.'),
|
||||||
u'live': translate('MediaPlugin', 'Send the selected Media live'),
|
u'live': translate('MediaPlugin', 'Send the selected Media live.'),
|
||||||
u'service': translate('MediaPlugin',
|
u'service': translate('MediaPlugin',
|
||||||
'Add the selected Media to the service')
|
'Add the selected Media to the service.')
|
||||||
}
|
}
|
||||||
self.setPluginUiTextStrings(tooltips)
|
self.setPluginUiTextStrings(tooltips)
|
||||||
|
@ -167,17 +167,18 @@ class PresentationPlugin(Plugin):
|
|||||||
}
|
}
|
||||||
# Middle Header Bar
|
# Middle Header Bar
|
||||||
tooltips = {
|
tooltips = {
|
||||||
u'load': translate('PresentationPlugin', 'Load a new Presentation'),
|
u'load': translate('PresentationPlugin',
|
||||||
|
'Load a new Presentation.'),
|
||||||
u'import': u'',
|
u'import': u'',
|
||||||
u'new': u'',
|
u'new': u'',
|
||||||
u'edit': u'',
|
u'edit': u'',
|
||||||
u'delete': translate('PresentationPlugin',
|
u'delete': translate('PresentationPlugin',
|
||||||
'Delete the selected Presentation'),
|
'Delete the selected Presentation.'),
|
||||||
u'preview': translate('PresentationPlugin',
|
u'preview': translate('PresentationPlugin',
|
||||||
'Preview the selected Presentation'),
|
'Preview the selected Presentation.'),
|
||||||
u'live': translate('PresentationPlugin',
|
u'live': translate('PresentationPlugin',
|
||||||
'Send the selected Presentation live'),
|
'Send the selected Presentation live.'),
|
||||||
u'service': translate('PresentationPlugin',
|
u'service': translate('PresentationPlugin',
|
||||||
'Add the selected Presentation to the service')
|
'Add the selected Presentation to the service.')
|
||||||
}
|
}
|
||||||
self.setPluginUiTextStrings(tooltips)
|
self.setPluginUiTextStrings(tooltips)
|
||||||
|
@ -112,6 +112,7 @@ window.OpenLP = {
|
|||||||
$.getJSON(
|
$.getJSON(
|
||||||
"/api/poll",
|
"/api/poll",
|
||||||
function (data, status) {
|
function (data, status) {
|
||||||
|
var prevItem = OpenLP.currentItem;
|
||||||
OpenLP.currentSlide = data.results.slide;
|
OpenLP.currentSlide = data.results.slide;
|
||||||
OpenLP.currentItem = data.results.item;
|
OpenLP.currentItem = data.results.item;
|
||||||
if ($("#service-manager").is(":visible")) {
|
if ($("#service-manager").is(":visible")) {
|
||||||
@ -129,6 +130,10 @@ window.OpenLP = {
|
|||||||
$("#service-manager div[data-role=content] ul[data-role=listview]").listview("refresh");
|
$("#service-manager div[data-role=content] ul[data-role=listview]").listview("refresh");
|
||||||
}
|
}
|
||||||
if ($("#slide-controller").is(":visible")) {
|
if ($("#slide-controller").is(":visible")) {
|
||||||
|
if (prevItem != OpenLP.currentItem) {
|
||||||
|
OpenLP.loadController();
|
||||||
|
return;
|
||||||
|
}
|
||||||
var idx = 0;
|
var idx = 0;
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");
|
$("#slide-controller div[data-role=content] ul[data-role=listview] li").attr("data-theme", "c").removeClass("ui-btn-up-e").addClass("ui-btn-up-c");
|
||||||
$("#slide-controller div[data-role=content] ul[data-role=listview] li a").each(function () {
|
$("#slide-controller div[data-role=content] ul[data-role=listview] li a").each(function () {
|
||||||
@ -200,5 +205,6 @@ $("#controller-unblank").live("click", OpenLP.unblankDisplay);
|
|||||||
// Alerts
|
// Alerts
|
||||||
$("#alert-submit").live("click", OpenLP.showAlert);
|
$("#alert-submit").live("click", OpenLP.showAlert);
|
||||||
// Poll the server twice a second to get any updates.
|
// Poll the server twice a second to get any updates.
|
||||||
|
$.ajaxSetup({ cache: false });
|
||||||
setInterval("OpenLP.pollServer();", 500);
|
setInterval("OpenLP.pollServer();", 500);
|
||||||
OpenLP.pollServer();
|
OpenLP.pollServer();
|
||||||
|
@ -141,7 +141,7 @@ class SongMediaItem(MediaManagerItem):
|
|||||||
self.searchTextButton.setText(UiStrings().Search)
|
self.searchTextButton.setText(UiStrings().Search)
|
||||||
self.maintenanceAction.setText(SongStrings.SongMaintenance)
|
self.maintenanceAction.setText(SongStrings.SongMaintenance)
|
||||||
self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem',
|
self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem',
|
||||||
'Maintain the lists of authors, topics and books'))
|
'Maintain the lists of authors, topics and books.'))
|
||||||
|
|
||||||
def initialise(self):
|
def initialise(self):
|
||||||
self.searchTextEdit.setSearchTypes([
|
self.searchTextEdit.setSearchTypes([
|
||||||
|
@ -97,7 +97,7 @@ class SongShowPlusImport(SongImport):
|
|||||||
"""
|
"""
|
||||||
Receive a single file or a list of files to import.
|
Receive a single file or a list of files to import.
|
||||||
"""
|
"""
|
||||||
if isinstance(self.import_source, list):
|
if not isinstance(self.import_source, list):
|
||||||
return
|
return
|
||||||
self.import_wizard.progressBar.setMaximum(len(self.import_source))
|
self.import_wizard.progressBar.setMaximum(len(self.import_source))
|
||||||
for file in self.import_source:
|
for file in self.import_source:
|
||||||
|
@ -214,13 +214,13 @@ class SongsPlugin(Plugin):
|
|||||||
tooltips = {
|
tooltips = {
|
||||||
u'load': u'',
|
u'load': u'',
|
||||||
u'import': u'',
|
u'import': u'',
|
||||||
u'new': translate('SongsPlugin', 'Add a new Song'),
|
u'new': translate('SongsPlugin', 'Add a new Song.'),
|
||||||
u'edit': translate('SongsPlugin', 'Edit the selected Song'),
|
u'edit': translate('SongsPlugin', 'Edit the selected Song.'),
|
||||||
u'delete': translate('SongsPlugin', 'Delete the selected Song'),
|
u'delete': translate('SongsPlugin', 'Delete the selected Song.'),
|
||||||
u'preview': translate('SongsPlugin', 'Preview the selected Song'),
|
u'preview': translate('SongsPlugin', 'Preview the selected Song.'),
|
||||||
u'live': translate('SongsPlugin', 'Send the selected Song live'),
|
u'live': translate('SongsPlugin', 'Send the selected Song live.'),
|
||||||
u'service': translate('SongsPlugin',
|
u'service': translate('SongsPlugin',
|
||||||
'Add the selected Song to the service')
|
'Add the selected Song to the service.')
|
||||||
}
|
}
|
||||||
self.setPluginUiTextStrings(tooltips)
|
self.setPluginUiTextStrings(tooltips)
|
||||||
|
|
||||||
|
@ -243,6 +243,14 @@ def compile_translations():
|
|||||||
code = lconvert.wait()
|
code = lconvert.wait()
|
||||||
if code != 0:
|
if code != 0:
|
||||||
raise Exception('Error running lconvert on %s' % source_path)
|
raise Exception('Error running lconvert on %s' % source_path)
|
||||||
|
print u'Copying qm files...'
|
||||||
|
source = os.path.join(site_packages, u'PyQt4', u'translations')
|
||||||
|
files = os.listdir(source)
|
||||||
|
for filename in files:
|
||||||
|
if filename.startswith(u'qt_') and filename.endswith(u'.qm') and \
|
||||||
|
len(filename) == 8:
|
||||||
|
copy(os.path.join(source, filename),
|
||||||
|
os.path.join(dist_path, u'i18n', filename))
|
||||||
|
|
||||||
def run_sphinx():
|
def run_sphinx():
|
||||||
print u'Running Sphinx...'
|
print u'Running Sphinx...'
|
||||||
|