Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reset control positions after localization

I have a WinForms application with base language English. I localized a form to German. Some words in German are way longer than their English equivalents so I needed to move some controls around on the German version of the form. The problem is when I move the English controls the German localization doesn't reflect the movement (obviously).

However some controls were mistakenly moved and I'd like to reset them, so their movements on the English form are reflected on the German form as well.

How can I reset the position and size (or all properties) of a single control on the German form so that the control will move on both language versions of the form when moved on the English form? Is there a way other than digging into the localized .resx file and deleting all property assignments of a control?

like image 852
Daniel Avatar asked Jan 18 '13 09:01

Daniel


People also ask

How do you move a control to a new location on the form using the mouse?

In Visual Studio, drag the control to the appropriate location with the mouse. Select the control and move it with the ARROW keys to position it more precisely.


2 Answers

I'm the author of a localization product for Visual Studio developers (in the interest of full disclosure). Any property you delete from the localized ".resx" file, either in the Visual Studio forms designer or manually in the ".resx" file itself, will then cause the control to defer to the default language's value of that property again. There's no specific feature that handles this however. You need to do it yourself on a control-by-control basis. Note however that Visual Studio is flaky sometimes, and has various bugs, for this and other issues, so things don't always work even when you do remove them using the designer (last time I reviewed the situation). Unless it's been fixed by now (I doubt it), if you set the "Location" property of a German control back to the default language's "Location" property for instance (in the designer), VS should remove the "Location" property from the ".de.resx" file. And it does - sometimes. Other times it doesn't (go figure) and you need to manually remove it yourself. Once it's gone though, the "fallback" process ensures that the default language property will then be used again (so moving the control on the English version in your case will move it on the German version, since both are then relying the same property again - the one from the English ".resx" file).

like image 54
Larry Avatar answered Sep 23 '22 01:09

Larry


I think that it would make your future development easier if you created your UI in a way that controls wouldn't need to be changed. Then you could just translate the labels and not mess with control positions.

For example put the labels on top of the corresponding edit fields, not left, make the buttons big enough to handle all texts. And consider rewording German texts to get them with smaller size.

like image 45
Riho Avatar answered Sep 22 '22 01:09

Riho