mirror of https://gitlab.com/openlp/openlp.git
Add translations and update the code to accept them/use them
bzr-revno: 816
This commit is contained in:
commit
42fbb208df
|
@ -37,7 +37,7 @@ log = logging.getLogger()
|
||||||
from openlp.core.lib import Receiver
|
from openlp.core.lib import Receiver
|
||||||
from openlp.core.resources import qInitResources
|
from openlp.core.resources import qInitResources
|
||||||
from openlp.core.ui import MainWindow, SplashScreen, ScreenList
|
from openlp.core.ui import MainWindow, SplashScreen, ScreenList
|
||||||
from openlp.core.utils import AppLocation
|
from openlp.core.utils import AppLocation, LanguageManager
|
||||||
|
|
||||||
application_stylesheet = u"""
|
application_stylesheet = u"""
|
||||||
QMainWindow::separator
|
QMainWindow::separator
|
||||||
|
@ -190,6 +190,11 @@ def main():
|
||||||
qInitResources()
|
qInitResources()
|
||||||
# Now create and actually run the application.
|
# Now create and actually run the application.
|
||||||
app = OpenLP(qt_args)
|
app = OpenLP(qt_args)
|
||||||
|
#i18n Set Language
|
||||||
|
language = LanguageManager.get_language()
|
||||||
|
appTranslator = LanguageManager.get_translator(language)
|
||||||
|
app.installTranslator(appTranslator)
|
||||||
|
|
||||||
sys.exit(app.run())
|
sys.exit(app.run())
|
||||||
|
|
||||||
if __name__ == u'__main__':
|
if __name__ == u'__main__':
|
||||||
|
|
|
@ -35,7 +35,7 @@ from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
def translate(context, text):
|
def translate(context, text, comment=None):
|
||||||
"""
|
"""
|
||||||
A special shortcut method to wrap around the Qt4 translation functions.
|
A special shortcut method to wrap around the Qt4 translation functions.
|
||||||
This abstracts the translation procedure so that we can change it if at a
|
This abstracts the translation procedure so that we can change it if at a
|
||||||
|
@ -48,8 +48,8 @@ def translate(context, text):
|
||||||
``text``
|
``text``
|
||||||
The text to put into the translation tables for translation.
|
The text to put into the translation tables for translation.
|
||||||
"""
|
"""
|
||||||
return QtGui.QApplication.translate(
|
return QtCore.QCoreApplication.translate(context, text,
|
||||||
context, text, None, QtGui.QApplication.UnicodeUTF8)
|
comment)
|
||||||
|
|
||||||
def get_text_file_string(text_file):
|
def get_text_file_string(text_file):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -117,10 +117,11 @@ class OpenLPToolbar(QtGui.QToolBar):
|
||||||
The title of the icon to search for.
|
The title of the icon to search for.
|
||||||
"""
|
"""
|
||||||
title = QtCore.QString(title)
|
title = QtCore.QString(title)
|
||||||
if self.icons[title]:
|
try:
|
||||||
return self.icons[title]
|
if self.icons[title]:
|
||||||
else:
|
return self.icons[title]
|
||||||
log.error(u'getIconFromTitle - no icon for %s' % title)
|
except:
|
||||||
|
log.exception(u'getIconFromTitle - no icon for %s' % title)
|
||||||
return QtGui.QIcon()
|
return QtGui.QIcon()
|
||||||
|
|
||||||
def makeWidgetsInvisible(self, widgets):
|
def makeWidgetsInvisible(self, widgets):
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_AboutDialog(object):
|
class Ui_AboutDialog(object):
|
||||||
def setupUi(self, AboutDialog):
|
def setupUi(self, AboutDialog):
|
||||||
|
@ -113,8 +114,8 @@ class Ui_AboutDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(AboutDialog)
|
QtCore.QMetaObject.connectSlotsByName(AboutDialog)
|
||||||
|
|
||||||
def retranslateUi(self, AboutDialog):
|
def retranslateUi(self, AboutDialog):
|
||||||
AboutDialog.setWindowTitle(self.trUtf8('About OpenLP'))
|
AboutDialog.setWindowTitle(translate('AboutForm', 'About OpenLP'))
|
||||||
self.AboutTextEdit.setPlainText(self.trUtf8(
|
self.AboutTextEdit.setPlainText(translate('AboutForm',
|
||||||
'OpenLP <version><revision> - Open Source Lyrics '
|
'OpenLP <version><revision> - Open Source Lyrics '
|
||||||
'Projection\n'
|
'Projection\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -131,8 +132,8 @@ class Ui_AboutDialog(object):
|
||||||
'consider contributing by using the button below.'
|
'consider contributing by using the button below.'
|
||||||
))
|
))
|
||||||
self.AboutNotebook.setTabText(
|
self.AboutNotebook.setTabText(
|
||||||
self.AboutNotebook.indexOf(self.AboutTab), self.trUtf8('About'))
|
self.AboutNotebook.indexOf(self.AboutTab), translate('AboutForm', 'About'))
|
||||||
self.CreditsTextEdit.setPlainText(self.trUtf8(
|
self.CreditsTextEdit.setPlainText(translate('AboutForm',
|
||||||
'Project Lead\n'
|
'Project Lead\n'
|
||||||
' Raoul "superfly" Snyman\n'
|
' Raoul "superfly" Snyman\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -164,11 +165,10 @@ class Ui_AboutDialog(object):
|
||||||
))
|
))
|
||||||
self.AboutNotebook.setTabText(
|
self.AboutNotebook.setTabText(
|
||||||
self.AboutNotebook.indexOf(self.CreditsTab),
|
self.AboutNotebook.indexOf(self.CreditsTab),
|
||||||
self.trUtf8('Credits'))
|
translate('AboutForm', 'Credits'))
|
||||||
self.LicenseTextEdit.setPlainText(self.trUtf8(
|
self.LicenseTextEdit.setPlainText(translate('AboutForm',
|
||||||
'Copyright ' + u'\u00a9'.encode('utf8') + ' 2004-2010 Raoul '
|
'Copyright \xa9 2004-2010 Raoul Snyman\n'
|
||||||
'Snyman\n'
|
'Portions copyright \xa9 2004-2010 '
|
||||||
'Portions copyright ' + u'\u00a9'.encode('utf8') + ' 2004-2010 '
|
|
||||||
'Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, '
|
'Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, '
|
||||||
'Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon '
|
'Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon '
|
||||||
'Tibble, Carsten Tinggaard\n'
|
'Tibble, Carsten Tinggaard\n'
|
||||||
|
@ -557,6 +557,6 @@ class Ui_AboutDialog(object):
|
||||||
'instead of this License.'))
|
'instead of this License.'))
|
||||||
self.AboutNotebook.setTabText(
|
self.AboutNotebook.setTabText(
|
||||||
self.AboutNotebook.indexOf(self.LicenseTab),
|
self.AboutNotebook.indexOf(self.LicenseTab),
|
||||||
self.trUtf8('License'))
|
translate('AboutForm', 'License'))
|
||||||
self.ContributeButton.setText(self.trUtf8('Contribute'))
|
self.ContributeButton.setText(translate('AboutForm', 'Contribute'))
|
||||||
self.CloseButton.setText(self.trUtf8('Close'))
|
self.CloseButton.setText(translate('AboutForm', 'Close'))
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.lib import build_icon
|
from openlp.core.lib import build_icon
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_AmendThemeDialog(object):
|
class Ui_AmendThemeDialog(object):
|
||||||
def setupUi(self, AmendThemeDialog):
|
def setupUi(self, AmendThemeDialog):
|
||||||
|
@ -601,95 +602,95 @@ class Ui_AmendThemeDialog(object):
|
||||||
AmendThemeDialog.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox)
|
AmendThemeDialog.setTabOrder(self.HorizontalComboBox, self.VerticalComboBox)
|
||||||
|
|
||||||
def retranslateUi(self, AmendThemeDialog):
|
def retranslateUi(self, AmendThemeDialog):
|
||||||
AmendThemeDialog.setWindowTitle(self.trUtf8('Theme Maintenance'))
|
AmendThemeDialog.setWindowTitle(translate('AmendThemeForm', 'Theme Maintenance'))
|
||||||
self.ThemeNameLabel.setText(self.trUtf8('Theme Name:'))
|
self.ThemeNameLabel.setText(translate('AmendThemeForm', 'Theme Name:'))
|
||||||
self.BackgroundLabel.setText(self.trUtf8('Background:'))
|
self.BackgroundLabel.setText(translate('AmendThemeForm', 'Background:'))
|
||||||
self.BackgroundComboBox.setItemText(0, self.trUtf8('Opaque'))
|
self.BackgroundComboBox.setItemText(0, translate('AmendThemeForm', 'Opaque'))
|
||||||
self.BackgroundComboBox.setItemText(1, self.trUtf8('Transparent'))
|
self.BackgroundComboBox.setItemText(1, translate('AmendThemeForm', 'Transparent'))
|
||||||
self.BackgroundTypeLabel.setText(self.trUtf8('Background Type:'))
|
self.BackgroundTypeLabel.setText(translate('AmendThemeForm', 'Background Type:'))
|
||||||
self.BackgroundTypeComboBox.setItemText(0, self.trUtf8('Solid Color'))
|
self.BackgroundTypeComboBox.setItemText(0, translate('AmendThemeForm', 'Solid Color'))
|
||||||
self.BackgroundTypeComboBox.setItemText(1, self.trUtf8('Gradient'))
|
self.BackgroundTypeComboBox.setItemText(1, translate('AmendThemeForm', 'Gradient'))
|
||||||
self.BackgroundTypeComboBox.setItemText(2, self.trUtf8('Image'))
|
self.BackgroundTypeComboBox.setItemText(2, translate('AmendThemeForm', 'Image'))
|
||||||
self.Color1Label.setText(self.trUtf8('<Color1>'))
|
self.Color1Label.setText(translate('AmendThemeForm', '<Color1>'))
|
||||||
self.Color2Label.setText(self.trUtf8('<Color2>'))
|
self.Color2Label.setText(translate('AmendThemeForm', '<Color2>'))
|
||||||
self.ImageLabel.setText(self.trUtf8('Image:'))
|
self.ImageLabel.setText(translate('AmendThemeForm', 'Image:'))
|
||||||
self.GradientLabel.setText(self.trUtf8('Gradient :'))
|
self.GradientLabel.setText(translate('AmendThemeForm', 'Gradient :'))
|
||||||
self.GradientComboBox.setItemText(0, self.trUtf8('Horizontal'))
|
self.GradientComboBox.setItemText(0, translate('AmendThemeForm', 'Horizontal'))
|
||||||
self.GradientComboBox.setItemText(1, self.trUtf8('Vertical'))
|
self.GradientComboBox.setItemText(1, translate('AmendThemeForm', 'Vertical'))
|
||||||
self.GradientComboBox.setItemText(2, self.trUtf8('Circular'))
|
self.GradientComboBox.setItemText(2, translate('AmendThemeForm', 'Circular'))
|
||||||
self.ThemeTabWidget.setTabText(
|
self.ThemeTabWidget.setTabText(
|
||||||
self.ThemeTabWidget.indexOf(self.BackgroundTab),
|
self.ThemeTabWidget.indexOf(self.BackgroundTab),
|
||||||
self.trUtf8('Background'))
|
translate('AmendThemeForm', 'Background'))
|
||||||
self.FontMainGroupBox.setTitle(self.trUtf8('Main Font'))
|
self.FontMainGroupBox.setTitle(translate('AmendThemeForm', 'Main Font'))
|
||||||
self.FontMainlabel.setText(self.trUtf8('Font:'))
|
self.FontMainlabel.setText(translate('AmendThemeForm', 'Font:'))
|
||||||
self.FontMainColorLabel.setText(self.trUtf8('Font Color:'))
|
self.FontMainColorLabel.setText(translate('AmendThemeForm', 'Font Color:'))
|
||||||
self.FontMainSize.setText(self.trUtf8('Size:'))
|
self.FontMainSize.setText(translate('AmendThemeForm', 'Size:'))
|
||||||
self.FontMainSizeSpinBox.setSuffix(self.trUtf8('pt'))
|
self.FontMainSizeSpinBox.setSuffix(translate('AmendThemeForm', 'pt'))
|
||||||
self.FontMainWrapIndentationLabel.setText(self.trUtf8('Wrap Indentation'))
|
self.FontMainWrapIndentationLabel.setText(translate('AmendThemeForm', 'Wrap Indentation'))
|
||||||
self.FontMainWrapLineAdjustmentLabel.setText(self.trUtf8('Adjust Line Spacing'))
|
self.FontMainWrapLineAdjustmentLabel.setText(translate('AmendThemeForm', 'Adjust Line Spacing'))
|
||||||
self.FontMainWeightComboBox.setItemText(0, self.trUtf8('Normal'))
|
self.FontMainWeightComboBox.setItemText(0, translate('AmendThemeForm', 'Normal'))
|
||||||
self.FontMainWeightComboBox.setItemText(1, self.trUtf8('Bold'))
|
self.FontMainWeightComboBox.setItemText(1, translate('AmendThemeForm', 'Bold'))
|
||||||
self.FontMainWeightComboBox.setItemText(2, self.trUtf8('Italics'))
|
self.FontMainWeightComboBox.setItemText(2, translate('AmendThemeForm', 'Italics'))
|
||||||
self.FontMainWeightComboBox.setItemText(3, self.trUtf8('Bold/Italics'))
|
self.FontMainWeightComboBox.setItemText(3, translate('AmendThemeForm', 'Bold/Italics'))
|
||||||
self.FontMainWeightLabel.setText(self.trUtf8('Font Weight:'))
|
self.FontMainWeightLabel.setText(translate('AmendThemeForm', 'Font Weight:'))
|
||||||
self.MainLocationGroupBox.setTitle(self.trUtf8('Display Location'))
|
self.MainLocationGroupBox.setTitle(translate('AmendThemeForm', 'Display Location'))
|
||||||
self.DefaultLocationLabel.setText(self.trUtf8('Use Default Location:'))
|
self.DefaultLocationLabel.setText(translate('AmendThemeForm', 'Use Default Location:'))
|
||||||
self.FontMainXLabel.setText(self.trUtf8('X Position:'))
|
self.FontMainXLabel.setText(translate('AmendThemeForm', 'X Position:'))
|
||||||
self.FontMainYLabel.setText(self.trUtf8('Y Position:'))
|
self.FontMainYLabel.setText(translate('AmendThemeForm', 'Y Position:'))
|
||||||
self.FontMainWidthLabel.setText(self.trUtf8('Width:'))
|
self.FontMainWidthLabel.setText(translate('AmendThemeForm', 'Width:'))
|
||||||
self.FontMainHeightLabel.setText(self.trUtf8('Height:'))
|
self.FontMainHeightLabel.setText(translate('AmendThemeForm', 'Height:'))
|
||||||
self.FontMainXSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontMainXSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.FontMainYSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontMainYSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.FontMainWidthSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontMainWidthSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.FontMainHeightSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontMainHeightSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.ThemeTabWidget.setTabText(
|
self.ThemeTabWidget.setTabText(
|
||||||
self.ThemeTabWidget.indexOf(self.FontMainTab),
|
self.ThemeTabWidget.indexOf(self.FontMainTab),
|
||||||
self.trUtf8('Font Main'))
|
translate('AmendThemeForm', 'Font Main'))
|
||||||
self.FooterFontGroupBox.setTitle(self.trUtf8('Footer Font'))
|
self.FooterFontGroupBox.setTitle(translate('AmendThemeForm', 'Footer Font'))
|
||||||
self.FontFooterLabel.setText(self.trUtf8('Font:'))
|
self.FontFooterLabel.setText(translate('AmendThemeForm', 'Font:'))
|
||||||
self.FontFooterColorLabel.setText(self.trUtf8('Font Color:'))
|
self.FontFooterColorLabel.setText(translate('AmendThemeForm', 'Font Color:'))
|
||||||
self.FontFooterSizeLabel.setText(self.trUtf8('Size:'))
|
self.FontFooterSizeLabel.setText(translate('AmendThemeForm', 'Size:'))
|
||||||
self.FontFooterSizeSpinBox.setSuffix(self.trUtf8('pt'))
|
self.FontFooterSizeSpinBox.setSuffix(translate('AmendThemeForm', 'pt'))
|
||||||
self.FontFooterWeightComboBox.setItemText(0, self.trUtf8('Normal'))
|
self.FontFooterWeightComboBox.setItemText(0, translate('AmendThemeForm', 'Normal'))
|
||||||
self.FontFooterWeightComboBox.setItemText(1, self.trUtf8('Bold'))
|
self.FontFooterWeightComboBox.setItemText(1, translate('AmendThemeForm', 'Bold'))
|
||||||
self.FontFooterWeightComboBox.setItemText(2, self.trUtf8('Italics'))
|
self.FontFooterWeightComboBox.setItemText(2, translate('AmendThemeForm', 'Italics'))
|
||||||
self.FontFooterWeightComboBox.setItemText(3, self.trUtf8('Bold/Italics'))
|
self.FontFooterWeightComboBox.setItemText(3, translate('AmendThemeForm', 'Bold/Italics'))
|
||||||
self.FontFooterWeightLabel.setText(self.trUtf8('Font Weight:'))
|
self.FontFooterWeightLabel.setText(translate('AmendThemeForm', 'Font Weight:'))
|
||||||
self.LocationFooterGroupBox.setTitle(self.trUtf8('Display Location'))
|
self.LocationFooterGroupBox.setTitle(translate('AmendThemeForm', 'Display Location'))
|
||||||
self.FontFooterDefaultLabel.setText(self.trUtf8('Use Default Location:'))
|
self.FontFooterDefaultLabel.setText(translate('AmendThemeForm', 'Use Default Location:'))
|
||||||
self.FontFooterXLabel.setText(self.trUtf8('X Position:'))
|
self.FontFooterXLabel.setText(translate('AmendThemeForm', 'X Position:'))
|
||||||
self.FontFooterYLabel.setText(self.trUtf8('Y Position:'))
|
self.FontFooterYLabel.setText(translate('AmendThemeForm', 'Y Position:'))
|
||||||
self.FontFooterWidthLabel.setText(self.trUtf8('Width:'))
|
self.FontFooterWidthLabel.setText(translate('AmendThemeForm', 'Width:'))
|
||||||
self.FontFooterHeightLabel.setText(self.trUtf8('Height:'))
|
self.FontFooterHeightLabel.setText(translate('AmendThemeForm', 'Height:'))
|
||||||
self.FontFooterXSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontFooterXSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.FontFooterYSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontFooterYSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.FontFooterWidthSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontFooterWidthSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.FontFooterHeightSpinBox.setSuffix(self.trUtf8('px'))
|
self.FontFooterHeightSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.ThemeTabWidget.setTabText(
|
self.ThemeTabWidget.setTabText(
|
||||||
self.ThemeTabWidget.indexOf(self.FontFooterTab),
|
self.ThemeTabWidget.indexOf(self.FontFooterTab),
|
||||||
self.trUtf8('Font Footer'))
|
translate('AmendThemeForm', 'Font Footer'))
|
||||||
self.OutlineGroupBox.setTitle(self.trUtf8('Outline'))
|
self.OutlineGroupBox.setTitle(translate('AmendThemeForm', 'Outline'))
|
||||||
self.OutlineSpinBoxLabel.setText(self.trUtf8('Outline Size:'))
|
self.OutlineSpinBoxLabel.setText(translate('AmendThemeForm', 'Outline Size:'))
|
||||||
self.OutlineSpinBox.setSuffix(self.trUtf8('px'))
|
self.OutlineSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.OutlineColorLabel.setText(self.trUtf8('Outline Color:'))
|
self.OutlineColorLabel.setText(translate('AmendThemeForm', 'Outline Color:'))
|
||||||
self.OutlineEnabledLabel.setText(self.trUtf8('Show Outline:'))
|
self.OutlineEnabledLabel.setText(translate('AmendThemeForm', 'Show Outline:'))
|
||||||
self.ShadowGroupBox.setTitle(self.trUtf8('Shadow'))
|
self.ShadowGroupBox.setTitle(translate('AmendThemeForm', 'Shadow'))
|
||||||
self.ShadowSpinBoxLabel.setText(self.trUtf8('Shadow Size:'))
|
self.ShadowSpinBoxLabel.setText(translate('AmendThemeForm', 'Shadow Size:'))
|
||||||
self.ShadowSpinBox.setSuffix(self.trUtf8('px'))
|
self.ShadowSpinBox.setSuffix(translate('AmendThemeForm', 'px'))
|
||||||
self.ShadowColorLabel.setText(self.trUtf8('Shadow Color:'))
|
self.ShadowColorLabel.setText(translate('AmendThemeForm', 'Shadow Color:'))
|
||||||
self.ShadowEnabledLabel.setText(self.trUtf8('Show Shadow:'))
|
self.ShadowEnabledLabel.setText(translate('AmendThemeForm', 'Show Shadow:'))
|
||||||
self.AlignmentGroupBox.setTitle(self.trUtf8('Alignment'))
|
self.AlignmentGroupBox.setTitle(translate('AmendThemeForm', 'Alignment'))
|
||||||
self.HorizontalLabel.setText(self.trUtf8('Horizontal Align:'))
|
self.HorizontalLabel.setText(translate('AmendThemeForm', 'Horizontal Align:'))
|
||||||
self.HorizontalComboBox.setItemText(0, self.trUtf8('Left'))
|
self.HorizontalComboBox.setItemText(0, translate('AmendThemeForm', 'Left'))
|
||||||
self.HorizontalComboBox.setItemText(1, self.trUtf8('Right'))
|
self.HorizontalComboBox.setItemText(1, translate('AmendThemeForm', 'Right'))
|
||||||
self.HorizontalComboBox.setItemText(2, self.trUtf8('Center'))
|
self.HorizontalComboBox.setItemText(2, translate('AmendThemeForm', 'Center'))
|
||||||
self.VerticalLabel.setText(self.trUtf8('Vertical Align:'))
|
self.VerticalLabel.setText(translate('AmendThemeForm', 'Vertical Align:'))
|
||||||
self.VerticalComboBox.setItemText(0, self.trUtf8('Top'))
|
self.VerticalComboBox.setItemText(0, translate('AmendThemeForm', 'Top'))
|
||||||
self.VerticalComboBox.setItemText(1, self.trUtf8('Middle'))
|
self.VerticalComboBox.setItemText(1, translate('AmendThemeForm', 'Middle'))
|
||||||
self.VerticalComboBox.setItemText(2, self.trUtf8('Bottom'))
|
self.VerticalComboBox.setItemText(2, translate('AmendThemeForm', 'Bottom'))
|
||||||
self.TransitionGroupBox.setTitle(self.trUtf8('Slide Transition'))
|
self.TransitionGroupBox.setTitle(translate('AmendThemeForm', 'Slide Transition'))
|
||||||
self.SlideTransitionCheckedBoxLabel.setText(self.trUtf8('Transition Active:'))
|
self.SlideTransitionCheckedBoxLabel.setText(translate('AmendThemeForm', 'Transition Active:'))
|
||||||
self.ThemeTabWidget.setTabText(
|
self.ThemeTabWidget.setTabText(
|
||||||
self.ThemeTabWidget.indexOf(self.OtherOptionsTab),
|
self.ThemeTabWidget.indexOf(self.OtherOptionsTab),
|
||||||
self.trUtf8('Other Options'))
|
translate('AmendThemeForm', 'Other Options'))
|
||||||
self.PreviewGroupBox.setTitle(self.trUtf8('Preview'))
|
self.PreviewGroupBox.setTitle(translate('AmendThemeForm', 'Preview'))
|
||||||
|
|
|
@ -31,8 +31,8 @@ from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \
|
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \
|
||||||
ThemeManager, SlideController, PluginForm, MediaDockManager, DisplayManager
|
ThemeManager, SlideController, PluginForm, MediaDockManager, DisplayManager
|
||||||
from openlp.core.lib import RenderManager, build_icon, OpenLPDockWidget, \
|
from openlp.core.lib import RenderManager, build_icon, OpenLPDockWidget, \
|
||||||
SettingsManager, PluginManager, Receiver
|
SettingsManager, PluginManager, Receiver, translate
|
||||||
from openlp.core.utils import check_latest_version, AppLocation, add_actions
|
from openlp.core.utils import check_latest_version, AppLocation, add_actions, LanguageManager
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -252,10 +252,22 @@ class Ui_MainWindow(object):
|
||||||
self.HelpOnlineHelpItem.setEnabled(False)
|
self.HelpOnlineHelpItem.setEnabled(False)
|
||||||
self.HelpWebSiteItem = QtGui.QAction(MainWindow)
|
self.HelpWebSiteItem = QtGui.QAction(MainWindow)
|
||||||
self.HelpWebSiteItem.setObjectName(u'HelpWebSiteItem')
|
self.HelpWebSiteItem.setObjectName(u'HelpWebSiteItem')
|
||||||
self.LanguageTranslateItem = QtGui.QAction(MainWindow)
|
#i18n Language Items
|
||||||
self.LanguageTranslateItem.setObjectName(u'LanguageTranslateItem')
|
self.AutoLanguageItem = QtGui.QAction(MainWindow)
|
||||||
self.LanguageEnglishItem = QtGui.QAction(MainWindow)
|
self.AutoLanguageItem.setObjectName(u'AutoLanguageItem')
|
||||||
self.LanguageEnglishItem.setObjectName(u'LanguageEnglishItem')
|
self.AutoLanguageItem.setCheckable(True)
|
||||||
|
self.LanguageGroup = QtGui.QActionGroup(MainWindow)
|
||||||
|
qmList = LanguageManager.get_qm_list()
|
||||||
|
savedLanguage = LanguageManager.get_language()
|
||||||
|
self.AutoLanguageItem.setChecked(LanguageManager.AutoLanguage)
|
||||||
|
for key in sorted(qmList.keys()):
|
||||||
|
languageItem = QtGui.QAction(MainWindow)
|
||||||
|
languageItem.setObjectName(key)
|
||||||
|
languageItem.setCheckable(True)
|
||||||
|
if qmList[key] == savedLanguage:
|
||||||
|
languageItem.setChecked(True)
|
||||||
|
add_actions(self.LanguageGroup, [languageItem])
|
||||||
|
self.LanguageGroup.setDisabled(LanguageManager.AutoLanguage)
|
||||||
self.ToolsAddToolItem = QtGui.QAction(MainWindow)
|
self.ToolsAddToolItem = QtGui.QAction(MainWindow)
|
||||||
AddToolIcon = build_icon(u':/tools/tools_add.png')
|
AddToolIcon = build_icon(u':/tools/tools_add.png')
|
||||||
self.ToolsAddToolItem.setIcon(AddToolIcon)
|
self.ToolsAddToolItem.setIcon(AddToolIcon)
|
||||||
|
@ -281,8 +293,9 @@ class Ui_MainWindow(object):
|
||||||
add_actions(self.OptionsViewMenu, (self.ViewModeMenu.menuAction(),
|
add_actions(self.OptionsViewMenu, (self.ViewModeMenu.menuAction(),
|
||||||
None, self.ViewMediaManagerItem, self.ViewServiceManagerItem,
|
None, self.ViewMediaManagerItem, self.ViewServiceManagerItem,
|
||||||
self.ViewThemeManagerItem, None, self.action_Preview_Panel))
|
self.ViewThemeManagerItem, None, self.action_Preview_Panel))
|
||||||
add_actions(self.OptionsLanguageMenu, (self.LanguageEnglishItem, None,
|
#i18n add Language Actions
|
||||||
self.LanguageTranslateItem))
|
add_actions(self.OptionsLanguageMenu, (self.AutoLanguageItem, None))
|
||||||
|
add_actions(self.OptionsLanguageMenu, self.LanguageGroup.actions())
|
||||||
add_actions(self.OptionsMenu, (self.OptionsLanguageMenu.menuAction(),
|
add_actions(self.OptionsMenu, (self.OptionsLanguageMenu.menuAction(),
|
||||||
self.OptionsViewMenu.menuAction(), None, self.OptionsSettingsItem))
|
self.OptionsViewMenu.menuAction(), None, self.OptionsSettingsItem))
|
||||||
add_actions(self.ToolsMenu,
|
add_actions(self.ToolsMenu,
|
||||||
|
@ -316,98 +329,101 @@ class Ui_MainWindow(object):
|
||||||
"""
|
"""
|
||||||
Set up the translation system
|
Set up the translation system
|
||||||
"""
|
"""
|
||||||
MainWindow.mainTitle = self.trUtf8('OpenLP 2.0')
|
MainWindow.mainTitle = translate('MainWindow', 'OpenLP 2.0')
|
||||||
MainWindow.defaultThemeText = self.trUtf8(
|
MainWindow.language = translate('MainWindow', 'English')
|
||||||
|
MainWindow.defaultThemeText = translate('MainWindow',
|
||||||
'Default Theme: ')
|
'Default Theme: ')
|
||||||
MainWindow.setWindowTitle(MainWindow.mainTitle)
|
MainWindow.setWindowTitle(MainWindow.mainTitle)
|
||||||
self.FileMenu.setTitle(self.trUtf8('&File'))
|
self.FileMenu.setTitle(translate('MainWindow', '&File'))
|
||||||
self.FileImportMenu.setTitle(self.trUtf8('&Import'))
|
self.FileImportMenu.setTitle(translate('MainWindow', '&Import'))
|
||||||
self.FileExportMenu.setTitle(self.trUtf8('&Export'))
|
self.FileExportMenu.setTitle(translate('MainWindow', '&Export'))
|
||||||
self.OptionsMenu.setTitle(self.trUtf8('&Options'))
|
self.OptionsMenu.setTitle(translate('MainWindow', '&Options'))
|
||||||
self.OptionsViewMenu.setTitle(self.trUtf8('&View'))
|
self.OptionsViewMenu.setTitle(translate('MainWindow', '&View'))
|
||||||
self.ViewModeMenu.setTitle(self.trUtf8('M&ode'))
|
self.ViewModeMenu.setTitle(translate('MainWindow', 'M&ode'))
|
||||||
self.OptionsLanguageMenu.setTitle(self.trUtf8(
|
self.OptionsLanguageMenu.setTitle(translate('MainWindow',
|
||||||
u'&Language'))
|
u'&Language'))
|
||||||
self.ToolsMenu.setTitle(self.trUtf8('&Tools'))
|
self.ToolsMenu.setTitle(translate('MainWindow', '&Tools'))
|
||||||
self.HelpMenu.setTitle(self.trUtf8('&Help'))
|
self.HelpMenu.setTitle(translate('MainWindow', '&Help'))
|
||||||
self.MediaManagerDock.setWindowTitle(
|
self.MediaManagerDock.setWindowTitle(
|
||||||
self.trUtf8('Media Manager'))
|
translate('MainWindow', 'Media Manager'))
|
||||||
self.ServiceManagerDock.setWindowTitle(
|
self.ServiceManagerDock.setWindowTitle(
|
||||||
self.trUtf8('Service Manager'))
|
translate('MainWindow', 'Service Manager'))
|
||||||
self.ThemeManagerDock.setWindowTitle(
|
self.ThemeManagerDock.setWindowTitle(
|
||||||
self.trUtf8('Theme Manager'))
|
translate('MainWindow', 'Theme Manager'))
|
||||||
self.FileNewItem.setText(self.trUtf8('&New'))
|
self.FileNewItem.setText(translate('MainWindow', '&New'))
|
||||||
self.FileNewItem.setToolTip(self.trUtf8('New Service'))
|
self.FileNewItem.setToolTip(translate('MainWindow', 'New Service'))
|
||||||
self.FileNewItem.setStatusTip(self.trUtf8('Create a new Service'))
|
self.FileNewItem.setStatusTip(translate('MainWindow', 'Create a new Service'))
|
||||||
self.FileNewItem.setShortcut(self.trUtf8('Ctrl+N'))
|
self.FileNewItem.setShortcut(translate('MainWindow', 'Ctrl+N'))
|
||||||
self.FileOpenItem.setText(self.trUtf8('&Open'))
|
self.FileOpenItem.setText(translate('MainWindow', '&Open'))
|
||||||
self.FileOpenItem.setToolTip(self.trUtf8('Open Service'))
|
self.FileOpenItem.setToolTip(translate('MainWindow', 'Open Service'))
|
||||||
self.FileOpenItem.setStatusTip(self.trUtf8('Open an existing service'))
|
self.FileOpenItem.setStatusTip(translate('MainWindow', 'Open an existing service'))
|
||||||
self.FileOpenItem.setShortcut(self.trUtf8('Ctrl+O'))
|
self.FileOpenItem.setShortcut(translate('MainWindow', 'Ctrl+O'))
|
||||||
self.FileSaveItem.setText(self.trUtf8('&Save'))
|
self.FileSaveItem.setText(translate('MainWindow', '&Save'))
|
||||||
self.FileSaveItem.setToolTip(self.trUtf8('Save Service'))
|
self.FileSaveItem.setToolTip(translate('MainWindow', 'Save Service'))
|
||||||
self.FileSaveItem.setStatusTip(
|
self.FileSaveItem.setStatusTip(
|
||||||
self.trUtf8('Save the current service to disk'))
|
translate('MainWindow', 'Save the current service to disk'))
|
||||||
self.FileSaveItem.setShortcut(self.trUtf8('Ctrl+S'))
|
self.FileSaveItem.setShortcut(translate('MainWindow', 'Ctrl+S'))
|
||||||
self.FileSaveAsItem.setText(self.trUtf8('Save &As...'))
|
self.FileSaveAsItem.setText(translate('MainWindow', 'Save &As...'))
|
||||||
self.FileSaveAsItem.setToolTip(self.trUtf8('Save Service As'))
|
self.FileSaveAsItem.setToolTip(translate('MainWindow', 'Save Service As'))
|
||||||
self.FileSaveAsItem.setStatusTip(
|
self.FileSaveAsItem.setStatusTip(
|
||||||
self.trUtf8('Save the current service under a new name'))
|
translate('MainWindow', 'Save the current service under a new name'))
|
||||||
self.FileSaveAsItem.setShortcut(self.trUtf8('F12'))
|
self.FileSaveAsItem.setShortcut(translate('MainWindow', 'F12'))
|
||||||
self.FileExitItem.setText(self.trUtf8('E&xit'))
|
self.FileExitItem.setText(translate('MainWindow', 'E&xit'))
|
||||||
self.FileExitItem.setStatusTip(self.trUtf8('Quit OpenLP'))
|
self.FileExitItem.setStatusTip(translate('MainWindow', 'Quit OpenLP'))
|
||||||
self.FileExitItem.setShortcut(self.trUtf8('Alt+F4'))
|
self.FileExitItem.setShortcut(translate('MainWindow', 'Alt+F4'))
|
||||||
self.ImportThemeItem.setText(self.trUtf8('&Theme'))
|
self.ImportThemeItem.setText(translate('MainWindow', '&Theme'))
|
||||||
self.ImportLanguageItem.setText(self.trUtf8('&Language'))
|
self.ImportLanguageItem.setText(translate('MainWindow', '&Language'))
|
||||||
self.ExportThemeItem.setText(self.trUtf8('&Theme'))
|
self.ExportThemeItem.setText(translate('MainWindow', '&Theme'))
|
||||||
self.ExportLanguageItem.setText(self.trUtf8('&Language'))
|
self.ExportLanguageItem.setText(translate('MainWindow', '&Language'))
|
||||||
self.actionLook_Feel.setText(self.trUtf8('Look && &Feel'))
|
self.actionLook_Feel.setText(translate('MainWindow', 'Look && &Feel'))
|
||||||
self.OptionsSettingsItem.setText(self.trUtf8('&Settings'))
|
self.OptionsSettingsItem.setText(translate('MainWindow', '&Settings'))
|
||||||
self.ViewMediaManagerItem.setText(self.trUtf8('&Media Manager'))
|
self.ViewMediaManagerItem.setText(translate('MainWindow', '&Media Manager'))
|
||||||
self.ViewMediaManagerItem.setToolTip(
|
self.ViewMediaManagerItem.setToolTip(
|
||||||
self.trUtf8('Toggle Media Manager'))
|
translate('MainWindow', 'Toggle Media Manager'))
|
||||||
self.ViewMediaManagerItem.setStatusTip(
|
self.ViewMediaManagerItem.setStatusTip(
|
||||||
self.trUtf8('Toggle the visibility of the Media Manager'))
|
translate('MainWindow', 'Toggle the visibility of the Media Manager'))
|
||||||
self.ViewMediaManagerItem.setShortcut(self.trUtf8('F8'))
|
self.ViewMediaManagerItem.setShortcut(translate('MainWindow', 'F8'))
|
||||||
self.ViewThemeManagerItem.setText(self.trUtf8('&Theme Manager'))
|
self.ViewThemeManagerItem.setText(translate('MainWindow', '&Theme Manager'))
|
||||||
self.ViewThemeManagerItem.setToolTip(
|
self.ViewThemeManagerItem.setToolTip(
|
||||||
self.trUtf8('Toggle Theme Manager'))
|
translate('MainWindow', 'Toggle Theme Manager'))
|
||||||
self.ViewThemeManagerItem.setStatusTip(
|
self.ViewThemeManagerItem.setStatusTip(
|
||||||
self.trUtf8('Toggle the visibility of the Theme Manager'))
|
translate('MainWindow', 'Toggle the visibility of the Theme Manager'))
|
||||||
self.ViewThemeManagerItem.setShortcut(self.trUtf8('F10'))
|
self.ViewThemeManagerItem.setShortcut(translate('MainWindow', 'F10'))
|
||||||
self.ViewServiceManagerItem.setText(self.trUtf8('&Service Manager'))
|
self.ViewServiceManagerItem.setText(translate('MainWindow', '&Service Manager'))
|
||||||
self.ViewServiceManagerItem.setToolTip(
|
self.ViewServiceManagerItem.setToolTip(
|
||||||
self.trUtf8('Toggle Service Manager'))
|
translate('MainWindow', 'Toggle Service Manager'))
|
||||||
self.ViewServiceManagerItem.setStatusTip(
|
self.ViewServiceManagerItem.setStatusTip(
|
||||||
self.trUtf8('Toggle the visibility of the Service Manager'))
|
translate('MainWindow', 'Toggle the visibility of the Service Manager'))
|
||||||
self.ViewServiceManagerItem.setShortcut(self.trUtf8('F9'))
|
self.ViewServiceManagerItem.setShortcut(translate('MainWindow', 'F9'))
|
||||||
self.action_Preview_Panel.setText(self.trUtf8('&Preview Panel'))
|
self.action_Preview_Panel.setText(translate('MainWindow', '&Preview Panel'))
|
||||||
self.action_Preview_Panel.setToolTip(
|
self.action_Preview_Panel.setToolTip(
|
||||||
self.trUtf8('Toggle Preview Panel'))
|
translate('MainWindow', 'Toggle Preview Panel'))
|
||||||
self.action_Preview_Panel.setStatusTip(
|
self.action_Preview_Panel.setStatusTip(
|
||||||
self.trUtf8('Toggle the visibility of the Preview Panel'))
|
translate('MainWindow', 'Toggle the visibility of the Preview Panel'))
|
||||||
self.action_Preview_Panel.setShortcut(self.trUtf8('F11'))
|
self.action_Preview_Panel.setShortcut(translate('MainWindow', 'F11'))
|
||||||
self.PluginItem.setText(self.trUtf8('&Plugin List'))
|
self.PluginItem.setText(translate('MainWindow', '&Plugin List'))
|
||||||
self.PluginItem.setStatusTip(self.trUtf8('List the Plugins'))
|
self.PluginItem.setStatusTip(translate('MainWindow', 'List the Plugins'))
|
||||||
self.PluginItem.setShortcut(self.trUtf8('Alt+F7'))
|
self.PluginItem.setShortcut(translate('MainWindow', 'Alt+F7'))
|
||||||
self.HelpDocumentationItem.setText(self.trUtf8('&User Guide'))
|
self.HelpDocumentationItem.setText(translate('MainWindow', '&User Guide'))
|
||||||
self.HelpAboutItem.setText(self.trUtf8('&About'))
|
self.HelpAboutItem.setText(translate('MainWindow', '&About'))
|
||||||
self.HelpAboutItem.setStatusTip(
|
self.HelpAboutItem.setStatusTip(
|
||||||
self.trUtf8('More information about OpenLP'))
|
translate('MainWindow', 'More information about OpenLP'))
|
||||||
self.HelpAboutItem.setShortcut(self.trUtf8('Ctrl+F1'))
|
self.HelpAboutItem.setShortcut(translate('MainWindow', 'Ctrl+F1'))
|
||||||
self.HelpOnlineHelpItem.setText(self.trUtf8('&Online Help'))
|
self.HelpOnlineHelpItem.setText(translate('MainWindow', '&Online Help'))
|
||||||
self.HelpWebSiteItem.setText(self.trUtf8('&Web Site'))
|
self.HelpWebSiteItem.setText(translate('MainWindow', '&Web Site'))
|
||||||
self.LanguageTranslateItem.setText(self.trUtf8('&Translate'))
|
#i18n
|
||||||
self.LanguageTranslateItem.setStatusTip(
|
self.AutoLanguageItem.setText(translate('MainWindow', '&Auto Detect'))
|
||||||
self.trUtf8('Translate the interface to your language'))
|
self.AutoLanguageItem.setStatusTip(
|
||||||
self.LanguageEnglishItem.setText(self.trUtf8('English'))
|
translate('MainWindow', 'Choose System language, if available'))
|
||||||
self.LanguageEnglishItem.setStatusTip(
|
for item in self.LanguageGroup.actions():
|
||||||
self.trUtf8('Set the interface language to English'))
|
item.setText(item.objectName())
|
||||||
self.ToolsAddToolItem.setText(self.trUtf8('Add &Tool...'))
|
item.setStatusTip(
|
||||||
|
translate('MainWindow', 'Set the interface language to %1').arg(item.objectName()))
|
||||||
|
self.ToolsAddToolItem.setText(translate('MainWindow', 'Add &Tool...'))
|
||||||
self.ToolsAddToolItem.setStatusTip(
|
self.ToolsAddToolItem.setStatusTip(
|
||||||
self.trUtf8('Add an application to the list of tools'))
|
translate('MainWindow', 'Add an application to the list of tools'))
|
||||||
self.action_Preview_Panel.setText(self.trUtf8('&Preview Pane'))
|
self.action_Preview_Panel.setText(translate('MainWindow', '&Preview Pane'))
|
||||||
self.ModeLiveItem.setText(self.trUtf8('&Live'))
|
self.ModeLiveItem.setText(translate('MainWindow', '&Live'))
|
||||||
|
|
||||||
|
|
||||||
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
|
@ -508,6 +524,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
QtCore.QObject.connect(self.FileSaveAsItem,
|
QtCore.QObject.connect(self.FileSaveAsItem,
|
||||||
QtCore.SIGNAL(u'triggered()'),
|
QtCore.SIGNAL(u'triggered()'),
|
||||||
self.ServiceManagerContents.onSaveService)
|
self.ServiceManagerContents.onSaveService)
|
||||||
|
#i18n set signals for languages
|
||||||
|
QtCore.QObject.connect(self.AutoLanguageItem,
|
||||||
|
QtCore.SIGNAL(u'toggled(bool)'),
|
||||||
|
self.setAutoLanguage)
|
||||||
|
self.LanguageGroup.triggered.connect(LanguageManager.set_language)
|
||||||
#warning cyclic dependency
|
#warning cyclic dependency
|
||||||
#RenderManager needs to call ThemeManager and
|
#RenderManager needs to call ThemeManager and
|
||||||
#ThemeManager needs to call RenderManager
|
#ThemeManager needs to call RenderManager
|
||||||
|
@ -550,6 +571,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
log.info(u'Load data from Settings')
|
log.info(u'Load data from Settings')
|
||||||
self.settingsForm.postSetUp()
|
self.settingsForm.postSetUp()
|
||||||
|
|
||||||
|
#i18n
|
||||||
|
def setAutoLanguage(self, value):
|
||||||
|
self.LanguageGroup.setDisabled(value)
|
||||||
|
LanguageManager.AutoLanguage = value
|
||||||
|
LanguageManager.set_language(self.LanguageGroup.checkedAction())
|
||||||
|
|
||||||
def versionCheck(self, version):
|
def versionCheck(self, version):
|
||||||
"""
|
"""
|
||||||
Checks the version of the Application called from openlp.pyw
|
Checks the version of the Application called from openlp.pyw
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_PluginViewDialog(object):
|
class Ui_PluginViewDialog(object):
|
||||||
def setupUi(self, PluginViewDialog):
|
def setupUi(self, PluginViewDialog):
|
||||||
|
@ -98,11 +99,11 @@ class Ui_PluginViewDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(PluginViewDialog)
|
QtCore.QMetaObject.connectSlotsByName(PluginViewDialog)
|
||||||
|
|
||||||
def retranslateUi(self, PluginViewDialog):
|
def retranslateUi(self, PluginViewDialog):
|
||||||
PluginViewDialog.setWindowTitle(self.trUtf8('Plugin List'))
|
PluginViewDialog.setWindowTitle(translate('PluginForm', 'Plugin List'))
|
||||||
self.PluginInfoGroupBox.setTitle(self.trUtf8('Plugin Details'))
|
self.PluginInfoGroupBox.setTitle(translate('PluginForm', 'Plugin Details'))
|
||||||
self.VersionLabel.setText(self.trUtf8('Version:'))
|
self.VersionLabel.setText(translate('PluginForm', 'Version:'))
|
||||||
self.VersionNumberLabel.setText(self.trUtf8('TextLabel'))
|
self.VersionNumberLabel.setText(translate('PluginForm', 'TextLabel'))
|
||||||
self.AboutLabel.setText(self.trUtf8('About:'))
|
self.AboutLabel.setText(translate('PluginForm', 'About:'))
|
||||||
self.StatusLabel.setText(self.trUtf8('Status:'))
|
self.StatusLabel.setText(translate('PluginForm', 'Status:'))
|
||||||
self.StatusComboBox.setItemText(0, self.trUtf8('Active'))
|
self.StatusComboBox.setItemText(0, translate('PluginForm', 'Active'))
|
||||||
self.StatusComboBox.setItemText(1, self.trUtf8('Inactive'))
|
self.StatusComboBox.setItemText(1, translate('PluginForm', 'Inactive'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_ServiceItemEditDialog(object):
|
class Ui_ServiceItemEditDialog(object):
|
||||||
def setupUi(self, ServiceItemEditDialog):
|
def setupUi(self, ServiceItemEditDialog):
|
||||||
|
@ -66,8 +67,8 @@ class Ui_ServiceItemEditDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(ServiceItemEditDialog)
|
QtCore.QMetaObject.connectSlotsByName(ServiceItemEditDialog)
|
||||||
|
|
||||||
def retranslateUi(self, ServiceItemEditDialog):
|
def retranslateUi(self, ServiceItemEditDialog):
|
||||||
ServiceItemEditDialog.setWindowTitle(self.trUtf8('Service Item Maintenance'))
|
ServiceItemEditDialog.setWindowTitle(translate('ServiceItemEditForm', 'Service Item Maintenance'))
|
||||||
self.upButton.setText(self.trUtf8('Up'))
|
self.upButton.setText(translate('ServiceItemEditForm', 'Up'))
|
||||||
self.deleteButton.setText(self.trUtf8('Delete'))
|
self.deleteButton.setText(translate('ServiceItemEditForm', 'Delete'))
|
||||||
self.downButton.setText(self.trUtf8('Down'))
|
self.downButton.setText(translate('ServiceItemEditForm', 'Down'))
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_ServiceNoteEdit(object):
|
class Ui_ServiceNoteEdit(object):
|
||||||
def setupUi(self, ServiceNoteEdit):
|
def setupUi(self, ServiceNoteEdit):
|
||||||
|
@ -46,4 +47,4 @@ class Ui_ServiceNoteEdit(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(ServiceNoteEdit)
|
QtCore.QMetaObject.connectSlotsByName(ServiceNoteEdit)
|
||||||
|
|
||||||
def retranslateUi(self, ServiceNoteEdit):
|
def retranslateUi(self, ServiceNoteEdit):
|
||||||
ServiceNoteEdit.setWindowTitle(self.trUtf8('Service Item Notes'))
|
ServiceNoteEdit.setWindowTitle(translate('ServiceNoteForm', 'Service Item Notes'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_SettingsDialog(object):
|
class Ui_SettingsDialog(object):
|
||||||
def setupUi(self, SettingsDialog):
|
def setupUi(self, SettingsDialog):
|
||||||
|
@ -59,4 +60,4 @@ class Ui_SettingsDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(SettingsDialog)
|
QtCore.QMetaObject.connectSlotsByName(SettingsDialog)
|
||||||
|
|
||||||
def retranslateUi(self, SettingsDialog):
|
def retranslateUi(self, SettingsDialog):
|
||||||
SettingsDialog.setWindowTitle(self.trUtf8('Settings'))
|
SettingsDialog.setWindowTitle(translate('SettingsForm', 'Settings'))
|
||||||
|
|
|
@ -184,4 +184,6 @@ def add_actions(target, actions):
|
||||||
else:
|
else:
|
||||||
target.addAction(action)
|
target.addAction(action)
|
||||||
|
|
||||||
__all__ = [u'AppLocation', u'check_latest_version', u'add_actions']
|
from languagemanager import LanguageManager
|
||||||
|
|
||||||
|
__all__ = [u'AppLocation', u'check_latest_version', u'add_actions', u'LanguageManager']
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2010 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
|
||||||
|
# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin #
|
||||||
|
# Thompson, Jon Tibble, Carsten Tinggaard #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# This program is free software; you can redistribute it and/or modify it #
|
||||||
|
# under the terms of the GNU General Public License as published by the Free #
|
||||||
|
# Software Foundation; version 2 of the License. #
|
||||||
|
# #
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||||
|
# more details. #
|
||||||
|
# #
|
||||||
|
# You should have received a copy of the GNU General Public License along #
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||||
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.utils import AppLocation
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
|
log = logging.getLogger()
|
||||||
|
|
||||||
|
class LanguageManager(object):
|
||||||
|
"""
|
||||||
|
Helper for Language selection
|
||||||
|
"""
|
||||||
|
__qmList__ = None
|
||||||
|
AutoLanguage = False
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_translator(language):
|
||||||
|
if LanguageManager.AutoLanguage :
|
||||||
|
language = QtCore.QLocale.system().name()
|
||||||
|
lang_Path = AppLocation.get_directory(AppLocation.AppDir)
|
||||||
|
lang_Path = os.path.join(lang_Path, u'resources', u'i18n')
|
||||||
|
appTranslator = QtCore.QTranslator()
|
||||||
|
if appTranslator.load("openlp_" + language, lang_Path):
|
||||||
|
return appTranslator
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def find_qm_files():
|
||||||
|
trans_dir = AppLocation.get_directory(AppLocation.AppDir)
|
||||||
|
trans_dir = QtCore.QDir(os.path.join(trans_dir, u'resources', u'i18n'))
|
||||||
|
fileNames = trans_dir.entryList(QtCore.QStringList("*.qm"),
|
||||||
|
QtCore.QDir.Files, QtCore.QDir.Name)
|
||||||
|
for i in fileNames:
|
||||||
|
fileNames.replaceInStrings(i, trans_dir.filePath(i))
|
||||||
|
return fileNames
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def language_name(qmFile):
|
||||||
|
translator = QtCore.QTranslator()
|
||||||
|
translator.load(qmFile)
|
||||||
|
return translator.translate(u'MainWindow', u'English')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_language():
|
||||||
|
settings = QtCore.QSettings(u'OpenLP', u'OpenLP')
|
||||||
|
language = unicode(settings.value(
|
||||||
|
u'general/language', QtCore.QVariant(u'[en]')).toString())
|
||||||
|
log.info(u'Language file: \'%s\' Loaded from conf file' % language)
|
||||||
|
regEx = QtCore.QRegExp("^\[(.*)\]")
|
||||||
|
if regEx.exactMatch(language):
|
||||||
|
LanguageManager.AutoLanguage = True
|
||||||
|
language = regEx.cap(1)
|
||||||
|
return language
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def set_language(action):
|
||||||
|
actionName = u'%s' % action.objectName()
|
||||||
|
qmList = LanguageManager.get_qm_list()
|
||||||
|
if LanguageManager.AutoLanguage :
|
||||||
|
language = u'[%s]' % qmList[actionName]
|
||||||
|
else:
|
||||||
|
language = u'%s' % qmList[actionName]
|
||||||
|
QtCore.QSettings().setValue(
|
||||||
|
u'general/language', QtCore.QVariant(language))
|
||||||
|
log.info(u'Language file: \'%s\' written to conf file' % language)
|
||||||
|
QtGui.QMessageBox.information(None,
|
||||||
|
translate('LanguageManager', 'Language'),
|
||||||
|
translate('LanguageManager',
|
||||||
|
'After restart new Language settings will be used.'))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def init_qm_list():
|
||||||
|
LanguageManager.__qmList__ = {}
|
||||||
|
qmFiles = LanguageManager.find_qm_files()
|
||||||
|
for i, qmf in enumerate(qmFiles):
|
||||||
|
regEx = QtCore.QRegExp("^.*openlp_(.*).qm")
|
||||||
|
if regEx.exactMatch(qmf):
|
||||||
|
langName = regEx.cap(1)
|
||||||
|
LanguageManager.__qmList__[u'%#2i %s' % (i+1,
|
||||||
|
LanguageManager.language_name(qmf))] = langName
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_qm_list():
|
||||||
|
if LanguageManager.__qmList__ == None:
|
||||||
|
LanguageManager.init_qm_list()
|
||||||
|
return LanguageManager.__qmList__
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_AlertDialog(object):
|
class Ui_AlertDialog(object):
|
||||||
def setupUi(self, AlertDialog):
|
def setupUi(self, AlertDialog):
|
||||||
|
@ -32,10 +33,10 @@ class Ui_AlertDialog(object):
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
AlertDialog.setWindowIcon(icon)
|
AlertDialog.setWindowIcon(icon)
|
||||||
self.AlertFormLayout = QtGui.QVBoxLayout(AlertDialog)
|
self.AlertDialogLayout = QtGui.QVBoxLayout(AlertDialog)
|
||||||
self.AlertFormLayout.setSpacing(8)
|
self.AlertDialogLayout.setSpacing(8)
|
||||||
self.AlertFormLayout.setMargin(8)
|
self.AlertDialogLayout.setMargin(8)
|
||||||
self.AlertFormLayout.setObjectName(u'AlertFormLayout')
|
self.AlertDialogLayout.setObjectName(u'AlertDialogLayout')
|
||||||
self.AlertTextLayout = QtGui.QFormLayout()
|
self.AlertTextLayout = QtGui.QFormLayout()
|
||||||
self.AlertTextLayout.setContentsMargins(0, 0, -1, -1)
|
self.AlertTextLayout.setContentsMargins(0, 0, -1, -1)
|
||||||
self.AlertTextLayout.setSpacing(8)
|
self.AlertTextLayout.setSpacing(8)
|
||||||
|
@ -57,7 +58,7 @@ class Ui_AlertDialog(object):
|
||||||
self.AlertTextEdit = QtGui.QLineEdit(AlertDialog)
|
self.AlertTextEdit = QtGui.QLineEdit(AlertDialog)
|
||||||
self.AlertTextEdit.setObjectName(u'AlertTextEdit')
|
self.AlertTextEdit.setObjectName(u'AlertTextEdit')
|
||||||
self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.AlertTextEdit)
|
self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.AlertTextEdit)
|
||||||
self.AlertFormLayout.addLayout(self.AlertTextLayout)
|
self.AlertDialogLayout.addLayout(self.AlertTextLayout)
|
||||||
self.ManagementLayout = QtGui.QHBoxLayout()
|
self.ManagementLayout = QtGui.QHBoxLayout()
|
||||||
self.ManagementLayout.setSpacing(8)
|
self.ManagementLayout.setSpacing(8)
|
||||||
self.ManagementLayout.setContentsMargins(-1, -1, -1, 0)
|
self.ManagementLayout.setContentsMargins(-1, -1, -1, 0)
|
||||||
|
@ -91,7 +92,7 @@ class Ui_AlertDialog(object):
|
||||||
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||||
self.ManageButtonLayout.addItem(spacerItem)
|
self.ManageButtonLayout.addItem(spacerItem)
|
||||||
self.ManagementLayout.addLayout(self.ManageButtonLayout)
|
self.ManagementLayout.addLayout(self.ManageButtonLayout)
|
||||||
self.AlertFormLayout.addLayout(self.ManagementLayout)
|
self.AlertDialogLayout.addLayout(self.ManagementLayout)
|
||||||
self.AlertButtonLayout = QtGui.QHBoxLayout()
|
self.AlertButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.AlertButtonLayout.setSpacing(8)
|
self.AlertButtonLayout.setSpacing(8)
|
||||||
self.AlertButtonLayout.setObjectName(u'AlertButtonLayout')
|
self.AlertButtonLayout.setObjectName(u'AlertButtonLayout')
|
||||||
|
@ -116,7 +117,7 @@ class Ui_AlertDialog(object):
|
||||||
self.CloseButton.setIcon(icon5)
|
self.CloseButton.setIcon(icon5)
|
||||||
self.CloseButton.setObjectName(u'CloseButton')
|
self.CloseButton.setObjectName(u'CloseButton')
|
||||||
self.AlertButtonLayout.addWidget(self.CloseButton)
|
self.AlertButtonLayout.addWidget(self.CloseButton)
|
||||||
self.AlertFormLayout.addLayout(self.AlertButtonLayout)
|
self.AlertDialogLayout.addLayout(self.AlertButtonLayout)
|
||||||
self.AlertEntryLabel.setBuddy(self.AlertTextEdit)
|
self.AlertEntryLabel.setBuddy(self.AlertTextEdit)
|
||||||
self.AlertParameter.setBuddy(self.ParameterEdit)
|
self.AlertParameter.setBuddy(self.ParameterEdit)
|
||||||
|
|
||||||
|
@ -133,13 +134,13 @@ class Ui_AlertDialog(object):
|
||||||
AlertDialog.setTabOrder(self.DisplayCloseButton, self.CloseButton)
|
AlertDialog.setTabOrder(self.DisplayCloseButton, self.CloseButton)
|
||||||
|
|
||||||
def retranslateUi(self, AlertDialog):
|
def retranslateUi(self, AlertDialog):
|
||||||
AlertDialog.setWindowTitle(self.trUtf8('Alert Message'))
|
AlertDialog.setWindowTitle(translate('AlertForm', 'Alert Message'))
|
||||||
self.AlertEntryLabel.setText(self.trUtf8('Alert &text:'))
|
self.AlertEntryLabel.setText(translate('AlertForm', 'Alert &text:'))
|
||||||
self.AlertParameter.setText(self.trUtf8('&Parameter(s):'))
|
self.AlertParameter.setText(translate('AlertForm', '&Parameter(s):'))
|
||||||
self.NewButton.setText(self.trUtf8('&New'))
|
self.NewButton.setText(translate('AlertForm', '&New'))
|
||||||
self.SaveButton.setText(self.trUtf8('&Save'))
|
self.SaveButton.setText(translate('AlertForm', '&Save'))
|
||||||
self.DeleteButton.setText(self.trUtf8('&Delete'))
|
self.DeleteButton.setText(translate('AlertForm', '&Delete'))
|
||||||
self.DisplayButton.setText(self.trUtf8('Displ&ay'))
|
self.DisplayButton.setText(translate('AlertForm', 'Displ&ay'))
|
||||||
self.DisplayCloseButton.setText(self.trUtf8('Display && Cl&ose'))
|
self.DisplayCloseButton.setText(translate('AlertForm', 'Display && Cl&ose'))
|
||||||
self.CloseButton.setText(self.trUtf8('&Close'))
|
self.CloseButton.setText(translate('AlertForm', '&Close'))
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_BibleImportWizard(object):
|
class Ui_BibleImportWizard(object):
|
||||||
def setupUi(self, BibleImportWizard):
|
def setupUi(self, BibleImportWizard):
|
||||||
|
@ -307,47 +308,47 @@ class Ui_BibleImportWizard(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(BibleImportWizard)
|
QtCore.QMetaObject.connectSlotsByName(BibleImportWizard)
|
||||||
|
|
||||||
def retranslateUi(self, BibleImportWizard):
|
def retranslateUi(self, BibleImportWizard):
|
||||||
BibleImportWizard.setWindowTitle(self.trUtf8('Bible Import Wizard'))
|
BibleImportWizard.setWindowTitle(translate('ImportWizardForm', 'Bible Import Wizard'))
|
||||||
self.TitleLabel.setText(
|
self.TitleLabel.setText(
|
||||||
u'<span style=\" font-size:14pt; font-weight:600;\">' + \
|
u'<span style=\" font-size:14pt; font-weight:600;\">' + \
|
||||||
self.trUtf8('Welcome to the Bible Import Wizard') + u'</span>')
|
translate('ImportWizardForm', 'Welcome to the Bible Import Wizard') + u'</span>')
|
||||||
self.InformationLabel.setText(
|
self.InformationLabel.setText(
|
||||||
self.trUtf8('This wizard will help you to import Bibles from a '
|
translate('ImportWizardForm', 'This wizard will help you to import Bibles from a '
|
||||||
'variety of formats. Click the next button below to start the '
|
'variety of formats. Click the next button below to start the '
|
||||||
'process by selecting a format to import from.'))
|
'process by selecting a format to import from.'))
|
||||||
self.SelectPage.setTitle(self.trUtf8('Select Import Source'))
|
self.SelectPage.setTitle(translate('ImportWizardForm', 'Select Import Source'))
|
||||||
self.SelectPage.setSubTitle(
|
self.SelectPage.setSubTitle(
|
||||||
self.trUtf8('Select the import format, and where to import from.'))
|
translate('ImportWizardForm', 'Select the import format, and where to import from.'))
|
||||||
self.FormatLabel.setText(self.trUtf8('Format:'))
|
self.FormatLabel.setText(translate('ImportWizardForm', 'Format:'))
|
||||||
self.FormatComboBox.setItemText(0, self.trUtf8('OSIS'))
|
self.FormatComboBox.setItemText(0, translate('ImportWizardForm', 'OSIS'))
|
||||||
self.FormatComboBox.setItemText(1, self.trUtf8('CSV'))
|
self.FormatComboBox.setItemText(1, translate('ImportWizardForm', 'CSV'))
|
||||||
self.FormatComboBox.setItemText(2, self.trUtf8('OpenSong'))
|
self.FormatComboBox.setItemText(2, translate('ImportWizardForm', 'OpenSong'))
|
||||||
self.FormatComboBox.setItemText(3, self.trUtf8('Web Download'))
|
self.FormatComboBox.setItemText(3, translate('ImportWizardForm', 'Web Download'))
|
||||||
self.OsisLocationLabel.setText(self.trUtf8('File Location:'))
|
self.OsisLocationLabel.setText(translate('ImportWizardForm', 'File Location:'))
|
||||||
self.BooksLocationLabel.setText(self.trUtf8('Books Location:'))
|
self.BooksLocationLabel.setText(translate('ImportWizardForm', 'Books Location:'))
|
||||||
self.VerseLocationLabel.setText(self.trUtf8('Verse Location:'))
|
self.VerseLocationLabel.setText(translate('ImportWizardForm', 'Verse Location:'))
|
||||||
self.OpenSongFileLabel.setText(self.trUtf8('Bible Filename:'))
|
self.OpenSongFileLabel.setText(translate('ImportWizardForm', 'Bible Filename:'))
|
||||||
self.LocationLabel.setText(self.trUtf8('Location:'))
|
self.LocationLabel.setText(translate('ImportWizardForm', 'Location:'))
|
||||||
self.LocationComboBox.setItemText(0, self.trUtf8('Crosswalk'))
|
self.LocationComboBox.setItemText(0, translate('ImportWizardForm', 'Crosswalk'))
|
||||||
self.LocationComboBox.setItemText(1, self.trUtf8('BibleGateway'))
|
self.LocationComboBox.setItemText(1, translate('ImportWizardForm', 'BibleGateway'))
|
||||||
self.BibleLabel.setText(self.trUtf8('Bible:'))
|
self.BibleLabel.setText(translate('ImportWizardForm', 'Bible:'))
|
||||||
self.WebDownloadTabWidget.setTabText(
|
self.WebDownloadTabWidget.setTabText(
|
||||||
self.WebDownloadTabWidget.indexOf(self.DownloadOptionsTab),
|
self.WebDownloadTabWidget.indexOf(self.DownloadOptionsTab),
|
||||||
self.trUtf8('Download Options'))
|
translate('ImportWizardForm', 'Download Options'))
|
||||||
self.AddressLabel.setText(self.trUtf8('Server:'))
|
self.AddressLabel.setText(translate('ImportWizardForm', 'Server:'))
|
||||||
self.UsernameLabel.setText(self.trUtf8('Username:'))
|
self.UsernameLabel.setText(translate('ImportWizardForm', 'Username:'))
|
||||||
self.PasswordLabel.setText(self.trUtf8('Password:'))
|
self.PasswordLabel.setText(translate('ImportWizardForm', 'Password:'))
|
||||||
self.WebDownloadTabWidget.setTabText(
|
self.WebDownloadTabWidget.setTabText(
|
||||||
self.WebDownloadTabWidget.indexOf(self.ProxyServerTab),
|
self.WebDownloadTabWidget.indexOf(self.ProxyServerTab),
|
||||||
self.trUtf8('Proxy Server (Optional)'))
|
translate('ImportWizardForm', 'Proxy Server (Optional)'))
|
||||||
self.LicenseDetailsPage.setTitle(self.trUtf8('License Details'))
|
self.LicenseDetailsPage.setTitle(translate('ImportWizardForm', 'License Details'))
|
||||||
self.LicenseDetailsPage.setSubTitle(
|
self.LicenseDetailsPage.setSubTitle(
|
||||||
self.trUtf8('Set up the Bible\'s license details.'))
|
translate('ImportWizardForm', 'Set up the Bible\'s license details.'))
|
||||||
self.VersionNameLabel.setText(self.trUtf8('Version Name:'))
|
self.VersionNameLabel.setText(translate('ImportWizardForm', 'Version Name:'))
|
||||||
self.CopyrightLabel.setText(self.trUtf8('Copyright:'))
|
self.CopyrightLabel.setText(translate('ImportWizardForm', 'Copyright:'))
|
||||||
self.PermissionLabel.setText(self.trUtf8('Permission:'))
|
self.PermissionLabel.setText(translate('ImportWizardForm', 'Permission:'))
|
||||||
self.ImportPage.setTitle(self.trUtf8('Importing'))
|
self.ImportPage.setTitle(translate('ImportWizardForm', 'Importing'))
|
||||||
self.ImportPage.setSubTitle(
|
self.ImportPage.setSubTitle(
|
||||||
self.trUtf8('Please wait while your Bible is imported.'))
|
translate('ImportWizardForm', 'Please wait while your Bible is imported.'))
|
||||||
self.ImportProgressLabel.setText(self.trUtf8('Ready.'))
|
self.ImportProgressLabel.setText(translate('ImportWizardForm', 'Ready.'))
|
||||||
self.ImportProgressBar.setFormat(u'%p%')
|
self.ImportProgressBar.setFormat(u'%p%')
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_customEditDialog(object):
|
class Ui_customEditDialog(object):
|
||||||
def setupUi(self, customEditDialog):
|
def setupUi(self, customEditDialog):
|
||||||
|
@ -152,23 +153,23 @@ class Ui_customEditDialog(object):
|
||||||
customEditDialog.setTabOrder(self.DownButton, self.ThemeComboBox)
|
customEditDialog.setTabOrder(self.DownButton, self.ThemeComboBox)
|
||||||
|
|
||||||
def retranslateUi(self, customEditDialog):
|
def retranslateUi(self, customEditDialog):
|
||||||
customEditDialog.setWindowTitle(self.trUtf8('Edit Custom Slides'))
|
customEditDialog.setWindowTitle(translate('EditCustomForm', 'Edit Custom Slides'))
|
||||||
self.UpButton.setToolTip(self.trUtf8('Move slide Up 1'))
|
self.UpButton.setToolTip(translate('EditCustomForm', 'Move slide Up 1'))
|
||||||
self.DownButton.setToolTip(self.trUtf8('Move slide down 1'))
|
self.DownButton.setToolTip(translate('EditCustomForm', 'Move slide down 1'))
|
||||||
self.TitleLabel.setText(self.trUtf8('Title:'))
|
self.TitleLabel.setText(translate('EditCustomForm', 'Title:'))
|
||||||
self.AddButton.setText(self.trUtf8('Add New'))
|
self.AddButton.setText(translate('EditCustomForm', 'Add New'))
|
||||||
self.AddButton.setToolTip(self.trUtf8('Add new slide at bottom'))
|
self.AddButton.setToolTip(translate('EditCustomForm', 'Add new slide at bottom'))
|
||||||
self.EditButton.setText(self.trUtf8('Edit'))
|
self.EditButton.setText(translate('EditCustomForm', 'Edit'))
|
||||||
self.EditButton.setToolTip(self.trUtf8('Edit selected slide'))
|
self.EditButton.setToolTip(translate('EditCustomForm', 'Edit selected slide'))
|
||||||
self.EditAllButton.setText(self.trUtf8('Edit All'))
|
self.EditAllButton.setText(translate('EditCustomForm', 'Edit All'))
|
||||||
self.EditAllButton.setToolTip(self.trUtf8('Edit all slides'))
|
self.EditAllButton.setToolTip(translate('EditCustomForm', 'Edit all slides'))
|
||||||
self.SaveButton.setText(self.trUtf8('Save'))
|
self.SaveButton.setText(translate('EditCustomForm', 'Save'))
|
||||||
self.SaveButton.setToolTip(self.trUtf8('Replace edited slide'))
|
self.SaveButton.setToolTip(translate('EditCustomForm', 'Replace edited slide'))
|
||||||
self.DeleteButton.setText(self.trUtf8('Delete'))
|
self.DeleteButton.setText(translate('EditCustomForm', 'Delete'))
|
||||||
self.DeleteButton.setToolTip(self.trUtf8('Delete selected slide'))
|
self.DeleteButton.setToolTip(translate('EditCustomForm', 'Delete selected slide'))
|
||||||
self.ClearButton.setText(self.trUtf8('Clear'))
|
self.ClearButton.setText(translate('EditCustomForm', 'Clear'))
|
||||||
self.ClearButton.setToolTip(self.trUtf8('Clear edit area'))
|
self.ClearButton.setToolTip(translate('EditCustomForm', 'Clear edit area'))
|
||||||
self.SplitButton.setText(self.trUtf8('Split Slide'))
|
self.SplitButton.setText(translate('EditCustomForm', 'Split Slide'))
|
||||||
self.SplitButton.setToolTip(self.trUtf8('Add slide split'))
|
self.SplitButton.setToolTip(translate('EditCustomForm', 'Add slide split'))
|
||||||
self.ThemeLabel.setText(self.trUtf8('Theme:'))
|
self.ThemeLabel.setText(translate('EditCustomForm', 'Theme:'))
|
||||||
self.CreditLabel.setText(self.trUtf8('Credits:'))
|
self.CreditLabel.setText(translate('EditCustomForm', 'Credits:'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_AuthorsDialog(object):
|
class Ui_AuthorsDialog(object):
|
||||||
def setupUi(self, AuthorsDialog):
|
def setupUi(self, AuthorsDialog):
|
||||||
|
@ -73,7 +74,7 @@ class Ui_AuthorsDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(AuthorsDialog)
|
QtCore.QMetaObject.connectSlotsByName(AuthorsDialog)
|
||||||
|
|
||||||
def retranslateUi(self, AuthorsDialog):
|
def retranslateUi(self, AuthorsDialog):
|
||||||
AuthorsDialog.setWindowTitle(self.trUtf8('Author Maintenance'))
|
AuthorsDialog.setWindowTitle(translate('AuthorsForm', 'Author Maintenance'))
|
||||||
self.DisplayLabel.setText(self.trUtf8('Display name:'))
|
self.DisplayLabel.setText(translate('AuthorsForm', 'Display name:'))
|
||||||
self.FirstNameLabel.setText(self.trUtf8('First name:'))
|
self.FirstNameLabel.setText(translate('AuthorsForm', 'First name:'))
|
||||||
self.LastNameLabel.setText(self.trUtf8('Last name:'))
|
self.LastNameLabel.setText(translate('AuthorsForm', 'Last name:'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
from openlp.core.lib import build_icon
|
from openlp.core.lib import build_icon
|
||||||
|
|
||||||
|
@ -418,36 +419,36 @@ class Ui_EditSongDialog(object):
|
||||||
EditSongDialog.setTabOrder(self.CommentsEdit, self.ButtonBox)
|
EditSongDialog.setTabOrder(self.CommentsEdit, self.ButtonBox)
|
||||||
|
|
||||||
def retranslateUi(self, EditSongDialog):
|
def retranslateUi(self, EditSongDialog):
|
||||||
EditSongDialog.setWindowTitle(self.trUtf8('Song Editor'))
|
EditSongDialog.setWindowTitle(translate('EditSongForm', 'Song Editor'))
|
||||||
self.TitleLabel.setText(self.trUtf8('Title:'))
|
self.TitleLabel.setText(translate('EditSongForm', 'Title:'))
|
||||||
self.AlternativeTitleLabel.setText(self.trUtf8('Alternative Title:'))
|
self.AlternativeTitleLabel.setText(translate('EditSongForm', 'Alternative Title:'))
|
||||||
self.LyricsLabel.setText(self.trUtf8('Lyrics:'))
|
self.LyricsLabel.setText(translate('EditSongForm', 'Lyrics:'))
|
||||||
self.VerseOrderLabel.setText(self.trUtf8('Verse Order:'))
|
self.VerseOrderLabel.setText(translate('EditSongForm', 'Verse Order:'))
|
||||||
self.VerseAddButton.setText(self.trUtf8('Add'))
|
self.VerseAddButton.setText(translate('EditSongForm', 'Add'))
|
||||||
self.VerseEditButton.setText(self.trUtf8('Edit'))
|
self.VerseEditButton.setText(translate('EditSongForm', 'Edit'))
|
||||||
self.VerseEditAllButton.setText(self.trUtf8('Edit All'))
|
self.VerseEditAllButton.setText(translate('EditSongForm', 'Edit All'))
|
||||||
self.VerseDeleteButton.setText(self.trUtf8('Delete'))
|
self.VerseDeleteButton.setText(translate('EditSongForm', 'Delete'))
|
||||||
self.SongTabWidget.setTabText(
|
self.SongTabWidget.setTabText(
|
||||||
self.SongTabWidget.indexOf(self.LyricsTab),
|
self.SongTabWidget.indexOf(self.LyricsTab),
|
||||||
self.trUtf8('Title && Lyrics'))
|
translate('EditSongForm', 'Title && Lyrics'))
|
||||||
self.AuthorsGroupBox.setTitle(self.trUtf8('Authors'))
|
self.AuthorsGroupBox.setTitle(translate('EditSongForm', 'Authors'))
|
||||||
self.AuthorAddButton.setText(self.trUtf8('&Add to Song'))
|
self.AuthorAddButton.setText(translate('EditSongForm', '&Add to Song'))
|
||||||
self.AuthorRemoveButton.setText(self.trUtf8('&Remove'))
|
self.AuthorRemoveButton.setText(translate('EditSongForm', '&Remove'))
|
||||||
self.MaintenanceButton.setText(
|
self.MaintenanceButton.setText(
|
||||||
self.trUtf8('&Manage Authors, Topics, Books'))
|
translate('EditSongForm', '&Manage Authors, Topics, Books'))
|
||||||
self.TopicGroupBox.setTitle(self.trUtf8('Topic'))
|
self.TopicGroupBox.setTitle(translate('EditSongForm', 'Topic'))
|
||||||
self.TopicAddButton.setText(self.trUtf8('A&dd to Song'))
|
self.TopicAddButton.setText(translate('EditSongForm', 'A&dd to Song'))
|
||||||
self.TopicRemoveButton.setText(self.trUtf8('R&emove'))
|
self.TopicRemoveButton.setText(translate('EditSongForm', 'R&emove'))
|
||||||
self.SongBookGroup.setTitle(self.trUtf8('Song Book'))
|
self.SongBookGroup.setTitle(translate('EditSongForm', 'Song Book'))
|
||||||
self.SongTabWidget.setTabText(
|
self.SongTabWidget.setTabText(
|
||||||
self.SongTabWidget.indexOf(self.AuthorsTab),
|
self.SongTabWidget.indexOf(self.AuthorsTab),
|
||||||
self.trUtf8('Authors, Topics && Book'))
|
translate('EditSongForm', 'Authors, Topics && Book'))
|
||||||
self.ThemeGroupBox.setTitle(self.trUtf8('Theme'))
|
self.ThemeGroupBox.setTitle(translate('EditSongForm', 'Theme'))
|
||||||
self.ThemeAddButton.setText(self.trUtf8('Add a Theme'))
|
self.ThemeAddButton.setText(translate('EditSongForm', 'Add a Theme'))
|
||||||
self.CopyrightGroupBox.setTitle(self.trUtf8('Copyright Information'))
|
self.CopyrightGroupBox.setTitle(translate('EditSongForm', 'Copyright Information'))
|
||||||
self.CopyrightInsertButton.setText(self.trUtf8(u'\u00a9'.encode('utf8')))
|
self.CopyrightInsertButton.setText(translate('EditSongForm', u'\xa9'))
|
||||||
self.CCLILabel.setText(self.trUtf8('CCLI Number:'))
|
self.CCLILabel.setText(translate('EditSongForm', 'CCLI Number:'))
|
||||||
self.CommentsGroupBox.setTitle(self.trUtf8('Comments'))
|
self.CommentsGroupBox.setTitle(translate('EditSongForm', 'Comments'))
|
||||||
self.SongTabWidget.setTabText(
|
self.SongTabWidget.setTabText(
|
||||||
self.SongTabWidget.indexOf(self.ThemeTab),
|
self.SongTabWidget.indexOf(self.ThemeTab),
|
||||||
self.trUtf8('Theme, Copyright Info && Comments'))
|
translate('EditSongForm', 'Theme, Copyright Info && Comments'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_EditVerseDialog(object):
|
class Ui_EditVerseDialog(object):
|
||||||
def setupUi(self, EditVerseDialog):
|
def setupUi(self, EditVerseDialog):
|
||||||
|
@ -109,21 +110,21 @@ class Ui_EditVerseDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(EditVerseDialog)
|
QtCore.QMetaObject.connectSlotsByName(EditVerseDialog)
|
||||||
|
|
||||||
def retranslateUi(self, EditVerseDialog):
|
def retranslateUi(self, EditVerseDialog):
|
||||||
EditVerseDialog.setWindowTitle(self.trUtf8('Edit Verse'))
|
EditVerseDialog.setWindowTitle(translate('EditVerseForm', 'Edit Verse'))
|
||||||
self.VerseTypeLabel.setText(self.trUtf8('Verse Type'))
|
self.VerseTypeLabel.setText(translate('EditVerseForm', 'Verse Type'))
|
||||||
self.VerseListComboBox.setItemText(0, self.trUtf8('Intro'))
|
self.VerseListComboBox.setItemText(0, translate('EditVerseForm', 'Intro'))
|
||||||
self.VerseListComboBox.setItemText(1, self.trUtf8('Verse'))
|
self.VerseListComboBox.setItemText(1, translate('EditVerseForm', 'Verse'))
|
||||||
self.VerseListComboBox.setItemText(2, self.trUtf8('Pre-Chorus'))
|
self.VerseListComboBox.setItemText(2, translate('EditVerseForm', 'Pre-Chorus'))
|
||||||
self.VerseListComboBox.setItemText(3, self.trUtf8('Chorus'))
|
self.VerseListComboBox.setItemText(3, translate('EditVerseForm', 'Chorus'))
|
||||||
self.VerseListComboBox.setItemText(4, self.trUtf8('Bridge'))
|
self.VerseListComboBox.setItemText(4, translate('EditVerseForm', 'Bridge'))
|
||||||
self.VerseListComboBox.setItemText(5, self.trUtf8('Ending'))
|
self.VerseListComboBox.setItemText(5, translate('EditVerseForm', 'Ending'))
|
||||||
self.VerseListComboBox.setItemText(6, self.trUtf8('Other'))
|
self.VerseListComboBox.setItemText(6, translate('EditVerseForm', 'Other'))
|
||||||
self.VerseNumberLabel.setText(self.trUtf8('Number'))
|
self.VerseNumberLabel.setText(translate('EditVerseForm', 'Number'))
|
||||||
self.addBridge.setText(self.trUtf8('Bridge'))
|
self.addBridge.setText(translate('EditVerseForm', 'Bridge'))
|
||||||
self.addVerse.setText(self.trUtf8('Verse'))
|
self.addVerse.setText(translate('EditVerseForm', 'Verse'))
|
||||||
self.addChorus.setText(self.trUtf8('Chorus'))
|
self.addChorus.setText(translate('EditVerseForm', 'Chorus'))
|
||||||
self.addPreChorus.setText(self.trUtf8('Pre-Chorus'))
|
self.addPreChorus.setText(translate('EditVerseForm', 'Pre-Chorus'))
|
||||||
self.addIntro.setText(self.trUtf8('Intro'))
|
self.addIntro.setText(translate('EditVerseForm', 'Intro'))
|
||||||
self.addOther.setText(self.trUtf8('Other'))
|
self.addOther.setText(translate('EditVerseForm', 'Other'))
|
||||||
self.addEnding.setText(self.trUtf8('Ending'))
|
self.addEnding.setText(translate('EditVerseForm', 'Ending'))
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_OpenLPExportDialog(object):
|
class Ui_OpenLPExportDialog(object):
|
||||||
def setupUi(self, OpenLPExportDialog):
|
def setupUi(self, OpenLPExportDialog):
|
||||||
|
@ -285,21 +286,21 @@ class Ui_OpenLPExportDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog)
|
QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog)
|
||||||
|
|
||||||
def retranslateUi(self, OpenLPExportDialog):
|
def retranslateUi(self, OpenLPExportDialog):
|
||||||
OpenLPExportDialog.setWindowTitle(self.trUtf8('openlp.org Song Exporter'))
|
OpenLPExportDialog.setWindowTitle(translate('OpenLPExportForm', 'openlp.org Song Exporter'))
|
||||||
self.ExportFileLabel.setText(self.trUtf8('Select openlp.org export filename:'))
|
self.ExportFileLabel.setText(translate('OpenLPExportForm', 'Select openlp.org export filename:'))
|
||||||
self.ExportListLabel.setText(self.trUtf8('Full Song List'))
|
self.ExportListLabel.setText(translate('OpenLPExportForm', 'Full Song List'))
|
||||||
self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title'))
|
self.ExportListTable.horizontalHeaderItem(0).setText(translate('OpenLPExportForm', 'Song Title'))
|
||||||
self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author'))
|
self.ExportListTable.horizontalHeaderItem(1).setText(translate('OpenLPExportForm', 'Author'))
|
||||||
self.ExportSelectAllPushButton.setText(self.trUtf8('Select All'))
|
self.ExportSelectAllPushButton.setText(translate('OpenLPExportForm', 'Select All'))
|
||||||
self.ExportFilterComboBox.setItemText(0, self.trUtf8('Lyrics'))
|
self.ExportFilterComboBox.setItemText(0, translate('OpenLPExportForm', 'Lyrics'))
|
||||||
self.ExportFilterComboBox.setItemText(1, self.trUtf8('Title'))
|
self.ExportFilterComboBox.setItemText(1, translate('OpenLPExportForm', 'Title'))
|
||||||
self.ExportFilterComboBox.setItemText(2, self.trUtf8('Author'))
|
self.ExportFilterComboBox.setItemText(2, translate('OpenLPExportForm', 'Author'))
|
||||||
self.SelectedListLabel.setText(self.trUtf8('Song Export List'))
|
self.SelectedListLabel.setText(translate('OpenLPExportForm', 'Song Export List'))
|
||||||
self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title'))
|
self.SelectedListTable.horizontalHeaderItem(0).setText(translate('OpenLPExportForm', 'Song Title'))
|
||||||
self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author'))
|
self.SelectedListTable.horizontalHeaderItem(1).setText(translate('OpenLPExportForm', 'Author'))
|
||||||
self.SelectedSelectAllPushButton.setText(self.trUtf8('Select All'))
|
self.SelectedSelectAllPushButton.setText(translate('OpenLPExportForm', 'Select All'))
|
||||||
self.SelectedRemoveSelectedButton.setText(self.trUtf8('Remove Selected'))
|
self.SelectedRemoveSelectedButton.setText(translate('OpenLPExportForm', 'Remove Selected'))
|
||||||
self.ProgressGroupBox.setTitle(self.trUtf8('Progress:'))
|
self.ProgressGroupBox.setTitle(translate('OpenLPExportForm', 'Progress:'))
|
||||||
self.ProgressLabel.setText(self.trUtf8('Ready to export'))
|
self.ProgressLabel.setText(translate('OpenLPExportForm', 'Ready to export'))
|
||||||
self.ExportPushButton.setText(self.trUtf8('Export'))
|
self.ExportPushButton.setText(translate('OpenLPExportForm', 'Export'))
|
||||||
self.ClosePushButton.setText(self.trUtf8('Close'))
|
self.ClosePushButton.setText(translate('OpenLPExportForm', 'Close'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_OpenLPImportDialog(object):
|
class Ui_OpenLPImportDialog(object):
|
||||||
def setupUi(self, OpenLPImportDialog):
|
def setupUi(self, OpenLPImportDialog):
|
||||||
|
@ -285,21 +286,21 @@ class Ui_OpenLPImportDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog)
|
QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog)
|
||||||
|
|
||||||
def retranslateUi(self, OpenLPImportDialog):
|
def retranslateUi(self, OpenLPImportDialog):
|
||||||
OpenLPImportDialog.setWindowTitle(self.trUtf8('openlp.org Song Importer'))
|
OpenLPImportDialog.setWindowTitle(translate('OpenLPImportForm', 'openlp.org Song Importer'))
|
||||||
self.ImportFileLabel.setText(self.trUtf8('Select openlp.org songfile to import:'))
|
self.ImportFileLabel.setText(translate('OpenLPImportForm', 'Select openlp.org songfile to import:'))
|
||||||
self.ImportListLabel.setText(self.trUtf8('Import File Song List'))
|
self.ImportListLabel.setText(translate('OpenLPImportForm', 'Import File Song List'))
|
||||||
self.ImportListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title'))
|
self.ImportListTable.horizontalHeaderItem(0).setText(translate('OpenLPImportForm', 'Song Title'))
|
||||||
self.ImportListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author'))
|
self.ImportListTable.horizontalHeaderItem(1).setText(translate('OpenLPImportForm', 'Author'))
|
||||||
self.ImportSelectAllPushButton.setText(self.trUtf8('Select All'))
|
self.ImportSelectAllPushButton.setText(translate('OpenLPImportForm', 'Select All'))
|
||||||
self.ImportFilterComboBox.setItemText(0, self.trUtf8('Lyrics'))
|
self.ImportFilterComboBox.setItemText(0, translate('OpenLPImportForm', 'Lyrics'))
|
||||||
self.ImportFilterComboBox.setItemText(1, self.trUtf8('Title'))
|
self.ImportFilterComboBox.setItemText(1, translate('OpenLPImportForm', 'Title'))
|
||||||
self.ImportFilterComboBox.setItemText(2, self.trUtf8('Author'))
|
self.ImportFilterComboBox.setItemText(2, translate('OpenLPImportForm', 'Author'))
|
||||||
self.SelectedListLabel.setText(self.trUtf8('Song Import List'))
|
self.SelectedListLabel.setText(translate('OpenLPImportForm', 'Song Import List'))
|
||||||
self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title'))
|
self.SelectedListTable.horizontalHeaderItem(0).setText(translate('OpenLPImportForm', 'Song Title'))
|
||||||
self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author'))
|
self.SelectedListTable.horizontalHeaderItem(1).setText(translate('OpenLPImportForm', 'Author'))
|
||||||
self.SelectedSelectAllPushButton.setText(self.trUtf8('Select All'))
|
self.SelectedSelectAllPushButton.setText(translate('OpenLPImportForm', 'Select All'))
|
||||||
self.SelectedRemoveSelectedButton.setText(self.trUtf8('Remove Selected'))
|
self.SelectedRemoveSelectedButton.setText(translate('OpenLPImportForm', 'Remove Selected'))
|
||||||
self.ProgressGroupBox.setTitle(self.trUtf8('Progress:'))
|
self.ProgressGroupBox.setTitle(translate('OpenLPImportForm', 'Progress:'))
|
||||||
self.ProgressLabel.setText(self.trUtf8('Ready to import'))
|
self.ProgressLabel.setText(translate('OpenLPImportForm', 'Ready to import'))
|
||||||
self.ImportPushButton.setText(self.trUtf8('Import'))
|
self.ImportPushButton.setText(translate('OpenLPImportForm', 'Import'))
|
||||||
self.ClosePushButton.setText(self.trUtf8('Close'))
|
self.ClosePushButton.setText(translate('OpenLPImportForm', 'Close'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_OpenSongExportDialog(object):
|
class Ui_OpenSongExportDialog(object):
|
||||||
def setupUi(self, OpenSongExportDialog):
|
def setupUi(self, OpenSongExportDialog):
|
||||||
|
@ -285,21 +286,21 @@ class Ui_OpenSongExportDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog)
|
QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog)
|
||||||
|
|
||||||
def retranslateUi(self, OpenSongExportDialog):
|
def retranslateUi(self, OpenSongExportDialog):
|
||||||
OpenSongExportDialog.setWindowTitle(self.trUtf8('OpenSong Song Exporter'))
|
OpenSongExportDialog.setWindowTitle(translate('OpenSongExportForm', 'OpenSong Song Exporter'))
|
||||||
self.ExportFileLabel.setText(self.trUtf8('Select OpenSong song folder:'))
|
self.ExportFileLabel.setText(translate('OpenSongExportForm', 'Select OpenSong song folder:'))
|
||||||
self.ExportListLabel.setText(self.trUtf8('Full Song List'))
|
self.ExportListLabel.setText(translate('OpenSongExportForm', 'Full Song List'))
|
||||||
self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title'))
|
self.ExportListTable.horizontalHeaderItem(0).setText(translate('OpenSongExportForm', 'Song Title'))
|
||||||
self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author'))
|
self.ExportListTable.horizontalHeaderItem(1).setText(translate('OpenSongExportForm', 'Author'))
|
||||||
self.ExportSelectAllPushButton.setText(self.trUtf8('Select All'))
|
self.ExportSelectAllPushButton.setText(translate('OpenSongExportForm', 'Select All'))
|
||||||
self.ExportFilterComboBox.setItemText(0, self.trUtf8('Lyrics'))
|
self.ExportFilterComboBox.setItemText(0, translate('OpenSongExportForm', 'Lyrics'))
|
||||||
self.ExportFilterComboBox.setItemText(1, self.trUtf8('Title'))
|
self.ExportFilterComboBox.setItemText(1, translate('OpenSongExportForm', 'Title'))
|
||||||
self.ExportFilterComboBox.setItemText(2, self.trUtf8('Author'))
|
self.ExportFilterComboBox.setItemText(2, translate('OpenSongExportForm', 'Author'))
|
||||||
self.SelectedListLabel.setText(self.trUtf8('Song Export List'))
|
self.SelectedListLabel.setText(translate('OpenSongExportForm', 'Song Export List'))
|
||||||
self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8('Song Title'))
|
self.SelectedListTable.horizontalHeaderItem(0).setText(translate('OpenSongExportForm', 'Song Title'))
|
||||||
self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8('Author'))
|
self.SelectedListTable.horizontalHeaderItem(1).setText(translate('OpenSongExportForm', 'Author'))
|
||||||
self.SelectedSelectAllPushButton.setText(self.trUtf8('Select All'))
|
self.SelectedSelectAllPushButton.setText(translate('OpenSongExportForm', 'Select All'))
|
||||||
self.SelectedRemoveSelectedButton.setText(self.trUtf8('Remove Selected'))
|
self.SelectedRemoveSelectedButton.setText(translate('OpenSongExportForm', 'Remove Selected'))
|
||||||
self.ProgressGroupBox.setTitle(self.trUtf8('Progress:'))
|
self.ProgressGroupBox.setTitle(translate('OpenSongExportForm', 'Progress:'))
|
||||||
self.ProgressLabel.setText(self.trUtf8('Ready to export'))
|
self.ProgressLabel.setText(translate('OpenSongExportForm', 'Ready to export'))
|
||||||
self.ExportPushButton.setText(self.trUtf8('Export'))
|
self.ExportPushButton.setText(translate('OpenSongExportForm', 'Export'))
|
||||||
self.ClosePushButton.setText(self.trUtf8('Close'))
|
self.ClosePushButton.setText(translate('OpenSongExportForm', 'Close'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_OpenSongImportDialog(object):
|
class Ui_OpenSongImportDialog(object):
|
||||||
def setupUi(self, OpenSongImportDialog):
|
def setupUi(self, OpenSongImportDialog):
|
||||||
|
@ -100,9 +101,9 @@ class Ui_OpenSongImportDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog)
|
QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog)
|
||||||
|
|
||||||
def retranslateUi(self, OpenSongImportDialog):
|
def retranslateUi(self, OpenSongImportDialog):
|
||||||
OpenSongImportDialog.setWindowTitle(self.trUtf8('OpenSong Song Importer'))
|
OpenSongImportDialog.setWindowTitle(translate('OpenSongImportForm', 'OpenSong Song Importer'))
|
||||||
self.ImportFileLabel.setText(self.trUtf8('OpenSong Folder:'))
|
self.ImportFileLabel.setText(translate('OpenSongImportForm', 'OpenSong Folder:'))
|
||||||
self.ProgressGroupBox.setTitle(self.trUtf8('Progress:'))
|
self.ProgressGroupBox.setTitle(translate('OpenSongImportForm', 'Progress:'))
|
||||||
self.ProgressLabel.setText(self.trUtf8('Ready to import'))
|
self.ProgressLabel.setText(translate('OpenSongImportForm', 'Ready to import'))
|
||||||
self.ImportPushButton.setText(self.trUtf8('Import'))
|
self.ImportPushButton.setText(translate('OpenSongImportForm', 'Import'))
|
||||||
self.ClosePushButton.setText(self.trUtf8('Close'))
|
self.ClosePushButton.setText(translate('OpenSongImportForm', 'Close'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_SongBookDialog(object):
|
class Ui_SongBookDialog(object):
|
||||||
def setupUi(self, SongBookDialog):
|
def setupUi(self, SongBookDialog):
|
||||||
|
@ -65,6 +66,6 @@ class Ui_SongBookDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(SongBookDialog)
|
QtCore.QMetaObject.connectSlotsByName(SongBookDialog)
|
||||||
|
|
||||||
def retranslateUi(self, SongBookDialog):
|
def retranslateUi(self, SongBookDialog):
|
||||||
SongBookDialog.setWindowTitle(self.trUtf8('Edit Book'))
|
SongBookDialog.setWindowTitle(translate('SongBookForm', 'Edit Book'))
|
||||||
self.NameLabel.setText(self.trUtf8('Name:'))
|
self.NameLabel.setText(translate('SongBookForm', 'Name:'))
|
||||||
self.PublisherLabel.setText(self.trUtf8('Publisher:'))
|
self.PublisherLabel.setText(translate('SongBookForm', 'Publisher:'))
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import build_icon
|
from openlp.core.lib import build_icon, translate
|
||||||
|
|
||||||
class Ui_SongMaintenanceDialog(object):
|
class Ui_SongMaintenanceDialog(object):
|
||||||
def setupUi(self, SongMaintenanceDialog):
|
def setupUi(self, SongMaintenanceDialog):
|
||||||
|
@ -208,16 +208,16 @@ class Ui_SongMaintenanceDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog)
|
QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog)
|
||||||
|
|
||||||
def retranslateUi(self, SongMaintenanceDialog):
|
def retranslateUi(self, SongMaintenanceDialog):
|
||||||
SongMaintenanceDialog.setWindowTitle(self.trUtf8('Song Maintenance'))
|
SongMaintenanceDialog.setWindowTitle(translate('SongMaintenanceForm', 'Song Maintenance'))
|
||||||
self.TypeListWidget.item(0).setText(self.trUtf8('Authors'))
|
self.TypeListWidget.item(0).setText(translate('SongMaintenanceForm', 'Authors'))
|
||||||
self.TypeListWidget.item(1).setText(self.trUtf8('Topics'))
|
self.TypeListWidget.item(1).setText(translate('SongMaintenanceForm', 'Topics'))
|
||||||
self.TypeListWidget.item(2).setText(self.trUtf8('Books/Hymnals'))
|
self.TypeListWidget.item(2).setText(translate('SongMaintenanceForm', 'Books/Hymnals'))
|
||||||
self.AuthorAddButton.setText(self.trUtf8('Add'))
|
self.AuthorAddButton.setText(translate('SongMaintenanceForm', 'Add'))
|
||||||
self.AuthorEditButton.setText(self.trUtf8('Edit'))
|
self.AuthorEditButton.setText(translate('SongMaintenanceForm', 'Edit'))
|
||||||
self.AuthorDeleteButton.setText(self.trUtf8('Delete'))
|
self.AuthorDeleteButton.setText(translate('SongMaintenanceForm', 'Delete'))
|
||||||
self.TopicAddButton.setText(self.trUtf8('Add'))
|
self.TopicAddButton.setText(translate('SongMaintenanceForm', 'Add'))
|
||||||
self.TopicEditButton.setText(self.trUtf8('Edit'))
|
self.TopicEditButton.setText(translate('SongMaintenanceForm', 'Edit'))
|
||||||
self.TopicDeleteButton.setText(self.trUtf8('Delete'))
|
self.TopicDeleteButton.setText(translate('SongMaintenanceForm', 'Delete'))
|
||||||
self.BookAddButton.setText(self.trUtf8('Add'))
|
self.BookAddButton.setText(translate('SongMaintenanceForm', 'Add'))
|
||||||
self.BookEditButton.setText(self.trUtf8('Edit'))
|
self.BookEditButton.setText(translate('SongMaintenanceForm', 'Edit'))
|
||||||
self.BookDeleteButton.setText(self.trUtf8('Delete'))
|
self.BookDeleteButton.setText(translate('SongMaintenanceForm', 'Delete'))
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_TopicsDialog(object):
|
class Ui_TopicsDialog(object):
|
||||||
def setupUi(self, TopicsDialog):
|
def setupUi(self, TopicsDialog):
|
||||||
|
@ -59,5 +60,5 @@ class Ui_TopicsDialog(object):
|
||||||
QtCore.QMetaObject.connectSlotsByName(TopicsDialog)
|
QtCore.QMetaObject.connectSlotsByName(TopicsDialog)
|
||||||
|
|
||||||
def retranslateUi(self, TopicsDialog):
|
def retranslateUi(self, TopicsDialog):
|
||||||
TopicsDialog.setWindowTitle(self.trUtf8('Topic Maintenance'))
|
TopicsDialog.setWindowTitle(translate('TopicsForm', 'Topic Maintenance'))
|
||||||
self.NameLabel.setText(self.trUtf8('Topic name:'))
|
self.NameLabel.setText(translate('TopicsForm', 'Topic name:'))
|
||||||
|
|
|
@ -24,12 +24,13 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_SongUsageDeleteDialog(object):
|
class Ui_SongUsageDeleteDialog(object):
|
||||||
def setupUi(self, AuditDeleteDialog):
|
def setupUi(self, SongUsageDeleteDialog):
|
||||||
AuditDeleteDialog.setObjectName(u'AuditDeleteDialog')
|
SongUsageDeleteDialog.setObjectName(u'SongUsageDeleteDialog')
|
||||||
AuditDeleteDialog.resize(291, 243)
|
SongUsageDeleteDialog.resize(291, 243)
|
||||||
self.layoutWidget = QtGui.QWidget(AuditDeleteDialog)
|
self.layoutWidget = QtGui.QWidget(SongUsageDeleteDialog)
|
||||||
self.layoutWidget.setGeometry(QtCore.QRect(20, 10, 247, 181))
|
self.layoutWidget.setGeometry(QtCore.QRect(20, 10, 247, 181))
|
||||||
self.layoutWidget.setObjectName(u'layoutWidget')
|
self.layoutWidget.setObjectName(u'layoutWidget')
|
||||||
self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget)
|
self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget)
|
||||||
|
@ -41,20 +42,20 @@ class Ui_SongUsageDeleteDialog(object):
|
||||||
QtGui.QCalendarWidget.NoVerticalHeader)
|
QtGui.QCalendarWidget.NoVerticalHeader)
|
||||||
self.DeleteCalendar.setObjectName(u'DeleteCalendar')
|
self.DeleteCalendar.setObjectName(u'DeleteCalendar')
|
||||||
self.verticalLayout.addWidget(self.DeleteCalendar)
|
self.verticalLayout.addWidget(self.DeleteCalendar)
|
||||||
self.buttonBox = QtGui.QDialogButtonBox(AuditDeleteDialog)
|
self.buttonBox = QtGui.QDialogButtonBox(SongUsageDeleteDialog)
|
||||||
self.buttonBox.setGeometry(QtCore.QRect(30, 210, 245, 25))
|
self.buttonBox.setGeometry(QtCore.QRect(30, 210, 245, 25))
|
||||||
self.buttonBox.setStandardButtons(
|
self.buttonBox.setStandardButtons(
|
||||||
QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
||||||
self.buttonBox.setObjectName(u'buttonBox')
|
self.buttonBox.setObjectName(u'buttonBox')
|
||||||
|
|
||||||
self.retranslateUi(AuditDeleteDialog)
|
self.retranslateUi(SongUsageDeleteDialog)
|
||||||
QtCore.QObject.connect(
|
QtCore.QObject.connect(
|
||||||
self.buttonBox, QtCore.SIGNAL(u'accepted()'),
|
self.buttonBox, QtCore.SIGNAL(u'accepted()'),
|
||||||
AuditDeleteDialog.accept)
|
SongUsageDeleteDialog.accept)
|
||||||
QtCore.QObject.connect(
|
QtCore.QObject.connect(
|
||||||
self.buttonBox, QtCore.SIGNAL(u'rejected()'),
|
self.buttonBox, QtCore.SIGNAL(u'rejected()'),
|
||||||
AuditDeleteDialog.close)
|
SongUsageDeleteDialog.close)
|
||||||
QtCore.QMetaObject.connectSlotsByName(AuditDeleteDialog)
|
QtCore.QMetaObject.connectSlotsByName(SongUsageDeleteDialog)
|
||||||
|
|
||||||
def retranslateUi(self, AuditDeleteDialog):
|
def retranslateUi(self, SongUsageDeleteDialog):
|
||||||
AuditDeleteDialog.setWindowTitle(self.trUtf8('Song Usage Delete'))
|
SongUsageDeleteDialog.setWindowTitle(translate('AuditDeleteDialog', 'Song Usage Delete'))
|
||||||
|
|
|
@ -24,14 +24,15 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class Ui_SongUsageDetailDialog(object):
|
class Ui_SongUsageDetailDialog(object):
|
||||||
def setupUi(self, AuditDetailDialog):
|
def setupUi(self, SongUsageDetailDialog):
|
||||||
AuditDetailDialog.setObjectName(u'AuditDetailDialog')
|
SongUsageDetailDialog.setObjectName(u'SongUsageDetailDialog')
|
||||||
AuditDetailDialog.resize(609, 413)
|
SongUsageDetailDialog.resize(609, 413)
|
||||||
self.verticalLayout = QtGui.QVBoxLayout(AuditDetailDialog)
|
self.verticalLayout = QtGui.QVBoxLayout(SongUsageDetailDialog)
|
||||||
self.verticalLayout.setObjectName(u'verticalLayout')
|
self.verticalLayout.setObjectName(u'verticalLayout')
|
||||||
self.DateRangeGroupBox = QtGui.QGroupBox(AuditDetailDialog)
|
self.DateRangeGroupBox = QtGui.QGroupBox(SongUsageDetailDialog)
|
||||||
self.DateRangeGroupBox.setObjectName(u'DateRangeGroupBox')
|
self.DateRangeGroupBox.setObjectName(u'DateRangeGroupBox')
|
||||||
self.verticalLayout_2 = QtGui.QVBoxLayout(self.DateRangeGroupBox)
|
self.verticalLayout_2 = QtGui.QVBoxLayout(self.DateRangeGroupBox)
|
||||||
self.verticalLayout_2.setObjectName(u'verticalLayout_2')
|
self.verticalLayout_2.setObjectName(u'verticalLayout_2')
|
||||||
|
@ -68,25 +69,25 @@ class Ui_SongUsageDetailDialog(object):
|
||||||
self.verticalLayout_4.addLayout(self.horizontalLayout)
|
self.verticalLayout_4.addLayout(self.horizontalLayout)
|
||||||
self.verticalLayout_2.addWidget(self.FileGroupBox)
|
self.verticalLayout_2.addWidget(self.FileGroupBox)
|
||||||
self.verticalLayout.addWidget(self.DateRangeGroupBox)
|
self.verticalLayout.addWidget(self.DateRangeGroupBox)
|
||||||
self.buttonBox = QtGui.QDialogButtonBox(AuditDetailDialog)
|
self.buttonBox = QtGui.QDialogButtonBox(SongUsageDetailDialog)
|
||||||
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
||||||
self.buttonBox.setObjectName(u'buttonBox')
|
self.buttonBox.setObjectName(u'buttonBox')
|
||||||
self.verticalLayout.addWidget(self.buttonBox)
|
self.verticalLayout.addWidget(self.buttonBox)
|
||||||
|
|
||||||
self.retranslateUi(AuditDetailDialog)
|
self.retranslateUi(SongUsageDetailDialog)
|
||||||
QtCore.QObject.connect(self.buttonBox,
|
QtCore.QObject.connect(self.buttonBox,
|
||||||
QtCore.SIGNAL(u'accepted()'),
|
QtCore.SIGNAL(u'accepted()'),
|
||||||
AuditDetailDialog.accept)
|
SongUsageDetailDialog.accept)
|
||||||
QtCore.QObject.connect(self.buttonBox,
|
QtCore.QObject.connect(self.buttonBox,
|
||||||
QtCore.SIGNAL(u'rejected()'),
|
QtCore.SIGNAL(u'rejected()'),
|
||||||
AuditDetailDialog.close)
|
SongUsageDetailDialog.close)
|
||||||
QtCore.QObject.connect(self.SaveFilePushButton,
|
QtCore.QObject.connect(self.SaveFilePushButton,
|
||||||
QtCore.SIGNAL(u'pressed()'),
|
QtCore.SIGNAL(u'pressed()'),
|
||||||
AuditDetailDialog.defineOutputLocation)
|
SongUsageDetailDialog.defineOutputLocation)
|
||||||
QtCore.QMetaObject.connectSlotsByName(AuditDetailDialog)
|
QtCore.QMetaObject.connectSlotsByName(SongUsageDetailDialog)
|
||||||
|
|
||||||
def retranslateUi(self, AuditDetailDialog):
|
def retranslateUi(self, SongUsageDetailDialog):
|
||||||
AuditDetailDialog.setWindowTitle(self.trUtf8('Song Usage Extraction'))
|
SongUsageDetailDialog.setWindowTitle(translate('AuditDetailDialog', 'Song Usage Extraction'))
|
||||||
self.DateRangeGroupBox.setTitle(self.trUtf8('Select Date Range'))
|
self.DateRangeGroupBox.setTitle(translate('AuditDetailDialog', 'Select Date Range'))
|
||||||
self.ToLabel.setText(self.trUtf8('to'))
|
self.ToLabel.setText(translate('AuditDetailDialog', 'to'))
|
||||||
self.FileGroupBox.setTitle(self.trUtf8('Report Location'))
|
self.FileGroupBox.setTitle(translate('AuditDetailDialog', 'Report Location'))
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,173 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2010 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
|
||||||
|
# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin #
|
||||||
|
# Thompson, Jon Tibble, Carsten Tinggaard #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# This program is free software; you can redistribute it and/or modify it #
|
||||||
|
# under the terms of the GNU General Public License as published by the Free #
|
||||||
|
# Software Foundation; version 2 of the License. #
|
||||||
|
# #
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||||
|
# more details. #
|
||||||
|
# #
|
||||||
|
# You should have received a copy of the GNU General Public License along #
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
||||||
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||||
|
###############################################################################
|
||||||
|
# Short description
|
||||||
|
# Steps for creating languages:
|
||||||
|
# 1. make shure that the openlp_en.ts file exist
|
||||||
|
# 2. go to scripts folder and start:
|
||||||
|
# python translation_utils.py -a
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
import os
|
||||||
|
from optparse import OptionParser
|
||||||
|
import urllib
|
||||||
|
from PyQt4 import QtCore
|
||||||
|
|
||||||
|
ignore_pathes = [u"./scripts", u"./openlp/core/test"]
|
||||||
|
ignore_files = [u"setup.py"]
|
||||||
|
translation_path = u"http://pootle.projecthq.biz/export/openlp/"
|
||||||
|
translations = [ u"en"
|
||||||
|
, u"af"
|
||||||
|
, u"en_ZA"
|
||||||
|
, u"en_GB"
|
||||||
|
, u"de"
|
||||||
|
, u"hu"
|
||||||
|
, u"ko"
|
||||||
|
, u"nb"
|
||||||
|
, u"pt_BR"
|
||||||
|
, u"es"
|
||||||
|
, u"sv"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def write_file(filename, stringlist):
|
||||||
|
content = u''
|
||||||
|
for line in stringlist:
|
||||||
|
content = u'%s%s\n' % (content, line)
|
||||||
|
file = open(filename, u'w')
|
||||||
|
file.write(content.encode('utf8'))
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Set up command line options.
|
||||||
|
usage = u'Usage: %prog [options]'
|
||||||
|
parser = OptionParser(usage=usage)
|
||||||
|
parser.add_option("-d", "--download-ts", action="store_true", dest="download",
|
||||||
|
help="Load languages from Pootle Server")
|
||||||
|
parser.add_option("-p", "--prepare", action="store_true", dest="prepare",
|
||||||
|
help="preparation (generate pro file)")
|
||||||
|
parser.add_option("-u", "--update", action="store_true", dest="update",
|
||||||
|
help="update translation files")
|
||||||
|
parser.add_option("-g", "--generate", action="store_true", dest="generate",
|
||||||
|
help="generate qm files")
|
||||||
|
parser.add_option("-a", "--all", action="store_true", dest="all",
|
||||||
|
help="proceed all options")
|
||||||
|
|
||||||
|
(options, args) = parser.parse_args()
|
||||||
|
qt_args = []
|
||||||
|
if options.download:
|
||||||
|
downloadTranslations()
|
||||||
|
elif options.prepare:
|
||||||
|
preparation()
|
||||||
|
elif options.update:
|
||||||
|
update()
|
||||||
|
elif options.generate:
|
||||||
|
generate()
|
||||||
|
elif options.all:
|
||||||
|
all()
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def downloadTranslations():
|
||||||
|
print "download()"
|
||||||
|
for language in translations:
|
||||||
|
filename = os.path.join(u'..',u'resources', u'i18n', u"openlp_%s.ts" % language)
|
||||||
|
print filename
|
||||||
|
page = urllib.urlopen(u"%s%s.ts" % (translation_path, language))
|
||||||
|
content = page.read().decode("utf8")
|
||||||
|
page.close()
|
||||||
|
file = open(filename, u'w')
|
||||||
|
file.write(content.encode('utf8'))
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
def preparation():
|
||||||
|
stringlist = []
|
||||||
|
start_dir = os.path.join(u'..')
|
||||||
|
for root, dirs, files in os.walk(start_dir):
|
||||||
|
for file in files:
|
||||||
|
path = u"%s" % root
|
||||||
|
path = path.replace("\\","/")
|
||||||
|
path = path.replace("..",".")
|
||||||
|
|
||||||
|
if file.startswith(u'hook-') or file.startswith(u'test_'):
|
||||||
|
continue
|
||||||
|
|
||||||
|
cond = False
|
||||||
|
for search in ignore_pathes:
|
||||||
|
if path.startswith(search):
|
||||||
|
cond = True
|
||||||
|
if cond == True:
|
||||||
|
continue
|
||||||
|
cond = False
|
||||||
|
for search in ignore_files:
|
||||||
|
if search == file:
|
||||||
|
cond = True
|
||||||
|
if cond == True:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if file.endswith(u'.py'):
|
||||||
|
line = u"%s/%s" % (path, file)
|
||||||
|
print u'Parsing "%s"' % line
|
||||||
|
stringlist.append(u"SOURCES += %s" % line)
|
||||||
|
elif file.endswith(u'.pyw'):
|
||||||
|
line = u"%s/%s" % (path, file)
|
||||||
|
print u'Parsing "%s"' % line
|
||||||
|
stringlist.append(u"SOURCES += %s" % line)
|
||||||
|
elif file.endswith(u'.ts'):
|
||||||
|
line = u"%s/%s" % (path, file)
|
||||||
|
print u'Parsing "%s"' % line
|
||||||
|
stringlist.append(u"TRANSLATIONS += %s" % line)
|
||||||
|
|
||||||
|
print u'Generating PRO file...',
|
||||||
|
stringlist.sort()
|
||||||
|
write_file(os.path.join(start_dir, u'openlp.pro'), stringlist)
|
||||||
|
print u'done.'
|
||||||
|
|
||||||
|
|
||||||
|
def update():
|
||||||
|
print "update()"
|
||||||
|
updateProcess = QtCore.QProcess()
|
||||||
|
updateProcess.start(u"pylupdate4 -noobsolete ../openlp.pro")
|
||||||
|
updateProcess.waitForFinished(60000)
|
||||||
|
|
||||||
|
def generate():
|
||||||
|
print "generate()"
|
||||||
|
generateProcess = QtCore.QProcess()
|
||||||
|
generateProcess.start(u"lrelease ../openlp.pro")
|
||||||
|
generateProcess.waitForFinished(60000)
|
||||||
|
|
||||||
|
def all():
|
||||||
|
print "all()"
|
||||||
|
downloadTranslations()
|
||||||
|
preparation()
|
||||||
|
update()
|
||||||
|
generate()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == u'__main__':
|
||||||
|
if os.path.split(os.path.abspath(u'.'))[1] != u'scripts':
|
||||||
|
print u'You need to run this script from the scripts directory.'
|
||||||
|
else:
|
||||||
|
main()
|
Loading…
Reference in New Issue