> DOS programs with source code? They include a free software
> license (as > in freedom)? You have your translator for
> French and Turkish. I can do the l10n if you do the i18n
> part :-)
Well, thanks for volunteering, but what I actually have in mind may be far more
than you're willing to commit to. Let me give you an example using one of my
simpler programs called PRTSCR.
What the program does is intercepts the Interrupt (05) that happens when you
press the PrintScreen key on the keyboard. Normally, this sends a copy of the
screen to the LPT1 port on the computer (which normally has a printer attached
to it). What PRTSCR does is intercept that so a copy of the screen is sent to
a file or other device instead of LPT1. It will even allow you to "disable"
PrintScreens altogether by sending the screen contents to the NUL device. It
can also provide some simple "filters" to the screen contents before they get
sent anywhere to "compress" things to some degree.
Anyway, the basic "status" screen for PRTSCR looks like this (BTW, I obtained
these screen outputs using PRTSCR):
*****
S:\\>prtscr S:\\prtscr.txt
PRTSCR 2.02, (C) 1995-2012, Bret E. Johnson.
Sends DOS PrintScreen's to a File or Device instead of directly to a Printer.
PrintScreen's now add a copy of the screen to the end of the following File:
S:\\prtscr.txt
FILTERS:
Send FormFeed after each Screen : No
Replace ASCII 0/255's with Spaces: Yes
Replace Control Chars with Spaces: Yes
Delete Spaces at End-of-Line : Yes
Skip Plain (blank) Lines : No
Lines to Skip at Top of Screen : 0
Lines to Skip at Bottom of Screen: 0
BOUND CPU OpCode Patch: Enabled
Resident PRTSCR has been updated with new information.
*****
I think that would be relatively easy to translate.
The help screen for PRTSCR looks like this:
*****
S:\\>prtscr /?
PRTSCR 2.02, (C) 1995-2012, Bret E. Johnson.
Sends DOS PrintScreen's to a File or Device instead of directly to a Printer.
SYNTAX: PRTSCR [Options]
/? = Show this HELP screen
/A = Show all ALIASES for these command line Options
/ErrLvl = Show all ErrorLevels (DOS Return Codes)
/Q:Y|N = Be QUIET about program details (Default = NO)
/Low:Y|N = Force installation into LOWER memory (Default = NO)
/DPMS:Y|N = Install in XMS using DPMS, if possible (Default = YES)
/EMS:Y|N = Install in EMS (Expanded Memory), if possible (Default = YES)
/Bound:Y|N = Enable BOUND CPU OpCode Bug Patch (Default = YES)
/U = UNINSTALL from memory
FileName = File/Device to send the PrintScreens to (default = SCREEN.000)
/F:Y|N = Send FORMFEED after each screen (Default = NO)
/Z:Y|N = Replace ASCII ZERO/255 characters with Spaces (Default = YES)
/C:Y|N = Replace printer CONTROL characters with Spaces (Default = NO)
/L:Y|N = Delete Spaces at end-of-LINE (Default = NO)
/P:Y|N = Skip PLAIN (empty) lines (Default = NO)
/T:# = Skip # lines at TOP of screen (0-1000, Default = 0)
/B:# = Skip # lines at BOTTOM of screen (0-1000, Default = 0)
/D = DISABLE (PrintScreen works like it did before)
/E = ENABLE (Send PrintScreens to a file/device) (default)
/S = Show STATUS of Last PrintScreen performed
*****
While it should be relatively easy to write this output in another language,
the options themselves are mnemonic to make it easier to remember them (which
is why I have some words capitalized in the descriptions). If this were to be
converted to another language, the ASCII codes for the options should probably
change also (for example, the /F option for FormFeed should maybe change to
something other than F in Turkish -- I really have no idea). This in brings up
"coordination" issues since you can't duplicate letters in the options. None
of this is impossible to overcome, but it gets confusing and messy in a hurry
and makes things very difficult to maintain and test.
*****
In addition, in PRTSCR (and most of my other programs) I have long-form aliases
for the command line options. The following is a partial output from PRTSCR
which shows the aliases for the various options. The very first one in the
list shows the aliases for the /? (Help) option which are H, Hlp, and Help.
So, for example, instead of typing "PRTSCR /?" you can type "PRTSCR /Help" and
get the same output. As you can see from the list, the aliases are not always
complete words and use abbreviations and sometimes combine abbreviations and
whole words together. I do this to make it easier on the user so they don't
necessarily need to remember all the shorthand (single letter) codes for
things. Also note that some of the options don't have a single-letter option
for them (e.g., the LowMemory option). That's because I already use the /L
option for one of the filters. The other logical choice for a single letter
would be /C (ConventionalMemory), but /C is also already used for one of the
Filters. As a result, some of the options don't have single-letter options.
Anyway, converting this to another language would bring up all kinds of issues
related to aliases (including coming up with "good" Aliases) and single-letter
options and such. That's and involved and complicated process that involves
much more than simple translation. It's certainly possible, but not exactly
trivial.
*****
S:\\>prtscr /a
PRTSCR 2.02, (C) 1995-2012, Bret E. Johnson.
Sends DOS PrintScreen's to a File or Device instead of directly to a Printer.
ALIASES FOR COMMAND-LINE OPTIONS
===========================================================
? H Hlp Help
A Alias Aliases CmdLineAlias CmdLineAliases CommandLineAlias CommandLineAliases
OptionAlias OptionAliases
B Bottom BottomLine BottomLines BottomRow BottomRows Btm BtmLine BtmLines
BtmRow BtmRows DeleteBottom DeleteBottomLine DeleteBottomLines
DeleteBottomRow DeleteBottomRows DeleteBtm DeleteBtmLine DeleteBtmLines
DeleteBtmRow DeleteBtmRows DeleteLast DeleteLastLine DeleteLastLines
DeleteLastRow DeleteLastRows EraseBottom EraseBottomLine EraseBottomLines
EraseBottomRow EraseBottomRows EraseBtm EraseBtmLine EraseBtmLines
EraseBtmRow EraseBtmRows EraseLast EraseLastLine EraseLastLines EraseLastRow
EraseLastRows IgnoreBottom IgnoreBottomLine IgnoreBottomLines IgnoreBottomRow
IgnoreBottomRows IgnoreBtm IgnoreBtmLine IgnoreBtmLines IgnoreBtmRow
IgnoreBtmRows IgnoreLast IgnoreLastLine IgnoreLastLines IgnoreLastRow
IgnoreLastRows Last LastLine LastLines LastRow LastRows NoBottom NoBottomLine
NoBottomLines NoBottomRow NoBottomRows NoBtm NoBtmLine NoBtmLines NoBtmRow
NoBtmRows NoLast NoLastLine NoLastLines NoLastRow NoLastRows RemoveBottom
RemoveBottomLine RemoveBottomLines RemoveBottomRow RemoveBottomRows RemoveBtm
RemoveBtmLine RemoveBtmLines RemoveBtmRow RemoveBtmRows RemoveLast
RemoveLastLine RemoveLastLines RemoveLastRow RemoveLastRows SkipBottom
SkipBottomLine SkipBottomLines SkipBottomRow SkipBottomRows SkipBtm
SkipBtmLine SkipBtmLines SkipBtmRow SkipBtmRows SkipLast SkipLastLine
SkipLastLines SkipLastRow SkipLastRows
C ChangeControl ChangeControlChars ChangeControlCharacters
ChangeControlCharsToSpaces ChangeControlCharactersToSpaces Control
ControlChars ControlCharacters ConvertControl ConvertControlChars
ConvertControlCharacters ConvertControlCharsToSpaces
ConvertControlCharactersToSpaces FixControl FixControlChars
FixControlCharacters ReplaceControl ReplaceControlChars
ReplaceControlCharacters ReplaceControlCharsWithSpace
ReplaceControlCharsWithSpaces ReplaceControlCharactersWithSpace
ReplaceControlCharactersWithSpaces
D Disable Off
E Enable On ...
U Out Remove Uninstall
Z ChangeZero ChangeZeroToSpace ChangeZeroToSpaces ChangeZeroes
ChangeZeroesToSpace ChangeZeroesToSpaces ChangeZeros ChangeZerosToSpace
ChangeZerosToSpaces ConvertZero ConvertZeroToSpace ConvertZeroToSpaces
ConvertZeroes ConvertZeroesToSpace ConvertZeroesToSpaces ConvertZeros
ConvertZerosToSpace ConvertZerosToSpaces FixZero FixZeroes FixZeros
ReplaceZero ReplaceZeroWithSpace ReplaceZeroWithSpaces ReplaceZeroes
ReplaceZeroesWithSpace ReplaceZeroesWithSpaces ReplaceZeros
ReplaceZerosWithSpace ReplaceZerosWithSpaces Zero Zeroes Zeros
_ Bound BoundFix BoundOpCode BoundOpCodeFix BoundOpCodePatch BoundPatch
_ DOSProtectedMode DOSProtectedModeServices DPMS ProtectedMode
ProtectedModeServices UseDOSProtectedModeServices UseDPMS UseProtectedMode
UseProtectedModeServices
_ EMS Expanded ExpandedMem ExpandedMemory UseEMS UseExpanded UseExpandedMem
UseExpandedMemory
_ ErLevel ErLevels ErLevelTable ErLevelTbl ErLvl ErLvls ErLvlTable ErLvlTbl
ErrLevel ErrLevels ErrLevelTable ErrLevelTbl ErrLvl ErrLvls ErrLvlTable
ErrLvlTbl ErrorLevel ErrorLevels ErrorLevelTable ErrorLevelTbl ErrorLvl
ErrorLvls ErrorLvlTable ErrorLvlTbl
_ Low LowerMem LowerMemory LowMem LowMemory NoUMB NoUp NoUpper NoUpperBlk
NoUpperBlock NoUpperMem NoUpperMemBlk NoUpperMemBlock NoUpperMemory
NoUpperMemoryBlk NoUpperMemoryBlock UseLow UseLowerMem UseLowerMemory
UseLowMem UseLowMemory
ALIASES FOR YES & NO
==========================
N 0 Disable Disabled F False No Off
Y 1 Enable Enabled On T True Yes
*****
THe last major item is documentation, which in my case is PRTSCR.DOC. This is
currently a 60+ page document which would need to be completely translated to
all the other languages. BTW, I currently write the documentation using
WordPerfect for DOS and have it "print" to a text file, though it doesn't
necessarily need to stay that way.
Anyway, volunteering to "properly" translate even a simple program like PRTSCR
is far from trivial and would probably require some back-and-forth interaction
instead of operating independently.
Are you willing to make that level of commitment, and to do it for a lot of
different programs (including some that are MUCH more complicated than PRTSCR)?
And, is it really worth the effort (considering this is an archaic thing like
DOS)?
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel