regionalization problems
Question posted by: bigturtle
(Newbie)
on
March 14th, 2008 01:29 PM
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.
|
|
March 14th, 2008 02:08 PM
# 2
|
Re: regionalization problems
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
|
|
March 20th, 2008 02:38 PM
# 3
|
Re: regionalization problems
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.
|
|
March 20th, 2008 03:29 PM
# 4
|
Re: regionalization problems
Quote:
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
Not the answer you were looking for? Post your question . . .
189,816 Experts ready to help you find a solution.
Sign up for a free account, or Login (if you're already a member).
|