Twproject supports label customization directly from the web-interface.

You can modify every menu, button, label, message text from the admin page:

Insert a label to search e.g.: “projects” and press “return” key:

Then modify one or more label, then press “save on file” button.

Labels modified by customers will be preserved by Twproject updates.

Your work gets saved on the database, so web app updates will not overwrite it.


Translate in a new language

You can create your own language, but do not underestimate the effort.
Suppose you want to create an entirely new language for the user interface. Twproject lets you create a new language and insert the label translation entirely from the web interface.

To create a new language , say you assign to your language the code “XZ”. Locate the “new language” button -> in the input write “XZ”, click “new language” -> now in editing each entry you will have a “XZ” input column.

Consider that there are really many labels; use the “only if missing in some language” flag to search the missing ones.

Contribute to translation

Twproject is available on many languages, but sometime the term used in the labels are not the right ones, are misspelled or simply are missing. We try to keep all languages updated, but we are open to our customer contribution.

Considering that your changed labels are saved on your database, if you want to send back a few changes to Twproject developers, you have to “export” them, and send us the generated file.

If instead you want send us a complete new language or a massive set of labels, you should consider that Twproject distributes the common internationalization labels through textual files, those with .i18n extension. When the user inserts labels, those get saved on the database, so that web app updates do not overwrite them. In order to get also your work to end up in .i18n files, you need to get to “development” modality, which is done by editing the “[twroot]/webapps/ROOT/WEB-INF/” file and setting “development=yes”. Then restart Twproject.
From this point on, your labels will go on the right file:


You can also edit e label file directly using a text editor: the format is:

Twproject [TAB] code [TAB] language [TAB] translation

for instance:
Twproject 01_GRAVITY_LOW FR bas
Twproject 01_STATUS_OPEN FR ouvert

Once your translation is completed you can send the label file to us: then your changes will be included in next release.


Same labels contains %% placeholder that is replaced with a parameter passed during translation. Eg.: ABOUT_TO_IMPORT_%%TASKS label is used in a context like translate(“ABOUT_TO_IMPORT%%_TASKS”,10) that will produce a label like “About to import 10 tasks”.