This page gives an outline of how to go about translating Firestorm into another language. This applies to the viewer itself, not the help files (wiki).
For simplicity it focuses only on the 'Firestorm' skin (theme is irrevelant).
When the viewer starts, it loads to memory all XML files from the default, English folder: http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/file/tip/indra/newview/skins/default/xui/en - interface layout and all neccessary strings.
If the language selected by user is something other than English, let's say Polish, the viewer tries to find a file in skins/default/xui/pl with the same name as English one, and replace found attributes and values in memory, on the fly, with the ones in the localization folder. Note “attributes and values” - the viewer is not replacing whole files. Quick example:
Basic English localization has a lot of tags, which are not needed in the localization itself. In fact, the most often used in non-English ones are only “label”, “tool_tip” and “name” (the latter to assign elements properly).
The viewer doesn't have “a list of strings”, but around 400 files in XML language, which need to be created and translated.
Changes from version to version (release to release) are usually not very drastic ones (http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/log?rev=translation+update), but the initial amount of workload can take around 2-3 weeks of 6-7 hours of constant work. Maintaining already created translation is not that hard.
At the beginning there is no direct repository access. You must to know how to create a patch in diff format, prefferably using TortoiseHG (Mercurial system client), and attach it to our JIRA bug reporting system: http://jira.phoenixviewer.com/issues/?jql=issuetype%20%3D%20Translation%20AND%20text%20~%20%22translation%20update%22
The biggest issue is to be able to fit all these strings into size-limited fields in UI. You can't say “hey, I'd like to make this space bigger” - you must fit there with your strings. For example, open Phototools floater, both in English and a different language, and you'll see a lot of shortened strings everywhere.
IMPORTANT: In some places, you will find placeholder templates; for example: [SECONDS] These will always be enclosed in square brackets and in upper case. These should be left alone, as the viewer will replace the text at run-time. Some placeholders are visibile in the image below.
The “XUI preview tool”, available on the login screen after pressing CTRL + T, can be helpful in quick changes, without the need to shutdown and start the viewer again: Login screen → Debug menu at the top → XUI Preview Tool (Ctrl-Alt-D to enable the Debug menu, if it is not visible). In the image, the arrow is showing which language is the chosen one, with English as the default one.