Support forum of the software localization tool Sisulizer


.NET, Delphi, ... - Sisulizer Localization Tool Support Home

Get in contact with the makers of Sisulizer.
Our forum is open for all questions around Sisulizer from customers and prospects.
Don't hesitate to register and ask. The Sisulizer team will answer ASAP.

Search     Help Home Sisulizer Website Download
Search by username
Not logged in - Login | Register 

 Moderated by: Renate.Reinartz, Markus.Kreisel, Jaakko.Salmenius, Ilkka.Salmenius Page:    1  2  Next Page Last Page  
New Topic Reply Printer Friendly
captions of radiobuttons in DevExpress TcxRadioGroup not translated back - Bugs and Quirks in Sisulizer - Technical Support (You need to be registered at the forum to write) - .NET, Delphi, ... - Sisulizer Localization Tool Support
AuthorPost
 Posted: Wed May 13th, 2009 08:52 am
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Hi,

I'm evaluating your software and like it because it supports DevExpress fully. I only found I think a little bug in translating captions of radiobuttons of the TcxRadioGroup button.

The situation: Sisulizer scans all strings even the captions of radiobuttons so I can translate them. Then when I have build a dutch resource dll and implemented the translation in my Delphi program like the example Language changing without the sisulizer dialog it goes wrong.

When my program starts it uses the dutch resource dll because my OS is dutch. All strings are translated correct (also the captions of the radiobuttons of the TcxRadioGroup). Then when I select the default language (English) then all strings except the captions of the radiobuttons of a TcxRadioGroup are translated back to English. So the caption of the tcxRadioGroup is translated correctly to English but the individual captions of the radiobuttons not :?.

Is this a bug or am I doing something wrong (I use Delphi 2009 with a drc file).

Thanks in advance.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 09:23 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Hi,

You speak about the runtime switch of languages with LaTranslator.pas?

Please make sure that you read this: http://www.sisulizer.com/online-help/RuntimeLanguageChangeVcl.htm

Markus

 




____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 10:32 am
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
I read the help but don't see what specific part you are pointing to. I don't use dynamic properties (all captions are set on design time) so I don't have to create the form again. Also I use the following modules:

uses
  LaCommon,
  LaResource,
  LaTranslator;


In the initialization part I added the following:

initialization
  // Translate only string properties when performing runtime language switch
  LaEnabledProperties := STRING_TYPES_C;


On FormCreate I do the following:

procedure TfrmMain.FormCreate(Sender: TObject);
  procedure Process(locale: Integer);
  var
    str: String;
  begin
    str := GetWindowsLocaleName(locale, True);
    cbLanguage.Properties.Items.AddObject(str, TObject(locale));
  end;

var
  i, locale: Integer;
  code: String;
  languages: TStringList;
begin
  AppDir := ExtractFilePath(Application.ExeName);
  InitializeSkinList;
//  PageControl.ActivePageIndex := 0;

  // Populate the radio group to contains the possible languages

  // Original language is English
  Process(LANG_ENGLISH);

  // Add the available languages.
  // Get only those that are compatible to the current code page.
  languages := TStringList.Create;
  try
    GetAvailableResources(languages, '', True);

    for i := 0 to languages.Count - 1 do
    begin
      code := languages[i];
      locale := ExtensionToLocale(code);
      Process(locale);

      if code = LoadedResourceLocale then
        cbLanguage.ItemIndex := cbLanguage.Properties.Items.Count - 1;
    end;

    if cbLanguage.ItemIndex = -1 then
      cbLanguage.ItemIndex := 0;
  finally
    languages.Free;
  end;
end;
 


And on selecting another language I do:

procedure TfrmMain.cbLanguageClick(Sender: TObject);
var
  locale: Integer;
  code: String;
begin
  locale := Integer(cbLanguage.Properties.Items.Objects[cbLanguage.ItemIndex]);

  // Original language is English so use empty language code with English
  if locale = LANG_ENGLISH then
    code := ''
  else
    code := LocaleToExtension(locale);

  SetNewResourceFile(code);
end;

 
Also I found another strange thing. When loading the languages in a combobox the English language is shown as "English" and the resource dll language is shown as "Nederlands". The latter is correct because my OS is Dutch but then I suspect that the first one should be "Engels" and not "English".

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 10:40 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Hi,

I'm not a Delphi developer, but I would expect that you some action is needed to convince that the DevExpress change the language at runtime. I have to ask our Delphi cracks for some help with that. In the moment they are answering questions to users at the conferences in San Jose and Tokyo where we are exhibiting.

I try to point them to this thread nevertheless.

Markus




____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 10:54 am
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Thanks.:)

The only strange thing is that all other devexpress controls I use are working correct for so far as I tested.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 10:58 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Sometimes third party change things. So perhaps it is just a fresh flaw in LaTranslator and the "action to be done" is on our side :-)

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 11:55 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
I have some news.

Please make a simple application that contains one form and one TcxRadioGroup. Not more please ,-)
Then upload the compiled EXE and source (.dpr .dfm .pas) to me. Please use the new "Private Upload" button right above this post. It helps us to keep track of uploads and forums posts. Our guess is that DevExpress changed the data type for that particular control. But that is guessing just out of the blue. Your sample might help to find that.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 12:37 pm
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Must I also include runtime language changing in this application?

I will send it to you tonight.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 12:43 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
No,

just one form with one TcxRadioGroup. I understood that our developers want to look at it with a HexEditor. The smaller the app the better. We don't have the latest DevExpress control at our conference booth so we need your help with that.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 01:42 pm
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Maybe I found what's the cause of the problem. In the breaking changes of the latest build I found this:

Build 43


Breaking Change Intermediate TcxCaptionItem and TcxCaptionItems classes have been introduced. They implement the generic


functionality of items and item collections in group controls, such as button group and checklist box controls. As a result, the


TcxButtonGroupItem and TcxCheckListBoxItem classes inherit from TcxCaptionItem, while the TcxButtonGroupItems and


TcxCheckListBoxItems
classes inherit from TcxCaptionItems.

 

I will send you the sample application later.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 13th, 2009 01:47 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Yes, that sounds like a good reason.

Hopefully your sample will help. Else we have to wait for DevExpress to update us.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Fri May 15th, 2009 12:34 pm
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Hi Markus,

I uploaded the sample wednesday evening, did one of the delphi developers had time to check it out?

Back To Top PM Private Upload Quote Reply

 Posted: Fri May 15th, 2009 12:37 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Hi,

Yes, they looked into it while on the conference. We hoped that the binary could give some info. But they found out that they need to look into it again next week in the office. There will be definitely a fix for that.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Fri May 15th, 2009 12:40 pm
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Ok, thanks.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 20th, 2009 01:35 pm
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Hi, is there any progress on this issue?

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 20th, 2009 01:40 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
I think R&D is are waiting for some feedback by DevExpress. It is not forgotten.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Mon May 25th, 2009 07:10 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Hi,

I just verified that we are still waiting for some feedback from DevExpress. You already found yourself. The control was recently changed and we need some info about the internal structure from the developers.

Perhaps you could set the properties controlling the strings at runtime. You could use resource strings for it and localize them with Sisulizer. This way you could localizer your application 100%. You just would not have WYSIWYG for the radio-buttons right now.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Mon May 25th, 2009 09:34 am
PM Private Upload Quote Reply
ajmol
Member
 

Joined: Mon May 11th, 2009
Location:  
Posts: 16
Status: 
Offline
Hi Markus,

Didn't think about that, will do that for the time it's not yet implemented.

Thanks.

Back To Top PM Private Upload Quote Reply

 Posted: Mon May 25th, 2009 10:04 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 2115
Status: 
Offline
Hi,

This workaround always works. Some vendors do not join our third party program at all and hide strings in undocumented binary blocks. It would be a good idea if these settings would be stored in some XML structure (like the ResX format) embedded in the project. For localization reasons that would be a big step forward.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Mon May 25th, 2009 02:30 pm
PM Private Upload Quote Reply
Jaakko.Salmenius
Administrator


Joined: Sat Apr 8th, 2006
Location: Espoo, Finland
Posts: 2275
Status: 
Offline
I fixed this bug in build 284. The problem was the the collection name contained dot (.) and translator failed to translate it. The new build will come out sooon.

Jaakko



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

Current time is 09:16 pm Page:    1  2  Next Page Last Page    
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > captions of radiobuttons in DevExpress TcxRadioGroup not translated back



WowUltra modified by Sisulizer Copyright © 2007-09 by Jim Hale - Based on WowBB Copyright © 2003-2006 Aycan Gulez

Sisulizer software localization tool - Three simple steps to localize