Implements language tags per RFC 3066. Language tags let you specify a certain language that you'll use in a segment of text or code. I18N::LangTags lets you perform a number of common tasks with language tasks that you might come across when dealing with different protocols and applications.
I18N::LangTags is shipped with the Perl 5.8 source kit. It implements the following methods.
alternate_language_tags |
alternate_language_tags(language)
Returns all language tags that are alternate forms of language:
alternate_language_tags('en'); # Returns () alternate_language_tags('he'); # Returns ('iw') alternate_language_tags('iw'); # Returns ('he')
encode_language_tag |
encode_language_tag(language)
Returns the encoding of a language tag. Returns undef if language is invalid.
extract_language_tags |
extract_language_tags(source)
Returns a list of what is perceived as valid language tags from source. For example:
my $chewbacca_dialect = 'growl, growl, fr, growl, growl!'; extract_language_tags($chewbacca_dialect); # Returns 'fr' Chewbacca is French?! Say it isn't so!
is_dialect_of |
is_dialect_of(lang1, lang2)
Returns true if lang1 represents a form of lang2. It doesn't go both ways, so make sure that lang1 comes first.
is_dialect_of('en-US', 'en'); # true is_dialect_of('en', 'en-US'); # false
is_language_tag |
is_language_tag(language)
Returns true if language is a valid language tag. For example:
my $gutteral = 'Chewbacca'; is_language_tag($gutteral); # false my $pourquois = 'fr'; is_language_tag($pourquois); # true
locale2language_tag |
locale2language_tag(locale)
Takes a locale name and maps it to a language tag. Certain tags aren't mappable, such as C or POSIX, in which case local2language_tag will return an empty list.
locale2language_tag('en'); # Returns 'en' locale2language_tag('POSIX'); # Returns undef or ()
same_language_tag |
same_language_tag(lang1, lang2)
Returns true if lang1 and lang2 both represent the same language form. For example:
same_language_tag('en', 'en-US'); # Returns false en != en-US
similarity_language_tag |
similarity_language_tag(lang1, lang2)
Returns an integer that represents the degree of similarity between lang1 and lang2:
similarity_language_tag('fr', 'fr-ca'); # 1 similarity_language_tag('fr', 'en-US'); # 0
super_languages |
super_languages(language)
Returns a list of language tags that are superordinate to language:
super_languages('en-US'); # Gets 'en' super_languages('en'); # Gets an empty list
Copyright © 2002 O'Reilly & Associates. All rights reserved.