← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~raoul-snyman/openlp/uistrings into lp:openlp

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/uistrings into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/uistrings/+merge/57965

Fix our translation issues.
-- 
https://code.launchpad.net/~raoul-snyman/openlp/uistrings/+merge/57965
Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/uistrings into lp:openlp.
=== modified file 'openlp.pyw'
--- openlp.pyw	2011-04-13 09:20:27 +0000
+++ openlp.pyw	2011-04-15 22:41:19 +0000
@@ -140,7 +140,7 @@
         self.sharedMemory = QtCore.QSharedMemory('OpenLP')
         if self.sharedMemory.attach():
             status = QtGui.QMessageBox.critical(None,
-                UiStrings.Error, UiStrings.OpenLPStart,
+                UiStrings().Error, UiStrings().OpenLPStart,
                 QtGui.QMessageBox.StandardButtons(
                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No))
             if status == QtGui.QMessageBox.No:
@@ -250,4 +250,4 @@
     """
     Instantiate and run the application.
     """
-    main()
+    main()
\ No newline at end of file

=== modified file 'openlp/core/lib/mediamanageritem.py'
--- openlp/core/lib/mediamanageritem.py	2011-04-12 21:12:07 +0000
+++ openlp/core/lib/mediamanageritem.py	2011-04-15 22:41:19 +0000
@@ -435,7 +435,7 @@
         item to the preview slide controller.
         """
         if not self.listView.selectedIndexes() and not self.remoteTriggered:
-            QtGui.QMessageBox.information(self, UiStrings.NISp,
+            QtGui.QMessageBox.information(self, UiStrings().NISp,
                 translate('OpenLP.MediaManagerItem',
                 'You must select one or more items to preview.'))
         else:
@@ -453,7 +453,7 @@
         item to the live slide controller.
         """
         if not self.listView.selectedIndexes():
-            QtGui.QMessageBox.information(self, UiStrings.NISp,
+            QtGui.QMessageBox.information(self, UiStrings().NISp,
                 translate('OpenLP.MediaManagerItem',
                     'You must select one or more items to send live.'))
         else:
@@ -468,7 +468,7 @@
         Add a selected item to the current service
         """
         if not self.listView.selectedIndexes() and not self.remoteTriggered:
-            QtGui.QMessageBox.information(self, UiStrings.NISp,
+            QtGui.QMessageBox.information(self, UiStrings().NISp,
                 translate('OpenLP.MediaManagerItem',
                     'You must select one or more items.'))
         else:
@@ -494,14 +494,14 @@
         Add a selected item to an existing item in the current service.
         """
         if not self.listView.selectedIndexes() and not self.remoteTriggered:
-            QtGui.QMessageBox.information(self, UiStrings.NISp,
+            QtGui.QMessageBox.information(self, UiStrings().NISp,
                 translate('OpenLP.MediaManagerItem',
                     'You must select one or more items.'))
         else:
             log.debug(u'%s Add requested', self.plugin.name)
             serviceItem = self.parent.serviceManager.getServiceItem()
             if not serviceItem:
-                QtGui.QMessageBox.information(self, UiStrings.NISs,
+                QtGui.QMessageBox.information(self, UiStrings().NISs,
                     translate('OpenLP.MediaManagerItem',
                         'You must select an existing service item to add to.'))
             elif self.plugin.name.lower() == serviceItem.name.lower():
@@ -554,4 +554,4 @@
                 item_id = remoteItem
         else:
             item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
-        return item_id
+        return item_id
\ No newline at end of file

=== modified file 'openlp/core/lib/plugin.py'
--- openlp/core/lib/plugin.py	2011-04-15 17:17:51 +0000
+++ openlp/core/lib/plugin.py	2011-04-15 22:41:19 +0000
@@ -330,28 +330,28 @@
         """
         ## Load Action ##
         self.__setNameTextString(StringContent.Load,
-            UiStrings.Load, tooltips[u'load'])
+            UiStrings().Load, tooltips[u'load'])
         ## Import Action ##
         self.__setNameTextString(StringContent.Import,
-            UiStrings.Import, tooltips[u'import'])
+            UiStrings().Import, tooltips[u'import'])
         ## New Action ##
         self.__setNameTextString(StringContent.New,
-            UiStrings.Add, tooltips[u'new'])
+            UiStrings().Add, tooltips[u'new'])
         ## Edit Action ##
         self.__setNameTextString(StringContent.Edit,
-            UiStrings.Edit, tooltips[u'edit'])
+            UiStrings().Edit, tooltips[u'edit'])
         ## Delete Action ##
         self.__setNameTextString(StringContent.Delete,
-            UiStrings.Delete, tooltips[u'delete'])
+            UiStrings().Delete, tooltips[u'delete'])
         ## Preview Action ##
         self.__setNameTextString(StringContent.Preview,
-            UiStrings.Preview, tooltips[u'preview'])
+            UiStrings().Preview, tooltips[u'preview'])
         ## Send Live Action ##
         self.__setNameTextString(StringContent.Live,
-            UiStrings.Live, tooltips[u'live'])
+            UiStrings().Live, tooltips[u'live'])
         ## Add to Service Action ##
         self.__setNameTextString(StringContent.Service,
-            UiStrings.Service, tooltips[u'service'])
+            UiStrings().Service, tooltips[u'service'])
 
     def __setNameTextString(self, name, title, tooltip):
         """
@@ -359,4 +359,4 @@
         use of the singular name of the plugin object so must only be called
         after this has been set.
         """
-        self.textStrings[name] = {u'title': title, u'tooltip': tooltip}
+        self.textStrings[name] = {u'title': title, u'tooltip': tooltip}
\ No newline at end of file

=== modified file 'openlp/core/lib/serviceitem.py'
--- openlp/core/lib/serviceitem.py	2011-03-30 20:13:07 +0000
+++ openlp/core/lib/serviceitem.py	2011-04-15 22:41:19 +0000
@@ -441,10 +441,10 @@
         start = None
         end = None
         if self.start_time != 0:
-            start = UiStrings.StartTimeCode % \
+            start = UiStrings().StartTimeCode % \
                 unicode(datetime.timedelta(seconds=self.start_time))
         if self.media_length != 0:
-            end = UiStrings.LengthTime % \
+            end = UiStrings().LengthTime % \
                 unicode(datetime.timedelta(seconds=self.media_length))
         if not start and not end:
             return None
@@ -453,4 +453,4 @@
         elif not start and end:
             return end
         else:
-            return u'%s : %s' % (start, end)
+            return u'%s : %s' % (start, end)
\ No newline at end of file

=== modified file 'openlp/core/lib/theme.py'
--- openlp/core/lib/theme.py	2011-03-24 19:04:02 +0000
+++ openlp/core/lib/theme.py	2011-04-15 22:41:19 +0000
@@ -192,7 +192,7 @@
     Bottom = 2
 
     Names = [u'top', u'middle', u'bottom']
-    TranslatedNames = [UiStrings.Top, UiStrings.Middle, UiStrings.Bottom]
+    TranslatedNames = [UiStrings().Top, UiStrings().Middle, UiStrings().Bottom]
 
 
 BOOLEAN_LIST = [u'bold', u'italics', u'override', u'outline', u'shadow',
@@ -637,4 +637,4 @@
             self.font_footer_shadow_size)
         self.add_display(self.display_horizontal_align,
             self.display_vertical_align,
-            self.display_slide_transition)
+            self.display_slide_transition)
\ No newline at end of file

=== modified file 'openlp/core/lib/ui.py'
--- openlp/core/lib/ui.py	2011-04-14 18:35:47 +0000
+++ openlp/core/lib/ui.py	2011-04-15 22:41:19 +0000
@@ -39,78 +39,96 @@
     """
     Provide standard strings for objects to use.
     """
-    # These strings should need a good reason to be retranslated elsewhere.
-    # Should some/more/less of these have an & attached?
-    About = translate('OpenLP.Ui', 'About')
-    Add = translate('OpenLP.Ui', '&Add')
-    Advanced = translate('OpenLP.Ui', 'Advanced')
-    AllFiles = translate('OpenLP.Ui', 'All Files')
-    Bottom = translate('OpenLP.Ui', 'Bottom')
-    Browse = translate('OpenLP.Ui', 'Browse...')
-    Cancel = translate('OpenLP.Ui', 'Cancel')
-    CCLINumberLabel = translate('OpenLP.Ui', 'CCLI number:')
-    CreateService = translate('OpenLP.Ui', 'Create a new service.')
-    Continuous = translate('OpenLP.Ui', 'Continuous')
-    Default = unicode(translate('OpenLP.Ui', 'Default'))
-    Delete = translate('OpenLP.Ui', '&Delete')
-    DisplayStyle = translate('OpenLP.Ui', 'Display style:')
-    Edit = translate('OpenLP.Ui', '&Edit')
-    EmptyField = translate('OpenLP.Ui', 'Empty Field')
-    Error = translate('OpenLP.Ui', 'Error')
-    Export = translate('OpenLP.Ui', 'Export')
-    File = translate('OpenLP.Ui', 'File')
-    FontSizePtUnit = translate('OpenLP.Ui', 'pt',
-        'Abbreviated font pointsize unit')
-    Help = translate('OpenLP.Ui', 'Help')
-    Hours = translate('OpenLP.Ui', 'h', 'The abbreviated unit for hours')
-    Image = translate('OpenLP.Ui', 'Image')
-    Import = translate('OpenLP.Ui', 'Import')
-    LayoutStyle = translate('OpenLP.Ui', 'Layout style:')
-    LengthTime = unicode(translate('OpenLP.Ui', 'Length %s'))
-    Live = translate('OpenLP.Ui', 'Live')
-    LiveBGError = translate('OpenLP.Ui', 'Live Background Error')
-    LivePanel = translate('OpenLP.Ui', 'Live Panel')
-    LiveToolbar = translate('OpenLP.Ui', 'Live Toolbar')
-    Load = translate('OpenLP.Ui', 'Load')
-    Minutes = translate('OpenLP.Ui', 'm', 'The abbreviated unit for minutes')
-    Middle = translate('OpenLP.Ui', 'Middle')
-    New = translate('OpenLP.Ui', 'New')
-    NewService = translate('OpenLP.Ui', 'New Service')
-    NewTheme = translate('OpenLP.Ui', 'New Theme')
-    NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular')
-    NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural')
-    NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular')
-    NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
-    OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x')
-    OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0')
-    OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you '
-        'wish to continue?')
-    OpenService = translate('OpenLP.Ui', 'Open Service')
-    Preview = translate('OpenLP.Ui', 'Preview')
-    PreviewPanel = translate('OpenLP.Ui', 'Preview Panel')
-    PrintServiceOrder = translate('OpenLP.Ui', 'Print Service Order')
-    ReplaceBG = translate('OpenLP.Ui', 'Replace Background')
-    ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background')
-    ResetBG = translate('OpenLP.Ui', 'Reset Background')
-    ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background')
-    Seconds = translate('OpenLP.Ui', 's', 'The abbreviated unit for seconds')
-    SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview')
-    Search = translate('OpenLP.Ui', 'Search')
-    SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.')
-    SelectEdit = translate('OpenLP.Ui', 'You must select an item to edit.')
-    Settings = translate('OpenLP.Ui', 'Settings')
-    SaveService = translate('OpenLP.Ui', 'Save Service')
-    Service = translate('OpenLP.Ui', 'Service')
-    StartTimeCode = unicode(translate('OpenLP.Ui', 'Start %s'))
-    Theme = translate('OpenLP.Ui', 'Theme', 'Singular')
-    Themes = translate('OpenLP.Ui', 'Themes', 'Plural')
-    Tools = translate('OpenLP.Ui', 'Tools')
-    Top = translate('OpenLP.Ui', 'Top')
-    VersePerSlide = translate('OpenLP.Ui', 'Verse Per Slide')
-    VersePerLine = translate('OpenLP.Ui', 'Verse Per Line')
-    Version = translate('OpenLP.Ui', 'Version')
-    View = translate('OpenLP.Ui', 'View')
-    ViewMode = translate('OpenLP.Ui', 'View Model')
+    __instance__ = None
+
+    def __new__(cls):
+        """
+        Override the default object creation method to return a single instance.
+        """
+        if not cls.__instance__:
+            cls.__instance__ = object.__new__(cls)
+        return cls.__instance__
+
+    def __init__(self):
+        """
+        These strings should need a good reason to be retranslated elsewhere.
+        Should some/more/less of these have an & attached?
+        """
+        self.About = translate('OpenLP.Ui', 'About')
+        self.Add = translate('OpenLP.Ui', '&Add')
+        self.Advanced = translate('OpenLP.Ui', 'Advanced')
+        self.AllFiles = translate('OpenLP.Ui', 'All Files')
+        self.Bottom = translate('OpenLP.Ui', 'Bottom')
+        self.Browse = translate('OpenLP.Ui', 'Browse...')
+        self.Cancel = translate('OpenLP.Ui', 'Cancel')
+        self.CCLINumberLabel = translate('OpenLP.Ui', 'CCLI number:')
+        self.CreateService = translate('OpenLP.Ui', 'Create a new service.')
+        self.Continuous = translate('OpenLP.Ui', 'Continuous')
+        self.Default = unicode(translate('OpenLP.Ui', 'Default'))
+        self.Delete = translate('OpenLP.Ui', '&Delete')
+        self.DisplayStyle = translate('OpenLP.Ui', 'Display style:')
+        self.Edit = translate('OpenLP.Ui', '&Edit')
+        self.EmptyField = translate('OpenLP.Ui', 'Empty Field')
+        self.Error = translate('OpenLP.Ui', 'Error')
+        self.Export = translate('OpenLP.Ui', 'Export')
+        self.File = translate('OpenLP.Ui', 'File')
+        self.FontSizePtUnit = translate('OpenLP.Ui', 'pt',
+            'Abbreviated font pointsize unit')
+        self.Help = translate('OpenLP.Ui', 'Help')
+        self.Hours = translate('OpenLP.Ui', 'h',
+            'The abbreviated unit for hours')
+        self.Image = translate('OpenLP.Ui', 'Image')
+        self.Import = translate('OpenLP.Ui', 'Import')
+        self.LayoutStyle = translate('OpenLP.Ui', 'Layout style:')
+        self.LengthTime = unicode(translate('OpenLP.Ui', 'Length %s'))
+        self.Live = translate('OpenLP.Ui', 'Live')
+        self.LiveBGError = translate('OpenLP.Ui', 'Live Background Error')
+        self.LivePanel = translate('OpenLP.Ui', 'Live Panel')
+        self.LiveToolbar = translate('OpenLP.Ui', 'Live Toolbar')
+        self.Load = translate('OpenLP.Ui', 'Load')
+        self.Minutes = translate('OpenLP.Ui', 'm',
+            'The abbreviated unit for minutes')
+        self.Middle = translate('OpenLP.Ui', 'Middle')
+        self.New = translate('OpenLP.Ui', 'New')
+        self.NewService = translate('OpenLP.Ui', 'New Service')
+        self.NewTheme = translate('OpenLP.Ui', 'New Theme')
+        self.NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular')
+        self.NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural')
+        self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular')
+        self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
+        self.OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x')
+        self.OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0')
+        self.OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. '
+            'Do you wish to continue?')
+        self.OpenService = translate('OpenLP.Ui', 'Open Service')
+        self.Preview = translate('OpenLP.Ui', 'Preview')
+        self.PreviewPanel = translate('OpenLP.Ui', 'Preview Panel')
+        self.PrintServiceOrder = translate('OpenLP.Ui', 'Print Service Order')
+        self.ReplaceBG = translate('OpenLP.Ui', 'Replace Background')
+        self.ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background')
+        self.ResetBG = translate('OpenLP.Ui', 'Reset Background')
+        self.ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background')
+        self.Seconds = translate('OpenLP.Ui', 's',
+            'The abbreviated unit for seconds')
+        self.SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview')
+        self.Search = translate('OpenLP.Ui', 'Search')
+        self.SelectDelete = translate('OpenLP.Ui', 'You must select an item '
+            'to delete.')
+        self.SelectEdit = translate('OpenLP.Ui', 'You must select an item to '
+            'edit.')
+        self.Settings = translate('OpenLP.Ui', 'Settings')
+        self.SaveService = translate('OpenLP.Ui', 'Save Service')
+        self.Service = translate('OpenLP.Ui', 'Service')
+        self.StartTimeCode = unicode(translate('OpenLP.Ui', 'Start %s'))
+        self.Theme = translate('OpenLP.Ui', 'Theme', 'Singular')
+        self.Themes = translate('OpenLP.Ui', 'Themes', 'Plural')
+        self.Tools = translate('OpenLP.Ui', 'Tools')
+        self.Top = translate('OpenLP.Ui', 'Top')
+        self.VersePerSlide = translate('OpenLP.Ui', 'Verse Per Slide')
+        self.VersePerLine = translate('OpenLP.Ui', 'Verse Per Line')
+        self.Version = translate('OpenLP.Ui', 'Version')
+        self.View = translate('OpenLP.Ui', 'View')
+        self.ViewMode = translate('OpenLP.Ui', 'View Model')
 
 def add_welcome_page(parent, image):
     """
@@ -157,7 +175,8 @@
     accept_button = QtGui.QDialogButtonBox.Save
     if okay:
         accept_button = QtGui.QDialogButtonBox.Ok
-    button_box.setStandardButtons(accept_button | QtGui.QDialogButtonBox.Cancel)
+    button_box.setStandardButtons(
+        accept_button | QtGui.QDialogButtonBox.Cancel)
     button_box.setObjectName(u'%sButtonBox' % parent)
     QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'accepted()'),
         parent.accept)
@@ -184,11 +203,11 @@
         Should this message box question the user.
     """
     if question:
-        return QtGui.QMessageBox.critical(parent, UiStrings.Error, message,
+        return QtGui.QMessageBox.critical(parent, UiStrings().Error, message,
             QtGui.QMessageBox.StandardButtons(
             QtGui.QMessageBox.Yes | QtGui.QMessageBox.No))
     data = {u'message': message}
-    data[u'title'] = title if title else UiStrings.Error
+    data[u'title'] = title if title else UiStrings().Error
     return Receiver.send_message(u'openlp_error_message', data)
 
 def media_item_combo_box(parent, name):
@@ -218,7 +237,7 @@
     delete_button.setObjectName(u'deleteButton')
     delete_icon = icon if icon else u':/general/general_delete.png'
     delete_button.setIcon(build_icon(delete_icon))
-    delete_button.setText(UiStrings.Delete)
+    delete_button.setText(UiStrings().Delete)
     delete_button.setToolTip(
         translate('OpenLP.Ui', 'Delete the selected item.'))
     QtCore.QObject.connect(delete_button,
@@ -406,9 +425,9 @@
     verticalLabel.setText(translate('OpenLP.Ui', '&Vertical Align:'))
     form.verticalComboBox = QtGui.QComboBox(parent)
     form.verticalComboBox.setObjectName(u'VerticalComboBox')
-    form.verticalComboBox.addItem(UiStrings.Top)
-    form.verticalComboBox.addItem(UiStrings.Middle)
-    form.verticalComboBox.addItem(UiStrings.Bottom)
+    form.verticalComboBox.addItem(UiStrings().Top)
+    form.verticalComboBox.addItem(UiStrings().Middle)
+    form.verticalComboBox.addItem(UiStrings().Bottom)
     verticalLabel.setBuddy(form.verticalComboBox)
     layout.addRow(verticalLabel, form.verticalComboBox)
 

=== modified file 'openlp/core/ui/aboutdialog.py'
--- openlp/core/ui/aboutdialog.py	2011-04-03 13:35:58 +0000
+++ openlp/core/ui/aboutdialog.py	2011-04-15 22:41:19 +0000
@@ -87,7 +87,7 @@
         QtCore.QMetaObject.connectSlotsByName(aboutDialog)
 
     def retranslateUi(self, aboutDialog):
-        aboutDialog.setWindowTitle(u'%s OpenLP' % UiStrings.About)
+        aboutDialog.setWindowTitle(u'%s OpenLP' % UiStrings().About)
         self.aboutTextEdit.setPlainText(translate('OpenLP.AboutForm',
             'OpenLP <version><revision> - Open Source Lyrics '
             'Projection\n'
@@ -105,7 +105,7 @@
             'consider contributing by using the button below.'
         ))
         self.aboutNotebook.setTabText(
-            self.aboutNotebook.indexOf(self.aboutTab), UiStrings.About)
+            self.aboutNotebook.indexOf(self.aboutTab), UiStrings().About)
         lead = u'Raoul "superfly" Snyman'
         developers = [u'Tim "TRB143" Bentley', u'Jonathan "gushie" Corwin',
             u'Michael "cocooncrash" Gorven',
@@ -615,4 +615,4 @@
             self.aboutNotebook.indexOf(self.licenseTab),
             translate('OpenLP.AboutForm', 'License'))
         self.contributeButton.setText(translate('OpenLP.AboutForm',
-            'Contribute'))
+            'Contribute'))
\ No newline at end of file

=== modified file 'openlp/core/ui/advancedtab.py'
--- openlp/core/ui/advancedtab.py	2011-04-15 17:17:51 +0000
+++ openlp/core/ui/advancedtab.py	2011-04-15 22:41:19 +0000
@@ -127,7 +127,7 @@
         """
         Setup the interface translation strings.
         """
-        self.tabTitleVisible = UiStrings.Advanced
+        self.tabTitleVisible = UiStrings().Advanced
         self.uiGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'UI Settings'))
         self.recentLabel.setText(
             translate('OpenLP.AdvancedTab',
@@ -226,10 +226,10 @@
 
     def onDefaultBrowseButtonPressed(self):
         file_filters = u'%s;;%s (*.*) (*)' % (get_images_filter(),
-            UiStrings.AllFiles)
+            UiStrings().AllFiles)
         filename = QtGui.QFileDialog.getOpenFileName(self,
             translate('OpenLP.AdvancedTab', 'Open File'), '',
             file_filters)
         if filename:
             self.defaultFileEdit.setText(filename)
-        self.defaultFileEdit.setFocus()
+        self.defaultFileEdit.setFocus()
\ No newline at end of file

=== modified file 'openlp/core/ui/displaytagdialog.py'
--- openlp/core/ui/displaytagdialog.py	2011-03-24 19:04:02 +0000
+++ openlp/core/ui/displaytagdialog.py	2011-04-15 22:41:19 +0000
@@ -136,10 +136,10 @@
             translate('OpenLP.DisplayTagDialog', 'Start tag'))
         self.endTagLabel.setText(
             translate('OpenLP.DisplayTagDialog', 'End tag'))
-        self.deletePushButton.setText(UiStrings.Delete)
+        self.deletePushButton.setText(UiStrings().Delete)
         self.defaultPushButton.setText(
             translate('OpenLP.DisplayTagDialog', 'Default'))
-        self.newPushButton.setText(UiStrings.New)
+        self.newPushButton.setText(UiStrings().New)
         self.tagTableWidget.horizontalHeaderItem(0).setText(
             translate('OpenLP.DisplayTagDialog', 'Description'))
         self.tagTableWidget.horizontalHeaderItem(1).setText(
@@ -151,4 +151,4 @@
         self.tagTableWidget.setColumnWidth(0, 120)
         self.tagTableWidget.setColumnWidth(1, 40)
         self.tagTableWidget.setColumnWidth(2, 240)
-        self.tagTableWidget.setColumnWidth(3, 240)
+        self.tagTableWidget.setColumnWidth(3, 240)
\ No newline at end of file

=== modified file 'openlp/core/ui/exceptionform.py'
--- openlp/core/ui/exceptionform.py	2011-04-03 13:35:58 +0000
+++ openlp/core/ui/exceptionform.py	2011-04-15 22:41:19 +0000
@@ -178,11 +178,11 @@
             self,translate('ImagePlugin.ExceptionDialog',
             'Select Attachment'),
             SettingsManager.get_last_dir(u'exceptions'),
-            u'%s (*.*) (*)' % UiStrings.AllFiles)
+            u'%s (*.*) (*)' % UiStrings().AllFiles)
         log.info(u'New files(s) %s', unicode(files))
         if files:
             self.fileAttachment = unicode(files)
 
     def __buttonState(self, state):
         self.saveReportButton.setEnabled(state)
-        self.sendReportButton.setEnabled(state)
+        self.sendReportButton.setEnabled(state)
\ No newline at end of file

=== modified file 'openlp/core/ui/generaltab.py'
--- openlp/core/ui/generaltab.py	2011-04-13 19:12:47 +0000
+++ openlp/core/ui/generaltab.py	2011-04-15 22:41:19 +0000
@@ -238,7 +238,7 @@
         self.timeoutSpinBox.setSuffix(translate('OpenLP.GeneralTab', ' sec'))
         self.ccliGroupBox.setTitle(
             translate('OpenLP.GeneralTab', 'CCLI Details'))
-        self.numberLabel.setText(UiStrings.CCLINumberLabel)
+        self.numberLabel.setText(UiStrings().CCLINumberLabel)
         self.usernameLabel.setText(
             translate('OpenLP.GeneralTab', 'SongSelect username:'))
         self.passwordLabel.setText(
@@ -394,4 +394,4 @@
         """
         Called when the width, height, x position or y position has changed.
         """
-        self.overrideChanged = True
+        self.overrideChanged = True
\ No newline at end of file

=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py	2011-04-12 21:07:08 +0000
+++ openlp/core/ui/mainwindow.py	2011-04-15 22:41:19 +0000
@@ -163,82 +163,82 @@
             self.themeManagerDock)
         # Create the menu items
         action_list = ActionList.get_instance()
-        action_list.add_category(UiStrings.File, CategoryOrder.standardMenu)
+        action_list.add_category(UiStrings().File, CategoryOrder.standardMenu)
         self.FileNewItem = shortcut_action(mainWindow, u'FileNewItem',
             [QtGui.QKeySequence(u'Ctrl+N')],
             self.ServiceManagerContents.onNewServiceClicked,
-            u':/general/general_new.png', category=UiStrings.File)
+            u':/general/general_new.png', category=UiStrings().File)
         self.FileOpenItem = shortcut_action(mainWindow, u'FileOpenItem',
             [QtGui.QKeySequence(u'Ctrl+O')],
             self.ServiceManagerContents.onLoadServiceClicked,
-            u':/general/general_open.png', category=UiStrings.File)
+            u':/general/general_open.png', category=UiStrings().File)
         self.FileSaveItem = shortcut_action(mainWindow, u'FileSaveItem',
             [QtGui.QKeySequence(u'Ctrl+S')],
             self.ServiceManagerContents.saveFile,
-            u':/general/general_save.png', category=UiStrings.File)
+            u':/general/general_save.png', category=UiStrings().File)
         self.FileSaveAsItem = shortcut_action(mainWindow, u'FileSaveAsItem',
             [QtGui.QKeySequence(u'Ctrl+Shift+S')],
-            self.ServiceManagerContents.saveFileAs, category=UiStrings.File)
+            self.ServiceManagerContents.saveFileAs, category=UiStrings().File)
         self.printServiceOrderItem = shortcut_action(mainWindow,
             u'printServiceItem', [QtGui.QKeySequence(u'Ctrl+P')],
             self.ServiceManagerContents.printServiceOrder,
-            category=UiStrings.File)
+            category=UiStrings().File)
         self.FileExitItem = shortcut_action(mainWindow, u'FileExitItem',
             [QtGui.QKeySequence(u'Alt+F4')], mainWindow.close,
-            u':/system/system_exit.png', category=UiStrings.File)
-        action_list.add_category(UiStrings.Import, CategoryOrder.standardMenu)
+            u':/system/system_exit.png', category=UiStrings().File)
+        action_list.add_category(UiStrings().Import, CategoryOrder.standardMenu)
         self.ImportThemeItem = base_action(
-            mainWindow, u'ImportThemeItem', UiStrings.Import)
+            mainWindow, u'ImportThemeItem', UiStrings().Import)
         self.ImportLanguageItem = base_action(
-            mainWindow, u'ImportLanguageItem')#, UiStrings.Import)
-        action_list.add_category(UiStrings.Export, CategoryOrder.standardMenu)
+            mainWindow, u'ImportLanguageItem')#, UiStrings().Import)
+        action_list.add_category(UiStrings().Export, CategoryOrder.standardMenu)
         self.ExportThemeItem = base_action(
-            mainWindow, u'ExportThemeItem', UiStrings.Export)
+            mainWindow, u'ExportThemeItem', UiStrings().Export)
         self.ExportLanguageItem = base_action(
-            mainWindow, u'ExportLanguageItem')#, UiStrings.Export)
-        action_list.add_category(UiStrings.View, CategoryOrder.standardMenu)
+            mainWindow, u'ExportLanguageItem')#, UiStrings().Export)
+        action_list.add_category(UiStrings().View, CategoryOrder.standardMenu)
         self.ViewMediaManagerItem = shortcut_action(mainWindow,
             u'ViewMediaManagerItem', [QtGui.QKeySequence(u'F8')],
             self.toggleMediaManager, u':/system/system_mediamanager.png',
-            self.mediaManagerDock.isVisible(), UiStrings.View)
+            self.mediaManagerDock.isVisible(), UiStrings().View)
         self.ViewThemeManagerItem = shortcut_action(mainWindow,
             u'ViewThemeManagerItem', [QtGui.QKeySequence(u'F10')],
             self.toggleThemeManager,  u':/system/system_thememanager.png',
-            self.themeManagerDock.isVisible(), UiStrings.View)
+            self.themeManagerDock.isVisible(), UiStrings().View)
         self.ViewServiceManagerItem = shortcut_action(mainWindow,
             u'ViewServiceManagerItem', [QtGui.QKeySequence(u'F9')],
             self.toggleServiceManager, u':/system/system_servicemanager.png',
-            self.serviceManagerDock.isVisible(), UiStrings.View)
+            self.serviceManagerDock.isVisible(), UiStrings().View)
         self.ViewPreviewPanel = shortcut_action(mainWindow,
             u'ViewPreviewPanel', [QtGui.QKeySequence(u'F11')],
             self.setPreviewPanelVisibility, checked=previewVisible,
-            category=UiStrings.View)
+            category=UiStrings().View)
         self.ViewLivePanel = shortcut_action(mainWindow, u'ViewLivePanel',
             [QtGui.QKeySequence(u'F12')], self.setLivePanelVisibility,
-            checked=liveVisible, category=UiStrings.View)
-        action_list.add_category(UiStrings.ViewMode, CategoryOrder.standardMenu)
+            checked=liveVisible, category=UiStrings().View)
+        action_list.add_category(UiStrings().ViewMode, CategoryOrder.standardMenu)
         self.ModeDefaultItem = checkable_action(
-            mainWindow, u'ModeDefaultItem', category=UiStrings.ViewMode)
+            mainWindow, u'ModeDefaultItem', category=UiStrings().ViewMode)
         self.ModeSetupItem = checkable_action(
-            mainWindow, u'ModeLiveItem', category=UiStrings.ViewMode)
+            mainWindow, u'ModeLiveItem', category=UiStrings().ViewMode)
         self.ModeLiveItem = checkable_action(
-            mainWindow, u'ModeLiveItem', True, UiStrings.ViewMode)
+            mainWindow, u'ModeLiveItem', True, UiStrings().ViewMode)
         self.ModeGroup = QtGui.QActionGroup(mainWindow)
         self.ModeGroup.addAction(self.ModeDefaultItem)
         self.ModeGroup.addAction(self.ModeSetupItem)
         self.ModeGroup.addAction(self.ModeLiveItem)
         self.ModeDefaultItem.setChecked(True)
-        action_list.add_category(UiStrings.Tools, CategoryOrder.standardMenu)
+        action_list.add_category(UiStrings().Tools, CategoryOrder.standardMenu)
         self.ToolsAddToolItem = icon_action(mainWindow, u'ToolsAddToolItem',
-            u':/tools/tools_add.png', category=UiStrings.Tools)
+            u':/tools/tools_add.png', category=UiStrings().Tools)
         self.ToolsOpenDataFolder = icon_action(mainWindow,
             u'ToolsOpenDataFolder', u':/general/general_open.png',
-            category=UiStrings.Tools)
-        action_list.add_category(UiStrings.Settings, CategoryOrder.standardMenu)
+            category=UiStrings().Tools)
+        action_list.add_category(UiStrings().Settings, CategoryOrder.standardMenu)
         self.settingsPluginListItem = shortcut_action(mainWindow,
             u'settingsPluginListItem', [QtGui.QKeySequence(u'Alt+F7')],
             self.onPluginItemClicked, u':/system/settings_plugin_list.png',
-            category=UiStrings.Settings)
+            category=UiStrings().Settings)
         # i18n Language Items
         self.AutoLanguageItem = checkable_action(mainWindow,
             u'AutoLanguageItem', LanguageManager.auto_language)
@@ -255,25 +255,25 @@
         self.SettingsShortcutsItem = icon_action(mainWindow,
             u'SettingsShortcutsItem',
             u':/system/system_configure_shortcuts.png',
-            category=UiStrings.Settings)
+            category=UiStrings().Settings)
         self.DisplayTagItem = icon_action(mainWindow,
             u'DisplayTagItem', u':/system/tag_editor.png',
-            category=UiStrings.Settings)
+            category=UiStrings().Settings)
         self.SettingsConfigureItem = icon_action(mainWindow,
             u'SettingsConfigureItem', u':/system/system_settings.png',
-            category=UiStrings.Settings)
-        action_list.add_category(UiStrings.Help, CategoryOrder.standardMenu)
+            category=UiStrings().Settings)
+        action_list.add_category(UiStrings().Help, CategoryOrder.standardMenu)
         self.HelpDocumentationItem = icon_action(mainWindow,
             u'HelpDocumentationItem', u':/system/system_help_contents.png',
-            category=None)#UiStrings.Help)
+            category=None)#UiStrings().Help)
         self.HelpDocumentationItem.setEnabled(False)
         self.HelpAboutItem = shortcut_action(mainWindow, u'HelpAboutItem',
             [QtGui.QKeySequence(u'Ctrl+F1')], self.onHelpAboutItemClicked,
-            u':/system/system_about.png', category=UiStrings.Help)
+            u':/system/system_about.png', category=UiStrings().Help)
         self.HelpOnlineHelpItem = base_action(
-            mainWindow, u'HelpOnlineHelpItem', category=UiStrings.Help)
+            mainWindow, u'HelpOnlineHelpItem', category=UiStrings().Help)
         self.helpWebSiteItem = base_action(
-            mainWindow, u'helpWebSiteItem', category=UiStrings.Help)
+            mainWindow, u'helpWebSiteItem', category=UiStrings().Help)
         add_actions(self.FileImportMenu,
             (self.ImportThemeItem, self.ImportLanguageItem))
         add_actions(self.FileExportMenu,
@@ -320,7 +320,7 @@
         """
         Set up the translation system
         """
-        mainWindow.mainTitle = UiStrings.OLPV2
+        mainWindow.mainTitle = UiStrings().OLPV2
         mainWindow.setWindowTitle(mainWindow.mainTitle)
         self.FileMenu.setTitle(translate('OpenLP.MainWindow', '&File'))
         self.FileImportMenu.setTitle(translate('OpenLP.MainWindow', '&Import'))
@@ -339,14 +339,14 @@
         self.themeManagerDock.setWindowTitle(
             translate('OpenLP.MainWindow', 'Theme Manager'))
         self.FileNewItem.setText(translate('OpenLP.MainWindow', '&New'))
-        self.FileNewItem.setToolTip(UiStrings.NewService)
-        self.FileNewItem.setStatusTip(UiStrings.CreateService)
+        self.FileNewItem.setToolTip(UiStrings().NewService)
+        self.FileNewItem.setStatusTip(UiStrings().CreateService)
         self.FileOpenItem.setText(translate('OpenLP.MainWindow', '&Open'))
-        self.FileOpenItem.setToolTip(UiStrings.OpenService)
+        self.FileOpenItem.setToolTip(UiStrings().OpenService)
         self.FileOpenItem.setStatusTip(
             translate('OpenLP.MainWindow', 'Open an existing service.'))
         self.FileSaveItem.setText(translate('OpenLP.MainWindow', '&Save'))
-        self.FileSaveItem.setToolTip(UiStrings.SaveService)
+        self.FileSaveItem.setToolTip(UiStrings().SaveService)
         self.FileSaveItem.setStatusTip(
             translate('OpenLP.MainWindow', 'Save the current service to disk.'))
         self.FileSaveAsItem.setText(
@@ -355,7 +355,7 @@
             translate('OpenLP.MainWindow', 'Save Service As'))
         self.FileSaveAsItem.setStatusTip(translate('OpenLP.MainWindow',
             'Save the current service under a new name.'))
-        self.printServiceOrderItem.setText(UiStrings.PrintServiceOrder)
+        self.printServiceOrderItem.setText(UiStrings().PrintServiceOrder)
         self.printServiceOrderItem.setStatusTip(translate('OpenLP.MainWindow',
             'Print the current Service Order.'))
         self.FileExitItem.setText(
@@ -1011,4 +1011,4 @@
             self.recentFiles.insert(0, QtCore.QString(filename))
             while self.recentFiles.count() > maxRecentFiles:
                 # Don't care what API says takeLast works, removeLast doesn't!
-                self.recentFiles.takeLast()
+                self.recentFiles.takeLast()
\ No newline at end of file

=== modified file 'openlp/core/ui/plugindialog.py'
--- openlp/core/ui/plugindialog.py	2011-03-24 19:04:02 +0000
+++ openlp/core/ui/plugindialog.py	2011-04-15 22:41:19 +0000
@@ -78,11 +78,11 @@
             translate('OpenLP.PluginForm', 'Plugin List'))
         self.pluginInfoGroupBox.setTitle(
             translate('OpenLP.PluginForm', 'Plugin Details'))
-        self.versionLabel.setText(u'%s:' % UiStrings.Version)
-        self.aboutLabel.setText(u'%s:' % UiStrings.About)
+        self.versionLabel.setText(u'%s:' % UiStrings().Version)
+        self.aboutLabel.setText(u'%s:' % UiStrings().About)
         self.statusLabel.setText(
             translate('OpenLP.PluginForm', 'Status:'))
         self.statusComboBox.setItemText(0,
             translate('OpenLP.PluginForm', 'Active'))
         self.statusComboBox.setItemText(1,
-            translate('OpenLP.PluginForm', 'Inactive'))
+            translate('OpenLP.PluginForm', 'Inactive'))
\ No newline at end of file

=== modified file 'openlp/core/ui/printservicedialog.py'
--- openlp/core/ui/printservicedialog.py	2011-04-07 19:10:19 +0000
+++ openlp/core/ui/printservicedialog.py	2011-04-15 22:41:19 +0000
@@ -148,7 +148,7 @@
             QtCore.SIGNAL(u'toggled(bool)'), self.toggleOptions)
 
     def retranslateUi(self, printServiceDialog):
-        printServiceDialog.setWindowTitle(UiStrings.PrintServiceOrder)
+        printServiceDialog.setWindowTitle(UiStrings().PrintServiceOrder)
         self.slideTextCheckBox.setText(translate('OpenLP.PrintServiceForm',
             'Include slide text if available'))
         self.pageBreakAfterText.setText(translate('OpenLP.PrintServiceForm',
@@ -164,4 +164,4 @@
         self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.OneHundred])
         self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.SeventyFive])
         self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Fifty])
-        self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive])
+        self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive])
\ No newline at end of file

=== modified file 'openlp/core/ui/printserviceform.py'
--- openlp/core/ui/printserviceform.py	2011-04-14 14:51:05 +0000
+++ openlp/core/ui/printserviceform.py	2011-04-15 22:41:19 +0000
@@ -354,9 +354,9 @@
         Called when html copy check box is selected.
         """
         if value == QtCore.Qt.Checked:
-            self.copyTextButton.setText(UiStrings.CopyToHtml)
+            self.copyTextButton.setText(UiStrings().CopyToHtml)
         else:
-            self.copyTextButton.setText(UiStrings.CopyToText)
+            self.copyTextButton.setText(UiStrings().CopyToText)
 
     def onSlideTextCheckBoxChanged(self, state):
         """
@@ -380,4 +380,4 @@
             QtCore.QVariant(self.metaDataCheckBox.isChecked()))
         settings.setValue(u'print notes',
             QtCore.QVariant(self.notesCheckBox.isChecked()))
-        settings.endGroup()
+        settings.endGroup()
\ No newline at end of file

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2011-04-12 21:07:08 +0000
+++ openlp/core/ui/servicemanager.py	2011-04-15 22:41:19 +0000
@@ -111,18 +111,18 @@
         # Create the top toolbar
         self.toolbar = OpenLPToolbar(self)
         self.toolbar.addToolbarButton(
-            UiStrings.NewService, u':/general/general_new.png',
-            UiStrings.CreateService, self.onNewServiceClicked)
+            UiStrings().NewService, u':/general/general_new.png',
+            UiStrings().CreateService, self.onNewServiceClicked)
         self.toolbar.addToolbarButton(
-            UiStrings.OpenService, u':/general/general_open.png',
+            UiStrings().OpenService, u':/general/general_open.png',
             translate('OpenLP.ServiceManager', 'Load an existing service'),
             self.onLoadServiceClicked)
         self.toolbar.addToolbarButton(
-            UiStrings.SaveService, u':/general/general_save.png',
+            UiStrings().SaveService, u':/general/general_save.png',
             translate('OpenLP.ServiceManager', 'Save this service'),
             self.saveFile)
         self.toolbar.addSeparator()
-        self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings.Theme, self)
+        self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self)
         self.themeLabel.setMargin(3)
         self.themeLabel.setObjectName(u'themeLabel')
         self.toolbar.addToolbarWidget(u'ThemeLabel', self.themeLabel)
@@ -169,9 +169,10 @@
             self.onServiceTop, shortcuts=[QtCore.Qt.Key_Home])
         self.serviceManagerList.moveTop.setObjectName(u'moveTop')
         action_list = ActionList.get_instance()
-        action_list.add_category(UiStrings.Service, CategoryOrder.standardToolbar)
+        action_list.add_category(
+            UiStrings().Service, CategoryOrder.standardToolbar)
         action_list.add_action(
-            self.serviceManagerList.moveTop, UiStrings.Service)
+            self.serviceManagerList.moveTop, UiStrings().Service)
         self.serviceManagerList.moveUp = self.orderToolbar.addToolbarButton(
             translate('OpenLP.ServiceManager', 'Move &up'),
             u':/services/service_up.png',
@@ -179,7 +180,8 @@
             'Move item up one position in the service.'),
             self.onServiceUp, shortcuts=[QtCore.Qt.Key_PageUp])
         self.serviceManagerList.moveUp.setObjectName(u'moveUp')
-        action_list.add_action(self.serviceManagerList.moveUp, UiStrings.Service)
+        action_list.add_action(
+            self.serviceManagerList.moveUp, UiStrings().Service)
         self.serviceManagerList.moveDown = self.orderToolbar.addToolbarButton(
             translate('OpenLP.ServiceManager', 'Move &down'),
             u':/services/service_down.png',
@@ -188,7 +190,7 @@
             self.onServiceDown, shortcuts=[QtCore.Qt.Key_PageDown])
         self.serviceManagerList.moveDown.setObjectName(u'moveDown')
         action_list.add_action(
-            self.serviceManagerList.moveDown, UiStrings.Service)
+            self.serviceManagerList.moveDown, UiStrings().Service)
         self.serviceManagerList.moveBottom = self.orderToolbar.addToolbarButton(
             translate('OpenLP.ServiceManager', 'Move to &bottom'),
             u':/services/service_bottom.png',
@@ -197,7 +199,7 @@
             self.onServiceEnd, shortcuts=[QtCore.Qt.Key_End])
         self.serviceManagerList.moveBottom.setObjectName(u'moveBottom')
         action_list.add_action(
-            self.serviceManagerList.moveBottom, UiStrings.Service)
+            self.serviceManagerList.moveBottom, UiStrings().Service)
         self.serviceManagerList.down = self.orderToolbar.addToolbarButton(
             translate('OpenLP.ServiceManager', 'Move &down'),
             None,
@@ -231,7 +233,8 @@
             'Expand all the service items.'),
             self.onExpandAll, shortcuts=[QtCore.Qt.Key_Plus])
         self.serviceManagerList.expand.setObjectName(u'expand')
-        action_list.add_action(self.serviceManagerList.expand, UiStrings.Service)
+        action_list.add_action(
+            self.serviceManagerList.expand, UiStrings().Service)
         self.serviceManagerList.collapse = self.orderToolbar.addToolbarButton(
             translate('OpenLP.ServiceManager', '&Collapse all'),
             u':/services/service_collapse_all.png',
@@ -240,7 +243,7 @@
             self.onCollapseAll, shortcuts=[QtCore.Qt.Key_Minus])
         self.serviceManagerList.collapse.setObjectName(u'collapse')
         action_list.add_action(
-            self.serviceManagerList.collapse, UiStrings.Service)
+            self.serviceManagerList.collapse, UiStrings().Service)
         self.orderToolbar.addSeparator()
         self.serviceManagerList.makeLive = self.orderToolbar.addToolbarButton(
             translate('OpenLP.ServiceManager', 'Go Live'),
@@ -250,7 +253,7 @@
             shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return])
         self.serviceManagerList.makeLive.setObjectName(u'orderToolbar')
         action_list.add_action(
-            self.serviceManagerList.makeLive, UiStrings.Service)
+            self.serviceManagerList.makeLive, UiStrings().Service)
         self.layout.addWidget(self.orderToolbar)
         # Connect up our signals and slots
         QtCore.QObject.connect(self.themeComboBox,
@@ -525,7 +528,7 @@
         save the file.
         """
         fileName = unicode(QtGui.QFileDialog.getSaveFileName(self.mainwindow,
-            UiStrings.SaveService,
+            UiStrings().SaveService,
             SettingsManager.get_last_dir(
             self.mainwindow.serviceSettingsSection),
             translate('OpenLP.ServiceManager', 'OpenLP Service Files (*.osz)')))

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2011-04-14 21:34:35 +0000
+++ openlp/core/ui/slidecontroller.py	2011-04-15 22:41:19 +0000
@@ -88,11 +88,11 @@
         # Type label for the top of the slide controller
         self.typeLabel = QtGui.QLabel(self.panel)
         if self.isLive:
-            self.typeLabel.setText(UiStrings.Live)
+            self.typeLabel.setText(UiStrings().Live)
             self.split = 1
             self.typePrefix = u'live'
         else:
-            self.typeLabel.setText(UiStrings.Preview)
+            self.typeLabel.setText(UiStrings().Preview)
             self.split = 0
             self.typePrefix = u'preview'
         self.typeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;')
@@ -161,18 +161,18 @@
                 translate('OpenLP.SlideController', 'Hide'), self.toolbar))
             self.blankScreen = shortcut_action(self.hideMenu, u'blankScreen',
                 [QtCore.Qt.Key_Period], self.onBlankDisplay,
-                u':/slides/slide_blank.png', False, UiStrings.LiveToolbar)
+                u':/slides/slide_blank.png', False, UiStrings().LiveToolbar)
             self.blankScreen.setText(
                 translate('OpenLP.SlideController', 'Blank Screen'))
             self.themeScreen = shortcut_action(self.hideMenu, u'themeScreen',
                 [QtGui.QKeySequence(u'T')], self.onThemeDisplay,
-                u':/slides/slide_theme.png', False, UiStrings.LiveToolbar)
+                u':/slides/slide_theme.png', False, UiStrings().LiveToolbar)
             self.themeScreen.setText(
                 translate('OpenLP.SlideController', 'Blank to Theme'))
             self.desktopScreen = shortcut_action(self.hideMenu,
                 u'desktopScreen', [QtGui.QKeySequence(u'D')],
                 self.onHideDisplay, u':/slides/slide_desktop.png', False,
-                UiStrings.LiveToolbar)
+                UiStrings().LiveToolbar)
             self.desktopScreen.setText(
                 translate('OpenLP.SlideController', 'Show Desktop'))
             self.hideMenu.setDefaultAction(self.blankScreen)
@@ -194,7 +194,7 @@
             self.delaySpinBox.setMinimum(1)
             self.delaySpinBox.setMaximum(180)
             self.toolbar.addToolbarWidget(u'Image SpinBox', self.delaySpinBox)
-            self.delaySpinBox.setSuffix(UiStrings.Seconds)
+            self.delaySpinBox.setSuffix(UiStrings().Seconds)
             self.delaySpinBox.setToolTip(translate('OpenLP.SlideController',
                 'Delay between slides in seconds'))
         else:
@@ -376,21 +376,21 @@
         self.nextItem.setObjectName(u'nextItemLive')
         action_list = ActionList.get_instance()
         action_list.add_category(
-            UiStrings.LiveToolbar, CategoryOrder.standardToolbar)
+            UiStrings().LiveToolbar, CategoryOrder.standardToolbar)
         action_list.add_action(self.previousItem)
         action_list.add_action(self.nextItem)
         self.previousService = shortcut_action(parent, u'previousService',
-            [QtCore.Qt.Key_Left], self.servicePrevious, UiStrings.LiveToolbar)
+            [QtCore.Qt.Key_Left], self.servicePrevious, UiStrings().LiveToolbar)
         self.previousService.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
         self.previousService.setText(
             translate('OpenLP.SlideController', 'Previous Service'))
         self.nextService = shortcut_action(parent, 'nextService',
-            [QtCore.Qt.Key_Right], self.serviceNext, UiStrings.LiveToolbar)
+            [QtCore.Qt.Key_Right], self.serviceNext, UiStrings().LiveToolbar)
         self.nextService.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
         self.nextService.setText(
             translate('OpenLP.SlideController', 'Next Service'))
         self.escapeItem = shortcut_action(parent, 'escapeItem',
-            [QtCore.Qt.Key_Escape], self.liveEscape, UiStrings.LiveToolbar)
+            [QtCore.Qt.Key_Escape], self.liveEscape, UiStrings().LiveToolbar)
         self.escapeItem.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut)
         self.escapeItem.setText(
             translate('OpenLP.SlideController', 'Escape Item'))
@@ -1150,4 +1150,4 @@
         elif self.desktopScreen.isChecked():
             return HideMode.Screen
         else:
-            return None
+            return None
\ No newline at end of file

=== modified file 'openlp/core/ui/starttimedialog.py'
--- openlp/core/ui/starttimedialog.py	2011-03-26 20:28:05 +0000
+++ openlp/core/ui/starttimedialog.py	2011-04-15 22:41:19 +0000
@@ -107,15 +107,15 @@
     def retranslateUi(self, StartTimeDialog):
         self.setWindowTitle(translate('OpenLP.StartTimeForm',
             'Item Start and Finish Time'))
-        self.hourSpinBox.setSuffix(UiStrings.Hours)
-        self.minuteSpinBox.setSuffix(UiStrings.Minutes)
-        self.secondSpinBox.setSuffix(UiStrings.Seconds)
-        self.hourFinishSpinBox.setSuffix(UiStrings.Hours)
-        self.minuteFinishSpinBox.setSuffix(UiStrings.Minutes)
-        self.secondFinishSpinBox.setSuffix(UiStrings.Seconds)
+        self.hourSpinBox.setSuffix(UiStrings().Hours)
+        self.minuteSpinBox.setSuffix(UiStrings().Minutes)
+        self.secondSpinBox.setSuffix(UiStrings().Seconds)
+        self.hourFinishSpinBox.setSuffix(UiStrings().Hours)
+        self.minuteFinishSpinBox.setSuffix(UiStrings().Minutes)
+        self.secondFinishSpinBox.setSuffix(UiStrings().Seconds)
         self.hourLabel.setText(translate('OpenLP.StartTimeForm', 'Hours:'))
         self.minuteLabel.setText(translate('OpenLP.StartTimeForm', 'Minutes:'))
         self.secondLabel.setText(translate('OpenLP.StartTimeForm', 'Seconds:'))
         self.startLabel.setText(translate('OpenLP.StartTimeForm', 'Start'))
         self.finishLabel.setText(translate('OpenLP.StartTimeForm', 'Finish'))
-        self.lengthLabel.setText(translate('OpenLP.StartTimeForm', 'Length'))
+        self.lengthLabel.setText(translate('OpenLP.StartTimeForm', 'Length'))
\ No newline at end of file

=== modified file 'openlp/core/ui/starttimeform.py'
--- openlp/core/ui/starttimeform.py	2011-03-26 19:50:15 +0000
+++ openlp/core/ui/starttimeform.py	2011-04-15 22:41:19 +0000
@@ -53,11 +53,12 @@
         self.hourFinishSpinBox.setValue(hours)
         self.minuteFinishSpinBox.setValue(minutes)
         self.secondFinishSpinBox.setValue(seconds)
-        self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), UiStrings.Hours))
+        self.hourFinishLabel.setText(u'%s%s' % (unicode(hour),
+            UiStrings().Hours))
         self.minuteFinishLabel.setText(u'%s%s' %
-            (unicode(minutes), UiStrings.Minutes))
+            (unicode(minutes), UiStrings().Minutes))
         self.secondFinishLabel.setText(u'%s%s' %
-            (unicode(seconds), UiStrings.Seconds))
+            (unicode(seconds), UiStrings().Seconds))
         return QtGui.QDialog.exec_(self)
 
     def accept(self):

=== modified file 'openlp/core/ui/themeform.py'
--- openlp/core/ui/themeform.py	2011-04-11 13:15:47 +0000
+++ openlp/core/ui/themeform.py	2011-04-15 22:41:19 +0000
@@ -290,7 +290,7 @@
                 'Edit Theme - %s')) % self.theme.theme_name)
             self.next()
         else:
-            self.setWindowTitle(UiStrings.NewTheme)
+            self.setWindowTitle(UiStrings().NewTheme)
         return QtGui.QWizard.exec_(self)
 
     def initializePage(self, id):
@@ -473,7 +473,7 @@
         """
         images_filter = get_images_filter()
         images_filter = u'%s;;%s (*.*) (*)' % (
-            images_filter, UiStrings.AllFiles)
+            images_filter, UiStrings().AllFiles)
         filename = QtGui.QFileDialog.getOpenFileName(self,
             translate('OpenLP.ThemeForm', 'Select Image'), u'',
             images_filter)
@@ -589,4 +589,4 @@
             QtGui.QColor(field), self)
         if new_color.isValid():
             field = new_color.name()
-        return field
+        return field
\ No newline at end of file

=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py	2011-04-10 18:59:29 +0000
+++ openlp/core/ui/thememanager.py	2011-04-15 22:41:19 +0000
@@ -63,7 +63,7 @@
         self.layout.setMargin(0)
         self.layout.setObjectName(u'layout')
         self.toolbar = OpenLPToolbar(self)
-        self.toolbar.addToolbarButton(UiStrings.NewTheme,
+        self.toolbar.addToolbarButton(UiStrings().NewTheme,
             u':/themes/theme_new.png',
             translate('OpenLP.ThemeManager', 'Create a new theme.'),
             self.onAddTheme)
@@ -449,7 +449,7 @@
             # No themes have been found so create one
             if len(files) == 0:
                 theme = ThemeXML()
-                theme.theme_name = UiStrings.Default
+                theme.theme_name = UiStrings().Default
                 self._writeTheme(theme, None, None)
                 QtCore.QSettings().setValue(
                     self.settingsSection + u'/global theme',
@@ -803,4 +803,4 @@
             vAlignCorrection = VerticalType.Bottom
         newtheme.display_horizontal_align = theme.HorizontalAlign
         newtheme.display_vertical_align = vAlignCorrection
-        return newtheme.extract_xml()
+        return newtheme.extract_xml()
\ No newline at end of file

=== modified file 'openlp/core/ui/themestab.py'
--- openlp/core/ui/themestab.py	2011-04-13 19:12:47 +0000
+++ openlp/core/ui/themestab.py	2011-04-15 22:41:19 +0000
@@ -102,7 +102,7 @@
             QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
 
     def retranslateUi(self):
-        self.tabTitleVisible = UiStrings.Themes
+        self.tabTitleVisible = UiStrings().Themes
         self.GlobalGroupBox.setTitle(
             translate('OpenLP.ThemesTab', 'Global Theme'))
         self.LevelGroupBox.setTitle(
@@ -203,4 +203,4 @@
         if not preview.isNull():
             preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio,
                 QtCore.Qt.SmoothTransformation)
-        self.DefaultListView.setPixmap(preview)
+        self.DefaultListView.setPixmap(preview)
\ No newline at end of file

=== modified file 'openlp/core/ui/themewizard.py'
--- openlp/core/ui/themewizard.py	2011-03-24 19:04:02 +0000
+++ openlp/core/ui/themewizard.py	2011-04-15 22:41:19 +0000
@@ -424,7 +424,7 @@
         self.backgroundComboBox.setItemText(BackgroundType.Gradient,
             translate('OpenLP.ThemeWizard', 'Gradient'))
         self.backgroundComboBox.setItemText(
-            BackgroundType.Image, UiStrings.Image)
+            BackgroundType.Image, UiStrings().Image)
         self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:'))
         self.gradientStartLabel.setText(
             translate(u'OpenLP.ThemeWizard', 'Starting color:'))
@@ -442,7 +442,7 @@
             translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right'))
         self.gradientComboBox.setItemText(BackgroundGradientType.LeftBottom,
             translate('OpenLP.ThemeWizard', 'Bottom Left - Top Right'))
-        self.imageLabel.setText(u'%s:' % UiStrings.Image)
+        self.imageLabel.setText(u'%s:' % UiStrings().Image)
         self.mainAreaPage.setTitle(
             translate('OpenLP.ThemeWizard', 'Main Area Font Details'))
         self.mainAreaPage.setSubTitle(
@@ -451,17 +451,17 @@
         self.mainFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:'))
         self.mainColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:'))
         self.mainSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
-        self.mainSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
+        self.mainSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
         self.lineSpacingLabel.setText(
             translate('OpenLP.ThemeWizard', 'Line Spacing:'))
-        self.lineSpacingSpinBox.setSuffix(UiStrings.FontSizePtUnit)
+        self.lineSpacingSpinBox.setSuffix(UiStrings().FontSizePtUnit)
         self.outlineCheckBox.setText(
             translate('OpenLP.ThemeWizard', '&Outline:'))
         self.outlineSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
-        self.outlineSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
+        self.outlineSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
         self.shadowCheckBox.setText(translate('OpenLP.ThemeWizard', '&Shadow:'))
         self.shadowSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
-        self.shadowSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
+        self.shadowSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
         self.mainBoldCheckBox.setText(translate('OpenLP.ThemeWizard', 'Bold'))
         self.mainItalicsCheckBox.setText(
             translate('OpenLP.ThemeWizard', 'Italic'))
@@ -473,7 +473,7 @@
         self.footerFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:'))
         self.footerColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:'))
         self.footerSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
-        self.footerSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
+        self.footerSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
         self.alignmentPage.setTitle(
             translate('OpenLP.ThemeWizard', 'Text Formatting Details'))
         self.alignmentPage.setSubTitle(
@@ -537,4 +537,4 @@
         labelWidth = max(self.backgroundLabel.minimumSizeHint().width(),
             self.horizontalLabel.minimumSizeHint().width())
         self.spacer.changeSize(labelWidth, 0,
-            QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+            QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
\ No newline at end of file

=== modified file 'openlp/core/ui/wizard.py'
--- openlp/core/ui/wizard.py	2011-03-24 19:04:02 +0000
+++ openlp/core/ui/wizard.py	2011-04-15 22:41:19 +0000
@@ -212,11 +212,11 @@
         """
         if filters:
             filters += u';;'
-        filters += u'%s (*)' % UiStrings.AllFiles
+        filters += u'%s (*)' % UiStrings().AllFiles
         filename = QtGui.QFileDialog.getOpenFileName(self, title,
             os.path.dirname(SettingsManager.get_last_dir(
             self.plugin.settingsSection, 1)), filters)
         if filename:
             editbox.setText(filename)
             SettingsManager.set_last_dir(self.plugin.settingsSection,
-                filename, 1)
+                filename, 1)
\ No newline at end of file

=== modified file 'openlp/plugins/alerts/alertsplugin.py'
--- openlp/plugins/alerts/alertsplugin.py	2011-04-13 18:20:09 +0000
+++ openlp/plugins/alerts/alertsplugin.py	2011-04-15 22:41:19 +0000
@@ -77,7 +77,7 @@
         Plugin.initialise(self)
         self.toolsAlertItem.setVisible(True)
         action_list = ActionList.get_instance()
-        action_list.add_action(self.toolsAlertItem, UiStrings.Tools)
+        action_list.add_action(self.toolsAlertItem, UiStrings().Tools)
         self.liveController.alertTab = self.settings_tab
 
     def finalise(self):
@@ -118,4 +118,4 @@
         ## Name for MediaDockManager, SettingsManager ##
         self.textStrings[StringContent.VisibleName] = {
             u'title': translate('AlertsPlugin', 'Alerts', 'container title')
-        }
+        }
\ No newline at end of file

=== modified file 'openlp/plugins/alerts/lib/alertstab.py'
--- openlp/plugins/alerts/lib/alertstab.py	2011-04-13 19:12:47 +0000
+++ openlp/plugins/alerts/lib/alertstab.py	2011-04-15 22:41:19 +0000
@@ -109,12 +109,12 @@
             translate('AlertsPlugin.AlertsTab', 'Background color:'))
         self.FontSizeLabel.setText(
             translate('AlertsPlugin.AlertsTab', 'Font size:'))
-        self.FontSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit)
+        self.FontSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
         self.TimeoutLabel.setText(
             translate('AlertsPlugin.AlertsTab', 'Alert timeout:'))
-        self.TimeoutSpinBox.setSuffix(UiStrings.Seconds)
-        self.PreviewGroupBox.setTitle(UiStrings.Preview)
-        self.FontPreview.setText(UiStrings.OLPV2)
+        self.TimeoutSpinBox.setSuffix(UiStrings().Seconds)
+        self.PreviewGroupBox.setTitle(UiStrings().Preview)
+        self.FontPreview.setText(UiStrings().OLPV2)
 
     def onBackgroundColorButtonClicked(self):
         new_color = QtGui.QColorDialog.getColor(
@@ -191,4 +191,4 @@
         font.setPointSize(self.font_size)
         self.FontPreview.setFont(font)
         self.FontPreview.setStyleSheet(u'background-color: %s; color: %s' %
-            (self.bg_color, self.font_color))
+            (self.bg_color, self.font_color))
\ No newline at end of file

=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py	2011-04-09 16:11:02 +0000
+++ openlp/plugins/bibles/bibleplugin.py	2011-04-15 22:41:19 +0000
@@ -53,9 +53,9 @@
         Plugin.initialise(self)
         self.importBibleItem.setVisible(True)
         action_list = ActionList.get_instance()
-        action_list.add_action(self.importBibleItem, UiStrings.Import)
+        action_list.add_action(self.importBibleItem, UiStrings().Import)
         # Do not add the action to the list yet.
-        #action_list.add_action(self.exportBibleItem, UiStrings.Export)
+        #action_list.add_action(self.exportBibleItem, UiStrings().Export)
         # Set to invisible until we can export bibles
         self.exportBibleItem.setVisible(False)
 
@@ -67,9 +67,9 @@
         self.manager.finalise()
         Plugin.finalise(self)
         action_list = ActionList.get_instance()
-        action_list.remove_action(self.importBibleItem, UiStrings.Import)
+        action_list.remove_action(self.importBibleItem, UiStrings().Import)
         self.importBibleItem.setVisible(False)
-        #action_list.remove_action(self.exportBibleItem, UiStrings.Export)
+        #action_list.remove_action(self.exportBibleItem, UiStrings().Export)
         self.exportBibleItem.setVisible(False)
 
     def addImportMenuItem(self, import_menu):
@@ -146,4 +146,4 @@
             u'service': translate('BiblesPlugin',
                 'Add the selected Bible to the service')
         }
-        self.setPluginUiTextStrings(tooltips)
+        self.setPluginUiTextStrings(tooltips)
\ No newline at end of file

=== modified file 'openlp/plugins/bibles/forms/bibleimportform.py'
--- openlp/plugins/bibles/forms/bibleimportform.py	2011-04-11 15:01:42 +0000
+++ openlp/plugins/bibles/forms/bibleimportform.py	2011-04-15 22:41:19 +0000
@@ -377,7 +377,7 @@
         self.formatComboBox.setItemText(BibleFormat.OpenSong, WizardStrings.OS)
         self.formatComboBox.setItemText(BibleFormat.WebDownload,
             translate('BiblesPlugin.ImportWizardForm', 'Web Download'))
-        self.formatComboBox.setItemText(BibleFormat.OpenLP1, UiStrings.OLPV1)
+        self.formatComboBox.setItemText(BibleFormat.OpenLP1, UiStrings().OLPV1)
         self.openlp1FileLabel.setText(
             translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
         self.osisFileLabel.setText(
@@ -451,13 +451,13 @@
         elif self.currentPage() == self.selectPage:
             if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS:
                 if not self.field(u'osis_location').toString():
-                    critical_error_message_box(UiStrings.NFSs,
+                    critical_error_message_box(UiStrings().NFSs,
                         WizardStrings.YouSpecifyFile % WizardStrings.OSIS)
                     self.osisFileEdit.setFocus()
                     return False
             elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV:
                 if not self.field(u'csv_testamentsfile').toString():
-                    answer = critical_error_message_box(UiStrings.NFSs,
+                    answer = critical_error_message_box(UiStrings().NFSs,
                         translate('BiblesPlugin.ImportWizardForm',
                         'You have not specified a testaments file. Do you '
                         'want to proceed with the import?'), question=True)
@@ -465,14 +465,14 @@
                         self.csvTestamentsEdit.setFocus()
                         return False
                 if not self.field(u'csv_booksfile').toString():
-                    critical_error_message_box(UiStrings.NFSs,
+                    critical_error_message_box(UiStrings().NFSs,
                         translate('BiblesPlugin.ImportWizardForm',
                         'You need to specify a file with books of '
                         'the Bible to use in the import.'))
                     self.csvBooksEdit.setFocus()
                     return False
                 elif not self.field(u'csv_versefile').toString():
-                    critical_error_message_box(UiStrings.NFSs,
+                    critical_error_message_box(UiStrings().NFSs,
                         translate('BiblesPlugin.ImportWizardForm',
                         'You need to specify a file of Bible '
                         'verses to import.'))
@@ -481,14 +481,14 @@
             elif self.field(u'source_format').toInt()[0] == \
                 BibleFormat.OpenSong:
                 if not self.field(u'opensong_file').toString():
-                    critical_error_message_box(UiStrings.NFSs,
+                    critical_error_message_box(UiStrings().NFSs,
                         WizardStrings.YouSpecifyFile % WizardStrings.OS)
                     self.openSongFileEdit.setFocus()
                     return False
             elif self.field(u'source_format').toInt()[0] == BibleFormat.OpenLP1:
                 if not self.field(u'openlp1_location').toString():
-                    critical_error_message_box(UiStrings.NFSs,
-                        WizardStrings.YouSpecifyFile % UiStrings.OLPV1)
+                    critical_error_message_box(UiStrings().NFSs,
+                        WizardStrings.YouSpecifyFile % UiStrings().OLPV1)
                     self.openlp1FileEdit.setFocus()
                     return False
             return True
@@ -497,13 +497,13 @@
             license_copyright = \
                 unicode(self.field(u'license_copyright').toString())
             if not license_version:
-                critical_error_message_box(UiStrings.EmptyField,
+                critical_error_message_box(UiStrings().EmptyField,
                     translate('BiblesPlugin.ImportWizardForm',
                     'You need to specify a version name for your Bible.'))
                 self.versionNameEdit.setFocus()
                 return False
             elif not license_copyright:
-                critical_error_message_box(UiStrings.EmptyField,
+                critical_error_message_box(UiStrings().EmptyField,
                     translate('BiblesPlugin.ImportWizardForm',
                     'You need to set a copyright for your Bible. '
                     'Bibles in the Public Domain need to be marked as such.'))
@@ -576,7 +576,7 @@
         """
         Show the file open dialog for the openlp.org 1.x file.
         """
-        self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV1,
+        self.getFileName(WizardStrings.OpenTypeFile % UiStrings().OLPV1,
             self.openlp1FileEdit, u'%s (*.bible)' %
             translate('BiblesPlugin.ImportWizardForm',
             'openlp.org 1.x Bible Files'))
@@ -765,4 +765,4 @@
             self.progressLabel.setText(translate(
                 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.'))
             del self.manager.db_cache[importer.name]
-            delete_database(self.plugin.settingsSection, importer.file)
+            delete_database(self.plugin.settingsSection, importer.file)
\ No newline at end of file

=== modified file 'openlp/plugins/bibles/lib/biblestab.py'
--- openlp/plugins/bibles/lib/biblestab.py	2011-04-13 19:12:47 +0000
+++ openlp/plugins/bibles/lib/biblestab.py	2011-04-15 22:41:19 +0000
@@ -118,16 +118,16 @@
         self.newChaptersCheckBox.setText(
             translate('BiblesPlugin.BiblesTab',
             'Only show new chapter numbers'))
-        self.layoutStyleLabel.setText(UiStrings.LayoutStyle)
-        self.displayStyleLabel.setText(UiStrings.DisplayStyle)
+        self.layoutStyleLabel.setText(UiStrings().LayoutStyle)
+        self.displayStyleLabel.setText(UiStrings().DisplayStyle)
         self.bibleThemeLabel.setText(
             translate('BiblesPlugin.BiblesTab', 'Bible theme:'))
         self.layoutStyleComboBox.setItemText(LayoutStyle.VersePerSlide,
-            UiStrings.VersePerSlide)
+            UiStrings().VersePerSlide)
         self.layoutStyleComboBox.setItemText(LayoutStyle.VersePerLine,
-            UiStrings.VersePerLine)
+            UiStrings().VersePerLine)
         self.layoutStyleComboBox.setItemText(LayoutStyle.Continuous,
-            UiStrings.Continuous)
+            UiStrings().Continuous)
         self.displayStyleComboBox.setItemText(DisplayStyle.NoBrackets,
             translate('BiblesPlugin.BiblesTab', 'No Brackets'))
         self.displayStyleComboBox.setItemText(DisplayStyle.Round,
@@ -207,4 +207,4 @@
         self.bibleThemeComboBox.addItem(u'')
         for theme in theme_list:
             self.bibleThemeComboBox.addItem(theme)
-        find_and_set_in_combo_box(self.bibleThemeComboBox, self.bible_theme)
+        find_and_set_in_combo_box(self.bibleThemeComboBox, self.bible_theme)
\ No newline at end of file

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2011-04-15 20:47:19 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2011-04-15 22:41:19 +0000
@@ -193,7 +193,7 @@
         self.advancedSearchButtonLayout.addWidget(self.advancedSearchButton)
         self.advancedLayout.addLayout(
             self.advancedSearchButtonLayout, 7, 0, 1, 3)
-        self.searchTabWidget.addTab(self.advancedTab, UiStrings.Advanced)
+        self.searchTabWidget.addTab(self.advancedTab, UiStrings().Advanced)
         # Add the search tab widget to the page layout.
         self.pageLayout.addWidget(self.searchTabWidget)
         # Combo Boxes
@@ -242,15 +242,15 @@
 
     def retranslateUi(self):
         log.debug(u'retranslateUi')
-        self.quickVersionLabel.setText(u'%s:' % UiStrings.Version)
+        self.quickVersionLabel.setText(u'%s:' % UiStrings().Version)
         self.quickSecondLabel.setText(
             translate('BiblesPlugin.MediaItem', 'Second:'))
         self.quickSearchLabel.setText(
             translate('BiblesPlugin.MediaItem', 'Find:'))
-        self.quickSearchButton.setText(UiStrings.Search)
+        self.quickSearchButton.setText(UiStrings().Search)
         self.quickClearLabel.setText(
             translate('BiblesPlugin.MediaItem', 'Results:'))
-        self.advancedVersionLabel.setText(u'%s:' % UiStrings.Version)
+        self.advancedVersionLabel.setText(u'%s:' % UiStrings().Version)
         self.advancedSecondLabel.setText(
             translate('BiblesPlugin.MediaItem', 'Second:'))
         self.advancedBookLabel.setText(
@@ -265,22 +265,22 @@
             translate('BiblesPlugin.MediaItem', 'To:'))
         self.advancedClearLabel.setText(
             translate('BiblesPlugin.MediaItem', 'Results:'))
-        self.advancedSearchButton.setText(UiStrings.Search)
-        self.quickClearComboBox.addItem(
-            translate('BiblesPlugin.MediaItem', 'Clear'))
-        self.quickClearComboBox.addItem(
-            translate('BiblesPlugin.MediaItem', 'Keep'))
-        self.advancedClearComboBox.addItem(
-            translate('BiblesPlugin.MediaItem', 'Clear'))
-        self.advancedClearComboBox.addItem(
-            translate('BiblesPlugin.MediaItem', 'Keep'))
-        self.quickLayoutLabel.setText(UiStrings.LayoutStyle)
+        self.advancedSearchButton.setText(UiStrings().Search)
+        self.quickClearComboBox.addItem(
+            translate('BiblesPlugin.MediaItem', 'Clear'))
+        self.quickClearComboBox.addItem(
+            translate('BiblesPlugin.MediaItem', 'Keep'))
+        self.advancedClearComboBox.addItem(
+            translate('BiblesPlugin.MediaItem', 'Clear'))
+        self.advancedClearComboBox.addItem(
+            translate('BiblesPlugin.MediaItem', 'Keep'))
+        self.quickLayoutLabel.setText(UiStrings().LayoutStyle)
         self.quickLayoutComboBox.setItemText(LayoutStyle.VersePerSlide,
-            UiStrings.VersePerSlide)
+            UiStrings().VersePerSlide)
         self.quickLayoutComboBox.setItemText(LayoutStyle.VersePerLine,
-            UiStrings.VersePerLine)
+            UiStrings().VersePerLine)
         self.quickLayoutComboBox.setItemText(LayoutStyle.Continuous,
-            UiStrings.Continuous)
+            UiStrings().Continuous)
 
     def initialise(self):
         log.debug(u'bible manager initialise')
@@ -849,4 +849,4 @@
             self.settings.layout_style)
         QtCore.QSettings().setValue(
             self.settingsSection + u'/verse layout style',
-            QtCore.QVariant(self.settings.layout_style))
+            QtCore.QVariant(self.settings.layout_style))
\ No newline at end of file

=== modified file 'openlp/plugins/custom/forms/editcustomdialog.py'
--- openlp/plugins/custom/forms/editcustomdialog.py	2011-03-24 19:04:02 +0000
+++ openlp/plugins/custom/forms/editcustomdialog.py	2011-04-15 22:41:19 +0000
@@ -107,11 +107,11 @@
             translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides'))
         self.titleLabel.setText(
             translate('CustomPlugin.EditCustomForm', '&Title:'))
-        self.addButton.setText(UiStrings.Add)
+        self.addButton.setText(UiStrings().Add)
         self.addButton.setToolTip(
             translate('CustomPlugin.EditCustomForm', 'Add a new slide at '
             'bottom.'))
-        self.editButton.setText(UiStrings.Edit)
+        self.editButton.setText(UiStrings().Edit)
         self.editButton.setToolTip(
             translate('CustomPlugin.EditCustomForm', 'Edit the selected '
             'slide.'))
@@ -124,4 +124,4 @@
             translate('CustomPlugin.EditCustomForm', 'The&me:'))
         self.creditLabel.setText(
             translate('CustomPlugin.EditCustomForm', '&Credits:'))
-        self.previewButton.setText(UiStrings.SaveAndPreview)
+        self.previewButton.setText(UiStrings().SaveAndPreview)
\ No newline at end of file

=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
--- openlp/plugins/custom/lib/mediaitem.py	2011-04-02 09:52:32 +0000
+++ openlp/plugins/custom/lib/mediaitem.py	2011-04-15 22:41:19 +0000
@@ -110,7 +110,7 @@
         """
         Edit a custom item
         """
-        if check_item_selected(self.listView, UiStrings.SelectEdit):
+        if check_item_selected(self.listView, UiStrings().SelectEdit):
             item = self.listView.currentItem()
             item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
             self.parent.edit_custom_form.loadCustom(item_id, False)
@@ -121,7 +121,7 @@
         """
         Remove a custom item from the list and database
         """
-        if check_item_selected(self.listView, UiStrings.SelectDelete):
+        if check_item_selected(self.listView, UiStrings().SelectDelete):
             row_list = [item.row() for item in self.listView.selectedIndexes()]
             row_list.sort(reverse=True)
             id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0]
@@ -160,4 +160,4 @@
         else:
             raw_footer.append(u'')
         service_item.raw_footer = raw_footer
-        return True
+        return True
\ No newline at end of file

=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py	2011-04-02 09:52:32 +0000
+++ openlp/plugins/images/lib/mediaitem.py	2011-04-15 22:41:19 +0000
@@ -55,11 +55,11 @@
             'Select Image(s)')
         file_formats = get_images_filter()
         self.onNewFileMasks = u'%s;;%s (*.*) (*)' % (file_formats,
-            UiStrings.AllFiles)
-        self.replaceAction.setText(UiStrings.ReplaceBG)
-        self.replaceAction.setToolTip(UiStrings.ReplaceLiveBG)
-        self.resetAction.setText(UiStrings.ResetBG)
-        self.resetAction.setToolTip(UiStrings.ResetLiveBG)
+            UiStrings().AllFiles)
+        self.replaceAction.setText(UiStrings().ReplaceBG)
+        self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG)
+        self.resetAction.setText(UiStrings().ResetBG)
+        self.resetAction.setToolTip(UiStrings().ResetLiveBG)
 
     def requiredIcons(self):
         MediaManagerItem.requiredIcons(self)
@@ -198,7 +198,7 @@
                 self.parent.liveController.display.directImage(name, filename)
                 self.resetAction.setVisible(True)
             else:
-                critical_error_message_box(UiStrings.LiveBGError,
+                critical_error_message_box(UiStrings().LiveBGError,
                     unicode(translate('ImagePlugin.MediaItem',
                     'There was a problem replacing your background, '
-                    'the image file "%s" no longer exists.')) % filename)
+                    'the image file "%s" no longer exists.')) % filename)
\ No newline at end of file

=== modified file 'openlp/plugins/media/lib/mediaitem.py'
--- openlp/plugins/media/lib/mediaitem.py	2011-03-24 21:19:17 +0000
+++ openlp/plugins/media/lib/mediaitem.py	2011-04-15 22:41:19 +0000
@@ -60,11 +60,11 @@
         self.onNewFileMasks = unicode(translate('MediaPlugin.MediaItem',
             'Videos (%s);;Audio (%s);;%s (*)')) % (
             u' '.join(self.parent.video_extensions_list),
-            u' '.join(self.parent.audio_extensions_list), UiStrings.AllFiles)
-        self.replaceAction.setText(UiStrings.ReplaceBG)
-        self.replaceAction.setToolTip(UiStrings.ReplaceLiveBG)
-        self.resetAction.setText(UiStrings.ResetBG)
-        self.resetAction.setToolTip(UiStrings.ResetLiveBG)
+            u' '.join(self.parent.audio_extensions_list), UiStrings().AllFiles)
+        self.replaceAction.setText(UiStrings().ReplaceBG)
+        self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG)
+        self.resetAction.setText(UiStrings().ResetBG)
+        self.resetAction.setToolTip(UiStrings().ResetLiveBG)
 
     def requiredIcons(self):
         MediaManagerItem.requiredIcons(self)
@@ -111,7 +111,7 @@
                 self.parent.liveController.display.video(filename, 0, True)
                 self.resetAction.setVisible(True)
             else:
-                critical_error_message_box(UiStrings.LiveBGError,
+                critical_error_message_box(UiStrings().LiveBGError,
                     unicode(translate('MediaPlugin.MediaItem',
                     'There was a problem replacing your background, '
                     'the media file "%s" no longer exists.')) % filename)
@@ -209,4 +209,4 @@
             img = QtGui.QPixmap(u':/media/media_video.png').toImage()
             item_name.setIcon(build_icon(img))
             item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file))
-            self.listView.addItem(item_name)
+            self.listView.addItem(item_name)
\ No newline at end of file

=== modified file 'openlp/plugins/presentations/lib/mediaitem.py'
--- openlp/plugins/presentations/lib/mediaitem.py	2011-03-10 01:45:45 +0000
+++ openlp/plugins/presentations/lib/mediaitem.py	2011-04-15 22:41:19 +0000
@@ -203,7 +203,7 @@
         """
         Remove a presentation item from the list
         """
-        if check_item_selected(self.listView, UiStrings.SelectDelete):
+        if check_item_selected(self.listView, UiStrings().SelectDelete):
             items = self.listView.selectedIndexes()
             row_list = [item.row() for item in items]
             row_list.sort(reverse=True)
@@ -296,4 +296,4 @@
             if self.controllers[controller].enabled():
                 if filetype in self.controllers[controller].alsosupports:
                     return controller
-        return None
+        return None
\ No newline at end of file

=== modified file 'openlp/plugins/presentations/lib/presentationtab.py'
--- openlp/plugins/presentations/lib/presentationtab.py	2011-04-13 19:12:47 +0000
+++ openlp/plugins/presentations/lib/presentationtab.py	2011-04-15 22:41:19 +0000
@@ -86,7 +86,7 @@
                 checkbox.setText(
                     unicode(translate('PresentationPlugin.PresentationTab',
                     '%s (unavailable)')) % controller.name)
-        self.AdvancedGroupBox.setTitle(UiStrings.Advanced)
+        self.AdvancedGroupBox.setTitle(UiStrings().Advanced)
         self.OverrideAppCheckBox.setText(
             translate('PresentationPlugin.PresentationTab',
             'Allow presentation application to be overriden'))
@@ -131,4 +131,4 @@
                 QtCore.QVariant(self.OverrideAppCheckBox.checkState()))
             changed = True
         if changed:
-            Receiver.send_message(u'mediaitem_presentation_rebuild')
+            Receiver.send_message(u'mediaitem_presentation_rebuild')
\ No newline at end of file

=== modified file 'openlp/plugins/songs/forms/editsongdialog.py'
--- openlp/plugins/songs/forms/editsongdialog.py	2011-03-24 19:04:02 +0000
+++ openlp/plugins/songs/forms/editsongdialog.py	2011-04-15 22:41:19 +0000
@@ -260,11 +260,11 @@
             translate('SongsPlugin.EditSongForm', '&Lyrics:'))
         self.verseOrderLabel.setText(
             translate('SongsPlugin.EditSongForm', '&Verse order:'))
-        self.verseAddButton.setText(UiStrings.Add)
-        self.verseEditButton.setText(UiStrings.Edit)
+        self.verseAddButton.setText(UiStrings().Add)
+        self.verseEditButton.setText(UiStrings().Edit)
         self.verseEditAllButton.setText(
             translate('SongsPlugin.EditSongForm', 'Ed&it All'))
-        self.verseDeleteButton.setText(UiStrings.Delete)
+        self.verseDeleteButton.setText(UiStrings().Delete)
         self.songTabWidget.setTabText(
             self.songTabWidget.indexOf(self.lyricsTab),
             translate('SongsPlugin.EditSongForm', 'Title && Lyrics'))
@@ -289,13 +289,13 @@
             self.songTabWidget.indexOf(self.authorsTab),
             translate('SongsPlugin.EditSongForm',
                 'Authors, Topics && Song Book'))
-        self.themeGroupBox.setTitle(UiStrings.Theme)
+        self.themeGroupBox.setTitle(UiStrings().Theme)
         self.themeAddButton.setText(
             translate('SongsPlugin.EditSongForm', 'New &Theme'))
         self.rightsGroupBox.setTitle(
             translate('SongsPlugin.EditSongForm', 'Copyright Information'))
         self.copyrightInsertButton.setText(SongStrings.CopyrightSymbol)
-        self.CCLILabel.setText(UiStrings.CCLINumberLabel)
+        self.CCLILabel.setText(UiStrings().CCLINumberLabel)
         self.commentsGroupBox.setTitle(
             translate('SongsPlugin.EditSongForm', 'Comments'))
         self.songTabWidget.setTabText(
@@ -313,4 +313,4 @@
     comboBox.setEditable(True)
     comboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
     comboBox.setObjectName(name)
-    return comboBox
+    return comboBox
\ No newline at end of file

=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py	2011-04-10 18:54:26 +0000
+++ openlp/plugins/songs/forms/editsongform.py	2011-04-15 22:41:19 +0000
@@ -96,7 +96,7 @@
             QtCore.SIGNAL(u'theme_update_list'), self.loadThemes)
         self.previewButton = QtGui.QPushButton()
         self.previewButton.setObjectName(u'previewButton')
-        self.previewButton.setText(UiStrings.SaveAndPreview)
+        self.previewButton.setText(UiStrings().SaveAndPreview)
         self.buttonBox.addButton(
             self.previewButton, QtGui.QDialogButtonBox.ActionRole)
         QtCore.QObject.connect(self.buttonBox,
@@ -355,7 +355,7 @@
                 self.__addAuthorToList(author)
             self.authorsComboBox.setCurrentIndex(0)
         else:
-            QtGui.QMessageBox.warning(self, UiStrings.NISs,
+            QtGui.QMessageBox.warning(self, UiStrings().NISs,
                 translate('SongsPlugin.EditSongForm', 'You have not selected '
                 'a valid author. Either select an author from the list, '
                 'or type in a new author and click the "Add Author to '
@@ -414,7 +414,7 @@
                 self.topicsListView.addItem(topic_item)
             self.topicsComboBox.setCurrentIndex(0)
         else:
-            QtGui.QMessageBox.warning(self, UiStrings.NISs,
+            QtGui.QMessageBox.warning(self, UiStrings().NISs,
                 translate('SongsPlugin.EditSongForm', 'You have not selected '
                 'a valid topic. Either select a topic from the list, or '
                 'type in a new topic and click the "Add Topic to Song" '

=== modified file 'openlp/plugins/songs/forms/songexportform.py'
--- openlp/plugins/songs/forms/songexportform.py	2011-03-24 19:04:02 +0000
+++ openlp/plugins/songs/forms/songexportform.py	2011-04-15 22:41:19 +0000
@@ -175,7 +175,7 @@
         self.availableSongsPage.setSubTitle(
             translate('SongsPlugin.ExportWizardForm',
             'Check the songs you want to export.'))
-        self.searchLabel.setText(u'%s:' % UiStrings.Search)
+        self.searchLabel.setText(u'%s:' % UiStrings().Search)
         self.uncheckButton.setText(
             translate('SongsPlugin.ExportWizardForm', 'Uncheck All'))
         self.checkButton.setText(
@@ -207,7 +207,7 @@
                 self.availableListWidget) if item.checkState()
             ]
             if not items:
-                critical_error_message_box(UiStrings.NISp,
+                critical_error_message_box(UiStrings().NISp,
                     translate('SongsPlugin.ExportWizardForm',
                     'You need to add at least one Song to export.'))
                 return False
@@ -360,4 +360,4 @@
             SettingsManager.get_last_dir(self.plugin.settingsSection, 1),
             options=QtGui.QFileDialog.ShowDirsOnly))
         SettingsManager.set_last_dir(self.plugin.settingsSection, path, 1)
-        self.directoryLineEdit.setText(path)
+        self.directoryLineEdit.setText(path)
\ No newline at end of file

=== modified file 'openlp/plugins/songs/forms/songimportform.py'
--- openlp/plugins/songs/forms/songimportform.py	2011-04-11 14:34:14 +0000
+++ openlp/plugins/songs/forms/songimportform.py	2011-04-15 22:41:19 +0000
@@ -235,8 +235,8 @@
         self.sourcePage.setTitle(WizardStrings.ImportSelect)
         self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong)
         self.formatLabel.setText(WizardStrings.FormatLabel)
-        self.formatComboBox.setItemText(SongFormat.OpenLP2, UiStrings.OLPV2)
-        self.formatComboBox.setItemText(SongFormat.OpenLP1, UiStrings.OLPV1)
+        self.formatComboBox.setItemText(SongFormat.OpenLP2, UiStrings().OLPV2)
+        self.formatComboBox.setItemText(SongFormat.OpenLP1, UiStrings().OLPV1)
         self.formatComboBox.setItemText(
             SongFormat.OpenLyrics, WizardStrings.OL)
         self.formatComboBox.setItemText(SongFormat.OpenSong, WizardStrings.OS)
@@ -261,10 +261,10 @@
 #        self.formatComboBox.setItemText(SongFormat.CSV, WizardStrings.CSV)
         self.openLP2FilenameLabel.setText(
             translate('SongsPlugin.ImportWizardForm', 'Filename:'))
-        self.openLP2BrowseButton.setText(UiStrings.Browse)
+        self.openLP2BrowseButton.setText(UiStrings().Browse)
         self.openLP1FilenameLabel.setText(
             translate('SongsPlugin.ImportWizardForm', 'Filename:'))
-        self.openLP1BrowseButton.setText(UiStrings.Browse)
+        self.openLP1BrowseButton.setText(UiStrings().Browse)
         self.openLP1DisabledLabel.setText(WizardStrings.NoSqlite)
         self.openLyricsAddButton.setText(
             translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
@@ -305,10 +305,10 @@
             'find OpenOffice.org on your computer.'))
         self.easiSlidesFilenameLabel.setText(
             translate('SongsPlugin.ImportWizardForm', 'Filename:'))
-        self.easiSlidesBrowseButton.setText(UiStrings.Browse)
+        self.easiSlidesBrowseButton.setText(UiStrings().Browse)
         self.ewFilenameLabel.setText(
             translate('SongsPlugin.ImportWizardForm', 'Filename:'))
-        self.ewBrowseButton.setText(UiStrings.Browse)
+        self.ewBrowseButton.setText(UiStrings().Browse)
         self.songBeamerAddButton.setText(
             translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
         self.songBeamerRemoveButton.setText(
@@ -323,7 +323,7 @@
             translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
 #        self.csvFilenameLabel.setText(
 #            translate('SongsPlugin.ImportWizardForm', 'Filename:'))
-#        self.csvBrowseButton.setText(UiStrings.Browse)
+#        self.csvBrowseButton.setText(UiStrings().Browse)
         self.progressPage.setTitle(WizardStrings.Importing)
         self.progressPage.setSubTitle(
             translate('SongsPlugin.ImportWizardForm',
@@ -346,49 +346,49 @@
             source_format = self.formatComboBox.currentIndex()
             if source_format == SongFormat.OpenLP2:
                 if self.openLP2FilenameEdit.text().isEmpty():
-                    critical_error_message_box(UiStrings.NFSs,
-                        WizardStrings.YouSpecifyFile % UiStrings.OLPV2)
+                    critical_error_message_box(UiStrings().NFSs,
+                        WizardStrings.YouSpecifyFile % UiStrings().OLPV2)
                     self.openLP2BrowseButton.setFocus()
                     return False
             elif source_format == SongFormat.OpenLP1:
                 if self.openLP1FilenameEdit.text().isEmpty():
-                    critical_error_message_box(UiStrings.NFSs,
-                        WizardStrings.YouSpecifyFile % UiStrings.OLPV1)
+                    critical_error_message_box(UiStrings().NFSs,
+                        WizardStrings.YouSpecifyFile % UiStrings().OLPV1)
                     self.openLP1BrowseButton.setFocus()
                     return False
             elif source_format == SongFormat.OpenLyrics:
                 if self.openLyricsFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.OL)
                     self.openLyricsAddButton.setFocus()
                     return False
             elif source_format == SongFormat.OpenSong:
                 if self.openSongFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.OS)
                     self.openSongAddButton.setFocus()
                     return False
             elif source_format == SongFormat.WordsOfWorship:
                 if self.wordsOfWorshipFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.WoW)
                     self.wordsOfWorshipAddButton.setFocus()
                     return False
             elif source_format == SongFormat.CCLI:
                 if self.ccliFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.CCLI)
                     self.ccliAddButton.setFocus()
                     return False
             elif source_format == SongFormat.SongsOfFellowship:
                 if self.songsOfFellowshipFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.SoF)
                     self.songsOfFellowshipAddButton.setFocus()
                     return False
             elif source_format == SongFormat.Generic:
                 if self.genericFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         translate('SongsPlugin.ImportWizardForm',
                         'You need to specify at least one document or '
                         'presentation file to import from.'))
@@ -396,31 +396,31 @@
                     return False
             elif source_format == SongFormat.EasiSlides:
                 if self.easiSlidesFilenameEdit.text().isEmpty():
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.ES)
                     self.easiSlidesBrowseButton.setFocus()
                     return False
             elif source_format == SongFormat.EasyWorship:
                 if self.ewFilenameEdit.text().isEmpty():
-                    critical_error_message_box(UiStrings.NFSs,
+                    critical_error_message_box(UiStrings().NFSs,
                         WizardStrings.YouSpecifyFile % WizardStrings.EW)
                     self.ewBrowseButton.setFocus()
                     return False
             elif source_format == SongFormat.SongBeamer:
                 if self.songBeamerFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.SB)
                     self.songBeamerAddButton.setFocus()
                     return False
             elif source_format == SongFormat.SongShowPlus:
                 if self.songShowPlusFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.SSP)
                     self.wordsOfWorshipAddButton.setFocus()
                     return False
             elif source_format == SongFormat.FoilPresenter:
                 if self.foilPresenterFileListWidget.count() == 0:
-                    critical_error_message_box(UiStrings.NFSp,
+                    critical_error_message_box(UiStrings().NFSp,
                         WizardStrings.YouSpecifyFile % WizardStrings.FP)
                     self.foilPresenterAddButton.setFocus()
                     return False
@@ -446,7 +446,7 @@
         """
         if filters:
             filters += u';;'
-        filters += u'%s (*)' % UiStrings.AllFiles
+        filters += u'%s (*)' % UiStrings().AllFiles
         filenames = QtGui.QFileDialog.getOpenFileNames(self, title,
             SettingsManager.get_last_dir(self.plugin.settingsSection, 1),
             filters)
@@ -476,7 +476,7 @@
         """
         Get OpenLP v2 song database file
         """
-        self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV2,
+        self.getFileName(WizardStrings.OpenTypeFile % UiStrings().OLPV2,
             self.openLP2FilenameEdit, u'%s (*.sqlite)'
             % (translate('SongsPlugin.ImportWizardForm',
             'OpenLP 2.0 Databases'))
@@ -486,7 +486,7 @@
         """
         Get OpenLP v1 song database file
         """
-        self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV1,
+        self.getFileName(WizardStrings.OpenTypeFile % UiStrings().OLPV1,
             self.openLP1FilenameEdit, u'%s (*.olp)'
             % translate('SongsPlugin.ImportWizardForm',
             'openlp.org v1.x Databases')
@@ -836,4 +836,4 @@
         setattr(self, prefix + u'DisabledLayout', disabledLayout)
         setattr(self, prefix + u'DisabledLabel', disabledLabel)
         setattr(self, prefix + u'ImportWidget', importWidget)
-        return importWidget
+        return importWidget
\ No newline at end of file

=== modified file 'openlp/plugins/songs/forms/songmaintenancedialog.py'
--- openlp/plugins/songs/forms/songmaintenancedialog.py	2011-03-24 19:04:02 +0000
+++ openlp/plugins/songs/forms/songmaintenancedialog.py	2011-04-15 22:41:19 +0000
@@ -149,17 +149,17 @@
         self.listItemAuthors.setText(SongStrings.Authors)
         self.listItemTopics.setText(SongStrings.Topics)
         self.listItemBooks.setText(SongStrings.SongBooks)
-        self.authorsAddButton.setText(UiStrings.Add)
-        self.authorsEditButton.setText(UiStrings.Edit)
-        self.authorsDeleteButton.setText(UiStrings.Delete)
-        self.topicsAddButton.setText(UiStrings.Add)
-        self.topicsEditButton.setText(UiStrings.Edit)
-        self.topicsDeleteButton.setText(UiStrings.Delete)
-        self.booksAddButton.setText(UiStrings.Add)
-        self.booksEditButton.setText(UiStrings.Edit)
-        self.booksDeleteButton.setText(UiStrings.Delete)
+        self.authorsAddButton.setText(UiStrings().Add)
+        self.authorsEditButton.setText(UiStrings().Edit)
+        self.authorsDeleteButton.setText(UiStrings().Delete)
+        self.topicsAddButton.setText(UiStrings().Add)
+        self.topicsEditButton.setText(UiStrings().Edit)
+        self.topicsDeleteButton.setText(UiStrings().Delete)
+        self.booksAddButton.setText(UiStrings().Add)
+        self.booksEditButton.setText(UiStrings().Edit)
+        self.booksDeleteButton.setText(UiStrings().Delete)
         typeListWidth = max(self.fontMetrics().width(SongStrings.Authors),
             self.fontMetrics().width(SongStrings.Topics),
             self.fontMetrics().width(SongStrings.SongBooks))
         self.typeListWidget.setFixedWidth(typeListWidth +
-            self.typeListWidget.iconSize().width() + 32)
+            self.typeListWidget.iconSize().width() + 32)
\ No newline at end of file

=== modified file 'openlp/plugins/songs/forms/songmaintenanceform.py'
--- openlp/plugins/songs/forms/songmaintenanceform.py	2011-03-24 19:04:02 +0000
+++ openlp/plugins/songs/forms/songmaintenanceform.py	2011-04-15 22:41:19 +0000
@@ -115,7 +115,7 @@
             else:
                 critical_error_message_box(dlg_title, err_text)
         else:
-            critical_error_message_box(dlg_title, UiStrings.NISs)
+            critical_error_message_box(dlg_title, UiStrings().NISs)
 
     def resetAuthors(self):
         """
@@ -503,4 +503,4 @@
             editButton.setEnabled(False)
         else:
             deleteButton.setEnabled(True)
-            editButton.setEnabled(True)
+            editButton.setEnabled(True)
\ No newline at end of file

=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2011-04-15 12:55:56 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2011-04-15 22:41:19 +0000
@@ -137,8 +137,8 @@
             QtCore.QVariant(u'True')).toBool()
 
     def retranslateUi(self):
-        self.searchTextLabel.setText(u'%s:' % UiStrings.Search)
-        self.searchTextButton.setText(UiStrings.Search)
+        self.searchTextLabel.setText(u'%s:' % UiStrings().Search)
+        self.searchTextButton.setText(UiStrings().Search)
         self.maintenanceAction.setText(SongStrings.SongMaintenance)
         self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem',
             'Maintain the lists of authors, topics and books'))
@@ -153,7 +153,7 @@
                 translate('SongsPlugin.MediaItem', 'Lyrics')),
             (SongSearch.Authors, u':/songs/song_search_author.png',
                 SongStrings.Authors),
-            (SongSearch.Themes, u':/slides/slide_theme.png', UiStrings.Themes)
+            (SongSearch.Themes, u':/slides/slide_theme.png', UiStrings().Themes)
         ])
         self.searchTextEdit.setCurrentSearchType(QtCore.QSettings().value(
             u'%s/last search type' % self.settingsSection,
@@ -312,7 +312,7 @@
         Edit a song
         """
         log.debug(u'onEditClick')
-        if check_item_selected(self.listView, UiStrings.SelectEdit):
+        if check_item_selected(self.listView, UiStrings().SelectEdit):
             self.editItem = self.listView.currentItem()
             item_id = (self.editItem.data(QtCore.Qt.UserRole)).toInt()[0]
             self.edit_song_form.loadSong(item_id, False)
@@ -323,7 +323,7 @@
         """
         Remove a song from the list and database
         """
-        if check_item_selected(self.listView, UiStrings.SelectDelete):
+        if check_item_selected(self.listView, UiStrings().SelectDelete):
             items = self.listView.selectedIndexes()
             if QtGui.QMessageBox.question(self,
                 translate('SongsPlugin.MediaItem', 'Delete Song(s)?'),
@@ -472,4 +472,4 @@
         Locale aware collation of song titles
         """
         return locale.strcoll(unicode(song_1.title.lower()),
-             unicode(song_2.title.lower()))
+             unicode(song_2.title.lower()))
\ No newline at end of file

=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py	2011-04-15 12:55:56 +0000
+++ openlp/plugins/songs/songsplugin.py	2011-04-15 22:41:19 +0000
@@ -67,9 +67,9 @@
         Plugin.initialise(self)
         self.toolsReindexItem.setVisible(True)
         action_list = ActionList.get_instance()
-        action_list.add_action(self.SongImportItem, UiStrings.Import)
-        action_list.add_action(self.SongExportItem, UiStrings.Export)
-        action_list.add_action(self.toolsReindexItem, UiStrings.Tools)
+        action_list.add_action(self.SongImportItem, UiStrings().Import)
+        action_list.add_action(self.SongExportItem, UiStrings().Export)
+        action_list.add_action(self.toolsReindexItem, UiStrings().Tools)
 
     def addImportMenuItem(self, import_menu):
         """
@@ -139,7 +139,7 @@
         if maxSongs == 0:
             return
         progressDialog = QtGui.QProgressDialog(
-            translate('SongsPlugin', 'Reindexing songs...'), UiStrings.Cancel,
+            translate('SongsPlugin', 'Reindexing songs...'), UiStrings().Cancel,
             0, maxSongs, self.formparent)
         progressDialog.setWindowModality(QtCore.Qt.WindowModal)
         songs = self.manager.get_all_objects(Song)
@@ -258,7 +258,7 @@
         self.manager.finalise()
         self.toolsReindexItem.setVisible(False)
         action_list = ActionList.get_instance()
-        action_list.remove_action(self.SongImportItem, UiStrings.Import)
-        action_list.remove_action(self.SongExportItem, UiStrings.Export)
-        action_list.remove_action(self.toolsReindexItem, UiStrings.Tools)
-        Plugin.finalise(self)
+        action_list.remove_action(self.SongImportItem, UiStrings().Import)
+        action_list.remove_action(self.SongExportItem, UiStrings().Export)
+        action_list.remove_action(self.toolsReindexItem, UiStrings().Tools)
+        Plugin.finalise(self)
\ No newline at end of file


Follow ups