Le dim 21/09/2003 à 10:18, Dimitrie O. Paun a écrit :
On September 20, 2003 01:05 pm, Vincent Béron wrote:
What is needed is a parser to get at least the structure of the .rc files, to identify the layout of the menus and the ID of the strings, and then compare those between languages. Or something based on that (removing quoted text and comments, then diff? That'd be possible in sh probably).
I think a parser is a bit too fancy. And even if we compare the structure, we still can't tell if the strings are translated. What we need is a bit of help from the translator. They should include a meta comment in the first kilobyte stating what version of the master file they translated.
Something like this:
MASTER: [<lang>] <version>
The <lang> is the 2 letter code of the master language. It is optional, if not present it defaults to English (En).
The <version> is the CVS version of the translated file, like 1.25.
I think a combination of both is helpful. One in knowing what is uptodate (the MASTER), and one knowing what is not (the attached script, or a variation of).
It's not particularly fast (would need to be ported in Perl, where hashtables exist, for example), but it gets the job done in knowing which resources have the same structure as the master language. Missing lines, menus, stringtables, etc. are also found and reported.
The ww file is needed because my csplit dies with a "Memory exhausted" when used in a pipe following sed for commdlg, but not when used with cat. I'm stomped on that one.
Ideally, it'd be integrated with Make.rules, so it knows where it is and what are the rc files to check.
Comments (especially from those translating parts of Wine)?
Vincent