Date::Manip::Lang — language support for Date::Manip
| Use Case | Command | Description |
|---|---|---|
| 🌐 Set language | Date::Manip::Config->set("Language","french") | Choose a language for date parsing |
| 🌍 List available languages | Date::Manip::Lang->new("french") | Instantiate a language module |
| ➕ Add a new language | copy english.pm to spanish.pm | Copy the English module as a template |
| 🔤 Format dates | printf("%B", $date) | Use printf directives for month names, etc. |
| 🔍 Parse dates | Date::Manip::Date->new("lundi 1 janvier 2024") | Parse dates in the selected language |
Date::Manip supports a number of different languages when parsing dates, and more can be added.
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).
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.
All names and aliases are case insensitive.
| 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 |
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:
When you submit the new language, you'll need the name of the language (of course) and any common locale names that might be useful for people to select the language.
For example, if you were creating a Spanish translation (which is not necessary since it already exists), you would need the following list:
spanish es es_es
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).
The new module (spanish.pm) will need a few simple modifications.
english to spanish.@Encodings 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.$YearAdded and $LangName appropriately.The data section of the module is fairly straightforward to translate.
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.
There are some requirements:
sephm and sepms elements which are optional).Date::Manip::Date::printf method (or the UnixDate function). These elements are:| Element | printf directive |
|---|---|
ampm | %p |
day_abb | %a |
day_char | %v |
day_name | %A |
month_abb | %b |
month_name | %B |
nth | %E |
For each of these, the value that should be printed out must be the first value in the list.
sabado, but in reality, the first 'a' has an accent over it. This word should appear twice... first in full UTF-8 encoding, and second as all ASCII. If the language (Russian for example) has no ASCII equivalent, just include the UTF-8 representation.Feel free to contact me if you have any questions.
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Sullivan Beck (sbeck@cpan.org)
perl v5.32.1 2021-11-20 Date::Manip::Lang(3pm)
Generated by phpman v4.9.26-5-g7740029 Author: Che Dong Under GNU General Public License
2026-08-25 04:58 @216.73.216.179
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)