LoxBerry::Web::iso_languages

@values/%labels = iso_languages($onlyavail, 'values' / 'labels');

Diese Funktion gibt entweder alle verfügbaren, oder alle Sprachen nach ISO-639-1 aus, wahlweise als Array oder Hash.Diese Funktion ist primär für LoxBerry-Core Entwickler für die Sprachauswahl gedacht.

Die Parameter und Rückgabe sind dafür ausgelegt, mittels CGI→popup_menu ein Dropdown-Menü zu erzeugen. Am besten die Beispiele für die Verwendung ansehen.

Parameter

Erster Parameter

Ist der erste Parameter 1, werden nur die am LoxBerry verfügbaren Systemsprachen zurückgegeben.

Wird als erster Parameter 0 oder undef übergeben, wird die vollständige Liste aller ISO-639-1 Sprachen und die englische Bezeichnung zurückgegeben. 

Zweiter Parameter

Wird als zweiter Parameter der String 'values' übergeben, enthält die Rückgabe einen Array entsprechend der Sortierung der Sprachendatei $lbsconfigdir/languages.default. Die Sprachdatei ist sortiert nach: Englisch, deutsch, europäische Sprachen, andere Sprachen. Werden alle Sprachen (nicht nur verfügbare) abgerufen, enthält die Rückgabe Trennelemente (für die Sprachauswahl), die keinen ISO-Ländercode enthalten, sondern eine Zahl (ist wegen der Sortierung der Trennelemente notwendig). Der eigene Code muss beim Übermitteln des Formulars diese Zahlen filtern.

Verwendung

Beispiel aus myloxberry.cgi

use LoxBerry::Web;
 
# First parameter is 1 -> only available system languages are returned
my @values = LoxBerry::Web::iso_languages(1, 'values');
my %labels = LoxBerry::Web::iso_languages(1, 'labels');
 
 
my $langselector_popup = $cgi->popup_menu( 
            -name => 'languageselector',
            id => 'languageselector',
            -labels => \%labels,
            -values => \@values,
            -default => $lang,
);
$maintemplate->param('LANGSELECTOR', $langselector_popup);
 
 

Beispiel aus translate.cgi

use LoxBerry::Web;
 
# First parameter is undef -> ALL languages are returned in the sort order of the file
my @values = LoxBerry::Web::iso_languages(undef, 'values');
my %labels = LoxBerry::Web::iso_languages(undef, 'labels');
 
my $langselector_popup = $cgi->popup_menu( 
            -name => 'languageselector',
            id => 'languageselector',
            -labels => \%labels,
            -values => \@values,
);
$maintemplate->param('LANGSELECTOR', $langselector_popup);