# Copyright (c) 1995-2009 Sullivan Beck. All rights reserved. # This program is free software; you can redistribute it and/or modify it # under the same terms as Perl itself. =pod =head1 NAME Date::Manip::Lang - date manipulation routines (language initialization) =head1 DESCRIPTION This module is a series of routines, one per language, used to initialize the support for different languages in Date::Manip =head1 ADDING A LANGUAGE Adding a language is easily done. If you want to add a language, refer to the list of words and phrases given below. Translate them into the desired language and email them to me. Note that Date::Manip does support international character sets, so if there are non-ASCII characters in the words, it's not a problem. Be sure to include an ASCII representation as well that can be used in cases where non-ASCII characters might cause problems. In many cases, alternate spellings are allowed, and there may be multiple words or phrases which fit, so please include all of them (with ASCII representations for any that include non-ASCII characters). Please translate ALL of the following. In some cases, a phrase is given in parentheses. It is not necessary to translate the phrase. They're there to show the word in the correct context. month names (January February ...) abbreviations (Jan Feb ...) day name (Monday Tuesday ... Sunday) abbreviation (Mon Tue ... Sun) short abbrev. (M T ... S) number suffix (1st 2nd ... 31st) spelled out (first second ... thirty-first now today tomorrow yesterday last (last day of the month) each (each Tuesday of the month) of (first day of the week) at (at 3:00) on (on Tuesday) next (next Tuesday) last (last Tuesday) exactly (in exactly 3 hours) approximately (in approximately 3 hours) business (in 4 business days) Some times of the day are named. At the very least, there is probably noon and midnight. Provide all named times, and the time of day. noon 12:00:00 midnight 00:00:00 The delta field names can be written or abbreviated in many differet ways. Provide all names and abbreviations for the seven fields. For example: years/year/yrs/yr/y months/month/mon weeks/week/wk/wks/w days/day/d hours/hour/hr/hrs minutes/minute/min/mn seconds/second/sec/s What words/phrases can be used to say that a time is in the future? E.g. IN 3 hours 3 hours LATER 3 hours IN THE FUTURE In the past? 3 hours AGO 3 hours PAST Does the language have an equivalent of the English AM/PM? If so, what are all possible values of each? Other than a comma or period, are there any common integer/decimal separators? For example: 1.25 can be expressed as 1.25 or 1,25 commonly. Are there any other ways? When expressing time the hours/minutes and minutes/seconds are typically separated by colons. Are there any other separators? If so, what combinations of the separators are used in real life? For example: 05h30:00. =head1 AUTHOR Sullivan Beck (sbeck@cpan.org) You can always get the newest beta version of Date::Manip (which may fix problems in the current CPAN version... and may add others) from my home page: http://www.cise.ufl.edu/~sbeck/ =cut # $hashref = _Date_Init_LANGUAGE; # This returns a hash containing all of the initialization for a # specific language. The hash elements are: # # @ month_name full month names January February ... # @ month_abb month abbreviations Jan Feb ... # @ day_name day names Monday Tuesday ... # @ day_abb day abbreviations Mon Tue ... # @ day_char day character abbrevs M T ... # @ am AM notations # @ pm PM notations # # @ num_suff number with suffix 1st 2nd ... # @ num_word numbers spelled out first second ... # # $ now words which mean now now ... # $ today words which mean today today ... # $ last words which mean last last final ... # $ each words which mean each each every ... # $ of of (as in a member of) in of ... # ex. 4th day OF June # $ at at 4:00 at # $ on on Sunday on # $ future in the future in # $ past in the past ago # $ next next item next # $ prev previous item last previous # $ later 2 hours later # # % offset a hash of special dates { tomorrow->0:0:0:1:0:0:0 } # % times a hash of times { noon->12:00:00 ... } # # $ years words for year y yr year ... # $ months words for month # $ weeks words for week # $ days words for day # $ hours words for hour # $ minutes words for minute # $ seconds words for second # # $ exact exact mode exactly # $ approx approximate mode approximately # $ business business mode business # # r sephm hour/minute separator (?::) # r sepms minute/second separator (?::) # r sepss second/fraction separator (?:[.:]) # # Elements marked with an asterix (@) are returned as a set of lists. # Each list contains the strings for each element. The first set is used # when the 7-bit ASCII (US) character set is wanted. The 2nd set is used # when an international character set is available. Both of the 1st two # sets should be complete (but the 2nd list can be left empty to force the # first set to be used always). The 3rd set and later can be partial sets # if desired. # # Elements marked with a dollar ($) are returned as a simple list of words. # # Elements marked with a percent (%) are returned as a hash list. # # Elements marked with (r) are regular expression elements which must not # create a back reference. # # ***NOTE*** Every hash element (unless otherwise noted) MUST be defined in # every language. # Explain the the first word should be ASCII, the second word the preferred # international character set version