Workflow

Under construction.

Install and configure an Java IDE

Jenkins use Java Properties and Jelly files to implemented internationalization, and all translations mus be stored in files that uses ISO-8859-1 encoding and any characters that are not supported by it must be converted to Java entities.

Use your preferred IDE configured to receive UTF-8 as input and automatically convert to ISO-8859-1 with Java entities: that you save you from a lot of headaches, leaving you to worry about normally editing the files.

Instructions to setup that will vary depending on the IDE, but here are some references:

The IDEA has a good chance to include a spell checking tool, which is a great addition to the process.

Run jtt for an overview

Executed with only the --lang option, jtt will only check all available translation files and compare those in English with those available (or not) in the selected language.

This will give you an overview what needs to be done.

My suggestion is to always started with the removal of deprecated keys with the --remove option, so you start cleaning up instead of having to mess with unnecessary keys text.

Use Git

Check with Git (git status) what changes are being proposed and follow up from there.

Once a translated file is done, add it with git add. I strongly suggest to work in each file individually so you can get a better control of progress.

New files

For new files, you will need to open them in the IDE and start the translation.

Deprecated keys

Review each file that had keys removed, comparing them with the original. It is possible that you will find lines that were removed because jtt identified them as a empty key (they probably were left overs, without being a well formed property).

Removed file

Nothing really to be done in this case, except accept the change with git add.

Compile the Jenkins source code

It's a good idea to recompile the Jenkins source code after changing the properties, just to be sure everything is fine.

While is always possible to make it with your preferred IDE, using the Maven CLI might be the easiest way.

First download Maven from https://maven.apache.org/download.cgi.

Then unpack it and follow the instructions detailed in the README.txt file.

Once you finish the setup, just move to the Jenkins checkout out Git repository and execute:

mvn -am -pl war,bom -DskipTests -Dspotbugs.skip -Dspotless.check.skip clean install

Tips

Working in a shell

If you're using a UNIX shell (Bash, Korn, etc), you can use programs like find and grep to search files that requires some fixes.

Note

Since version 0.03, jtt includes the --search option to do something like that.

For example, let's suppose I know there are remaining "build" English words spread over Brazilian Portuguese translation properties, so I can do:

$ find core/src -type f -name '*pt_BR.properties' | xargs grep -F build -l -i > tmp.txt

That creates the text file tmp.txt (that I won't commit to the repository) which I can use as a "working queue", since now I will need to review each file.

The next sequence of commands will "pop out" the first filename to STDOUT from the file, allowing me to open the file in the IDE, edit it, then move to the next file in the "queue".

head -1 tmp.txt && sed -i -e '1d' tmp.txt