[Lazarus] Improving IDE Internationalization
Marcelo B de Paula
marcbp at terra.com.br
Sun Jan 24 16:33:14 CET 2010
>Anyway. What i'd like to say is that current implementation is working
>with both 2.2.4 and 2.4.0 (or later) versions of the compiler. And
>supports translated messages correctly.
Yes, i think that this modification can be tagged to a new release of
compiler and ide.
About translate messages working correctly on prior versions, i cannot
confirm.
If i change compiler messages by loading another errorxx.msg in IDE or use a
different errorxx.msg
to compile the compiler itself, the first thing i´ve noticed is that
QuickFixItems stop working,
and message icons on message view form do not show correctly.
That´s because Quickfixitems and MessageView are comparing const strings in
english only.
Excerpts:
Result:=(Line.Parts<>nil)
and (System.Pos(') Fatal: Can''t find unit ',Line.Msg)>0);
if REMatches(Msg.Msg,'Can''t find unit ([a-z_0-9]+) used by
([a-z_0-9]+)','I') then begin
------
const
cHint = 'Hint: User defined:';
cNote = 'Note: User defined:';
cWarning = 'Warning: User defined:';
clMsgHint = clBlue;
clMsgNote = clGreen;
clMsgWarning = clRed;
cLeftSpacer = 0;
...
if not (cdsSelected in State)
then begin
TheText := Node.Text;
if Pos(cNote, TheText) > 0 then
ChangeFontColor(clMsgNote)
else if Pos(cHint, TheText) > 0 then
ChangeFontColor(clMsgHint)
else if Pos(cWarning, TheText) > 0 then
ChangeFontColor(clMsgWarning);
end;
So, after changing TOutputFilter, there are much to do before using a custom
language correctly.
Regards,
Marcelo
More information about the Lazarus
mailing list