David Hinz wrote:
Hey guys,
when I just translated format, I stunbled over one
thing:
What if somebody changed the content of a string after
I translated it?
After some minutes, I had a easy solution for that
problem:
The En.rc gets a little line in it's head-comment with
a revision
number. Each time somebody changes or adds a string in
the En.rc, he
sets the revision number +1 and so all translators
have an easy to
control indicator, if they need to translate something
or not.
But I think one thing should be clear, if there just
has been corrected
a spelling mistake and not something important, the
revision number
won't be touched.
Now some example headers:
in the EN.rc:
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005
*
* Revision: 1
*/
in my De.rc:
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005
* First German Translation by David Hinz 20051010
*
* Translated Revision 1 of En.rc
*/
This is just an idea, but I think this could save a
lot of work on
bigger applications than format...
Greets,
David Hinz
---------------------------------------
I agree, in fact i am working in a program to manage
translation in reactos, i am using Delphi 2.0 but as i
am not much skilled (long time since i used pascal)
and my time is on the limit it is going slowly but it
should work as follow:
Part 1:
- You select your language
- You select the working directory of reactos source.
- The program scans all files for en.rc files and list
their directories (as their names are all the same).
- With each file the program check a text file with a
list of en.rc files, and if it is not there it adds
it, and it is shown in the GUI as highlighted (pending
translation).
- If the file is found in the list, it check if
translating language file is current--> if it is not
current then the file is highlighted (pending
translation).
- If the file is found in the list, and found a
translation file current--> the file is listed but not
highlighted.
- It does with all rc files till no more rc files in
the directory.
Part 2:
- On clicking in a file in the listbox (highlighted or
not) it will be shown in an Richtext edit panel and
besides another panel with the material already
translated (if there is any language related file
already done), if not, the english text will be shown
with the "probable translatable" areas highligthed
(those between "").
-A save button, that will save the changes in the
second panel automatically into the right directory in
a language working copy.
What do you think?
______________________________________________
Renovamos el Correo Yahoo!
Nuevos servicios, más seguridad
http://correo.yahoo.es
ReactOS.Bugzilla(a)reactos.org wrote:
>http://www.reactos.org/bugzilla/show_bug.cgi?id=1460
>
>
>greatlord(a)reactos.com changed:
>
> What |Removed |Added
>----------------------------------------------------------------------------
> Status|NEW |RESOLVED
> Resolution| |WONTFIX
>
>
>
>
>------- Comment #2 from greatlord(a)reactos.com 2006-05-08 21:13 CET -------
>you can not install any os on exstions partions
>what I know, a OS need be on primary partions
>
>This bug report is invaild in my eyes
>
>
Umm... this is not strictly true. You *can* install an OS on an extended
partition. You just can't put the boot strap on an extended partition.
Note that this is not a discussion about how *wise* such a thing would be...
greatlrd(a)svn.reactos.org wrote:
> if u update En.rc please update all other langues files, use
> the english text if no translatesion is not availbal, other
> wise it will bsd in windows or in reactos and we get diffent
> functions on each langues. DO NOT DO THIS MISTAKE
If it's just 1 or 2 lines, it generally not a big deal to alter all the
files. However when the changes are large, and considering programmers are
generally lazy ;) it can be a real pain to change all the resources.
This problem is only going to get worse as more languages are added.
I think it could be worthwhile setting up official translation teams who are
contacted when a resource file changes. It'd be relatively easy to script.
It would benefit both ReactOS, and people who want to get involved but
aren't programmers.
Our translation teams are a bit of a grey area at the moment. Our website is
much better organised in this department than our actual operating system.
Ged.
************************************************************************
The information contained in this message or any of its
attachments is confidential and is intended for the exclusive
use of the addressee. The information may also be legally
privileged. The views expressed may not be company policy,
but the personal views of the originator. If you are not the
addressee, any disclosure, reproduction, distribution or other
dissemination or use of this communication is strictly prohibited.
If you have received this message in error, please contact
postmaster(a)exideuk.co.uk
<mailto:postmaster@exideuk.co.uk> and then delete this message.
Exide Technologies is an industrial and transportation battery
producer and recycler with operations in 89 countries.
Further information can be found at www.exide.com
> From: greatlrd(a)svn.reactos.org
>
> Log:
> if u update En.rc please update all other langues files, use
> the english text if no translatesion is not availbal, other
> wise it will bsd in windows or in reactos and we get diffent
> functions on each langues. DO NOT DO THIS MISTAKE
The resource loader will load the English text if the text is not available in the selected language (at least that's what is supposed to happen, if it doesn't there's a bug in the resource loader).
GvG
> > Log:
> > if u update En.rc please update all other langues files, use
> > the english text if no translatesion is not availbal, other
> > wise it will bsd in windows or in reactos and we get diffent
> > functions on each langues. DO NOT DO THIS MISTAKE
>
> The resource loader will load the English text if the text is not available in the
> selected language (at least that's what is supposed to happen, if it doesn't
> there's a bug in the resource loader).
Correct with one small exception: String table resources are loaded in chunks
of 16 strings, so strings should be updates with great care:
If one inserts new strings into the string table only in English, the
resource IDs of
this new strings should be aligned to a boundary of 16.
Regards,
Martin
If the ImageBase for a given executable is in the kernel range (above
0x7FFE1000 or whatever), from reading the code it seems like no validation
will stop it from going above that address. I have no way to try it out
because I don't have reactos installed.
Interestingly, in Windows XP SP2, the only illegal ImageBase values are:
7C800000 - Causes a dialog box to appear during the ntdll process
initialization APC saying that the program can't run because kernel32.dll
was relocated.
7C900000 - Causes PspMapSystemDll to fail. As a result, the process is
never created and NtCreateProcessEx returns an error.
These errors occur even when /fixed:no is used. Every other address is
allowed by Windows as long as /fixed:no is specified, even above the
user-kernel barrier.
Personally I think reactos should allow user mode programs to shove ntdll
and kernel32 out of the way, but that's just me =)
Finally,
04477 MmUnlockAddressSpace(AddressSpace);
04478 return(STATUS_UNSUCCESSFUL);
and the one below it should return STATUS_CONFLICTING_ADDRESSES, determined
by attempting to load an image based at a kernel address without a
relocation section.
MmCreatePeb has an invalid assertion:
ASSERT(Peb == (PVOID)0x7FFDF000);
If the process's .exe already is at that address, the PEB will be at the
wrong address.
There's also a nice way for a user-mode program to bugcheck the kernel or
leak a small amount of information in MmCreatePeb:
ImageConfigData = RtlImageDirectoryEntryToData(Peb->ImageBaseAddress,
To crash the kernel, put a bogus load config directory entry pointer in your
.exe.
To read an arbitrary dword or two, set up the load config pointer such that
it aims at your desired memory address, then read the PEB's OSCSDVersion and
ImageProcessAffinityMask values once your process starts.
Melissa
IsPowerOf2 in the kernel is badly inefficient. It should be this:
__inline BOOLEAN IsPowerOf2(IN ULONG Number)
{
if (Number == 0)
return FALSE;
return (Number & (Number - 1)) == 0;
}
Not that this function is called frequently, shrug.
Melissa