Changeset 5607


Ignore:
Timestamp:
06/26/09 11:28:55 (3 years ago)
Author:
ryan52
Message:

add support for contexts

Location:
trunk/Locale-Msgfmt
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Locale-Msgfmt/Changes

    r5583 r5607  
    11Revision history for Locale-Msgfmt 
     2 
     30.06    Jun 26, 2009 
     4        add support for contexts 
    25 
    360.05    Jun 25, 2009 
  • trunk/Locale-Msgfmt/lib/Locale/Msgfmt/Utils.pm

    r5583 r5607  
    5050} 
    5151 
     52sub eot { 
     53  return chr(4); 
     54} 
     55 
    52561; 
  • trunk/Locale-Msgfmt/lib/Locale/Msgfmt/po.pm

    r5583 r5607  
    11package Locale::Msgfmt::po; 
     2 
     3use Locale::Msgfmt::Utils; 
    24 
    35use strict; 
     
    2830  return if ($h{fuzzy} && !$self->{fuzzy} && length($h{msgid}) > 0); 
    2931  return if($h{msgstr} eq ""); 
    30   $self->{mo}->add_string(cleanup_string($h{msgid}), cleanup_string($h{msgstr})); 
     32  my $context; 
     33  if($h{msgctxt}) { 
     34    $context = cleanup_string($h{msgctxt}) . Locale::Msgfmt::Utils::eot(); 
     35  } else { 
     36    $context = ""; 
     37  } 
     38  $self->{mo}->add_string($context . cleanup_string($h{msgid}), cleanup_string($h{msgstr})); 
    3139} 
    3240 
     
    4048  while (<F>) { 
    4149    s/\r\n/\n/; 
    42     if(/^(msgid|msgstr) +"(.*)" *$/) { 
     50    if(/^(msgid|msgstr|msgctxt) +"(.*)" *$/) { 
    4351      $type = $1; 
    44       if($type eq "msgid" && defined($h{msgid})) { 
     52      if(defined($h{$type})) { 
    4553        $self->add_string(\%h); 
    4654        %h = (); 
  • trunk/Locale-Msgfmt/t/msgfmt.t

    r5605 r5607  
    3131    } 
    3232    do_one_test("fr-fr"); 
     33    do_one_test("context"); 
    3334  TODO: { 
    3435      local $TODO = "not yet implemented"; 
    35       do_one_test("context"); 
     36       
    3637      do_one_test("ngettext"); 
    3738    } 
Note: See TracChangeset for help on using the changeset viewer.