Apache-Language

 view release on metacpan or  search on metacpan

Language/PlainFile.pm  view on Meta::CPAN

package Apache::Language::PlainFile;

use strict;
use Apache::Language::Constants;
use vars qw($VERSION);

$VERSION = '0.03';

sub modified {
    my ($class, $data, $cfg) = @_;
    my $lastmod = (stat $cfg->{DictName})[9];
    return $lastmod > $cfg->{LastModified};
}

sub store {
    my ($class, $data, $cfg, $key, $lang, $value) = @_;
    $cfg->{DATA}{$key}{$lang} = $value;
    return L_OK;
    }

sub fetch {
    my ($class, $data, $cfg, $key, $lang) = @_;	
    return $cfg->{DATA}{$key}{$lang} if $lang;  
    
    my $variant = $data->best_lang(keys % {$cfg->{DATA}{$key}});
    return $cfg->{DATA}{$key}{$variant} if $variant;
    return undef;     
}

sub firstkey {
    my ($class, $data, $cfg) = @_;
    my $a = keys % {$cfg->{DATA}};
    return each % {$cfg->{DATA}};
    }

sub nextkey {
    my ($class, $data, $cfg, $lastkey) = @_;
    return each % {$cfg->{DATA}};
    }

    
sub initialize {
            my ($self, $data, $cfg) = @_;
            my $filename = $data->filename;
            
            if ($data->package =~ /^Apache::ROOT/)
				{
				#This is under Apache::Registry, so simply append .dic to the script name
				$filename =~ s/^(.*)$/$1.dic/;
				}
            else {
                $filename =~ s/\.[^.]*$/.dic/;		#Find the language file
                }
            $cfg->{DictName} = $filename;
            $cfg->{LastModified} = (stat $filename)[9];
            my $fh = IO::File->new;
			$fh->open($filename) or return L_DECLINED;

		local($/) = "";		#read untill empty line
		while (<$fh>){
			#this should be more carefully validating stuff..
			my ($lang, $code) = /([^:]*):(\w+)/ or last;
			unless ($code){
                warn __PACKAGE__ . ": bad syntax in $filename ($_)";
                return L_ERROR;
                }
			my $string = <$fh> if defined($fh) or "No string found";
			$cfg->{DATA}{$code}{$lang} = $string;
			}	
		$fh->close;
        return L_OK;
}
1;
__END__

=head1 NAME

Apache::Language::PlainFile - Default LanguageHandler under Apache::Language

=head1 SYNOPSIS

  Since it's the default handler, it never needs to be activated.

=head1 DESCRIPTION



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