Delphi 2009 and Localization?

A while back there was talk about D2009 having improved Localization tools (aside from Unicode)?

Any info on this? Or would it be better to use something like this: http://dybdahl.dk/dxgettext/
--
Tony Caduto
AM Software Design
http://www.amsoftwaredesign.com
0
Tony
9/12/2008 1:50:11 AM
embarcadero.delphi.non-tech 5933 articles. 1 followers. Follow

22 Replies
479 Views

Similar Articles

[PageSpeed] 3

Tony Caduto wrote:

> A while back there was talk about D2009 having improved Localization
> tools (aside from Unicode)?
> 
> Any info on this? Or would it be better to use something like this:
> http://dybdahl.dk/dxgettext/

Definetly lacking in at least one way from the included localization
tools and this that this product only translates strings ( resources
properties all of them actually) but a localization in most cases will
have to re arrange controls changing sizes of labels to show bigger
text or to make them smaller when needed.

regards
Yannis.

-- 
"I've always wanted to be somebody, but I should have been
 more specific." -- George Carlin
0
IOANNIS
9/12/2008 8:30:42 AM
> A while back there was talk about D2009 having improved Localization
> tools (aside from Unicode)?
> 
> Any info on this? Or would it be better to use something like this:
> http://dybdahl.dk/dxgettext/

Check out the launch webinar replays on CDN - there was one session
devoted to this, entitled 'Get Off your ASCII' or somesuch...
0
Chris
9/12/2008 11:19:12 AM
YANNIS KOZIKOPULOS wrote:

> Definetly lacking in at least one way from the included localization
> tools and this that this product only translates strings ( resources
> properties all of them actually) but a localization in most cases will
> have to re arrange controls changing sizes of labels to show bigger
> text or to make them smaller when needed.

Talking from my experience, I'd recommend *against* doing GUI changes through
translation. Better to modify the layout of the original so all languages
fit. Doing customizations in each translation will increase the workload
enormously, and will always be a source of (language related) problems.

I don't know how well that suits left-to-right versus right-to-left, though.
I have no experience of that.

-- 
Anders Isaksson, Sweden
BlockCAD: http://web.telia.com/~u16122508/proglego.htm  
Gallery: http://web.telia.com/~u16122508/gallery/index.htm
0
Anders
9/12/2008 12:26:35 PM
> {quote:title=Anders Isaksson wrote:}{quote}
> YANNIS KOZIKOPULOS wrote:
> 
> > Definetly lacking in at least one way from the included localization
> > tools and this that this product only translates strings ( resources
> > properties all of them actually) but a localization in most cases will
> > have to re arrange controls changing sizes of labels to show bigger
> > text or to make them smaller when needed.
> 
> Talking from my experience, I'd recommend *against* doing GUI changes through
> translation. Better to modify the layout of the original so all languages
> fit. Doing customizations in each translation will increase the workload
> enormously, and will always be a source of (language related) problems.
> 
> I don't know how well that suits left-to-right versus right-to-left, though.
> I have no experience of that.
> 
> -- 
> Anders Isaksson, Sweden
> BlockCAD: http://web.telia.com/~u16122508/proglego.htm  
> Gallery: http://web.telia.com/~u16122508/gallery/index.htm

AFAIK, Windows basically mirrors the placement of everything for these situations:

http://blogs.gotdotnet.com/michkap/archive/2008/08/25/8893033.aspx

....and in some early pre-release versions of Vista, it was a bit too eager, mirroring too much:

http://blogs.msdn.com/michkap/archive/2007/10/01/5217431.aspx
0
Michael
9/12/2008 12:44:18 PM
> Talking from my experience, I'd recommend *against* doing GUI changes through
> translation.
I agree. Even better is to have your controls adapt automatically to the 
content, so you don't need to check if everything fits after each 
translation. Something similar to how a website behaves.
0
Utf
9/12/2008 12:54:30 PM
Anders Isaksson wrote:
> YANNIS KOZIKOPULOS wrote:
> 
>> Definetly lacking in at least one way from the included localization
>> tools and this that this product only translates strings ( resources
>> properties all of them actually) but a localization in most cases will
>> have to re arrange controls changing sizes of labels to show bigger
>> text or to make them smaller when needed.
> 
> Talking from my experience, I'd recommend *against* doing GUI changes through
> translation. Better to modify the layout of the original so all languages
> fit. Doing customizations in each translation will increase the workload
> enormously, and will always be a source of (language related) problems.
> 
> I don't know how well that suits left-to-right versus right-to-left, though.
> I have no experience of that.
> 

Speaking of which, I think I read somewhere (web, ng's) that 30% of English 
version length would be.  Does that sound correct?

Thanks,

--
Warm Regards,

Lee
0
Lee
9/12/2008 1:01:06 PM
Chris Rolliston wrote:
>> A while back there was talk about D2009 having improved Localization
>> tools (aside from Unicode)?
>>
>> Any info on this? Or would it be better to use something like this:
>> http://dybdahl.dk/dxgettext/
> 
> Check out the launch webinar replays on CDN - there was one session
> devoted to this, entitled 'Get Off your ASCII' or somesuch...

Witty, I know. <g>


--
Warm Regards,

Lee
0
Lee
9/12/2008 1:01:52 PM
Lee Jenkins wrote:

> Speaking of which, I think I read somewhere (web, ng's) that 30% of English 
> version length would be.  Does that sound correct?

I'm not sure what you're saying, but if you're saying "To have a higher
chance of fitting international text, add 30% to the space needed for
English" it may be true(-ish).

Some notes I've collected (and reported back) during my years as translator
from English to Swedish (two different commercial softwares):

1. Don't assume other languages fit in the same space as English. Most need
more. "De flesta behöver mera" in Swedish, that's 22/14 = 57% more
characters in Swedish. Layout the text/label boxes as wide as possible.
2. Don't assume other languages work in the same way as English (verb-ing
nouns, noun-ing verbs etc.)
3. Don't assume a certain single word is always translated the same. One
entry for every different use.
4. Don't ever build up sentences from separate words. >>> Every message needs
a translation of its own <<<
5. Use formatting strings (with identified placeholders) if you need to build
up texts ("Point %1d of %2d"). The order may not be the same in a different
language. Those are still dangerous, as the translator can introduce breaking
bugs here, be careful!
6. Don't do the GUI layout as a sentence (more or less the same as #4 above,
but worth a point of its own).
7. Don't include text in any pictures - if you need it, handle it with
overlays.

and so on. This will make life much easier for the poor translator :-)

-- 
Anders Isaksson, Sweden
BlockCAD: http://web.telia.com/~u16122508/proglego.htm  
Gallery: http://web.telia.com/~u16122508/gallery/index.htm
0
Anders
9/12/2008 1:42:41 PM
Lee Jenkins wrote:

> Anders Isaksson wrote:
> > YANNIS KOZIKOPULOS wrote:
> > 
> >> Definetly lacking in at least one way from the included
> localization >> tools and this that this product only translates
> strings ( resources >> properties all of them actually) but a
> localization in most cases will >> have to re arrange controls
> changing sizes of labels to show bigger >> text or to make them
> smaller when needed.
> > 
> > Talking from my experience, I'd recommend against doing GUI changes
> > through translation. Better to modify the layout of the original so
> > all languages fit. Doing customizations in each translation will
> > increase the workload enormously, and will always be a source of
> > (language related) problems.
> > 
> > I don't know how well that suits left-to-right versus
> > right-to-left, though.  I have no experience of that.
> > 
> 
> Speaking of which, I think I read somewhere (web, ng's) that 30% of
> English version length would be.  Does that sound correct?

No. I have not found any percentage which can be used globaly equal to
all the traslated strings. You have to keep in mind that a number of
english words might not have direct translations to one word in other
languages and it might two or more.

Regards
Yannis.
-- 
"Any man who is under 30, and is not a liberal, has not heart; 
 and any man who is over 30, and is not a conservative, has no 
 brains."
 -- Sir Winston Churchill (1874-1965)
0
IOANNIS
9/12/2008 1:43:23 PM
Anders Isaksson wrote:

> Talking from my experience, I'd recommend against doing GUI changes
> through translation. Better to modify the layout of the original so
> all languages fit. Doing customizations in each translation will
> increase the workload enormously, and will always be a source of
> (language related) problems.

Actually is not that simple. In most cases around 70%~80% of the
translation projects this is the case. By changing the original sizes
you can make room for the translated strings. In other cases (and you
have to take in to account UI specifications eg no dialog shoold be
more larger than  800 x 600) it is impossible to change the language
with out moving the labels and steel give a uniform look and fill on
all the application.

It is a good practise to minimize the translation proccess to strings /
messages only but it is not possible in all the cases and in thouse
cases that you need to you better have a tool that has this ability.

As always the solution is somewhere in the middle, so it is better to
have the ability now and never have to use it than to needed in the
future and not be able to.

regards
Yannis.

-- 
"It is a miracle that curiosity survives formal education." 
 -- Albert Einstein
0
IOANNIS
9/12/2008 1:50:45 PM
Tony Caduto wrote:

>Or would it be better to use something like this: http://dybdahl.dk/dxgettext/

Highly recommended.

The great advantage of gettext is that the translator needs not install
any development tools. In fact the translator needs little knowledge
about programming at all.

Gettext has been in use on Linux "forever" so it's tried and tested.




-- 
Arthur Hoornweg

(In order to reply per e-mail, please just remove the ".net"
  from my e-mail address. Leave the rest of the address intact
  including the "antispam" part. I had to take this measure to
   counteract unsollicited mail.)
0
Arthur
9/12/2008 1:51:49 PM
YANNIS KOZIKOPULOS wrote:

> Anders Isaksson wrote:
> 
> > Talking from my experience, I'd recommend against doing GUI changes
> > through translation. [...]

> Actually is not that simple. [...]

That's why I didn't say "Never do...", I just recommended against it :-)

Trust me, I've been (am still) on the translating side, and I'm sick of
having to resize dialogs again and again for each new version. Much better to
redesign the original in a way that covers all languages.

-- 
Anders Isaksson, Sweden
BlockCAD: http://web.telia.com/~u16122508/proglego.htm  
Gallery: http://web.telia.com/~u16122508/gallery/index.htm
0
Anders
9/12/2008 2:10:07 PM
Anders Isaksson wrote:
> Lee Jenkins wrote:
> 
>> Speaking of which, I think I read somewhere (web, ng's) that 30% of English 
>> version length would be.  Does that sound correct?
> 
> I'm not sure what you're saying, but if you're saying "To have a higher
> chance of fitting international text, add 30% to the space needed for
> English" it may be true(-ish).
> 
> Some notes I've collected (and reported back) during my years as translator
> from English to Swedish (two different commercial softwares):
> 
> 1. Don't assume other languages fit in the same space as English. Most need
> more. "De flesta behöver mera" in Swedish, that's 22/14 = 57% more
> characters in Swedish. Layout the text/label boxes as wide as possible.
> 2. Don't assume other languages work in the same way as English (verb-ing
> nouns, noun-ing verbs etc.)
> 3. Don't assume a certain single word is always translated the same. One
> entry for every different use.
> 4. Don't ever build up sentences from separate words. >>> Every message needs
> a translation of its own <<<
> 5. Use formatting strings (with identified placeholders) if you need to build
> up texts ("Point %1d of %2d"). The order may not be the same in a different
> language. Those are still dangerous, as the translator can introduce breaking
> bugs here, be careful!
> 6. Don't do the GUI layout as a sentence (more or less the same as #4 above,
> but worth a point of its own).
> 7. Don't include text in any pictures - if you need it, handle it with
> overlays.
> 
> and so on. This will make life much easier for the poor translator :-)
> 

Great stuff.  This is for a rather tasked based application with short, direct 
instructions and labels.  "Close", "User Menu", "Send", etc.  I'm hoping that 
narrowing the actual phrase in combination with current context (what the user 
is doing in the UI) and leaving a much space as possible for stirngs will reduce 
problems when translation is done.


--
Warm Regards,

Lee
0
Lee
9/12/2008 4:49:44 PM
Anders Isaksson wrote:

> YANNIS KOZIKOPULOS wrote:
> 
> > Anders Isaksson wrote:
> > 
> > > Talking from my experience, I'd recommend against doing GUI
> > > changes through translation. [...]
> 
> > Actually is not that simple. [...]
> 
> That's why I didn't say "Never do...", I just recommended against it
> :-)
> 
> Trust me, I've been (am still) on the translating side, and I'm sick
> of having to resize dialogs again and again for each new version.
> Much better to redesign the original in a way that covers all
> languages.

We seem to be in agreement in most parts. I also agree 100% with your
note list and I found that I am following it in my development 99% of
the times, there are parts of a software that I have to break a few
rules like a class for number to text (eg 112 = one houndred and
twelve).

In my experience (and because I have both roles I guess) it is easier
for some parts just to design for one size fits all and in other cases
it is easier and faster to just resize as needed. Over all I can
understand the pain to resizing controls when translating as well as
the pain to calculate one size when you have no idea what the maximum
of a description might be.

regards
Yannis.

-- 
"I'm not a member of any organized political party, I'm a 
 Democrat!" -- Will Rogers (1879-1935)
0
IOANNIS
9/12/2008 4:59:19 PM
Anders Isaksson wrote:

> and so on. This will make life much easier for the poor translator :-)

Could not agree more with your points.
0
Olivier
9/12/2008 8:04:55 PM
Maybe two more tips.

1) Make sure property "autosize" is set to true for single-line
   labels, checkboxes etc.

2) For multi-line labels, set autosize=false, wordwrap= true and
     give the label an extra line just in case.



-- 
Arthur Hoornweg

(In order to reply per e-mail, please just remove the ".net"
  from my e-mail address. Leave the rest of the address intact
  including the "antispam" part. I had to take this measure to
  counteract unsollicited mail.)
0
Arthur
9/15/2008 9:08:07 AM
YANNIS KOZIKOPULOS wrote:

> In my experience (and because I have both roles I guess) it is easier
> for some parts just to design for one size fits all and in other cases
> it is easier and faster to just resize as needed. Over all I can
> understand the pain to resizing controls when translating as well as
> the pain to calculate one size when you have no idea what the maximum
> of a description might be.

Don't just take every translation for granted. Make sure the
translator understands what the texts will be used for (such
as dialog windows). Ask him/her to try to not exceed the
English text lengths by more than xxx percent and it'll save you
some trouble...



As for Gnu Gettext, the *.mo and *po file formats are open
source so it should be easy to develop a tool that compares
the string lengths of the original texts and the translations
and throws a warning when length-related problems are to
be expected (maybe even taking character-widths into
account?).





-- 
Arthur Hoornweg

(In order to reply per e-mail, please just remove the ".net"
  from my e-mail address. Leave the rest of the address intact
  including the "antispam" part. I had to take this measure to
  counteract unsollicited mail.)
0
Arthur
9/15/2008 9:22:36 AM
Arthur Hoornweg wrote:

> 1) Make sure property "autosize" is set to true for single-line
>    labels, checkboxes etc.

Do checkboxes have a autosize property in D2009?

Jan Derk
0
Jan
9/15/2008 4:50:35 PM
:rthur Hoornweg wrote:

> 1) Make sure property "autosize" is set to true for single-line
>    labels, checkboxes etc.

I disagree on this one. My recommendation would be:

"Set AutoSize OFF, and create the field as large as the current layout allows"

This *may* give the translator a possibility to search for translations that
are too long, depending on the tool used. I've used

- RC-WinTrans which is very good at spotting such problem areas, but a bit
dated
- Across which isn't so good for this particular point, but very good for the
translation coordinator
- dxGetText which is quick and easy, but doesn't have any helpful tools at
all, only a translation table

RC-WinTrans and Across creates a database from .rc files, and produce .rc
files from the database, thus are not well suited for Delphi, better for C++
and any other environment using .rc files.

-- 
Anders Isaksson, Sweden
BlockCAD: http://web.telia.com/~u16122508/proglego.htm  
Gallery: http://web.telia.com/~u16122508/gallery/index.htm
0
Anders
9/17/2008 8:24:36 AM
Arthur Hoornweg wrote:

> Don't just take every translation for granted. Make sure the
> translator understands what the texts will be used for (such
> as dialog windows). Ask him/her to try to not exceed the
> English text lengths by more than xxx percent and it'll save you
> some trouble...

Context is everything! Getting a long list of single words, without any
context at all, is a recipe for translation disaster!

One variant of this is to design the program using text ID:s instead of any
actual texts, and letting even the original language be a 'translation'. With
this tool, you can always run the program, switch to the language "TextID",
and see exactly which text string is used in which place in the program.

> As for Gnu Gettext, the *.mo and *po file formats are open
> source so it should be easy to develop a tool that compares
> the string lengths of the original texts and the translations
> and throws a warning when length-related problems are to
> be expected (maybe even taking character-widths into
> account?).

AFAIK, the .mo/.po format doesn't contain any layout information, neither the
font used nor the field width. Without this information it's pratically
useless to try to compare string lengths. You will get a lot of false
positives (translation longer than original, but will still fit in layout)
and false negatives (translation seems to fit, but in reality doesn't).
Running the program and looking at all dialogs is the only way out here...

-- 
Anders Isaksson, Sweden
BlockCAD: http://web.telia.com/~u16122508/proglego.htm  
Gallery: http://web.telia.com/~u16122508/gallery/index.htm
0
Anders
9/17/2008 8:37:06 AM
You can have information about how to desing UI and other stuff from
http://www.sisulizer.com/support/developers-corner/preparing-delphi.shtml
I am currently writing new document covering Delphi 2009.

More information from
http://software-localization.blogspot.com/

Of cource I am not 100% objective in this issue but my option is that the most important features of a localization tools are:
- It can localize eveything: forms, strings, pictures, fonts, IME, etc
- It shows forms including inherited forms and frames correctly without development tool. 
- This same is available for translator without any development tool
- You can import and export data
- You can check that your translations are right (spell checking, format pattern checking, etc)

Sisulizer can do all this and it is written in Delphi and localized to 12 languages including Asian languages.

Best regards,
Jaakko Salmenius
http://www.sisulizer.com - Three simple steps to localize
0
Jaakko
9/17/2008 10:47:59 AM
>> Don't just take every translation for granted. Make sure the
>> translator understands what the texts will be used for (such
>> as dialog windows). Ask him/her to try to not exceed the
>> English text lengths by more than xxx percent and it'll save you
>> some trouble...
> 
> Context is everything! Getting a long list of single words, without any
> context at all, is a recipe for translation disaster!
Having the name of the components/resourcestring helps, but isn't enough 
from my experience. What do you suggest to improve the context?

> AFAIK, the .mo/.po format doesn't contain any layout information, neither the
> font used nor the field width. Without this information it's pratically
> useless to try to compare string lengths.
Fonts may change at runtime, for example if you adapt to the system 
font, Tahoma since Win9x and Segoe UI since Vista. So this method isn't 
reliable either, especially if no scaling is implemented.

I'm making my own translation tool (no source code changes, aimed 
specially to Delphi, currently only for my programs), so I'm pretty 
interested in any ideas you might have.

On special request I got several times: Group together similar strings 
and translate them in one batch. Things like "OK"/"Cancel" on dialogs. 
The problem is I'm reluctant to do that since especially for one-word 
strings it might well be that, depending on the context, different 
translations are necessary.

What do you think? What is your ideal tool from the perspective of a 
translator with programming experience.
0
Utf
9/17/2008 2:57:52 PM
Reply: