Skip to end of metadata
Go to start of metadata

@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.

Wird als zweiter Parameter der String 'labels' übergeben, enthält die Rückgabe einen Hash. Der Key des Hashes ist der zweistellige ISO-Code, der Inhalt ist der englische Name der Sprache. Hashes sind per Perl-Design nicht geordnet. Bei jedem erneuten Aufruf ist der Hash anders (zufällig) geordnet.

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);
	
 
  • No labels