mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-14 15:53:28 +01:00
more locale fixes: (#653)
* more locale fixes: - fix running wb-manager w/o i18n dependencies - dependencies: move babel to extra_requires, show warning if locale used or 'wb-manager i18n' called and i18n are not installed - not found page: don't language switch header banner on nested content frame
This commit is contained in:
parent
3ca765f847
commit
cff2a9efc5
@ -3,8 +3,14 @@ pywb 2.6.0b2 changelist
|
||||
|
||||
* Update documentation for CDX Server API (by @sebastian-nagel) `#651 <https://github.com/webrecorder/pywb/pull/651>`_
|
||||
|
||||
Localization fixes: `#653 <https://github.com/webrecorder/pywb/pull/653>`_
|
||||
|
||||
* Ensure banner template is not autoescaped
|
||||
|
||||
* Don't show locale switch on not found pages (redundant with banner)
|
||||
|
||||
* Ensure wb-manager works when optional i18n dependencies are not installed
|
||||
|
||||
|
||||
pywb 2.6.0b1 changelist
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -5,4 +5,5 @@ uwsgi
|
||||
ujson
|
||||
pysocks
|
||||
lxml
|
||||
babel
|
||||
translate_toolkit
|
||||
|
@ -685,7 +685,7 @@ class RewriterApp(object):
|
||||
return self._error_response(environ, wbe)
|
||||
|
||||
def _not_found_response(self, environ, url):
|
||||
resp = self.not_found_view.render_to_string(environ, url=url)
|
||||
resp = self.not_found_view.render_to_string(environ, url=url, err_msg="Not Found")
|
||||
|
||||
return WbResponse.text_response(resp, status='404 Not Found', content_type='text/html')
|
||||
|
||||
|
@ -442,14 +442,25 @@ Create manage file based web archive collections
|
||||
acl.set_defaults(func=do_acl)
|
||||
|
||||
# LOC
|
||||
from pywb.manager.locmanager import LocManager
|
||||
loc_avail = False
|
||||
try:
|
||||
from pywb.manager.locmanager import LocManager
|
||||
loc_avail = True
|
||||
except:
|
||||
pass
|
||||
|
||||
def do_loc(r):
|
||||
if not loc_avail:
|
||||
print("You must install i18n extensions with 'pip install pywb[i18n]' to use localization features")
|
||||
return
|
||||
|
||||
loc = LocManager()
|
||||
loc.process(r)
|
||||
|
||||
loc_help = 'Generate strings for i18n/localization'
|
||||
loc = subparsers.add_parser('i18n', help=loc_help)
|
||||
LocManager.init_parser(loc)
|
||||
if loc_avail:
|
||||
LocManager.init_parser(loc)
|
||||
loc.set_defaults(func=do_loc)
|
||||
|
||||
# Parse
|
||||
|
@ -8,8 +8,6 @@ from six.moves.urllib.parse import urlsplit, quote
|
||||
from jinja2 import Environment, TemplateNotFound, contextfunction, select_autoescape
|
||||
from jinja2 import FileSystemLoader, PackageLoader, ChoiceLoader
|
||||
|
||||
from babel.support import Translations
|
||||
|
||||
from webassets.ext.jinja2 import AssetsExtension
|
||||
from webassets.loaders import YAMLLoader
|
||||
from webassets.env import Resolver
|
||||
@ -17,6 +15,7 @@ from webassets.env import Resolver
|
||||
from pkg_resources import resource_filename
|
||||
|
||||
import os
|
||||
import logging
|
||||
|
||||
try:
|
||||
import ujson as json
|
||||
@ -128,9 +127,12 @@ class JinjaEnv(object):
|
||||
self.default_locale = default_locale
|
||||
|
||||
if locales_root_dir:
|
||||
for loc in locales:
|
||||
loc_map[loc] = Translations.load(locales_root_dir, [loc, default_locale])
|
||||
#jinja_env.jinja_env.install_gettext_translations(translations)
|
||||
try:
|
||||
from babel.support import Translations
|
||||
for loc in locales:
|
||||
loc_map[loc] = Translations.load(locales_root_dir, [loc, default_locale])
|
||||
except:
|
||||
logging.warn("Ignoring Locales. You must install i18n extensions with 'pip install pywb[i18n]' to use localization features")
|
||||
|
||||
def get_translate(context):
|
||||
loc = context.get('env', {}).get('pywb_lang', default_locale)
|
||||
|
@ -1,5 +1,5 @@
|
||||
<header>
|
||||
{% if locales|length > 1 %}
|
||||
{% if not err_msg and locales|length > 1 %}
|
||||
<div class="language-select">
|
||||
{{ _('Language:') }}
|
||||
<ul role="listbox" aria-activedescendant="{{ env.pywb_lang | default(default_locale) }}" aria-labelledby="{{ _('Language select') }}">
|
||||
|
@ -14,5 +14,4 @@ portalocker
|
||||
wsgiprox>=1.5.1
|
||||
fakeredis<1.0
|
||||
tldextract
|
||||
babel
|
||||
python-dateutil
|
||||
|
Loading…
x
Reference in New Issue
Block a user