CGI-Lingua
view release on metacpan or search on metacpan
my $l = CGI::Lingua->new({ supported => ['fr', 'en-gb']} );
If the script is not being run in a CGI environment, perhaps to debug it, the
locale is used via the LANG environment variable.
## preferred\_language
Same as language().
## name
Synonym for language, for compatibility with Local::Object::Language
## sublanguage
Tells the CGI what variant to use e.g. 'United Kingdom', or 'Unknown' if
it can't be determined.
Sublanguages are handled sensibly, so that if a client requests U.S. English
on a site that only serves British English, sublanguage() will return undef.
## language\_code\_alpha2
Gives the two-character representation of the supported language, e.g. 'en'
when you've asked for en-gb.
If none of the requested languages is included within the supported lists,
language\_code\_alpha2() returns undef.
## code\_alpha2
Synonym for language\_code\_alpha2, kept for historical reasons.
## sublanguage\_code\_alpha2
Gives the two-character representation of the supported language, e.g. 'gb'
when you've asked for en-gb, or undef.
## requested\_language
Gives a human-readable rendition of what language the user asked for whether
or not it is supported.
Returns the sublanguage (if appropriate) in parentheses,
e.g. "English (United Kingdom)"
## country
Returns the two-character country code of the remote end in lowercase.
If [IP::Country](https://metacpan.org/pod/IP%3A%3ACountry), [Geo::IPfree](https://metacpan.org/pod/Geo%3A%3AIPfree) or [Geo::IP](https://metacpan.org/pod/Geo%3A%3AIP) is installed,
CGI::Lingua will make use of that, otherwise, it will do a Whois lookup.
If you do not have any of those installed I recommend you use the
caching capability of CGI::Lingua.
## locale
HTTP doesn't have a way of transmitting a browser's localisation information
which would be useful for default currency, date formatting, etc.
This method attempts to detect the information, but it is a best guess
and is not 100% reliable. But it's better than nothing ;-)
Returns a [Locale::Object::Country](https://metacpan.org/pod/Locale%3A%3AObject%3A%3ACountry) object.
To be clear, if you're in the US and request the language in Spanish,
and the site supports it, language() will return 'Spanish', and locale() will
try to return the Locale::Object::Country for the US.
## time\_zone
Returns the timezone of the web client.
If [Geo::IP](https://metacpan.org/pod/Geo%3A%3AIP) is installed,
CGI::Lingua will make use of that, otherwise it will use [ip-api.com](https://metacpan.org/pod/ip-api.com)
# AUTHOR
Nigel Horne, `<njh at nigelhorne.com>`
# BUGS
Please report any bugs or feature requests to the author.
If HTTP\_ACCEPT\_LANGUAGE is 3 characters, e.g., es-419,
sublanguage() returns undef.
Please report any bugs or feature requests to `bug-cgi-lingua at rt.cpan.org`,
or through the web interface at
[http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CGI-Lingua](http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CGI-Lingua).
I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
Uses [I18N::Acceptlanguage](https://metacpan.org/pod/I18N%3A%3AAcceptlanguage) to find the highest priority accepted language.
This means that if you support languages at a lower priority, it may be missed.
# SEE ALSO
- Testing Dashboard [https://nigelhorne.github.io/CGI-Lingua/coverage/](https://nigelhorne.github.io/CGI-Lingua/coverage/)
- VWF - Versatile Web Framework [https://github.com/nigelhorne/vwf](https://github.com/nigelhorne/vwf)
- [HTTP::BrowserDetect](https://metacpan.org/pod/HTTP%3A%3ABrowserDetect)
- [I18N::AcceptLangauge](https://metacpan.org/pod/I18N%3A%3AAcceptLangauge)
- [Locale::Country](https://metacpan.org/pod/Locale%3A%3ACountry)
# SUPPORT
This module is provided as-is without any warranty.
You can find documentation for this module with the perldoc command.
perldoc CGI::Lingua
You can also look for information at:
- MetaCPAN
[https://metacpan.org/release/CGI-Lingua](https://metacpan.org/release/CGI-Lingua)
- RT: CPAN's request tracker
[https://rt.cpan.org/NoAuth/Bugs.html?Dist=CGI-Lingua](https://rt.cpan.org/NoAuth/Bugs.html?Dist=CGI-Lingua)
( run in 1.380 second using v1.01-cache-2.11-cpan-5735350b133 )