Why Babel?

When I first started using LATEX I was very happy with just the style files that are distributed with the standard distributions of TEX and LATEX. That means, as long as I made texts in English I was happy. Then as other users found out about LATEX and its advantages, they started using it for texts in languages other than English. As I was the most experienced LATEX user at the time, they came to me and asked me `When I'm writing a report in Dutch I don't want chapters to be named ``Chapter'', I want them to be named ``Hoofdstuk'', how do you change that?'. At that time I didn't know, but I soon found out. The first thing I found was that Leslie Lamport states [2, pages 85–86] that you have to redefine the command \@chapapp to get the desired result. This looked rather promising to me, so I had a look at the style files to find out how other such strings as ``Figure'' might be redefined. It was then that I found out that \@chapapp is the only string defined this way, whereas all others are hard-wired into the style.

My first solution to this problem was to create a new document style file called artikel.sty as a ``Dutch'' counterpart to article.sty. The same was done for report.sty. This is exactly what Leslie Lamport suggests [5]. This approach has one major drawback however: you get two copies of basically the same file to maintain. This was discovered when newer releases of the styles reached our site. The standard styles had to be replaced and edited all over again to get the ``Dutch'' versions back. About the same time, in early 1988, a discussion on this subject appeared in . One of the persons commenting was Hubert Partl. The method he suggested was to modify the standard document styles by replacing the hard-wired texts by macros such as \@chapapp. This led me to my second attempt at a solution. I modified the standard styles (all four of them) as suggested, but while doing that added an option, implemented like the option draft, by defining a command \ds@dutch. This command would set a variable to indicate which language was requested. This variable I used later on in a \case statement. In this \case statement a choice is made between English, Dutch and possibly other languages for texts such as ``Figure'' and ``Contents''. Unfortunately, some of this implied changing the secondary style files xxx10.sty, xxx11.sty and xxx12.sty. This was unfortunate because one of the research groups in our laboratories complained their document style didn't work properly. It turned out that their style was a modified article.sty that had been given a different name, but it still loaded art10.sty etc. I found a temporary solution, but I still wasn't exactly happy with the situation. Besides this, the drawback of replacing the document styles with newer versions still existed.

When after a while a new version of the LATEX distribution arrived at our site, I began to think about a different way to solve the problem. In the meantime Hubert Partl had his german.sty published in [4]. His article pointed the way to a different solution. Triggered by the discussion in in early 1989 about how to detect which is the main (primary) style when processing a document, I started work on what is now available as dutch.sty version 1.0, dated may 1989[*]. While working on this style option I discovered that some parts could be borrowed from german.sty. This `discovery' and some discussions I had with others at EuroTEX89, the fourth European TEX Conference, held in september 1989 in Karlsruhe, led me towards a more universal approach. The basic idea behind it was, starting from the algorithm to detect the main style, to design an approach with one common file that contained macro definitions needed by a number of language-specific style options. Users specify the name of any of these language-specific options as an option to the \documentstyle command, and internally the common file is read.