diff --git a/tests/form_pages/test_i18n.py b/tests/form_pages/test_i18n.py index d40f5d15a..136d2a6ca 100644 --- a/tests/form_pages/test_i18n.py +++ b/tests/form_pages/test_i18n.py @@ -85,8 +85,15 @@ def test_i18n_form(pub, user, emails, http_requests): formdef = FormDef() formdef.name = 'test form' formdef.fields = [ - StringField(id='1', label='text field ', type='string'), # check strip() - ItemField(id='2', label='list field', type='item', items=['first', 'second', 'third']), + # label has a trailing white space to check for strip() + StringField(id='1', label='text field ', type='string', hint='an hint text'), + ItemField( + id='2', + label='list field', + type='item', + items=['first', 'second', 'third'], + hint='a second hint text', + ), ] formdef.workflow = workflow formdef.store() @@ -109,6 +116,8 @@ def test_i18n_form(pub, user, emails, http_requests): ('Mail Body', 'Contenu du courriel'), ('Notification Title', 'Titre de notification'), ('Notification Body', 'Contenu de notification'), + ('an hint text', 'un texte d’aide'), + ('a second hint text', 'un deuxième texte d’aide'), ): msg = TranslatableMessage() msg.string = en @@ -118,14 +127,18 @@ 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('#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('#form_label_f1').text() == 'champ texte*' + assert resp.pyquery('[data-field-id="1"] .hint').text() == 'un texte d’aide' + assert resp.pyquery('select [value=""]').text() == 'un deuxième texte d’aide' resp = app.get(formdef.get_url(), headers={'Accept-Language': 'fr,en;q=0.7,es;q=0.3'}) assert resp.pyquery('h1').text() == 'formulaire test' assert resp.pyquery('#form_label_f1').text() == 'champ texte*' - assert resp.pyquery('option:nth-child(2)').text() == 'deuxième' + assert resp.pyquery('option:nth-child(3)').text() == 'deuxième' resp.form['f1'] = 'test' resp.form['f2'] = 'second' diff --git a/wcs/fields.py b/wcs/fields.py index 6ba4a94f6..bbd4efb63 100644 --- a/wcs/fields.py +++ b/wcs/fields.py @@ -886,9 +886,9 @@ class WidgetField(Field): kwargs[k] = getattr(self, k) self.perform_more_widget_changes(form, kwargs) if self.hint and self.hint.startswith('<'): - hint = htmltext(self.hint) + hint = htmltext(get_publisher().translate(self.hint)) else: - hint = self.hint + hint = get_publisher().translate(self.hint or '') form.add(self.widget_class, 'f%s' % self.id, title=self.label, hint=hint, **kwargs) widget = form.get_widget('f%s' % self.id) widget.field = self