469,277 Members | 1,964 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,277 developers. It's quick & easy.

regionalization problems

bigturtle
Is it possible to translate a program having some original-language material hard-coded in the original code?

My client is Dr. S, a medical doctor from Japan specializing in occupational health, who is working as a postdoctoral fellow here in Canada. He has done a study in Japan using an aptitude test developed under the direction of Dr. K, a well-known Japanese occupational health specialist, in collaboration with a Japanese government ministry. Dr. S asked me to try and translate this test into English for the purpose of making comparative studies between Japanese and North American workers.

The test, which evaluates cognitive and mechanical ability, is an interactive Windows computer program, in which user interaction takes place entirely via the mouse (except for entering the userís name in the registration screen). In the various sub-tests, the user enters numbers by clicking on a numeric-pad screen display, performs a tracking test using click-and-drag, and answers multiple-choice questions by clicking on the correct choice as displayed on-screen. The program, as distributed, displays instructions, results, and commentary in Japanese.

The program is distributed on a CD containing an .EXE file, some .DLLís, and a number of data files. The data files include text files in .CSV format containing all the Japanese instructions and commentary, as well as all the test items: short phrases to be compared, number sequences to be extrapolated, and so on. Another file contains all the displayed graphics, many of which include Japanese text: buttons, subtest headings and backgrounds and the like. All of this material is easily converted to English. The .CSV files can be treated using a standard text editor, and the graphic items are easily edited with Photoshop.

Unfortunately, some of the material displayed in Japanese doesnít appear in the data files. This material includes the headings on the registration screen, the results display of each subtest, and program responses RIGHT/WRONG on one subtest.

In the Memory subtest in particular, a sequence of digits is displayed, then erased from the screen. After this, either the command FORWARD or REVERSE appears, and the user must re-enter the sequence under time constraint, either in forward or reverse order depending on the command. The words FORWARD and REVERSE do not appear in the data files, so it seems that they are hard-coded in the original program.

It appears that the program was originally written in 2001 by subcontractors under Dr. Kís direction, and that the original program code may not exist anymore: it was not given to Dr. K at the time.

I have told Dr. S that in the absence of the original program code, the elements which do not appear in the data files cannot display in anything other than the original Japanese. If the entire test cannot be translated into English in a usable way, this of course puts a significant kink in his project. He does not have the budget or the time to have the original program rewritten from scratch or to have a new program written.

My question is, have I told Dr. S the truth? Is there some magic deconstructor which would make it possible to easily isolate the hard-coded Japanese in the original program and replace it by English? Is there any other way around this problem? I donít want Dr. S just to take my word for this: though I am a programmer, I have never tried this kind of reverse engineering and I donít want to claim knowledge I donít have.

Thank you in advance for your comments. I hope this is in the right forum... please relocate if you think appropriate.
Mar 14 '08 #1
3 2052
JosAH
11,448 Expert 8TB
I did the following once myself (and I had forgotten all about it until I read your
post ;-) Suppose a Japanese string takes up 'n' bytes. Also suppose you can
come up with an English translation for that string taking up m <= n bytes.

If this is true for all Japanese strings you can patch them with their English
translation 'in situ' of the .dll or .exe file. It still is a tedious job that nobody
wants to do and you have to backup frequently in case of an error but it is
doable. if m < n you can set the n-m trailing bytes to zero. If there is a string
length in front of the string data bytes you have to update those as well.

Best of luck.

kind regards,

Jos
Mar 14 '08 #2
Ughh!! I was afraid the answer would be something like this.

Of course it is useful to know that horrible tweaking of this kind is unavoidable. And so my credibility with my client will be increased, if nothing else.

Thanks for your help, JosAH.
Mar 20 '08 #3
JosAH
11,448 Expert 8TB
Ughh!! I was afraid the answer would be something like this.

Of course it is useful to know that horrible tweaking of this kind is unavoidable. And so my credibility with my client will be increased, if nothing else.

Thanks for your help, JosAH.
Yep, if you don't have the sources to (partially) rewrite all you can do is the sort
of hacking I described. I hope you have/can find a decent binary editor. Best of luck.

kind regards,

Jos
Mar 20 '08 #4

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

reply views Thread by Jerome Lefebvre | last post: by
14 posts views Thread by Jim Hubbard | last post: by
5 posts views Thread by Corky | last post: by
2 posts views Thread by Ellen Graves | last post: by
reply views Thread by Sergistm | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.