i18n: translate page field in step list (#74035) #84

Merged
lguerin merged 1 commits from wip/74035-translate-page-field into main 2023-02-03 08:30:26 +01:00
2 changed files with 6 additions and 2 deletions

View File

@ -4,7 +4,7 @@ import os
import pytest
from wcs.carddef import CardDef
from wcs.fields import ItemField, StringField
from wcs.fields import ItemField, PageField, StringField
from wcs.formdef import FormDef
from wcs.i18n import TranslatableMessage
from wcs.qommon.http_request import HTTPRequest
@ -85,6 +85,7 @@ def test_i18n_form(pub, user, emails, http_requests):
formdef = FormDef()
formdef.name = 'test form'
formdef.fields = [
PageField(id='0', label='page field', type='page'),
# label has a trailing white space to check for strip()
StringField(id='1', label='text field ', type='string', hint='an hint text'),
ItemField(
@ -103,6 +104,7 @@ def test_i18n_form(pub, user, emails, http_requests):
for en, fr in (
('test form', 'formulaire test'),
('page field', 'champ page'),
('text field', 'champ texte'),
('list field', 'champ liste'),
('first', 'premier'),
@ -126,11 +128,13 @@ def test_i18n_form(pub, user, emails, http_requests):
app = login(get_app(pub), username='foo', password='foo')
resp = app.get(formdef.get_url())
assert resp.pyquery('#steps li.first .label').text() == 'page field'
assert resp.pyquery('#form_label_f1').text() == 'text field *'
assert resp.pyquery('[data-field-id="1"] .hint').text() == 'an hint text'
assert resp.pyquery('select [value=""]').text() == 'a second hint text'
resp = app.get(formdef.get_url(), headers={'Accept-Language': 'fr'})
assert resp.pyquery('#steps li.first .label').text() == 'champ page'
assert resp.pyquery('#form_label_f1').text() == 'champ texte*'
assert resp.pyquery('[data-field-id="1"] .hint').text() == 'un texte daide'
assert resp.pyquery('select [value=""]').text() == 'un deuxième texte daide'

View File

@ -371,7 +371,7 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
if page is None: # monopage form
page_labels.append(_('Filling'))
else:
page_labels.append(page.label)
page_labels.append(get_publisher().translate(page.label))
if page is self.current_page:
current_position = i + 1