On 7/27/2021 9:58 PM, Bret Johnson wrote:
i) NLS support: Is there anybody who can tell me if all DOS commands
support [J(a)|Nein] or [O(ui)|N(on)] etc. instead of [Y(es)|N(o)]? If
not, they should do it. As a translator you never know what to do.
That is rather one of the easier parts to accomplish. There is even a
DOS (INT21h/6523h) call to help with this...;-)
Supporting multiple languages brings up all kinds of technical
issues. E.g., there are at least three different ways to approach
this: compile all the languages into one executable file (makes for a
very large file and also requires recompilation if a new language is
added),
While technically possibly, this would be a complete nonsense approach IMHO
compile different executables for each language (creates lots of
different executable files where each needs a separate name),
That would be IMHO the most feasible approach. Though you don't need a
different executable file names, just subfolders for each supported
language. Pick your poison...
or have a "base" executable with separate "adjunct" files for each
language (probably the most efficient option in terms of total size).
Well, that would the the "kitten" approach.
A major issue is that interactive items (like Yes/No or
Abort/Retry/Fail) require two-way interaction. That is, in addition
to displaying different things on the screen for the different
languages, you also have different input keys that can respond to the
different options (e.g., Y/N for English and J/N for German). That
gets really ugly to program and from a design perspective it becomes
an issue as to where the store the input key data.
No, not really. It just comes down to proper designing an application in
the first place...
That is, particularly if you have a common "base" program with
separate language files, where does the data for the correct input
keys (which vary by language) get stored -- in the base program or in
the language file? Does the base program really even need to know
what language is being supported or can the base program be totally
independent of language and ALL the language data (both input and
output information) is contained in the language files?
This gets further complicated if you support languages that aren't
based on a Latin alphabet (Cyrillic, Arabic, CJK, Greek, and Hebrew
come to mind immediately) where the Code Page comes into play as well
(and the ASCII codes for the input key data can vary depending on the
current Code Page).
Well, that sucks, but to be honest, considering the (very) small
percentage of users that would benefit from this, I would not worry
about this at all....
I'm really wondering if anybody has really thought this all the way
through and has some sort of flexible structure figured out. I've
considered adding language support to some of my programs (if I could
get someone to do the translations), but just designing a support
structure to handle all the possibilities is pretty daunting.
Yes, I have done this (with a few colleagues) for a rather large DOS
based CAD system in the late '80s/'90s. Where we came up with a
kitten/cats like approach, which worked with scanning displayed texts in
the source code, adding a unique key in front of it, and customized
display/print routines that dynamically scanned for those keys and
replaced them with the translated texts from an indexed database file
(or just removed the key when no translation was provided).
I would for a first release (of any version) not bother with any
translation at all, just have working English language programs and then
worry about any translations later...
Ralf
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel