Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-17 Thread Joel Guillod
- Property profiles are nice, but it means that I have to store all  
of the language data for each object within a profile, making it  
harder to make changes to the text.


Many replies but none commenting about profiles.

As the gandfather of Richard used to say, "When a designer is faced  
with two equally compelling options, find a way to do both." So you  
could also make a tool which assists in building different language  
profiles from a central text translations repository. The steps in  
development would be: (1) extracts the relevant text from button  
label, fields, etc. and store them in the repository; (2) translate  
the texts in the needed languages; (3) before building your  
standalone the tool will navigate through all the objects of your  
stacks to automatically update the appropriate controls properties  
(button label, text of shared field...); (4) optionally when building  
a standalone you can choose to discard some profiles; (5) in your  
standalone some language script library will just have to set the  
revProfile or call the revSetStackFileProfile / revSetCardProfile /  
revSetStackProfile commands when user change the language preference.


I didn't remember of much use of the Profiles apart the RunRev  
tutorial on Profiles (precisely illustrated by languages  
customisation) and I would be interesting to have developers  
explanations on their use of profiles, not only for languages but for  
platform specifics (Windows, Linux, OSX), or any other ideas...


Thanks!

Joel


OT follows, just for fun!

As for the dialogs I simply change the LABEL of the buttons in the  
dialogs so "Cancel"

stays "cancel" "OK" stays "OK" etc... in every language.


;o) NO! "cancel" does not stays "cancel" in every language:  
"annuler", "abbrechen", ... ! OKay?


;o( Does anyone know what ok is the abbreviation of? I heard an  
explanation that in the old time an american sherif which  
motherlanguage was french wrote "OK" on official documents. When  
someone asked him what this means he replied: "oll korrect"...

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-17 Thread Rob Cozens

Hi Derek,

I should ask this question of the list, just to see if anyone has 
found an effective way of working with Localized (multiple-language) projects.


Most of the common approaches have been described by others; so I 
would only add:


* Saving all program text and prompts in a different text file for 
each language means only the text pertinent to the currently-selected 
language is loaded in RAM


* Storing language text & prompts in a text file in line-per-line 
format means your application can support _any_ language for which a 
text file can be created, not just the languages you build in pre release.


* If text is stored in a line-per-line format, it is a simple task to 
display each line in turn to a translator, who then types the same 
line in the new language in a field below it.  Once all lines are 
translated, the application can immediately change languages by 
loading text from the new file.


* Any translation scheme must also deal with formatting numbers, 
dates, and currency amounts differently based on system preferences 
(actually, IMO even a single-language program should present dates, 
numbers, and amounts formatted as specified by the user to the OS).


* I strongly advocate the use of icons (supplemented with tool tips, 
if you will) instead of label text to avoid spacing issues.  This is 
especially useful for labels above columnar tables: the text may be x 
characters long in one language and, say, 5*x characters in another 
language; but the column heading width remains constant without lots 
of empty space in one instance or incomprehensible abbreviation or 
truncation in the other.


Normally, I would refer you to the Serendipity Library/SDB download 
for working examples of all these points; however the old download 
went down with Andre Garzia's old web site, and it is not my 
intention to update it until the revisions I am working on are 
further tested and bundled for distribution.  If you'd like to 
explore this further, contact me off-list.


Rob Cozens
CCW, Serendipity Software Company

"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."

from "The Triple Foole" by John Donne (1572-1631)

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Richard Gaskin

Lynn Fredricks wrote:

The one downside to almost any method is that you still have to go through
and look at your interface to make sure what you've swapped fits. Text
expansion can increase your strings by 20-50%.


This raises a third reason to consider a very important feature: 
resolution independence.


The other two are Windows' long-standing feature to allow the user to 
turn on Large Fonts, and Apple's recent transition to support resolution 
independence across the board.


All three areas represent a need for more dynamic resizing of controls, 
yet all three are currently out of reach for Rev developers.


Do we have any word from the mother ship on how these will be handled in 
the future?


--
 Richard Gaskin
 Fourth World Media Corporation
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Jim Ault
On 2/16/07 11:14 AM, "Derek Bump" <[EMAIL PROTECTED]> wrote:

> Klaus Major wrote:
>> Drum Roll!
>> Nothing sucks like the ELECTROLUX!
> 
> LOL... Yup, I would like to avoid mistakes like that (which may explain
> why Electrolux was bought out).
> 
Actually, it was sucked up by a competitor

Jim Ault
Las Vegas


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Lynn Fredricks
> > - Placing all text in a file, and then just translating the file to 
> > multiple languages when building the standalone would be preferred, 
> > but that would require some massive scripting to populate 
> button and 
> > field labels, etc.
> > ...
> > Any ideas? ... Please!
> 
> I've used the above technique in the past.  I used a minimal 
> numeric tag system where each control label in the app 
> referenced an ID in an external text file: <1001>xyz 
> text at startup.  You could use a named tag as
> well: Willkommen.

Scott's method resembles "classical" style translation methods (I say
classical because its what I did when I used to have a localization business
in the early '90s) and it works well. Get a unique numeric identifier, then
orchestrate a "string swap". Apple's old Appleglot tool was pretty good at
that.

The one downside to almost any method is that you still have to go through
and look at your interface to make sure what you've swapped fits. Text
expansion can increase your strings by 20-50%.

Its best if you can come up with a clean text file that you can hand to a
translator without having to give them your application, then let them
eyeball the finished product so that it makes sense within the application.

I strongly recommend avoiding pure machine translation. Even the best MT
makes for poor reading.

Best regards,

Lynn Fredricks
Worldwide Business Operations
Runtime Revolution Ltd
http://www.runrev.com
 

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Derek Bump

Klaus Major wrote:

Drum Roll!
Nothing sucks like the ELECTROLUX!


LOL... Yup, I would like to avoid mistakes like that (which may explain 
why Electrolux was bought out).


Well, I'm going to be on a little vacation for the next two days, but 
Thank you Klaus, Scott and Richard for your helpful suggestions and 
incite.  I will be thinking of ways to implement what you have all 
suggested and hopefully I can come up with a way that I feel comfortable 
with.



Derek Bump
Dreamscape Software
http://www.dreamscapesoftware.com/



___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Klaus Major

Hi Richard,


...
And of course it pays to have a native speaker do the actual  
translation, esp. one who is also expert in the domain the  
application supports.  On our project this for that was easy, since  
one of the company owners is an Australian doctor.  But the last  
thing you want to do is come up with unclear or misleading quasi- 
translations, or even embarrassing ones like when Chevrolet rolled  
out a car for Spanish-speaking markets named "Nova". :)


LOL! :-)

The best "faux-pas" ever made in my opinion was a scandinavian vacuum  
cleaner company

that wanted to conquer the american market with this great slogan:

Drum Roll!
Nothing sucks like the ELECTROLUX!

:-D


 Richard Gaskin
 Fourth World Media Corporation
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com


Best

Klaus Major
[EMAIL PROTECTED]
http://www.major-k.de

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Richard Gaskin

Derek Bump wrote:

Now before I start down my typical path of re-inventing the wheel, I 
felt I should ask this question of the list, just to see if anyone has 
found an effective way of working with Localized (multiple-language) 
projects.


I have never done any work with creating localized projects.  I know 
that I will end up mutilating the native languages via the Google 
Translator, but I figure that a 90% translated program is better than a 
program that isn't used because it's not in a person's main language.


- Property profiles are nice, but it means that I have to store all of 
the language data for each object within a profile, making it harder to 
make changes to the text.


- Placing all text in a file, and then just translating the file to 
multiple languages when building the standalone would be preferred, but 
that would require some massive scripting to populate button and field 
labels, etc.


- Also, I have to roll my own dialogs that don't return the name of what 
button was pushed, but instead a number, as the number doesn't need to 
be translated. (Ex:  0=Cancel,1=OK)


Any ideas? ... Please!


My gandfather used to say, "When a designer is faced with two equally 
compelling options, find a way to do both."


Custom properties are handy because they bind the data to the object, 
keeping everything together in a world in which it's wise to assume 
everything will change at some point or another as the product evolves.


But as you note, it would be cumbersome to edit the data there. So don't 
 do that. :)


Instead, you could make a tool which extracts the language elements 
relevant for a translator to work on, presents them in a convenient 
editing interface right inside the program so they can understand the 
context, and stores those back again into the object properties.


One of the larger products I've worked on in recent years was a medical 
database for both US and UK markets, and while they're both "English" 
there are a great many differences between the dialects, esp. in the 
medical profession.


We used the approach I described above, and we've been delighted with 
how fast Rev can walk through all objects to insert the appropriate text 
on preOpenCard.  Never even notice the difference.


We found that it was helpful during development to keep all work in one 
language (we used US English, since that was how the project started), 
and did the translation work as the last step in the process.


Commands follow suit:  all command names are in the base language (for 
us it was US English), and only the label property of controls is 
changed so the name remains intact.


The only tricky items are background fields.  Because the same object 
can contain different text across multiple cards, we found it helpful to 
store the data in the card rather than the field object.  We used custom 
property sets named for the desired language, with the element key being 
the field's short ID (e.g., "USEnglish[4433]").


And of course it pays to have a native speaker do the actual 
translation, esp. one who is also expert in the domain the application 
supports.  On our project this for that was easy, since one of the 
company owners is an Australian doctor.  But the last thing you want to 
do is come up with unclear or misleading quasi-translations, or even 
embarrassing ones like when Chevrolet rolled out a car for 
Spanish-speaking markets named "Nova". :)


--
 Richard Gaskin
 Fourth World Media Corporation
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Scott Rossi
Recently, Derek Bump wrote:

> Now before I start down my typical path of re-inventing the wheel, I
> felt I should ask this question of the list, just to see if anyone has
> found an effective way of working with Localized (multiple-language)
> projects.
> ...
> - Placing all text in a file, and then just translating the file to
> multiple languages when building the standalone would be preferred, but
> that would require some massive scripting to populate button and field
> labels, etc.
> ...
> Any ideas? ... Please!

I've used the above technique in the past.  I used a minimal numeric tag
system where each control label in the app referenced an ID in an external
text file: <1001>xyz text at startup.  You could use a named tag as
well: Willkommen.

I disagree that this requires massive scripting.  IMO, the flexibility
outweighs the required scripting efforts, especially if you need multiple
languages and have to share the translation docs with 3rd party translators.
A text file is way easier to manage than forcing someone to get into Rev's
IDE.

You'll probably want to use Unicode -- my understanding is the current
Unicode implementation is a bit limited in Rev but I believe searching the
mail archives may help address some of the issues you might run into.

BTW, if you decide to go this route, remember to have translators use a
simple text editor (ie WordPad, NotePad, etc).  Do not allow the use of Word
or any other heavyweight text editor since these apps may add formatting
garbage to the text which will make text parsing difficult.

Other folks may offer different suggestions.

Regards,

Scott Rossi
Creative Director
Tactile Media, Multimedia & Design
-
E: [EMAIL PROTECTED]
W: http://www.tactilemedia.com


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Klaus Major

Hi,


Hi Derek,

Now before I start down my typical path of re-inventing the wheel,  
I felt I should ask this question of the list, just to see if  
anyone has found an effective way of working with Localized  
(multiple-language) projects.


I have never done any work with creating localized projects.  I  
know that I will end up mutilating the native languages via the  
Google Translator, but I figure that a 90% translated program is  
better than a program that isn't used because it's not in a  
person's main language.


- Property profiles are nice, but it means that I have to store  
all of the language data for each object within a profile, making  
it harder to make changes to the text.


- Placing all text in a file, and then just translating the file  
to multiple languages when building the standalone would be  
preferred, but that would require some massive scripting to  
populate button and field labels, etc.


- Also, I have to roll my own dialogs that don't return the name  
of what button was pushed, but instead a number, as the number  
doesn't need to be translated. (Ex:  0=Cancel,1=OK)


Any ideas? ... Please!


Custom property sets!!! :-)

Depending on the size of the project I use either the stacks cp set  
every cards cp sets

or even every (relevant) objects cp set.


Sorry, forgot to mention that I set these language values (labels  
etc) on openstack or opencard

depending on the project.


Regards

Klaus Major
[EMAIL PROTECTED]
http://www.major-k.de

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Klaus Major

Hi Derek,

Now before I start down my typical path of re-inventing the wheel,  
I felt I should ask this question of the list, just to see if  
anyone has found an effective way of working with Localized  
(multiple-language) projects.


I have never done any work with creating localized projects.  I  
know that I will end up mutilating the native languages via the  
Google Translator, but I figure that a 90% translated program is  
better than a program that isn't used because it's not in a  
person's main language.


- Property profiles are nice, but it means that I have to store all  
of the language data for each object within a profile, making it  
harder to make changes to the text.


- Placing all text in a file, and then just translating the file to  
multiple languages when building the standalone would be preferred,  
but that would require some massive scripting to populate button  
and field labels, etc.


- Also, I have to roll my own dialogs that don't return the name of  
what button was pushed, but instead a number, as the number doesn't  
need to be translated. (Ex:  0=Cancel,1=OK)


Any ideas? ... Please!


Custom property sets!!! :-)

Depending on the size of the project I use either the stacks cp set  
every cards cp sets

or even every (relevant) objects cp set.

And writing a little tool for managing/editing/writing back all these  
cp sets is a snap with Rev :-)


As for the dialogs I simply change the LABEL of the buttons in the  
dialogs so "Cancel"

stays "cancel" "OK" stays "OK" etc... in every language.

Hope that helps.


Derek Bump
Dreamscape Software
http://www.dreamscapesoftware.com/


Best

Klaus Major
[EMAIL PROTECTED]
http://www.major-k.de

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


An effective way to Localize my Revolution Projects for Multiple Languages

2007-02-16 Thread Derek Bump
Now before I start down my typical path of re-inventing the wheel, I 
felt I should ask this question of the list, just to see if anyone has 
found an effective way of working with Localized (multiple-language) 
projects.


I have never done any work with creating localized projects.  I know 
that I will end up mutilating the native languages via the Google 
Translator, but I figure that a 90% translated program is better than a 
program that isn't used because it's not in a person's main language.


- Property profiles are nice, but it means that I have to store all of 
the language data for each object within a profile, making it harder to 
make changes to the text.


- Placing all text in a file, and then just translating the file to 
multiple languages when building the standalone would be preferred, but 
that would require some massive scripting to populate button and field 
labels, etc.


- Also, I have to roll my own dialogs that don't return the name of what 
button was pushed, but instead a number, as the number doesn't need to 
be translated. (Ex:  0=Cancel,1=OK)


Any ideas? ... Please!


Derek Bump
Dreamscape Software
http://www.dreamscapesoftware.com/

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution