Github user rhtyd commented on the issue:
CloudStack UI used dictionary, dictionary2 and index jsp files.
The dictionary jsp files simply added a dictionary (java script object or
map) by reading through messages properties for various translations. Replacing
them was easy, we added a python script (`tools/transifex/gen-l10n.py`) that
would generate js files (at build time) by reading through the `messages` files
such that the generated dictionary (object or map) would be exactly same as
what the jsp files did.
The `index.jsp` file primarily did two things: (1) include dictionary,
dictionary2 jsp files, (2) used them for translating strings. By replacing the
dictionary jsp files with auto-generated translation js file based on a `lang`
cookie exactly the same dictionary object was still accessible to the index.jsp
file. All the translated strings in index.jsp were replaced with a new/custom
`DOM` element `<translate key="some.key">`, and some code was added that would
process and add text to this new dom element based on the translation key set.
Replacement of `<fmt:` code with `<translate>` was done with a search/replace
operation. By adding a new custom `DOM` element, no CSS changes were required.
The translation was done by this method:
The only exception were `select` dropdowns, where translation was done
explicitly by getting the DOM element and injecting `options` as seen here:
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket