add 14 languages search support

This commit is contained in:
shibukawa yoshiki 2014-01-20 02:09:21 -08:00
parent e5f58d686e
commit a01e56fde9
16 changed files with 451 additions and 3 deletions

View File

@ -44,7 +44,7 @@ A development egg can be found `here
<http://bitbucket.org/birkenfeld/sphinx/get/tip.gz#egg=Sphinx-dev>`_. <http://bitbucket.org/birkenfeld/sphinx/get/tip.gz#egg=Sphinx-dev>`_.
''' '''
requires = ['Pygments>=1.2', 'docutils>=0.7'] requires = ['Pygments>=1.2', 'docutils>=0.7', 'snowballstemmer>=1.1']
if sys.version_info[:3] >= (3, 3, 0): if sys.version_info[:3] >= (3, 3, 0):
requires[1] = 'docutils>=0.10' requires[1] = 'docutils>=0.10'

31
sphinx/search/da.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/de.py Normal file

File diff suppressed because one or more lines are too long

View File

@ -15,10 +15,15 @@ try:
# http://bitbucket.org/methane/porterstemmer/ # http://bitbucket.org/methane/porterstemmer/
from porterstemmer import Stemmer as CStemmer from porterstemmer import Stemmer as CStemmer
CSTEMMER = True CSTEMMER = True
PYSTEMMER = False
except ImportError:
CSTEMMER = False
try:
from Stemmer import Stemmer as PyStemmer
PYSTEMMER = True
except ImportError: except ImportError:
from sphinx.util.stemmer import PorterStemmer from sphinx.util.stemmer import PorterStemmer
CSTEMMER = False PYSTEMMER = False
english_stopwords = set(""" english_stopwords = set("""
a and are as at a and are as at
@ -229,6 +234,13 @@ class SearchEnglish(SearchLanguage):
class Stemmer(CStemmer): class Stemmer(CStemmer):
def stem(self, word): def stem(self, word):
return self(word.lower()) return self(word.lower())
elif PYSTEMMER:
class Stemmer(object):
def __init__(self):
self.stemmer = PyStemmer('porter')
def stem(self, word):
return self.stemmer.stemWord(word)
else: else:
class Stemmer(PorterStemmer): class Stemmer(PorterStemmer):
"""All those porter stemmer implementations look hideous; """All those porter stemmer implementations look hideous;

31
sphinx/search/es.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/fi.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/fr.py Normal file

File diff suppressed because one or more lines are too long

32
sphinx/search/hu.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/it.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/nl.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/no.py Normal file

File diff suppressed because one or more lines are too long

32
sphinx/search/pt.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/ro.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/ru.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/sv.py Normal file

File diff suppressed because one or more lines are too long

31
sphinx/search/tr.py Normal file

File diff suppressed because one or more lines are too long