Discussion about the internationalization and localization of ProcessMaker

Moderator: amosbatto

#814531
Hi,
I'm developing a system for a Georgian institution.
First I would like to know if there is already any translation of the core for this language?
Second, I have a doubt regarding Forms translation - in each form there is the possibility of export the translation file. Shall I create one file for each form, a separated one from the core for all forms, or include everything in the same file (the core)? Best practice?

thank you very much.
#814535
Nobody has done a Georgian translation, but you can start one:
http://wiki.processmaker.com/3.0/Transl ... ocessMaker
The interface is huge and most users will never see it, so I recommend starting with the phrases found under the Home menu if you don't have time to translate the whole interface.

I generally make one translation file per process because I often repeat the same field in multiple forms, but you can make a translation file for each form if you prefer.
#814547
Gracias Amos.

So, do you suggest one translation file for each process, right? And then, do I need to link that file to every dynaform?
Do I need to upload them on the languages? Or after having the core language loaded, it picks it "automatically"?
What should be the name for each file? Any special?

Sorry, for this but it is the first time I will need to develop in one language and then translate ot other. Thank you again.
#814555
It doesn't matter whether you use a different .po file for each Dynaform or a singe .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 won't 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<workspace/<lang>/<skin>/cases/main

For example, to manually change from English to Spanish, change from:
http:/example.com/sysworkspace/en/neoclassic/cases/main
to:
http:/example.com/sysworkspace/es/neoclassic/cases/main
If the system language is "en", then the English .po file will used, and if it is "es", then the Spanish .po file will be used. If the system language is "fr", but there is no French .po file uploaded for the DynaForm, then the phrases used in the DynaForm Designer will be used.

The way I do it is I export all the .po files for all the Dynaforms in a plain text editor and then cut and paste all the phrases to be translated into one .po file for the entire process.

I do this way because I prefer to only have one .po file and I don't like having to retranslate the same phrase multiple times, because I often use the same phrase in multiple Dynaforms.

For example, if you have Form1 with:
Code: Select all
msgid ""
msgstr ""
"Project-Id-Version: PM 3.2.1\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-05-27 11:44+0100 \n"
"Last-Translator: Colosa<[email protected]>\n"
"Language-Team: Colosa Developers Team <[email protected]>\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-SourceCharset: utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"File-Name: form1.es.po\n"

msgid "Client Name"
msgstr "Nombre de Cliente"

msgid "Client Address"
msgstr "Dirección de Cliente"

msgid "Telephone No."
msgstr "Número de telefono"
And form2 with:
Code: Select all
msgid ""
msgstr ""
"Project-Id-Version: PM 3.2.1\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-05-27 11:44+0100 \n"
"Last-Translator: Colosa<[email protected]>\n"
"Language-Team: Colosa Developers Team <[email protected]>\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-SourceCharset: utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"File-Name: form2.es.po\n"

msgid "Product Name"
msgstr "Nombre de Producto"

msgid "Price"
msgstr "Precio"

msgid "Description"
msgstr "Descripción"
Then the combined .po file will be:
Code: Select all
msgid ""
msgstr ""
"Project-Id-Version: PM 3.2.1\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-05-27 11:44+0100 \n"
"Last-Translator: Colosa<[email protected]>\n"
"Language-Team: Colosa Developers Team <[email protected]>\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-SourceCharset: utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"File-Name: productDevelopment.es.po\n"

msgid "Client Name"
msgstr "Nombre de Cliente"

msgid "Client Address"
msgstr "Dirección de Cliente"

msgid "Telephone No."
msgstr "Número de telefono"

msgid "Product Name"
msgstr "Nombre de Producto"

msgid "Price"
msgstr "Precio"

msgid "Description"
msgstr "Descripción"
Note: blank msgid's may be deleted from the .po file.

A .po file may use any filename, but it needs to have the correct language listed in the PO header:
Code: Select all
"X-Poedit-Language: <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:
Code: Select all
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: Brazil\n"
If using a single .po file for the entire process, then that .po file need to be uploaded to every DynaForm in the process.

<?php if ($divisor == 0) { trigger_error(&q[…]

nike kd ELEVEN arizona pe. annually, nike hockey i[…]

entering august, the soccer on this planet cup con[…]

like a nature lover, i used to be delighted after […]