[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#274764: tetex: Catalan compatibility for ConTeXt and fixes for Spanish translations



Sorry, reportbug only asked me only for one single file. The four modified 
files are attached with this mail.

On Dilluns 04 Octubre 2004 03:51, David García Garzón wrote:
> Package: tetex-base
> Version: 2.0.2b-6
> Severity: wishlist
> File: tetex
> Tags: patch l10n
>
> I modified some conTeXt files in order to get catalan compatibility.
> That is adding the idiom, activating hyphenation, and adding translated
> strings for 'List of figures' and so on.
>
> By adding catalan i also realized that there were some errors on the
> spanish translation as well. So i fixed them too.
>
> The workarraund is to substitute some files on
> /usr/share/texmf/tex/context/base/ with the ones attached and then,
> running 'fmtutil --all' as root. I don't know how to fix it on the
> sources but it should be not so difficult.
>
>
>
> -- Package-specific info:
> Please read and follow the instructions in the first lines below
> the text: "-- Package-specific info:".
> Thank you.
>
> Press ENTER to continue
> If you report an error when running one of the TeX-related binaries
> (latex, pdftex, metafont,...), or if the bug is related to bad or wrong
> output, please include a MINIMAL example input file that produces the
> error in your report. Don't forget to also include minimal examples of
> other files that are needed, e.g. bibtex databases. Often it also helps
> to include the logfile. Please, never send included pictures!
>
> If your example file isn't short or produces more than one page of
> output (except when multiple pages are needed to show the problem),
> you can probably minimize it further. Instructions on how to do that
> can be found at
>
> http://www.latex-einfuehrung.de/mini-en.html (english)
>
> or
>
> http://www.latex-einfuehrung.de/mini.html (german)
>
> ##################################
> minimal input file
>
>
> ##################################
> other files
>
> ######################################
>  List of ls-R files
>
> -rw-rw-r--  1 root staff 91 2004-09-27 00:17 /usr/local/lib/texmf/ls-R
> -rw-rw-r--  1 root users 1250 2004-10-04 02:44 /var/lib/texmf/ls-R
> lrwxrwxrwx  1 root root 29 2004-09-26 23:51 /usr/share/texmf/ls-R ->
> /var/lib/texmf/ls-R-TEXMFMAIN
>
> -- System Information:
> Debian Release: 3.1
>   APT prefers unstable
>   APT policy: (500, 'unstable')
> Architecture: i386 (i686)
> Kernel: Linux 2.6.8-1-k7
> Locale: LANG=ca_ES@euro, LC_CTYPE=ca_ES@euro
>
> Versions of packages tetex-base depends on:
> ii  debconf                       1.4.38     Debian configuration
> management sy ii  dpkg                          1.10.23    Package
> maintenance system for Deb ii  texinfo                       4.7-2.2   
> Documentation system for on-line i ii  ucf                           1.09  
>     Update Configuration File: preserv
>
> Versions of packages tetex-bin depends on:
> ii  debconf                   1.4.38         Debian configuration
> management sy ii  debianutils               2.10.2         Miscellaneous
> utilities specific t ii  dpkg                      1.10.23        Package
> maintenance system for Deb ii  ed                        0.2-20         The
> classic unix line editor ii  libc6                     2.3.2.ds1-17   GNU C
> Library: Shared libraries an ii  libgcc1                   1:3.4.2-2     
> GCC support library
> ii  libice6                   4.3.0.dfsg.1-8 Inter-Client Exchange library
> ii  libkpathsea3              2.0.2-22       path search library for teTeX
> (run ii  libpaper1                 1.1.14-0.4     Library for handling
> paper charact ii  libpng12-0                1.2.5.0-7      PNG library -
> runtime ii  libsm6                    4.3.0.dfsg.1-8 X Window System
> Session Management ii  libstdc++5                1:3.3.4-12     The GNU
> Standard C++ Library v3 ii  libt1-5                   5.0.2-3        Type 1
> font rasterizer library - r ii  libwww-ssl0 [libwww0]     5.4.0-9       
> The W3C-WWW library (SSL support) ii  libx11-6                 
> 4.3.0.dfsg.1-8 X Window System protocol client li ii  libxaw7              
>     4.3.0.dfsg.1-8 X Athena widget set library ii  libxext6                
>  4.3.0.dfsg.1-8 X Window System miscellaneous exte ii  libxmu6             
>      4.3.0.dfsg.1-8 X Window System miscellaneous util ii  libxt6          
>          4.3.0.dfsg.1-8 X Toolkit Intrinsics
> ii  mime-support              3.28-1         MIME files 'mime.types' &
> 'mailcap ii  perl                      5.8.4-2.3      Larry Wall's
> Practical Extraction ii  sed                       4.1.2-1        The GNU
> sed stream editor ii  ucf                       1.09           Update
> Configuration File: preserv ii  xlibs                     4.3.0.dfsg.1-8 X
> Window System client libraries m ii  zlib1g                    1:1.2.1.2-1 
>   compression library - runtime
>
> Versions of packages tetex-extra depends on:
> ii  dpkg                      1.10.23        Package maintenance system for
> Deb ii  gsfonts                   8.14+v8.11-0.1 Fonts for the Ghostscript
> interpre ii  tetex-bin                 2.0.2-22       The teTeX binary
> files ii  ucf                       1.09           Update Configuration
> File: preserv
>
> -- debconf information:
> * tetex-base/olddat: true
>   tetex-base/fmtutil-failed:
> * tetex-bin/cnf_name:
> * tetex-bin/texmf: true
>   tetex-bin/updmap-failed:
>   tetex-base/oldupdm:
>   tetex-base/updmap-failed:
> * tetex-bin/groupperm: true
> * tetex-bin/lsr-perms: true
> * tetex-bin/upd_map: true
> * tetex-bin/fmtutil: true
>   tetex-bin/fmtutil-failed:
> * tetex-bin/userperm: false
> * tetex-bin/hyphen: ngerman[=naustrian-neue_Rechtschreibung],
> french[=patois], spanish tetex-bin/oldcfg: true
>   tetex-base/oldcfg: true
> * tetex-bin/use_debconf: true
> * tetex-bin/groupname: users

-- 
David ("Vokimon") García Garzón
(Work) dgarcia at iua dot upf anotherdot es
(Home) vokimon at telefonica adot net
http://www.salleurl.edu/~is04069

Hay vida mas alla de Microsoft!
http://www.linux.org
http://www.freebsd.org
http://www.openbsd.org
http://www.netbsd.org 
incluso http://www.mac.com
%D \module
%D   [       file=cont-usr,
%D        version=1997.10.05,
%D          title=\CONTEXT\ User Format Specifications,
%D       subtitle=System Specific Setups,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
%C details. 

%D In this file users can specify what hyphenation patterns 
%D they want to load into the format file. Normally, when 
%D using the \type {cont-..} files, this file can best be 
%D left unchanged. The default language and font settings 
%D done in the \type {cont-.} files take precedence! This file 
%D is subject to changes.

\unprotect

%D Hyphenation patterns are normally sought in filed named
%D \type {lang-xx.pat}. When present on the system, those 
%D patterns take precedence. (The next list is inspired on 
%D Thomas Esser's \TETEX\ distribution.) This list will be 
%D adapted to the actual situation.

\definefilesynonym [lang-ca.pat]  [cahyph.tex]
\definefilesynonym [lang-cz.pat]  [czhyph.tex]
\definefilesynonym [lang-da.pat]  [dkhyph.tex]
\definefilesynonym [lang-de.pat]  [dehyphn.tex]
\definefilesynonym [lang-en.pat]  [ushyph1.tex]
\definefilesynonym [lang-es.pat]  [eshyph.tex]
\definefilesynonym [lang-fi.pat]  [fihyph.tex]
\definefilesynonym [lang-fr.pat]  [frhyph.tex]
\definefilesynonym [lang-hr.pat]  [hrhyph.tex]
\definefilesynonym [lang-hu.pat]  [huhyph.tex]
\definefilesynonym [lang-it.pat]  [ithyph.tex]
\definefilesynonym [lang-la.pat]  [lahyph7.tex]
\definefilesynonym [lang-nl.pat]  [nehyph.tex]
\definefilesynonym [lang-no.pat]  [nohyph.tex]
\definefilesynonym [lang-pl.pat]  [plhyph.tex]
\definefilesynonym [lang-pt.pat]  [pthyph.tex]
\definefilesynonym [lang-ro.pat]  [rohyph.tex]
\definefilesynonym [lang-ru.pat]  [ruenhyph.tex]
\definefilesynonym [lang-sk.pat]  [skhyph.tex]
\definefilesynonym [lang-sv.pat]  [sehyph.tex]
\definefilesynonym [lang-tr.pat]  [trhyph.tex]
\definefilesynonym [lang-ua.pat]  [ukrenhyp.tex]
\definefilesynonym [lang-uk.pat]  [ukhyphen.tex]
\definefilesynonym [lang-us.pat]  [ushyph1.tex]

%D When the dutch spelling changed, new patterns were
%D constructed. For long these were named \type {dutch96.pat}.
%D From 2000 however, the old \type {nehyph} files were
%D replaced by \type {nehyph96.tex}. Typical something that
%D you have to find out by accident. The names of hyphenation
%D files as well as their coding is one of the dark areas of
%D \TEX\ distributions. 

\doiffileelse{nehyph96.tex}
  {\definefilesynonym[lang-nl.pat][nehyph96.tex]}
  {\doiffileelse{dutch96.pat}
     {\definefilesynonym[lang-nl.pat][dutch96.pat]}
     {\definefilesynonym[lang-nl.pat][nehyph.tex]}}

%D Pattern files are (can be) encoded! And, alas, not all
%D pattern files are self contained, which is why (for the 
%D moment) we specify encodings here. 

\installlanguage [\s!cz] [\s!mapping={il2,ec},\s!encoding={il2,ec}] 
\installlanguage [\s!hr] [\s!mapping={il2,ec},\s!encoding={il2,ec}] 
%installlanguage [\s!pl] [\s!mapping=pl0,\s!encoding=pl0] 
\installlanguage [\s!pl] [\s!mapping={pl0,ec},\s!encoding={pl0,ec}] 
\installlanguage [\s!sk] [\s!mapping={il2,ec},\s!encoding={il2,ec}] 

%D Sometimes these are not wanted: 

%\definefilesynonym [lang-deo.pat] [dehypht.tex]  % old patterns
%\definefilesynonym [lang-nlx.pat] [dutch96.pat]  % new patterns 

%D Additional languages can be defined here. Beware of 
%D encoding incompatibilities. Please take a look at the 
%D \type {cont-en.tex}, \type {cont-nl.tex}, enz.\ files 
%D first. Normally you don't have to change a byte. 

% \installlanguage [\s!af] [\c!status=\v!start] % afrikaans 
% \installlanguage [\s!ca] [\c!status=\v!start] % catalan
% \installlanguage [\s!cz] [\c!status=\v!start] % czech
% \installlanguage [\s!da] [\c!status=\v!start] % danish    
% \installlanguage [\s!de] [\c!status=\v!start] % german    
% \installlanguage [\s!en] [\c!status=\v!start] % english us  
% \installlanguage [\s!es] [\c!status=\v!start] % spanish    
% \installlanguage [\s!fi] [\c!status=\v!start] % finnish
% \installlanguage [\s!fr] [\c!status=\v!start] % french     
% \installlanguage [\s!hr] [\c!status=\v!start] % croatian
% \installlanguage [\s!hu] [\c!status=\v!start] % hungarian 
% \installlanguage [\s!it] [\c!status=\v!start] % italian 
% \installlanguage [\s!la] [\c!status=\v!start] % latin 
% \installlanguage [\s!nl] [\c!status=\v!start] % dutch     
% \installlanguage [\s!no] [\c!status=\v!start] % norwegian 
% \installlanguage [\s!pl] [\c!status=\v!start] % polish
% \installlanguage [\s!pt] [\c!status=\v!start] % portuguese 
% \installlanguage [\s!ro] [\c!status=\v!start] % romanian 
% \installlanguage [\s!ru] [\c!status=\v!start] % russian 
% \installlanguage [\s!sk] [\c!status=\v!start] % slovak
% \installlanguage [\s!sv] [\c!status=\v!start] % swedish   
% \installlanguage [\s!tr] [\c!status=\v!start] % turkish    
% \installlanguage [\s!ua] [\c!status=\v!start] % ukrainian
% \installlanguage [\s!uk] [\c!status=\v!start] % english uk   

% \installlanguage [deo]   [\c!status=\v!start] % old german
% \installlanguage [nlx]   [\c!status=\v!start] % dutch 8 bit 

%D The next lines can be used for setting the language to be 
%D used at startup time. 

% \setupcurrentlanguage[\s!af]
% \setupcurrentlanguage[\s!cz]
% \setupcurrentlanguage[\s!ca]
% \setupcurrentlanguage[\s!da]
% \setupcurrentlanguage[\s!de]
% \setupcurrentlanguage[\s!en]
% \setupcurrentlanguage[\s!es]
% \setupcurrentlanguage[\s!fi]
% \setupcurrentlanguage[\s!fr]
% \setupcurrentlanguage[\s!hr]
% \setupcurrentlanguage[\s!hu]
% \setupcurrentlanguage[\s!it]
% \setupcurrentlanguage[\s!la]
% \setupcurrentlanguage[\s!nl]
% \setupcurrentlanguage[\s!no]
% \setupcurrentlanguage[\s!pl]
% \setupcurrentlanguage[\s!pt]
% \setupcurrentlanguage[\s!ro]
% \setupcurrentlanguage[\s!ru]
% \setupcurrentlanguage[\s!sk]
% \setupcurrentlanguage[\s!sv]
% \setupcurrentlanguage[\s!tr]
% \setupcurrentlanguage[\s!ua]

%D Local font settings can go here. Normally suitable 
%D defaults are already preloaded, almost certainly the 
%D Computer Modern Roman typefaces or some derivate. So, the 
%D next line is only meant as sample, take a look at the 
%D format related files first. 

% \definefilesynonym [font-cmr] [font-csr] % czech & slovak 
% \definefilesynonym [font-cmr] [font-plr] % polish 

%D In some languages, compound characters, like \type {"e} 
%D are used to get accented and non latin characters. 

  \useencoding[fde] % german 
% \useencoding[ffr] % french 
% \useencoding[fro] % romanian
% \useencoding[fpl] % polish 

%D Don't remove the next few lines. 

\protect \endinput 
%D \module
%D   [       file=lang-ini,
%D        version=1996.01.25,
%D          title=\CONTEXT\ Language Macros,
%D       subtitle=Initialization,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

%D Todo : --language=pl,en,nl : nl incs number of language 

%D This module implements the (for the moment still simple)
%D multi||language support of \CONTEXT, which should not be
%D confused with the multi||lingual interface. This support
%D will be extended when needed.

\writestatus{loading}{Context Language Macros / Initialization}

\unprotect

\startmessages  dutch  library: linguals
  title: taal
      1: afbreekpatronen -- voor -- geladen (n=--)
      2: geen afbreekpatronen -- voor -- (n=--)
      3: afbreekdefinities -- voor -- geladen (n=--)
      4: geen afbreekdefinities -- voor -- (n=--)
      5: afbreekpatronen voor -- niet geladen
      6: taal -- is niet gedefinieerd
      7: taal specifieke opties [--] introduceren een skip van --
      8: taal specifieke opties [--] naadloos toegevoegd
      9: taal -- is actief
     10: patronen --geladen
\stopmessages

\startmessages  english  library: linguals
  title: language
      1: patterns -- for -- loaded (n=--)
      2: no patterns -- for -- (n=--)
      3: hyphenations -- for -- loaded (n=--)
      4: no hyphenations -- for -- (n=--)
      5: patterns for -- not loaded
      6: language -- is undefined
      7: language specific options [--] introduce a -- skip
      8: language specific options [--] seamless appended
      9: language -- is active
     10: patterns --loaded
\stopmessages

\startmessages  german  library: linguals
  title: Sprache
      1: Trennmuster -- fuer -- geladen (n=--)
      2: Keine Trennmuster -- fuer -- (n=--)
      3: Trenndefinitionen -- fuer -- geladen (n=--)
      4: Keine Trenndefinitionen -- fuer -- (n=--)
      5: Trennmuster fuer -- nicht geladen
      6: Sprache -- ist undefiniert
      7: Sprachenspezifische Option [--] fuegt eine Luecke von -- ein
      8: Sprachenspezifische Option [--] nahtlos hinzugefuegt
      9: Sprache -- ist aktiv
     10: Trennmuster --geladen
\stopmessages

% TOM: 9 and 10

\startmessages  czech  library: linguals
  title: jazyky
      1: vzory -- pro -- nacteny (n=--)
      2: zadne vzory -- pro -- (n=--)
      3: deleni slov -- pro -- nacteno (n=--)
      4: zadne deleni slov -- pro -- (n=--)
      5: vzory pro -- nenacteny
      6: jazyk -- neni definovan
      7: specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru
      8: specificke volby jazyka [--] bez mezer pripojeny
      9: language -- is active
     10: vzory --nacteny
\stopmessages

\startmessages  italian  library: linguals
  title: lingua
      1: schemi -- per -- caricati (n=--)
      2: niente schemi -- per -- (n=--)
      3: sillabazione -- per -- caricata (n=--)
      4: niente sillabazione -- per -- (n=--)
      5: schemi per -- non caricati
      6: lingua -- non definita
      7: opzioni specifiche per la lingua [--] introducono un salto --
      8: opzioni specifiche per la lingua [--] aggiunte trasparentemente
      9: lingua -- attiva
     10: schemi -- caricati
\stopmessages

\startmessages  norwegian  library: linguals
  title: språk
      1: orddelingsmønster -- for -- er lest inn (n=--)
      2: ingen orddelingsmønster -- for -- (n=--)
      3: orddelingsdefinisjon -- for -- er lest inn (n=--)
      4: ingen orddelingsdefinisjon -- for -- (n=--)
      5: orddelingsmønster for -- er ikke lest inn
      6: språk -- er udefinert
      7: språk spesifikk opsjon [--] introduserer et -- hopp
      8: språk spesifikk opsjon [--] problemfritt tilføyd
      9: språk -- er aktivt
     10: orddelingsmønster -- er lest inn
\stopmessages

\startmessages  romanian  library: linguals
  title: limbi
      1: sablonul -- pentru -- s-a incarcat (n=--)
      2: nu exista sabloane -- pentru -- (n=--)
      3: despartirea in silabe -- pentru -- s-a incarcat (n=--)
      4: nu exista despartire in silabe -- pentru -- (n=--)
      5: sabloanele pentru -- nu sunt incarcate
      6: limba -- nu este definita
      7: optiunile specifice ale limbii [--] introduc un spatiu --
      8: optiunile specifice ale limbii [--] adaugate
      9: limba -- este activa
     10: sabloanele -- incarcate
\stopmessages

%D When loading hyphenation patterns, \TEX\ assign a number to
%D each loaded table, starting with~0. Switching to a specific
%D table is done by assigning the relevant number to the
%D predefined \COUNTER\ \type{\language}. Unfortunately the
%D name of this command suits very well the name of the
%D language switching command we are to define, so let's save
%D this primitive under another name:

\let\normallanguage = \language

%D We keep track of the last loaded patterns by means of a
%D pseudo \COUNTER. This just one of those situations in which
%D we don't want to spent a real one.

\newcounter\loadedlanguage

%D Let's start with setting the lowercase code of quotes, so
%D that we get proper hyphenation in languages like Dutch, 
%D French and Czech. 

\lccode`\'=`\'

%D \macros
%D   {currentlanguage, setupcurrentlanguage}
%D
%D Instead of numbers,we are going to use symbolic names for
%D the languages. The current langage is saved in the macro
%D \type {\currentlanguage}. The setup macro is mainly used
%D for cosmetic purposes.

\let\currentlanguage    \empty
\let\currentmainlanguage\empty

\def\setupcurrentlanguage[#1]{\def\currentlanguage{#1}}

%D The internal macros will be defined later. 

%D \macros
%D   {installlanguage}
%D
%D Hyphenation patterns can only be loaded when the format file
%D is prepared. The next macro takes care of this loading. A
%D language is specified with
%D
%D \showsetup{\y!installlanguage}
%D
%D When \type{\c!status} equals \type{\v!start}, both patterns
%D and additional hyphenation specifications are loaded. These
%D files are seached for on the system path and are to be
%D named:
%D
%D \starttypen
%D \f!languageprefix-identifier.\f!patternsextension
%D \f!languageprefix-identifier.\f!hyhensextension
%D \stoptypen
%D
%D The \type{\c!spatiering} specifies how the spaces after
%D punctuation has to be handled. English is by tradition more
%D tolerant to inter||sentence spacing than other languages.
%D
%D This macro also defines \type{\identifier} as a shortcut
%D switch to the language. Furthermore the command defined as
%D being language specific, are executed. With
%D \type{\c!default} we can default to another language
%D (patterns) at format generation time. This default language
%D is overruled when the appropriate patterns are loaded (some
%D implementations support run time addition of patterns to a
%D preloaded format).

\def\dodoinstalllanguage#1#2% #2 added
  {\doifundefined{#1}{\setvalue{#1}{\complexlanguage[#2]}}%
   \expanded{\noexpand\uppercase{\noexpand\edef\noexpand\ascii{#1}}}%
   \doifundefined\ascii{\setvalue{\ascii}{\complexlanguage[#2]}}}

%D \macros
%D   {preloadlanguages}
%D
%D We first try to load the files defined as file synonym
%D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we
%D fall back on those files. The macro \type {\preloadpatterns}
%D reports which patterns are loaded and what hyphenmin
%D values are set.

\let\preloadedpatterns\empty

\def\showpatterns#1%
  {\getvalue{\??la#1\s!lefthyphenmin}%
   -#1-%
   \getvalue{\??la#1\s!righthyphenmin} }

\def\preloadlanguages
  {\doifsomething\preloadedpatterns
     {\showmessage\m!linguals{10}\preloadedpatterns}}

\let\installedlanguages\empty

\def\doinstalllanguage[#1][#2]%
  {%\ConvertConstantAfter\doifinstringelse{=}{#2}
   \doifassignmentelse{#2}
     {\doifdefinedelse{\??la#1\c!status}
        {\getparameters[\??la#1][#2]}
        {\setvalue{\l!prefix!#1}{#1}%
         \addtocommalist{#1}\installedlanguages
         \dodoinstalllanguage{#1}{#1}%
         \getparameters
           [\??la#1]
           [\s!lefthyphenmin=2,
            \s!righthyphenmin=2,
            \c!spatiering=\v!opelkaar,
            \c!leftsentence=---,
            \c!rightsentence=---,
            \c!leftsubsentence=---,
            \c!rightsubsentence=---,
            \c!leftquote=\upperleftsinglesixquote,
            \c!rightquote=\upperrightsingleninequote,
            \c!leftquotation=\upperleftdoublesixquote,
            \c!rightquotation=\upperrightdoubleninequote,
            \c!leftspeech=\getvalue{\??la#1\c!leftquotation},
            \c!middlespeech=,
            \c!rightspeech=\getvalue{\??la#1\c!rightquotation},
            \c!limittext=\unknown,
            \c!datum={\v!jaar,\ ,\v!maand,\ ,\v!dag},
            \c!status=\v!stop,
            \c!default=,
            \s!patterns=,
            \s!mapping=,
            \s!encoding=,
            \c!tekst=Ag,
            #2]%
         \doifvaluesomething{\??la#1\c!default}
           {\doifnotvalue{\??la#1\c!default}{#1}
              {\getparameters
                 [\??la#1]
                 [\s!lefthyphenmin=\languagedefault{#1}\s!lefthyphenmin,
                  \s!righthyphenmin=\languagedefault{#1}\s!righthyphenmin,
                  \c!spatiering=\languagedefault{#1}\c!spatiering,
                  \c!leftsentence=\languagedefault{#1}\c!leftsentence,
                  \c!rightsentence=\languagedefault{#1}\c!rightsentence,
                  \c!leftsubsentence=\languagedefault{#1}\c!leftsubsentence,
                  \c!rightsubsentence=\languagedefault{#1}\c!rightsubsentence,
                  \c!leftquote=\languagedefault{#1}\c!leftquote,
                  \c!rightquote=\languagedefault{#1}\c!rightquote,
                  \c!leftquotation=\languagedefault{#1}\c!leftquotation,
                  \c!rightquotation=\languagedefault{#1}\c!rightquotation,
                  \c!leftspeech=\languagedefault{#1}\c!leftspeech,
                  \c!middlespeech=\languagedefault{#1}\c!middlespeech,
                  \c!rightspeech=\languagedefault{#1}\c!rightspeech,
                  \c!datum=\languagedefault{#1}\c!datum,
                  \s!mapping=\languagedefault{#1}\s!mapping,
                  \s!encoding=\languagedefault{#1}\s!encoding,
                  \c!tekst=\languagedefault{#1}\c!tekst,
                  #2]}}}%
      \doifvalue{\??la#1\c!default}{#1}{\letvalue{\??la#1\c!default}\empty}%
       % loop in deo
       % \doifvalue{\??la#1\s!patterns}{#1}{\letvalue{\??la#1\c!default}\empty}%
       %
      \doifelsevalue{\??la#1\c!status}\v!start
        {\doifelsevaluenothing{\??la#1\s!patterns}
           {\edef\languagesuffix{#1}}
           {\edef\languagesuffix{\getvalue{\??la#1\s!patterns}}}%
         \doifundefinedelse{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}
           {\doloadpatterns{#1}{\languagesuffix}}
           {\bgroup
            \edef\loadedlanguage{\getvalue{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}}%
            \showmessage\m!linguals1{\languagesuffix,#1,\loadedlanguage}%
            \showmessage\m!linguals3{\languagesuffix,#1,\loadedlanguage}%
            \egroup}}
        {\showmessage\m!linguals5{#1}}}
     {\setvalue{\l!prefix!#1}{#2}%
      \dodoinstalllanguage{#1}{#2}}}

% ^^ \language[#1] gave unwanted side effect of loading language specifics

\def\installlanguage
  {\dodoubleargument\doinstalllanguage}

%D Handy 

\def\preloadallpatterns
  {\gdef\preloadallpatterns##1%
     {\installlanguage[##1][\c!status=\v!start]}%
   \processcommacommand[\installedlanguages]\preloadallpatterns
   \global\let\preloadallpatterns\relax}

%D When the second argument is a language identifier, a
%D synonym is created. This feature is present because we
%D used dutch mnemonics in the dutch version, but nowadays
%D conform a standard.

\let \patternencoding \s!default
\let \patternmapping  \s!default

\def\doloadpatterns#1#2%
  {\expanded{\getcommacommandsize[\getvalue{\??la#2\s!encoding}]}%
   \ifnum\commalistsize>0
    %\message{[nofpatterns #2: \commalistsize/\getvalue{\??la#2\s!encoding}]}%
     \dorecurse\commalistsize
       {\expanded{\getfromcommacommand[\getvalue{\??la#2\s!encoding}][\recurselevel]}%
        \let\patternencoding\commalistelement
        \expanded{\getfromcommacommand[\getvalue{\??la#2\s!mapping }][\recurselevel]}%
        \let\patternmapping \commalistelement
       %\message{[patterns: #1/#2/\patternencoding/\patternmapping]}%
        \dodoloadpatterns{#1}{#2}\patternencoding\patternmapping}%
   \else
    %\message{[patterns: #1/#2]}%
     \dodoloadpatterns{#1}{#2}{}{}%
   \fi}

\let\normalpatterns\patterns

\def\dodoloadpatterns#1#2#3#4% beware, loaded language also incr 
  {\normallanguage\loadedlanguage % when not really needed
  %\letvalue{\??la\??la#2}\loadedlanguage
   \bgroup
   \scratchtoks\everyjob % we don't want additional junk put there
   \let\showpatterns\relax
   \startencoding[#3]%
   \enablemapping[#4]%
   \doifnothing\currentencoding{\let\currentencoding\s!default}%
   \doifnothing\currentmapping {\let\currentmapping \s!default}%
   \letgvalue{\??la\??la:\currentencoding:\currentmapping:#2}\loadedlanguage
   \startreadingfile
   \startpatternaccents
  %\def\patterns##1{\message{#1/#2/#3/#4/##1}\normalpatterns{##1}}%
   \readsysfile{\truefilename{\f!languageprefix#2.\f!patternsextension}}
     {\setxvalue{\??la#1\s!patterns}{#2}%
      \xdef\preloadedpatterns
        {\preloadedpatterns
         \number\normallanguage:\showpatterns{#2}}%
      \showmessage\m!linguals1{#2,#1,\loadedlanguage}}
     {\readsysfile{\f!languageprefix#2.\f!patternsextension}
        {\setxvalue{\??la#1\s!patterns}{#2}%
         \xdef\preloadedpatterns{\preloadedpatterns\showpatterns{#2}}%
         \showmessage\m!linguals1{#2,#1,\loadedlanguage}}
        {\showmessage\m!linguals2{#2,#1,\loadedlanguage}}}%
      \readsysfile{\truefilename{\f!languageprefix#2.\f!hyphensextension}}
        {\showmessage\m!linguals3{#2,#1,\loadedlanguage}}
        {\readsysfile{\f!languageprefix#2.\f!hyphensextension}
           {\showmessage\m!linguals3{#2,#1,\loadedlanguage}}
           {\showmessage\m!linguals4{#2,#1,\loadedlanguage}}}%
   \stoppatternaccents
   \stopreadingfile
   \stopencoding
   \global\everyjob\scratchtoks
   \egroup
   \increment\loadedlanguage}

%D \macros
%D   {setuplanguage}
%D
%D Quick and dirty, but useful:
%D
%D \showsetup{\y!setuplanguage}

\def\setuplanguage
  {\dodoubleargument\dosetuplanguage}

\def\dosetuplanguage[#1][#2]%
  {\getparameters[\??la#1][#2]%  
   \doif{#1}\currentlanguage\docomplexlanguage}

%D The values \type {\c!leftsentence} and \type
%D {\c!rightsentence} can be (and are) used to implement
%D automatic subsentence boundary glyphs, like in {\fr
%D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or
%D {\nl |<|dutch dashes|>|} like situations. Furthermore \type
%D {\c!leftquotation} and \type {\c!leftquote} come into view
%D \citaat {when we quote} or \citeer {quote} something.

%D \macros
%D  {currentdatespecification}
%D
%D Just to make things easy we can ask for the current date
%D specification by saying:

\def\currentdatespecification
  {\csname\??la\currentlanguage\c!datum\endcsname}

%D This command is not meant for users.

%D Carefull reading of these macros shows that it's legal to
%D say
%D
%D \starttypen
%D \installlanguage [du] [de]
%D \stoptypen

%D \macros
%D   {language,mainlanguage}
%D
%D Switching to another language (actually another hyphenation
%D pattern) is done with:
%D
%D \starttypen
%D \language[identifier]
%D \stoptypen
%D
%D or with \type{\identifier}. Just to be compatible with
%D \PLAIN\ \TEX, we still support the original meaning, so
%D
%D \starttypen
%D \language=1
%D \stoptypen
%D
%D is a valid operation, where the relation between number
%D and language depends on the order in installing languages.
%D
%D \showsetup{\y!language}
%D \showsetup{\y!mainlanguage}
%D
%D Both commands take a predefined language identifier as
%D argument. We can use \type{\mainlanguage[identifier]} for
%D setting the (indeed) main language. This is the language
%D used for translating labels like {\em figure} and {\em
%D table}. The main language defaults to the current language.
%D
%D We take care of local as well as standardized language
%D switching (fr and fa, de and du, but nl and nl).

% new, encoding specific patterns

\ifx\synchronizepatterns\undefined \let\synchronizepatterns\relax \fi

\beginTEX

\def\dosetnormallanguage#1#2%
  {\@EA\ifx\csname\??la\??la#1#2\endcsname\relax
     \@EA\firstofoneargument
   \else\@EA\ifx\csname\??la\??la#1#2\endcsname\empty
     \@EAEAEA\firstofoneargument
   \else
     \donetrue
     \global\@EA\xdef\csname\??la\currentlanguage\s!patterns\endcsname{#2}%
     \normallanguage\csname\??la\??la#1#2\endcsname\relax % \relax is needed for lookahead problems
     \@EAEAEA\gobbleoneargument
   \fi\fi}

\endTEX

\beginETEX

\def\dosetnormallanguage#1#2%
  {\ifcsname\??la\??la#1#2\endcsname
     \edef\thenormallanguage{\csname\??la\??la#1#2\endcsname}%
     \ifx\thenormallanguage\empty
       \@EAEAEA\firstofoneargument
     \else
       \donetrue
       \global\@EA\xdef\csname\??la\currentlanguage\s!patterns\endcsname{#2}%
       \normallanguage\thenormallanguage\relax % \relax is needed for lookahead problems
       \@EAEAEA\gobbleoneargument
     \fi
   \else
     \@EA\firstofoneargument
   \fi}

\endETEX

\newevery \everylanguage               \relax
\newevery \everyresetlanguagespecifics \relax

\def\setnormallanguage#1%
  {\dosetnormallanguage{:\currentencoding:\currentmapping:}{#1}{%
   \dosetnormallanguage{:\currentencoding:\s!default     :}{#1}{%
   \dosetnormallanguage{:\s!default      :\currentmapping:}{#1}{%
   \dosetnormallanguage{:\s!default      :\s!default     :}{#1}{}}}}}

\def\docomplexlanguage% assumes that \currentlanguage is set
  {\edef\currentdefaultlanguage{\defaultlanguage\currentlanguage}%
   \def\synchronizepatterns{\setnormallanguage
     {\csname\??la\currentlanguage\s!patterns\endcsname}}% called often
   \donefalse 
   \synchronizepatterns
   \ifdone\else
     \def\synchronizepatterns{\setnormallanguage\currentlanguage}%
     \synchronizepatterns
     \ifdone\else
       \ifx\currentdefaultlanguage\empty\else
         \def\synchronizepatterns{\setnormallanguage
           {\csname\??la\currentdefaultlanguage\s!patterns\endcsname}}%
         \synchronizepatterns
         \ifdone\else
           \setnormallanguage\currentdefaultlanguage
           \synchronizepatterns
         \fi
       \fi
     \fi
   \fi
   \the\everylanguage 
   \enablelanguagespecifics[\currentlanguage]%
% strange, what is this doing here, dangerous for {il2,ec} 
%   \edef\languagemapping{\csname\??la\currentlanguage\s!mapping\endcsname}%
%   \ifx\languagemapping\empty\else
%     \fastenablemapping\languagemapping
%   \fi
   \lefthyphenmin 0\csname\??la\currentlanguage\s!lefthyphenmin \endcsname
   \righthyphenmin0\csname\??la\currentlanguage\s!righthyphenmin\endcsname\relax
   % will be definable 
   \doifelsevalue{\??la\currentlanguage\c!spatiering}\v!ruim
     \nonfrenchspacing\frenchspacing}

\ifx\enablelanguagespecifics\undefined

  \def\enablelanguagespecifics[#1]{}

\fi

\beginETEX

\def\complexlanguage[#1]%   
  {\edef\askedlanguage{#1}% 
   \ifx\askedlanguage\empty \else
     \ifcsname\l!prefix!\askedlanguage\endcsname
       \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
       \ifx\currentlanguage\askedlanguage \else
         \let\currentlanguage\askedlanguage
         \docomplexlanguage
       \fi 
     \else
       \showmessage\m!linguals6{#1}%
     \fi
   \fi}

\endETEX

\beginTEX

\def\complexlanguage[#1]%
  {\edef\askedlanguage{#1}%
   \ifx\askedlanguage\empty \else
     \@EA\ifx\csname\l!prefix!\askedlanguage\endcsname\relax
       \showmessage\m!linguals6{#1}%
     \else
       \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
       \ifx\currentlanguage\askedlanguage \else
         \let\currentlanguage\askedlanguage
         \docomplexlanguage
       \fi 
     \fi
   \fi}

\endTEX

\let\simplelanguage\normallanguage

\definecomplexorsimple\language

\beginETEX

\def\mainlanguage[#1]%
  {\edef\askedlanguage{#1}%
   \ifx\askedlanguage\empty \else
     \ifcsname\l!prefix!\askedlanguage\endcsname
       \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
       \ifx\currentmainlanguage\askedlanguage \else
         \let\currentmainlanguage\askedlanguage
         \let\currentlanguage\askedlanguage
         \docomplexlanguage 
       \fi 
     \fi
   \fi}

\endETEX

\beginTEX

\def\mainlanguage[#1]%
  {\edef\askedlanguage{#1}%
   \ifx\askedlanguage\empty \else
     \@EA\ifx\csname\l!prefix!\askedlanguage\endcsname\relax\else
       \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
       \ifx\currentmainlanguage\askedlanguage \else
         \let\currentmainlanguage\askedlanguage
         \let\currentlanguage\askedlanguage
         \docomplexlanguage 
       \fi 
     \fi
   \fi}

\endTEX

%D \macros
%D   {defaultlanguage,languagedefault}
%D
%D The macro \type {\defaultlanguage{id}} expands into the
%D default language, when defined, while \type
%D {\languagedefault{id}\c!parameter} returns the default's
%D parameter.

%\def\defaultlanguage#1%
%  {\@EA\ifx\csname\??la#1\c!default\endcsname\empty
%     #1%
%   \else
%     \@EA\defaultlanguage\@EA{\csname\??la#1\c!default\endcsname}%
%   \fi}

\def\defaultlanguage#1%
  {\@EA\ifx\csname\??la#1\c!default\endcsname\empty
     #1%
   \else
     \@EA\defaultlanguage\csname\??la#1\c!default\endcsname
   \fi}

\def\languagedefault#1#2%
  {\csname\??la\defaultlanguage{#1}#2\endcsname}

\def\languageparameter#1%
  {\csname\??la\defaultlanguage\currentlanguage#1\endcsname}

% moved 
%
% %D \macros
% %D   {leftguillemot,rightguillemot,leftsubguillemot,rightsubguillemot,
% %D    ...single...quote,...double...quote}
% %D
% %D We assign logical names to all kind of quote and sentence
% %D boundary characters.
% %D
% %D When using Computer Modern Roman, the next definitions
% %D looks a bit better than the default ligatures.
% %D
% %D \starttypen
% %D \def\lowerleftsingleninequote  {,}
% %D \def\lowerleftdoubleninequote  {,\kern-.1em,}
% %D \def\upperleftsingleninequote  {'}
% %D \def\upperleftdoubleninequote  {''\kern-.1em}
% %D \def\upperleftsinglesixquote   {`}
% %D \def\upperleftdoublesixquote   {`\kern-.1em`}
% %D
% %D \def\lowerrightsingleninequote {,}
% %D \def\lowerrightdoubleninequote {,\kern-.1em,}
% %D \def\upperrightsingleninequote {'}
% %D \def\upperrightdoubleninequote {''}
% %D \def\upperrightsinglesixquote  {`}
% %D \def\upperrightdoublesixquote  {\kern-.125em``}
% %D \stoptypen
% %D
% %D But in other fonts, these definitions can give problems, so
% %D we just say:
% 
% \def\lowerleftsingleninequote  {,}
% \def\lowerleftdoubleninequote  {,,}
% \def\upperleftsingleninequote  {'}
% \def\upperleftdoubleninequote  {''}
% \def\upperleftsinglesixquote   {`}
% \def\upperleftdoublesixquote   {``}
% 
% \def\lowerrightsingleninequote {,}
% \def\lowerrightdoubleninequote {,,}
% \def\upperrightsingleninequote {'}
% \def\upperrightdoubleninequote {''}
% \def\upperrightsinglesixquote  {`}
% \def\upperrightdoublesixquote  {``}
% 
% %D Yes I know, they are ugly:
% 
% \def\leftfakeguillemot
%   {\dontleavehmode\hbox{\raise.25ex\hbox{$\scriptscriptstyle\ll$}}}
% 
% \def\rightfakeguillemot
%   {\hbox{\raise.25ex\hbox{$\scriptscriptstyle\gg$}}}
% 
% \def\leftsubfakeguillemot
%   {\dontleavehmode\hbox{\raise.25ex\hbox{$\scriptscriptstyle<$}}}
% 
% \def\rightsubfakeguillemot
%   {\hbox{\raise.25ex\hbox{$\scriptscriptstyle>$}}}

%D New (see nomarking and nolist):  

\def\splitsequence#1#2%
  {\doifelse{#1}\v!nee
     {#2}{\doifelse{#1}\v!ja{\languageparameter\c!limittext}{#1}}}

\def\splitsymbol#1%
  {\splitsequence{#1}{\languageparameter\c!limittext}}

%D Just like with subsentence boundary symbols, quotes
%D placement depends on the current language, therefore we show
%D the defaults here.
%D
%D \def\ShowLanguageValues [#1] [#2] #3 #4
%D   {\blanko
%D    \startregelcorrectie
%D    \vbox\bgroup
%D    \language[#1]%
%D    \setbox0=\hbox to \hsize{\hss\bf#2 subsentence symbol and quotes\hss}
%D    \dp0=0pt
%D    \box0
%D    \vskip.5em
%D    \hrule
%D    \vskip.5em
%D    \let\normalbar=|
%D    \hbox to \hsize
%D      {\hfil\citaat{#3 #4}\hfil\citeer{#2}\hfil
%D       \let|=\normalbar\strut|<||<|#3|>|#4|>|\hfil}
%D    \vskip.5em
%D    \hrule
%D    \egroup
%D    \stopregelcorrectie
%D    \blanko}
%D
%D \ShowLanguageValues [af] [afrikaans]  afrikaanse ...
%D \ShowLanguageValues [ca] [catalan]    catalan ...
%D \ShowLanguageValues [cz] [czech]      tjechisch tex
%D \ShowLanguageValues [cz] [slovak]     slowaakse ...
%D \ShowLanguageValues [da] [danish]     deense ...
%D \ShowLanguageValues [de] [german]     duitse degelijkheid
%D \ShowLanguageValues [en] [english]    engelse humor
%D \ShowLanguageValues [fi] [finnish]    finse ...
%D \ShowLanguageValues [fr] [french]     franse slag
%D \ShowLanguageValues [it] [italian]    italiaanse ...
%D \ShowLanguageValues [la] [latin]      latijnse missen
%D \ShowLanguageValues [nl] [dutch]      nederlandse zuinigheid
%D \ShowLanguageValues [no] [norwegian]  noorse ...
%D \ShowLanguageValues [pl] [polish]     poolse ...
%D \ShowLanguageValues [pt] [portuguese] portugese ...
%D \ShowLanguageValues [es] [spanish]    spaans benauwd
%D \ShowLanguageValues [sv] [swedish]    zweedse ...
%D \ShowLanguageValues [tr] [turkish]    turks fruit

%D We support a lot of languages. These are specified and
%D loaded in separate files, according to their roots. Here
%D we only take care of (postponed) setting of the current
%D language.
%D
%D \unprotect
%D \plaatstabel{The germanic languages (\type{lang-ger})}
%D \starttabel[||||]
%D \HL
%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
%D \HL
%D \NC \s!nl        \NC dutch        \NC germanic  \NC\FR
%D \NC \s!en        \NC english      \NC germanic  \NC\MR
%D \NC \s!de        \NC german       \NC germanic  \NC\MR
%D \NC \s!da        \NC danish       \NC germanic  \NC\MR
%D \NC \s!sv        \NC swedish      \NC germanic  \NC\MR
%D \NC \s!af        \NC afrikaans    \NC germanic  \NC\MR
%D \NC \s!no        \NC norwegian    \NC germanic  \NC\LR
%D \HL
%D \stoptabel
%D \protect
%D
%D \unprotect
%D \plaatstabel{The italic languages (\type{lang-ita})}
%D \starttabel[||||]
%D \HL
%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
%D \HL
%D \NC \s!fr        \NC french       \NC italic    \NC\FR
%D \NC \s!ca        \NC catalan      \NC italic    \NC\MR
%D \NC \s!es        \NC spanish      \NC italic    \NC\MR
%D \NC \s!it        \NC italian      \NC italic    \NC\MR
%D \NC \s!la        \NC latin        \NC italic    \NC\MR
%D \NC \s!pt        \NC portuguese   \NC italic    \NC\LR
%D \HL
%D \stoptabel
%D \protect
%D
%D \unprotect
%D \plaatstabel{The slavic languages (\type{lang-sla})}
%D \starttabel[||||]
%D \HL
%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
%D \HL
%D \NC \s!pl        \NC polish       \NC slavic    \NC\FR
%D \NC \s!cz        \NC czech        \NC slavic    \NC\MR
%D \NC \s!sk        \NC slavik       \NC slavic    \NC\LR
%D \HL
%D \stoptabel
%D \protect
%D \unprotect
%D
%D \plaatstabel{The altaic languages (\type{lang-alt})}
%D \starttabel[||||]
%D \HL
%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
%D \HL
%D \NC \s!tr        \NC turkish      \NC altaic    \NC\SR
%D \HL
%D \stoptabel
%D
%D \plaatstabel{The uralic languages (\type{lang-ura})}
%D \starttabel[||||]
%D \HL
%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
%D \HL
%D \NC \s!fi        \NC finnish      \NC uralic    \NC\SR
%D \HL
%D \stoptabel
%D \protect

% \bgroup \normallanguage255 \patterns{} \egroup
% \def\nopatterns{\normallanguage255 }

\def\nopatterns{\normallanguage\minusone} 

%D We default to the language belonging to the interface. This
%D is one of the few places outside the interface modules where
%D \type{\startinterface} is used.

\let\normaldoublequote ="
\let\normalforwardslash=/

%D We default to english:

\setupcurrentlanguage[\s!en]

\appendtoks\mainlanguage[\currentlanguage]\to\everyjob

\appendtoks\showmessage\m!linguals9\currentlanguage\to\everyjob

\protect \endinput
%D \module
%D   [       file=lang-ita,
%D        version=1997.09.03,
%D          title=\CONTEXT\ Language Macros,
%D       subtitle=Italic Languages,
%D         author=Hans Hagen / Tobias Burnus, 
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
%C details. 

%D Todo: replace \'.. by \namedglyph 

\writestatus{loading}{Italic Languages}

%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
%D on, corrections were made by users. If you have suggestions,
%D or feel that your name missing here, don't hesitate to send
%D us an email. 
%D
%D \starttabulate[|lB|l|]
%D \NC Italian  \NC Giuseppe Bilotta \NC \NR
%D \NC Rumanian \NC Dan Seracu       \NC \NR
%D \stoptabulate

%  Latin, Italian, Rhaeto-Romanic, Rumanian, Sardian
%  Catalan, French, Ladino, Portuguese, Proven\c{c}al, Spanish

\unprotect

\ifx\guillemotspace\undefined \let\guillemotspace\empty \fi
\ifx\sentencespace \undefined \let\sentencespace \empty \fi

\installlanguage
  [\s!fr]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=\emdash,
   \c!rightsentence=\emdash,
   \c!leftsubsentence=\emdash,
   \c!rightsubsentence=\emdash,
   \c!leftquote=\leftguillemot,
   \c!rightquote=\rightguillemot,
   \c!leftquotation=\leftguillemot,
   \c!rightquotation=\rightguillemot,
   \c!datum={\v!dag+,\v!spatie,\v!maand,\v!spatie,\v!jaar},
   \c!status=\v!stop]

\installlanguage
  [\s!es]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=---,
   \c!rightsentence=---,
   \c!leftsubsentence=---,
   \c!rightsubsentence=---,
   \c!leftquote=\upperleftsinglesixquote,
   \c!rightquote=\upperrightsingleninequote,
   \c!leftquotation=\upperleftdoublesixquote,
   \c!rightquotation=\upperrightdoubleninequote,
   \c!datum={\v!dag,\ ,\v!maand,\ ,\v!jaar},
   \c!status=\v!stop]

\installlanguage [sp] [\s!es] % old times context 

\installlanguage
  [\s!ca]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=---,
   \c!rightsentence=---,
   \c!leftsubsentence=---,
   \c!rightsubsentence=---,
   \c!leftquote=\upperleftsinglesixquote,
   \c!rightquote=\upperrightsingleninequote,
   \c!leftquotation=\upperleftdoublesixquote,
   \c!rightquotation=\upperrightdoubleninequote,
   \c!datum={\v!dag,\ ,\v!maand,\ ,\v!jaar},
   \c!status=\v!stop]

% Note GB left|/|right (sub)sentences are for \quote {incisi}.

\installlanguage
  [\s!it]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=---,
   \c!rightsentence=---,
   \c!leftsubsentence=--,
   \c!rightsubsentence=--,
   \c!leftquote=\upperleftsinglesixquote,
   \c!rightquote=\upperrightsingleninequote,
   \c!leftquotation=\upperleftdoublesixquote,
   \c!rightquotation=\upperrightdoubleninequote,
   \c!leftspeech=\leftguillemot,
   \c!middlespeech=\leftguillemot,
   \c!rightspeech=\rightguillemot,
   \c!datum={\v!dag,\ ,\v!maand,\ ,\v!jaar},
   \c!status=\v!stop]

\installlanguage % the same as italian 
  [\s!la]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=---,
   \c!rightsentence=---,
   \c!leftsubsentence=---,
   \c!rightsubsentence=---,
   \c!leftquote=\upperleftsinglesixquote,
   \c!rightquote=\lowerrightsingleninequote,
   \c!leftquotation=\upperleftdoublesixquote,
   \c!rightquotation=\lowerrightdoubleninequote,
   \c!datum={\v!dag,\ ,\v!maand,\ ,\v!jaar},
   \c!status=\v!stop]

\installlanguage
  [\s!pt]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=---,
   \c!rightsentence=---,
   \c!leftsubsentence=---,
   \c!rightsubsentence=---,
   \c!leftquote=\upperleftsinglesixquote,
   \c!rightquote=\upperrightsingleninequote,
   \c!leftquotation=\upperleftdoublesixquote,
   \c!rightquotation=\upperrightdoubleninequote,
   \c!datum={\v!jaar,\ ,\v!maand,\ ,\v!dag},
   \c!status=\v!stop]

\installlanguage
  [\s!ro]
  [\c!spatiering=\v!opelkaar,
   \c!leftsentence=---,
   \c!rightsentence=---,
   \c!leftsubsentence=---,
   \c!rightsubsentence=---,
   \c!leftquote=\leftguillemot,
   \c!rightquote=\rightguillemot,
   \c!leftquotation=\lowerrightdoubleninequote,
   \c!rightquotation=\upperleftdoublesixquote,
   \c!datum={\v!dag,\ ,\v!maand,\ ,\v!jaar},
   \c!status=\v!stop]

%D For compatibility reasons we also define:

\installlanguage [fa]          [\s!fr] % for dutchies only

\installlanguage [french]      [\s!fr]
\installlanguage [spanish]     [\s!es]
\installlanguage [catalan]     [\s!ca]
\installlanguage [italian]     [\s!it]
\installlanguage [latin]       [\s!la]
\installlanguage [portuguese]  [\s!pt]
\installlanguage [romanian]    [\s!ro]

%D Labels and header texts. 

\setupheadtext [\s!fr] [\v!inhoud=Table des mati\`eres]
\setupheadtext [\s!es] [\v!inhoud=\'Indice]
\setupheadtext [\s!ca] [\v!inhoud=\'Index de continguts]
\setupheadtext [\s!it] [\v!inhoud=Indice]
\setupheadtext [\s!la] [\v!inhoud=Quod in libro continetur] %Argumentum
\setupheadtext [\s!pt] [\v!inhoud=Conte\'ud]
\setupheadtext [\s!ro] [\v!inhoud=Cuprins]

\setupheadtext [\s!fr] [\v!tabellen=Tables]
\setupheadtext [\s!es] [\v!tabellen=Tablas]
\setupheadtext [\s!ca] [\v!tabellen=Taules]
\setupheadtext [\s!it] [\v!tabellen=Tabelle]
\setupheadtext [\s!la] [\v!tabellen=Tabulae]
\setupheadtext [\s!pt] [\v!tabellen=Tabelas]
\setupheadtext [\s!ro] [\v!tabellen=Tabele]

\setupheadtext [\s!fr] [\v!figuren=Figures]
\setupheadtext [\s!es] [\v!figuren=Ilustraciones]
\setupheadtext [\s!ca] [\v!figuren=Figures]
\setupheadtext [\s!it] [\v!figuren=Figure]
\setupheadtext [\s!la] [\v!figuren=Imagines]
\setupheadtext [\s!pt] [\v!figuren=Figuras]
\setupheadtext [\s!ro] [\v!figuren=Figuri]

\setupheadtext [\s!fr] [\v!grafieken=Graphiques]
\setupheadtext [\s!es] [\v!grafieken=Gr\'aficos]
\setupheadtext [\s!ca] [\v!grafieken=Gr\`afiques]
\setupheadtext [\s!it] [\v!grafieken=Grafici]
\setupheadtext [\s!la] [\v!grafieken=Typi]
\setupheadtext [\s!pt] [\v!grafieken=Gr\'aficos]
\setupheadtext [\s!ro] [\v!grafieken=Grafice]

\setupheadtext [\s!fr] [\v!intermezzos=Interm\`edes]
\setupheadtext [\s!es] [\v!intermezzos=intermedios]
\setupheadtext [\s!ca] [\v!intermezzos=intermedis]
\setupheadtext [\s!it] [\v!intermezzos=Intermezzi]
\setupheadtext [\s!la] [\v!intermezzos=Intermissa]
\setupheadtext [\s!pt] [\v!intermezzos=Intermezzi]
\setupheadtext [\s!ro] [\v!intermezzos=Intermzzo]

\setupheadtext [\s!fr] [\v!index=Index]
\setupheadtext [\s!es] [\v!index=\'Indice alfab\'etico]
\setupheadtext [\s!ca] [\v!index=\'Index alfab\`etic]
\setupheadtext [\s!it] [\v!index=Indice]
\setupheadtext [\s!la] [\v!index=Indices]
\setupheadtext [\s!pt] [\v!index=\'Indice]
\setupheadtext [\s!ro] [\v!index=Index]

\setupheadtext [\s!fr] [\v!afkortingen=Abr\'eviations]
\setupheadtext [\s!es] [\v!afkortingen=Abreviaciones]
\setupheadtext [\s!ca] [\v!afkortingen=Abreviacions]
\setupheadtext [\s!it] [\v!afkortingen=Abbreviazioni]
\setupheadtext [\s!la] [\v!afkortingen=Notae]
\setupheadtext [\s!pt] [\v!afkortingen=Abreviaturas]
\setupheadtext [\s!ro] [\v!afkortingen=Abrevieri]

\setupheadtext [\s!fr] [\v!logos=Logos]
\setupheadtext [\s!es] [\v!logos=Logotipos]
\setupheadtext [\s!ca] [\v!logos=Logotips]
\setupheadtext [\s!it] [\v!logos=Logotipi]
\setupheadtext [\s!la] [\v!logos=Typi negotiales]
\setupheadtext [\s!pt] [\v!logos=Logotipos]
\setupheadtext [\s!ro] [\v!logos=Logo-uri]

\setupheadtext [\s!fr] [\v!eenheden=Unit\'es]
\setupheadtext [\s!es] [\v!eenheden=Unidades]
\setupheadtext [\s!ca] [\v!eenheden=Unitats]
\setupheadtext [\s!it] [\v!eenheden=Unit\`a]
\setupheadtext [\s!la] [\v!eenheden=Modi]
\setupheadtext [\s!pt] [\v!eenheden=Unidades]
\setupheadtext [\s!ro] [\v!eenheden=Unit\u{a}\c{t}i]

\setuplabeltext [\s!fr] [\v!tabel=Table ]
\setuplabeltext [\s!es] [\v!tabel=Tablas ]
\setuplabeltext [\s!ca] [\v!tabel=Taules ]
\setuplabeltext [\s!it] [\v!tabel=Tabella ]
\setuplabeltext [\s!la] [\v!tabel=Tabula ]
\setuplabeltext [\s!pt] [\v!tabel=Tabela ]
\setuplabeltext [\s!ro] [\v!tabel=Tabelul ]

\setuplabeltext [\s!fr] [\v!figuur=Figure ]
\setuplabeltext [\s!es] [\v!figuur=Ilustraci\'on ]
\setuplabeltext [\s!ca] [\v!figuur=Figura ]
\setuplabeltext [\s!it] [\v!figuur=Fig. ]
\setuplabeltext [\s!la] [\v!figuur=Imago ]
\setuplabeltext [\s!pt] [\v!figuur=Figura ]
\setuplabeltext [\s!ro] [\v!figuur=Figura ]

\setuplabeltext [\s!fr] [\v!intermezzo=Interm\`ede ]
\setuplabeltext [\s!es] [\v!intermezzo=Intermedio ]
\setuplabeltext [\s!ca] [\v!intermezzo=Intermedi ]
\setuplabeltext [\s!it] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!la] [\v!intermezzo=Intermissum ]
\setuplabeltext [\s!pt] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!ro] [\v!intermezzo=Intermezzo ]

\setuplabeltext [\s!fr] [\v!grafiek=Illustration ]
\setuplabeltext [\s!es] [\v!grafiek=Gr\'afico ]
\setuplabeltext [\s!ca] [\v!grafiek=Gr\'afica ]
\setuplabeltext [\s!it] [\v!grafiek=Grafico ]
\setuplabeltext [\s!la] [\v!grafiek=Typus ]
\setuplabeltext [\s!pt] [\v!grafiek=Gr\'afico ]
\setuplabeltext [\s!ro] [\v!grafiek=Graficul ]

\setuplabeltext [\s!fr] [\v!hoofdstuk=]
\setuplabeltext [\s!es] [\v!hoofdstuk=]
\setuplabeltext [\s!ca] [\v!hoofdstuk=]
\setuplabeltext [\s!it] [\v!hoofdstuk=]
\setuplabeltext [\s!la] [\v!hoofdstuk=]
\setuplabeltext [\s!pt] [\v!hoofdstuk=]
\setuplabeltext [\s!ro] [\v!hoofdstuk=]

\setuplabeltext [\s!fr] [\v!paragraaf=]
\setuplabeltext [\s!es] [\v!paragraaf=]
\setuplabeltext [\s!ca] [\v!paragraaf=]
\setuplabeltext [\s!it] [\v!paragraaf=]
\setuplabeltext [\s!la] [\v!paragraaf=]
\setuplabeltext [\s!pt] [\v!paragraaf=]
\setuplabeltext [\s!ro] [\v!paragraaf=]

\setuplabeltext [\s!fr] [\v!sub\v!paragraaf=]
\setuplabeltext [\s!es] [\v!sub\v!paragraaf=]
\setuplabeltext [\s!ca] [\v!sub\v!paragraaf=]
\setuplabeltext [\s!it] [\v!sub\v!paragraaf=]
\setuplabeltext [\s!la] [\v!sub\v!paragraaf=]
\setuplabeltext [\s!pt] [\v!sub\v!paragraaf=]
\setuplabeltext [\s!ro] [\v!sub\v!paragraaf=]

\setuplabeltext [\s!fr] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!es] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!ca] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!it] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!la] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!pt] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!ro] [\v!sub\v!sub\v!paragraaf=]

\setuplabeltext [\s!fr] [\v!sub\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!es] [\v!sub\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!ca] [\v!sub\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!it] [\v!sub\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!la] [\v!sub\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!pt] [\v!sub\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!ro] [\v!sub\v!sub\v!sub\v!paragraaf=]

\setuplabeltext [\s!fr] [\v!bijlage=]
\setuplabeltext [\s!es] [\v!bijlage=]
\setuplabeltext [\s!ca] [\v!bijlage=]
\setuplabeltext [\s!it] [\v!bijlage=]
\setuplabeltext [\s!la] [\v!bijlage=]
\setuplabeltext [\s!pt] [\v!bijlage=]
\setuplabeltext [\s!ro] [\v!bijlage=]

\setuplabeltext [\s!fr] [\v!deel=Partie ]
\setuplabeltext [\s!es] [\v!deel=Parte ]
\setuplabeltext [\s!ca] [\v!deel=Part ]
\setuplabeltext [\s!it] [\v!deel=Parte ]
\setuplabeltext [\s!la] [\v!deel=Pars ]
\setuplabeltext [\s!pt] [\v!deel=Parte ]
\setuplabeltext [\s!ro] [\v!deel=Partea ]

\setuplabeltext [\s!fr] [\v!regel=ligne ]
\setuplabeltext [\s!es] [\v!regel=l\'\i nea ]
\setuplabeltext [\s!ca] [\v!regel=l\'\i nia ]
\setuplabeltext [\s!it] [\v!regel=riga ]
\setuplabeltext [\s!la] [\v!regel=versus ]
\setuplabeltext [\s!pt] [\v!regel=linha ]
\setuplabeltext [\s!ro] [\v!regel=linia ]

\setuplabeltext [\s!fr] [\v!regels=lignes ]
\setuplabeltext [\s!es] [\v!regels=l\'\i neas ]
\setuplabeltext [\s!ca] [\v!regels=l\'\i nies ]
\setuplabeltext [\s!it] [\v!regels=righe ]
\setuplabeltext [\s!la] [\v!regels=versus ]
\setuplabeltext [\s!pt] [\v!regels=linhas ]
\setuplabeltext [\s!ro] [\v!regels=liniile ]

\setuplabeltext [\s!fr]   [\v!january=janvier]
\setuplabeltext [\s!fr]  [\v!february=f\'evrier]
\setuplabeltext [\s!fr]     [\v!march=mars]
\setuplabeltext [\s!fr]     [\v!april=avril]
\setuplabeltext [\s!fr]       [\v!may=mai]
\setuplabeltext [\s!fr]      [\v!june=juin]
\setuplabeltext [\s!fr]      [\v!july=juillet]
\setuplabeltext [\s!fr]    [\v!august=ao\^ut]
\setuplabeltext [\s!fr] [\v!september=septembre]
\setuplabeltext [\s!fr]   [\v!october=octobre]
\setuplabeltext [\s!fr]  [\v!november=novembre]
\setuplabeltext [\s!fr]  [\v!december=d\'ecembre]

\setuplabeltext [\s!es]   [\v!january=enero]
\setuplabeltext [\s!es]  [\v!february=febrero]
\setuplabeltext [\s!es]     [\v!march=marzo]
\setuplabeltext [\s!es]     [\v!april=abril]
\setuplabeltext [\s!es]       [\v!may=mayo]
\setuplabeltext [\s!es]      [\v!june=junio]
\setuplabeltext [\s!es]      [\v!july=julio]
\setuplabeltext [\s!es]    [\v!august=agosto]
\setuplabeltext [\s!es] [\v!september=septiembre]
\setuplabeltext [\s!es]   [\v!october=octubre]
\setuplabeltext [\s!es]  [\v!november=noviembre]
\setuplabeltext [\s!es]  [\v!december=diciembre]

\setuplabeltext [\s!ca]   [\v!january=gener]
\setuplabeltext [\s!ca]  [\v!february=febrer]
\setuplabeltext [\s!ca]     [\v!march=mar\,c]
\setuplabeltext [\s!ca]     [\v!april=abril]
\setuplabeltext [\s!ca]       [\v!may=maig]
\setuplabeltext [\s!ca]      [\v!june=juny]
\setuplabeltext [\s!ca]      [\v!july=juliol]
\setuplabeltext [\s!ca]    [\v!august=agost]
\setuplabeltext [\s!ca] [\v!september=septembre]
\setuplabeltext [\s!ca]   [\v!october=octubre]
\setuplabeltext [\s!ca]  [\v!november=novembre]
\setuplabeltext [\s!ca]  [\v!december=decembre]

\setuplabeltext [\s!it]   [\v!january=gennaio]
\setuplabeltext [\s!it]  [\v!february=febbraio]
\setuplabeltext [\s!it]     [\v!march=marzo]
\setuplabeltext [\s!it]     [\v!april=aprile]
\setuplabeltext [\s!it]       [\v!may=maggio]
\setuplabeltext [\s!it]      [\v!june=giugno]
\setuplabeltext [\s!it]      [\v!july=luglio]
\setuplabeltext [\s!it]    [\v!august=agosto]
\setuplabeltext [\s!it] [\v!september=settembre]
\setuplabeltext [\s!it]   [\v!october=ottobre]
\setuplabeltext [\s!it]  [\v!november=novembre]
\setuplabeltext [\s!it]  [\v!december=dicembre]

\setuplabeltext [\s!la]   [\v!january=Ianuarius]
\setuplabeltext [\s!la]  [\v!february=Februarius]
\setuplabeltext [\s!la]     [\v!march=Martius]
\setuplabeltext [\s!la]     [\v!april=Aprilis]
\setuplabeltext [\s!la]       [\v!may=Maius]
\setuplabeltext [\s!la]      [\v!june=Iunius]
\setuplabeltext [\s!la]      [\v!july=Iulius]   % formerly Quintilis
\setuplabeltext [\s!la]    [\v!august=Augustus] % formerly Sextilis
\setuplabeltext [\s!la] [\v!september=September]
\setuplabeltext [\s!la]   [\v!october=October]
\setuplabeltext [\s!la]  [\v!november=November]
\setuplabeltext [\s!la]  [\v!december=December]

\setuplabeltext [\s!pt]   [\v!january=janeiro]
\setuplabeltext [\s!pt]  [\v!february=fevereiro]
\setuplabeltext [\s!pt]     [\v!march=mar\c{c}o]
\setuplabeltext [\s!pt]     [\v!april=abril]
\setuplabeltext [\s!pt]       [\v!may=maio]
\setuplabeltext [\s!pt]      [\v!june=junho]
\setuplabeltext [\s!pt]      [\v!july=julho]
\setuplabeltext [\s!pt]    [\v!august=agosto]
\setuplabeltext [\s!pt] [\v!september=setembro]
\setuplabeltext [\s!pt]   [\v!october=outubro]
\setuplabeltext [\s!pt]  [\v!november=novembro]
\setuplabeltext [\s!pt]  [\v!december=dezembro]

\setuplabeltext [\s!ro] [\v!january=ianuarie]
\setuplabeltext [\s!ro] [\v!february=februarie]
\setuplabeltext [\s!ro] [\v!march=martie]
\setuplabeltext [\s!ro] [\v!april=aprilie]
\setuplabeltext [\s!ro] [\v!may=mai]
\setuplabeltext [\s!ro] [\v!june=iunie]
\setuplabeltext [\s!ro] [\v!july=iulie]
\setuplabeltext [\s!ro] [\v!august=august]
\setuplabeltext [\s!ro] [\v!september=septembrie]
\setuplabeltext [\s!ro] [\v!october=octombrie]
\setuplabeltext [\s!ro] [\v!november=noiembrie]
\setuplabeltext [\s!ro] [\v!december=decembrie]

\setuplabeltext [\s!fr]    [\v!sunday=dimanche]
\setuplabeltext [\s!fr]    [\v!monday=lundi]
\setuplabeltext [\s!fr]   [\v!tuesday=mardi]
\setuplabeltext [\s!fr] [\v!wednesday=mercredi]
\setuplabeltext [\s!fr]  [\v!thursday=jeudi]
\setuplabeltext [\s!fr]    [\v!friday=vendredi]
\setuplabeltext [\s!fr]  [\v!saturday=samedi]

\setuplabeltext [\s!es]    [\v!sunday=domingo]
\setuplabeltext [\s!es]    [\v!monday=lunes]
\setuplabeltext [\s!es]   [\v!tuesday=martes]
\setuplabeltext [\s!es] [\v!wednesday=mi\'ercoles]
\setuplabeltext [\s!es]  [\v!thursday=jueves]
\setuplabeltext [\s!es]    [\v!friday=viernes]
\setuplabeltext [\s!es]  [\v!saturday=s\'abado]

\setuplabeltext [\s!ca]    [\v!sunday=diumenge]
\setuplabeltext [\s!ca]    [\v!monday=dilluns]
\setuplabeltext [\s!ca]   [\v!tuesday=dimarts]
\setuplabeltext [\s!ca] [\v!wednesday=dimecres]
\setuplabeltext [\s!ca]  [\v!thursday=dijous]
\setuplabeltext [\s!ca]    [\v!friday=divendres]
\setuplabeltext [\s!ca]  [\v!saturday=dissabte]

\setuplabeltext [\s!it]    [\v!sunday=domenica]
\setuplabeltext [\s!it]    [\v!monday=luned\`\i]
\setuplabeltext [\s!it]   [\v!tuesday=marted\`\i]
\setuplabeltext [\s!it] [\v!wednesday=mercoled\`\i]
\setuplabeltext [\s!it]  [\v!thursday=gioved\`\i]
\setuplabeltext [\s!it]    [\v!friday=venerd\`\i]
\setuplabeltext [\s!it]  [\v!saturday=sabato]

\setuplabeltext [\s!la]    [\v!sunday=Dies Solis]
\setuplabeltext [\s!la]    [\v!monday=Dies Lunae]
\setuplabeltext [\s!la]   [\v!tuesday=Dies Martis]
\setuplabeltext [\s!la] [\v!wednesday=Dies Mercuri]
\setuplabeltext [\s!la]  [\v!thursday=Dies Iovis]
\setuplabeltext [\s!la]    [\v!friday=Dies Veneris]
\setuplabeltext [\s!la]  [\v!saturday=Dies Saturni]

\setuplabeltext [\s!pt]    [\v!sunday=domingo]
\setuplabeltext [\s!pt]    [\v!monday=segunda-feira]
\setuplabeltext [\s!pt]   [\v!tuesday=ter\c{c}a-feira]
\setuplabeltext [\s!pt] [\v!wednesday=quarta-feira]
\setuplabeltext [\s!pt]  [\v!thursday=quinta-feira]
\setuplabeltext [\s!pt]    [\v!friday=sexta-feira]
\setuplabeltext [\s!pt]  [\v!saturday=s\'abado]

\setuplabeltext [\s!ro] [\v!sunday=duminic\u{a}]
\setuplabeltext [\s!ro] [\v!monday=luni]
\setuplabeltext [\s!ro] [\v!tuesday=mar\c{t}i]
\setuplabeltext [\s!ro] [\v!wednesday=miercuri]
\setuplabeltext [\s!ro] [\v!thursday=joi]
\setuplabeltext [\s!ro] [\v!friday=vineri]
\setuplabeltext [\s!ro] [\v!saturday=s\^{a}mb\u{a}t\u{a}]

% \startlanguagespecifics[\s!ro]
% 
%   \installcompoundcharacter "a {\u{a}}
%   \installcompoundcharacter "i {\^{\i}}
%   \installcompoundcharacter "s {\c{s}}
%   \installcompoundcharacter "t {\c{t}}
%   \installcompoundcharacter "A {\^{a}}
%   \installcompoundcharacter "I {\^{I}}
%   \installcompoundcharacter "S {\c{S}}
%   \installcompoundcharacter "T {\c{T}}
%   \installcompoundcharacter "` {\handlequotation\c!leftquotation}  
%   \installcompoundcharacter "' {\handlequotation\c!rightquotation}
% 
% \stoplanguagespecifics

%D Rather new \unknown

\setuplabeltext [\s!it]    [\v!pagina=pagina ]
\setuplabeltext [\s!it]  [\v!oppagina=a pagina ]
\setuplabeltext [\s!it] [\v!hierboven=come mostrato sopra]
\setuplabeltext [\s!it] [\v!hieronder=come mostrato sotto]
\setuplabeltext [\s!it]       [\v!zie=cf. ]

%D Ordinal converters:

\def\frordinaldaynumber#1% date is masculine
  {\number#1\ifcase#1\or
     \highordinalstr{er}%
   \fi}

\defineconversion [\s!fr] [\v!dag+] [\frordinaldaynumber]

%D \ShowAllLanguageValues [\s!fr] [french]     franse slag
%D \ShowAllLanguageValues [\s!es] [spanish]    spaans benauwd
%D \ShowAllLanguageValues [\s!ca] [catalan]    catalaans ...
%D \ShowAllLanguageValues [\s!it] [italian]    italiaanse ...
%D \ShowAllLanguageValues [\s!la] [latin]      latijnse missen 
%D \ShowAllLanguageValues [\s!pt] [portuguese] portugese ...
%D \ShowAllLanguageValues [\s!ro] [romanian]   romanian ...

\protect \endinput
%D \module
%D   [       file=mult-sys,
%D        version=1996.06.01,
%D          title=\CONTEXT\ Multilingual Macros,
%D       subtitle=System,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
%C details. 

%D In boring module we define a lot of obscure but useful
%D system constants. By doing so we save lots of memory while
%D at the same time we prevent ourself from typing errors.

\writestatus{loading}{Context Multilingual Macros / System}

\unprotect

%D The constants are grouped in such a way that there is a
%D minimal change of conflicts.
%D
%D \starttypen
%D \definesystemconstants {word}
%D \definemessageconstant {word}
%D \stoptypen
%D
%D This commands generate \type{\s!word} and \type{\m!word}.

%D First we define some system constants used for both the
%D multi||lingual interface and multi||linguag typesetting.

\definesystemconstant {afrikaans}   \definesystemconstant {af}
\definesystemconstant {catalan}     \definesystemconstant {ca}
\definesystemconstant {chinese}     \definesystemconstant {cn}
\definesystemconstant {croation}    \definesystemconstant {hr}
\definesystemconstant {czech}       \definesystemconstant {cz}
\definesystemconstant {danish}      \definesystemconstant {da}
\definesystemconstant {dutch}       \definesystemconstant {nl}
\definesystemconstant {english}     \definesystemconstant {en}
\definesystemconstant {finish}      \definesystemconstant {fi}
\definesystemconstant {french}      \definesystemconstant {fr}
\definesystemconstant {german}      \definesystemconstant {de}
\definesystemconstant {hungarian}   \definesystemconstant {hu}
\definesystemconstant {italian}     \definesystemconstant {it}
\definesystemconstant {latin}       \definesystemconstant {la}
\definesystemconstant {norwegian}   \definesystemconstant {no}
\definesystemconstant {polish}      \definesystemconstant {pl}
\definesystemconstant {portuguese}  \definesystemconstant {pt}
\definesystemconstant {romanian}    \definesystemconstant {ro}
\definesystemconstant {russian}     \definesystemconstant {ru}
\definesystemconstant {slovak}      \definesystemconstant {sk}
\definesystemconstant {spanish}     \definesystemconstant {es}
\definesystemconstant {swedish}     \definesystemconstant {sv}
\definesystemconstant {turkish}     \definesystemconstant {tr}
\definesystemconstant {ukenglish}   \definesystemconstant {uk}
\definesystemconstant {ukrainian}   \definesystemconstant {ua}
\definesystemconstant {usenglish}   \definesystemconstant {us}

%D For proper \UNICODE\ support we need a few font related 
%D constants.

\definesystemconstant {BoldItalic}
\definesystemconstant {BoldSlanted}
\definesystemconstant {Bold}
\definesystemconstant {Italic}
\definesystemconstant {Regular}
\definesystemconstant {Slanted}
\definesystemconstant {Unicode}

\definesystemconstant {Serif} \definesystemconstant {Regular}
\definesystemconstant {Sans}  \definesystemconstant {Support}
\definesystemconstant {Mono}  \definesystemconstant {Type}

%D As the name of their define command states, the next set of
%D constants is used in the message macro's.

\definemessageconstant {colors}
\definemessageconstant {columns}
\definemessageconstant {encodings}
\definemessageconstant {figures}
\definemessageconstant {files}
\definemessageconstant {floatblocks}
\definemessageconstant {fonts}
\definemessageconstant {handlings}
\definemessageconstant {interactions}
\definemessageconstant {javascript}
\definemessageconstant {layouts}
\definemessageconstant {linguals}
\definemessageconstant {references}
\definemessageconstant {specials}
\definemessageconstant {structures}
\definemessageconstant {symbols}
\definemessageconstant {systems}
\definemessageconstant {textblocks}
\definemessageconstant {verbatims}
\definemessageconstant {versions}

%D The word \type{height} takes 6~token memory cells. The
%D control sequence \type{\height} on the other hand uses only
%D one. Knowing this, we can improve the performance of \TEX,
%D both is terms of speed and memory usage, by using control
%D sequences instead of the words written in full.
%D
%D Where in the \ASCII\ file the second lines takes nine extra
%D characters, \TEX\ saves us 13~tokens.
%D
%D \starttypen
%D \hrule width 10pt height 2pt depth 1pt
%D \hrule \!!width 10pt \!!height 2pt \!!depth 1pt
%D \stoptypen
%D
%D One condition is that we have defined \type{\!!height},
%D \type{\!!width} and \type{\!!depth} as respectively
%D \type{height}, \type{width} and \type{depth}. Using this
%D scheme therefore only makes sense when a token sequence is
%D used more than once. Savings like this should of course be
%D implemented in english, just because \TEX\ is english.

\def\!!width  {width}
\def\!!height {height}
\def\!!depth  {depth}
\def\!!plus   {plus}
\def\!!minus  {minus}
\def\!!fill   {fill}
\def\!!to     {to} 

%D The same goes for some \CONTEXT\ constants, used in the
%D definition of private commands:

\definesystemconstant  {next}
\definesystemconstant  {pickup}

\definesystemconstant  {ascii}
\definesystemconstant  {default}
\definesystemconstant  {unknown}

\definesystemconstant  {action}
\definesystemconstant  {compare}

\definesystemconstant  {do}
\definesystemconstant  {dodo}

\definesystemconstant  {complex}
\definesystemconstant  {simple}

\definesystemconstant  {start}
\definesystemconstant  {stop}

\definesystemconstant  {dummy}

\definesystemconstant  {local}
\definesystemconstant  {global}

\definesystemconstant  {done}

\definesystemconstant  {font}

%D A more experienced \TEX\ user will recognize the next four
%D constants. We need these because font-definitions are
%D partially english.

\definesystemconstant  {run}

\definesystemconstant  {fam}
\definesystemconstant  {text}
\definesystemconstant  {script}
\definesystemconstant  {scriptscript}

\definesystemconstant  {lefthyphenmin}
\definesystemconstant  {righthyphenmin}

\definesystemconstant  {skewchar}
\definesystemconstant  {hyphenchar}
\definesystemconstant  {encoding}
\definesystemconstant  {mapping}
\definesystemconstant  {patterns}
\definesystemconstant  {rscale}
\definesystemconstant  {handling}
\definesystemconstant  {ucmap}

%D Just to be complete we define the standard \TEX\ units.

\definesystemconstant  {cm}
\definesystemconstant  {em}
\definesystemconstant  {ex}
\definesystemconstant  {mm}
\definesystemconstant  {pt}
\definesystemconstant  {sp}
\definesystemconstant  {bp}
\definesystemconstant  {in}

%D These constants are used for internal and utility
%D commands.

\definesystemconstant  {check}
\definesystemconstant  {reset}
\definesystemconstant  {set}

\definesystemconstant  {entrya}
\definesystemconstant  {entryb}
\definesystemconstant  {entryc}
\definesystemconstant  {entry}
\definesystemconstant  {see}
\definesystemconstant  {from}
\definesystemconstant  {to}
\definesystemconstant  {page}
\definesystemconstant  {line}

\definesystemconstant  {synonym}

\definesystemconstant  {reference}
\definesystemconstant  {main}

\definesystemconstant  {list}

\definesystemconstant  {item}
\definesystemconstant  {itemcount}

\definesystemconstant  {number}
\definesystemconstant  {references}
\definesystemconstant  {between}
\definesystemconstant  {format}
\definesystemconstant  {old}

\definesystemconstant  {thisisblock}
\definesystemconstant  {thiswasblock}

\definesystemconstant  {figurepreset}

\definesystemconstant  {empty}

%D Some \CONTEXT\ commands take a two||pass aproach to
%D optimize the typesetting. Each two||pass object has its
%D own tag.

\definesystemconstant  {pass}

\definesystemconstant  {data}
\definesystemconstant  {float}
\definesystemconstant  {list}
\definesystemconstant  {page}
\definesystemconstant  {subpage}
\definesystemconstant  {margin}
\definesystemconstant  {profile}
\definesystemconstant  {versionbegin}
\definesystemconstant  {versionend}
\definesystemconstant  {cross}
\definesystemconstant  {paragraph}

%D A lot of macros use tags to distinguish between different
%D objects, e.g. lists and registers.

\definesystemconstant  {prt}  % part (deel)
\definesystemconstant  {chp}  % chapter (hoofdstuk)
\definesystemconstant  {sec}  % section (paragraaf)
\definesystemconstant  {tit}  % title (titel)
\definesystemconstant  {sub}  % subject (onderwerp)
\definesystemconstant  {mar}  % margin (marge)
\definesystemconstant  {num}  % number (doornummeren)
\definesystemconstant  {def}  % definition (doordefinieren)
\definesystemconstant  {for}  % formula (formule)
\definesystemconstant  {fnt}  % footnote (voetnoot)
\definesystemconstant  {ind}  % index (register)
\definesystemconstant  {lin}  % linked index
\definesystemconstant  {lst}  % list (opsomming)
\definesystemconstant  {flt}  % float (plaatsblok)
\definesystemconstant  {pag}  % page (pagina)
\definesystemconstant  {txt}  % text (tekst)
\definesystemconstant  {ref}  % reference (verwijzing)
\definesystemconstant  {lab}  % label (label)
\definesystemconstant  {aut}  % automatic (inhoud, index)
\definesystemconstant  {vwa}  % automatic (illustrations)
\definesystemconstant  {vwb}  % automatic (illustrations)

\definesystemconstant  {kop}  % kop  % still dutch

%D Reference labels can be tagged by users, for instance by
%D means of \type{tag:}. The reference mechanism itself uses
%D some tags too. These are definitely not to be used by users.
%D Here they are:

\definereferenceconstant {cross}      {:c:}  % cross reference
\definereferenceconstant {view}       {:v:}  % view reference
\definereferenceconstant {viewa}      {:a:}  % view reference test a
\definereferenceconstant {viewb}      {:b:}  % view reference test b
\definereferenceconstant {page}       {:p:}  % page referece
\definereferenceconstant {list}       {:l:}  % list reference
\definereferenceconstant {exec}       {:e:}  % execution reference
\definereferenceconstant {form}       {:m:}  % form reference
\definereferenceconstant {syst}       {:s:}  % system reference

\definereferenceconstant {from}       {:f:}  % from list reference
\definereferenceconstant {to}         {:t:}  % to list reference

\definereferenceconstant {object}     {:o:}  % object reference
\definereferenceconstant {driver}     {:d:}  % driver object reference
\definereferenceconstant {widget}     {:w:}  % field chain reference

\definereferenceconstant {java}       {:j:}  % java scripts

%D When we use numbers and dimensions the same applies as
%D with the keywords like \type{width} and \type{plus}
%D mentioned earlier.

\def\!!ten             {10}
\def\!!twelve          {12}
\def\!!hundred        {100}
\def\!!thousand      {1000}
\def\!!tenthousand  {10000}
\def\!!maxcard      {65536}
\def\!!medcard      {32768}

\def\!!zeropoint          {0pt}
\def\!!onepoint           {1pt}
\def\!!twopoint           {2pt}
\def\!!threepoint         {3pt}
\def\!!fourpoint          {4pt}
\def\!!fivepoint          {5pt}
\def\!!sixpoint           {6pt}
\def\!!sevenpoint         {7pt}
\def\!!eightpoint         {8pt}
\def\!!ninepoint          {9pt}
\def\!!tenpoint          {10pt}
\def\!!elevenpoint       {11pt}
\def\!!twelvepoint       {12pt}
\def\!!fourteenpointfour {14.4pt}

\ifx\z@\undefined \newdimen\zeropoint \else \let\zeropoint\z@ \fi

\newcount\medcard \medcard\!!medcard % used in font module 
\newcount\maxcard \maxcard\!!maxcard % used in font module 

\ifx\thousandpoint\undefined \newdimen\thousandpoint \fi

\thousandpoint=1000pt

%D Variables are composed of a command specific tag and a user
%D supplied variable (system constant). The first tag \type{ag}
%D for instance is available as \type{\??ag} and expands to
%D \type{@@ag} in composed variables.

% vervallen : hd hr hm vt vr vm tr tn te br bm bo on om or

\definesystemvariable {ab}   % AlignedBoxes
\definesystemvariable {ag}   % AchterGrond
\definesystemvariable {al}   % ALinea's
\definesystemvariable {am}   % interActieMenu
\definesystemvariable {an}   % ANchor 
\definesystemvariable {as}   % AlignmentSwitch
\definesystemvariable {ba}   % synchronisatieBAlk
\definesystemvariable {be}   % startstop (BeginEnd)
\definesystemvariable {bj}   % BlokJe
\definesystemvariable {bk}   % Blokken (floats)
\definesystemvariable {bl}   % BLanko
\definesystemvariable {bg}   % BleedinG
\definesystemvariable {bo}   % BlankO (definitions)
\definesystemvariable {bs}   % SelecteerBlokken
\definesystemvariable {bt}   % BuTton
\definesystemvariable {bu}   % BUffer
\definesystemvariable {bv}   % Brieven
\definesystemvariable {by}   % Per
\definesystemvariable {cb}   % CollectBox
\definesystemvariable {cc}   % Comment
\definesystemvariable {ci}   % CItaat
\definesystemvariable {cl}   % kleur (CoLor setup)
\definesystemvariable {cn}   % CollumN
\definesystemvariable {co}   % COmbinaties
\definesystemvariable {cp}   % CliP
\definesystemvariable {cr}   % kleur (ColoR)
\definesystemvariable {cs}   % kleur (ColorSeparation
\definesystemvariable {cv}   % ConVersie
\definesystemvariable {da}   % DAte
\definesystemvariable {dc}   % DroppedCaps 
\definesystemvariable {dd}   % DoorDefinieren
\definesystemvariable {de}   % DEel
\definesystemvariable {dl}   % DunneLijnen
\definesystemvariable {dn}   % DoorNummeren
\definesystemvariable {do}   % DefinieerOpmaak
\definesystemvariable {du}   % DUmmy 
\definesystemvariable {ds}   % DoorSpringen
\definesystemvariable {ef}   % ExternFiguur
\definesystemvariable {ec}   % EnCoding
\definesystemvariable {en}   % ENvironments
\definesystemvariable {ep}   % ExternfiguurPreset
\definesystemvariable {er}   % external resources
\definesystemvariable {ex}   % ExterneFiguren
\definesystemvariable {ht}   % HiddenText
\definesystemvariable {fc}   % FramedContent
\definesystemvariable {fd}   % FielD
\definesystemvariable {ff}   % FontFile
\definesystemvariable {fg}   % FiGuurmaten
\definesystemvariable {fi}   % FIle
\definesystemvariable {fl}   % Floats
\definesystemvariable {fm}   % ForMules
\definesystemvariable {fp}   % FilegroeP
\definesystemvariable {fr}   % ForM
\definesystemvariable {fs}   % FileSynonym
\definesystemvariable {ft}   % FonTs
\definesystemvariable {hs}   % HSpace
\definesystemvariable {ia}   % Interactie
\definesystemvariable {ib}   % InteractieBalk
\definesystemvariable {id}   % Index
\definesystemvariable {ig}   % ItemGroup
\definesystemvariable {ih}   % InHoudsopgave
\definesystemvariable {ii}   % stelIndexIn
\definesystemvariable {il}   % stelInvulRegelsin
\definesystemvariable {im}   % InMarge
\definesystemvariable {in}   % INspringen
\definesystemvariable {ip}   % InsertPages
\definesystemvariable {is}   % Items
\definesystemvariable {it}   % stelInTerliniein
\definesystemvariable {iv}   % stelInvulLijnenin
\definesystemvariable {ka}   % KAntlijn
\definesystemvariable {kd}   % KaDerteksten
\definesystemvariable {kj}   % KopJes (floats)
\definesystemvariable {kk}   % Kapitalen
\definesystemvariable {kl}   % KoLommen
\definesystemvariable {km}   % KenMerk
\definesystemvariable {ko}   % KOp(pen)
\definesystemvariable {kp}   % KopPelteken
\definesystemvariable {kr}   % KoRps
\definesystemvariable {ks}   % KolomSpan
\definesystemvariable {kt}   % KonTakten
\definesystemvariable {kw}   % KontaktWaarde
\definesystemvariable {la}   % LAnguage
\definesystemvariable {lb}   % LaBels
\definesystemvariable {ld}   % LegenDa
\definesystemvariable {le}   % LinetablE
\definesystemvariable {lg}   % taal (LanGuage)
\definesystemvariable {li}   % LIjst
\definesystemvariable {ll}   % Layers
\definesystemvariable {lx}   % LayerteXt
\definesystemvariable {ln}   % LijNen
\definesystemvariable {lo}   % LOgos
\definesystemvariable {lt}   % LiTeratuur
\definesystemvariable {ly}   % LaYout
\definesystemvariable {ma}   % MargeAchtergrond
\definesystemvariable {mb}   % MargeBlokken
\definesystemvariable {mg}   % Metapost paGe
\definesystemvariable {mk}   % MarKering
\definesystemvariable {mt}   % inline MaTh 
\definesystemvariable {mo}   % Math Options
\definesystemvariable {nm}   % Nummering
\definesystemvariable {np}   % NaastPlaatsen
\definesystemvariable {nr}   % Nummeren
\definesystemvariable {of}   % OFfset
\definesystemvariable {oi}   % OmlijndInstellingen
\definesystemvariable {ol}   % OmLijnd
\definesystemvariable {on}   % ONderstreep
\definesystemvariable {oo}   % OpsOmmingen
\definesystemvariable {op}   % OPsomming
\definesystemvariable {or}   % OtpfilteR
\definesystemvariable {os}   % OffSet
\definesystemvariable {ot}   % OTpsequence
\definesystemvariable {ov}   % OVerlay
\definesystemvariable {ox}   % OffsetBox
\definesystemvariable {pa}   % PAlet
\definesystemvariable {pb}   % PuBlicatie
\definesystemvariable {pc}   % PageComment    
\definesystemvariable {pe}   % PagEhandler
\definesystemvariable {pf}   % ProFiel
\definesystemvariable {pg}   % KoppelPagina
\definesystemvariable {ph}   % ParagrapH
\definesystemvariable {pl}   % PLaats
\definesystemvariable {pn}   % PaginaNummer
\definesystemvariable {pp}   % PaPier
\definesystemvariable {pr}   % PRogrammas
\definesystemvariable {ps}   % PoSitioneren
\definesystemvariable {pt}   % PageshifT
\definesystemvariable {rf}   % ReFereren
\definesystemvariable {rg}   % ReGel
\definesystemvariable {rl}   % ReferentieLijst
\definesystemvariable {rn}   % RegelNummer
\definesystemvariable {ro}   % ROteren
\definesystemvariable {rr}   % linenotes 
\definesystemvariable {rs}   % RaSters
\definesystemvariable {rt}   % RoosTers
\definesystemvariable {rv}   % ReserVeerfiguur
\definesystemvariable {sa}   % ScAle
\definesystemvariable {sb}   % SectieBlok
\definesystemvariable {sc}   % SCherm
\definesystemvariable {sd}   % SounD
\definesystemvariable {se}   % SEctie
\definesystemvariable {sf}   % SpeciFics
\definesystemvariable {sg}   % SpacinG
\definesystemvariable {sh}   % ShapeText
\definesystemvariable {si}   % SplIt
\definesystemvariable {sk}   % SectieKop
\definesystemvariable {sl}   % SmalLer
\definesystemvariable {sm}   % SynonieMen
\definesystemvariable {sn}   % SubNummer
\definesystemvariable {so}   % SOrteren
\definesystemvariable {sp}   % SelecteerPapier
\definesystemvariable {ss}   % Symbool
\definesystemvariable {st}   % STickers
\definesystemvariable {su}   % SetUp
\definesystemvariable {sv}   % SysteemVariabelen
\definesystemvariable {sy}   % SYnchronisatie
\definesystemvariable {ta}   % TAb
\definesystemvariable {tb}   % TekstBlokken
\definesystemvariable {td}   % TextbackgrounDs
\definesystemvariable {te}   % TEmplate 
\definesystemvariable {tf}   % TypeFace
\definesystemvariable {tg}   % Tex paGe
\definesystemvariable {ti}   % TabelInstellingen
\definesystemvariable {tk}   % Teksten
\definesystemvariable {tl}   % TekstLijnen
\definesystemvariable {tm}   % TypesynonyM
\definesystemvariable {tp}   % TyPen
\definesystemvariable {ts}   % TypeScript
\definesystemvariable {tt}   % TabulaTe
\definesystemvariable {ty}   % TYpe
\definesystemvariable {uc}   % Unicode
\definesystemvariable {ui}   % UItvoer
\definesystemvariable {ur}   % URl
\definesystemvariable {ve}   % VErsie
\definesystemvariable {vn}   % VoetNoten
\definesystemvariable {vt}   % VerTical
\definesystemvariable {wr}   % WitRuimte
\definesystemvariable {xf}   % XML File
\definesystemvariable {xp}   % XML Processing
\definesystemvariable {xy}   % schaal
\definesystemvariable {za}   % ZetspiegelAanpassing

%D Next we define some language independant one letter
%D variables and keywords.

\defineinterfaceconstant {x} {x}  % x offset
\defineinterfaceconstant {y} {y}  % y offset
\defineinterfaceconstant {w} {w}  % width
\defineinterfaceconstant {h} {h}  % height
\defineinterfaceconstant {s} {s}  % size
\defineinterfaceconstant {t} {t}  % title
\defineinterfaceconstant {c} {c}  % creator
\defineinterfaceconstant {e} {e}  % extension
\defineinterfaceconstant {f} {f}  % file

\defineinterfaceconstant {a} {a}  % kunnen weg
\defineinterfaceconstant {b} {b}  % kunnen weg
\defineinterfaceconstant {c} {c}  % kunnen weg
\defineinterfaceconstant {d} {d}  % kunnen weg
\defineinterfaceconstant {e} {e}  % kunnen weg

\defineinterfaceconstant {s} {s}
\defineinterfaceconstant {r} {r}
\defineinterfaceconstant {g} {g}
\defineinterfaceconstant {b} {b}
\defineinterfaceconstant {c} {c}
\defineinterfaceconstant {m} {m}
\defineinterfaceconstant {y} {y}
\defineinterfaceconstant {k} {k}
\defineinterfaceconstant {a} {a} % alternative
\defineinterfaceconstant {t} {t} % transparency 
\defineinterfaceconstant {p} {p} % percentage 
 
\defineinterfaceconstant {t} {t}
\defineinterfaceconstant {h} {h}
\defineinterfaceconstant {b} {b}

\defineinterfaceconstant {rgb}  {rgb}
\defineinterfacevariable {rgb}  {rgb}

\defineinterfaceconstant {cmyk} {cmyk}
\defineinterfacevariable {cmyk} {cmyk}

\defineinterfaceconstant {mp} {mp}
\defineinterfacevariable {mp} {mp}

\defineinterfacevariable {s} {s}

\defineinterfacevariable {a} {a}
\defineinterfacevariable {b} {b}
\defineinterfacevariable {c} {c}
\defineinterfacevariable {d} {d}

%D The names of files and their extensions are fixed.
%D \CONTEXT\ uses as less files as possible. Utility files can
%D be recognized by the first two characters of the extension:
%D \type{tu}.

\definefileconstant {utilityfilename}    {texutil}

\definefileconstant {blockextension}     {tub}
\definefileconstant {figureextension}    {tuf}
\definefileconstant {inputextension}     {tui}
\definefileconstant {outputextension}    {tuo} % tup for previous run
\definefileconstant {optionextension}    {top}
\definefileconstant {temporaryextension} {tmp}
\definefileconstant {patternsextension}  {pat}
\definefileconstant {hyphensextension}   {hyp}
\definefileconstant {fontmapextension}   {map}

%D These files are loaded at start||up. They may contain system
%D specific setups (or calls to other files), old macro's, to
%D garantee compatibility and new macro's noy yet present in
%D the format.

\definefileconstant {sysfilename} {cont-sys}
\definefileconstant {oldfilename} {cont-old}
\definefileconstant {newfilename} {cont-new}
\definefileconstant {filfilename} {cont-fil}
\definefileconstant {modfilename} {cont-mod}

%D The next two files specify user settings as well as 
%D \TEXEXEC\ settings when generating a format. 

\definefileconstant {usrfilename} {cont-usr}
\definefileconstant {fmtfilename} {cont-fmt}

%D The setup files for the language, font, color and special
%D subsystems have a common prefix. This means that we have at
%D most three characters for unique filenames.

\definefileconstant {colorprefix}        {colo-}
\definefileconstant {encodingprefix}     {enco-}
\definefileconstant {filterprefix}       {filt-}
\definefileconstant {fontprefix}         {font-}
\definefileconstant {handlingprefix}     {hand-}
\definefileconstant {javascriptprefix}   {java-}
\definefileconstant {languageprefix}     {lang-}
\definefileconstant {mathprefix}         {math-}
\definefileconstant {metapostprefix}     {meta-}
\definefileconstant {regimeprefix}       {regi-}
\definefileconstant {specialprefix}      {spec-}
\definefileconstant {symbolprefix}       {symb-}
\definefileconstant {typeprefix}         {type-}
\definefileconstant {xtagprefix}         {xtag-}

\definefileconstant {moduleprefix}       {m-}
\definefileconstant {styleprefix}        {s-}
\definefileconstant {xstyleprefix}       {x-}
\definefileconstant {privateprefix}      {p-}
\definefileconstant {thirdprefix}        {t-}

%D \CONTEXT\ follows different strategies for finding files.
%D The macros that are responsible for this 'clever' searching
%D make use of two (very important) path specifiers.

\definefileconstant {pathseparator}      {/}
\definefileconstant {currentpath}        {.}
\definefileconstant {parentpath}         {..}

%D The way fonts are defined and called upon is language
%D independant. We follow the scheme laid down by Knuth in
%D Plain \TEX. We'll explain their meaning later.

\defineinterfaceconstant {tf} {tf}
\defineinterfaceconstant {bf} {bf}
\defineinterfaceconstant {bs} {bs}
\defineinterfaceconstant {bi} {bi}
\defineinterfaceconstant {sl} {sl}
\defineinterfaceconstant {it} {it}
\defineinterfaceconstant {sc} {sc}
\defineinterfaceconstant {rm} {rm}
\defineinterfaceconstant {ss} {ss}
\defineinterfaceconstant {tt} {tt}
\defineinterfaceconstant {hw} {hw}
\defineinterfaceconstant {cg} {cg}
\defineinterfaceconstant {os} {os}
\defineinterfaceconstant {mm} {mm}
\defineinterfaceconstant {i}  {i}
\defineinterfaceconstant {nn} {nn}

\defineinterfaceconstant {x}  {x}
\defineinterfaceconstant {xx} {xx}

\defineinterfaceconstant {em} {em}

\defineinterfaceconstant {mi} {mi}
\defineinterfaceconstant {sy} {sy}
\defineinterfaceconstant {ex} {ex}
\defineinterfaceconstant {mr} {mr}

\defineinterfaceconstant {ma} {ma}
\defineinterfaceconstant {mb} {mb}
\defineinterfaceconstant {mc} {mc}

%D For figure inclusion we need:

\defineinterfaceconstant {tif}  {tif}
\defineinterfaceconstant {eps}  {eps}
\defineinterfaceconstant {mps}  {mps}
\defineinterfaceconstant {jpg}  {jpg}
\defineinterfaceconstant {pdf}  {pdf}
\defineinterfaceconstant {png}  {png}
\defineinterfaceconstant {avi}  {avi}
\defineinterfaceconstant {mov}  {mov}
\defineinterfaceconstant {tex}  {tex}
\defineinterfaceconstant {tmp}  {tmp}

%D A careful reader will have noticed that in the module
%D \type{mult-ini} we defined \type{\selectinterface}. We were
%D not yet able to actually select an interface, because we
%D still had to define the constants and variables. Now we've
%D done so, selection is permitted.

\selectinterface

%D And only after this selection is done, we can define
%D messages, otherwise the default language is in use.

\ifinterfacetranslation \else

\startmessages  dutch  library: check
  title: controle
      1: '=' ontbreekt of zonder {} na '--' in regel --
      2: -- argument(en) verwacht in regel --
      3: -- -- vervangt een macro, gebruik HOOFDLETTERS!
\stopmessages

\startmessages  english library: check
  title: check
      1: missing or ungrouped '=' after '--' in line --
      2: -- argument(s) expected in line --
      3: -- -- replaces a macro, use CAPITALS!
\stopmessages

% 1: to be adapted 

\startmessages  german library: check
  title: check
      1: Fehlendes '=' nach '--' in Zeile --
      2: -- Argument(e) in Zeile -- erwartet
      3: -- -- ersetzt ein Makro, verwende VERSALIEN!
\stopmessages

\startmessages  czech library: check
  title: kontrola
      1: postradam '=' po '--' na radku --
      2: ocekavam -- argument(y) na radku --
      3: -- -- nahrazuje makro, uzijte VERZALKY!
\stopmessages

\startmessages  italian library: check
  title: controllo
      1: '=' mancante o non raggruppato dopo '--' alla riga --
      2: -- argomento/i attesi alla riga --
      3: -- -- sostituisce una macro, usare le MAIUSCOLE!
\stopmessages

\startmessages  norwegian library: check
  title: kontroll
      1: manglende '=' etter '--' i linje --
      2: -- argument forventet i linje --
      3: -- -- overskygger en makro, bruk STORE BOKSTAVER!
\stopmessages

\startmessages  romanian library: check
  title: verificari
      1: lipseste '=' dupa '--' in linia --
      2: argumentul(ele) -- sunt asteptate in linia  --
      3: -- -- inlocuieste un macro, folositi MAJUSCULE!
\stopmessages

\fi

%D Ok, here are some more, because we've got ouselves some
%D extensions to \CONTEXT.

\definemessageconstant {addresses}
\definemessageconstant {documents}

\protect

\endinput

Attachment: pgpQ3n_0YcE8y.pgp
Description: PGP signature


Reply to: