Google weiß alles: Webseite mehrsprachig gestalten

Beitrag lesen

Das geht auch ohne Regex:

<?php
## file: SelectOneOffAcceptedLanguages.php
function SelectOneOffAcceptedLanguages ( $arList, $showDebug = 0) {

    ## accept a array of languages (strings) (e.g. array('de', 'en-US', 'en', 'fr')) as first argument
    ## returns, if in $arList, the accepted language with the highest quota from $_SERVER['HTTP_ACCEPT_LANGUAGE']
    ## if not a accepted language in $arList, return the fist Element in $arList
    ## if debug set this will echo debug-informations

    ## show ISO 639-1 and  RFC 1766 for more Informations
    ## rfc2616 section 14 for the HTTP_ACCEPT_LANGUAGE-Header

    $arTmp = array();
    foreach ($arList as $s) {
        $s=trim($s);
        if ($s) {
            $arTmp[] = strtolower($s);
        }
    }
    $arList = $arTmp;
    $arAcceptedLanguages = array();
    $arTmp = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    foreach ($arTmp as $item) {
        $arLangQuote = array();
        $arLangQuote = explode(';', $item);
        if (! isset($arLangQuote[1]) ) {
            $arLangQuote[1] = 1;
        }
        $arLangQuote[0] = trim( $arLangQuote[0] );
        if ( $arLangQuote[0] ) {
            $arT['quote'] = floatval( trim( str_replace( 'q=', '', $arLangQuote[1] ) ) );
            $arT['lang']  = strtolower($arLangQuote[0]);
            $arAcceptedLanguages[] = $arT;
        }
    }
    if ($showDebug) { print_r($arAcceptedLanguages); }

    $retLang = $arList[0];
    $SelectedLanguage = $arList[0];
    $quote = 0;
    foreach ( $arList as $lang ) {
        $lang  = trim( $lang );
        foreach ($arAcceptedLanguages as $arTmp) {
            if ($showDebug) { echo "Test: $lang == " . $arTmp['lang'] . ' && ' . $arTmp['quote'] . " > $quote\n"; }
            if ( $lang == $arTmp['lang'] && $arTmp['quote'] > $quote ) {
                $retLang = $arTmp['lang'];
                $quote   = $arTmp['quote'];
                if ($showDebug) { echo "Winner is: " . $arTmp['lang'] . "( Quote: " . $arTmp['quote'] . ")\n"; }
            }
        }
    }
    return $retLang;
}


#/* Test ( To disable the test remove the first '#' in this line. On production systems delete all the stuff downside this line)
## Values to edit:
## Present Languages, comma-separated, try with errors (lower, upper, spaces):
$list="fr, en, es";
$showDebug = true;

# Overwrite
## Simulate the HTTP_ACCEPT_LANGUAGE - header,  try with errors (lower, upper, spaces):
$HttpAcceptLanguage="de-DE,de ;q=0.8, en-US;q=0.5,en;q=0.3";
#$HttpAcceptLanguage=false;

if ($HttpAcceptLanguage) {
    $_SERVER['HTTP_ACCEPT_LANGUAGE']=$HttpAcceptLanguage;
}

if (! isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ) {
    echo "\n\nTest: Settings Error: You have not set a \$HttpAcceptLanguage and \$_SERVER knows nothing about this... - Nothing to test. Exit!\n\n";
    exit;
}

##Program:
header('Content-Type: text/plain');
echo "\n\nTest of " . __FILE__  . "\n Accepted: " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "\n Present: $list\nselected: " . SelectOneOffAcceptedLanguages( explode( ',', $list), $showDebug ) . "\n\n";
# */

Ich hoffe ja, dass der Beitrag nicht von @1unitedpower mit der Begründung gelöscht wird, dass die "Sicherheit nicht nachgewiesen" sei und weil @1unitedpower a) nicht durchsieht und b) nicht mit automatisierten Tests darauf ballern kann.

0 238

Webseite mehrsprachig gestalten

Carmen
  • meinung
  • php
  1. 0
    Robert B.
    • cookies
    • meinung
    • php
    1. 0
      Carmen
      1. 0
        Robert B.
    2. 1

      eine lanze fuer flaggen brechen

      seth_not@home
      • design/layout
      • meinung
      • sprache
      1. 0
        Konsens
        1. 0
          seth
          1. 0
            Konsens
            1. 0
              Carmen
              1. 0
                marctrix
                1. 0
                  seth
                  1. 0
                    marctrix
                    1. 1
                      seth
                      1. 1
                        Der Martin
                        1. 1
                          seth
                          1. 1
                            Der Martin
                            1. 0
                              seth
                              1. 0
                                Der Martin
                                1. 1
                                  seth
                              2. 0
                                Gunnar Bittersmann
                                1. 0
                                  seth
                              3. 0
                                MudGuard
                                1. 0
                                  seth
                                  1. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      seth
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          Matthias Apsel
                                2. 2
                                  Gunnar Bittersmann
                      2. 1
                        Konsens
                        1. 2
                          TS
                          1. 0
                            Konsens
                            1. 0
                              Konsens
                          2. 1
                            seth
                            1. 0
                              TS
                      3. 0
                        Fred
                        1. 0
                          pl
                          1. 1
                            Fred
                            1. -2
                              pl
                              1. 1
                                Gunnar Bittersmann
                              2. 0
                                Google weiß alles
                              3. 0
                                Der Martin
                          2. 0
                            Gunnar Bittersmann
                        2. 0
                          Der Martin
                        3. 0
                          marctrix
                        4. 0
                          Gunnar Bittersmann
                          1. 0
                            Fred
                      4. 0
                        marctrix
                        1. 2
                          bing weiß alles besser
                        2. 0
                          seth
                      5. 0
                        Gunnar Bittersmann
                        • sprache
                        1. 0
                          seth_not@home
      2. 0
        pl
        • meinung
        • menschelei
      3. 0
        Carmen
      4. 0
        Gunnar Bittersmann
        • internationalisierung
        • sprache
        1. 0
          seth
          1. 1
            Gunnar Bittersmann
            1. 0
              seth
          2. 2
            marctrix
            1. 0
              seth
              1. 0
                marctrix
                1. 0
                  seth
                  1. 2
                    Gunnar Bittersmann
                    1. 1
                      kerstin
                      1. 0
                        seth
                        1. 0
                          marctrix
                          1. 0
                            Gunnar Bittersmann
                        2. 0
                          Der Martin
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        marctrix
        2. 0
          marctrix
          1. 0
            Matthias Apsel
            1. 0
              marctrix
            2. 0
              MudGuard
              1. 0
                marctrix
                1. 1
                  Gunnar Bittersmann
          2. 0
            seth
            1. 0
              Gunnar Bittersmann
              1. 0
                marctrix
                • sprache
              2. 0
                seth
                1. 0
                  marctrix
            2. 0
              marctrix
              1. 0
                seth
                1. 0
                  marctrix
        3. 0
          Gunnar Bittersmann
      5. 2
        kerstin
        1. 0
          seth
          1. 1
            Gunnar Bittersmann
            1. 0
              seth
    3. 0
      Gunnar Bittersmann
      • internationalisierung
  2. 0
    Der Martin
    1. 0
      Carmen
      1. 2
        Jonny 5
    2. 0
      Gunnar Bittersmann
      1. 0
        Der Martin
      2. 0
        Carmen
        1. 0
          Felix Riesterer
          • internationalisierung
          • meinung
          • php
          1. 0
            Matthias Apsel
            1. 0
              Felix Riesterer
          2. -1
            Google weiß alles
            1. 0

              Ich stehe 100% zu meiner obigen Äußerung über 1unitedpower

              Google weiß alles
              • meinung
  3. 1
    Felix Riesterer
    1. 0
      Carmen
      1. 0
        Google weiß alles
        1. 0
          Carmen
          1. 0
            Google weiß alles
            1. 0
              Rolf b
              1. 0
                Google weiß alles
                • meinung
                1. 0

                  Überall Flaggen - Ach ja die haben ja 0 Ahnung!

                  Carmen
                  1. 2

                    Webseite mehrsprachig gestalten

                    Matthias Apsel
                    1. 0
                      Carmen
                      1. 0
                        Matthias Apsel
                        1. 0
                          Rolf b
                          1. 0
                            Matthias Apsel
                          2. 0
                            Carmen
                      2. 1
                        Rolf b
                        1. 0
                          Matthias Apsel
                          1. 0

                            Besserwisserei?

                            Carmen
                            1. 0
                              Matthias Apsel
                              1. 0
                                Carmen
                                1. 0
                                  Matthias Apsel
                  2. 0
                    marctrix
                    1. 0
                      Carmen
                      1. 1
                        marctrix
                        1. 0
                          Carmen
                          1. 0
                            marctrix
                            1. 0
                              Carmen
                              1. 2
                                kerstin
                                1. 0
                                  Carmen
                                  1. 1
                                    marctrix
                              2. 1
                                marctrix
                          2. 3
                            kerstin
                          3. 0
                            Robert B.
                            1. 0
                              Der Martin
                        2. 1
                          MudGuard
                          1. 0
                            Carmen
                            1. 1
                              MudGuard
                              1. 0
                                Carmen
                          2. 1
                            marctrix
                          3. 0
                            Gunnar Bittersmann
                          4. 0
                            Der Martin
                      2. 1
                        Gunnar Bittersmann
                        1. 0
                          marctrix
            2. 0
              Carmen
              1. 0
                Google weiß alles
                1. 0
                  Carmen
                  1. 0
                    Felix Riesterer
                    1. 0
                      Carmen
                  2. 0
                    Google weiß alles
                    1. 0
                      Carmen
                      1. 0

                        Content, noch ohne "Management"

                        Google weiß alles
          2. 0
            marctrix
            1. 0
              Carmen
              1. 0
                marctrix
              2. 1
                Gunnar Bittersmann
                • design/layout
                • meinung
                1. 0
                  Carmen
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Carmen
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          Carmen
                          1. 5
                            Robert B.
                            • meinung
                            • zu diesem forum
                            1. 0
                              Carmen
                              1. 2
                                Der Martin
                                • meinung
                                • zu diesem forum
                                • zu diesem forum
                      2. 0
                        marctrix
                        1. 0
                          Carmen
                        2. 1
                          Gunnar Bittersmann
                          1. 0
                            Carmen
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                Carmen
                                1. 1
                                  Gunnar Bittersmann
                                2. 0
                                  Felix Riesterer
                                  • datenschutz
                                  • meinung
                                  1. 0
                                    Der Martin
                                    1. 0
                                      Carmen
                                      1. 0
                                        Der Martin
                                        1. 0
                                          marctrix
                                  2. 0
                                    Carmen
                          2. 0
                            marctrix
                      3. 0
                        kerstin
                        1. 0
                          Der Martin
              3. 0
                Konsens
      2. 1
        Felix Riesterer
        • internationalisierung
        • meinung
        • php
        1. 0
          Der Martin
          1. 0
            Felix Riesterer
            1. 0
              Der Martin
              1. 0
                Gunnar Bittersmann
                1. 0
                  Der Martin
                  1. 0
                    Tabellenkalk
                    • internationalisierung
                    • meinung
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Tabellenkalk
                        1. 0
                          Gunnar Bittersmann
                          • sprache
                  2. 0
                    Weltverbesserer
            2. 0
              Der Martin
              1. 3

                Buchbesprechung

                Felix Riesterer
                • meinung
                • zur info
                1. 0
                  Der Martin
          2. 0
            Gunnar Bittersmann
            • internationalisierung
            1. 0
              marctrix
    2. 0
      marctrix
      1. 0
        Gunnar Bittersmann
  4. 0
    Google weiß alles
    • meinung
    1. 0
      Carmen
  5. 1
    TS
    • humor
    • meinung
    1. 0
      kerstin
      1. 1
        Google weiß alles
        • humor
        1. 1
          Der Martin
          1. 0
            MudGuard
            1. 0
              Der Martin
              1. 0
                MudGuard
                1. 0
                  Matthias Apsel
                  1. 0
                    MudGuard
                    1. 0
                      Der Martin
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          Der Martin
                          1. 0
                            Gunnar Bittersmann
  6. -2
    Hans
    1. 0
      Gunnar Bittersmann
      • meinung
    2. 0
      TS
      1. 0
        Der Martin
        1. 0
          Tabellenkalk
          • meinung
          • merkhilfe
          1. 0
            Der Martin
            1. 0
              Gunnar Bittersmann
              1. 0
                marctrix
                1. 0
                  Matthias Apsel
                  1. 0
                    marctrix
                    1. 1
                      Der Martin
                      1. 0
                        marctrix
                        1. 0
                          Der Martin
                          1. 0
                            marctrix
                            • meinung
                            • menschelei
                            1. 0
                              Der Martin
                              1. 0
                                Matthias Apsel
                                1. 0
                                  Der Martin
                  2. 0
                    Der Martin
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Der Martin
      2. 1
        Gunnar Bittersmann
    3. 2
      marctrix
      1. 0
        Hans
        1. 0
          marctrix
    4. 2
      Gunnar Bittersmann
      • meinung
      • sprache
      1. 0
        Matthias Apsel