package main::L10N; use strict; use warnings; use base qw(Locale::Maketext); # Haupt-Sprachklasse, abstrakt 1; ################################################################ # main/L10N/en.pm: package main::L10N::en; use strict; use warnings; use base qw(main::L10N); # Sprachklasse fuer Englisch our %Lexicon = ( "Hallo Welt" => "Hello world", "Rezept für Pfannkuchen" => "Recipe for pancakes", "[_1] gefunden" => "[quant,_1,file,files,No files] found", ); 1; ################################################################ # main/L10N/de.pm: package main::L10N::de; use strict; use warnings; use base qw(main::L10N); # Sprachklasse fuer Deutsch our %Lexicon = ( "Hallo Welt" => "Hallo Welt", "Rezept für Pfannkuchen" => "Rezept für Pfannkuchen", "[_1] gefunden" => "[quant,_1,Datei,Dateien,keine Datei] gefunden", ); 1; ################################################################ # main/L10N/de_at.pm: package main::L10N::de_at; use strict; use warnings; use base qw(main::L10N::de); # Sprachklasse fuer Oesterreichisch, # erbt die meisten Texte von main::L10N::de our %Lexicon = ( "Rezept für Pfannkuchen" => "Rezept für Palatschinken", ); 1; ################################################################ package main; use strict; use warnings; # Haupt-Sprachklasse laden # use main::L10N; { # Passende Sprachklasse automatisch waehlen my $lh = main::L10N->get_handle(qw/de_at de en/) or die "What language?"; # Jetzt die Texte ausgeben; # die richtige Sprache wird automatisch gewaehlt print "Test mit quant:\n"; print $lh->quant($_,'Datei','Dateien','keine Datei'), "\n" for 0..3; print "Test mit maketext:\n"; print $lh->maketext("Hallo Welt"), "\n"; print $lh->maketext("[_1] gefunden", $_), "\n" for 0..3; print $lh->maketext("Rezept für Pfannkuchen"), "\n"; }