Siechfred: Setzen von locales

Beitrag lesen

Tag Christian.

Du schaust nach, welche Locales es gibt (locale -a) und stellst das richtige in der Konfiguration der Software ein.

Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht standardisiert ist? Muss ich mich dann doch darauf verlassen, dass es eine passend benannte Locale gibt? Und kann man sich bei einer Software dann überhaupt darauf verlassen, dass es eine passende Locale auf dem Zielsystem gibt? Angenommen, ich mache es so, wie es in den Userkommentaren steht, dann komme ich doch um eine Alternative nicht herum:

$input = $_POST['Nachname'];  
$input_OK = False;  
if(setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de-DE', 'de', 'ge', 'de_DE.ISO_8859-1', 'German')) {  
  if(ctype_alpha($input)) {  
    $input_OK = True;  
  }  
}  
else {  
  if(preg_match("/^[a-zA-ZäöüÄÖÜß-]+$/", $input)) {  
    $input_OK = True;  
  }  
}  
if(!$input_OK) {  
  echo "Der Nachname enthält unzulässige Zeichen.";  
}

So, wo ist nun der Sinn von ctype_alpha in diesem Zusammenhang, ich kann $input doch gleich nur mit preg_match testen (das war ja der Ursprung dieses Threadzweigs).

Siechfred