Recommended releases

Download Released

This module provides multilingual features to Webforms. Special
options in the webform and component configuration let you enable different
ways to manage translation of forms and questionnaires.

You can choose two different ways to manage localization that cover this
scenarios:

A) If you want to keep a single webform across all nodes in a translation set or
you are using field translation:
Use i18n_string integration to translate webform strings. This module expose
webform properties, components and emails strings through the i18n module. All
submissions results are related to the source node only.
(You have a "localization by string translation" fieldset in the form settings
to enable this)

B) If you want to keep a webform per node per language but synchronized:
The entire webform structure is replicated when a translated node is created
then you can customize it at will. You can add specific options or components
per language and choose to keep sync: webform properties, components properties,
roles and emails recipients. In this scenario make no sense of having results
attached to one node since each webform could have a different structure with
only a few components in sync.
(You have a "localization by sync" fieldset in the form settings to enable this)

Requirements

  • Webform Module
  • Internationalization Module

Installation

  1. Install this module using the official Backdrop CMS instructions at
    https://backdropcms.org/guide/modules.
  2. Login as an administrator. Enable the module in the "Administer" -> "Modules"
  3. Create a webform node at node/add/webform or edit a existing webform.
  4. Enable one of the localization features provided in the webform at "Form
    settings". See examples below.

Example A: Manage localization for node/1 using string translation

  1. Go to the Webform tab for that node at node/1/webform.

  2. Go to the Webform Form settings at node/1/webform/configure.

  3. In the "localization by string translation" fieldset enable "Expose webform
    component strings suitable for translation." checkbox. That will expose
    defined strings to the i18n_string module.

  4. [OPTIONAL] In the "localization by string translation" fieldset enable "Keep
    a single webform across a translation set." checkbox. This will render the
    webform in the source language node, in all nodes within a translation set,
    so activate this feature to create a single webform for appear in every translated node.

  5. If you are dealing with a already existing webform you have to do an
    additional action for refreshing the string pool for all components.You can
    omit this step if you enable string translation before adding the components.

    • Go to Configuration -> Translate interface -> Strings
      (admin/config/regional/translate/i18n_string).
    • Enable "Webform localization" checkbox.
    • Click "Refresh Strings".
  6. The actual translation is made at
    Configuration -> Translate interface -> Translate
    (admin/config/regional/translate/translate).
    Here you can filter the strings available for translation by "webform" text
    group.

Example B: Manage localization for node/1 using translation by sync

  1. Create all webform components in the node/1 webform. Enable the Content
    translation module and be sure that the webform content type has enabled the
    multilanguage support (Enabled, with translation) at Publishing options.
  2. Go to the Webform tab for that node at node/1/webform.
  3. Go to the Webform Form settings at node/1/webform/configure.
  4. In the "localization by sync" fieldset enable the webform properties
    checkboxes in "Synchronize webform properties across node translations.". Choose
    what properties you will need to keep synchronize in all webforms across a
    translation set.
  5. In the "localization by sync" fieldset enable the "Synchronize webform
    components across node translations." checkbox. This will clone the entire
    webform when you create a translation and will enable specific options per
    component for you to synchronize properties.
  6. In the "localization by sync" fieldset enable the "Synchronize webform
    submission access roles across node translations." checkbox. This will keep the
    roles changes synchronize in all webforms across a translation set.
  7. In the "localization by sync" fieldset enable the "Synchronize webform e-mail
    recipients across node translations." checkbox. This will keep all email changes
    synchronize in all webforms across a translation set.
  8. Create a translation for node/1 at node/1/translate. You will notice that the
    new language node will had a new webform instance with the original structure
    from the source node.

Now you we will have to translate all pertinent texts in the webform and
components. All properties changes in the source webform will be synchronized in
all translates nodes as you have specified in the previous steps.

Support

Please use the issue queue for filing bugs with this module at
https://github.com/backdrop-contrib/webform_localization/issues.

License

This project is GPL v2 software. See the LICENSE.txt file in this directory for
complete text.

Maintainers

Credits

Ported to Backdrop from Drupal 7 by herbdool.
The Drupal 7 version originally written and maintained by: