def __init__(self, context, request: Request):
self.request = request
self.context = context
self.domain = request.matchdict['domain']
_ = request.translate
self.helper = request.registry['i18n_helper']
self.pot = polib.pofile(
os.path.join(self.helper.locale_dir, '{0}.pot'.format(self.domain)),
encoding='UTF-8'
)
# LANG FORM
langs_dir = self.helper.locale_dir
created_langs_choices = []
for lang in os.listdir(langs_dir):
if os.path.isdir(os.path.join(langs_dir, lang)):
lang_locale = babel.Locale(*babel.parse_locale(lang))
created_langs_choices.append(
(lang , '{en_name}/{display_name}'.format(
en_name=lang_locale.english_name,
display_name=lang_locale.display_name )
)
)
available_langs_choices = sorted(locale.locale_alias)
class NewLang(colander.Schema):
new_lang = colander.SchemaNode(colander.String(),
widget=deform.widget.AutocompleteInputWidget(values=available_langs_choices,
min_length=0),
title=_("i18n_new_lang", domain='i18n_helper'))
class SelectLang(colander.Schema):
select_lang = colander.SchemaNode(colander.String(),
widget=deform.widget.SelectWidget(values=created_langs_choices),
title=_("i18n_select_lang", domain='i18n_helper'))
def validator(node, appstruct):
return True
schema = NewLang(validator=validator)
schema = schema.bind(request=self.request)
self.new_lang_form = deform.Form(schema,
use_ajax=False,
action=self.request.route_url('i18n_helper.pot', domain=self.domain))
self.new_lang_form.buttons.append(deform.Button(name='submit', title=_('i18n_new_lang_submit', domain='i18n_helper')))
schema = SelectLang(validator=validator)
schema = schema.bind(request=self.request)
self.select_lang_form = deform.Form(schema,
use_ajax=False,
action=self.request.route_url('i18n_helper.pot', domain=self.domain))
self.select_lang_form.buttons.append(deform.Button(name='submit', title=_('i18n_select_lang_submit', domain='i18n_helper')))
# MSG FORM
评论列表
文章目录