Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/IDE/Translation Tools    [ Add a report in this area ]  
Report #:  79483   Status: Need Feedback
Localized projects build in Delphi 2010 not working at all
Project:  Delphi Build #:  14.0.3513.24210
Version:    14.0 Submitted By:   Robert Petek
Report Type:  Crash / Data loss / Total failure Date Reported:  11/13/2009 3:37:36 AM
Severity:    Critical / Show Stopper Last Updated: 11/13/2009 6:57:38 AM
Platform:    All platforms Internal Tracking #:  
Resolution: Need More Info (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: (1 Total Rating)
5.00 out of 5
Total Votes: 12
Description
I can't believe that with every new release of Delphi, translation tools work worse than before. I just wish that Embarcadero would fix translation tools so that it would work as it did back in Delphi 6! We are now forced to keep our projects, translated to several languages and upgraded from Delphi 6 with lots of effort to Delphi 2007 and then to Unicode in Delphi 2009 because of the following bug.

Delphi 2010 VCL application .exe files are somehow not working with language resource modules.
Steps to Reproduce:
In Delphi 2010:
1. Create new application 'File\New\VCL Forms Application - Delphi'
2. Save all project files 'File\Save All' to Unit1.pas, Project1.dproj, ProjectGroup1.groupproj
3. Create localized project 'Project\Languages\Add..' (in my case Slovenian .slv)
4. Switch to localized project in Project Manager. Translate something (in my case translate form caption in 5. Project1.slv\Unit1.dfm). Save localized project.
6. Switch to and build application (Project1.exe)
7. Update localized project ('Project\Languages\Update localized projects)
8. Switch to and build localized project (Project1.slv)

Run application in system regional setting of your translation. A translated form should appear but it doesn't.


Now open same project in Delphi 2009.
Repeat steps 6-8. Build exe, build translation and run application. A translated form appears as it should.

Maybe you will find this interesting. I've tried the following:
Delphi 2010 .slv file with Delphi 2009 .exe - it works
Delphi 2010 .exe file with Delphi 2009 .slv - it does not work

It lets me believe that something is wrong when building .exe files in Delphi 2010.
Workarounds
None
Attachment
project_src.zip
Comments

Tomohiro Takahashi at 11/13/2009 6:57:28 AM -
What OS do you use, XP, Vista or 7?
What Edition of your OS do you use(e.g., English ...)?
What system locale do you use?
Could you please try to set Active Language of the project using Menu([Project]|[Language]) and run the application with IDE?

Uwe Schuster at 11/22/2009 5:04:54 AM -
I've had a look at it and I can say that localized projects do work in general with Delphi 2010. (RAD Studio 2010 is written with itself and I am running it sometimes as german version)

However I see a minor problem with the language selection which does only affects the developer and not the end user and can easily be worked around.

I've made some tests with Delphi 2010 on Vista x64. The issue is language independend, but I've set the language for formats to "Slovenian (Slovenia)" (see Control Panel -> Regional and Language Options -> Page Formats -> Current format)

Steps:
- create a new Delphi VCL app and save it as LocaleTest2010
- call Project | Languages | Add
- press Next on the first page of the wizard (project selection page)
- check "Slovenian (Slovenia) | $00000424 | SLV" on second page of the wizard (language selection page)
- finish the wizard
- open the localized Main form (that should open the Translation Editor)
- update the translation for the Main form's caption and set it to "FormXSLV"
- save the translation (CTRL+S or Save button in the left top corner)
- compile LocaleTest2010.SLV
- select the project LocaleTest2010.exe
- have a look at the sub menu items of Project | Languages and see there is an item with the name of your active OS language and here it is "Set Active... (<Slovenian (Slovenia)>)"
- run the app

expected: the Main form caption is "FormXSLV"
actual: the Main form caption is "FormX"
(with Delphi 2009 it is "FormXSLV")

- have a look at the items of the registry key  [HKEY_CURRENT_USER\Software\CodeGear\Locales] and see there is an entry "...\LocaleTest2010.exe | REG_SZ | sl-SI"

- call Project | Languages | Set Active..
  you should see now the two items
  <Slovenian (Slovenia)>
  Slovenian (Slovenia)
- select "Slovenian (Slovenia)" (that item without <>) and press Finish
- run the app again and see the caption is now "FormXSLV"


You wrote that the Delphi 2009 app works with the Delphi 2010 .SLV file, but the Delphi 2010 app doesn't work with the Delphi 2009 .SLV file. I guess you didn't copy the Delphi 2010 to another location and thatswhy it is looking by default always for a .sl-SI file and not for a .SLV file. If you would copy the Delphi 2010 app and the .SLV file to another location which is + Exe filename not in one of the following keys

  Software\CodeGear\Locales
  Software\Borland\Locales
  Software\Borland\Delphi\Locales

then the Delphi 2010 app should use the .SLV file.


Do you see what I've described?

If yes, then simply remember to set the active language to "Slovenian (Slovenia)" and not "<Slovenian (Slovenia)>" and then everything should work.

Robert Petek at 2/16/2010 9:33:26 AM -
Hi Uwe,

thanks for the effort. The "trick" of selecting the "right" language entry in the Project\Languages\Set active... has worked. In my case I had "<Slovenia>" and "Slovenia" entries and it was set to the first by default. I didn't even know the second entry exist and didn't find any documentation about the change from .SLV -> .sl-SI. Anyway, it's been a while since I worked in Delphi. Lately I've been working in Visual C#.

Regards,
Robert

Robert Petek at 2/17/2010 5:10:59 AM -
Hi,

the "trick" of selecting the "right" language entry in the Project\Languages\Set active... works when running the project from Delphi IDE or if you run the .exe from the folder, where it was build and this folder is saved in the registry key [HKEY_CURRENT_USER\Software\CodeGear\Locales]. If I move both .exe and .slv files to another folder and run the .exe then the .slv is not used. That is a serious issue, I'd say a bug.. and we're still forced to use Delphi 2009 for our localized projects.

Before Delphi 2010, the .exe determined the right localized resource dll from the current systems regional settings, not from the entry in the [HKEY_CURRENT_USER\Software\CodeGear\Locales] registry key. If this is not a bug, what's the workaround on this issue?

Regards,
Robert

Server Response from: ETNACODE01