fix lang_COUNTRY not fallback correctly for IndexBuilder

In IndexBuilder, it will fallback to <lang> when the lang
is passed as <lang_COUNTRY>, and will fallback to en when
not found.

::
    lang_class = languages.get(lang)    # type: Type[SearchLanguage]
                                        # add language-specific SearchLanguage instance

    # fallback; try again with language-code
    if lang_class is None and '_' in lang:
        lang_class = languages.get(lang.split('_')[0])

    if lang_class is None:
        self.lang = SearchEnglish(options)  # type: SearchLanguage

So there's no need to check lang before creating the IndexBuilder
instance.

Signed-off-by: Shengjing Zhu <i@zhsj.me>
This commit is contained in:
Shengjing Zhu 2018-05-09 13:08:31 +08:00
parent 169297d0b7
commit ed871965e9
2 changed files with 3 additions and 2 deletions

View File

@ -103,6 +103,7 @@ Bugs fixed
* i18n: message catalogs were reset on each initialization * i18n: message catalogs were reset on each initialization
* #4850: latex: footnote inside footnote was not rendered * #4850: latex: footnote inside footnote was not rendered
* i18n: fix lang_COUNTRY not fallback correctly for IndexBuilder
Testing Testing
-------- --------

View File

@ -444,9 +444,9 @@ class StandaloneHTMLBuilder(Builder):
# create the search indexer # create the search indexer
self.indexer = None self.indexer = None
if self.search: if self.search:
from sphinx.search import IndexBuilder, languages from sphinx.search import IndexBuilder
lang = self.config.html_search_language or self.config.language lang = self.config.html_search_language or self.config.language
if not lang or lang not in languages: if not lang:
lang = 'en' lang = 'en'
self.indexer = IndexBuilder(self.env, lang, self.indexer = IndexBuilder(self.env, lang,
self.config.html_search_options, self.config.html_search_options,