i18n_subsites: improve develop server support

1. main site url root fix
2. support autoreload mode
Also removed trailing slash on dir name.
This commit is contained in:
Ondrej Grover 2014-02-04 14:22:54 +01:00
parent 72b5de1af6
commit 8ee994b70d

View File

@ -74,6 +74,7 @@ def create_lang_subsites(pelican_obj):
pelican_obj = cls(settings) pelican_obj = cls(settings)
logger.debug("Generating i18n subsite for lang '{}' using class '{}'".format(lang, str(cls))) logger.debug("Generating i18n subsite for lang '{}' using class '{}'".format(lang, str(cls)))
pelican_obj.run() pelican_obj.run()
_main_site_generated = False # for autoreload mode
@ -148,7 +149,8 @@ def install_templates_translations(generator):
generator.context['main_siteurl'] = _main_siteurl generator.context['main_siteurl'] = _main_siteurl
generator.context['main_lang'] = _main_site_lang generator.context['main_lang'] = _main_site_lang
extra_siteurls = { lang: _main_siteurl + '/' + lang for lang in generator.settings.get('I18N_SUBSITES', {}).keys() } extra_siteurls = { lang: _main_siteurl + '/' + lang for lang in generator.settings.get('I18N_SUBSITES', {}).keys() }
extra_siteurls[_main_site_lang] = _main_siteurl # To be able to use url for main site root when SITEURL == '' (e.g. when developing)
extra_siteurls[_main_site_lang] = '/' if _main_siteurl == '' else _main_siteurl
current_def_lang = generator.settings['DEFAULT_LANG'] current_def_lang = generator.settings['DEFAULT_LANG']
extra_siteurls.pop(current_def_lang) extra_siteurls.pop(current_def_lang)
generator.context['extra_siteurls'] = extra_siteurls generator.context['extra_siteurls'] = extra_siteurls
@ -158,7 +160,7 @@ def install_templates_translations(generator):
domain = generator.settings.get('I18N_GETTEXT_DOMAIN', 'messages') domain = generator.settings.get('I18N_GETTEXT_DOMAIN', 'messages')
localedir = generator.settings.get('I18N_GETTEXT_LOCALEDIR') localedir = generator.settings.get('I18N_GETTEXT_LOCALEDIR')
if localedir is None: if localedir is None:
localedir = os.path.join(generator.theme, 'translations/') localedir = os.path.join(generator.theme, 'translations')
if current_def_lang == generator.settings.get('I18N_TEMPLATES_LANG', _main_site_lang): if current_def_lang == generator.settings.get('I18N_TEMPLATES_LANG', _main_site_lang):
translations = gettext.NullTranslations() translations = gettext.NullTranslations()
else: else: