Translating phosphor-webui [GUI accessibility]
Joseph Reynolds
jrey at linux.vnet.ibm.com
Wed Dec 19 06:19:41 AEDT 2018
The GUI design team talked about an attempt to translate the web GUI
during the OpenBMC Community Call held on 12/17/2018. Here are my notes
of that conversation together with my comments.
An attempt was made to translate the phosphor-webui[1] web application
from English into German, Chinese, and other languages. This
application consists of HTML, CSS, and Javascript code. The HTML
contains English phrases which need to be translated. The JavaScript
code also likely contains English phrases which would need to be
translated.
The approach was to copy and modify the English HTML files, one set for
each target language. For example, bmc-reboot-controller.html[2] (but I
didn't record which files were shown during the call). To use the
translated version, simply replace the English version with the
translated version in your OpenBMC image, and your browser will show the
translated version.
Performing the translation was difficult because the English sentences
were built from phrases with replacement text in the middle of the
sentence. For example, in the sentence, "The processor temperature of
60 degrees is over the limit of 58", can built from HTML like:
<p>The processor temperature of</p><script>...get the
temp...</script><p>degrees is over the limit.</p>.
This presents a problem for translation centers who typically receive
each phrase separately and may not have visibility to the entire
sentence.
One might think you could simply re-arrange the HTML elements, including
the replacement fields, into the sequence you need, but translation
centers are not typically set up for that. Besides that, we don't want
to trust them messing with our HTML files: that is not their expertise.
The problem becomes impossible to translate correctly when the word
order must be changed (which happens regularly for German) such that the
replacement text (e.g., 58 and 60 in the example above) must be
rearranged. A translation center would reject this and create an issue
for the web developer to fix this problem. Hence the recommendation
(requirement?) is to always keep entire sentences together and never
build them up from phrases.
We discussed using the AngularJS translation framework.
There were some problems with the way the translated text appeared in
the web browser window. Some of the translated text was much longer
than the English versions; and some of these were clipped instead of
flowed. These problems are being addressed by fixing the HTML and CSS
code.
We talked about other things that may require translation.
- Translated Redfish schemas[3] for example described by DSP8011.
Redfish schemas are JSON files served by the BMCWeb HTTP server which
contain English descriptions of the Redfish APIs. In BMCWeb, they are
stored here [4].
- Are the sensor names supposed to be translated or not?
- Do we need to translate any phrases in interfaces like the REST APIs
(Redfish and phosphor-rest), ipmitool, openbmc-tool, and ssh? The
thinking was that these are not good candidates for translation.
The decision to translate is driven by balancing the cost of translation
and preparing for translation (which can be high in terms of developer
effort and $$) compared to the benefit of the project being usable by a
wider international audience.
[1]: https://github.com/openbmc/phosphor-webui/blob/master/README.md
[2]:
https://github.com/openbmc/phosphor-webui/blob/master/app/server-control/controllers/bmc-reboot-controller.html
[3]: https://www.dmtf.org/standards/redfish
[4]:
https://github.com/openbmc/bmcweb/tree/master/static/redfish/v1/JsonSchemas
More information about the openbmc
mailing list