[rt-devel] I18N bug fixed

Stanislav Sinyagin ssinyagin at yahoo.com
Fri Feb 28 10:42:52 EST 2003


Hi all, 

as promised, I tracked down the problem with translations:
Umlauts and accents and Russian characters were displayed as 
two Unicode symbols each.

In lib/RT/Interface/Web.pm, I had to change the Mason encoding:

In NewApacheHandler and NewCGIHandler, the correct value is:
        default_escape_flags => 'n',
otherwise it presents all non-ascii symbols as HTML entities, and that's 
bad for many languages.
In addition, in many Mason templates, this escaping is already turned off
for some hidden reasons, like this here:

share/html/Elements/TitleBoxStart:      <span class="titleboxright"><%$titleright ? $titleright :
'&nbsp;' |n %></span>

In lib/RT/I18N.pm, the procedure "encoding" referenced $self as an object reference, 
but in fact it was a class name. Here's the corrected version:

sub encoding { 
    my $class = shift;
    my $self = {};
    bless $self, $class;


With these fixups, the web interface works like charm, though some 
words miss translations (I hope they will be updated before the 3.0 release).
I tested German, French, and Russian. I didn't test the email interface.

Now the language is determined from the browser preferences. 
It would be nice to have the menu for chosing the language, 
both before logging in and after that.

Cheers, 
Stan



More information about the Rt-devel mailing list