Frage zu "getBrowserLanguage"

Diskutiere Frage zu "getBrowserLanguage" im PHP Forum im Bereich Programmierung; Hallo zusammen, ich probiere mich gerade an der "Mehrsprachigkeit" meiner Webseite. Dazu habe ich eine php Datei angelegt (language.php): <?php...
  • Frage zu "getBrowserLanguage" Beitrag #1
E
Eiblein
Member
Beiträge
8
Punkte Reaktionen
0
Hallo zusammen,

ich probiere mich gerade an der "Mehrsprachigkeit" meiner Webseite.

Dazu habe ich eine php Datei angelegt (language.php):

Code:
<?php

// Fehler sehen
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Fehler sehen ende

session_start();

function getBrowserLanguage() {
    $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    return strtolower($languages[0]);
}

$browserLanguage = getBrowserLanguage();
$availableLanguages = ['de', 'en', 'es', 'fr', 'it'];
$language = in_array($browserLanguage, $availableLanguages) ? $browserLanguage : 'es';

$_SESSION['language'] = $language;

$langFile = "lang/$language.php";
$translations = include $langFile;


?>

Diese wird mit Include auf den entsprechenden Seiten eingebunden und auf dem PC funktioniert dies auch zuverlässig. Auf Mobilen Geräten (iPad, iPhone und Android) wird aber immer die Fallbacksprache angezeigt (deswegen steht diese hier auf "es").

Hat jemand einen Vorschlag oder findet meinen Fehler?

Viele Grüße!
 
  • Frage zu "getBrowserLanguage" Beitrag #2
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Diese wird mit Include auf den entsprechenden Seiten eingebunden und auf dem PC funktioniert dies auch zuverlässig. Auf Mobilen Geräten (iPad, iPhone und Android) wird aber immer die Fallbacksprache angezeigt (deswegen steht diese hier auf "es").
Eine Sprachangabe besteht idR nicht nur aus zwei Buchstaben, für deutsch kann da auch de-DE oder de-AT usw. stehen. Das auseinander zu pfriemeln ist etwas aufwendiger, es gibt da aber fertige Scripte bzw. Anleitungen.
 
  • Frage zu "getBrowserLanguage" Beitrag #3
E
Eiblein
Member
Beiträge
8
Punkte Reaktionen
0
Hallo tk1234,

vielen Dank für den Denkanstoß! Mit „de-de“ klappt es nun tatsächlich auch auf dem Smartphone… Damit es sowohl auf dem Smartphone als auch auf dem Laptop klappt braucht man allerdings „de“ und auch „de-de“ um zu prüfen was man braucht hat mir geholfen:

Code:
<?php
session_start();

// Funktion, um die bevorzugte Browsersprache zu extrahieren
function getBrowserLanguage() {
    $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    return strtolower($languages[0]);
}
?>

Damit konnte ich auf den Endgeräten prüfen was die brauchen um die für mich relevanten Sprachen richtig darzustellen bzw zu erkennen.

Viele Grüße!
 
  • Frage zu "getBrowserLanguage" Beitrag #4
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Damit konnte ich auf den Endgeräten prüfen was die brauchen um die für mich relevanten Sprachen richtig darzustellen bzw zu erkennen.
Damit mag es jetzt auf deinen Geräten funktionieren - da der String aber noch viel komplexer sein kann, reicht dein Code nicht zum parsen der Angaben des Browsers!
 
Thema:

Frage zu "getBrowserLanguage"

Oben Unten