Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Automated localization project

- - - - -

  • Please log in to reply
3 replies to this topic

#1
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
As a maintainer of Czech version of Unofficial Service Pack for Windows 98 SE (and FE) I found that it is really not easy to localize all updates and hotfixes. It took long time to localize everything (with exception of TWEAKUI.HLP). Even though there are French, German, Dutch, Polish and Italian localizations of SESP, there are still many files not localized. No surprise, it eats much time.

There are several groups of international versions of Windows 98. They are shortly described in Appendix A - International Windows 98 of Microsoft Windows 98 Resource Kit. The most interesting thing is that the so called "United States" release version is available in English, German, Italian, Norwegian, Swedish, Dutch, French, Spanish, Portuguese (Prtugal), Portuguese (Brazil), Danish, Finnish, Russian, Polish, Hungarian, Greek, Turkish, Slovak, Slovenian languages. In total 20 versions with the same code.

I've got an idea that it would be extremely useful to have a tool (or set of tools) for automated translation to other language. This tool would just took 3 files (or folders) as input:
- English original version
- Original version in new language
- English version of the update
Then the tool would compare resources in English original and updated file and for identical resources it would replace them in newly created localized file by localized version of the same resources. Resources that has changed un the update would be leaved untouched for manual editing.

As I already described in the Localization of SP 2.0 topic, there are 4 basic types of binary files to localize:

1. 32-bit PE files (most executables)
2. 16-bit NE files (user.exe, gdi.exe, sysdm.cpl, wdmaud.drv, compobj.dll, netdi.dll, unimdm.tsp)
3. 16-bit LE files (.VXD, .386)
4. Other executables - KEYB.COM, IO.SYS (WINBOOT.SYS)
For all of these files I have better or worse knowledge where and how the resources are stored.
For PE, NE and LE files it would be also nice (but not necessary) to translate (the same way) FileDescription and ProductName in the Version resource to get exactly the same localized file as from Microsoft.

The only problem would be help files. This is not the case of SESP. There are HARDWARE.HLP (Q242975 already available in all languages), TSHOOT98.CHM (Q239887 already available in all languages), WSCRIPT.HLP (scr56xx already available in all languages) and TWEAKUI.HLP (English only)

So the full localization of all files installed on the system would mean just running this tool and manual editing of few exceptions. The result would be service pack with all localized files with exception of the user interface. This is not necessary but it would not big problem to ask somebody to translate the LICENSE.TXT, INFEX.INI and few strings in INF files.

The biggest problem is that I'm not coder - so I'm not able to write this tool.

Is there anybody who could write it? I can help with file formats and with testing.

The result would be not only high quality fully localized SESP in 20 languages, but also FESP, MESP and it could be used even for any other update not available in the specific language.

I already have extracted all langage versions of files in SESP from intallation CD-ROMs and here are the tables. I'm sorry - they are very big (600 KB) but I don't know how to export them from Excel other way.
Windows 98 SE files in various OS language versions
Availability of localized fixes
I did not too extensive search so maybe many other localized fixes are available but still is clearly visible that there are too many files to localize.

Any suggestions?

Petr


How to remove advertisement from MSFN

#2
Acheron

Acheron

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 988 posts
  • Joined 28-June 04
  • OS:XP Pro x86
  • Country: Country Flag
Lot of Free time Petr :hello: ?

Jesus, it would be better if you could just write a tutorial about hacking those vxd-files. Also a tutorial to quickly copy all language resource strings from one dll to oneother would be great. I'm now doing this manually through exescope.
Say no to bloatware. Download Nero Lite!

#3
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

Lot of Free time Petr :hello: ?

Jesus, it would be better if you could just write a tutorial about hacking those vxd-files. Also a tutorial to quickly copy all language resource strings from one dll to oneother would be great. I'm now doing this manually through exescope.


For dll files (generally all 32-bit PE executables) I'd recommend Restorator 2005. The procedure is very simple, you can just extract and then import all resources at once and then just copy (and possibly edit) Version resource.

As for 16-bit NE files, the worse was GDI.EXE, fortunately USER.EXE and SYSDM.CPL I was able to receive localized from Microsoft. Unfortunately after manual translation. :-)

16-bit LE executables (.VXD and .386) needs some manual work but it's not big problem again. All texts are stored in 64 KB blocks (1000 hex), the easiest way how to find these blocks is to compare original English file with original file in your language. Almost all files contain one text block only, just NWREDIR.VXD and vpicd.vxd contain 2 blocks and VMM.VXD contains 3 blocks. Then you will find the same block in new updated English file and replace it by the block from file in your language. Then it is necessary to modify some bytes:
00015C: length of the first text block (just copy from the file in your language)
00017C: length of the second text block (just copy from the file in your language)
00019C: length of the third text block (just copy from the file in your language)
Then it is posible (not necessary) to modify the language code and character set in Version resource.
It is there twice:
1. after StringFileInfo it is in text format, e.g. 040904E4 means US English (0409) and ANSI Latin 1 character set (04E4 in hex = 1252 in dec)
2. After Translation (usually last 4 bytes of the file) is the same information in binary.
Address 000138 shows start of the resource but it is usually at the end of the file.

Text blocks for VMM.VXD has to be extracted from VMM32.VXD.

Is this description sufficient? I hope I forgot nothing.

I personally think that it would be much easier to write simple tool than to learn hack files 15 people from 15 different countries.

Petr

Edited by Petr, 27 November 2005 - 05:57 PM.


#4
Acheron

Acheron

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 988 posts
  • Joined 28-June 04
  • OS:XP Pro x86
  • Country: Country Flag
Thanks for this info petr. I'll look up the currently translated Dutch files in order for preparation for SP 2.1. Meaby some errors are caused by bad translation ( I remember Dutch strings in vmm.vxd did not fit correctly. Meaby I overwrote some bytecode :unsure: )
Say no to bloatware. Download Nero Lite!




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users