wiki-archive/twiki/lib/TWiki/I18N/Fallback.pm

76 lines
1.9 KiB
Perl

# Module of TWiki Enterprise Collaboration Platform, http://TWiki.org/
#
# Copyright (C) 1999-2007 TWiki Contributors.
# All Rights Reserved. TWiki Contributors
# are listed in the AUTHORS file in the root of this distribution.
# NOTE: Please extend that file, not this notice.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. For
# more details read LICENSE in the root of this distribution.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# As per the GPL, removal of this notice is prohibited.
# TWiki::I18N::Fallback - a fallback class for when
# Locale::Maketext isn't available.
package TWiki::I18N::Fallback;
use base 'TWiki::I18N';
sub new {
my $class = shift;
my $this = bless({}, $class);;
return $this;
}
sub maketext {
my ( $this, $text, @args ) = @_;
return '' unless $text;
# substitute parameters:
$text =~ s/\[\_(\d+)\]/$args[$1-1]/ge;
# unescape escaped square brackets:
$text =~ s/~(\[|\])/$1/g;
#plurals:
$text =~ s/\[\*,\_(\d+),([^,]+)(,([^,]+))?\]/_handlePlurals($args[$1-1],$2,$4)/ge;
return $text;
}
sub _handlePlurals {
my ( $number, $singular, $plural ) = @_;
# bad hack, but Locale::Maketext does it the same way ;)
return $number . ' ' . (($number == 1) ? $singular : ( $plural ? ($plural) : ($singular . 's') ) );
}
sub language {
return 'en';
}
sub enabled_languages {
my $this = shift;
return $this->{enabled_languages};
}
sub fromSiteCharSet {
my ( $this, $text ) = @_;
return $text;
}
sub toSiteCharSet {
my ( $this, $text ) = @_;
return $text;
}
1;