/usr/share/perl5/SVN/Web/I18N.pm is in libsvn-web-perl 0.63-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | package SVN::Web::I18N;
use strict;
use warnings;
use base qw(Locale::Maketext);
use Locale::Maketext::Lexicon;
our $VERSION = 0.53;
my $lh;
sub loc {
return $lh->maketext(@_);
}
sub loc_lang {
$lh = __PACKAGE__->get_handle(@_);
return;
}
sub add_directory {
my $directory = shift;
my $pattern = File::Spec->catfile( $directory, '*.[pm]o' );
$pattern =~ s{\\}{/}g; # Deal with Windows paths
Locale::Maketext::Lexicon->import(
{
'*' => [ Gettext => $pattern ],
_auto => 1,
_style => 'gettext',
_decode => 0,
}
);
return;
}
1;
__END__
=head1 NAME
SVN::Web::I18N - SVN::Web internationalisation class
=head1 SYNOPSIS
use SVN::Web::I18N; # Nothing exported
# Add a directory that contains .po and/or .mo files
SVN::Web::I18N::add_directory('/path/to/directory');
# Specify the current language
SVN::Web::I18N::loc_lang('en');
# Get a translated string
my $xlated = SVN::Web::I18N::loc('(a string to translate)');
=head1 DESCRIPTION
SVN::Web::I18N provides the interface through which SVN::Web is
internationalised, and how different localisations are implemented.
=head1 SUBROUTINES
=head2 SVN::Web::I18N::add_directory($path)
Adds a new directory to the list of directories in which localisations
will be found. Any F<*.po> and F<*.mo> files in this directory will
automatically be scanned for localisations, and added to the language
key given by the file's basename.
In case where two different directories both contain a localisation file
that defines the same localisation key for the same language, the
localisation key from the most recently added directory will be used.
=head2 SVN::Web::I18N::loc_lang($lang)
Selects the language to use for subsequent calls to C<loc()>. The C<$lang>
parameter should be a valid language name -- i.e., there must exist at
least one F<$lang.po> file in one of the directories used in a call to
C<SVN::Web::I18N::add_directory()>.
=head2 SVN::Web::I18N::loc($text)
and
=head2 SVN::Web::I18N::loc($text, $param1, ...)
Returns the localised form of C<$text> according to the localisation
selected by the most recent call to C<loc_lang()>.
If the localisation expects parameters to I<fill in> the localisation
result they should be passed as the second and subsequent arguments.
If C<$text> does not have a defined localised form it is returned
with the parameters interpolated in to it.
=head1 SEE ALSO
L<Locale::Maketext>, L<Locale::Maketext::Lexicon>, L<SVN::Web>
=head1 AUTHORS
Nik Clayton C<< <nik@FreeBSD.org> >>
=head1 COPYRIGHT
Copyright 2006-2007 by Nik Clayton C<< <nik@FreeBSD.org> >>.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See L<http://www.perl.com/perl/misc/Artistic.html>
=cut
|