IN_POPUP = 1 IN_MENU = 2 IN_BOTH = IN_POPUP | IN_MENU def process_html_for_module(module, text): language_code, (font, size, gui) = \ fonts.get_font_params(module) text = convert_language(text, language_code) return '<span module="%s" lang="%s">%s</span>' % (module.Name(), language_code, text) html_settings = config_manager.add_section("Html") html_settings.add_item("zoom_level", 0, item_type=int) # some magic zoom constants zoom_levels = { -2: 0.75, -1: 0.83, 0: 1, 1: 1.2, 2: 1.44, 3: 1.73, 4: 2, 5: 2.5, 6: 3, 7: 3.5 }
import wx from util.configmgr import config_manager from util.observerlist import ObserverList from util.i18n import N_ import guiconfig import events from backend.filterutils import filter_settings, set_headwords_module_from_conf options = config_manager.add_section("Options") options.add_item("columns", False, item_type=bool) options.add_item("verse_per_line", False, item_type=bool) options.add_item("continuous_scrolling", True, item_type=bool) options.add_item("headings", True, item_type=bool) options.add_item("cross_references", True, item_type=bool) options.add_item("footnotes", True, item_type=bool) options.add_item("strongs_numbers", True, item_type=bool) options.add_item("strongs_position", "underneath", item_type=str) options.add_item("highlight_strongs", True, item_type=bool) options.add_item("morphology", True, item_type=bool) options.add_item("morph_segmentation", False, item_type=bool) options.add_item("raw", False, item_type=bool) options.add_item("show_timing", False, item_type=bool) options.add_item("colour_speakers", "off", item_type=str) options.add_item("reference_bar", False, item_type=bool) sword_options_map = dict( strongs_numbers="Strong's Numbers", morphology="Morphological Tags", morph_segmentation="Morpheme Segmentation", )
"""\ Module to support internationalisation and localisation of the interface. """ #python \Python25\Tools\i18n\msgfmt.py -o locales\en\LC_MESSAGES\messages.mo locales\en.po # python ~/Python-2.5.2/Tools/i18n/msgfmt.py -o locales/en/LC_MESSAGES/messages.mo locales/en.po # python ~/Python-2.5.2/Tools/i18n/pygettext.py -p locales/ -k N_ `find . -name "*.py"` import config import gettext from util.debug import dprint, WARNING from util.configmgr import config_manager from swlib.pysw import SW, change_locale from swlib import pysw import os locale_settings = config_manager.add_section("Locale") locale_settings.add_item("language", "en", item_type=str) locale_settings.add_item("language_book_names", {"en": "bpbible"}, item_type="pickle") localedir = "locales" domain = "messages" # the translation file is messages.mo dummy_translator = False def install_dummy_translator(): import __builtin__ __builtin__._ = lambda str: str global dummy_translator dummy_translator = True
""" import sys import time import traceback import wx import hashlib import config from util.configmgr import config_manager from util.i18n import N_ import re from xrc.error_dialog_xrc import xrcErrorDialog errors = config_manager.add_section("Errors") errors.add_item("errors_to_ignore", [], item_type="pickle") COLLAPSED_TEXTS = N_("<< &Details"), N_("&Details >>") PANE = 2 fixed_width_re = re.compile("``(((?!``)(..?))*)``", re.DOTALL) class ErrorDialog(xrcErrorDialog): def __init__(self, parent): super(ErrorDialog, self).__init__(parent) self.exception_text.BackgroundColour = \ self.traceback_text.BackgroundColour = \ self.panel.BackgroundColour self.details_button.Bind(wx.EVT_BUTTON, self.collapse_toggle)
from gui import fonts IN_POPUP = 1 IN_MENU = 2 IN_BOTH = IN_POPUP | IN_MENU def process_html_for_module(module, text): language_code, (font, size, gui) = \ fonts.get_font_params(module) text = convert_language(text, language_code) return '<span module="%s" lang="%s">%s</span>' % (module.Name(), language_code, text) html_settings = config_manager.add_section("Html") html_settings.add_item("zoom_level", 0, item_type=int) # some magic zoom constants zoom_levels = {-2: 0.75, -1: 0.83, 0: 1, 1: 1.2, 2: 1.44, 3: 1.73, 4: 2, 5: 2.5, 6: 3, 7: 3.5 }
from gui.menu import MenuItem, Separator from gui.quickselector import QuickSelector import events from copyverses import CopyVerseDialog from util.configmgr import config_manager from versecompare import VerseCompareFrame import header_bar import re from util.i18n import N_ from guess_verse import GuessVerseFrame import user_comments bible_settings = config_manager.add_section("Bible") bible_settings.add_item("select_verse_on_click", False, item_type=bool) class BibleFrame(VerseKeyedFrame): id = N_("Bible") def __init__(self, parent): self.panel = wx.Panel(parent) super(BibleFrame, self).__init__(self.panel) self.header_bar = header_bar.HeaderBar(self.panel, "Genesis 1") self.header_bar.on_click += lambda chapter: \ guiconfig.mainfrm.set_bible_ref(chapter, events.HEADER_BAR) self.last_bible_event = None sizer = wx.BoxSizer(wx.VERTICAL)
from swlib import pysw from swlib.pysw import SW, BOTTOM import re from util.debug import dprint, ERROR, WARNING import traceback from util.configmgr import config_manager default_ellipsis_level = 2 filter_settings = config_manager.add_section("Filter") filter_settings.add_item("use_osis_parser", True, item_type=bool) filter_settings.add_item("use_thml_parser", True, item_type=bool) filter_settings.add_item("expand_thml_refs", True, item_type=bool) filter_settings.add_item("footnote_ellipsis_level", default_ellipsis_level, item_type=int) filter_settings.add_item("headwords_module", "HeadwordsTransliterated", item_type=str) parser_modes = ( NORMAL_PARSER_MODE, COPY_VERSES_PARSER_MODE, ) = range(2) def return_success(func): def ret(*args, **kwargs): return SW.ReturnSuccess(*func(*args, **kwargs)) ret.__name__ = func.__name__ return ret def report_errors(func): def ret(*args, **kwargs): try: return func(*args, **kwargs)
""" import sys import time import traceback import wx import hashlib import config from util.configmgr import config_manager from util.i18n import N_ import re from xrc.error_dialog_xrc import xrcErrorDialog errors = config_manager.add_section("Errors") errors.add_item("errors_to_ignore", [], item_type="pickle") COLLAPSED_TEXTS = N_("<< &Details"), N_("&Details >>") PANE = 2 fixed_width_re = re.compile("``(((?!``)(..?))*)``", re.DOTALL) class ErrorDialog(xrcErrorDialog): def __init__(self, parent): super(ErrorDialog, self).__init__(parent) self.exception_text.BackgroundColour = \ self.traceback_text.BackgroundColour = \ self.panel.BackgroundColour self.details_button.Bind(wx.EVT_BUTTON, self.collapse_toggle) sys.excepthook = self.handle_error
import wx from swlib.pysw import SW from util.configmgr import config_manager from util import osutils from util.observerlist import ObserverList from backend.bibleinterface import biblemgr font_settings = config_manager.add_section("Font") font_settings.add_item("language_fonts", {}, item_type="pickle") font_settings.add_item("module_fonts", {}, item_type="pickle") font_settings.add_item("default_fonts", None,#("Arial", 12, False), item_type="pickle") def _default_font(): if osutils.is_msw(): # MSW has MS Shell Dlg 2, which can't be set to. # just use arial 12 pt return "Arial", 12, False return wx.NORMAL_FONT.FaceName, wx.NORMAL_FONT.PointSize, False def get_font_params(data): if isinstance(data, basestring): return data, get_language_font_params(data)[1] if data is None: return None, font_settings["default_fonts"] or _default_font() return data.Lang(), get_module_font_params(data)[1]
from gui.quickselector import QuickSelector import events from copyverses import CopyVerseDialog from util.configmgr import config_manager from versecompare import VerseCompareFrame import header_bar import re from util.i18n import N_ from guess_verse import GuessVerseFrame import user_comments bible_settings = config_manager.add_section("Bible") bible_settings.add_item("select_verse_on_click", False, item_type=bool) class BibleFrame(VerseKeyedFrame): id = N_("Bible") def __init__(self, parent): self.panel = wx.Panel(parent) super(BibleFrame, self).__init__(self.panel) self.header_bar = header_bar.HeaderBar(self.panel, "Genesis 1") self.header_bar.on_click += lambda chapter: \ guiconfig.mainfrm.set_bible_ref(chapter, events.HEADER_BAR) self.last_bible_event = None sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.header_bar, 0, wx.GROW)
Module to support internationalisation and localisation of the interface. """ #python \Python25\Tools\i18n\msgfmt.py -o locales\en\LC_MESSAGES\messages.mo locales\en.po # python ~/Python-2.5.2/Tools/i18n/msgfmt.py -o locales/en/LC_MESSAGES/messages.mo locales/en.po # python ~/Python-2.5.2/Tools/i18n/pygettext.py -p locales/ -k N_ `find . -name "*.py"` import config import gettext from util.debug import dprint, WARNING from util.configmgr import config_manager from swlib.pysw import SW, change_locale from swlib import pysw import os locale_settings = config_manager.add_section("Locale") locale_settings.add_item("language", "en", item_type=str) locale_settings.add_item("language_book_names", {"en": "bpbible"}, item_type="pickle") localedir = "locales" domain = "messages" # the translation file is messages.mo dummy_translator = False def install_dummy_translator(): import __builtin__ __builtin__._ = lambda str: str global dummy_translator dummy_translator = True def initialize(): global langid, mytranslation, ngettext
import wx import config, guiconfig from backend.bibleinterface import biblemgr from backend.verse_template import SmartVerseTemplate import protocol_handlers from swlib.pysw import VerseParsingError, GetBestRange from gui import guiutil from gui.guiutil import bmp import re from util.configmgr import config_manager from util import osutils from util.debug import dprint, TOOLTIP, WARNING tooltip_settings = config_manager.add_section("Tooltip") tooltip_settings.add_item("plain_xrefs", False, item_type=bool) class TooltipBaseMixin(object): set_toolbar_background = False do_not_show_tooltip = False def __init__(self, *args, **kwargs): self.text = None self.target = None self.new_target = None self._tooltip_config = None self.toolbar_creator = None self.toolbar = None
from gui.multichoice import MultiChoiceDialog from gui import guiutil from gui.menu import MenuItem from backend.bibleinterface import biblemgr from backend.book import get_module_css_text_direction from protocols import protocol_handler from util import noop from util.configmgr import config_manager from displayframe import IN_POPUP, process_html_for_module from swlib.pysw import SW, VerseList, GetBestRange from util.unicode import to_str from util.i18n import N_ verse_comparison_settings = config_manager.add_section("Verse Comparison") verse_comparison_settings.add_item( "comparison_modules", biblemgr.bible.GetModuleList, is_initial_lazy=True, item_type="pickle" ) verse_comparison_settings.add_item( "parallel", False, item_type=bool ) verse_comparison_settings.add_item( "reference",
import wx import config, guiconfig from backend.bibleinterface import biblemgr from backend.verse_template import SmartVerseTemplate import protocol_handlers from swlib.pysw import VerseParsingError, GetBestRange from gui import guiutil from gui.guiutil import bmp import re from util.configmgr import config_manager from util import osutils from util.debug import dprint, TOOLTIP, WARNING tooltip_settings = config_manager.add_section("Tooltip") tooltip_settings.add_item("plain_xrefs", False, item_type=bool) class TooltipBaseMixin(object): set_toolbar_background = False do_not_show_tooltip = False def __init__(self, *args, **kwargs): self.text = None self.target = None self.new_target = None self._tooltip_config = None self.toolbar_creator = None self.toolbar = None self.html = None
from gui.multichoice import MultiChoiceDialog from gui import guiutil from gui.menu import MenuItem from backend.bibleinterface import biblemgr from backend.book import get_module_css_text_direction from protocols import protocol_handler from util import noop from util.configmgr import config_manager from displayframe import IN_POPUP, process_html_for_module from swlib.pysw import SW, VerseList, GetBestRange from util.unicode import to_str from util.i18n import N_ verse_comparison_settings = config_manager.add_section("Verse Comparison") verse_comparison_settings.add_item("comparison_modules", biblemgr.bible.GetModuleList, is_initial_lazy=True, item_type="pickle") verse_comparison_settings.add_item("parallel", False, item_type=bool) verse_comparison_settings.add_item("reference", "", item_type=str) def on_bible_version(frame, href, url): module_name = SW.URL.decode(url.getPath()).c_str() biblemgr.bible.SetModule(module_name)
from util.configmgr import config_manager SECTION_NAME = "Topics" topic_settings = config_manager.add_section(SECTION_NAME) topic_settings.add_item("display_tags", True, item_type=bool) topic_settings.add_item("expand_topic_passages", False, item_type=bool) topic_settings.add_item("last_selected_topic", [], item_type="pickle") class Settings(object): def get_display_tags(self): return topic_settings["display_tags"] def set_display_tags(self, display_tags): topic_settings["display_tags"] = display_tags display_tags = property(get_display_tags, set_display_tags) def get_expand_topic_passages(self): return topic_settings["expand_topic_passages"] def set_expand_topic_passages(self, expand_topic_passages): topic_settings["expand_topic_passages"] = expand_topic_passages expand_topic_passages = property(get_expand_topic_passages, set_expand_topic_passages) def get_last_selected_topic(self): from passage_list import get_primary_passage_list_manager return get_primary_passage_list_manager().find_topic_by_path( topic_settings["last_selected_topic"]) def set_last_selected_topic(self, topic):
import wx from swlib.pysw import SW from util.configmgr import config_manager from util import osutils from util.observerlist import ObserverList from backend.bibleinterface import biblemgr font_settings = config_manager.add_section("Font") font_settings.add_item("language_fonts", {}, item_type="pickle") font_settings.add_item("module_fonts", {}, item_type="pickle") font_settings.add_item( "default_fonts", None, #("Arial", 12, False), item_type="pickle") def _default_font(): if osutils.is_msw(): # MSW has MS Shell Dlg 2, which can't be set to. # just use arial 12 pt return "Arial", 12, False return wx.NORMAL_FONT.FaceName, wx.NORMAL_FONT.PointSize, False def get_font_params(data): if isinstance(data, basestring): return data, get_language_font_params(data)[1] if data is None: return None, font_settings["default_fonts"] or _default_font()