NAME¶
I18N::AcceptLanguage - Matches language preference to available languages
SYNOPSIS¶
use I18N::AcceptLanguage;
my $supportedLanguages = [( 'en-us', 'fr' )];
my $acceptor = I18N::AcceptLanguage->new();
my $language = $acceptor->accepts($ENV{HTTP_ACCEPT_LANGUAGE},
$supportedLanguages);
DESCRIPTION¶
I18N::AcceptLanguage matches language preference to available languages
per rules defined in RFC 2616, section 14.4: HTTP/1.1 - Header Field
Definitions - Accept-Language.
PUBLIC METHODS¶
- accepts( CLIENT_PREFERENCES, SUPPORTED_LANGUAGES )
- Returns the highest priority common language between client
and server. If no common language is found, the defaultLanguage is
returned. If defaultLanuage is also not set, an empty string is returned.
The method expects two arguments:
- CLIENT_PREFERENCES
- A string in the same format defined in RFC 2616, quoted
here:
1#( ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" ) [ "'" "q" "=" qvalue ] )
Examples:
da, en-gb;q=0.8, en;q=0.7
en-us, ja, *
- SUPPORTED_LANGUAGES
- A reference to a list of language ranges supported by the
server.
- new( [ OPTIONS ] )
- Returns a new I18N::AcceptLanguage object. The method
accepts the following key/value pair options:
- debug
- A boolean set to either 0 or 1. When set to 1, debug
messages will be printed to STDOUT. The value of debug defaults to 0.
- defaultLanguage
- A string representing the server's default language choice.
The value of defaultLanguage defaults to an empty string.
- strict
- A boolean set to either 0 or 1. When set to 1, the software
strictly conforms to the protocol specification. When set to 0, the
software will perform a secondary, aggressive language match regardless of
country (ie, a client asking for only en-gb will get back en-us if the
server does not accept en-gb or en but does accept en-us). The last
matching language in the supported languages list will be chosen. The
value of strict defaults to 1.
PRIVATE METHODS¶
- debug( [ BOOLEAN ] )
- A get/set method that returns the value of debug, set by
the optional method argument.
- defaultLanguage( [ LANGUAGE ] )
- A get/set method that returns the value of defaultLanguage,
set by the optional method argument.
- strict( [ BOOLEAN ] )
- A get/set method that returns the value of strict, set by
the optional method argument.
NOTES¶
- Case Sensitivity
- Language matches are done in a case-insensitive manner but
results are case-sensitive to the value found in the SUPPORTED_LANGUAGES
list.
AVAILABILITY¶
This module is available on CPAN worldwide and requires perl version 5.6.1 or
higher be installed.
AUTHORS¶
Christian Gilmore <cag@us.ibm.com>
SEE ALSO¶
RFC 2616
COPYRIGHT¶
Copyright (C) 2003, 2004 International Business Machines Corporation and others.
All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the
terms of the IBM Public License.