コード例 #1
0
ファイル: dictionary.py プロジェクト: kba/calibre
 def __init__(self):
     self.remove_hyphenation = re.compile('[\u2010-]+')
     self.dictionaries = {}
     self.word_cache = {}
     self.ignored_words = set()
     try:
         self.default_locale = parse_lang_code(get_lang())
     except ValueError:
         self.default_locale = parse_lang_code('en-US')
     self.ui_locale = self.default_locale
コード例 #2
0
ファイル: dictionary.py プロジェクト: GaryMMugford/calibre
 def __init__(self):
     self.remove_hyphenation = re.compile('[\u2010-]+')
     self.dictionaries = {}
     self.word_cache = {}
     self.ignored_words = set()
     try:
         self.default_locale = parse_lang_code(get_lang())
     except ValueError:
         self.default_locale = parse_lang_code('en-US')
     self.ui_locale = self.default_locale
コード例 #3
0
ファイル: dictionary.py プロジェクト: Aliminator666/calibre
 def __init__(self):
     self.remove_hyphenation = re.compile('[\u2010-]+')
     self.negative_pat = re.compile('-[.\d+]')
     self.fix_punctuation_pat = re.compile(r'''[:.]''')
     self.dictionaries = {}
     self.word_cache = {}
     self.ignored_words = set()
     try:
         self.default_locale = parse_lang_code(get_lang())
     except ValueError:
         self.default_locale = parse_lang_code('en-US')
     self.ui_locale = self.default_locale
コード例 #4
0
 def __init__(self):
     self.remove_hyphenation = re.compile('[\u2010-]+')
     self.negative_pat = re.compile('-[.\d+]')
     self.fix_punctuation_pat = re.compile(r'''[:.]''')
     self.dictionaries = {}
     self.word_cache = {}
     self.ignored_words = set()
     try:
         self.default_locale = parse_lang_code(get_lang())
     except ValueError:
         self.default_locale = parse_lang_code('en-US')
     self.ui_locale = self.default_locale
コード例 #5
0
ファイル: dictionary.py プロジェクト: kovidgoyal/calibre
 def __init__(self):
     self.remove_hyphenation = re.compile("[\u2010-]+")
     self.negative_pat = re.compile("-[.\d+]")
     self.fix_punctuation_pat = re.compile(r"""[:.]""")
     self.dictionaries = {}
     self.word_cache = {}
     self.ignored_words = set()
     self.added_user_words = {}
     try:
         self.default_locale = parse_lang_code(get_lang())
     except ValueError:
         self.default_locale = parse_lang_code("en-US")
     self.ui_locale = self.default_locale
コード例 #6
0
ファイル: dictionary.py プロジェクト: yunfile123/calibre
def test_dictionaries():
    dictionaries = Dictionaries()
    dictionaries.initialize()
    eng = parse_lang_code('en')
    rec = partial(dictionaries.recognized, locale=eng)
    sg = partial(dictionaries.suggestions, locale=eng)
    if not rec('recognized'):
        raise ValueError('recognized not recognized')
    if 'adequately' not in sg('ade-quately'):
        raise ValueError('adequately not in %s' % sg('ade-quately'))
    if 'magic. Wand' not in sg('magic.wand'):
        raise ValueError('magic. Wand not in: %s' % sg('magic.wand'))
    d = load_dictionary(get_dictionary(parse_lang_code('es'))).obj
    assert d.recognized('Achí')
コード例 #7
0
ファイル: dictionary.py プロジェクト: kovidgoyal/calibre
def custom_dictionaries(reread=False):
    global _custom
    if _custom is None or reread:
        dics = []
        for lc in glob.glob(os.path.join(config_dir, "dictionaries", "*/locales")):
            locales = filter(None, open(lc, "rb").read().decode("utf-8").splitlines())
            try:
                name, locale, locales = locales[0], locales[1], locales[1:]
            except IndexError:
                continue
            base = os.path.dirname(lc)
            ploc = parse_lang_code(locale)
            if ploc.countrycode is None:
                continue
            dics.append(
                Dictionary(
                    ploc,
                    frozenset(filter(lambda x: x.countrycode is not None, map(parse_lang_code, locales))),
                    os.path.join(base, "%s.dic" % locale),
                    os.path.join(base, "%s.aff" % locale),
                    False,
                    name,
                    os.path.basename(base),
                )
            )
        _custom = frozenset(dics)
    return _custom
コード例 #8
0
ファイル: dictionary.py プロジェクト: kba/calibre
def custom_dictionaries(reread=False):
    global _custom
    if _custom is None or reread:
        dics = []
        for lc in glob.glob(
                os.path.join(config_dir, 'dictionaries', '*/locales')):
            locales = filter(
                None,
                open(lc, 'rb').read().decode('utf-8').splitlines())
            try:
                name, locale, locales = locales[0], locales[1], locales[1:]
            except IndexError:
                continue
            base = os.path.dirname(lc)
            ploc = parse_lang_code(locale)
            if ploc.countrycode is None:
                continue
            dics.append(
                Dictionary(
                    ploc,
                    frozenset(
                        filter(lambda x: x.countrycode is not None,
                               map(parse_lang_code, locales))),
                    os.path.join(base, '%s.dic' % locale),
                    os.path.join(base, '%s.aff' % locale), False, name,
                    os.path.basename(base)))
        _custom = frozenset(dics)
    return _custom
コード例 #9
0
ファイル: dictionary.py プロジェクト: Datalore740/calibre
 def test_dictionaries(self):
     for w in 'recognized one-half one\u2010half'.split():
         self.ar(w)
     d = load_dictionary(get_dictionary(parse_lang_code('es'))).obj
     self.assertTrue(d.recognized('Achí'))
     self.assertIn('one\u2010half', self.suggestions('oone\u2010half'))
     self.assertIn('adequately', self.suggestions('ade-quately'))
     self.assertIn('magic. Wand', self.suggestions('magic.wand'))
コード例 #10
0
ファイル: dictionary.py プロジェクト: kovidgoyal/calibre
 def test_dictionaries(self):
     for w in "recognized one-half one\u2010half".split():
         self.ar(w)
     d = load_dictionary(get_dictionary(parse_lang_code("es"))).obj
     self.assertTrue(d.recognized("Achí"))
     self.assertIn("one\u2010half", self.suggestions("oone\u2010half"))
     self.assertIn("adequately", self.suggestions("ade-quately"))
     self.assertIn("magic. Wand", self.suggestions("magic.wand"))
コード例 #11
0
ファイル: dictionary.py プロジェクト: j-howell/calibre
 def test_dictionaries(self):
     for w in 'recognized one-half one\u2010half'.split():
         self.ar(w)
     d = load_dictionary(get_dictionary(parse_lang_code('es'))).obj
     self.assertTrue(d.recognized('Achí'))
     self.assertIn('one\u2010half', self.suggestions('oone\u2010half'))
     self.assertIn('adequately', self.suggestions('ade-quately'))
     self.assertIn('magic. Wand', self.suggestions('magic.wand'))
コード例 #12
0
ファイル: dictionary.py プロジェクト: yunfile123/calibre
def builtin_dictionaries():
    global _builtins
    if _builtins is None:
        dics = []
        for lc in glob.glob(os.path.join(P('dictionaries', allow_user_override=False), '*/locales')):
            locales = filter(None, open(lc, 'rb').read().decode('utf-8').splitlines())
            locale = locales[0]
            base = os.path.dirname(lc)
            dics.append(Dictionary(
                parse_lang_code(locale), frozenset(map(parse_lang_code, locales)), os.path.join(base, '%s.dic' % locale),
                os.path.join(base, '%s.aff' % locale), True, None, None))
        _builtins = frozenset(dics)
    return _builtins
コード例 #13
0
 def setUp(self):
     dictionaries = Dictionaries()
     dictionaries.initialize()
     eng = parse_lang_code('en')
     self.recognized = partial(dictionaries.recognized, locale=eng)
     self.suggestions = partial(dictionaries.suggestions, locale=eng)
コード例 #14
0
ファイル: dictionary.py プロジェクト: kovidgoyal/calibre
 def setUp(self):
     dictionaries = Dictionaries()
     dictionaries.initialize()
     eng = parse_lang_code("en")
     self.recognized = partial(dictionaries.recognized, locale=eng)
     self.suggestions = partial(dictionaries.suggestions, locale=eng)
コード例 #15
0
ファイル: dictionary.py プロジェクト: kba/calibre
def preferred_dictionary(locale):
    return {
        parse_lang_code(k): v
        for k, v in dprefs['preferred_dictionaries'].iteritems()
    }.get(locale, None)
コード例 #16
0
ファイル: dictionary.py プロジェクト: kba/calibre
def best_locale_for_language(langcode):
    best_locale = dprefs['preferred_locales'].get(
        langcode, default_preferred_locales.get(langcode, None))
    if best_locale is not None:
        return parse_lang_code(best_locale)
コード例 #17
0
ファイル: dictionary.py プロジェクト: kba/calibre
            dics.append(
                Dictionary(
                    ploc,
                    frozenset(
                        filter(lambda x: x.countrycode is not None,
                               map(parse_lang_code, locales))),
                    os.path.join(base, '%s.dic' % locale),
                    os.path.join(base, '%s.aff' % locale), False, name,
                    os.path.basename(base)))
        _custom = frozenset(dics)
    return _custom


default_en_locale = 'en-US'
try:
    ul = parse_lang_code(get_system_locale() or 'en-US')
except ValueError:
    ul = None
if ul is not None and ul.langcode == 'eng' and ul.countrycode in 'GB BS BZ GH IE IN JM NZ TT'.split(
):
    default_en_locale = 'en-' + ul.countrycode
default_preferred_locales = {
    'eng': default_en_locale,
    'deu': 'de-DE',
    'spa': 'es-ES',
    'fra': 'fr-FR'
}


def best_locale_for_language(langcode):
    best_locale = dprefs['preferred_locales'].get(
コード例 #18
0
ファイル: dictionary.py プロジェクト: davidfor/calibre
def best_locale_for_language(langcode):
    best_locale = dprefs['preferred_locales'].get(langcode, default_preferred_locales.get(langcode, None))
    if best_locale is not None:
        return parse_lang_code(best_locale)
コード例 #19
0
ファイル: dictionary.py プロジェクト: Aliminator666/calibre
                name, locale, locales = locales[0], locales[1], locales[1:]
            except IndexError:
                continue
            base = os.path.dirname(lc)
            ploc = parse_lang_code(locale)
            if ploc.countrycode is None:
                continue
            dics.append(Dictionary(
                ploc, frozenset(filter(lambda x:x.countrycode is not None, map(parse_lang_code, locales))), os.path.join(base, '%s.dic' % locale),
                os.path.join(base, '%s.aff' % locale), False, name, os.path.basename(base)))
        _custom = frozenset(dics)
    return _custom

default_en_locale = 'en-US'
try:
    ul = parse_lang_code(get_system_locale() or 'en-US')
except ValueError:
    ul = None
if ul is not None and ul.langcode == 'eng' and ul.countrycode in 'GB BS BZ GH IE IN JM NZ TT'.split():
    default_en_locale = 'en-' + ul.countrycode
default_preferred_locales = {'eng':default_en_locale, 'deu':'de-DE', 'spa':'es-ES', 'fra':'fr-FR'}

def best_locale_for_language(langcode):
    best_locale = dprefs['preferred_locales'].get(langcode, default_preferred_locales.get(langcode, None))
    if best_locale is not None:
        return parse_lang_code(best_locale)

def preferred_dictionary(locale):
    return {parse_lang_code(k):v for k, v in dprefs['preferred_dictionaries'].iteritems()}.get(locale, None)

def remove_dictionary(dictionary):
コード例 #20
0
ファイル: dictionary.py プロジェクト: davidfor/calibre
def preferred_dictionary(locale):
    return {parse_lang_code(k):v for k, v in dprefs['preferred_dictionaries'].iteritems()}.get(locale, None)
コード例 #21
0
def build_test():
    dictionaries = Dictionaries()
    dictionaries.initialize()
    eng = parse_lang_code('en')
    if not dictionaries.recognized('recognized', locale=eng):
        raise AssertionError('The word recognized was not recognized')
コード例 #22
0
ファイル: epub.py プロジェクト: AtulKumar2/calibre
 def parse(x):
     try:
         return parse_lang_code(x)
     except ValueError:
         return None
コード例 #23
0
 def parse(x):
     try:
         return parse_lang_code(x)
     except ValueError:
         return None
コード例 #24
0
ファイル: dictionary.py プロジェクト: yunfile123/calibre
                name, locale, locales = locales[0], locales[1], locales[1:]
            except IndexError:
                continue
            base = os.path.dirname(lc)
            ploc = parse_lang_code(locale)
            if ploc.countrycode is None:
                continue
            dics.append(Dictionary(
                ploc, frozenset(filter(lambda x:x.countrycode is not None, map(parse_lang_code, locales))), os.path.join(base, '%s.dic' % locale),
                os.path.join(base, '%s.aff' % locale), False, name, os.path.basename(base)))
        _custom = frozenset(dics)
    return _custom

default_en_locale = 'en-US'
try:
    ul = parse_lang_code(get_system_locale() or 'en-US')
except ValueError:
    ul = None
if ul is not None and ul.langcode == 'eng' and ul.countrycode in 'GB BS BZ GH IE IN JM NZ TT'.split():
    default_en_locale = 'en-' + ul.countrycode
default_preferred_locales = {'eng':default_en_locale, 'deu':'de-DE', 'spa':'es-ES', 'fra':'fr-FR'}


def best_locale_for_language(langcode):
    best_locale = dprefs['preferred_locales'].get(langcode, default_preferred_locales.get(langcode, None))
    if best_locale is not None:
        return parse_lang_code(best_locale)


def preferred_dictionary(locale):
    return {parse_lang_code(k):v for k, v in dprefs['preferred_dictionaries'].iteritems()}.get(locale, None)