Dear Bret,

> I am still trying to develop a good infrastructure in the programs to handle 
> multiple languages, though -- one where I wouldn't necessarily need to be 
> very involved in the process of adding new languages to a program.  KITTEN 
> really isn't that useful for me for multiple reasons, one major reason being 
> that, at least as far as I can tell, it is only for C and not ASM. 
If you can't interface to C, you will have to write your own implementation.
However don't fear: KITTEN is definitively no rocket science.

>  It also isn't very "flexible" in the types of text it can handle (e.g., it 
> can't directly handle multiple-line strings. doesn't have flexible formatting 
> for input parameters like numbers, doesn't really allow for manipulating 
> things like indentation and spacing/text alignment, only handles output 
> rather than input, etc.).
This goes WAY beyond kittens intentions. linux and windows have attempted 
internationalization efforts for many decades; may be look there for 
inspirations. 
However you have to do this on your own.

> Anyway, in trying to set up the environment in my programs, I have run into 
> something of a dilemma.  The LANG environment variable seems to be the 
> "controller" of what LANGuage the user wants/prefers to see messages in.  
> AFAIK, the LANG environment variable really wasn't used back when MS was 
> "managing" DOS and is something relatively new that I think was "invented" by 
> FreeDOS (though I'm not 100% sure about any of that).  I've never seen any 
> documentation, formal or otherwise, on exactly how the LANG environment 
> variable should be used.

The *FreeDOS* installer installs in autoexec.bat for germans

set LANG=DE

kitten concatenates this with the programs name to programname.DE and expects 
to find this file.




> My assumption is that what is contained int eh LANG environment variable 
> should be a two-letter code, and an extension to this assumption is that the 
> two-letter code should correspond to the "official" two-letter language codes 
> as defined in ISO 639.  I really, really doubt that DOS will support all of 
> those (nearly 200) languages, but will support several of them to at least 
> some degree.

It's easy to support 26*26 or even 26*26*26 languages.
I really, really doubt we find that many translators willing to do the work for 
free.


> That brings me to the dilemma.  In addition to the language, DOS also has 
> three other related items: Keyboard Layouts, Countries, and Code Pages.  
> While all of these items are highly inter-related they are also distinct and 
> separate.  The main question I have is in the two letter codes for LANGuage 
> and their relationship to the two-letter codes for countries and keyboard 
> layouts (code pages don't have two-letter codes).
Nobody enforces this relationship. Feel free to setup your own rules.

> Anyway, my basic question is: should it be allowed to "intermix" the two 
> letter codes?  For example, if I live in the US and want my program 
> interactions to be in English, is the LANG environment variable required to 
> be EN or can it also be US (or UK or AU or NZ or ...)?  That is, can the LANG 
> environment variable correspond to a country code where the "common" language 
> is the one you want to use?  I know what I think the answer _should_ be (at 
> least if we don't want to fundamentally change how DOS handles languages and 
> code pages and etc.), but would like to see what others think.

your program. your rules.

>> It is not always just 2 letters. For example, Portuguese is PT and Brazilian
>> Portuguese is PTBR.

> Two thoughts this brings up.  One is that we are not following the ISO 
> standard. 
So what? Which ISO standard anyway?

>  Perhaps not a big deal, but that means we are on our own and will definitely 
> need to document everything
Don't bother. In my experience nobody reads documentation.

>  to avoid confusion and "maverick programmers".
30 years into the FreeDOS business the risque by "maverick programmers" seems 
low. 



> The other thought is that this is going to create problems with 8.3 file 
> names where the language abbreviation must fit into the three letter file 
> extension.  This, I think, implies that LFNs are _required_ whenever we 
> support multiple languages?  I also see that some of the existing language 
> files have file extensions like .FR.UTF-8, which at least seems to imply the 
> use of both LFNs and UniCode which are both outside the realm of "regular" 
> DOS.
right.

> BTW, one option I was considering is a single .LNG file (or something) with 
> all the translations inside a single file instead of needing a separate file 
> for each language.  I don't know if that's a good idea or not -- it's 
> certainly incompatible with KITTEN, at least in its current form.
Your program. Your data. KITTEN has no intention to read your data.

Tom




_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to