[BlueOnyx:09217] Re: Admin GUI text all whacky...

Michael Stauber mstauber at blueonyx.it
Tue Dec 13 00:52:00 -05 2011


Hi all,

> Greg Kuhnert wrote:
> The problem you are describing sounds like a I18N issue... which does
> not appear to have been updated recently.

That is correct. This is purely an i18n issue and has nothing to do 
with Tomcat or Java.

The language stuff on BlueQuartz and BlueOnyx works like this:

There is a config file: /etc/sysconfig/i18n

It contains three lines. The first two define what the system language 
and locales are. Means: Which language the system shell is in. The last 
line "linguas" lists the locales that are supported by the GUI. Usually 
these are English, Danish, German and Japanese.

When CCEd is (re)started, it (among other things) parses 
/etc/syconfig/i18n and the GUI is set to the default language defined in 
that config file. When you login with a browser to the GUI, a couple of 
things happen:

1.) The GUI polls your browser to see if your browser is set to a 
certain default language. For example: If you're Danish and use a Danish 
version of Firefox or Internet Exploder (or any other browser) to 
connect to the BlueOnyx GUI, then the GUI may default to show you the 
Danish text on the login screen.

2.) If your browser locale cannot be determined, or if it is not one of 
the supported languages, the GUI will default to English.

3.) Once you ARE logged in, the GUI checks which prefered language is 
set for your account and will switch to that language instead.

If none of this works, English is used. Or ought to be used. But like 
any complicated mechanism there are cases where it might simply decide 
to fall apart or do something unpredicted. ;-)

All "text" in the GUI - may it be menus, help texts, buttons, info 
texts or descriptions - are just coded in "shorthands".

Example: [[base-vsite.userName_help]]

This tells CCE that the "real" text to show for "userName_help" is 
found in the package base-vsite. Depending on the chosen or determined 
display language, the GUI will then poll the GetText *.mo files of the 
package "base-vsite" in the respective language subdirectory somewhere 
deep inside /usr/share/locales/

There it then finds something like this:

msgid "userName_help"
msgstr "Please enter the username here."

Those of you who know GetText know that the "real" text is of course in 
the *.PO files and that the *.MO files are binarized versions of it 
after "msgfmt" is done with it. But I don't want to make this 
explanation more complicated than it already is.

And yes: There is also some JavaScript involved in this wizardry and 
there of course the parsing is entirely done on the browser side of 
things.

Now if you see the shorthands instead of the "real" texts, then indeed 
something went wrong:

- Like the locales for a certain package got updated and CCEd and/or 
AdmServ were not restarted. Then it can also happen that the text will 
flip-flop between showing shorthands and the "real" text when you reload 
a certain page.

- Or the browser locale could not be determined and the "fallback" 
mechanism to English didn't work.

- Or your /etc/sysconfig/i18n is buggered.

- Or the language preference stored for your user account is buggered 
and contains an unsupported locale.

- Or your browser choked on some JavaScript and failed to do what it 
was supposed to do.

In any case one of the following (or a combination of it) will fix it:

1.) Restart CCEd and AdmServ:

/etc/init.d/cced.init restart
/etc/init.d/admserv restart

Or if you're lazy, reboot the box.

2.) Log out of the GUI and log back in.

3.) Go to "personal profile" and change your language to something else 
for a moment. Save the changes and then revert it back to the language 
you want to use and save again. This step is usually not necessary

This last step (if done as "admin") is the ONLY transaction that 
modifies a "good" /etc/sysconfig/i18n. CCEd *may* rewrite this file on 
(re)start as well, but only if it is missing or contains garbage. But no 
OS update or BlueOnyx update will ever mess with /etc/sysconfig/i18n

This works the same between 5106R on one hand and 5107R/5108R on the 
other hand. With one minor difference: On 5106R the English and Japanese 
locales are named "en" and "jp" and on 5107R/5108R they're more 
specifically named "en_US" (for American English) and "jp_JP" (for 
Japanese). This also affects in which subdirectory these locales are 
stored inside /usr/share/locale/. But regardless of that the GUI knows 
where to find them depending on the platform.

So long story short:

Restarting CCEd and AdmServ and logging out and back in usually fixes 
this problem in the rare cases where it might happen. When I'm back from 
my holiday I will look into the "fallback" mechanism that defaults the 
GUI to English when it's no longer sure about which locale to use. There 
is perhaps a small glitch in it or room for futher improvement to make 
sure it doesn't just show the shorthands.


Regards,

Michael



More information about the Blueonyx mailing list