Changeset 855


Ignore:
Timestamp:
11/09/08 12:33:55 (3 years ago)
Author:
szabgab
Message:

allow switching between German and English

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Changes

    r854 r855  
    77       Tab reordering 
    88       Tab close button 
    9     Localization and German translation. (Heiko Jansen) 
     9    Localization and German translation. (HJANSEN) 
    1010    Move the content of Padre::Wx::Dialog to Wx::Perl::Dialog 0.02 (SZABGAB) 
    1111    Chanage back the new-file hot-key to be Ctr-N again. (SZABGAB) 
     
    1717    Also put cut/copy/paste/select all in the edit menu and in the right click menu. (HJANSEN) 
    1818    Move Parrot plugin to separate distribution. (SZABGAB) 
     19    Enable swictching between German and English. (SZABGAB) 
    1920 
    20210.15 2008.11.02 
  • trunk/lib/Padre/Document.pm

    r851 r855  
    356356    }; 
    357357    if ($@) { 
    358         return "Could not save: $!"; 
     358        return "Could not save: $@"; 
    359359    } 
    360360    $self->{_timestamp} = $self->time_on_file; 
  • trunk/lib/Padre/Wx/MainWindow.pm

    r848 r855  
    4141    Wx::InitAllImageHandlers(); 
    4242     
     43    $config->{host}->{locale} || Wx::Locale::GetSystemLanguage;  
     44 
    4345    Wx::Log::SetActiveTarget( Wx::LogStderr->new ); 
    4446    #Wx::LogMessage( 'Start'); 
     
    7476    ); 
    7577 
    76     # config param has to be ID, not name (e.g.: 87 for 'de'); TODO change this  
    77     $self->refresh_locale( $config->{host}->{locale} ); 
     78    $self->set_locale( $config->{host}->{locale} ); 
    7879 
    7980    $self->{manager} = Wx::AuiManager->new; 
     
    316317 
    317318    my $doc  = $self->selected_document; 
    318     $self->refresh_locale; 
    319319    $self->refresh_menu; 
    320320    $self->refresh_toolbar; 
     
    330330} 
    331331 
    332 sub refresh_locale { 
     332     
     333sub change_locale { 
     334    my ($self, $shortname) = @_; 
     335    my $config = Padre->ide->config; 
     336    $config->{host}->{locale} = $shortname; 
     337    $self->message( 'Currently you have to restart Padre for the language change to take effect' ); 
     338    return; 
     339} 
     340 
     341sub set_locale { 
    333342    my $self = shift; 
    334     my $lang = shift || Wx::Locale::GetSystemLanguage; 
    335  
    336     $self->{'locale'} = undef; 
    337  
    338     $self->{'locale'} = Wx::Locale->new($lang); 
    339     $self->{'locale'}->AddCatalogLookupPathPrefix( Padre::Wx::sharedir('locale') ); 
    340     my $langname = $self->{'locale'}->GetCanonicalName(); 
    341  
    342     my $shortname = $langname ? substr( $langname, 0, 2 ) : 'en'; # only providing default sublangs 
     343    my $shortname = shift; 
     344 
     345    my %map = ( 
     346        en => 58, 
     347        de => 87, 
     348    ); 
     349    my $lang = $map{$shortname}; 
     350 
     351    $self->{locale} = Wx::Locale->new($lang); 
     352    $self->{locale}->AddCatalogLookupPathPrefix( Padre::Wx::sharedir('locale') ); 
     353    my $langname = $self->{locale}->GetCanonicalName(); 
     354 
     355    #my $shortname = $langname ? substr( $langname, 0, 2 ) : 'en'; # only providing default sublangs 
    343356    my $filename = Padre::Wx::sharefile( 'locale', $shortname ) . '.mo'; 
    344357 
    345     $self->{'locale'}->AddCatalog($shortname) if -f $filename; 
     358    $self->{locale}->AddCatalog($shortname) if -f $filename; 
    346359 
    347360    return; 
  • trunk/lib/Padre/Wx/Menu.pm

    r853 r855  
    357357    ); 
    358358 
    359  
     359    $menu->{view}->AppendSeparator; 
     360    $menu->{view_language} = Wx::Menu->new; 
     361    $menu->{view}->Append( -1, gettext("Language"), $menu->{view_language} ); 
     362     
     363    # TODO horrible, fix this 
     364    if ($config->{host}->{locale} eq 'en') { 
     365        Wx::Event::EVT_MENU( $win, 
     366            $menu->{view_language}->AppendRadioItem( -1, gettext("English") ), 
     367            sub { $_[0]->change_locale('en') }, 
     368        ); 
     369        Wx::Event::EVT_MENU( $win, 
     370            $menu->{view_language}->AppendRadioItem( -1, gettext("German") ), 
     371            sub { $_[0]->change_locale('de') }, 
     372        ); 
     373    } else { 
     374        Wx::Event::EVT_MENU( $win, 
     375            $menu->{view_language}->AppendRadioItem( -1, gettext("German") ), 
     376            sub { $_[0]->change_locale('de') }, 
     377        ); 
     378        Wx::Event::EVT_MENU( $win, 
     379            $menu->{view_language}->AppendRadioItem( -1, gettext("English") ), 
     380            sub { $_[0]->change_locale('en') }, 
     381        ); 
     382    } 
    360383 
    361384    # Create the Perl menu 
Note: See TracChangeset for help on using the changeset viewer.