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 )