Changeset 9576


Ignore:
Timestamp:
2005-04-07T13:17:12+12:00 (19 years ago)
Author:
jrm21
Message:

dynamically check for format_string_xxx functions at runtime, based on the
language. (So we can add format_string_zh for chinese, for example).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/perllib/sorttools.pm

    r8852 r9576  
    4343    }
    4444    $lang = 'en' unless defined $lang;
    45     if ($lang eq 'en') {
    46     if ($metaname =~ /^(\w+\.)?Creator(:.*)?/) {
    47         &format_string_name_english (\$metavalue);
    48     } else {
    49         &format_string_english (\$metavalue);
     45   
     46    # is this metadata likely to be a name?
     47    my $function_name="format_string_name_$lang";
     48    if ($metaname =~ /^(?:\w+\.)?(?:Creator|Author|Editor)(?::.*)?$/
     49    && exists &$function_name) {
     50    no strict 'refs';
     51    &$function_name(\$metavalue);
     52    } else {
     53    $function_name="format_string_$lang";
     54    if (exists &$function_name) {
     55        no strict 'refs';
     56        &$function_name(\$metavalue);
    5057    }
    5158    }
     59
    5260    return $metavalue;
    5361}
     
    5664# i.e. convert to lowercase, remove the, a or an
    5765# from beginning of string etc.
    58 sub format_string_english {
    59     my ($stringref) = @_;
     66sub format_string_en {
     67    my $stringref = shift;
    6068
    6169    $$stringref =~ tr/A-Z/a-z/;
     
    7179# i.e. convert to lowercase, put surname before
    7280# first names etc.   
    73 sub format_string_name_english {
     81sub format_string_name_en {
    7482    my ($stringref) = @_;
    7583
Note: See TracChangeset for help on using the changeset viewer.