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>`_.
'''
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):
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/
from porterstemmer import Stemmer as CStemmer
CSTEMMER = True
PYSTEMMER = False
except ImportError:
from sphinx.util.stemmer import PorterStemmer
CSTEMMER = False
try:
from Stemmer import Stemmer as PyStemmer
PYSTEMMER = True
except ImportError:
from sphinx.util.stemmer import PorterStemmer
PYSTEMMER = False
english_stopwords = set("""
a and are as at
@ -229,6 +234,13 @@ class SearchEnglish(SearchLanguage):
class Stemmer(CStemmer):
def stem(self, word):
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:
class Stemmer(PorterStemmer):
"""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