.\" Automatically generated by Pod::Man version 1.15
.\" Wed May 5 11:41:32 2004
.\"
.\" Standard preamble:
.\" ======================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used
.\" to do unbreakable dashes and therefore won't be available. \*(C` and
.\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr
.\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
.\" index entries marked with X<> in POD. Of course, you'll have to process
.\" the output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it
.\" makes way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
.bd B 3
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ======================================================================
.\"
.IX Title "ic_i18n 8"
.TH ic_i18n 8 "Interchange 5.2.0" "2004-05-05" "Interchange"
.UC
.SH "NAME"
ic_i18n \- Interchange I18N Features
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
.SH "Internationalization"
.IX Header "Internationalization"
Interchange has a rich set of internationalization (I18N) features
that allow conditional message display, differing price formats,
different currency definitions, price factoring, sorting, and other
settings. The definitions are maintained in the catalog.cfg file
through the use of built-in \s-1POSIX\s0 support and Interchange's Locale
directive. All settings are independent for each catalog and each user
visiting that catalog, since customers can access the same catalog in
an unlimited number of languages and currencies.
.Sh "Configuring the Locale"
.IX Subsection "Configuring the Locale"
It is recommended to use the ScratchDefault directive for setting
the catalog's default locale:
.PP
.Vb 1
\& ScratchDefault mv_locale de_DE
.Ve
.Sh "Setting the Locale"
.IX Subsection "Setting the Locale"
The locale could be set to fr_FR (French for France) in one of two
ways:
.Ip "[setlocale locale=locale* currency=locale* persist=1*]" 4
.IX Item "[setlocale locale=locale* currency=locale* persist=1*]"
Immediately sets the locale to locale, and will cause it to persist
in future user pages if the persist is set to a non-zero, non-blank
value. If the currency attribute is set, the pricing and
currency-specific locale keys and Interchange configuration directives
are modified to that locale. If there are no arguments, it sets it
back to the user's default locale as defined in the scratch variables
mv_locale and mv_currency.
.Sp
This allows:
.Sp
.Vb 5
\& Dollar Pr
\& [setlocale en_US]
\& [item-list]
\& [item-code]: [item-price]
\& [/item-list]
.Ve
.Vb 1
\& Franc Pricing:
.Ve
.Vb 4
\& [setlocale fr_FR]
\& [item-list]
\& [item-code]: [item-price]
\& [/item-list]
.Ve
.Vb 2
\& [comment] Return to the user's default locale [/comment]
\& [setlocale]
.Ve
cing:
.Ip "[page process/locale/fr_FR/page/catalog]" 4
.IX Item "[page process/locale/fr_FR/page/catalog]"
This is the same as [page catalog], except when the link is
followed it will set the locale to fr_FR before displaying the
page. This is persistent.
.Ip "[page process/locale/fr_FR/currency/en_US/page/catalog]" 4
.IX Item "[page process/locale/fr_FR/currency/en_US/page/catalog]"
This is the same as [page catalog], except when the link is
followed it will set the locale to fr_FR and the pricing/number
display to the locale en_US before displaying the page. This is
persistent.
.PP
Once the locale is persistently set for a user, it is in effect for
the duration of their session.
.Sh "Interchange Locale Settings"
.IX Subsection "Interchange Locale Settings"
The Locale directive has many possible settings that allow complete
internationalization of page sets and currencies. The Locale
directive is defined in a series of key/value pairs with a key that
contains word characters only being followed by a value. The value
must be enclosed in double quotes if it contains whitespace. In this
example, the key is Value setting.
.PP
.Vb 2
\& Locale fr_FR "Value setting" "Configuration de valeur"
\& Locale de_DE "Value setting" Werteinstellung
.Ve
When accessed using the special tag [L]Value setting[/L], the value
Configuration de valeur will be displayed \fBonly\fR if the locale is
set to fr_FR. If the locale is set to de_DE, the string
Werteinstellung will be displayed. If it is neither, the default
value of Value setting will be displayed.
.PP
The [L] and [/L] must be capitalized. This is done for speed of
processing as well as easy differentiation in text.
.PP
Another, way to do this is right in the page. The [\s-1LC\s0] ... [/LC]
pragma pair permits specification of locale-dependent text.
.PP
.Vb 5
\& [LC]
\& This is the default text.
\& [fr_FR] Text for the fr_FR locale. [/fr_FR]
\& [de_DE] Text for the de_DE locale. [/de_DE]
\& [/LC]
.Ve
You can also place an entirely new page in place of the default one if
the locale key is defined. When a locale is in force, and a key named
HTMLsuffix is set to that locale, Interchange first looks for a
page with a suffix corresponding to the locale. For example:
.PP
Catalog home page
.PP
If a page index.html exists, it will be the default. If the current
locale is fr_FR, a page \*(L"index.fr_FR\*(R" exists, and Locale looks
like this:
.PP
.Vb 1
\& Locale fr_FR HTMLsuffix .fr_FR
.Ve
Then, the .fr_FR page will be used instead of the .html page.
For a longer series of strings, the configuration file recognizes:
.PP
.Vb 4
\& Locale fr_FR <