This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Locale-Codes to CPAN version 3.20
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Thu, 1 Dec 2011 14:32:01 +0000 (14:32 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Thu, 1 Dec 2011 15:47:42 +0000 (15:47 +0000)
  [DELTA]

  VERSION 3.20 (2011-12-01)

  NEW CODE(s)

  Added limited support for deprecated codes

    The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions now support retired codes. RT 71124

  Fixed capitalization

    The 'South Sudan' country was all caps. RT 71024

  Pod tests off by default

    The pod tests will not run at install time. RT 71122

  Codesets may be specified by name

    All codesets may be specified by a constant or by their name now. Previously, they were specified only by a constant.

  alias_code deprecated

    The alias_code function exists for backward compatibility. It has been replaced by rename_country_code.
    The alias_code function will be removed sometime after September, 2013.

  Code cleanup

    All work is now done in the central module (Locale::Codes). Previously, some was still
    done in the wrapper modules (Locale::Codes::*) but that is gone now.

  Added LangFam module

    Added Language Family codes (langfam) as defined in ISO 639-5.

51 files changed:
MANIFEST
cpan/Locale-Codes/lib/Locale/Codes.pm
cpan/Locale-Codes/lib/Locale/Codes.pod
cpan/Locale-Codes/lib/Locale/Codes/API.pod
cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
cpan/Locale-Codes/lib/Locale/Codes/Constants.pm
cpan/Locale-Codes/lib/Locale/Codes/Country.pm
cpan/Locale-Codes/lib/Locale/Codes/Country.pod
cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Currency.pm
cpan/Locale-Codes/lib/Locale/Codes/Currency.pod
cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm
cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod
cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm
cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod
cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Language.pm
cpan/Locale-Codes/lib/Locale/Codes/Language.pod
cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Codes/Script.pm
cpan/Locale-Codes/lib/Locale/Codes/Script.pod
cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm [new file with mode: 0644]
cpan/Locale-Codes/lib/Locale/Country.pm
cpan/Locale-Codes/lib/Locale/Country.pod
cpan/Locale-Codes/lib/Locale/Currency.pm
cpan/Locale-Codes/lib/Locale/Currency.pod
cpan/Locale-Codes/lib/Locale/Language.pm
cpan/Locale-Codes/lib/Locale/Language.pod
cpan/Locale-Codes/lib/Locale/Script.pm
cpan/Locale-Codes/lib/Locale/Script.pod
cpan/Locale-Codes/t/code2country.t
cpan/Locale-Codes/t/code2langext.t
cpan/Locale-Codes/t/code2langfam.t [new file with mode: 0644]
cpan/Locale-Codes/t/code2langvar.t
cpan/Locale-Codes/t/country2code.t
cpan/Locale-Codes/t/langext2code.t
cpan/Locale-Codes/t/langfam2code.t [new file with mode: 0644]
cpan/Locale-Codes/t/langvar2code.t
pod/perldelta.pod

index eeadfa9..d9f462f 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1532,23 +1532,33 @@ cpan/Locale-Codes/lib/Locale/Codes/Constants.pod        Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm    Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Country.pm  Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Country.pod Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm  Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm   Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Currency.pm Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Currency.pod        Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm    Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm  Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm  Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm    Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm  Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm  Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm   Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Language.pm Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Language.pod        Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm    Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm  Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm  Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes.pm          Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes.pod         Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm     Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Script.pm   Locale::Codes
 cpan/Locale-Codes/lib/Locale/Codes/Script.pod  Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm   Locale::Codes
 cpan/Locale-Codes/lib/Locale/Country.pm                Locale::Codes
 cpan/Locale-Codes/lib/Locale/Country.pod       Locale::Codes documentation
 cpan/Locale-Codes/lib/Locale/Currency.pm       Locale::Codes
@@ -1565,6 +1575,7 @@ cpan/Locale-Codes/t/code2country_old.t    Locale::Codes tests
 cpan/Locale-Codes/t/code2country.t             Locale::Codes tests
 cpan/Locale-Codes/t/code2currency.t            Locale::Codes tests
 cpan/Locale-Codes/t/code2langext.t     Locale::Codes tests
+cpan/Locale-Codes/t/code2langfam.t     Locale::Codes tests
 cpan/Locale-Codes/t/code2language.t            Locale::Codes tests
 cpan/Locale-Codes/t/code2langvar.t     Locale::Codes tests
 cpan/Locale-Codes/t/code2script.t              Locale::Codes tests
@@ -1577,6 +1588,7 @@ cpan/Locale-Codes/t/country.t                     Locale::Codes tests
 cpan/Locale-Codes/t/currency2code_old.t        Locale::Codes tests
 cpan/Locale-Codes/t/currency2code.t            Locale::Codes tests
 cpan/Locale-Codes/t/langext2code.t     Locale::Codes tests
+cpan/Locale-Codes/t/langfam2code.t     Locale::Codes tests
 cpan/Locale-Codes/t/language2code.t            Locale::Codes tests
 cpan/Locale-Codes/t/language_old.t     Locale::Codes tests
 cpan/Locale-Codes/t/language.t                 Locale::Codes tests
index fc7e224..7ff28f0 100644 (file)
@@ -10,6 +10,7 @@ use warnings;
 require 5.002;
 
 use Carp;
+use Locale::Codes::Constants;
 
 #=======================================================================
 #       Public Global Variables
@@ -18,7 +19,7 @@ use Carp;
 # This module is not called directly... %Data is filled in by the
 # calling modules.
 
-our($VERSION,%Data);
+our($VERSION,%Data,%Retired);
 
 # $Data{ TYPE }{ code2id   }{ CODESET } { CODE }  = [ ID, I ]
 #              { id2code   }{ CODESET } { ID }    = CODE
@@ -26,17 +27,71 @@ our($VERSION,%Data);
 #              { alias2id  }{ NAME }              = [ ID, I ]
 #              { id        }                      = FIRST_UNUSED_ID
 #              { codealias }{ CODESET } { ALIAS } = CODE
+#
+# $Retired{ TYPE }{ CODESET }{ code }{ CODE } = NAME
+#                            { name }{ NAME } = [CODE,NAME]  (the key is lowercase)
 
-$VERSION='3.18';
+$VERSION='3.20';
 
 #=======================================================================
 #
-# _code2name ( TYPE,CODE,CODESET )
+# _code ( TYPE,CODE,CODESET )
 #
 #=======================================================================
 
-sub _code2name {
+sub _code {
+   return 1  if (@_ > 3);
+
    my($type,$code,$codeset) = @_;
+   $code = ''  if (! $code);
+
+   # Determine the codeset
+
+   $codeset = $ALL_CODESETS{$type}{'default'}
+     if (! defined($codeset)  ||  $codeset eq '');
+   $codeset = lc($codeset);
+   return 1  if (! exists $ALL_CODESETS{$type}{'codesets'}{$codeset});
+   return (0,$code,$codeset)  if (! $code);
+
+   # Determine the properties of the codeset
+
+   my($op,@args) = @{ $ALL_CODESETS{$type}{'codesets'}{$codeset} };
+
+   if      ($op eq 'lc') {
+      $code = lc($code);
+
+   } elsif ($op eq 'uc') {
+      $code = uc($code);
+
+   } elsif ($op eq 'ucfirst') {
+      $code = ucfirst(lc($code));
+
+   } elsif ($op eq 'numeric') {
+      return (1)  unless ($code =~ /^\d+$/);
+      my $l = $args[0];
+      $code    = sprintf("%.${l}d", $code);
+   }
+
+   return (0,$code,$codeset);
+}
+
+#=======================================================================
+#
+# _code2name ( TYPE,CODE [,CODESET] [,'retired'] )
+#
+#=======================================================================
+
+sub _code2name {
+   my($type,@args)         = @_;
+   my $retired             = 0;
+   if (@args > 0  &&  $args[$#args]  &&  $args[$#args] eq 'retired') {
+      pop(@args);
+      $retired             = 1;
+   }
+
+   my($err,$code,$codeset) = _code($type,@args);
+   return undef  if ($err  ||
+                     ! defined $code);
 
    $code = $Data{$type}{'codealias'}{$codeset}{$code}
      if (exists $Data{$type}{'codealias'}{$codeset}{$code});
@@ -46,37 +101,47 @@ sub _code2name {
       my ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
       my $name    = $Data{$type}{'id2names'}{$id}[$i];
       return $name;
+
+   } elsif ($retired  &&  exists $Retired{$type}{$codeset}{'code'}{$code}) {
+      return $Retired{$type}{$codeset}{'code'}{$code};
+
    } else {
-      #---------------------------------------------------------------
-      # no such code!
-      #---------------------------------------------------------------
       return undef;
    }
 }
 
 #=======================================================================
 #
-# _name2code ( TYPE,NAME,CODESET )
+# _name2code ( TYPE,NAME [,CODESET] [,'retired'] )
 #
 #=======================================================================
 
 sub _name2code {
-   my($type,$name,$codeset) = @_;
-   $name = ""  if (! $name);
-   $name = lc($name);
+   my($type,$name,@args)   = @_;
+   return undef  if (! $name);
+   $name                   = lc($name);
+
+   my $retired             = 0;
+   if (@args > 0  &&  $args[$#args]  &&  $args[$#args] eq 'retired') {
+      pop(@args);
+      $retired             = 1;
+   }
+
+   my($err,$tmp,$codeset) = _code($type,'',@args);
+   return undef  if ($err);
 
    if (exists $Data{$type}{'alias2id'}{$name}) {
       my $id = $Data{$type}{'alias2id'}{$name}[0];
       if (exists $Data{$type}{'id2code'}{$codeset}{$id}) {
          return $Data{$type}{'id2code'}{$codeset}{$id};
       }
+
+   } elsif ($retired  &&  exists $Retired{$type}{$codeset}{'name'}{$name}) {
+      return $Retired{$type}{$codeset}{'name'}{$name}[0];
    }
 
-   #---------------------------------------------------------------
-   # no such name!
-   #---------------------------------------------------------------
    return undef;
-  }
+}
 
 #=======================================================================
 #
@@ -85,7 +150,15 @@ sub _name2code {
 #=======================================================================
 
 sub _code2code {
-   my($type,$code,$inset,$outset) = @_;
+   my($type,@args) = @_;
+   (@args == 3) or croak "${type}_code2code() takes 3 arguments!";
+
+   my($code,$inset,$outset) = @args;
+   my($err,$tmp);
+   ($err,$code,$inset) = _code($type,$code,$inset);
+   return undef  if ($err);
+   ($err,$tmp,$outset) = _code($type,'',$outset);
+   return undef  if ($err);
 
    my $name    = _code2name($type,$code,$inset);
    my $outcode = _name2code($type,$name,$outset);
@@ -94,31 +167,47 @@ sub _code2code {
 
 #=======================================================================
 #
-# _all_codes ( TYPE,CODESET )
+# _all_codes ( TYPE [,CODESET] [,'retired'] )
 #
 #=======================================================================
 
 sub _all_codes {
-   my($type,$codeset) = @_;
+   my($type,@args)         = @_;
+   my $retired             = 0;
+   if (@args > 0  &&  $args[$#args]  &&  $args[$#args] eq 'retired') {
+      pop(@args);
+      $retired             = 1;
+   }
+
+   my ($err,$tmp,$codeset) = _code($type,'',@args);
+   return ()  if ($err);
 
    if (! exists $Data{$type}{'code2id'}{$codeset}) {
       return ();
    }
    my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} };
+   push(@codes,keys %{ $Retired{$type}{$codeset}{'code'} })  if ($retired);
    return (sort @codes);
 }
 
 #=======================================================================
 #
-# _all_names ( TYPE,CODESET )
+# _all_names ( TYPE [,CODESET] [,'retired'] )
 #
 #=======================================================================
 
 sub _all_names {
-   my($type,$codeset) = @_;
+   my($type,@args)         = @_;
+   my $retired             = 0;
+   if (@args > 0  &&  $args[$#args]  &&  $args[$#args] eq 'retired') {
+      pop(@args);
+      $retired             = 1;
+   }
+
+   my ($err,$tmp,$codeset) = _code($type,'',@args);
+   return ()  if ($err);
 
    my @codes = _all_codes($type,$codeset);
-   return ()  if (! @codes);
    my @names;
 
    foreach my $code (@codes) {
@@ -126,6 +215,12 @@ sub _all_names {
       my $name   = $Data{$type}{'id2names'}{$id}[$i];
       push(@names,$name);
    }
+   if ($retired) {
+      foreach my $lc (keys %{ $Retired{$type}{$codeset}{'name'} }) {
+         my $name = $Retired{$type}{$codeset}{'name'}{$lc}[1];
+         push @names,$name;
+      }
+   }
    return (sort @names);
 }
 
@@ -140,7 +235,14 @@ sub _all_names {
 #=======================================================================
 
 sub _rename {
-   my($type,$code,$new_name,$codeset,$nowarn) = @_;
+   my($type,$code,$new_name,@args) = @_;
+
+   my $nowarn   = 0;
+   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
+
+   my $codeset  = shift(@args);
+   my $err;
+   ($err,$code,$codeset) = _code($type,$code,$codeset);
 
    if (! $codeset) {
       carp "rename_$type(): unknown codeset\n"  unless ($nowarn);
@@ -209,7 +311,14 @@ sub _rename {
 #=======================================================================
 
 sub _add_code {
-   my($type,$code,$name,$codeset,$nowarn) = @_;
+   my($type,$code,$name,@args) = @_;
+
+   my $nowarn   = 0;
+   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
+
+   my $codeset  = shift(@args);
+   my $err;
+   ($err,$code,$codeset) = _code($type,$code,$codeset);
 
    if (! $codeset) {
       carp "add_$type(): unknown codeset\n"  unless ($nowarn);
@@ -260,7 +369,14 @@ sub _add_code {
 #=======================================================================
 
 sub _delete_code {
-   my($type,$code,$codeset,$nowarn) = @_;
+   my($type,$code,@args) = @_;
+
+   my $nowarn   = 0;
+   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
+
+   my $codeset  = shift(@args);
+   my $err;
+   ($err,$code,$codeset) = _code($type,$code,$codeset);
 
    if (! $codeset) {
       carp "delete_$type(): unknown codeset\n"  unless ($nowarn);
@@ -317,6 +433,8 @@ sub _delete_code {
 sub _add_alias {
    my($type,$name,$new_name,$nowarn) = @_;
 
+   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
+
    # Check that $name is used and $new_name is new.
 
    my($id);
@@ -356,6 +474,8 @@ sub _add_alias {
 sub _delete_alias {
    my($type,$name,$nowarn) = @_;
 
+   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
+
    # Check that $name is used.
 
    my($id,$i);
@@ -409,7 +529,16 @@ sub _delete_alias {
 #=======================================================================
 
 sub _rename_code {
-   my($type,$code,$new_code,$codeset,$nowarn) = @_;
+   my($type,$code,$new_code,@args) = @_;
+
+   my $nowarn   = 0;
+   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
+
+   my $codeset  = shift(@args);
+   my $err;
+   ($err,$code,$codeset)     = _code($type,$code,$codeset);
+   ($err,$new_code,$codeset) = _code($type,$new_code,$codeset)
+     if (! $err);
 
    if (! $codeset) {
       carp "rename_$type(): unknown codeset\n"  unless ($nowarn);
@@ -481,7 +610,16 @@ sub _rename_code {
 #=======================================================================
 
 sub _add_code_alias {
-   my($type,$code,$new_code,$codeset,$nowarn) = @_;
+   my($type,$code,$new_code,@args) = @_;
+
+   my $nowarn   = 0;
+   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
+
+   my $codeset  = shift(@args);
+   my $err;
+   ($err,$code,$codeset)     = _code($type,$code,$codeset);
+   ($err,$new_code,$codeset) = _code($type,$new_code,$codeset)
+     if (! $err);
 
    if (! $codeset) {
       carp "add_${type}_code_alias(): unknown codeset\n"  unless ($nowarn);
@@ -521,7 +659,14 @@ sub _add_code_alias {
 #=======================================================================
 
 sub _delete_code_alias {
-   my($type,$code,$codeset,$nowarn) = @_;
+   my($type,$code,@args) = @_;
+
+   my $nowarn   = 0;
+   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
+
+   my $codeset  = shift(@args);
+   my $err;
+   ($err,$code,$codeset)     = Locale::Codes::_code($type,$code,$codeset);
 
    if (! $codeset) {
       carp "delete_${type}_code_alias(): unknown codeset\n"  unless ($nowarn);
index 5f39258..41f7853 100644 (file)
@@ -14,7 +14,7 @@ Currently, the following modules are included:
 
 =over 4
 
-=item B<Locale::Codes::Country>
+=item B<Locale::Codes::Country, Locale::Country>
 
 This includes support for country codes (such as those listed in ISO-3166)
 to specify the country.
@@ -22,7 +22,7 @@ to specify the country.
 Because this module was originally distributed as Locale::Country, it is
 also available under that name.
 
-=item B<Locale::Codes::Language>
+=item B<Locale::Codes::Language, Locale::Language>
 
 This includes support for language codes (such as those listed in ISO-639)
 to specify the language.
@@ -30,7 +30,7 @@ to specify the language.
 Because this module was originally distributed as Locale::Language, it is
 also available under that name.
 
-=item B<Locale::Codes::Currency>
+=item B<Locale::Codes::Currency, Locale::Currency>
 
 This includes support for currency codes (such as those listed in ISO-4217)
 to specify the currency.
@@ -38,7 +38,7 @@ to specify the currency.
 Because this module was originally distributed as Locale::Currency, it is
 also available under that name.
 
-=item B<Locale::Codes::Script>
+=item B<Locale::Codes::Script, Locale::Script>
 
 This includes support for script codes (such as those listed in ISO-15924)
 to specify the script.
@@ -56,6 +56,11 @@ in the IANA language registry) to specify the language extension.
 This includes support for language variation codes (such as those listed
 in the IANA language registry) to specify the language variation.
 
+=item B<Locale::Codes::LangFam>
+
+This includes support for language family codes (such as those listed
+in ISO 639-5) to specify families of languages.
+
 =back
 
 Each module can support an arbitrary number of code sets, and it it
@@ -96,6 +101,8 @@ in the distribution including:
 
 =item B<Locale::Codes::LangVar_codes>
 
+=item B<Locale::Codes::LangFam_codes>
+
 =back
 
 These modules are not intended to be used by programmers. They contain functions
@@ -198,6 +205,20 @@ removed. Other aliases (if any) which no longer appear in any standard
 (and which are not common variations of the name in the standards)
 have also been removed.
 
+=head1 DEPRECATED CODES
+
+Occasionally, a code is deprecated, but it may still be desirable to
+have access to it.
+
+Although there is no way to see every code that has ever existed and
+been deprecated (since most codesets do not have that information
+available), as of version 3.20, every code which has ever been included
+in these modules can be referenced.
+
+For more information, refer to the documentation on the code2XXX, XXX2code,
+all_XXX_codes, and all_XXX_names function in the B<Locale::Codes::API>
+documentation.
+
 =head1 SEE ALSO
 
 =over 4
index 4874823..36c8baa 100644 (file)
@@ -19,7 +19,7 @@ for the separate modules.
 
 The name of the function depends on the module. For example, every module
 contains a function "code2XXX" where XXX refers to the type of data.
-The values of xxx are described in the following table:
+The values of XXX are described in the following table:
 
    XXX       MODULE
 
@@ -29,6 +29,7 @@ The values of xxx are described in the following table:
    script    Locale::Codes::Script
    langext   Locale::Codes::LangExt
    langvar   Locale::Codes::LangVar
+   langfam   Locale::Codes::LangFAM
 
 So, the Locale::Country module contains the function code2country, the
 Locale::Language module contains the function code2language, etc.
@@ -55,7 +56,7 @@ identical.
 
 =over 4
 
-=item B<code2XXX ( CODE [,CODESET] )>
+=item B<code2XXX ( CODE [,CODESET] [,'retired'] )>
 
 These functions take a code and returns a string which contains
 the name of the element identified.  If the code is not a valid
@@ -76,7 +77,11 @@ B<alpha-3> code set defines the code 'bol' to be the country "Bolivia
    code2country('bol',LOCALE_CODE_ALPHA_3);
       => 'Bolivia (Plurinational State of)'
 
-=item B<XXX2code ( NAME [,CODESET] )>
+By default, only active codes will be used, but if the string
+'retired' is passed in as an argument, both active and retired
+codes will be examined.
+
+=item B<XXX2code ( NAME [,CODESET] [,'retired'] )>
 
 These functions takes the name of an element (or any of it's aliases)
 and returns the code that corresponds to it, if it exists. If NAME
@@ -102,6 +107,10 @@ the alias 'Bolivia'. So:
    country2code('Bolivia',LOCALE_CODE_ALPHA_2);
       => bo
 
+By default, only active names will be used, but if the string
+'retired' is passed in as an argument, both active and retired
+names will be examined.
+
 =item B<XXX_code2code ( CODE ,CODESET ,CODESET2 )>
 
 These functions takes a a code from one code set, and returns the
@@ -115,12 +124,18 @@ Both CODESETs must be explicitly entered.
                      LOCALE_CODE_ALPHA_2);
       => 'fi'
 
-=item B<all_XXX_codes ( [CODESET] )>
+Note that this function does NOT support retired codes.
+
+=item B<all_XXX_codes ( [CODESET] [,'retired'] )>
 
 These returns a list of all code in the code set. The codes will be
 sorted.
 
-=item B<all_XXX_names ( [CODESET] )>
+By default, only active codes will be returned, but if the string
+'retired' is passed in as an argument, both active and retired
+codes will be returned.
+
+=item B<all_XXX_names ( [CODESET] [,'retired'] )>
 
 These return a list of all elements names for which there is a
 corresponding code in the specified code set.
@@ -131,6 +146,10 @@ and are sorted.
 Since not all elements are listed in all code sets, the list of
 elements may differ depending on the code set specified.
 
+By default, only active names will be returned, but if the string
+'retired' is passed in as an argument, both active and retired
+names will be returned.
+
 =back
 
 =head1 SEMI-PRIVATE ROUTINES
@@ -140,6 +159,8 @@ internal data are also available.  Given their status, they aren't
 exported, and so need to be called by prefixing the function name with
 the package name.
 
+These routines do not currently work with retired codes.
+
 =over 4
 
 =item B<MODULE::rename_XXX  ( CODE ,NEW_NAME [,CODESET] )>
index 6446eab..2983b1e 100644 (file)
@@ -22,6 +22,49 @@ September, December). I will also check on request, so if a code
 changes that you use, feel free to contact me.  Any time there are new
 codes, I will add them to the module and release a new version.
 
+=head1 VERSION 3.21
+
+=head1 VERSION 3.20  (2011-12-01)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<Added limited support for deprecated codes>
+
+The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions
+now support retired codes.  RT 71124
+
+=item B<Fixed capitalization>
+
+The 'South Sudan' country was all caps.  RT 71024
+
+=item B<Pod tests off by default>
+
+The pod tests will not run at install time.  RT 71122
+
+=item B<Codesets may be specified by name>
+
+All codesets may be specified by a constant or by their name now.  Previously,
+they were specified only by a constant.
+
+=item B<alias_code deprecated>
+
+The alias_code function exists for backward compatibility.  It has been replaced
+by rename_country_code .  The alias_code function will be removed sometime
+after September, 2013 .
+
+=item B<Code cleanup>
+
+All work is now done in the central module (Locale::Codes).  Previously, some
+was still done in the wrapper modules (Locale::Codes::*) but that is gone now.
+
+=item B<Added LangFam module>
+
+Added Language Family codes (langfam) as defined in ISO 639-5.
+
+=back
+
 =head1 VERSION 3.18  (2011-08-31)
 
 NEW CODE(s)
index e21bef2..67a4c99 100644 (file)
@@ -15,65 +15,110 @@ require Exporter;
 #-----------------------------------------------------------------------
 
 our($VERSION,@ISA,@EXPORT);
+our(%ALL_CODESETS);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA     = qw(Exporter);
 @EXPORT  = qw(LOCALE_CODE_ALPHA_2
               LOCALE_CODE_ALPHA_3
               LOCALE_CODE_NUMERIC
               LOCALE_CODE_FIPS
               LOCALE_CODE_DOM
-              LOCALE_CODE_DEFAULT
 
               LOCALE_LANG_ALPHA_2
               LOCALE_LANG_ALPHA_3
               LOCALE_LANG_TERM
-              LOCALE_LANG_DEFAULT
 
               LOCALE_CURR_ALPHA
               LOCALE_CURR_NUMERIC
-              LOCALE_CURR_DEFAULT
 
               LOCALE_SCRIPT_ALPHA
               LOCALE_SCRIPT_NUMERIC
-              LOCALE_SCRIPT_DEFAULT
 
               LOCALE_LANGEXT_ALPHA
-              LOCALE_LANGEXT_DEFAULT
 
               LOCALE_LANGVAR_ALPHA
-              LOCALE_LANGVAR_DEFAULT
+
+              LOCALE_LANGFAM_ALPHA
+
+              %ALL_CODESETS
             );
 
 #-----------------------------------------------------------------------
 #      Constants
 #-----------------------------------------------------------------------
 
-use constant LOCALE_CODE_ALPHA_2    => 1;
-use constant LOCALE_CODE_ALPHA_3    => 2;
-use constant LOCALE_CODE_NUMERIC    => 3;
-use constant LOCALE_CODE_FIPS       => 4;
-use constant LOCALE_CODE_DOM        => 5;
-use constant LOCALE_CODE_DEFAULT    => LOCALE_CODE_ALPHA_2;
-
-use constant LOCALE_LANG_ALPHA_2    => 1;
-use constant LOCALE_LANG_ALPHA_3    => 2;
-use constant LOCALE_LANG_TERM       => 3;
-use constant LOCALE_LANG_DEFAULT    => LOCALE_LANG_ALPHA_2;
-
-use constant LOCALE_CURR_ALPHA      => 1;
-use constant LOCALE_CURR_NUMERIC    => 2;
-use constant LOCALE_CURR_DEFAULT    => LOCALE_CURR_ALPHA;
-
-use constant LOCALE_SCRIPT_ALPHA    => 1;
-use constant LOCALE_SCRIPT_NUMERIC  => 2;
-use constant LOCALE_SCRIPT_DEFAULT  => LOCALE_SCRIPT_ALPHA;
-
-use constant LOCALE_LANGEXT_ALPHA   => 1;
-use constant LOCALE_LANGEXT_DEFAULT => LOCALE_LANGEXT_ALPHA;
-
-use constant LOCALE_LANGVAR_ALPHA   => 1;
-use constant LOCALE_LANGVAR_DEFAULT => LOCALE_LANGVAR_ALPHA;
+use constant LOCALE_CODE_ALPHA_2    => 'alpha-2';
+use constant LOCALE_CODE_ALPHA_3    => 'alpha-3';
+use constant LOCALE_CODE_NUMERIC    => 'numeric';
+use constant LOCALE_CODE_FIPS       => 'fips-10';
+use constant LOCALE_CODE_DOM        => 'dom';
+
+$ALL_CODESETS{'country'} = {
+                            'default'  => 'alpha-2',
+                            'codesets' => { 'alpha-2'  => ['lc'],
+                                            'alpha-3'  => ['lc'],
+                                            'numeric'  => ['numeric',3],
+                                            'fips-10'  => ['uc'],
+                                            'dom'      => ['uc'],
+                                          }
+                           };
+
+use constant LOCALE_LANG_ALPHA_2    => 'alpha-2';
+use constant LOCALE_LANG_ALPHA_3    => 'alpha-3';
+use constant LOCALE_LANG_TERM       => 'term';
+
+$ALL_CODESETS{'language'} = {
+                             'default'  => 'alpha-2',
+                             'codesets' => { 'alpha-2'  => ['lc'],
+                                             'alpha-3'  => ['lc'],
+                                             'term'     => ['lc'],
+                                           }
+                            };
+
+use constant LOCALE_CURR_ALPHA      => 'alpha';
+use constant LOCALE_CURR_NUMERIC    => 'num';
+
+$ALL_CODESETS{'currency'} = {
+                             'default'  => 'alpha',
+                             'codesets' => { 'alpha'  => ['uc'],
+                                             'num'    => ['numeric',3],
+                                           }
+                            };
+
+use constant LOCALE_SCRIPT_ALPHA    => 'alpha';
+use constant LOCALE_SCRIPT_NUMERIC  => 'num';
+
+$ALL_CODESETS{'script'} = {
+                           'default'  => 'alpha',
+                           'codesets' => { 'alpha'  => ['ucfirst'],
+                                           'num'    => ['numeric',3],
+                                         }
+                          };
+
+use constant LOCALE_LANGEXT_ALPHA   => 'alpha';
+
+$ALL_CODESETS{'langext'} = {
+                           'default'  => 'alpha',
+                           'codesets' => { 'alpha'  => ['lc'],
+                                         }
+                          };
+
+use constant LOCALE_LANGVAR_ALPHA   => 'alpha';
+
+$ALL_CODESETS{'langvar'} = {
+                           'default'  => 'alpha',
+                           'codesets' => { 'alpha'  => ['lc'],
+                                         }
+                          };
+
+use constant LOCALE_LANGFAM_ALPHA   => 'alpha';
+
+$ALL_CODESETS{'langfam'} = {
+                           'default'  => 'alpha',
+                           'codesets' => { 'alpha'  => ['lc'],
+                                         }
+                          };
 
 1;
 # Local Variables:
index 1175b78..6e10fbb 100644 (file)
@@ -14,6 +14,7 @@ use Carp;
 use Locale::Codes;
 use Locale::Codes::Constants;
 use Locale::Codes::Country_Codes;
+use Locale::Codes::Country_Retired;
 
 #=======================================================================
 #       Public Global Variables
@@ -21,7 +22,7 @@ use Locale::Codes::Country_Codes;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2country
                 country2code
@@ -35,253 +36,56 @@ $VERSION='3.18';
                 LOCALE_CODE_DOM
                );
 
-sub _code {
-   my($code,$codeset) = @_;
-   $code = ""  if (! $code);
-
-   $codeset = LOCALE_CODE_DEFAULT  if (! defined($codeset)  ||  $codeset eq "");
-
-   if ($codeset =~ /^\d+$/) {
-      if      ($codeset ==  LOCALE_CODE_ALPHA_2) {
-         $codeset = "alpha2";
-      } elsif ($codeset ==  LOCALE_CODE_ALPHA_3) {
-         $codeset = "alpha3";
-      } elsif ($codeset ==  LOCALE_CODE_NUMERIC) {
-         $codeset = "num";
-      } elsif ($codeset ==  LOCALE_CODE_FIPS) {
-         $codeset = "fips";
-      } elsif ($codeset ==  LOCALE_CODE_DOM) {
-         $codeset = "dom";
-      } else {
-         return (1);
-      }
-   }
-
-   if      ($codeset eq "alpha2"  ||
-            $codeset eq "alpha3") {
-      $code    = lc($code);
-   } elsif ($codeset eq "num") {
-      if (defined($code)  &&  $code ne "") {
-         return (1)  unless ($code =~ /^\d+$/);
-         $code    = sprintf("%.3d", $code);
-      }
-   } elsif ($codeset eq "fips"  ||
-            $codeset eq "dom") {
-      $code    = uc($code);
-   } else {
-      return (1);
-   }
-
-   return (0,$code,$codeset);
-}
-
-#=======================================================================
-#
-# code2country ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub code2country {
-   my($err,$code,$codeset) = _code(@_);
-   return undef  if ($err  ||
-                     ! defined $code);
-
-   return Locale::Codes::_code2name("country",$code,$codeset);
+   return Locale::Codes::_code2name('country',@_);
 }
 
-#=======================================================================
-#
-# country2code ( COUNTRY [,CODESET] )
-#
-#=======================================================================
-
 sub country2code {
-   my($country,$codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return undef  if ($err  ||
-                     ! defined $country);
-
-   return Locale::Codes::_name2code("country",$country,$codeset);
+   return Locale::Codes::_name2code('country',@_);
 }
 
-#=======================================================================
-#
-# country_code2code ( CODE,CODESET_IN,CODESET_OUT )
-#
-#=======================================================================
-
 sub country_code2code {
-   (@_ == 3) or croak "country_code2code() takes 3 arguments!";
-   my($code,$inset,$outset) = @_;
-   my($err,$tmp);
-   ($err,$code,$inset) = _code($code,$inset);
-   return undef  if ($err);
-   ($err,$tmp,$outset) = _code("",$outset);
-   return undef  if ($err);
-
-   return Locale::Codes::_code2code("country",$code,$inset,$outset);
+   return Locale::Codes::_code2code('country',@_);
 }
 
-#=======================================================================
-#
-# all_country_codes ( [CODESET] )
-#
-#=======================================================================
-
 sub all_country_codes {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_codes("country",$codeset);
+   return Locale::Codes::_all_codes('country',@_);
 }
 
-
-#=======================================================================
-#
-# all_country_names ( [CODESET] )
-#
-#=======================================================================
-
 sub all_country_names {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_names("country",$codeset);
+   return Locale::Codes::_all_names('country',@_);
 }
 
-#=======================================================================
-#
-# rename_country ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub rename_country {
-   my($code,$new_name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_rename("country",$code,$new_name,$codeset,$nowarn);
+   return Locale::Codes::_rename('country',@_);
 }
 
-#=======================================================================
-#
-# add_country ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub add_country {
-   my($code,$name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_add_code("country",$code,$name,$codeset,$nowarn);
+   return Locale::Codes::_add_code('country',@_);
 }
 
-#=======================================================================
-#
-# delete_country ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_country {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code("country",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code('country',@_);
 }
 
-#=======================================================================
-#
-# add_country_alias ( NAME,NEW_NAME )
-#
-#=======================================================================
-
 sub add_country_alias {
-   my($name,$new_name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_add_alias("country",$name,$new_name,$nowarn);
+   return Locale::Codes::_add_alias('country',@_);
 }
 
-#=======================================================================
-#
-# delete_country_alias ( NAME )
-#
-#=======================================================================
-
 sub delete_country_alias {
-   my($name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_delete_alias("country",$name,$nowarn);
+   return Locale::Codes::_delete_alias('country',@_);
 }
 
-#=======================================================================
-#
-# rename_country_code ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub rename_country_code {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_rename_code("country",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_rename_code('country',@_);
 }
 
-#=======================================================================
-#
-# add_country_code_alias ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub add_country_code_alias {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_add_code_alias("country",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_add_code_alias('country',@_);
 }
 
-#=======================================================================
-#
-# delete_country_code_alias ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_country_code_alias {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code_alias("country",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code_alias('country',@_);
 }
 
 #=======================================================================
index c1b5af9..3b4df40 100644 (file)
@@ -31,28 +31,32 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-countries. The ones currently supported are:
+countries. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $country = code2country('jp','alpha-2');
+   $country = code2country('jp',LOCALE_CODE_ALPHA_2);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha-2>
+=item B<alpha-2, LOCALE_CODE_ALPHA_2>
 
 This is the set of two-letter (lowercase) codes from ISO 3166-1, such
 as 'tv' for Tuvalu.
 
-This code set is identified with the symbol C<LOCALE_CODE_ALPHA_2>.
-
 This is the default code set.
 
-=item B<alpha-3>
+=item B<alpha-3, LOCALE_CODE_ALPHA_3>
 
 This is the set of three-letter (lowercase) codes from ISO 3166-1,
 such as 'brb' for Barbados. These codes are actually defined and
 maintained by the U.N. Statistics division.
 
-This code set is identified with the symbol C<LOCALE_CODE_ALPHA_3>.
-
-=item B<numeric>
+=item B<numeric, LOCALE_CODE_NUMERIC>
 
 This is the set of three-digit numeric codes from ISO 3166-1, such as
 064 for Bhutan. These codes are actually defined and maintained by the
@@ -61,22 +65,16 @@ U.N. Statistics division.
 If a 2-digit code is entered, it is converted to 3 digits by prepending
 a 0.
 
-This code set is identified with the symbol C<LOCALE_CODE_NUMERIC>.
-
-=item B<fips-10>
+=item B<fips-10, LOCALE_CODE_FIPS>
 
 The FIPS 10 data are two-letter (uppercase) codes assigned by the
 National Geospatial-Intelligence Agency.
 
-This code set is identified with the symbol C<LOCALE_CODE_FIPS>.
-
-=item B<dom>
+=item B<dom, LOCALE_CODE_DOM>
 
 The IANA is responsible for assigning two-letter (uppercase) top-level
 domain names to each country.
 
-This code set is identified with the symbol C<LOCALE_CODE_DOM>.
-
 =back
 
 =head1 ROUTINES
@@ -186,10 +184,9 @@ Official source of the top-level domain names.
 
 =item B<https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html>
 
-Although not the official source of any of the data, the World
-Factbook maintained by the CIA is a source of the data.  Unfortunately,
-it adds non-standard codes, so it is no longer used as a source of
-data.
+The World Factbook maintained by the CIA is a potential source of
+the data.  Unfortunately, it adds/preserves non-standard codes, so it is no
+longer used as a source of data.
 
 =item B<http://www.statoids.com/wab.html>
 
index 9cf9847..64e7631 100644 (file)
@@ -2,7 +2,7 @@ package Locale::Codes::Country_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'get_codes' is run.
-#    Generated on: Wed Aug 31 08:03:21 EDT 2011
+#    Generated on: Wed Nov 30 12:06:36 EST 2011
 
 =pod
 
@@ -37,7 +37,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.18';
+$VERSION='3.20';
 
 $Locale::Codes::Data{'country'}{'id'} = '0282';
 
@@ -546,7 +546,6 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Republic of Liberia),
       ],
    q(0127) => [
-      q(Libyan Arab Jamahiriya),
       q(Libya),
       q(Great Socialist People's Libyan Arab Jamahiriya),
       ],
@@ -873,7 +872,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(South Georgia and the Islands),
       ],
    q(0208) => [
-      q(SOUTH SUDAN),
+      q(South Sudan),
       ],
    q(0209) => [
       q(Spain),
@@ -1735,7 +1734,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       ],
    q(great socialist people's libyan arab jamahiriya) => [
       q(0127),
-      q(2),
+      q(1),
       ],
    q(greece) => [
       q(0086),
@@ -2075,10 +2074,6 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       ],
    q(libya) => [
       q(0127),
-      q(1),
-      ],
-   q(libyan arab jamahiriya) => [
-      q(0127),
       q(0),
       ],
    q(liechtenstein) => [
@@ -3300,7 +3295,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
 };
 
 $Locale::Codes::Data{'country'}{'code2id'} = {
-   q(alpha2) => {
+   q(alpha-2) => {
       q(ad) => [
          q(0006),
          q(0),
@@ -4298,7 +4293,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       },
-   q(alpha3) => {
+   q(alpha-3) => {
       q(abw) => [
          q(0013),
          q(0),
@@ -6097,6 +6092,10 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0212),
          q(0),
          ],
+      q(SS) => [
+         q(0208),
+         q(0),
+         ],
       q(ST) => [
          q(0194),
          q(0),
@@ -6274,7 +6273,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       },
-   q(fips) => {
+   q(fips-10) => {
       q(AA) => [
          q(0013),
          q(0),
@@ -6861,7 +6860,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          ],
       q(LY) => [
          q(0127),
-         q(1),
+         q(0),
          ],
       q(MA) => [
          q(0133),
@@ -7324,7 +7323,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       },
-   q(num) => {
+   q(numeric) => {
       q(004) => [
          q(0001),
          q(0),
@@ -8293,7 +8292,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
 };
 
 $Locale::Codes::Data{'country'}{'id2code'} = {
-   q(alpha2) => {
+   q(alpha-2) => {
       q(0001) => q(af),
       q(0002) => q(ax),
       q(0003) => q(al),
@@ -8544,7 +8543,7 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0248) => q(zm),
       q(0249) => q(zw),
       },
-   q(alpha3) => {
+   q(alpha-3) => {
       q(0001) => q(afg),
       q(0002) => q(ala),
       q(0003) => q(alb),
@@ -8992,6 +8991,7 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0205) => q(SO),
       q(0206) => q(ZA),
       q(0207) => q(GS),
+      q(0208) => q(SS),
       q(0209) => q(ES),
       q(0210) => q(LK),
       q(0211) => q(SD),
@@ -9040,7 +9040,7 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0280) => q(SU),
       q(0281) => q(TP),
       },
-   q(fips) => {
+   q(fips-10) => {
       q(0001) => q(AF),
       q(0003) => q(AL),
       q(0004) => q(AG),
@@ -9304,7 +9304,7 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0275) => q(WQ),
       q(0276) => q(WE),
       },
-   q(num) => {
+   q(numeric) => {
       q(0001) => q(004),
       q(0002) => q(248),
       q(0003) => q(008),
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm
new file mode 100644 (file)
index 0000000..7c40edc
--- /dev/null
@@ -0,0 +1,429 @@
+package Locale::Codes::Country_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Wed Nov 30 12:22:00 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::Country_Retired - retired country codes for the Locale::Codes::Country module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::Country module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'country'}{'dom'}{'code'} = {
+   q(FX) => q(France, Metropolitan),
+   q(YU) => q(Yugoslavia ),
+};
+
+$Locale::Codes::Retired{'country'}{'alpha-2'}{'code'} = {
+   q(zr) => q(Zaire),
+   q(yu) => q(Yugoslavia),
+   q(fx) => q(France, Metropolitan),
+   q(cs) => q(Serbia and Montenegro),
+   q(tp) => q(East Timor),
+   q(an) => q(Netherlands Antilles),
+};
+
+$Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
+   q(334) => q(Heard Island and Mcdonald Islands),
+   q(074) => q(Bouvet Island),
+   q(010) => q(Antarctica),
+   q(086) => q(British Indian Ocean Territory),
+   q(239) => q(South Georgia and the Islands),
+   q(249) => q(France, Metropolitan),
+   q(581) => q(United States Minor Outlying Islands),
+   q(158) => q(Taiwan),
+   q(166) => q(Cocos (Keeling) Islands),
+   q(530) => q(Netherlands Antilles),
+   q(162) => q(Christmas Island),
+   q(891) => q(Serbia and Montenegro),
+   q(736) => q(Sudan),
+   q(260) => q(French Southern and Antarctic Lands),
+};
+
+$Locale::Codes::Retired{'country'}{'alpha-3'}{'code'} = {
+   q(tmp) => q(East Timor),
+   q(ant) => q(Netherlands Antilles),
+   q(sgs) => q(South Georgia and the Islands),
+   q(umi) => q(United States Minor Outlying Islands),
+   q(cxr) => q(Christmas Island),
+   q(rom) => q(Romania),
+   q(iot) => q(British Indian Ocean Territory),
+   q(bvt) => q(Bouvet Island),
+   q(twn) => q(Taiwan),
+   q(fxx) => q(France, Metropolitan),
+   q(scg) => q(Serbia and Montenegro),
+   q(hmd) => q(Heard Island and Mcdonald Islands),
+   q(atf) => q(French Southern and Antarctic Lands),
+   q(yug) => q(Yugoslavia),
+   q(ata) => q(Antarctica),
+   q(cck) => q(Cocos (Keeling) Islands),
+   q(zar) => q(Zaire),
+};
+
+$Locale::Codes::Retired{'country'}{'fips-10'}{'code'} = {
+   q(RN) => q(Saint Martin),
+   q(UC) => q(Curacao),
+   q(KV) => q(Kosovo),
+   q(MJ) => q(Montenegro),
+   q(RI) => q(Serbia),
+   q(TB) => q(Saint Barthelemy),
+   q(NN) => q(Sint Maarten),
+};
+
+$Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
+   q(libyan arab jamahiriya) => [ q(LY), q(Libyan Arab Jamahiriya) ],
+   q(taiwan) => [ q(TW), q(Taiwan) ],
+   q(soviet union ) => [ q(SU), q(Soviet Union ) ],
+   q(yugoslavia ) => [ q(YU), q(Yugoslavia ) ],
+   q(france, metropolitan) => [ q(FX), q(France, Metropolitan) ],
+   q(bonaire, saint eustatius and saba) => [ q(BQ), q(Bonaire, Saint Eustatius and Saba) ],
+   q(saint helena, ascension and tristan da cunha) => [ q(SH), q(Saint Helena, Ascension and Tristan da Cunha) ],
+   q(saint martin) => [ q(MF), q(Saint Martin) ],
+   q(portuguese timor ) => [ q(TP), q(Portuguese Timor ) ],
+};
+
+$Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
+   q(netherlands antilles) => [ q(an), q(Netherlands Antilles) ],
+   q(libyan arab jamahiriya) => [ q(ly), q(Libyan Arab Jamahiriya) ],
+   q(virgin islands (u.s.)) => [ q(vi), q(Virgin Islands (U.S.)) ],
+   q(east timor) => [ q(tl), q(East Timor) ],
+   q(venezuela) => [ q(ve), q(Venezuela) ],
+   q(kazakstan) => [ q(kz), q(Kazakstan) ],
+   q(micronesia (federated states of)) => [ q(fm), q(Micronesia (Federated States of)) ],
+   q(svalbard and jan mayen islands) => [ q(sj), q(Svalbard and Jan Mayen Islands) ],
+   q(bosnia and herzegowina) => [ q(ba), q(Bosnia and Herzegowina) ],
+   q(france, metropolitan) => [ q(fx), q(France, Metropolitan) ],
+   q(yugoslavia) => [ q(yu), q(Yugoslavia) ],
+   q(wallis and futuna islands) => [ q(wf), q(Wallis and Futuna Islands) ],
+   q(heard and mc donald islands) => [ q(hm), q(Heard and Mc Donald Islands) ],
+   q(st. pierre and miquelon) => [ q(pm), q(St. Pierre and Miquelon) ],
+   q(zaire) => [ q(zr), q(Zaire) ],
+   q(virgin islands (british)) => [ q(vg), q(Virgin Islands (British)) ],
+   q(serbia and montenegro) => [ q(cs), q(Serbia and Montenegro) ],
+   q(vatican city state (holy see)) => [ q(va), q(Vatican City State (Holy See)) ],
+   q(st. helena) => [ q(sh), q(St. Helena) ],
+   q(macau) => [ q(mo), q(Macau) ],
+   q(bolivia) => [ q(bo), q(Bolivia) ],
+   q(vietnam) => [ q(vn), q(Vietnam) ],
+   q(saint helena) => [ q(sh), q(Saint Helena) ],
+   q(saint martin) => [ q(mf), q(Saint Martin) ],
+   q(iran (islamic republic of)) => [ q(ir), q(Iran (Islamic Republic of)) ],
+};
+
+$Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
+   q(netherlands antilles) => [ q(530), q(Netherlands Antilles) ],
+   q(libyan arab jamahiriya) => [ q(434), q(Libyan Arab Jamahiriya) ],
+   q(east timor) => [ q(626), q(East Timor) ],
+   q(united kingdom) => [ q(826), q(United Kingdom) ],
+   q(venezuela) => [ q(862), q(Venezuela) ],
+   q(taiwan) => [ q(158), q(Taiwan) ],
+   q(antarctica) => [ q(010), q(Antarctica) ],
+   q(taiwan, province of china) => [ q(158), q(Taiwan, Province of China) ],
+   q(south georgia and the south sandwich islands) => [ q(239), q(South Georgia and the South Sandwich Islands) ],
+   q(christmas island) => [ q(162), q(Christmas Island) ],
+   q(korea, democratic people's republic of) => [ q(408), q(Korea, Democratic People's Republic of) ],
+   q(heard island and mcdonald islands) => [ q(334), q(Heard Island and Mcdonald Islands) ],
+   q(yugoslavia) => [ q(891), q(Yugoslavia) ],
+   q(hong kong special administrative region of china) => [ q(344), q(Hong Kong Special Administrative Region of China) ],
+   q(cocos (keeling) islands) => [ q(166), q(Cocos (Keeling) Islands) ],
+   q(french southern territories) => [ q(260), q(French Southern Territories) ],
+   q(virgin islands, british) => [ q(092), q(Virgin Islands, British) ],
+   q(british indian ocean territory) => [ q(086), q(British Indian Ocean Territory) ],
+   q(faroe islands) => [ q(234), q(Faroe Islands) ],
+   q(zaire) => [ q(180), q(Zaire) ],
+   q(congo, the democratic republic of the) => [ q(180), q(Congo, The Democratic Republic of the) ],
+   q(united states minor outlying islands) => [ q(581), q(United States Minor Outlying Islands) ],
+   q(iran, islamic republic of) => [ q(364), q(Iran, Islamic Republic of) ],
+   q(serbia and montenegro) => [ q(891), q(Serbia and Montenegro) ],
+   q(macedonia, the former yugoslav republic of) => [ q(807), q(Macedonia, the Former Yugoslav Republic of) ],
+   q(macau) => [ q(446), q(Macau) ],
+   q(french southern and antarctic lands) => [ q(260), q(French Southern and Antarctic Lands) ],
+   q(hong kong) => [ q(344), q(Hong Kong) ],
+   q(macao special administrative region of china) => [ q(446), q(Macao Special Administrative Region of China) ],
+   q(palestinian territory, occupied) => [ q(275), q(Palestinian Territory, Occupied) ],
+   q(kazakstan) => [ q(398), q(Kazakstan) ],
+   q(macao) => [ q(446), q(Macao) ],
+   q(france, metropolitan) => [ q(249), q(France, Metropolitan) ],
+   q(tanzania, united republic of) => [ q(834), q(Tanzania, United Republic of) ],
+   q(bouvet island) => [ q(074), q(Bouvet Island) ],
+   q(holy see (vatican city state)) => [ q(336), q(Holy See (Vatican City State)) ],
+   q(moldova, republic of) => [ q(498), q(Moldova, Republic of) ],
+   q(micronesia, federated states of) => [ q(583), q(Micronesia, Federated States of) ],
+   q(united states) => [ q(840), q(United States) ],
+   q(virgin islands, u.s.) => [ q(850), q(Virgin Islands, U.S.) ],
+   q(korea, republic of) => [ q(410), q(Korea, Republic of) ],
+   q(bolivia) => [ q(068), q(Bolivia) ],
+   q(vietnam) => [ q(704), q(Vietnam) ],
+   q(south georgia and the islands) => [ q(239), q(South Georgia and the Islands) ],
+   q(svalbard and jan mayen) => [ q(744), q(Svalbard and Jan Mayen) ],
+   q(wallis and futuna) => [ q(876), q(Wallis and Futuna) ],
+};
+
+$Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
+   q(netherlands antilles) => [ q(ant), q(Netherlands Antilles) ],
+   q(libyan arab jamahiriya) => [ q(lby), q(Libyan Arab Jamahiriya) ],
+   q(east timor) => [ q(tls), q(East Timor) ],
+   q(united kingdom) => [ q(gbr), q(United Kingdom) ],
+   q(venezuela) => [ q(ven), q(Venezuela) ],
+   q(taiwan) => [ q(twn), q(Taiwan) ],
+   q(antarctica) => [ q(ata), q(Antarctica) ],
+   q(taiwan, province of china) => [ q(twn), q(Taiwan, Province of China) ],
+   q(south georgia and the south sandwich islands) => [ q(sgs), q(South Georgia and the South Sandwich Islands) ],
+   q(christmas island) => [ q(cxr), q(Christmas Island) ],
+   q(korea, democratic people's republic of) => [ q(prk), q(Korea, Democratic People's Republic of) ],
+   q(heard island and mcdonald islands) => [ q(hmd), q(Heard Island and Mcdonald Islands) ],
+   q(yugoslavia) => [ q(yug), q(Yugoslavia) ],
+   q(hong kong special administrative region of china) => [ q(hkg), q(Hong Kong Special Administrative Region of China) ],
+   q(cocos (keeling) islands) => [ q(cck), q(Cocos (Keeling) Islands) ],
+   q(french southern territories) => [ q(atf), q(French Southern Territories) ],
+   q(virgin islands, british) => [ q(vgb), q(Virgin Islands, British) ],
+   q(british indian ocean territory) => [ q(iot), q(British Indian Ocean Territory) ],
+   q(faroe islands) => [ q(fro), q(Faroe Islands) ],
+   q(zaire) => [ q(zar), q(Zaire) ],
+   q(congo, the democratic republic of the) => [ q(cod), q(Congo, The Democratic Republic of the) ],
+   q(united states minor outlying islands) => [ q(umi), q(United States Minor Outlying Islands) ],
+   q(iran, islamic republic of) => [ q(irn), q(Iran, Islamic Republic of) ],
+   q(serbia and montenegro) => [ q(scg), q(Serbia and Montenegro) ],
+   q(macedonia, the former yugoslav republic of) => [ q(mkd), q(Macedonia, the Former Yugoslav Republic of) ],
+   q(macau) => [ q(mac), q(Macau) ],
+   q(french southern and antarctic lands) => [ q(atf), q(French Southern and Antarctic Lands) ],
+   q(hong kong) => [ q(hkg), q(Hong Kong) ],
+   q(macao special administrative region of china) => [ q(mac), q(Macao Special Administrative Region of China) ],
+   q(palestinian territory, occupied) => [ q(pse), q(Palestinian Territory, Occupied) ],
+   q(kazakstan) => [ q(kaz), q(Kazakstan) ],
+   q(macao) => [ q(mac), q(Macao) ],
+   q(france, metropolitan) => [ q(fxx), q(France, Metropolitan) ],
+   q(tanzania, united republic of) => [ q(tza), q(Tanzania, United Republic of) ],
+   q(bouvet island) => [ q(bvt), q(Bouvet Island) ],
+   q(holy see (vatican city state)) => [ q(vat), q(Holy See (Vatican City State)) ],
+   q(moldova, republic of) => [ q(mda), q(Moldova, Republic of) ],
+   q(micronesia, federated states of) => [ q(fsm), q(Micronesia, Federated States of) ],
+   q(united states) => [ q(usa), q(United States) ],
+   q(virgin islands, u.s.) => [ q(vir), q(Virgin Islands, U.S.) ],
+   q(korea, republic of) => [ q(kor), q(Korea, Republic of) ],
+   q(bolivia) => [ q(bol), q(Bolivia) ],
+   q(vietnam) => [ q(vnm), q(Vietnam) ],
+   q(south georgia and the islands) => [ q(sgs), q(South Georgia and the Islands) ],
+   q(svalbard and jan mayen) => [ q(sjm), q(Svalbard and Jan Mayen) ],
+   q(wallis and futuna) => [ q(wlf), q(Wallis and Futuna) ],
+};
+
+$Locale::Codes::Retired{'country'}{'fips-10'}{'name'} = {
+   q(islamic state of afghanistan) => [ q(AF), q(Islamic State of Afghanistan) ],
+   q(territorial collectivity of saint pierre and miquelon) => [ q(SB), q(Territorial Collectivity of Saint Pierre and Miquelon) ],
+   q(department of guiana) => [ q(FG), q(Department of Guiana) ],
+   q(union of burma) => [ q(BM), q(Union of Burma) ],
+   q(republic of iceland) => [ q(IC), q(Republic of Iceland) ],
+   q(republic of cote d'ivoire) => [ q(IV), q(Republic of Cote D'Ivoire) ],
+   q(federal democratic republic of ethiopia) => [ q(ET), q(Federal Democratic Republic of Ethiopia) ],
+   q(arab republic of egypt) => [ q(EG), q(Arab Republic of Egypt) ],
+   q(republic of tajikistan) => [ q(TI), q(Republic of Tajikistan) ],
+   q(kingdom of bhutan) => [ q(BT), q(Kingdom of Bhutan) ],
+   q(republic of el salvador) => [ q(ES), q(Republic of El Salvador) ],
+   q(republic of guatemala) => [ q(GT), q(Republic of Guatemala) ],
+   q(republic of niger) => [ q(NG), q(Republic of Niger) ],
+   q(republic of guinea-bissau) => [ q(PU), q(Republic of Guinea-Bissau) ],
+   q(republic of indonesia) => [ q(ID), q(Republic of Indonesia) ],
+   q(republic of trinidad and tobago) => [ q(TD), q(Republic of Trinidad and Tobago) ],
+   q(republic of vanuatu) => [ q(NH), q(Republic of Vanuatu) ],
+   q(federative republic of brazil) => [ q(BR), q(Federative Republic of Brazil) ],
+   q(republic of croatia) => [ q(HR), q(Republic of Croatia) ],
+   q(virgin islands of the united states) => [ q(VQ), q(Virgin Islands of the United States) ],
+   q(republic of honduras) => [ q(HO), q(Republic of Honduras) ],
+   q(republic of chile) => [ q(CI), q(Republic of Chile) ],
+   q(republic of cameroon) => [ q(CM), q(Republic of Cameroon) ],
+   q(territorial collectivity of mayotte) => [ q(MF), q(Territorial Collectivity of Mayotte) ],
+   q(kingdom of spain) => [ q(SP), q(Kingdom of Spain) ],
+   q(republic of paraguay) => [ q(PA), q(Republic of Paraguay) ],
+   q(kosovo) => [ q(KV), q(Kosovo) ],
+   q(federal republic of germany) => [ q(GM), q(Federal Republic of Germany) ],
+   q(republic of cyprus) => [ q(CY), q(Republic of Cyprus) ],
+   q(hong kong special administrative region) => [ q(HK), q(Hong Kong Special Administrative Region) ],
+   q(kingdom of norway) => [ q(NO), q(Kingdom of Norway) ],
+   q(republic of suriname) => [ q(NS), q(Republic of Suriname) ],
+   q(commonwealth of the northern mariana islands) => [ q(CQ), q(Commonwealth of the Northern Mariana Islands) ],
+   q(swiss confederation) => [ q(SZ), q(Swiss Confederation) ],
+   q(republic of djibouti) => [ q(DJ), q(Republic of Djibouti) ],
+   q(republic of haiti) => [ q(HA), q(Republic of Haiti) ],
+   q(republic of the gambia) => [ q(GA), q(Republic of the Gambia) ],
+   q(islamic republic of mauritania) => [ q(MR), q(Islamic Republic of Mauritania) ],
+   q(state of israel) => [ q(IS), q(State of Israel) ],
+   q(united mexican states) => [ q(MX), q(United Mexican States) ],
+   q(territory of cocos (keeling) islands) => [ q(CK), q(Territory of Cocos (Keeling) Islands) ],
+   q(kingdom of tonga) => [ q(TN), q(Kingdom of Tonga) ],
+   q(republic of malawi) => [ q(MI), q(Republic of Malawi) ],
+   q(togolese republic) => [ q(TO), q(Togolese Republic) ],
+   q(bolivarian republic of venezuela) => [ q(VE), q(Bolivarian Republic of Venezuela) ],
+   q(republic of namibia) => [ q(WA), q(Republic of Namibia) ],
+   q(republic of hungary) => [ q(HU), q(Republic of Hungary) ],
+   q(republic of albania) => [ q(AL), q(Republic of Albania) ],
+   q(commonwealth of puerto rico) => [ q(RQ), q(Commonwealth of Puerto Rico) ],
+   q(principality of monaco) => [ q(MN), q(Principality of Monaco) ],
+   q(socialist republic of vietnam) => [ q(VM), q(Socialist Republic of Vietnam) ],
+   q(federation of saint kitts and nevis) => [ q(SC), q(Federation of Saint Kitts and Nevis) ],
+   q(republic of estonia) => [ q(EN), q(Republic of Estonia) ],
+   q(department of reunion) => [ q(RE), q(Department of Reunion) ],
+   q(islamic republic of pakistan) => [ q(PK), q(Islamic Republic of Pakistan) ],
+   q(kingdom of thailand) => [ q(TH), q(Kingdom of Thailand) ],
+   q(kingdom of denmark) => [ q(DA), q(Kingdom of Denmark) ],
+   q(saint barthelemy) => [ q(TB), q(Saint Barthelemy) ],
+   q(territory of ashmore and cartier islands) => [ q(AT), q(Territory of Ashmore and Cartier Islands) ],
+   q(republic of yemen) => [ q(YM), q(Republic of Yemen) ],
+   q(republic of finland) => [ q(FI), q(Republic of Finland) ],
+   q(republic of lithuania) => [ q(LH), q(Republic of Lithuania) ],
+   q(republic of cape verde) => [ q(CV), q(Republic of Cape Verde) ],
+   q(portuguese republic) => [ q(PO), q(Portuguese Republic) ],
+   q(principality of andorra) => [ q(AN), q(Principality of Andorra) ],
+   q(republic of senegal) => [ q(SG), q(Republic of Senegal) ],
+   q(republic of austria) => [ q(AU), q(Republic of Austria) ],
+   q(territory of guam) => [ q(GQ), q(Territory of Guam) ],
+   q(republic of mozambique) => [ q(MZ), q(Republic of Mozambique) ],
+   q(great socialist people's libyan arab jamahiriya) => [ q(LY), q(Great Socialist People's Libyan Arab Jamahiriya) ],
+   q(republic of botswana) => [ q(BC), q(Republic of Botswana) ],
+   q(republic of bolivia) => [ q(BL), q(Republic of Bolivia) ],
+   q(territory of heard island and mcdonald islands) => [ q(HM), q(Territory of Heard Island and McDonald Islands) ],
+   q(republic of kazakhstan) => [ q(KZ), q(Republic of Kazakhstan) ],
+   q(department of martinique) => [ q(MB), q(Department of Martinique) ],
+   q(oriental republic of uruguay) => [ q(UY), q(Oriental Republic of Uruguay) ],
+   q(republic of costa rica) => [ q(CS), q(Republic of Costa Rica) ],
+   q(state of eritrea) => [ q(ER), q(State of Eritrea) ],
+   q(slovak republic) => [ q(LO), q(Slovak Republic) ],
+   q(republic of belarus) => [ q(BO), q(Republic of Belarus) ],
+   q(republic of angola) => [ q(AO), q(Republic of Angola) ],
+   q(republic of panama) => [ q(PM), q(Republic of Panama) ],
+   q(kingdom of swaziland) => [ q(WZ), q(Kingdom of Swaziland) ],
+   q(state of qatar) => [ q(QA), q(State of Qatar) ],
+   q(territory of new caledonia and dependencies) => [ q(NC), q(Territory of New Caledonia and Dependencies) ],
+   q(republic of palau) => [ q(PS), q(Republic of Palau) ],
+   q(territory of the french southern and antarctic lands) => [ q(FS), q(Territory of the French Southern and Antarctic Lands) ],
+   q(democratic republic of sao tome and principe) => [ q(TP), q(Democratic Republic of Sao Tome and Principe) ],
+   q(islamic republic of iran) => [ q(IR), q(Islamic Republic of Iran) ],
+   q(montenegro) => [ q(MJ), q(Montenegro) ],
+   q(commonwealth of australia) => [ q(AS), q(Commonwealth of Australia) ],
+   q(people's republic of china) => [ q(CH), q(People's Republic of China) ],
+   q(republic of sierra leone) => [ q(SL), q(Republic of Sierra Leone) ],
+   q(republic of the fiji islands) => [ q(FJ), q(Republic of the Fiji Islands) ],
+   q(serbia) => [ q(RI), q(Serbia) ],
+   q(territory of norfolk island) => [ q(NF), q(Territory of Norfolk Island) ],
+   q(republic of zambia) => [ q(ZA), q(Republic of Zambia) ],
+   q(republic of tunisia) => [ q(TS), q(Republic of Tunisia) ],
+   q(republic of peru) => [ q(PE), q(Republic of Peru) ],
+   q(republic of slovenia) => [ q(SI), q(Republic of Slovenia) ],
+   q(republic of the congo) => [ q(CF), q(Republic of the Congo) ],
+   q(republic of liberia) => [ q(LI), q(Republic of Liberia) ],
+   q(republic of equatorial guinea) => [ q(EK), q(Republic of Equatorial Guinea) ],
+   q(macau special administrative region) => [ q(MC), q(Macau Special Administrative Region) ],
+   q(republic of san marino) => [ q(SM), q(Republic of San Marino) ],
+   q(republic of guinea) => [ q(GV), q(Republic of Guinea) ],
+   q(commonwealth of dominica) => [ q(DO), q(Commonwealth of Dominica) ],
+   q(federal republic of nigeria) => [ q(NI), q(Federal Republic of Nigeria) ],
+   q(italian republic) => [ q(IT), q(Italian Republic) ],
+   q(kingdom of cambodia) => [ q(CB), q(Kingdom of Cambodia) ],
+   q(pitcairn, henderson, ducie and oeno islands) => [ q(PC), q(Pitcairn, Henderson, Ducie and Oeno Islands) ],
+   q(kingdom of belgium) => [ q(BE), q(Kingdom of Belgium) ],
+   q(kingdom of sweden) => [ q(SW), q(Kingdom of Sweden) ],
+   q(bailiwick of guernsey) => [ q(GK), q(Bailiwick of Guernsey) ],
+   q(democratic socialist republic of sri lanka) => [ q(CE), q(Democratic Socialist Republic of Sri Lanka) ],
+   q(republic of maldives) => [ q(MV), q(Republic of Maldives) ],
+   q(republic of mali) => [ q(ML), q(Republic of Mali) ],
+   q(republic of south africa) => [ q(SF), q(Republic of South Africa) ],
+   q(sultanate of oman) => [ q(MU), q(Sultanate of Oman) ],
+   q(territory of american samoa) => [ q(AQ), q(Territory of American Samoa) ],
+   q(rwandese republic) => [ q(RW), q(Rwandese Republic) ],
+   q(republic of latvia) => [ q(LG), q(Republic of Latvia) ],
+   q(independent state of papua new guinea) => [ q(PP), q(Independent State of Papua New Guinea) ],
+   q(republic of nicaragua) => [ q(NU), q(Republic of Nicaragua) ],
+   q(republic of the philippines) => [ q(RP), q(Republic of the Philippines) ],
+   q(french republic) => [ q(FR), q(French Republic) ],
+   q(grand duchy of luxembourg) => [ q(LU), q(Grand Duchy of Luxembourg) ],
+   q(bailiwick of jersey) => [ q(JE), q(Bailiwick of Jersey) ],
+   q(republic of macedonia) => [ q(MK), q(Republic of Macedonia) ],
+   q(state of the vatican city) => [ q(VT), q(State of the Vatican City) ],
+   q(people's democratic republic of algeria) => [ q(AG), q(People's Democratic Republic of Algeria) ],
+   q(republic of kiribati) => [ q(KR), q(Republic of Kiribati) ],
+   q(republic of cuba) => [ q(CU), q(Republic of Cuba) ],
+   q(kingdom of nepal) => [ q(NP), q(Kingdom of Nepal) ],
+   q(saint martin) => [ q(RN), q(Saint Martin) ],
+   q(republic of the marshall islands) => [ q(RM), q(Republic of the Marshall Islands) ],
+   q(kingdom of the netherlands) => [ q(NL), q(Kingdom of the Netherlands) ],
+   q(republic of madagascar) => [ q(MA), q(Republic of Madagascar) ],
+   q(people's republic of bangladesh) => [ q(BG), q(People's Republic of Bangladesh) ],
+   q(kingdom of morocco) => [ q(MO), q(Kingdom of Morocco) ],
+   q(republic of the sudan) => [ q(SU), q(Republic of the Sudan) ],
+   q(co-operative republic of guyana) => [ q(GY), q(Co-operative Republic of Guyana) ],
+   q(republic of ghana) => [ q(GH), q(Republic of Ghana) ],
+   q(state of bahrain) => [ q(BA), q(State of Bahrain) ],
+   q(republic of chad) => [ q(CD), q(Republic of Chad) ],
+   q(gabonese republic) => [ q(GB), q(Gabonese Republic) ],
+   q(coral sea islands territory) => [ q(CR), q(Coral Sea Islands Territory) ],
+   q(republic of zimbabwe) => [ q(ZI), q(Republic of Zimbabwe) ],
+   q(republic of poland) => [ q(PL), q(Republic of Poland) ],
+   q(argentine republic) => [ q(AR), q(Argentine Republic) ],
+   q(republic of malta) => [ q(MT), q(Republic of Malta) ],
+   q(republic of azerbaijan) => [ q(AJ), q(Republic of Azerbaijan) ],
+   q(kyrgyz republic) => [ q(KG), q(Kyrgyz Republic) ],
+   q(hellenic republic) => [ q(GR), q(Hellenic Republic) ],
+   q(kingdom of saudi arabia) => [ q(SA), q(Kingdom of Saudi Arabia) ],
+   q(republic of armenia) => [ q(AM), q(Republic of Armenia) ],
+   q(republic of benin) => [ q(BN), q(Republic of Benin) ],
+   q(curacao) => [ q(UC), q(Curacao) ],
+   q(republic of ecuador) => [ q(EC), q(Republic of Ecuador) ],
+   q(territory of french polynesia) => [ q(FP), q(Territory of French Polynesia) ],
+   q(republic of lesotho) => [ q(LT), q(Republic of Lesotho) ],
+   q(hashemite kingdom of jordan) => [ q(JO), q(Hashemite Kingdom of Jordan) ],
+   q(republic of burundi) => [ q(BY), q(Republic of Burundi) ],
+   q(republic of uzbekistan) => [ q(UZ), q(Republic of Uzbekistan) ],
+   q(territory of the wallis and futuna islands) => [ q(WF), q(Territory of the Wallis and Futuna Islands) ],
+   q(sint maarten) => [ q(NN), q(Sint Maarten) ],
+   q(state of kuwait) => [ q(KU), q(State of Kuwait) ],
+   q(lebanese republic) => [ q(LE), q(Lebanese Republic) ],
+   q(republic of colombia) => [ q(CO), q(Republic of Colombia) ],
+   q(department of guadeloupe) => [ q(GP), q(Department of Guadeloupe) ],
+   q(republic of singapore) => [ q(SN), q(Republic of Singapore) ],
+   q(republic of turkey) => [ q(TU), q(Republic of Turkey) ],
+   q(republic of iraq) => [ q(IZ), q(Republic of Iraq) ],
+   q(republic of seychelles) => [ q(SE), q(Republic of Seychelles) ],
+   q(independent state of samoa) => [ q(WS), q(Independent State of Samoa) ],
+   q(republic of india) => [ q(IN), q(Republic of India) ],
+   q(territory of christmas island) => [ q(KT), q(Territory of Christmas Island) ],
+   q(republic of nauru) => [ q(NR), q(Republic of Nauru) ],
+   q(negara brunei darussalam) => [ q(BX), q(Negara Brunei Darussalam) ],
+   q(federal islamic republic of the comoros) => [ q(CN), q(Federal Islamic Republic of the Comoros) ],
+   q(republic of mauritius) => [ q(MP), q(Republic of Mauritius) ],
+   q(commonwealth of the bahamas) => [ q(BF), q(Commonwealth of the Bahamas) ],
+   q(principality of liechtenstein) => [ q(LS), q(Principality of Liechtenstein) ],
+   q(republic of kenya) => [ q(KE), q(Republic of Kenya) ],
+};
+
+
+1;
index 66b8e38..d58167e 100644 (file)
@@ -14,6 +14,7 @@ use Carp;
 use Locale::Codes;
 use Locale::Codes::Constants;
 use Locale::Codes::Currency_Codes;
+use Locale::Codes::Currency_Retired;
 
 #=======================================================================
 #       Public Global Variables
@@ -21,7 +22,7 @@ use Locale::Codes::Currency_Codes;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2currency
                 currency2code
@@ -32,243 +33,56 @@ $VERSION='3.18';
                 LOCALE_CURR_NUMERIC
                );
 
-sub _code {
-   my($code,$codeset) = @_;
-   $code = ""  if (! $code);
-
-   $codeset = LOCALE_CURR_DEFAULT  if (! defined($codeset)  ||  $codeset eq "");
-
-   if ($codeset =~ /^\d+$/) {
-      if      ($codeset ==  LOCALE_CURR_ALPHA) {
-         $codeset = "alpha";
-      } elsif ($codeset ==  LOCALE_CURR_NUMERIC) {
-         $codeset = "num";
-      } else {
-         return (1);
-      }
-   }
-
-   if      ($codeset eq "alpha") {
-      $code    = uc($code);
-   } elsif ($codeset eq "num") {
-      if (defined($code)  &&  $code ne "") {
-         return (1)  unless ($code =~ /^\d+$/);
-         $code    = sprintf("%.3d", $code);
-      }
-   } else {
-      return (1);
-   }
-
-   return (0,$code,$codeset);
-}
-
-#=======================================================================
-#
-# code2currency ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub code2currency {
-   my($err,$code,$codeset) = _code(@_);
-   return undef  if ($err  ||
-                     ! defined $code);
-
-   return Locale::Codes::_code2name("currency",$code,$codeset);
+   return Locale::Codes::_code2name('currency',@_);
 }
 
-#=======================================================================
-#
-# currency2code ( CURRENCY [,CODESET] )
-#
-#=======================================================================
-
 sub currency2code {
-   my($currency,$codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return undef  if ($err  ||
-                     ! defined $currency);
-
-   return Locale::Codes::_name2code("currency",$currency,$codeset);
+   return Locale::Codes::_name2code('currency',@_);
 }
 
-#=======================================================================
-#
-# currency_code2code ( CODE,CODESET_IN,CODESET_OUT )
-#
-#=======================================================================
-
 sub currency_code2code {
-   (@_ == 3) or croak "currency_code2code() takes 3 arguments!";
-   my($code,$inset,$outset) = @_;
-   my($err,$tmp);
-   ($err,$code,$inset) = _code($code,$inset);
-   return undef  if ($err);
-   ($err,$tmp,$outset) = _code("",$outset);
-   return undef  if ($err);
-
-   return Locale::Codes::_code2code("currency",$code,$inset,$outset);
+   return Locale::Codes::_code2code('currency',@_);
 }
 
-#=======================================================================
-#
-# all_currency_codes ( [CODESET] )
-#
-#=======================================================================
-
 sub all_currency_codes {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_codes("currency",$codeset);
+   return Locale::Codes::_all_codes('currency',@_);
 }
 
-
-#=======================================================================
-#
-# all_currency_names ( [CODESET] )
-#
-#=======================================================================
-
 sub all_currency_names {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_names("currency",$codeset);
+   return Locale::Codes::_all_names('currency',@_);
 }
 
-#=======================================================================
-#
-# rename_currency ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub rename_currency {
-   my($code,$new_name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_rename("currency",$code,$new_name,$codeset,$nowarn);
+   return Locale::Codes::_rename('currency',@_);
 }
 
-#=======================================================================
-#
-# add_currency ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub add_currency {
-   my($code,$name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_add_code("currency",$code,$name,$codeset,$nowarn);
+   return Locale::Codes::_add_code('currency',@_);
 }
 
-#=======================================================================
-#
-# delete_currency ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_currency {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code("currency",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code('currency',@_);
 }
 
-#=======================================================================
-#
-# add_currency_alias ( NAME,NEW_NAME )
-#
-#=======================================================================
-
 sub add_currency_alias {
-   my($name,$new_name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_add_alias("currency",$name,$new_name,$nowarn);
+   return Locale::Codes::_add_alias('currency',@_);
 }
 
-#=======================================================================
-#
-# delete_currency_alias ( NAME )
-#
-#=======================================================================
-
 sub delete_currency_alias {
-   my($name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_delete_alias("currency",$name,$nowarn);
+   return Locale::Codes::_delete_alias('currency',@_);
 }
 
-#=======================================================================
-#
-# rename_currency_code ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub rename_currency_code {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_rename_code("currency",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_rename_code('currency',@_);
 }
 
-#=======================================================================
-#
-# add_currency_code_alias ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub add_currency_code_alias {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  @args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_add_code_alias("currency",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_add_code_alias('currency',@_);
 }
 
-#=======================================================================
-#
-# delete_currency_code_alias ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_currency_code_alias {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code_alias("currency",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code_alias('currency',@_);
 }
 
 1;
index 715ff1b..ca4883c 100644 (file)
@@ -27,11 +27,19 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-currencies. The ones currently supported are:
+currencies. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $curr = code2currency('usd','alpha');
+   $curr = code2currency('usd',LOCALE_CURR_ALPHA);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha>
+=item B<alpha, LOCALE_CURR_ALPHA>
 
 This is a set of three-letter (uppercase) codes from ISO 4217 such
 as EUR for Euro.
@@ -40,16 +48,12 @@ Two of the codes specified by the standard (XTS which is reserved
 for testing purposes and XXX which is for transactions where no
 currency is involved) are omitted.
 
-This code set is identified with the symbol C<LOCALE_CURR_ALPHA>.
-
 This is the default code set.
 
-=item B<num>
+=item B<num, LOCALE_CURR_NUMERIC>
 
 This is the set of three-digit numeric codes from ISO 4217.
 
-This code set is identified with the symbol C<LOCALE_CURR_NUMERIC>.
-
 =back
 
 =head1 ROUTINES
index 68f378b..e75cb3f 100644 (file)
@@ -2,7 +2,7 @@ package Locale::Codes::Currency_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'get_codes' is run.
-#    Generated on: Wed Aug 31 08:03:31 EDT 2011
+#    Generated on: Wed Nov 30 12:08:14 EST 2011
 
 =pod
 
@@ -37,7 +37,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.18';
+$VERSION='3.20';
 
 $Locale::Codes::Data{'currency'}{'id'} = '0180';
 
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm
new file mode 100644 (file)
index 0000000..702f0a7
--- /dev/null
@@ -0,0 +1,164 @@
+package Locale::Codes::Currency_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Wed Nov 30 12:22:00 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::Currency_Retired - retired currency codes for the Locale::Codes::Currency module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::Currency module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'currency'}{'num'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
+   q(YUM) => q(New Dinar),
+   q(SKK) => q(Slovak Koruna),
+   q(BYB) => q(Belarussian Ruble),
+   q(MTL) => q(Maltese Lira),
+   q(NLG) => q(Netherlands Guilder),
+   q(ATS) => q(Schilling),
+   q(XB5) => q(European Unit of Account 17),
+   q(CYP) => q(Cyprus Pound),
+   q(AFA) => q(Afghani),
+   q(ZAL) => q(Financial Rand),
+   q(FRF) => q(French Franc),
+   q(ZRN) => q(New Zaire),
+   q(TMM) => q(Manat),
+   q(EEK) => q(Kroon),
+   q(GHC) => q(Cedi),
+   q(TJR) => q(Tajik Ruble),
+   q(XFU) => q(UIC-Franc),
+   q(AZM) => q(Azerbaijanian Manat),
+   q(SRG) => q(Surinam Guilder),
+   q(ESP) => q(Spanish Peseta),
+   q(TPE) => q(Timor Escudo),
+   q(GWP) => q(Guinea-Bissau Peso),
+   q(LUF) => q(Luxembourg Franc),
+   q(BGL) => q(Lev),
+   q(ECV) => q(Unidad de Valor Constante (UVC)),
+   q(PTE) => q(Portuguese Escudo),
+   q(IEP) => q(Irish Pound),
+   q(UAK) => q(Karbovanets),
+   q(ECS) => q(Sucre),
+   q(MZM) => q(Metical),
+   q(RUR) => q(Russian Ruble),
+   q(XFO) => q(Gold-Franc),
+   q(BEF) => q(Belgian Franc),
+   q(ROL) => q(Leu),
+   q(MGF) => q(Malagasy Franc),
+   q(AON) => q(New Kwanza),
+   q(ZWD) => q(Zimbabwe Dollar),
+   q(FIM) => q(Markka),
+   q(SDD) => q(Sudanese Dinar),
+   q(GRD) => q(Drachma),
+   q(SIT) => q(Tolar),
+   q(VEB) => q(Bolivar),
+   q(AOR) => q(Kwanza Reajustado),
+   q(ITL) => q(Italian Lira),
+   q(TRL) => q(Turkish Lira),
+   q(DEM) => q(German Mark),
+   q(XEU) => q(ECU (until 1998-12-31)),
+   q(ADP) => q(Andorran Peseta),
+};
+
+$Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
+};
+
+$Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
+   q(unidades de formento) => [ q(CLF), q(Unidades de Formento) ],
+   q(new leu) => [ q(RON), q(New Leu) ],
+   q(schilling) => [ q(ATS), q(Schilling) ],
+   q(netherlands antillian guilder) => [ q(ANG), q(Netherlands Antillian Guilder) ],
+   q(irish pound) => [ q(IEP), q(Irish Pound) ],
+   q(uic-franc) => [ q(XFU), q(UIC-Franc) ],
+   q(new kwanza) => [ q(AON), q(New Kwanza) ],
+   q(mexican nuevo peso) => [ q(MXN), q(Mexican Nuevo Peso) ],
+   q(netherlands guilder) => [ q(NLG), q(Netherlands Guilder) ],
+   q(unidad de valor constante (uvc)) => [ q(ECV), q(Unidad de Valor Constante (UVC)) ],
+   q(karbovanets) => [ q(UAK), q(Karbovanets) ],
+   q(european composite unit) => [ q(XBA), q(European Composite Unit) ],
+   q(ecu (until 1998-12-31)) => [ q(XEU), q(ECU (until 1998-12-31)) ],
+   q(malagasy franc) => [ q(MGF), q(Malagasy Franc) ],
+   q(st. helena pound) => [ q(SHP), q(St. Helena Pound) ],
+   q(kuna) => [ q(HRK), q(Kuna) ],
+   q(european unit of account 17(e.u.a.-17)) => [ q(XBD), q(European Unit of Account 17(E.U.A.-17)) ],
+   q(german mark) => [ q(DEM), q(German Mark) ],
+   q(uruguay peso en unidades indexadas) => [ q(UYI), q(Uruguay Peso en Unidades Indexadas) ],
+   q(timor escudo) => [ q(TPE), q(Timor Escudo) ],
+   q(convertible marks) => [ q(BAM), q(Convertible Marks) ],
+   q(lev) => [ q(BGL), q(Lev) ],
+   q(candian dollar) => [ q(CAD), q(Candian Dollar) ],
+   q(drachma) => [ q(GRD), q(Drachma) ],
+   q(italian lira) => [ q(ITL), q(Italian Lira) ],
+   q(european unit of account 17) => [ q(XB5), q(European Unit of Account 17) ],
+   q(luxembourg franc) => [ q(LUF), q(Luxembourg Franc) ],
+   q(french franc) => [ q(FRF), q(French Franc) ],
+   q(sdr) => [ q(XDR), q(SDR) ],
+   q(bolivar) => [ q(VEB), q(Bolivar) ],
+   q(dinar) => [ q(BHD), q(Dinar) ],
+   q(maltese lira) => [ q(MTL), q(Maltese Lira) ],
+   q(tunisian dollar) => [ q(TND), q(Tunisian Dollar) ],
+   q(markka) => [ q(FIM), q(Markka) ],
+   q(andorran peseta) => [ q(ADP), q(Andorran Peseta) ],
+   q(tajik ruble) => [ q(TJR), q(Tajik Ruble) ],
+   q(tolar) => [ q(SIT), q(Tolar) ],
+   q(gold-franc) => [ q(XFO), q(Gold-Franc) ],
+   q(aruban guilder) => [ q(AWG), q(Aruban Guilder) ],
+   q(cyprus pound) => [ q(CYP), q(Cyprus Pound) ],
+   q(european monetary unit (e.m.u.-6)) => [ q(XBB), q(European Monetary Unit (E.M.U.-6)) ],
+   q(kwanza reajustado) => [ q(AOR), q(Kwanza Reajustado) ],
+   q(new zaire) => [ q(ZRN), q(New Zaire) ],
+   q(kroon) => [ q(EEK), q(Kroon) ],
+   q(sudanese dinar) => [ q(SDD), q(Sudanese Dinar) ],
+   q(belgian franc) => [ q(BEF), q(Belgian Franc) ],
+   q(spanish peseta) => [ q(ESP), q(Spanish Peseta) ],
+   q(guinea-bissau peso) => [ q(GWP), q(Guinea-Bissau Peso) ],
+   q(manat) => [ q(TMT), q(Manat) ],
+   q(financial rand) => [ q(ZAL), q(Financial Rand) ],
+   q(european unit of account 9) => [ q(XBC), q(European Unit of Account 9) ],
+   q(european unit of account 9(e.u.a.-9)) => [ q(XBC), q(European Unit of Account 9(E.U.A.-9)) ],
+   q(slovak koruna) => [ q(SKK), q(Slovak Koruna) ],
+   q(shekel) => [ q(ILS), q(Shekel) ],
+   q(portuguese escudo) => [ q(PTE), q(Portuguese Escudo) ],
+   q(bond markets units european composite unit (eurco)) => [ q(XBA), q(Bond Markets Units European Composite Unit (EURCO)) ],
+   q(bermudian dollar (customarily known as bermuda dollar)) => [ q(BMD), q(Bermudian Dollar (customarily known as Bermuda Dollar)) ],
+   q(surinam guilder) => [ q(SRG), q(Surinam Guilder) ],
+   q(new dinar) => [ q(YUM), q(New Dinar) ],
+   q(franc congolais) => [ q(CDF), q(Franc Congolais) ],
+   q(european monetary unit) => [ q(XBB), q(European Monetary Unit) ],
+};
+
+
+1;
index 70b84dd..8445714 100644 (file)
@@ -12,6 +12,7 @@ use Carp;
 use Locale::Codes;
 use Locale::Codes::Constants;
 use Locale::Codes::LangExt_Codes;
+use Locale::Codes::LangExt_Retired;
 
 #=======================================================================
 #       Public Global Variables
@@ -19,7 +20,7 @@ use Locale::Codes::LangExt_Codes;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langext
                 langext2code
@@ -29,236 +30,56 @@ $VERSION='3.18';
                 LOCALE_LANGEXT_ALPHA
                );
 
-sub _code {
-   my($code,$codeset) = @_;
-   $code = ""  if (! $code);
-
-   $codeset = LOCALE_LANGEXT_DEFAULT  if (! defined($codeset)  ||  $codeset eq "");
-
-   if ($codeset =~ /^\d+$/) {
-      if      ($codeset ==  LOCALE_LANGEXT_ALPHA) {
-         $codeset = "alpha";
-      } else {
-         return (1);
-      }
-   }
-
-   if      ($codeset eq "alpha") {
-      $code    = lc($code);
-   } else {
-      return (1);
-   }
-
-   return (0,$code,$codeset);
-}
-
-#=======================================================================
-#
-# code2langext ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub code2langext {
-   my($err,$code,$codeset) = _code(@_);
-   return undef  if ($err  ||
-                     ! defined $code);
-
-   return Locale::Codes::_code2name("langext",$code,$codeset);
+   return Locale::Codes::_code2name('langext',@_);
 }
 
-#=======================================================================
-#
-# langext2code ( LANGEXT [,CODESET] )
-#
-#=======================================================================
-
 sub langext2code {
-   my($langext,$codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return undef  if ($err  ||
-                     ! defined $langext);
-
-   return Locale::Codes::_name2code("langext",$langext,$codeset);
+   return Locale::Codes::_name2code('langext',@_);
 }
 
-#=======================================================================
-#
-# langext_code2code ( CODE,CODESET_IN,CODESET_OUT )
-#
-#=======================================================================
-
 sub langext_code2code {
-   (@_ == 3) or croak "langext_code2code() takes 3 arguments!";
-   my($code,$inset,$outset) = @_;
-   my($err,$tmp);
-   ($err,$code,$inset) = _code($code,$inset);
-   return undef  if ($err);
-   ($err,$tmp,$outset) = _code("",$outset);
-   return undef  if ($err);
-
-   return Locale::Codes::_code2code("langext",$code,$inset,$outset);
+   return Locale::Codes::_code2code('langext',@_);
 }
 
-#=======================================================================
-#
-# all_langext_codes ( [CODESET] )
-#
-#=======================================================================
-
 sub all_langext_codes {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_codes("langext",$codeset);
+   return Locale::Codes::_all_codes('langext',@_);
 }
 
-
-#=======================================================================
-#
-# all_langext_names ( [CODESET] )
-#
-#=======================================================================
-
 sub all_langext_names {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_names("langext",$codeset);
+   return Locale::Codes::_all_names('langext',@_);
 }
 
-#=======================================================================
-#
-# rename_langext ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub rename_langext {
-   my($code,$new_name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_rename("langext",$code,$new_name,$codeset,$nowarn);
+   return Locale::Codes::_rename('langext',@_);
 }
 
-#=======================================================================
-#
-# add_langext ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub add_langext {
-   my($code,$name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_add_code("langext",$code,$name,$codeset,$nowarn);
+   return Locale::Codes::_add_code('langext',@_);
 }
 
-#=======================================================================
-#
-# delete_langext ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_langext {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code("langext",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code('langext',@_);
 }
 
-#=======================================================================
-#
-# add_langext_alias ( NAME,NEW_NAME )
-#
-#=======================================================================
-
 sub add_langext_alias {
-   my($name,$new_name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_add_alias("langext",$name,$new_name,$nowarn);
+   return Locale::Codes::_add_alias('langext',@_);
 }
 
-#=======================================================================
-#
-# delete_langext_alias ( NAME )
-#
-#=======================================================================
-
 sub delete_langext_alias {
-   my($name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_delete_alias("langext",$name,$nowarn);
+   return Locale::Codes::_delete_alias('langext',@_);
 }
 
-#=======================================================================
-#
-# rename_langext_code ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub rename_langext_code {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_rename_code("langext",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_rename_code('langext',@_);
 }
 
-#=======================================================================
-#
-# add_langext_code_alias ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub add_langext_code_alias {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_add_code_alias("langext",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_add_code_alias('langext',@_);
 }
 
-#=======================================================================
-#
-# delete_langext_code_alias ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_langext_code_alias {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code_alias("langext",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code_alias('langext',@_);
 }
 
 1;
index 5359b1c..aa86adc 100644 (file)
@@ -26,8 +26,16 @@ language registry codes will be used.
 
 =head1 SUPPORTED CODE SETS
 
-The following different code sets can be used to identify languages
-extensions:
+There are several different code sets you can use for identifying
+language extensions. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $lext = code2langext('acm','alpha');
+   $lext = code2langext('acm',LOCALE_LANGEXT_ALPHA);
+
+The codesets currently supported are:
 
 =over 4
 
@@ -36,8 +44,6 @@ extensions:
 This is the set of three-letter (lowercase) codes from the IANA
 language registry, such as 'acm' for Mesopotamian Arabic. 
 
-This code set is identified with the symbol C<LOCALE_LANGEXT_ALPHA>.
-
 This is the default code set.
 
 =back
index fcb3415..3fcce12 100644 (file)
@@ -2,7 +2,7 @@ package Locale::Codes::LangExt_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'get_codes' is run.
-#    Generated on: Wed Aug 31 08:04:11 EDT 2011
+#    Generated on: Wed Nov 30 12:10:41 EST 2011
 
 =pod
 
@@ -37,7 +37,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.18';
+$VERSION='3.20';
 
 $Locale::Codes::Data{'langext'}{'id'} = '0226';
 
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm
new file mode 100644 (file)
index 0000000..63e9f6a
--- /dev/null
@@ -0,0 +1,49 @@
+package Locale::Codes::LangExt_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Wed Nov 30 12:22:00 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::LangExt_Retired - retired langext codes for the Locale::Codes::LangExt module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::LangExt module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'langext'}{'alpha'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'langext'}{'alpha'}{'name'} = {
+};
+
+
+1;
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm b/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm
new file mode 100644 (file)
index 0000000..63389a9
--- /dev/null
@@ -0,0 +1,95 @@
+package Locale::Codes::LangFam;
+# Copyright (c) 2011-2011 Sullivan Beck
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+
+use strict;
+use warnings;
+require 5.002;
+
+require Exporter;
+use Carp;
+use Locale::Codes;
+use Locale::Codes::Constants;
+use Locale::Codes::LangFam_Codes;
+use Locale::Codes::LangFam_Retired;
+
+#=======================================================================
+#       Public Global Variables
+#=======================================================================
+
+our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
+
+$VERSION='3.20';
+@ISA       = qw(Exporter);
+@EXPORT    = qw(code2langfam
+                langfam2code
+                all_langfam_codes
+                all_langfam_names
+                langfam_code2code
+                LOCALE_LANGFAM_ALPHA
+               );
+
+sub code2langfam {
+   return Locale::Codes::_code2name('langfam',@_);
+}
+
+sub langfam2code {
+   return Locale::Codes::_name2code('langfam',@_);
+}
+
+sub langfam_code2code {
+   return Locale::Codes::_code2code('langfam',@_);
+}
+
+sub all_langfam_codes {
+   return Locale::Codes::_all_codes('langfam',@_);
+}
+
+sub all_langfam_names {
+   return Locale::Codes::_all_names('langfam',@_);
+}
+
+sub rename_langfam {
+   return Locale::Codes::_rename('langfam',@_);
+}
+
+sub add_langfam {
+   return Locale::Codes::_add_code('langfam',@_);
+}
+
+sub delete_langfam {
+   return Locale::Codes::_delete_code('langfam',@_);
+}
+
+sub add_langfam_alias {
+   return Locale::Codes::_add_alias('langfam',@_);
+}
+
+sub delete_langfam_alias {
+   return Locale::Codes::_delete_alias('langfam',@_);
+}
+
+sub rename_langfam_code {
+   return Locale::Codes::_rename_code('langfam',@_);
+}
+
+sub add_langfam_code_alias {
+   return Locale::Codes::_add_code_alias('langfam',@_);
+}
+
+sub delete_langfam_code_alias {
+   return Locale::Codes::_delete_code_alias('langfam',@_);
+}
+
+1;
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod b/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod
new file mode 100644 (file)
index 0000000..d5c8dba
--- /dev/null
@@ -0,0 +1,116 @@
+=pod
+
+=head1 NAME
+
+Locale::Codes::LangFam - standard codes for language extension identification
+
+=head1 SYNOPSIS
+
+   use Locale::Codes::LangFam;
+
+   $lext = code2langfam('apa');                 # $lext gets 'Apache languages'
+   $code = langfam2code('Apache languages');    # $code gets 'apa'
+
+   @codes   = all_langfam_codes();
+   @names   = all_langfam_names();
+
+=head1 DESCRIPTION
+
+The C<Locale::Codes::LangFam> module provides access to standard codes
+used for identifying language families, such as those as defined in
+ISO 639-5.
+
+Most of the routines take an optional additional argument which
+specifies the code set to use. If not specified, the default ISO 639-5
+language family codes will be used.
+
+=head1 SUPPORTED CODE SETS
+
+There are several different code sets you can use for identifying
+language families. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $lext = code2langfam('apa','alpha');
+   $lext = code2langfam('apa',LOCALE_LANGFAM_ALPHA);
+
+The codesets currently supported are:
+
+=over 4
+
+=item B<alpha>
+
+This is the set of three-letter (lowercase) codes from ISO 639-5
+such as 'apa' for Apache languages.
+
+This is the default code set.
+
+=back
+
+=head1 ROUTINES
+
+=over 4
+
+=item B<code2langfam ( CODE [,CODESET] )>
+
+=item B<langfam2code ( NAME [,CODESET] )>
+
+=item B<langfam_code2code ( CODE ,CODESET ,CODESET2 )>
+
+=item B<all_langfam_codes ( [CODESET] )>
+
+=item B<all_langfam_names ( [CODESET] )>
+
+=item B<Locale::Codes::LangFam::rename_langfam  ( CODE ,NEW_NAME [,CODESET] )>
+
+=item B<Locale::Codes::LangFam::add_langfam  ( CODE ,NAME [,CODESET] )>
+
+=item B<Locale::Codes::LangFam::delete_langfam  ( CODE [,CODESET] )>
+
+=item B<Locale::Codes::LangFam::add_langfam_alias  ( NAME ,NEW_NAME )>
+
+=item B<Locale::Codes::LangFam::delete_langfam_alias  ( NAME )>
+
+=item B<Locale::Codes::LangFam::rename_langfam_code  ( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Codes::LangFam::add_langfam_code_alias  ( CODE ,NEW_CODE [,CODESET] )>
+
+=item B<Locale::Codes::LangFam::delete_langfam_code_alias  ( CODE [,CODESET] )>
+
+These routines are all documented in the Locale::Codes::API man page.
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item B<Locale::Codes>
+
+The Locale-Codes distribution.
+
+=item B<Locale::Codes::API>
+
+The list of functions supported by this module.
+
+=item B<http://www.loc.gov/standards/iso639-5/id.php>
+
+ISO 639-5 .
+
+=back
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 2011-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm b/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm
new file mode 100644 (file)
index 0000000..bc69b0b
--- /dev/null
@@ -0,0 +1,1428 @@
+package Locale::Codes::LangFam_Codes;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'get_codes' is run.
+#    Generated on: Wed Nov 30 12:10:49 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::LangFam_Codes - langfam codes for the Locale::Codes::LangFam module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::LangFam module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Data{'langfam'}{'id'} = '0115';
+
+$Locale::Codes::Data{'langfam'}{'id2names'} = {
+   q(0001) => [
+      q(Austro-Asiatic languages),
+      ],
+   q(0002) => [
+      q(Afro-Asiatic languages),
+      ],
+   q(0003) => [
+      q(Algonquian languages),
+      ],
+   q(0004) => [
+      q(Atlantic-Congo languages),
+      ],
+   q(0005) => [
+      q(Apache languages),
+      ],
+   q(0006) => [
+      q(Alacalufan languages),
+      ],
+   q(0007) => [
+      q(Algic languages),
+      ],
+   q(0008) => [
+      q(Artificial languages),
+      ],
+   q(0009) => [
+      q(Athapascan languages),
+      ],
+   q(0010) => [
+      q(Arauan languages),
+      ],
+   q(0011) => [
+      q(Australian languages),
+      ],
+   q(0012) => [
+      q(Arawakan languages),
+      ],
+   q(0013) => [
+      q(Uto-Aztecan languages),
+      ],
+   q(0014) => [
+      q(Banda languages),
+      ],
+   q(0015) => [
+      q(Bamileke languages),
+      ],
+   q(0016) => [
+      q(Baltic languages),
+      ],
+   q(0017) => [
+      q(Berber languages),
+      ],
+   q(0018) => [
+      q(Bantu languages),
+      ],
+   q(0019) => [
+      q(Batak languages),
+      ],
+   q(0020) => [
+      q(Central American Indian languages),
+      ],
+   q(0021) => [
+      q(Caucasian languages),
+      ],
+   q(0022) => [
+      q(Chibchan languages),
+      ],
+   q(0023) => [
+      q(North Caucasian languages),
+      ],
+   q(0024) => [
+      q(South Caucasian languages),
+      ],
+   q(0025) => [
+      q(Chadic languages),
+      ],
+   q(0026) => [
+      q(Caddoan languages),
+      ],
+   q(0027) => [
+      q(Celtic languages),
+      ],
+   q(0028) => [
+      q(Chamic languages),
+      ],
+   q(0029) => [
+      q(Creoles and pidgins, English-based),
+      ],
+   q(0030) => [
+      q(Creoles and pidgins, French-based),
+      ],
+   q(0031) => [
+      q(Creoles and pidgins, Portuguese-based),
+      ],
+   q(0032) => [
+      q(Creoles and pidgins),
+      ],
+   q(0033) => [
+      q(Central Sudanic languages),
+      ],
+   q(0034) => [
+      q(Cushitic languages),
+      ],
+   q(0035) => [
+      q(Land Dayak languages),
+      ],
+   q(0036) => [
+      q(Mande languages),
+      ],
+   q(0037) => [
+      q(Dravidian languages),
+      ],
+   q(0038) => [
+      q(Egyptian languages),
+      ],
+   q(0039) => [
+      q(Eskimo-Aleut languages),
+      ],
+   q(0040) => [
+      q(Basque (family)),
+      ],
+   q(0041) => [
+      q(Finno-Ugrian languages),
+      ],
+   q(0042) => [
+      q(Formosan languages),
+      ],
+   q(0043) => [
+      q(Germanic languages),
+      ],
+   q(0044) => [
+      q(East Germanic languages),
+      ],
+   q(0045) => [
+      q(North Germanic languages),
+      ],
+   q(0046) => [
+      q(West Germanic languages),
+      ],
+   q(0047) => [
+      q(Greek languages),
+      ],
+   q(0048) => [
+      q(Hmong-Mien languages),
+      ],
+   q(0049) => [
+      q(Hokan languages),
+      ],
+   q(0050) => [
+      q(Armenian (family)),
+      ],
+   q(0051) => [
+      q(Indo-Iranian languages),
+      ],
+   q(0052) => [
+      q(Ijo languages),
+      ],
+   q(0053) => [
+      q(Indic languages),
+      ],
+   q(0054) => [
+      q(Indo-European languages),
+      ],
+   q(0055) => [
+      q(Iranian languages),
+      ],
+   q(0056) => [
+      q(Iroquoian languages),
+      ],
+   q(0057) => [
+      q(Italic languages),
+      ],
+   q(0058) => [
+      q(Japanese (family)),
+      ],
+   q(0059) => [
+      q(Karen languages),
+      ],
+   q(0060) => [
+      q(Kordofanian languages),
+      ],
+   q(0061) => [
+      q(Khoisan languages),
+      ],
+   q(0062) => [
+      q(Kru languages),
+      ],
+   q(0063) => [
+      q(Austronesian languages),
+      ],
+   q(0064) => [
+      q(Mon-Khmer languages),
+      ],
+   q(0065) => [
+      q(Manobo languages),
+      ],
+   q(0066) => [
+      q(Munda languages),
+      ],
+   q(0067) => [
+      q(Mayan languages),
+      ],
+   q(0068) => [
+      q(Nahuatl languages),
+      ],
+   q(0069) => [
+      q(North American Indian languages),
+      ],
+   q(0070) => [
+      q(Trans-New Guinea languages),
+      ],
+   q(0071) => [
+      q(Niger-Kordofanian languages),
+      ],
+   q(0072) => [
+      q(Nubian languages),
+      ],
+   q(0073) => [
+      q(Oto-Manguean languages),
+      ],
+   q(0074) => [
+      q(Omotic languages),
+      ],
+   q(0075) => [
+      q(Otomian languages),
+      ],
+   q(0076) => [
+      q(Papuan languages),
+      ],
+   q(0077) => [
+      q(Philippine languages),
+      ],
+   q(0078) => [
+      q(Central Malayo-Polynesian languages),
+      ],
+   q(0079) => [
+      q(Malayo-Polynesian languages),
+      ],
+   q(0080) => [
+      q(Eastern Malayo-Polynesian languages),
+      ],
+   q(0081) => [
+      q(Western Malayo-Polynesian languages),
+      ],
+   q(0082) => [
+      q(Prakrit languages),
+      ],
+   q(0083) => [
+      q(Quechuan (family)),
+      ],
+   q(0084) => [
+      q(Romance languages),
+      ],
+   q(0085) => [
+      q(South American Indian languages),
+      ],
+   q(0086) => [
+      q(Salishan languages),
+      ],
+   q(0087) => [
+      q(Eastern Sudanic languages),
+      ],
+   q(0088) => [
+      q(Semitic languages),
+      ],
+   q(0089) => [
+      q(sign languages),
+      ],
+   q(0090) => [
+      q(Siouan languages),
+      ],
+   q(0091) => [
+      q(Sino-Tibetan languages),
+      ],
+   q(0092) => [
+      q(Slavic languages),
+      ],
+   q(0093) => [
+      q(Sami languages),
+      ],
+   q(0094) => [
+      q(Songhai languages),
+      ],
+   q(0095) => [
+      q(Albanian languages),
+      ],
+   q(0096) => [
+      q(Nilo-Saharan languages),
+      ],
+   q(0097) => [
+      q(Samoyedic languages),
+      ],
+   q(0098) => [
+      q(Tai languages),
+      ],
+   q(0099) => [
+      q(Tibeto-Burman languages),
+      ],
+   q(0100) => [
+      q(Turkic languages),
+      ],
+   q(0101) => [
+      q(Tupi languages),
+      ],
+   q(0102) => [
+      q(Altaic languages),
+      ],
+   q(0103) => [
+      q(Tungus languages),
+      ],
+   q(0104) => [
+      q(Uralic languages),
+      ],
+   q(0105) => [
+      q(Wakashan languages),
+      ],
+   q(0106) => [
+      q(Sorbian languages),
+      ],
+   q(0107) => [
+      q(Mongolian languages),
+      ],
+   q(0108) => [
+      q(Na-Dene languages),
+      ],
+   q(0109) => [
+      q(Yupik languages),
+      ],
+   q(0110) => [
+      q(Chinese (family)),
+      ],
+   q(0111) => [
+      q(East Slavic languages),
+      ],
+   q(0112) => [
+      q(South Slavic languages),
+      ],
+   q(0113) => [
+      q(West Slavic languages),
+      ],
+   q(0114) => [
+      q(Zande languages),
+      ],
+};
+
+$Locale::Codes::Data{'langfam'}{'alias2id'} = {
+   q(afro-asiatic languages) => [
+      q(0002),
+      q(0),
+      ],
+   q(alacalufan languages) => [
+      q(0006),
+      q(0),
+      ],
+   q(albanian languages) => [
+      q(0095),
+      q(0),
+      ],
+   q(algic languages) => [
+      q(0007),
+      q(0),
+      ],
+   q(algonquian languages) => [
+      q(0003),
+      q(0),
+      ],
+   q(altaic languages) => [
+      q(0102),
+      q(0),
+      ],
+   q(apache languages) => [
+      q(0005),
+      q(0),
+      ],
+   q(arauan languages) => [
+      q(0010),
+      q(0),
+      ],
+   q(arawakan languages) => [
+      q(0012),
+      q(0),
+      ],
+   q(armenian (family)) => [
+      q(0050),
+      q(0),
+      ],
+   q(artificial languages) => [
+      q(0008),
+      q(0),
+      ],
+   q(athapascan languages) => [
+      q(0009),
+      q(0),
+      ],
+   q(atlantic-congo languages) => [
+      q(0004),
+      q(0),
+      ],
+   q(australian languages) => [
+      q(0011),
+      q(0),
+      ],
+   q(austro-asiatic languages) => [
+      q(0001),
+      q(0),
+      ],
+   q(austronesian languages) => [
+      q(0063),
+      q(0),
+      ],
+   q(baltic languages) => [
+      q(0016),
+      q(0),
+      ],
+   q(bamileke languages) => [
+      q(0015),
+      q(0),
+      ],
+   q(banda languages) => [
+      q(0014),
+      q(0),
+      ],
+   q(bantu languages) => [
+      q(0018),
+      q(0),
+      ],
+   q(basque (family)) => [
+      q(0040),
+      q(0),
+      ],
+   q(batak languages) => [
+      q(0019),
+      q(0),
+      ],
+   q(berber languages) => [
+      q(0017),
+      q(0),
+      ],
+   q(caddoan languages) => [
+      q(0026),
+      q(0),
+      ],
+   q(caucasian languages) => [
+      q(0021),
+      q(0),
+      ],
+   q(celtic languages) => [
+      q(0027),
+      q(0),
+      ],
+   q(central american indian languages) => [
+      q(0020),
+      q(0),
+      ],
+   q(central malayo-polynesian languages) => [
+      q(0078),
+      q(0),
+      ],
+   q(central sudanic languages) => [
+      q(0033),
+      q(0),
+      ],
+   q(chadic languages) => [
+      q(0025),
+      q(0),
+      ],
+   q(chamic languages) => [
+      q(0028),
+      q(0),
+      ],
+   q(chibchan languages) => [
+      q(0022),
+      q(0),
+      ],
+   q(chinese (family)) => [
+      q(0110),
+      q(0),
+      ],
+   q(creoles and pidgins) => [
+      q(0032),
+      q(0),
+      ],
+   q(creoles and pidgins, english-based) => [
+      q(0029),
+      q(0),
+      ],
+   q(creoles and pidgins, french-based) => [
+      q(0030),
+      q(0),
+      ],
+   q(creoles and pidgins, portuguese-based) => [
+      q(0031),
+      q(0),
+      ],
+   q(cushitic languages) => [
+      q(0034),
+      q(0),
+      ],
+   q(dravidian languages) => [
+      q(0037),
+      q(0),
+      ],
+   q(east germanic languages) => [
+      q(0044),
+      q(0),
+      ],
+   q(east slavic languages) => [
+      q(0111),
+      q(0),
+      ],
+   q(eastern malayo-polynesian languages) => [
+      q(0080),
+      q(0),
+      ],
+   q(eastern sudanic languages) => [
+      q(0087),
+      q(0),
+      ],
+   q(egyptian languages) => [
+      q(0038),
+      q(0),
+      ],
+   q(eskimo-aleut languages) => [
+      q(0039),
+      q(0),
+      ],
+   q(finno-ugrian languages) => [
+      q(0041),
+      q(0),
+      ],
+   q(formosan languages) => [
+      q(0042),
+      q(0),
+      ],
+   q(germanic languages) => [
+      q(0043),
+      q(0),
+      ],
+   q(greek languages) => [
+      q(0047),
+      q(0),
+      ],
+   q(hmong-mien languages) => [
+      q(0048),
+      q(0),
+      ],
+   q(hokan languages) => [
+      q(0049),
+      q(0),
+      ],
+   q(ijo languages) => [
+      q(0052),
+      q(0),
+      ],
+   q(indic languages) => [
+      q(0053),
+      q(0),
+      ],
+   q(indo-european languages) => [
+      q(0054),
+      q(0),
+      ],
+   q(indo-iranian languages) => [
+      q(0051),
+      q(0),
+      ],
+   q(iranian languages) => [
+      q(0055),
+      q(0),
+      ],
+   q(iroquoian languages) => [
+      q(0056),
+      q(0),
+      ],
+   q(italic languages) => [
+      q(0057),
+      q(0),
+      ],
+   q(japanese (family)) => [
+      q(0058),
+      q(0),
+      ],
+   q(karen languages) => [
+      q(0059),
+      q(0),
+      ],
+   q(khoisan languages) => [
+      q(0061),
+      q(0),
+      ],
+   q(kordofanian languages) => [
+      q(0060),
+      q(0),
+      ],
+   q(kru languages) => [
+      q(0062),
+      q(0),
+      ],
+   q(land dayak languages) => [
+      q(0035),
+      q(0),
+      ],
+   q(malayo-polynesian languages) => [
+      q(0079),
+      q(0),
+      ],
+   q(mande languages) => [
+      q(0036),
+      q(0),
+      ],
+   q(manobo languages) => [
+      q(0065),
+      q(0),
+      ],
+   q(mayan languages) => [
+      q(0067),
+      q(0),
+      ],
+   q(mon-khmer languages) => [
+      q(0064),
+      q(0),
+      ],
+   q(mongolian languages) => [
+      q(0107),
+      q(0),
+      ],
+   q(munda languages) => [
+      q(0066),
+      q(0),
+      ],
+   q(na-dene languages) => [
+      q(0108),
+      q(0),
+      ],
+   q(nahuatl languages) => [
+      q(0068),
+      q(0),
+      ],
+   q(niger-kordofanian languages) => [
+      q(0071),
+      q(0),
+      ],
+   q(nilo-saharan languages) => [
+      q(0096),
+      q(0),
+      ],
+   q(north american indian languages) => [
+      q(0069),
+      q(0),
+      ],
+   q(north caucasian languages) => [
+      q(0023),
+      q(0),
+      ],
+   q(north germanic languages) => [
+      q(0045),
+      q(0),
+      ],
+   q(nubian languages) => [
+      q(0072),
+      q(0),
+      ],
+   q(omotic languages) => [
+      q(0074),
+      q(0),
+      ],
+   q(oto-manguean languages) => [
+      q(0073),
+      q(0),
+      ],
+   q(otomian languages) => [
+      q(0075),
+      q(0),
+      ],
+   q(papuan languages) => [
+      q(0076),
+      q(0),
+      ],
+   q(philippine languages) => [
+      q(0077),
+      q(0),
+      ],
+   q(prakrit languages) => [
+      q(0082),
+      q(0),
+      ],
+   q(quechuan (family)) => [
+      q(0083),
+      q(0),
+      ],
+   q(romance languages) => [
+      q(0084),
+      q(0),
+      ],
+   q(salishan languages) => [
+      q(0086),
+      q(0),
+      ],
+   q(sami languages) => [
+      q(0093),
+      q(0),
+      ],
+   q(samoyedic languages) => [
+      q(0097),
+      q(0),
+      ],
+   q(semitic languages) => [
+      q(0088),
+      q(0),
+      ],
+   q(sign languages) => [
+      q(0089),
+      q(0),
+      ],
+   q(sino-tibetan languages) => [
+      q(0091),
+      q(0),
+      ],
+   q(siouan languages) => [
+      q(0090),
+      q(0),
+      ],
+   q(slavic languages) => [
+      q(0092),
+      q(0),
+      ],
+   q(songhai languages) => [
+      q(0094),
+      q(0),
+      ],
+   q(sorbian languages) => [
+      q(0106),
+      q(0),
+      ],
+   q(south american indian languages) => [
+      q(0085),
+      q(0),
+      ],
+   q(south caucasian languages) => [
+      q(0024),
+      q(0),
+      ],
+   q(south slavic languages) => [
+      q(0112),
+      q(0),
+      ],
+   q(tai languages) => [
+      q(0098),
+      q(0),
+      ],
+   q(tibeto-burman languages) => [
+      q(0099),
+      q(0),
+      ],
+   q(trans-new guinea languages) => [
+      q(0070),
+      q(0),
+      ],
+   q(tungus languages) => [
+      q(0103),
+      q(0),
+      ],
+   q(tupi languages) => [
+      q(0101),
+      q(0),
+      ],
+   q(turkic languages) => [
+      q(0100),
+      q(0),
+      ],
+   q(uralic languages) => [
+      q(0104),
+      q(0),
+      ],
+   q(uto-aztecan languages) => [
+      q(0013),
+      q(0),
+      ],
+   q(wakashan languages) => [
+      q(0105),
+      q(0),
+      ],
+   q(west germanic languages) => [
+      q(0046),
+      q(0),
+      ],
+   q(west slavic languages) => [
+      q(0113),
+      q(0),
+      ],
+   q(western malayo-polynesian languages) => [
+      q(0081),
+      q(0),
+      ],
+   q(yupik languages) => [
+      q(0109),
+      q(0),
+      ],
+   q(zande languages) => [
+      q(0114),
+      q(0),
+      ],
+};
+
+$Locale::Codes::Data{'langfam'}{'code2id'} = {
+   q(alpha) => {
+      q(aav) => [
+         q(0001),
+         q(0),
+         ],
+      q(afa) => [
+         q(0002),
+         q(0),
+         ],
+      q(alg) => [
+         q(0003),
+         q(0),
+         ],
+      q(alv) => [
+         q(0004),
+         q(0),
+         ],
+      q(apa) => [
+         q(0005),
+         q(0),
+         ],
+      q(aqa) => [
+         q(0006),
+         q(0),
+         ],
+      q(aql) => [
+         q(0007),
+         q(0),
+         ],
+      q(art) => [
+         q(0008),
+         q(0),
+         ],
+      q(ath) => [
+         q(0009),
+         q(0),
+         ],
+      q(auf) => [
+         q(0010),
+         q(0),
+         ],
+      q(aus) => [
+         q(0011),
+         q(0),
+         ],
+      q(awd) => [
+         q(0012),
+         q(0),
+         ],
+      q(azc) => [
+         q(0013),
+         q(0),
+         ],
+      q(bad) => [
+         q(0014),
+         q(0),
+         ],
+      q(bai) => [
+         q(0015),
+         q(0),
+         ],
+      q(bat) => [
+         q(0016),
+         q(0),
+         ],
+      q(ber) => [
+         q(0017),
+         q(0),
+         ],
+      q(bnt) => [
+         q(0018),
+         q(0),
+         ],
+      q(btk) => [
+         q(0019),
+         q(0),
+         ],
+      q(cai) => [
+         q(0020),
+         q(0),
+         ],
+      q(cau) => [
+         q(0021),
+         q(0),
+         ],
+      q(cba) => [
+         q(0022),
+         q(0),
+         ],
+      q(ccn) => [
+         q(0023),
+         q(0),
+         ],
+      q(ccs) => [
+         q(0024),
+         q(0),
+         ],
+      q(cdc) => [
+         q(0025),
+         q(0),
+         ],
+      q(cdd) => [
+         q(0026),
+         q(0),
+         ],
+      q(cel) => [
+         q(0027),
+         q(0),
+         ],
+      q(cmc) => [
+         q(0028),
+         q(0),
+         ],
+      q(cpe) => [
+         q(0029),
+         q(0),
+         ],
+      q(cpf) => [
+         q(0030),
+         q(0),
+         ],
+      q(cpp) => [
+         q(0031),
+         q(0),
+         ],
+      q(crp) => [
+         q(0032),
+         q(0),
+         ],
+      q(csu) => [
+         q(0033),
+         q(0),
+         ],
+      q(cus) => [
+         q(0034),
+         q(0),
+         ],
+      q(day) => [
+         q(0035),
+         q(0),
+         ],
+      q(dmn) => [
+         q(0036),
+         q(0),
+         ],
+      q(dra) => [
+         q(0037),
+         q(0),
+         ],
+      q(egx) => [
+         q(0038),
+         q(0),
+         ],
+      q(esx) => [
+         q(0039),
+         q(0),
+         ],
+      q(euq) => [
+         q(0040),
+         q(0),
+         ],
+      q(fiu) => [
+         q(0041),
+         q(0),
+         ],
+      q(fox) => [
+         q(0042),
+         q(0),
+         ],
+      q(gem) => [
+         q(0043),
+         q(0),
+         ],
+      q(gme) => [
+         q(0044),
+         q(0),
+         ],
+      q(gmq) => [
+         q(0045),
+         q(0),
+         ],
+      q(gmw) => [
+         q(0046),
+         q(0),
+         ],
+      q(grk) => [
+         q(0047),
+         q(0),
+         ],
+      q(hmx) => [
+         q(0048),
+         q(0),
+         ],
+      q(hok) => [
+         q(0049),
+         q(0),
+         ],
+      q(hyx) => [
+         q(0050),
+         q(0),
+         ],
+      q(iir) => [
+         q(0051),
+         q(0),
+         ],
+      q(ijo) => [
+         q(0052),
+         q(0),
+         ],
+      q(inc) => [
+         q(0053),
+         q(0),
+         ],
+      q(ine) => [
+         q(0054),
+         q(0),
+         ],
+      q(ira) => [
+         q(0055),
+         q(0),
+         ],
+      q(iro) => [
+         q(0056),
+         q(0),
+         ],
+      q(itc) => [
+         q(0057),
+         q(0),
+         ],
+      q(jpx) => [
+         q(0058),
+         q(0),
+         ],
+      q(kar) => [
+         q(0059),
+         q(0),
+         ],
+      q(kdo) => [
+         q(0060),
+         q(0),
+         ],
+      q(khi) => [
+         q(0061),
+         q(0),
+         ],
+      q(kro) => [
+         q(0062),
+         q(0),
+         ],
+      q(map) => [
+         q(0063),
+         q(0),
+         ],
+      q(mkh) => [
+         q(0064),
+         q(0),
+         ],
+      q(mno) => [
+         q(0065),
+         q(0),
+         ],
+      q(mun) => [
+         q(0066),
+         q(0),
+         ],
+      q(myn) => [
+         q(0067),
+         q(0),
+         ],
+      q(nah) => [
+         q(0068),
+         q(0),
+         ],
+      q(nai) => [
+         q(0069),
+         q(0),
+         ],
+      q(ngf) => [
+         q(0070),
+         q(0),
+         ],
+      q(nic) => [
+         q(0071),
+         q(0),
+         ],
+      q(nub) => [
+         q(0072),
+         q(0),
+         ],
+      q(omq) => [
+         q(0073),
+         q(0),
+         ],
+      q(omv) => [
+         q(0074),
+         q(0),
+         ],
+      q(oto) => [
+         q(0075),
+         q(0),
+         ],
+      q(paa) => [
+         q(0076),
+         q(0),
+         ],
+      q(phi) => [
+         q(0077),
+         q(0),
+         ],
+      q(plf) => [
+         q(0078),
+         q(0),
+         ],
+      q(poz) => [
+         q(0079),
+         q(0),
+         ],
+      q(pqe) => [
+         q(0080),
+         q(0),
+         ],
+      q(pqw) => [
+         q(0081),
+         q(0),
+         ],
+      q(pra) => [
+         q(0082),
+         q(0),
+         ],
+      q(qwe) => [
+         q(0083),
+         q(0),
+         ],
+      q(roa) => [
+         q(0084),
+         q(0),
+         ],
+      q(sai) => [
+         q(0085),
+         q(0),
+         ],
+      q(sal) => [
+         q(0086),
+         q(0),
+         ],
+      q(sdv) => [
+         q(0087),
+         q(0),
+         ],
+      q(sem) => [
+         q(0088),
+         q(0),
+         ],
+      q(sgn) => [
+         q(0089),
+         q(0),
+         ],
+      q(sio) => [
+         q(0090),
+         q(0),
+         ],
+      q(sit) => [
+         q(0091),
+         q(0),
+         ],
+      q(sla) => [
+         q(0092),
+         q(0),
+         ],
+      q(smi) => [
+         q(0093),
+         q(0),
+         ],
+      q(son) => [
+         q(0094),
+         q(0),
+         ],
+      q(sqj) => [
+         q(0095),
+         q(0),
+         ],
+      q(ssa) => [
+         q(0096),
+         q(0),
+         ],
+      q(syd) => [
+         q(0097),
+         q(0),
+         ],
+      q(tai) => [
+         q(0098),
+         q(0),
+         ],
+      q(tbq) => [
+         q(0099),
+         q(0),
+         ],
+      q(trk) => [
+         q(0100),
+         q(0),
+         ],
+      q(tup) => [
+         q(0101),
+         q(0),
+         ],
+      q(tut) => [
+         q(0102),
+         q(0),
+         ],
+      q(tuw) => [
+         q(0103),
+         q(0),
+         ],
+      q(urj) => [
+         q(0104),
+         q(0),
+         ],
+      q(wak) => [
+         q(0105),
+         q(0),
+         ],
+      q(wen) => [
+         q(0106),
+         q(0),
+         ],
+      q(xgn) => [
+         q(0107),
+         q(0),
+         ],
+      q(xnd) => [
+         q(0108),
+         q(0),
+         ],
+      q(ypk) => [
+         q(0109),
+         q(0),
+         ],
+      q(zhx) => [
+         q(0110),
+         q(0),
+         ],
+      q(zle) => [
+         q(0111),
+         q(0),
+         ],
+      q(zls) => [
+         q(0112),
+         q(0),
+         ],
+      q(zlw) => [
+         q(0113),
+         q(0),
+         ],
+      q(znd) => [
+         q(0114),
+         q(0),
+         ],
+      },
+};
+
+$Locale::Codes::Data{'langfam'}{'id2code'} = {
+   q(alpha) => {
+      q(0001) => q(aav),
+      q(0002) => q(afa),
+      q(0003) => q(alg),
+      q(0004) => q(alv),
+      q(0005) => q(apa),
+      q(0006) => q(aqa),
+      q(0007) => q(aql),
+      q(0008) => q(art),
+      q(0009) => q(ath),
+      q(0010) => q(auf),
+      q(0011) => q(aus),
+      q(0012) => q(awd),
+      q(0013) => q(azc),
+      q(0014) => q(bad),
+      q(0015) => q(bai),
+      q(0016) => q(bat),
+      q(0017) => q(ber),
+      q(0018) => q(bnt),
+      q(0019) => q(btk),
+      q(0020) => q(cai),
+      q(0021) => q(cau),
+      q(0022) => q(cba),
+      q(0023) => q(ccn),
+      q(0024) => q(ccs),
+      q(0025) => q(cdc),
+      q(0026) => q(cdd),
+      q(0027) => q(cel),
+      q(0028) => q(cmc),
+      q(0029) => q(cpe),
+      q(0030) => q(cpf),
+      q(0031) => q(cpp),
+      q(0032) => q(crp),
+      q(0033) => q(csu),
+      q(0034) => q(cus),
+      q(0035) => q(day),
+      q(0036) => q(dmn),
+      q(0037) => q(dra),
+      q(0038) => q(egx),
+      q(0039) => q(esx),
+      q(0040) => q(euq),
+      q(0041) => q(fiu),
+      q(0042) => q(fox),
+      q(0043) => q(gem),
+      q(0044) => q(gme),
+      q(0045) => q(gmq),
+      q(0046) => q(gmw),
+      q(0047) => q(grk),
+      q(0048) => q(hmx),
+      q(0049) => q(hok),
+      q(0050) => q(hyx),
+      q(0051) => q(iir),
+      q(0052) => q(ijo),
+      q(0053) => q(inc),
+      q(0054) => q(ine),
+      q(0055) => q(ira),
+      q(0056) => q(iro),
+      q(0057) => q(itc),
+      q(0058) => q(jpx),
+      q(0059) => q(kar),
+      q(0060) => q(kdo),
+      q(0061) => q(khi),
+      q(0062) => q(kro),
+      q(0063) => q(map),
+      q(0064) => q(mkh),
+      q(0065) => q(mno),
+      q(0066) => q(mun),
+      q(0067) => q(myn),
+      q(0068) => q(nah),
+      q(0069) => q(nai),
+      q(0070) => q(ngf),
+      q(0071) => q(nic),
+      q(0072) => q(nub),
+      q(0073) => q(omq),
+      q(0074) => q(omv),
+      q(0075) => q(oto),
+      q(0076) => q(paa),
+      q(0077) => q(phi),
+      q(0078) => q(plf),
+      q(0079) => q(poz),
+      q(0080) => q(pqe),
+      q(0081) => q(pqw),
+      q(0082) => q(pra),
+      q(0083) => q(qwe),
+      q(0084) => q(roa),
+      q(0085) => q(sai),
+      q(0086) => q(sal),
+      q(0087) => q(sdv),
+      q(0088) => q(sem),
+      q(0089) => q(sgn),
+      q(0090) => q(sio),
+      q(0091) => q(sit),
+      q(0092) => q(sla),
+      q(0093) => q(smi),
+      q(0094) => q(son),
+      q(0095) => q(sqj),
+      q(0096) => q(ssa),
+      q(0097) => q(syd),
+      q(0098) => q(tai),
+      q(0099) => q(tbq),
+      q(0100) => q(trk),
+      q(0101) => q(tup),
+      q(0102) => q(tut),
+      q(0103) => q(tuw),
+      q(0104) => q(urj),
+      q(0105) => q(wak),
+      q(0106) => q(wen),
+      q(0107) => q(xgn),
+      q(0108) => q(xnd),
+      q(0109) => q(ypk),
+      q(0110) => q(zhx),
+      q(0111) => q(zle),
+      q(0112) => q(zls),
+      q(0113) => q(zlw),
+      q(0114) => q(znd),
+      },
+};
+
+1;
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm
new file mode 100644 (file)
index 0000000..e96347c
--- /dev/null
@@ -0,0 +1,49 @@
+package Locale::Codes::LangFam_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Tue Sep 27 15:40:31 EDT 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::LangFam_Retired - retired langfam codes for the Locale::Codes::LangFam module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::LangFam module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'langfam'}{'alpha'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'langfam'}{'alpha'}{'name'} = {
+};
+
+
+1;
index 81b3e94..215d46c 100644 (file)
@@ -12,6 +12,7 @@ use Carp;
 use Locale::Codes;
 use Locale::Codes::Constants;
 use Locale::Codes::LangVar_Codes;
+use Locale::Codes::LangVar_Retired;
 
 #=======================================================================
 #       Public Global Variables
@@ -19,7 +20,7 @@ use Locale::Codes::LangVar_Codes;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langvar
                 langvar2code
@@ -29,236 +30,57 @@ $VERSION='3.18';
                 LOCALE_LANGVAR_ALPHA
                );
 
-sub _code {
-   my($code,$codeset) = @_;
-   $code = ""  if (! $code);
-
-   $codeset = LOCALE_LANGVAR_DEFAULT  if (! defined($codeset)  ||  $codeset eq "");
-
-   if ($codeset =~ /^\d+$/) {
-      if      ($codeset ==  LOCALE_LANGVAR_ALPHA) {
-         $codeset = "alpha";
-      } else {
-         return (1);
-      }
-   }
-
-   if      ($codeset eq "alpha") {
-      $code    = lc($code);
-   } else {
-      return (1);
-   }
-
-   return (0,$code,$codeset);
-}
-
-#=======================================================================
-#
-# code2langvar ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub code2langvar {
-   my($err,$code,$codeset) = _code(@_);
-   return undef  if ($err  ||
-                     ! defined $code);
-
-   return Locale::Codes::_code2name("langvar",$code,$codeset);
+   return Locale::Codes::_code2name('langvar',@_);
 }
 
-#=======================================================================
-#
-# langvar2code ( LANGVAR [,CODESET] )
-#
-#=======================================================================
-
 sub langvar2code {
-   my($langvar,$codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return undef  if ($err  ||
-                     ! defined $langvar);
-
-   return Locale::Codes::_name2code("langvar",$langvar,$codeset);
+   return Locale::Codes::_name2code('langvar',@_);
 }
 
-#=======================================================================
-#
-# langvar_code2code ( CODE,CODESET_IN,CODESET_OUT )
-#
-#=======================================================================
-
 sub langvar_code2code {
-   (@_ == 3) or croak "langvar_code2code() takes 3 arguments!";
-   my($code,$inset,$outset) = @_;
-   my($err,$tmp);
-   ($err,$code,$inset) = _code($code,$inset);
-   return undef  if ($err);
-   ($err,$tmp,$outset) = _code("",$outset);
-   return undef  if ($err);
 
-   return Locale::Codes::_code2code("langvar",$code,$inset,$outset);
+   return Locale::Codes::_code2code('langvar',@_);
 }
 
-#=======================================================================
-#
-# all_langvar_codes ( [CODESET] )
-#
-#=======================================================================
-
 sub all_langvar_codes {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_codes("langvar",$codeset);
+   return Locale::Codes::_all_codes('langvar',@_);
 }
 
-
-#=======================================================================
-#
-# all_langvar_names ( [CODESET] )
-#
-#=======================================================================
-
 sub all_langvar_names {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_names("langvar",$codeset);
+   return Locale::Codes::_all_names('langvar',@_);
 }
 
-#=======================================================================
-#
-# rename_langvar ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub rename_langvar {
-   my($code,$new_name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_rename("langvar",$code,$new_name,$codeset,$nowarn);
+   return Locale::Codes::_rename('langvar',@_);
 }
 
-#=======================================================================
-#
-# add_langvar ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub add_langvar {
-   my($code,$name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_add_code("langvar",$code,$name,$codeset,$nowarn);
+   return Locale::Codes::_add_code('langvar',@_);
 }
 
-#=======================================================================
-#
-# delete_langvar ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_langvar {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code("langvar",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code('langvar',@_);
 }
 
-#=======================================================================
-#
-# add_langvar_alias ( NAME,NEW_NAME )
-#
-#=======================================================================
-
 sub add_langvar_alias {
-   my($name,$new_name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_add_alias("langvar",$name,$new_name,$nowarn);
+   return Locale::Codes::_add_alias('langvar',@_);
 }
 
-#=======================================================================
-#
-# delete_langvar_alias ( NAME )
-#
-#=======================================================================
-
 sub delete_langvar_alias {
-   my($name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_delete_alias("langvar",$name,$nowarn);
+   return Locale::Codes::_delete_alias('langvar',@_);
 }
 
-#=======================================================================
-#
-# rename_langvar_code ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub rename_langvar_code {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_rename_code("langvar",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_rename_code('langvar',@_);
 }
 
-#=======================================================================
-#
-# add_langvar_code_alias ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub add_langvar_code_alias {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_add_code_alias("langvar",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_add_code_alias('langvar',@_);
 }
 
-#=======================================================================
-#
-# delete_langvar_code_alias ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_langvar_code_alias {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code_alias("langvar",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code_alias('langvar',@_);
 }
 
 1;
index 714aaae..58aa663 100644 (file)
@@ -8,7 +8,7 @@ Locale::Codes::LangVar - standard codes for language variation identification
 
    use Locale::Codes::LangVar;
 
-   $lext = code2langvar('acm');                 # $lext gets 'Mesopotamian Arabic'
+   $lvar = code2langvar('acm');                 # $lvar gets 'Mesopotamian Arabic'
    $code = langvar2code('Mesopotamian Arabic'); # $code gets 'acm'
 
    @codes   = all_langvar_codes();
@@ -26,8 +26,16 @@ language registry codes will be used.
 
 =head1 SUPPORTED CODE SETS
 
-The following different code sets can be used to identify languages
-extensions:
+There are several different code sets you can use for identifying
+language variations. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $lvar = code2langvar('en','alpha-2');
+   $lvar = code2langvar('en',LOCALE_CODE_ALPHA_2);
+
+The codesets currently supported are:
 
 =over 4
 
index deec6e8..44b7732 100644 (file)
@@ -2,7 +2,7 @@ package Locale::Codes::LangVar_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'get_codes' is run.
-#    Generated on: Wed Aug 31 08:04:15 EDT 2011
+#    Generated on: Wed Nov 30 12:10:49 EST 2011
 
 =pod
 
@@ -37,7 +37,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.18';
+$VERSION='3.20';
 
 $Locale::Codes::Data{'langvar'}{'id'} = '0054';
 
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm
new file mode 100644 (file)
index 0000000..fab61ac
--- /dev/null
@@ -0,0 +1,49 @@
+package Locale::Codes::LangVar_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Wed Nov 30 12:22:00 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::LangVar_Retired - retired langvar codes for the Locale::Codes::LangVar module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::LangVar module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'langvar'}{'alpha'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'langvar'}{'alpha'}{'name'} = {
+};
+
+
+1;
index ff4e945..ef02140 100644 (file)
@@ -14,6 +14,7 @@ use Carp;
 use Locale::Codes;
 use Locale::Codes::Constants;
 use Locale::Codes::Language_Codes;
+use Locale::Codes::Language_Retired;
 
 #=======================================================================
 #       Public Global Variables
@@ -21,7 +22,7 @@ use Locale::Codes::Language_Codes;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2language
                 language2code
@@ -33,242 +34,56 @@ $VERSION='3.18';
                 LOCALE_LANG_TERM
                );
 
-sub _code {
-   my($code,$codeset) = @_;
-   $code = ""  if (! $code);
-
-   $codeset = LOCALE_LANG_DEFAULT  if (! defined($codeset)  ||  $codeset eq "");
-
-   if ($codeset =~ /^\d+$/) {
-      if      ($codeset ==  LOCALE_LANG_ALPHA_2) {
-         $codeset = "alpha2";
-      } elsif ($codeset ==  LOCALE_LANG_ALPHA_3) {
-         $codeset = "alpha3";
-      } elsif ($codeset ==  LOCALE_LANG_TERM) {
-         $codeset = "term";
-      } else {
-         return (1);
-      }
-   }
-
-   if      ($codeset eq "alpha2"  ||
-            $codeset eq "alpha3"  ||
-            $codeset eq "term") {
-      $code    = lc($code);
-   } else {
-      return (1);
-   }
-
-   return (0,$code,$codeset);
-}
-
-#=======================================================================
-#
-# code2language ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub code2language {
-   my($err,$code,$codeset) = _code(@_);
-   return undef  if ($err  ||
-                     ! defined $code);
-
-   return Locale::Codes::_code2name("language",$code,$codeset);
+   return Locale::Codes::_code2name('language',@_);
 }
 
-#=======================================================================
-#
-# language2code ( LANGUAGE [,CODESET] )
-#
-#=======================================================================
-
 sub language2code {
-   my($language,$codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return undef  if ($err  ||
-                     ! defined $language);
-
-   return Locale::Codes::_name2code("language",$language,$codeset);
+   return Locale::Codes::_name2code('language',@_);
 }
 
-#=======================================================================
-#
-# language_code2code ( CODE,CODESET_IN,CODESET_OUT )
-#
-#=======================================================================
-
 sub language_code2code {
-   (@_ == 3) or croak "language_code2code() takes 3 arguments!";
-   my($code,$inset,$outset) = @_;
-   my($err,$tmp);
-   ($err,$code,$inset) = _code($code,$inset);
-   return undef  if ($err);
-   ($err,$tmp,$outset) = _code("",$outset);
-   return undef  if ($err);
-
-   return Locale::Codes::_code2code("language",$code,$inset,$outset);
+   return Locale::Codes::_code2code('language',@_);
 }
 
-#=======================================================================
-#
-# all_language_codes ( [CODESET] )
-#
-#=======================================================================
-
 sub all_language_codes {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_codes("language",$codeset);
+   return Locale::Codes::_all_codes('language',@_);
 }
 
-
-#=======================================================================
-#
-# all_language_names ( [CODESET] )
-#
-#=======================================================================
-
 sub all_language_names {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_names("language",$codeset);
+   return Locale::Codes::_all_names('language',@_);
 }
 
-#=======================================================================
-#
-# rename_language ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub rename_language {
-   my($code,$new_name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_rename("language",$code,$new_name,$codeset,$nowarn);
+   return Locale::Codes::_rename('language',@_);
 }
 
-#=======================================================================
-#
-# add_language ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub add_language {
-   my($code,$name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_add_code("language",$code,$name,$codeset,$nowarn);
+   return Locale::Codes::_add_code('language',@_);
 }
 
-#=======================================================================
-#
-# delete_language ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_language {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code("language",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code('language',@_);
 }
 
-#=======================================================================
-#
-# add_language_alias ( NAME,NEW_NAME )
-#
-#=======================================================================
-
 sub add_language_alias {
-   my($name,$new_name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_add_alias("language",$name,$new_name,$nowarn);
+   return Locale::Codes::_add_alias('language',@_);
 }
 
-#=======================================================================
-#
-# delete_language_alias ( NAME )
-#
-#=======================================================================
-
 sub delete_language_alias {
-   my($name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_delete_alias("language",$name,$nowarn);
+   return Locale::Codes::_delete_alias('language',@_);
 }
 
-#=======================================================================
-#
-# rename_language_code ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub rename_language_code {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_rename_code("language",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_rename_code('language',@_);
 }
 
-#=======================================================================
-#
-# add_language_code_alias ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub add_language_code_alias {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_add_code_alias("language",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_add_code_alias('language',@_);
 }
 
-#=======================================================================
-#
-# delete_language_code_alias ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_language_code_alias {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code_alias("language",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code_alias('language',@_);
 }
 
 1;
index 5fb4e94..6d282d3 100644 (file)
@@ -26,35 +26,37 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-languages. The ones currently supported are:
+languages. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $lang = code2language('en','alpha-2');
+   $lang = code2language('en',LOCALE_CODE_ALPHA_2);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha-2>
+=item B<alpha-2, LOCALE_LANG_ALPHA_2>
 
 This is the set of two-letter (lowercase) codes from ISO 639-1, such
 as 'he' for Hebrew.  It also includes additions to this set included
 in the IANA language registry.
 
-This code set is identified with the symbol C<LOCALE_LANG_ALPHA_2>.
-
 This is the default code set.
 
-=item B<alpha-3>
+=item B<alpha-3, LOCALE_LANG_ALPHA_3>
 
 This is the set of three-letter (lowercase) bibliographic codes from
 ISO 639-2 and 639-5, such as 'heb' for Hebrew.  It also includes
 additions to this set included in the IANA language registry.
 
-This code set is identified with the symbol C<LOCALE_LANG_ALPHA_3>.
-
-=item B<term>
+=item B<term, LOCALE_LANG_TERM>
 
 This is the set of three-letter (lowercase) terminologic codes from
 ISO 639.
 
-This code set is identified with the symbol C<LOCALE_LANG_TERM>.
-
 =back
 
 =head1 ROUTINES
index 9f3db49..eb7ffdf 100644 (file)
@@ -2,7 +2,7 @@ package Locale::Codes::Language_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'get_codes' is run.
-#    Generated on: Wed Aug 31 08:03:26 EDT 2011
+#    Generated on: Wed Nov 30 12:08:02 EST 2011
 
 =pod
 
@@ -37,7 +37,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.18';
+$VERSION='3.20';
 
 $Locale::Codes::Data{'language'}{'id'} = '7819';
 
@@ -56119,7 +56119,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
 };
 
 $Locale::Codes::Data{'language'}{'code2id'} = {
-   q(alpha2) => {
+   q(alpha-2) => {
       q(aa) => [
          q(0001),
          q(0),
@@ -56861,7 +56861,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       },
-   q(alpha3) => {
+   q(alpha-3) => {
       q(aaa) => [
          q(0537),
          q(0),
@@ -88240,7 +88240,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
 };
 
 $Locale::Codes::Data{'language'}{'id2code'} = {
-   q(alpha2) => {
+   q(alpha-2) => {
       q(0001) => q(aa),
       q(0002) => q(ab),
       q(0009) => q(af),
@@ -88427,7 +88427,7 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
       q(0482) => q(zu),
       q(0536) => q(sh),
       },
-   q(alpha3) => {
+   q(alpha-3) => {
       q(0001) => q(aar),
       q(0002) => q(abk),
       q(0003) => q(ace),
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm
new file mode 100644 (file)
index 0000000..650983a
--- /dev/null
@@ -0,0 +1,176 @@
+package Locale::Codes::Language_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Wed Nov 30 12:22:00 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::Language_Retired - retired language codes for the Locale::Codes::Language module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::Language module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
+   q(jw) => q(Javanese),
+   q(in) => q(Indonesian),
+   q(mo) => q(Moldavian),
+   q(iw) => q(Hebrew),
+   q(ji) => q(Yiddish),
+};
+
+$Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
+   q(bjq) => q(Southern Betsimisaraka Malagasy),
+   q(dkl) => q(Kolum So Dogon),
+   q(dha) => q(Dhanwar (India)),
+   q(nbf) => q(Naxi),
+   q(mja) => q(Mahei),
+   q(tie) => q(Tingal),
+   q(tkk) => q(Takpa),
+   q(ayx) => q(Ayi (China)),
+   q(noo) => q(Nootka),
+};
+
+$Locale::Codes::Retired{'language'}{'term'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'language'}{'alpha-2'}{'name'} = {
+   q(kirundi) => [ q(rn), q(Kirundi) ],
+   q(latvian, lettish) => [ q(lv), q(Latvian, Lettish) ],
+   q(greek, modern (1453-)) => [ q(el), q(Greek, Modern (1453-)) ],
+   q(moldavian) => [ q(mo), q(Moldavian) ],
+   q(volapük) => [ q(vo), q(Volapük) ],
+   q(frisian) => [ q(fy), q(Frisian) ],
+   q(bihari) => [ q(bh), q(Bihari) ],
+   q(malay) => [ q(ms), q(Malay) ],
+   q(byelorussian) => [ q(be), q(Byelorussian) ],
+   q(sotho, southern) => [ q(st), q(Sotho, Southern) ],
+   q(norwegian bokmal) => [ q(nb), q(Norwegian Bokmal) ],
+   q(greek) => [ q(el), q(Greek) ],
+   q(faeroese) => [ q(fo), q(Faeroese) ],
+   q((afan) oromo) => [ q(om), q((Afan) Oromo) ],
+   q(laothian) => [ q(lo), q(Laothian) ],
+   q(khmer) => [ q(km), q(Khmer) ],
+   q(scots gaelic) => [ q(gd), q(Scots Gaelic) ],
+   q(marshall) => [ q(mh), q(Marshall) ],
+   q(norwegian bokmål) => [ q(nb), q(Norwegian Bokmål) ],
+   q(bhutani) => [ q(dz), q(Bhutani) ],
+   q(singhalese) => [ q(si), q(Singhalese) ],
+   q(bengali; bangla) => [ q(bn), q(Bengali; Bangla) ],
+   q(chichewa; nyanja) => [ q(ny), q(Chichewa; Nyanja) ],
+   q(inupiak) => [ q(ik), q(Inupiak) ],
+   q(greenlandic) => [ q(kl), q(Greenlandic) ],
+   q(sangro) => [ q(sg), q(Sangro) ],
+   q(ossetian; ossetic) => [ q(os), q(Ossetian; Ossetic) ],
+   q(sami) => [ q(se), q(Sami) ],
+   q(setswana) => [ q(tn), q(Setswana) ],
+   q(punjabi) => [ q(pa), q(Punjabi) ],
+   q(tegulu) => [ q(te), q(Tegulu) ],
+   q(sotho) => [ q(st), q(Sotho) ],
+   q(cambodian) => [ q(km), q(Cambodian) ],
+   q(tonga) => [ q(to), q(Tonga) ],
+   q(interlingua) => [ q(ia), q(Interlingua) ],
+   q(rhaeto-romance) => [ q(rm), q(Rhaeto-Romance) ],
+   q(sinhalese) => [ q(si), q(Sinhalese) ],
+   q(gallegan) => [ q(gl), q(Gallegan) ],
+   q(occitan) => [ q(oc), q(Occitan) ],
+   q(swahili) => [ q(sw), q(Swahili) ],
+   q(gaelic (scots)) => [ q(gd), q(Gaelic (Scots)) ],
+   q(siswati) => [ q(ss), q(Siswati) ],
+   q(letzeburgesch) => [ q(lb), q(Letzeburgesch) ],
+   q(pashto, pushto) => [ q(ps), q(Pashto, Pushto) ],
+   q(sesotho) => [ q(st), q(Sesotho) ],
+   q(fiji) => [ q(fj), q(Fiji) ],
+};
+
+$Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
+   q(dhanwar (india)) => [ q(dha), q(Dhanwar (India)) ],
+   q(ayi (china)) => [ q(ayx), q(Ayi (China)) ],
+   q(hainyaxo bozo) => [ q(bzx), q(Hainyaxo Bozo) ],
+   q(dutch, middle (ca.1050-1350)) => [ q(dum), q(Dutch, Middle (ca.1050-1350)) ],
+   q(dogri) => [ q(doi), q(Dogri) ],
+   q(kumak) => [ q(nee), q(Kumak) ],
+   q(waray) => [ q(war), q(Waray) ],
+   q(creoles and pidgins ) => [ q(crp), q(Creoles and pidgins ) ],
+   q(kwato) => [ q(kop), q(Kwato) ],
+   q(mende) => [ q(men), q(Mende) ],
+   q(nung (myanmar)) => [ q(nun), q(Nung (Myanmar)) ],
+   q(english, middle (1100-1500)) => [ q(enm), q(English, Middle (1100-1500)) ],
+   q(dumpu) => [ q(wtf), q(Dumpu) ],
+   q(ounge) => [ q(oue), q(Ounge) ],
+   q(turkish, ottoman (1500-1928)) => [ q(ota), q(Turkish, Ottoman (1500-1928)) ],
+   q(kag-fer-jiir-koor-ror-us-zuksun) => [ q(gel), q(Kag-Fer-Jiir-Koor-Ror-Us-Zuksun) ],
+   q(creoles and pidgins, portuguese-based ) => [ q(cpp), q(Creoles and pidgins, Portuguese-based ) ],
+   q(provencal, old (to 1500)) => [ q(pro), q(Provencal, Old (to 1500)) ],
+   q(fang) => [ q(fan), q(Fang) ],
+   q(miri) => [ q(mrg), q(Miri) ],
+   q(yonggom) => [ q(yon), q(Yonggom) ],
+   q(bemba) => [ q(bem), q(Bemba) ],
+   q(kamba) => [ q(kam), q(Kamba) ],
+   q(south american indian (other)) => [ q(sai), q(South American Indian (Other)) ],
+   q(konkani) => [ q(kok), q(Konkani) ],
+   q(creoles and pidgins, english based) => [ q(cpe), q(Creoles and pidgins, English based) ],
+   q(nakama) => [ q(nib), q(Nakama) ],
+   q(german, old high (ca.750-1050)) => [ q(goh), q(German, Old High (ca.750-1050)) ],
+   q(basa) => [ q(bas), q(Basa) ],
+   q(norse, old) => [ q(non), q(Norse, Old) ],
+   q(gbaya) => [ q(gba), q(Gbaya) ],
+   q(mahei) => [ q(mja), q(Mahei) ],
+   q(german, middle high (ca.1050-1500)) => [ q(gmh), q(German, Middle High (ca.1050-1500)) ],
+   q(duduela) => [ q(duk), q(Duduela) ],
+   q(french, middle (ca.1400-1600)) => [ q(frm), q(French, Middle (ca.1400-1600)) ],
+   q(burum-mindik) => [ q(bmu), q(Burum-Mindik) ],
+   q(mbedam) => [ q(xmd), q(Mbedam) ],
+   q(tingal) => [ q(tie), q(Tingal) ],
+   q(kolum so dogon) => [ q(dkl), q(Kolum So Dogon) ],
+   q(french, old (842-ca.1400)) => [ q(fro), q(French, Old (842-ca.1400)) ],
+   q(ainu) => [ q(ain), q(Ainu) ],
+   q(nootka) => [ q(noo), q(Nootka) ],
+   q(irish, middle (900-1200)) => [ q(mga), q(Irish, Middle (900-1200)) ],
+   q(irish, old (to 900)) => [ q(sga), q(Irish, Old (to 900)) ],
+   q(mari) => [ q(chm), q(Mari) ],
+   q(bekwil) => [ q(bkw), q(Bekwil) ],
+   q(greek, ancient (to 1453)) => [ q(grc), q(Greek, Ancient (to 1453)) ],
+   q(walamo) => [ q(wal), q(Walamo) ],
+   q(bantu (other)) => [ q(bnt), q(Bantu (Other)) ],
+   q(apalik) => [ q(apo), q(Apalik) ],
+   q(creoles and pidgins, french-based ) => [ q(cpf), q(Creoles and pidgins, French-based ) ],
+   q(persian, old (ca.600-400 b.c.)) => [ q(peo), q(Persian, Old (ca.600-400 B.C.)) ],
+   q(takpa) => [ q(tkk), q(Takpa) ],
+   q(english, old (ca.450-1100)) => [ q(ang), q(English, Old (ca.450-1100)) ],
+   q(were) => [ q(wei), q(Were) ],
+};
+
+$Locale::Codes::Retired{'language'}{'term'}{'name'} = {
+};
+
+
+1;
index 5b3cdad..3ea6db1 100644 (file)
@@ -14,6 +14,7 @@ use Carp;
 use Locale::Codes;
 use Locale::Codes::Constants;
 use Locale::Codes::Script_Codes;
+use Locale::Codes::Script_Retired;
 
 #=======================================================================
 #       Public Global Variables
@@ -21,7 +22,7 @@ use Locale::Codes::Script_Codes;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.18';
+$VERSION='3.20';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2script
                 script2code
@@ -32,243 +33,56 @@ $VERSION='3.18';
                 LOCALE_SCRIPT_NUMERIC
                );
 
-sub _code {
-   my($code,$codeset) = @_;
-   $code = ""  if (! $code);
-
-   $codeset = LOCALE_SCRIPT_DEFAULT  if (! defined($codeset)  ||  $codeset eq "");
-
-   if ($codeset =~ /^\d+$/) {
-      if      ($codeset ==  LOCALE_SCRIPT_ALPHA) {
-         $codeset = "alpha";
-      } elsif ($codeset ==  LOCALE_SCRIPT_NUMERIC) {
-         $codeset = "num";
-      } else {
-         return (1);
-      }
-   }
-
-   if      ($codeset eq "alpha") {
-      $code    = ucfirst(lc($code));
-   } elsif ($codeset eq "num") {
-      if (defined($code)  &&  $code ne "") {
-         return (1)  unless ($code =~ /^\d+$/);
-         $code    = sprintf("%.3d", $code);
-      }
-   } else {
-      return (1);
-   }
-
-   return (0,$code,$codeset);
-}
-
-#=======================================================================
-#
-# code2script ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub code2script {
-   my($err,$code,$codeset) = _code(@_);
-   return undef  if ($err  ||
-                     ! defined $code);
-
-   return Locale::Codes::_code2name("script",$code,$codeset);
+   return Locale::Codes::_code2name('script',@_);
 }
 
-#=======================================================================
-#
-# script2code ( SCRIPT [,CODESET] )
-#
-#=======================================================================
-
 sub script2code {
-   my($script,$codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return undef  if ($err  ||
-                     ! defined $script);
-
-   return Locale::Codes::_name2code("script",$script,$codeset);
+   return Locale::Codes::_name2code('script',@_);
 }
 
-#=======================================================================
-#
-# script_code2code ( CODE,CODESET_IN,CODESET_OUT )
-#
-#=======================================================================
-
 sub script_code2code {
-   (@_ == 3) or croak "script_code2code() takes 3 arguments!";
-   my($code,$inset,$outset) = @_;
-   my($err,$tmp);
-   ($err,$code,$inset) = _code($code,$inset);
-   return undef  if ($err);
-   ($err,$tmp,$outset) = _code("",$outset);
-   return undef  if ($err);
-
-   return Locale::Codes::_code2code("script",$code,$inset,$outset);
+   return Locale::Codes::_code2code('script',@_);
 }
 
-#=======================================================================
-#
-# all_script_codes ( [CODESET] )
-#
-#=======================================================================
-
 sub all_script_codes {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_codes("script",$codeset);
+   return Locale::Codes::_all_codes('script',@_);
 }
 
-
-#=======================================================================
-#
-# all_script_names ( [CODESET] )
-#
-#=======================================================================
-
 sub all_script_names {
-   my($codeset) = @_;
-   my($err,$tmp);
-   ($err,$tmp,$codeset) = _code("",$codeset);
-   return ()  if ($err);
-
-   return Locale::Codes::_all_names("script",$codeset);
+   return Locale::Codes::_all_names('script',@_);
 }
 
-#=======================================================================
-#
-# rename_script ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub rename_script {
-   my($code,$new_name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_rename("script",$code,$new_name,$codeset,$nowarn);
+   return Locale::Codes::_rename('script',@_);
 }
 
-#=======================================================================
-#
-# add_script ( CODE,NAME [,CODESET] )
-#
-#=======================================================================
-
 sub add_script {
-   my($code,$name,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_add_code("script",$code,$name,$codeset,$nowarn);
+   return Locale::Codes::_add_code('script',@_);
 }
 
-#=======================================================================
-#
-# delete_script ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_script {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset) = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code("script",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code('script',@_);
 }
 
-#=======================================================================
-#
-# add_script_alias ( NAME,NEW_NAME )
-#
-#=======================================================================
-
 sub add_script_alias {
-   my($name,$new_name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_add_alias("script",$name,$new_name,$nowarn);
+   return Locale::Codes::_add_alias('script',@_);
 }
 
-#=======================================================================
-#
-# delete_script_alias ( NAME )
-#
-#=======================================================================
-
 sub delete_script_alias {
-   my($name,$nowarn) = @_;
-   $nowarn   = (defined($nowarn)  &&  $nowarn eq "nowarn" ? 1 : 0);
-
-   return Locale::Codes::_delete_alias("script",$name,$nowarn);
+   return Locale::Codes::_delete_alias('script',@_);
 }
 
-#=======================================================================
-#
-# rename_script_code ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub rename_script_code {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_rename_code("script",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_rename_code('script',@_);
 }
 
-#=======================================================================
-#
-# add_script_code_alias ( CODE,NEW_CODE [,CODESET] )
-#
-#=======================================================================
-
 sub add_script_code_alias {
-   my($code,$new_code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-   ($err,$new_code,$codeset) = _code($new_code,$codeset)  if (! $err);
-
-   return Locale::Codes::_add_code_alias("script",$code,$new_code,$codeset,$nowarn);
+   return Locale::Codes::_add_code_alias('script',@_);
 }
 
-#=======================================================================
-#
-# delete_script_code_alias ( CODE [,CODESET] )
-#
-#=======================================================================
-
 sub delete_script_code_alias {
-   my($code,@args) = @_;
-   my $nowarn   = 0;
-   $nowarn      = 1, pop(@args)  if (@args  &&  $args[$#args] eq "nowarn");
-   my $codeset  = shift(@args);
-   my $err;
-   ($err,$code,$codeset)     = _code($code,$codeset);
-
-   return Locale::Codes::_delete_code_alias("script",$code,$codeset,$nowarn);
+   return Locale::Codes::_delete_code_alias('script',@_);
 }
 
 1;
index 64becb7..8fd8259 100644 (file)
@@ -28,29 +28,33 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-scripts. The ones currently supported are:
+scripts. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $script = code2script('phnx','alpha');
+   $script = code2script('phnx',LOCALE_SCRIPT_ALPHA);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha>
+=item B<alpha, LOCALE_SCRIPT_ALPHA>
 
 This is a set of four-letter (capitalized) codes from ISO 15924
 such as 'Phnx' for Phoenician.  It also includes additions to this
 set included in the IANA language registry.
 
-This code set is identified with the symbol C<LOCALE_SCRIPT_ALPHA>.
-
 The Zxxx, Zyyy, and Zzzz codes are not used.
 
 This is the default code set.
 
-=item B<numeric>
+=item B<num, LOCALE_SCRIPT_NUMERIC>
 
 This is a set of three-digit numeric codes from ISO 15924 such as 115
 for Phoenician.
 
-This code set is identified with the symbol C<LOCALE_SCRIPT_NUMERIC>.
-
 =back
 
 =head1 ROUTINES
index dd00ab5..0c08293 100644 (file)
@@ -2,7 +2,7 @@ package Locale::Codes::Script_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'get_codes' is run.
-#    Generated on: Wed Aug 31 08:04:07 EDT 2011
+#    Generated on: Wed Nov 30 12:09:11 EST 2011
 
 =pod
 
@@ -37,7 +37,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.18';
+$VERSION='3.20';
 
 $Locale::Codes::Data{'script'}{'id'} = '0158';
 
diff --git a/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm b/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm
new file mode 100644 (file)
index 0000000..592aacf
--- /dev/null
@@ -0,0 +1,88 @@
+package Locale::Codes::Script_Retired;
+
+# This file was automatically generated.  Any changes to this file will
+# be lost the next time 'deprecate_codes' is run.
+#    Generated on: Wed Nov 30 12:22:00 EST 2011
+
+=pod
+
+=head1 NAME
+
+Locale::Codes::Script_Retired - retired script codes for the Locale::Codes::Script module
+
+=head1 SYNOPSIS
+
+This module contains data used by the Locale::Codes::Script module. It is
+not intended to be used directly, and contains no calleable routines.
+
+=head1 AUTHOR
+
+See Locale::Codes for full author history.
+
+Currently maintained by Sullivan Beck (sbeck@cpan.org).
+
+=head1 COPYRIGHT
+
+   Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
+   Copyright (c) 2001-2010 Neil Bowers
+   Copyright (c) 2010-2011 Sullivan Beck
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=cut
+
+use strict;
+use warnings;
+require 5.002;
+
+our($VERSION);
+$VERSION='3.20';
+
+$Locale::Codes::Retired{'script'}{'num'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'script'}{'alpha'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'script'}{'num'}{'name'} = {
+};
+
+$Locale::Codes::Retired{'script'}{'alpha'}{'name'} = {
+   q(sindhi) => [ q(Sind), q(Sindhi) ],
+   q(ol chiki (ol cemet, ol, santali)) => [ q(Olck), q(Ol Chiki (Ol Cemet, Ol, Santali)) ],
+   q(miao (pollard)) => [ q(Plrd), q(Miao (Pollard)) ],
+   q(hangul (hangul, hangeul)) => [ q(Hang), q(Hangul (Hangul, Hangeul)) ],
+   q(sharada, sarada) => [ q(Shrd), q(Sharada, Sarada) ],
+   q(khudawadi, sindhi) => [ q(Sind), q(Khudawadi, Sindhi) ],
+   q(myanmar (burmese)) => [ q(Mymr), q(Myanmar (Burmese)) ],
+   q(tifinagh (berber)) => [ q(Tfng), q(Tifinagh (Berber)) ],
+   q(moon (moon code, moon script, moon type)) => [ q(Moon), q(Moon (Moon code, Moon script, Moon type)) ],
+   q(cuneiform, sumero-akkadian) => [ q(Xsux), q(Cuneiform, Sumero-Akkadian) ],
+   q(ethiopic (geez)) => [ q(Ethi), q(Ethiopic (Geez)) ],
+   q(warang citi (varang kshiti)) => [ q(Wara), q(Warang Citi (Varang Kshiti)) ],
+   q(tagalog (baybayin, alibata)) => [ q(Tglg), q(Tagalog (Baybayin, Alibata)) ],
+   q(deseret (mormon)) => [ q(Dsrt), q(Deseret (Mormon)) ],
+   q((alias for hiragana + katakana)) => [ q(Hrkt), q((alias for Hiragana + Katakana)) ],
+   q(mandaic, mandaean) => [ q(Mand), q(Mandaic, Mandaean) ],
+   q(tai tham (lanna)) => [ q(Lana), q(Tai Tham (Lanna)) ],
+   q(devanagari (nagari)) => [ q(Deva), q(Devanagari (Nagari)) ],
+   q(shavian (shaw)) => [ q(Shaw), q(Shavian (Shaw)) ],
+   q(indus (harappan)) => [ q(Inds), q(Indus (Harappan)) ],
+   q(lisu (fraser)) => [ q(Lisu), q(Lisu (Fraser)) ],
+   q(lepcha (rong)) => [ q(Lepc), q(Lepcha (Rong)) ],
+   q(mro, mru) => [ q(Mroo), q(Mro, Mru) ],
+   q(meitei mayek (meithei, meetei)) => [ q(Mtei), q(Meitei Mayek (Meithei, Meetei)) ],
+   q(tiruta) => [ q(Tirh), q(Tiruta) ],
+   q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [ q(Nkgb), q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)) ],
+   q(old north arabian (ancient north arabian)) => [ q(Narb), q(Old North Arabian (Ancient North Arabian)) ],
+   q(takri, takri, tankri) => [ q(Takr), q(Takri, Takri, Tankri) ],
+   q(rejang (redjang, kaganga)) => [ q(Rjng), q(Rejang (Redjang, Kaganga)) ],
+   q(han (hanzi, kanji, hanja)) => [ q(Hani), q(Han (Hanzi, Kanji, Hanja)) ],
+   q(old turkic, orkhon runic) => [ q(Orkh), q(Old Turkic, Orkhon Runic) ],
+   q(hanunoo (hanunoo)) => [ q(Hano), q(Hanunoo (Hanunoo)) ],
+   q(duployan shorthand, duployan stenography) => [ q(Dupl), q(Duployan shorthand, Duployan stenography) ],
+};
+
+
+1;
index f9faed9..71d9753 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.18';
+$VERSION='3.20';
 
 our (@ISA,@EXPORT);
 
index e2b06ca..14a9b0a 100644 (file)
@@ -20,9 +20,6 @@ Locale::Country - standard codes for country identification
 
 =head1 DESCRIPTION
 
-This module exists as both Locale::Codes::Country and Locale::Country (for
-historical reasons).  The Locale::Country module will continue to work.
-
 The C<Locale::Country> module provides access to several code sets
 that can be used for identifying countries, such as those defined in
 ISO 3166-1.
@@ -34,28 +31,32 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-countries. The ones currently supported are:
+countries. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $country = code2country('jp','alpha-2');
+   $country = code2country('jp',LOCALE_CODE_ALPHA_2);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha-2>
+=item B<alpha-2, LOCALE_CODE_ALPHA_2>
 
 This is the set of two-letter (lowercase) codes from ISO 3166-1, such
 as 'tv' for Tuvalu.
 
-This code set is identified with the symbol C<LOCALE_CODE_ALPHA_2>.
-
 This is the default code set.
 
-=item B<alpha-3>
+=item B<alpha-3, LOCALE_CODE_ALPHA_3>
 
 This is the set of three-letter (lowercase) codes from ISO 3166-1,
 such as 'brb' for Barbados. These codes are actually defined and
 maintained by the U.N. Statistics division.
 
-This code set is identified with the symbol C<LOCALE_CODE_ALPHA_3>.
-
-=item B<numeric>
+=item B<numeric, LOCALE_CODE_NUMERIC>
 
 This is the set of three-digit numeric codes from ISO 3166-1, such as
 064 for Bhutan. These codes are actually defined and maintained by the
@@ -64,22 +65,16 @@ U.N. Statistics division.
 If a 2-digit code is entered, it is converted to 3 digits by prepending
 a 0.
 
-This code set is identified with the symbol C<LOCALE_CODE_NUMERIC>.
-
-=item B<fips-10>
+=item B<fips-10, LOCALE_CODE_FIPS>
 
 The FIPS 10 data are two-letter (uppercase) codes assigned by the
 National Geospatial-Intelligence Agency.
 
-This code set is identified with the symbol C<LOCALE_CODE_FIPS>.
-
-=item B<dom>
+=item B<dom, LOCALE_CODE_DOM>
 
 The IANA is responsible for assigning two-letter (uppercase) top-level
 domain names to each country.
 
-This code set is identified with the symbol C<LOCALE_CODE_DOM>.
-
 =back
 
 =head1 ROUTINES
@@ -189,11 +184,9 @@ Official source of the top-level domain names.
 
 =item B<https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html>
 
-Although not the official source of any of the data, the World
-Factbook maintained by the CIA is a great source of the data,
-especially since I can't get the official data from the ISO. Since
-it's maintained by the CIA, and since it's updated every two weeks, I
-use this as the source for some missing data.
+The World Factbook maintained by the CIA is a potential source of
+the data.  Unfortunately, it adds/preserves non-standard codes, so it is no
+longer used as a source of data.
 
 =item B<http://www.statoids.com/wab.html>
 
index 353f232..1ab1cd5 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.18';
+$VERSION='3.20';
 
 our (@ISA,@EXPORT);
 
index 1ac0f02..d2048de 100644 (file)
@@ -17,9 +17,6 @@ Locale::Currency - standard codes for currency identification
 
 =head1 DESCRIPTION
 
-This module exists as both Locale::Codes::Currency and Locale::Currency (for
-historical reasons).  The Locale::Currency module will continue to work.
-
 The C<Locale::Currency> module provides access to standard codes used
 for identifying currencies and funds, such as those defined in ISO 4217.
 
@@ -30,11 +27,19 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-currencies. The ones currently supported are:
+currencies. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $curr = code2currency('usd','alpha');
+   $curr = code2currency('usd',LOCALE_CURR_ALPHA);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha>
+=item B<alpha, LOCALE_CURR_ALPHA>
 
 This is a set of three-letter (uppercase) codes from ISO 4217 such
 as EUR for Euro.
@@ -43,16 +48,12 @@ Two of the codes specified by the standard (XTS which is reserved
 for testing purposes and XXX which is for transactions where no
 currency is involved) are omitted.
 
-This code set is identified with the symbol C<LOCALE_CURR_ALPHA>.
-
 This is the default code set.
 
-=item B<num>
+=item B<num, LOCALE_CURR_NUMERIC>
 
 This is the set of three-digit numeric codes from ISO 4217.
 
-This code set is identified with the symbol C<LOCALE_CURR_NUMERIC>.
-
 =back
 
 =head1 ROUTINES
index e7fcf82..e5a813d 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.18';
+$VERSION='3.20';
 
 our (@ISA,@EXPORT);
 
index 9e7e13f..bb93bbe 100644 (file)
@@ -16,9 +16,6 @@ Locale::Language - standard codes for language identification
 
 =head1 DESCRIPTION
 
-This module exists as both Locale::Codes::Language and Locale::Language (for
-historical reasons).  The Locale::Language module will continue to work.
-
 The C<Locale::Language> module provides access to standard codes used
 for identifying languages, such as those as defined in ISO 639.
 
@@ -29,35 +26,37 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-languages. The ones currently supported are:
+languages. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $lang = code2language('en','alpha-2');
+   $lang = code2language('en',LOCALE_CODE_ALPHA_2);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha-2>
+=item B<alpha-2, LOCALE_LANG_ALPHA_2>
 
 This is the set of two-letter (lowercase) codes from ISO 639-1, such
 as 'he' for Hebrew.  It also includes additions to this set included
 in the IANA language registry.
 
-This code set is identified with the symbol C<LOCALE_LANG_ALPHA_2>.
-
 This is the default code set.
 
-=item B<alpha-3>
+=item B<alpha-3, LOCALE_LANG_ALPHA_3>
 
 This is the set of three-letter (lowercase) bibliographic codes from
 ISO 639-2 and 639-5, such as 'heb' for Hebrew.  It also includes
 additions to this set included in the IANA language registry.
 
-This code set is identified with the symbol C<LOCALE_LANG_ALPHA_3>.
-
-=item B<term>
+=item B<term, LOCALE_LANG_TERM>
 
 This is the set of three-letter (lowercase) terminologic codes from
 ISO 639.
 
-This code set is identified with the symbol C<LOCALE_LANG_TERM>.
-
 =back
 
 =head1 ROUTINES
index 2b1ff3a..e296f22 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.18';
+$VERSION='3.20';
 
 our (@ISA,@EXPORT);
 
index 2e7910e..d5fb448 100644 (file)
@@ -18,9 +18,6 @@ Locale::Script - standard codes for script identification
 
 =head1 DESCRIPTION
 
-This module exists as both Locale::Codes::Script and Locale::Script (for
-historical reasons).  The Locale::Script module will continue to work.
-
 The C<Locale::Script> module provides access to standards codes used
 for identifying scripts, such as those defined in ISO 15924.
 
@@ -31,29 +28,33 @@ specifies the code set to use. If not specified, the default ISO
 =head1 SUPPORTED CODE SETS
 
 There are several different code sets you can use for identifying
-scripts. The ones currently supported are:
+scripts. A code set may be specified using either a name, or a
+constant that is automatically exported by this module.
+
+For example, the two are equivalent:
+
+   $script = code2script('phnx','alpha');
+   $script = code2script('phnx',LOCALE_SCRIPT_ALPHA);
+
+The codesets currently supported are:
 
 =over 4
 
-=item B<alpha>
+=item B<alpha, LOCALE_SCRIPT_ALPHA>
 
 This is a set of four-letter (capitalized) codes from ISO 15924
 such as 'Phnx' for Phoenician.  It also includes additions to this
 set included in the IANA language registry.
 
-This code set is identified with the symbol C<LOCALE_SCRIPT_ALPHA>.
-
 The Zxxx, Zyyy, and Zzzz codes are not used.
 
 This is the default code set.
 
-=item B<numeric>
+=item B<num, LOCALE_SCRIPT_NUMERIC>
 
 This is a set of three-digit numeric codes from ISO 15924 such as 115
 for Phoenician.
 
-This code set is identified with the symbol C<LOCALE_SCRIPT_NUMERIC>.
-
 =back
 
 =head1 ROUTINES
index f6d422d..7728aa7 100644 (file)
@@ -125,6 +125,10 @@ LOCALE_CODE_NUMERIC
 
 rou LOCALE_CODE_ALPHA_3 ~ Romania
 
+zr  ~ _undef_
+
+zr retired  ~ Zaire
+
 ";
 
 print "code2country...\n";
index 7f8a7dd..77bea86 100644 (file)
@@ -19,7 +19,6 @@ unshift(@INC,$dir);
 use Locale::Codes::LangExt;
 
 %type = ( "LOCALE_LANGEXT_ALPHA"    => LOCALE_LANGEXT_ALPHA,
-          "LOCALE_LANGEXT_NUMERIC"  => LOCALE_LANGEXT_NUMERIC,
         );
 
 sub test {
diff --git a/cpan/Locale-Codes/t/code2langfam.t b/cpan/Locale-Codes/t/code2langfam.t
new file mode 100644 (file)
index 0000000..691a69f
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/perl -w
+
+require 5.002;
+
+$runtests=shift(@ARGV);
+if ( -f "t/testfunc.pl" ) {
+  require "t/testfunc.pl";
+  $dir="./lib";
+  $tdir="t";
+} elsif ( -f "testfunc.pl" ) {
+  require "testfunc.pl";
+  $dir="../lib";
+  $tdir=".";
+} else {
+  die "ERROR: cannot find testfunc.pl\n";
+}
+
+unshift(@INC,$dir);
+use Locale::Codes::LangFam;
+
+%type = ( "LOCALE_LANGFAM_ALPHA"    => LOCALE_LANGFAM_ALPHA,
+        );
+
+sub test {
+   my(@test) = @_;
+   $test[1]  = $type{$test[1]}
+     if (@test == 2  &&  $test[1]  &&  exists $type{$test[1]});
+   return code2langfam(@test);
+}
+
+$tests = "
+
+zzz ~ _undef_
+
+apa
+   ~
+   Apache languages
+
+";
+
+print "code2langfam...\n";
+test_Func(\&test,$tests,$runtests);
+
+1;
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
index 21b3501..6e43a81 100644 (file)
@@ -19,7 +19,6 @@ unshift(@INC,$dir);
 use Locale::Codes::LangVar;
 
 %type = ( "LOCALE_LANGVAR_ALPHA"    => LOCALE_LANGVAR_ALPHA,
-          "LOCALE_LANGVAR_NUMERIC"  => LOCALE_LANGVAR_NUMERIC,
         );
 
 sub test {
index 379e33a..efbffd1 100644 (file)
@@ -150,6 +150,11 @@ Zaire
    ~
    _undef_
 
+Zaire
+retired
+   ~
+   zr
+
 Congo, The Democratic Republic of the
    ~
    cd
index 2f7b27e..0313f1a 100644 (file)
@@ -19,7 +19,6 @@ unshift(@INC,$dir);
 use Locale::Codes::LangExt;
 
 %type = ( "LOCALE_LANGEXT_ALPHA"    => LOCALE_LANGEXT_ALPHA,
-          "LOCALE_LANGEXT_NUMERIC"  => LOCALE_LANGEXT_NUMERIC,
         );
 
 sub test {
diff --git a/cpan/Locale-Codes/t/langfam2code.t b/cpan/Locale-Codes/t/langfam2code.t
new file mode 100644 (file)
index 0000000..b3026f0
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/perl -w
+
+require 5.002;
+
+$runtests=shift(@ARGV);
+if ( -f "t/testfunc.pl" ) {
+  require "t/testfunc.pl";
+  $dir="./lib";
+  $tdir="t";
+} elsif ( -f "testfunc.pl" ) {
+  require "testfunc.pl";
+  $dir="../lib";
+  $tdir=".";
+} else {
+  die "ERROR: cannot find testfunc.pl\n";
+}
+
+unshift(@INC,$dir);
+use Locale::Codes::LangFam;
+
+%type = ( "LOCALE_LANGFAM_ALPHA"    => LOCALE_LANGFAM_ALPHA,
+        );
+
+sub test {
+   my(@test) = @_;
+   $test[1]  = $type{$test[1]}
+     if (@test == 2  &&  $test[1]  &&  exists $type{$test[1]});
+   return langfam2code(@test);
+}
+
+$tests = "
+
+_blank_ ~ _undef_
+
+Apache languages
+   ~
+   apa
+
+";
+
+print "langfam2code...\n";
+test_Func(\&test,$tests,$runtests);
+
+1;
+# Local Variables:
+# mode: cperl
+# indent-tabs-mode: nil
+# cperl-indent-level: 3
+# cperl-continued-statement-offset: 2
+# cperl-continued-brace-offset: 0
+# cperl-brace-offset: 0
+# cperl-brace-imaginary-offset: 0
+# cperl-label-offset: -2
+# End:
index 199d70c..089c87b 100644 (file)
@@ -19,7 +19,6 @@ unshift(@INC,$dir);
 use Locale::Codes::LangVar;
 
 %type = ( "LOCALE_LANGVAR_ALPHA"    => LOCALE_LANGVAR_ALPHA,
-          "LOCALE_LANGVAR_NUMERIC"  => LOCALE_LANGVAR_NUMERIC,
         );
 
 sub test {
index 8f69765..af0663a 100644 (file)
@@ -123,6 +123,19 @@ L<IO::Compress::Base> has been upgraded from version 2.042 to version 2.043.
 
 =item *
 
+L<Locale::Codes> has been upgraded from version 3.18 to version 3.20.
+
+The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions now support retired codes.
+All codesets may be specified by a constant or by their name now. Previously,
+they were specified only by a constant.
+The alias_code function exists for backward compatibility. It has been replaced by rename_country_code.
+The alias_code function will be removed sometime after September, 2013.
+All work is now done in the central module (Locale::Codes). Previously, some was still done in the
+wrapper modules (Locale::Codes::*) but that is gone now.
+Added Language Family codes (langfam) as defined in ISO 639-5.
+
+=item *
+
 L<Module::Loaded> has been uprgaded from version 0.06 to version 0.08.
 
 =item *