Diff for /loncom/localize/lonlocal.pm between versions 1.10 and 1.19

version 1.10, 2003/09/22 18:16:43 version 1.19, 2003/10/04 20:49:40
Line 144  like this: Line 144  like this:
     'No purchase necessary. Illegal where not allowed.'      'No purchase necessary. Illegal where not allowed.'
  => 'Es ist erlaubt, einfach zu verlieren, und das ist Ihre Schuld.'   => 'Es ist erlaubt, einfach zu verlieren, und das ist Ihre Schuld.'
   
 The German translation lexicon is in pretty okay shape, but not   
 complete yet. Portuguese currently only covers the login screen.   
 Russian is purely experimental. Looks like UTF-8 is the way to encode   
 this, at least for latin/greek-based languages, but we still have to   
 learn a lot.  
   
 Comments may be added with the # symbol, which outside of a string  Comments may be added with the # symbol, which outside of a string
 (the things with the apostrophe surrounding them, which are the   (the things with the apostrophe surrounding them, which are the 
Line 168  package Apache::lonlocal; Line 163  package Apache::lonlocal;
 use strict;  use strict;
 use Apache::localize;  use Apache::localize;
 use Apache::File;  use Apache::File;
   use locale;
   use POSIX qw(locale_h);
   
 require Exporter;  require Exporter;
   
Line 184  use vars qw($lh); Line 181  use vars qw($lh);
   
 sub mt (@) {  sub mt (@) {
     unless ($ENV{'environment.translator'}) {      unless ($ENV{'environment.translator'}) {
  return $lh->maketext(@_);   if ($lh) {
       return $lh->maketext(@_);
    } else {
       return @_;
    }
     } else {      } else {
  my $trans=$lh->maketext(@_);   if ($lh) {
  my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.      my $trans=$lh->maketext(@_);
     &Apache::lonnet::escape($_[0]).'&arg2='.      my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
     &Apache::lonnet::escape($_[1]).'&arg3='.   &Apache::lonnet::escape($_[0]).'&arg2='.
     &Apache::lonnet::escape($_[2]).'&lang='.   &Apache::lonnet::escape($_[1]).'&arg3='.
     $ENV{'environment.translator'}.   &Apache::lonnet::escape($_[2]).'&lang='.
     '">[['.$trans.']]</a>';   $ENV{'environment.translator'}.
  if ($ENV{'transreroute'}) {   '">[['.$trans.']]</a>';
     $reroute.=$link;      if ($ENV{'transreroute'}) {
     return $trans;   $reroute.=$link;
    return $trans;
       } else {
    return $link;
       }
  } else {   } else {
     return $link;      return @_;
  }   }
     }      }
 }  }
Line 205  sub mt (@) { Line 210  sub mt (@) {
 # ============================================================== What language?  # ============================================================== What language?
   
 sub current_language {  sub current_language {
     return $lh->language_tag();      my $lang=$lh->maketext('language_code');
       return ($lang eq 'language_code'?'en':$lang);
 }  }
   
 # ============================================================== What encoding?  # ============================================================== What encoding?
   
 sub current_encoding {  sub current_encoding {
     my $enc=$lh->maketext('char_encoding');      if ($lh) {
     return ($enc eq 'char_encoding'?'':$enc);   my $enc=$lh->maketext('char_encoding');
    return ($enc eq 'char_encoding'?'':$enc);
       } else {
    return undef;
       }
   }
   
   # =============================================================== Which locale?
   # Refer to locale -a
   #
   sub current_locale {
       if ($lh) {
    my $enc=$lh->maketext('lang_locale');
    return ($enc eq 'lang_locale'?'':$enc);
       } else {
    return undef;
       }
 }  }
   
 # ============================================================== Translate hash  # ============================================================== Translate hash
Line 252  sub endreroutetrans { Line 274  sub endreroutetrans {
 sub get_language_handle {  sub get_language_handle {
     my $r=shift;      my $r=shift;
     $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);      $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
     $r->content_languages(["&current_language()"]);      if (&Apache::lonnet::mod_perl_version == 1) {
     my $enc=&current_encoding();   $r->content_languages([&current_language()]);
     if ($enc) {      }
   ###    setlocale(LC_ALL,&current_locale);
   }
   
   # ========================================================== Localize localtime
   
   sub locallocaltime {
       my $thistime=shift;
       if ((&current_language=~/^en/) || (!$lh)) {
    return ''.localtime($thistime);
       } else {
    my $format=$lh->maketext('date_locale');
    if ($format eq 'date_locale') {
       return ''.localtime($thistime);
    }
    my ($seconds,$minutes,$twentyfour,$day,$mon,$year,$wday,$yday,$isdst)=
       localtime($thistime);
    my $month=(split(/\,/,$lh->maketext('date_months')))[$mon];
    my $weekday=(split(/\,/,$lh->maketext('date_days')))[$wday];
    if ($seconds<10) {
       $seconds='0'.$seconds;
    }
    if ($minutes<10) {
       $minutes='0'.$minutes;
    }
    $year+=1900;
    my $twelve=$twentyfour;
    my $ampm;
    if ($twelve>12) {
       $twelve-=12;
       $ampm=$lh->maketext('date_pm');
    } else {
       $ampm=$lh->maketext('date_am');
    }
    foreach 
    ('seconds','minutes','twentyfour','twelve','day','year',
    'month','weekday','ampm') {
       $format=~s/\$$_/eval('$'.$_)/gse;
    }
    return $format;
     }      }
 }  }
   
   # ==================== Normalize string (reduce fragility in the lexicon files)
   
   # This normalizes a string to reduce fragility in the lexicon files of
   # huge messages (such as are used by the helper), and allow useful
   # formatting: reduce all consecutive whitespace to a single space,
   # and remove all HTML
   sub normalize_string {
       my $s = shift;
       $s =~ s/\s+/ /g;
       $s =~ s/<[^>]+>//g;
       return $s;
   }
 1;  1;
   
 __END__  __END__

Removed from v.1.10  
changed lines
  Added in v.1.19


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>