Localization
------------

The localization process involves two groff files and zero or more
hyphenation pattern files.

1.  A locale-dependent file (for example, fr.tmac for French) does one
    or several of the following.

    A.  A string identifying the groff locale (e.g., "english") is set.
    B.  Locale-specific strings used by macro packages are (re)defined.
    C.  Other tweaks to macro package configuration are performed, such
        as altering the ordering of the components of a date string.
    D.  Additional inter-sentence space is set to a language-appropriate
        amount with the .ss request.
    E.  A hyphenation mode appropriate to the hyphenation pattern files
        for the locale is set with the .hy request.  Here's a mapping
        from TeX hyphenation pattern minimums to groff hyphenation
        modes.
            \lefthyphenmin=2, \righthyphenmin=2 => 1
            \lefthyphenmin=2, \righthyphenmin=3 => 4
            \lefthyphenmin=1, \righthyphenmin=2 => 32
    F.  Hyphenation codes appropriate to the hyphenation pattern files
        for the locale are set with the .hcode request.
    G.  The hyphenation language is set with the .hla request.
    H.  Support for the character encoding used by the hyphenation
        pattern files is loaded with the .mso request.
    I.  Hyphenation pattern and exception files are loaded with the .hpf
        and .hpfa requests.

2.  A locale-independent file (trans.tmac) activates the localized
    strings set up in item B above.

See the groff Texinfo manual in doc/groff.texi for descriptions of the
requests referred to above.

Localization files are named using ISO 639-1 language identifiers.
Further specialization of locales by ISO 3166 territory codes is
tentatively planned as of groff 1.23.0, awaiting expressions of demand.

After 'trans.tmac' has been loaded, you must redefine the date strings
in order to use the day and month names translated earlier.  The date
format also may need to be changed.

- If the locale's date format is MM/DD/YYYY, use the following.

    for ms: .ds DY \*[MO] \n[dy] \n[year]\"
    for mm: .ds cov*new-date \\*[MO\\n[mo]] \\n[dy] \\n[year]\"
    for me: .ds td \*(mo \n(dy \n(y4\"

- If the locale's date format is DD/MM/YYYY, use the following.

    for ms: .ds DY \n[dy] \*[MO] \n[year]\"
    for mm: .ds cov*new-date \\n[dy] \\*[MO\\n[mo]] \\n[year]\"
    for me: .ds td \n(dy \*(mo \n(y4\"

Other date formats can be handled similarly.

Note: For the mm package, in the 'ISODATE' macro, only the first
definition of 'cov*new-date' must be changed (see 'fr.tmac').
