Apache-Language

 view release on metacpan or  search on metacpan

Language.pm  view on Meta::CPAN

#$Id: Language.pm,v 1.18 1999/04/18 22:03:35 gozer Exp $
package Apache::Language;

use strict;
use DynaLoader ();
use vars qw(%CACHE $VERSION @ISA $DEBUG $DEFAULT_HANDLER $AUTOLOAD %DEBUG);

use Apache::Language::Constants;
use Apache::ModuleConfig;
use IO::File;
use Data::Dumper;
use I18N::LangTags qw(is_language_tag similarity_language_tag same_language_tag);

@ISA = qw(DynaLoader);
$VERSION = '0.14';
$DEBUG=0;

#print STDERR "Apache::Language $VERSION (gozer-devel) loaded\n";

$DEFAULT_HANDLER =  __PACKAGE__ . "::PlainFile";
eval "use $DEFAULT_HANDLER";
die "Can't load default LanguageHandler : $@" if $@;

if ($ENV{'MOD_PERL'}){
        __PACKAGE__->bootstrap($VERSION);
        if (Apache->module('Apache::Status')) {
		Apache::Status->menu_item('Language' => 'Apache::Language status', \&status);
		}
    }

sub CLEAR { warn "CLEAR method is not implemented in ",__PACKAGE__};
sub DELETE { warn "DELETE method is not implemented in ",__PACKAGE__};
#sub DESTROY { die "DESTROY method is not implemented in ",__PACKAGE__};

sub FIRSTKEY {
    warning("FIRSTKEY",L_TRACE);   
    my $self = shift;
    unless ($self->{Listed}){
        foreach my $container (@ {$self->{Handlers}}){
            $self->{Listed} = $container if $self->{$container}{listable};
            last if $self->{Listed};
            }
    }
    return undef unless $self->{Listed};
    my $conthash = $self->{$self->{Listed}}{DATA};
    return $self->{Listed}->firstkey($self,$self->{$self->{Listed}}{DATA});
    }

sub NEXTKEY {
    my ($self, $lastkey) = @_;
    warning("NEXTKEY($lastkey)",L_TRACE);
    return undef unless $self->{Listed};
    return $self->{Listed}->nextkey($self,$self->{$self->{Listed}}{DATA});
    }

sub FETCH {
    my ($self, $key, $test) = @_;
    warning("FETCH($key)",L_TRACE);
    #$key =~ m|^([^/]*)(/(.*))?$|;
    
    $key =~ m{^(([^\\/]|\\/|\\)*)/?(.*)$};
    $key = $1;
    my $lang = $3;
    
    $key =~ s|\\/|/|g;


    my $value;
    foreach my $container (@ {$self->{Handlers}}){
        warning("${container}::fetch($key)",L_MAX);
        my $conthash = $self->{$container}{DATA};



( run in 1.613 second using v1.01-cache-2.11-cpan-39bf76dae61 )