NAME
HTTP::AcceptLanguage - Accept-Language header parser and find available language
HOW DO I USE THIS MODULE WITH
WITH CGI.pm
use HTTP::AcceptLanguage;
my $lang = HTTP::AcceptLanguage->new($ENV{HTTP_ACCEPT_LANGUAGE})->match(qw/ en fr es ja zh-tw /);
WITH raw PSGI
use HTTP::AcceptLanguage;
my $lang = HTTP::AcceptLanguage->new($env->{HTTP_ACCEPT_LANGUAGE})->match(qw/ en fr es ja zh-tw /);
WITH Plack::Request
use HTTP::AcceptLanguage;
my $lang = HTTP::AcceptLanguage->new($req->header('Accept-Language'))->match(qw/ en fr es ja zh-tw /);
SYNOPSIS
Good example of the input and output.
# If language quality is the same then order by match method's input list
my $accept_language = HTTP::AcceptLanguage->new('en;q=0.5, ja;q=0.1');
$accept_language->match(qw/ th da ja /); # -> ja
$accept_language->match(qw/ en ja /); # -> en
my $accept_language = HTTP::AcceptLanguage->new('en, da');
$accept_language->match(qw/ da en /); # -> da
$accept_language->match(qw/ en da /); # -> en
You can obtain the order of preference of the available languages list of client
my $accept_language = HTTP::AcceptLanguage->new('en, ja;q=0.3, da;q=1, *;q=0.29, ch-tw');
$accept_language->languages; # -> en, da, ch-tw, ja, *
DESCRIPTION
HTTP::AcceptLanguage is HTTP Accept-Language header parser And you can find available language by Accept-Language header.
METHODS
new($ENV{HTTP_ACCEPT_LANGUAGE})
It to specify a string of Accept-Language header.
match(@available_language)
By your available language list, returns the most optimal language.
If language quality is the same, the order of the input list takes precedence.
languages
Returns are arranged in order of quality language list parsed.
AUTHOR
Kazuhiro Osawa <yappo {at} shibuya {dot} pl>
COPYRIGHT
Copyright 2013- Kazuhiro Osawa
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
RFC2616, I18N::AcceptLanguage