merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
This commit is contained in:
commit
7ef0d62730
3629 changed files with 1139935 additions and 0 deletions
115
third_party/git/perl/Git/I18N.pm
vendored
Normal file
115
third_party/git/perl/Git/I18N.pm
vendored
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
package Git::I18N;
|
||||
use 5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
BEGIN {
|
||||
require Exporter;
|
||||
if ($] < 5.008003) {
|
||||
*import = \&Exporter::import;
|
||||
} else {
|
||||
# Exporter 5.57 which supports this invocation was
|
||||
# released with perl 5.8.3
|
||||
Exporter->import('import');
|
||||
}
|
||||
}
|
||||
|
||||
our @EXPORT = qw(__ __n N__);
|
||||
our @EXPORT_OK = @EXPORT;
|
||||
|
||||
sub __bootstrap_locale_messages {
|
||||
our $TEXTDOMAIN = 'git';
|
||||
our $TEXTDOMAINDIR ||= $ENV{GIT_TEXTDOMAINDIR} || '@@LOCALEDIR@@';
|
||||
|
||||
require POSIX;
|
||||
POSIX->import(qw(setlocale));
|
||||
# Non-core prerequisite module
|
||||
require Locale::Messages;
|
||||
Locale::Messages->import(qw(:locale_h :libintl_h));
|
||||
|
||||
setlocale(LC_MESSAGES(), '');
|
||||
setlocale(LC_CTYPE(), '');
|
||||
textdomain($TEXTDOMAIN);
|
||||
bindtextdomain($TEXTDOMAIN => $TEXTDOMAINDIR);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
BEGIN
|
||||
{
|
||||
# Used by our test script to see if it should test fallbacks or
|
||||
# not.
|
||||
our $__HAS_LIBRARY = 1;
|
||||
|
||||
local $@;
|
||||
eval {
|
||||
__bootstrap_locale_messages();
|
||||
*__ = \&Locale::Messages::gettext;
|
||||
*__n = \&Locale::Messages::ngettext;
|
||||
1;
|
||||
} or do {
|
||||
# Tell test.pl that we couldn't load the gettext library.
|
||||
$Git::I18N::__HAS_LIBRARY = 0;
|
||||
|
||||
# Just a fall-through no-op
|
||||
*__ = sub ($) { $_[0] };
|
||||
*__n = sub ($$$) { $_[2] == 1 ? $_[0] : $_[1] };
|
||||
};
|
||||
|
||||
sub N__($) { return shift; }
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Git::I18N - Perl interface to Git's Gettext localizations
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use Git::I18N;
|
||||
|
||||
print __("Welcome to Git!\n");
|
||||
|
||||
printf __("The following error occurred: %s\n"), $error;
|
||||
|
||||
printf __n("committed %d file\n", "committed %d files\n", $files), $files;
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Git's internal Perl interface to gettext via L<Locale::Messages>. If
|
||||
L<Locale::Messages> can't be loaded (it's not a core module) we
|
||||
provide stub passthrough fallbacks.
|
||||
|
||||
This is a distilled interface to gettext, see C<info '(gettext)Perl'>
|
||||
for the full interface. This module implements only a small part of
|
||||
it.
|
||||
|
||||
=head1 FUNCTIONS
|
||||
|
||||
=head2 __($)
|
||||
|
||||
L<Locale::Messages>'s gettext function if all goes well, otherwise our
|
||||
passthrough fallback function.
|
||||
|
||||
=head2 __n($$$)
|
||||
|
||||
L<Locale::Messages>'s ngettext function or passthrough fallback function.
|
||||
|
||||
=head2 N__($)
|
||||
|
||||
No-operation that only returns its argument. Use this if you want xgettext to
|
||||
extract the text to the pot template but do not want to trigger retrival of the
|
||||
translation at run time.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason <avarab@gmail.com>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2010 E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason <avarab@gmail.com>
|
||||
|
||||
=cut
|
||||
Loading…
Add table
Add a link
Reference in a new issue