Overview

Multi-Language Support is a feature that allows translation files to switch the language of the Dynaform according to your needs. Designers can download a .po file with labels created within the Dynaform and perform the corresponding translation for any language. The translation file is used without needing to create a new form for that language.

The Language option is at the top of the Dynaform designer, in the right-hand corner of the window.

Using the Languages Window to Access a Dynaform Translation File

The designer generates a .po file that contains the labels of the controls as well as other labels used in the properties of the controls, placeholders, hints and default values, that are in the Dynaform.

To download the Dynaforms .po file, click the option from the Dynaform panel and the Languages window displays in the main panel. Use the Languages window to view and configure .po files for the Dynaform.

All Dynaforms are created in English language by default. The .po file in English is "English [processmaker.en.po]". Use the Languages window in the following ways:

  • Click within Search field to search for a .po file configured for the Dynaform. As you enter characters into this field .po files with those characters display.
  • Click the Choose File button to upload a new .po file for the Dynaform.
  • Click on a name of a .po file to download it automatically onto your local machine.
  • Click on a name of a .po file, and then click the Delete button to delete that .po file.

Characteristics of a .po Language File

A .po file has the following characteristics:

A header:

"msgid "" "msgstr "" "Project-Id-Version: PM 4.0.1\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2010-12-02 11:44+0100 \n" "Last-Translator: Colosa \n" "Language-Team: Colosa Developers Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer_Encoding: 8bit\n" "X-Poedit-Language: English\n" "X-Poedit-Country: United States\n" "X-Poedit-SourceCharset: utf-8\n" "Content-Transfer-Encoding: 8bit\n" "File-Name: processmaker.en.po\n"

A body:

msgid "Company Details and General Information" msgstr "Company Details and General Information" ... msgid represents the control property's ID msgstr represents the control property's label (to be changed in any language) ...

Note: Blank msgid’s may be deleted from the .po file. Make sure that each msgstr is enclosed in double quotes. Be careful NOT to change the msgid strings. Each msgid string is the ID of a label that relates the translation file to the label of the control, a property of the Dynaform. The editor used in the example is Brackets. Brackets is a modern open-source code editor for HTML, CSS, and JavaScript built in HTML, CSS, and JavaScript.

The first part contains the information about the translation file:

  • Project-Id-Version
  • POT-Creation-Date
  • PO-Revision-Date
  • Last-Translator
  • Language-Team
  • MIME-Version
  • Content-Type
  • Content-Transfer_Encoding
  • X-Poedit-Language
  • X-Poedit-Country (To clarify the country)
  • X-Poedit-SourceCharset
  • Content-Transfer-Encoding
  • File-Name (The name can be changed)

The second part contains information about the ID and LABEL of the control and property fields: msgid "Company Details and General Information" msgstr "Company Details and General Information" msgid "Company Name" msgstr "Company Name" msgid "Enter the name of the company" msgstr "Enter the name of the company" Refer to the next section how to make a translation file of a Dynaform in another language.

Creating a .po File

To demonstrate how to create a new file translated into different languages, the Dynaform used as an example is called "Vendor Registration Form" from the Vendor Registration process.

The web controls used in this Dynaform are:

  • "Company Details and General Information" -> Title
  • "Company Name" -> Text
  • "Email Address" -> Text
  • "Business Address" -> Textarea
  • "Geographic Service Area" -> Dropdown
  • "Type of Business / Commodity service" -> Radio
  • "Submit Details" -> Submit

Click the language option, and then click the English file in the Languages windows to download it.

The downloaded file can be edited in an editor. In this file, there are two strings for each web control: "msgid" and "msgstr". For the translation, the "msgstr" values will be modified.

The .po file related to the "Vendor Registration Form" is generated as:

msgid "" msgstr "" "Project-Id-Version: PM 4.0.1\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2010-12-02 11:44+0100 \n" "Last-Translator: Colosa\n" "Language-Team: Colosa Developers Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer_Encoding: 8bit\n" "X-Poedit-Language: English\n" "X-Poedit-Country: United States\n" "X-Poedit-SourceCharset: utf-8\n" "Content-Transfer-Encoding: 8bit\n" "File-Name: processmaker.en.po\n" msgid "Company Details and General Information" msgstr "Company Details and General Information" msgid "Company Name" msgstr "Company Name" msgid "Enter the name of the company" msgstr "Enter the name of the company" msgid "" msgstr "" msgid "" msgstr "" msgid "Email Address" msgstr "Email Address" msgid "Enter a valid email" msgstr "Enter a valid email" msgid "" msgstr "" msgid "" msgstr "" msgid "Business Address" msgstr "Business Address" msgid "Enter the company address" msgstr "Enter the company address" msgid "" msgstr "" msgid "" msgstr "" msgid "Geographic Service Area" msgstr "Geographic Service Area" msgid "" msgstr "" msgid "Select one" msgstr "Select one" msgid "Local" msgstr "Local" msgid "Regional" msgstr "Regional" msgid "National" msgstr "National" msgid "International" msgstr "International" msgid "Type of Business / Commodity Service" msgstr "Type of Business / Commodity Service" msgid "Select one" msgstr "Select one" msgid "Retailer" msgstr "Retailer" msgid "Distribution / Dealer" msgstr "Distribution / Dealer" msgid "Manufacturer" msgstr "Manufacturer" msgid "Consultant" msgstr "Consultant" msgid "Submit Details" msgstr "Submit Details"

Before creating a new translation file, consider the following:

  • The name of the new .po file is suggested to have the following format: processmaker.<LANGUAGE>.po
  • Where <LANGUAGE> is the two letters that correspond with the 639-1 ISO language code.
  • In this example, the new file has the name: processmaker.es.po. (The filename can change according to your needs. Example: productDevelopment.es.po )
  • The translation of the label must be made only in the msgstr string. Do not change the msgid label because it is the ID that relates the translation file to the label of the control in the Dynaform.
  • Ensure that both msgstr values enclosed in double quotes.
  • msgid items with no corresponding value may be deleted from the .po file.
  • Be careful NOT to change the msgid strings. Each msgid string is the ID of a label that relates the translation file to the label of the control, a property of the Dynaform.
  • Revise the following attributes with information about the new language, in the file header text:
    • X-Poedit-Language: description
    • X-Poedit-Country: description
    • File-Name: description

The new translation file can be created using a plain text editor and Poedit. (an open-source translation editor to save the file .po file type)

After the .po file is ready, it is necessary to upload this translation file to the Dynaform.

Using a Plain Text Editor

The .po file can be translated manually using any plain text editor, such as Notepad++, Brackets or UltraEdit for Windows and vim or gedit for Linux.

Open the .po file in your favorite editor and translate all the msgstr strings. Do not forget to update the following properties to the new language. In this example:

  • "X-Poedit-Language: Spanish\n"
  • "X-Poedit-Language: Bolivia\n"
  • "File-Name processmaker.es.po\n"

The new translation file looks like:

msgid "" msgstr "" "Project-Id-Version: PM 4.0.1\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2010-12-02 11:44+0100 \n" "Last-Translator: Colosa\n" "Language-Team: Colosa Developers Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer_Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: Bolivia\n" "X-Poedit-SourceCharset: utf-8\n" "Content-Transfer-Encoding: 8bit\n" "File-Name: processmaker.es.po\n" msgid "Company Details and General Information" msgstr "Detalles de la compañía e información general" msgid "Company Name" msgstr "Nombre de la compañía" msgid "Enter the name of the company" msgstr "Ingrese el nombre de la compañía" msgid "Email Address" msgstr "Correo electrónico" msgid "Enter a valid email" msgstr "Ingrese un correo electrónico válido" msgid "Business Address" msgstr "Dirección del negocio" msgid "Enter the company address" msgstr "Ingrese la dirección de la compañía" msgid "Geographic Service Area" msgstr "Área geográfica de servicio" msgid "Select one" msgstr "Seleccione una opción" msgid "Local" msgstr "Local" msgid "Regional" msgstr "Regional" msgid "National" msgstr "Nacional" msgid "International" msgstr "Internacional" msgid "Type of Business / Commodity Service" msgstr "Tipo de negocio/Servicio de productos básicos" msgid "Retailer" msgstr "Minorista" msgid "Distribution / Dealer" msgstr "Distribución/Distribuidor" msgid "Manufacturer" msgstr "Fabricante" msgid "Consultant" msgstr "Consultor" msgid "Submit Details" msgstr "Enviar detalles"

After editing you need to save the file with the name according to your needs and then open it in a Poedit and saved to create the format .po, and then it is ready to be used.

Using Poedit

Poedit is an easy open-source translation editor available for Mac OS X, Windows and UNIX/Linux.

To use Poedit with a Dynaforms .po file, follow these steps:

  • 1. Install Poedit.
  • 2. Click the Edit a translation option, and then open a downloaded .po file from a Dynaform.
  • 3. Poedit displays an Invalid file message. Click OK to continue.
  • 4. Click Fix language.
  • The Catalogue properties displays.

  • 5. In the Language option, change the source language (English) into the target language (in this example, Spanish).
  • 6. Add the name and the email address in the Language team field so people can contact you with revisions and updates about the translation.
  • 7. Select Use default rules for this language option.
  • 8. Set the Charset and Source code charset to UTF-8.
  • 9. Click OK to save the changes.
  • You can modify these properties going to Catalogue > properties menu option.

    Poedit displays the list of labels that will be translated on the right column of the window.

  • 10. Click Pre-translate.
  • 11. Select Only fill in exact matches check box.
  • 12. Click Pre-translate.
  • 13. Select a sentence to translate from English to the target language. (in this example into Spanish). Suggestions appear in the Translation suggestions section. If the translations suggested are not displayed, go to View > Show sidebar menu, or press Alt+Ctrl+S keys.
  • 14. You can select the best match
  • In this example, the first suggestion matches better.

    You can modify the translation according to your needs.

  • 15. For each line, select the best translation suggestion.
  • 16. Once done, click Save using the PO Translation File (*.po) file type using the naming style suggested earlier or with the file name according to your needs.
  • processmaker.<LANGUAGE>.po or filename.po

    In this example, the new file will be named processmaker.es.po.

    The .po file is ready to be used.

    Uploading the Translated .po File into the Dynaform

    To upload the .po translation file to the Dynaform, follow these steps:

    • 1. Click the option in the Dynaform menu. The Languages window displays.
    • 2. Choose File to upload the processmaker.es.po file created as an example. The new translation file uploaded to the Dynaform and listed in the panel, as shown in the image below:

    To remove the translation file upload, click Delete.

    Now, to see the translated Dynaform within the process. See the section How the translated Dynaform looks.

    How the Translated Dynaform Looks

    To view the translated Dynaform follow these steps:

    • 1. Click on the gray border of the Dynaform to display its properties as shown in the image below.
    • 2. From the properties section, select the Spanish (es) option from the language drop-down.
    • 3. Click Preview.

    The dynaform is translated to the target language. (in this example Spanish).

    Changing the Dynaform Language in the URL

    The current system language is automatically selected when loading the Dynaform if there is a .po file available for that language. Otherwise, the Dynaform displays the field labels in the original design of the Dynaform.
    For example, if the system language is "en", then the English-language .po file is used, but if the system language is "es", then the Spanish-language .po file is used. However, if the system language is "jp", but there is no Japanese .po file uploaded for the Dynaform, then the phrases used in the Dynaform Designer is used.

    Therefore, if the user logs into ProcessMaker with the English language, the Dynaform displays the English-language file.

    To manually change the displayed Dynaform language in a URL, change the 639-1 ISO language code inmediately after sysworkflow/ in the URL. For example, to change the displayed Dynaform language from English to Spanish, follow these steps.

    • 1. Locate and select the English-language code (en) in the URL, as shown in the image below.
    • 2. Revise the selected code to the Spanish-language code (es), as shown in the image below.
    • 3. Refresh the web browser screen by pressing ENTER in the navigation bar, or pressing CTRL+R to display the new language in the Dynaform.
    • The Dynaform shows all labels translated.

      A .po file may use any filename, but it needs to have the correct language listed in the PO header: "X-Poedit-Language: \n" If the language code in the URL includes the country code, then the country needs to be also listed in the .po file.
      For example, if the URL is: http:/example.com/sysworkspace/pr-BR/neoclassic/cases/main Then, the .po file should have the following lines in the header: "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: Brazil\n"

      Translating Many Dynaforms

      If you have many Dynaforms to translate, export all the .po files for all the Dynaforms to a plain text editor and then cut and paste all the phrases to be translated into one .po file for the entire process.

      Example: Add these strings to the processmaker.es.po file in your favorite editor.

      msgid "Response" msgstr "Respuesta" msgid "Accept Vendor Info?" msgstr "¿Aceptar información del vendedor?" msgid "Yes" msgstr "Si" msgid "No" msgstr "No" msgid "Comments" msgstr "Comentarios" msgid "Enter your comments here" msgstr "Ingrese sus comentarios aquí"

      After you have added all these strings, save the file with a filename according to your needs. In this example, the name is alldynaformstranslatedin.es. Open the .po file into Poedit editor, save it with format .po, and then upload the file into the Dynaform.

      Close the windows by clicking the X button.

      It does not matter whether you use a different .po file for each Dynaform or a single .po file for the entire process. In each DynaForm, you need to upload the .po file for each language that you want to support. You will not see the language change in the DynaForm Designer. When running a case, ProcessMaker will select the .po file for the language in the URL, which is also the language selected during login, but you can change it in the web browser's address bar:

      http://<domain>/sys<workflow>/<lang>/<skin>/cases/main

      Continuing with the example, you will see all the labels translated in all dynaforms.

      http://<domain>/sysworkflow/en/neoclassic/cases/main
      http://<domain>/sysworkflow/es/neoclassic/cases/main