X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLocale.pm;h=3b91502d5e2f990e11497512768396787f1572a4;hb=5474d397bbc42ffaea0b51ebb4bb9a4c7afaa881;hp=8495553e8fd4d1a1a1571e04184d8e36ee962920;hpb=e09e900d226835ec8d8983e0df5861157bcb2897;p=kivitendo-erp.git diff --git a/SL/Locale.pm b/SL/Locale.pm index 8495553e8..3b91502d5 100644 --- a/SL/Locale.pm +++ b/SL/Locale.pm @@ -27,7 +27,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Translations and number/date formatting @@ -73,6 +74,12 @@ sub new { return $locales_by_country{$country} } +sub is_supported { + my ($country) = @_; + + return -f "locale/$country/all"; +} + sub _init { my $self = shift; my $country = shift; @@ -80,11 +87,27 @@ sub _init { $self->{countrycode} = $country; if ($country && -d "locale/$country") { - local *IN; - if (open(IN, "<", "locale/$country/all")) { - my $code = join("", ); + if (open my $in, "<", "locale/$country/all") { + local $/ = undef; + my $code = <$in>; eval($code); - close(IN); + close($in); + } + + if (-d "locale/$country/more") { + opendir my $dh, "locale/$country/more" or die "can't open locale/$country/more: $!"; + my @files = sort grep -f "locale/$country/more/$_", readdir $dh; + close $dh; + + for my $file (@files) { + if (open my $in, "<", "locale/$country/more/$file") { + local $/ = undef; + my $code = <$in>; + eval($code); + close($in); + $self->{texts}{$_} = $self->{more_texts}{$_} for keys %{ $self->{more_texts} }; + } + } } } @@ -378,6 +401,9 @@ sub parse_date_to_object { return undef if !defined $string; + return DateTime->today_local if lc($string) eq 'today'; + return DateTime->today_local->subtract(days => 1) if lc($string) eq 'yesterday'; + $params{dateformat} ||= $::myconfig{dateformat} || 'yy-mm-dd'; $params{numberformat} ||= $::myconfig{numberformat} || '1,000.00'; my $num_separator = $params{numberformat} =~ m{,\d+$} ? ',' : '.'; @@ -606,7 +632,7 @@ TODO: Describe format_date =item C -Formats the C<$datetime> object accoring to the user's locale setting. +Formats the C<$datetime> object according to the user's locale setting. The parameter C can control whether or not the time component is formatted as well: