Well, as Gambas becomes more and more important to VL I figured it's in my best interest to take out the time to learn it. I have to say I like the facilities a lot, even though the object model is kind of iffy compared to Python and BASIC is an unpleasant reminder of my early youth.

Anyway, I wrote a sample application with a translated label. I was impressed to see that issuing an executable packaged the translation into the binary! But something seemed amiss. Because the widgets in my form are manually arranged (the automatic formatters seemed not to do what I needed), they wouldn't resize at run time.

That's a problem because the way some languages explain things varies in length from English, especially wrt technical topics. Look at some of the .desktop files in /usr/share/applications to see what I mean. To experiment, I typed 'Här är Gambasmaskoten osv. osv. osv. osv. osv. osv.' to make a translated string arbitrarily long and ran it with LANG=sv_SE. To my dismay, the string filled up the label and then some, clipping most of the text.

And that's a disaster in case I ever learn Finnish.

For those more experienced with Basic and Gambas, what should I do? (*cough*, Joe1962)

Auto-resizing is one of the biggest PITAs of UI programming. On a project, I try to come to an agreement among the devs and set a max limit for the caption length of certain controls, then stick to that max for each language. This usually requires some tweaking later on, when you find it impossible to condense it within the limit in a certain language. Gambas 2 sort of complicated things somewhat when it started to set the control sizes in different screen resolutions according to the font size ratio. This is optional in the latest releases and now you can again get pixel-perfect designs that survive resolution changes. Something that might also help is this:

I hope Gambas 2 plans some kind of layout engine. I remember when I used Qt Designer to create the forms for my Swedish program, I arranged usable widgets and abstract 'spacer' widgets, then selected them in order to make vertical and horizontal arrangements. When I coded the backend for the application and ran it, I didn't need to worry about the size of text or even resizing windows, as I knew everything would remain in some degree of proportion.