.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.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. \*(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-
.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" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "Date::Manip::Lang 3"
.TH Date::Manip::Lang 3 "2021-03-01" "perl v5.26.3" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Date::Manip::Lang \- language support for Date::Manip
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Date::Manip supports a number of different languages when
parsing dates, and more can be added.
.SH "CURRENT LANGUAGES"
.IX Header "CURRENT LANGUAGES"
Currently, the following languages are supported by Date::Manip.
The version of Date::Manip where they were added is included (so
you can see the minimum version of Date::Manip needed to parse
each).
.PP
The language can be chosen by setting the Language config
variable to the name of the language or any of the aliases
included in the table.
.PP
All names and aliases are case insensitive.
.PP
.Vb 1
\& Language Version Aliases
\&
\& English default en, en_us
\&
\& Catalan 5.43 ca
\& Danish 5.41 da
\& Dutch 5.32 Nederlands, nl
\& Finnish 6.31 fi, fi_fi
\& French 5.02 fr, fr_fr
\& German 5.31 de, de_de
\& Italian 5.35 it, it_it
\& Norwegian 6.21 nb, nb_no
\& Polish 5.32 pl, pl_pl
\& Portuguese 5.34 pt, pt_pt
\& Romanian 5.35 ro, ro_ro
\& Russian 5.41 ru, ru_ru
\& Spanish 5.33 es, es_es
\& Swedish 5.05 sv
\& Turkish 5.41 tr, tr_tr
.Ve
.SH "ADDING A LANGUAGE"
.IX Header "ADDING A LANGUAGE"
Adding a language is easily done (if you're fluent in both English
and the other language). If you want to add a new language, do the
following:
.IP "Language name" 4
.IX Item "Language name"
When you submit the new language, I'll need the name of the
language (of course) and any common locale names that might
be useful for people to select the language.
.Sp
For example, if you were creating a Spanish translation (which is not
necessary since it already exists), I would need the following list:
.Sp
.Vb 1
\& spanish es es_es
.Ve
.IP "Copy the english module" 4
.IX Item "Copy the english module"
Copy the english.pm file (which is in lib/Date/Manip/Lang in the
Date::Manip distribution) to the new language (i.e. spanish.pm in
this example).
.IP "Set some variables in the new module" 4
.IX Item "Set some variables in the new module"
The new module (spanish.pm) will need a few simple modifications.
Change the package name from 'english' to 'spanish'.
.Sp
Fix the \f(CW@Encodings\fR lines. Most languages can be written in more
than one encoding. The first encoding in the list should be utf\-8
and the last should be perl. Include any other encodings that
should be supported as well.
.Sp
Set the \f(CW$YearAdded\fR and \f(CW$LangName\fR appropriately.
.IP "Translate the language terms" 4
.IX Item "Translate the language terms"
The data section of the module is fairly straightforward to translate.
.Sp
Every term is defined in the Date::Manip::Lang::english document
(or in any of the other language module documents), so please
refer to it to find out what each element means. Then replace the
English version with the new translation.
.Sp
There are some requirements:
.Sp
1) Every element should be defined (except for the sephm and sepms
elements which are optional).
.Sp
2) The module must be written using \s-1UTF\-8\s0 characters if the language
includes any non-ASCII characters.
.Sp
3) Each element includes a list of values (different variations of the
element). In most cases, the order of the values for each element is
not important since they are just used to create a regular expression
for parsing dates, but a few of them are also used to determine printable
values using the \f(CW\*(C`Date::Manip::Date::printf\*(C'\fR method (or the \f(CW\*(C`UnixDate\*(C'\fR
function). These elements are:
.Sp
.Vb 1
\& Element printf directive
\&
\& ampm %p
\& day_abb %a
\& day_char %v
\& day_name %A
\& month_abb %b
\& month_name %B
\& nth %E
.Ve
.Sp
For each of these, the value that should be printed out must be the
first value in the list.
.Sp
4) When possible, if a language includes characters that are
essentially \s-1ASCII\s0 characters with a punctuation mark, please include a
variation of the value which is just \s-1ASCII\s0 with the punctuation
removed. For example, the spanish name for Saturday in \s-1ASCII\s0 would be
written sabado, but in reality, the first 'a' has an accent over
it. This word should appear twice... first in full \s-1UTF\-8\s0 encoding, and
second as all \s-1ASCII.\s0 If the language (Russian for example) has no
\&\s-1ASCII\s0 equivalent, just include the \s-1UTF\-8\s0 representation.
.PP
Feel free to contact me if you have any questions.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Date::Manip \- main module documentation
.SH "LICENSE"
.IX Header "LICENSE"
This script is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
.SH "AUTHOR"
.IX Header "AUTHOR"
Sullivan Beck (sbeck@cpan.org)