turk porno porno escort rokettube
Ergebnis 1 bis 13 von 13

Thema: Zend_Locale && Zend_Currency Problem Internet Explorer

  1. #1
    Erfahrener Benutzer
    Registriert seit
    22.07.2008
    Beiträge
    236
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Zend_Locale && Zend_Currency Problem Internet Explorer

    Hallo Leute ich hab gerade ein Problem mit dem Internet Explorer oder Zend_Locale

    In meiner Bootstrap-Datei steht folgendes:

    PHP-Code:
            Zend_Locale::setDefault('de_DE');
            
    $Locale  = new Zend_Locale('auto');
            
    Zend_Registry::set('Zend_Locale',$Locale); 
    Irgendwo in einem ViewHelper steht:
    PHP-Code:
             $Currency = new Zend_Currency('EUR');
             return  
    $Currency->toCurrency( (int)$cents/100 ); 
    Das geht auch wunderbar im Firefox, im IE wirft Zend_Currency eine Exception.
    In der folgenden Methode
    PHP-Code:
        private function _checkParams($currency null$locale null)
        {
          .....

            
    // Validate the locale and get the country short name
            
    $country null;
            if ((
    Zend_Locale::isLocale($localetruefalse)) and (strlen($locale) > 4)) {
                
    $country substr($locale, (strpos($locale'_') + 1));
            } else {
                require_once 
    'Zend/Currency/Exception.php';
                throw new 
    Zend_Currency_Exception("No region found within the locale '" . (string) $locale "'");
            }
          ......
        } 
    Setze ich testweise bei der Prüfung der Localen strlen($locale)>1 funktioniert es in beiden Browsern und wird auch korrekt angezeigt, keine Exception.
    Deshalb habe ich folgendes gemacht.
    PHP-Code:
    echo Zend_Debug::dump(Zend_Registry::get('Zend_Locale')->getBrowser());

    //ERGEBNIS FIREFOX
    array(4) {
      [
    "de_DE"] => float(1)
      [
    "de"] => float(1)
      [
    "en_US"] => float(0.5)
      [
    "en"] => float(0.5)
    //ERGEBNIS IE

    array(1) {
      [
    "de"] => float(1)

    Hab bei Microsoft rumgesucht da steht
    http://blogs.msdn.com/ie/archive/200...xplorer-7.aspx

    Also eigentlich sollte IE7 einen korrekten Accept-Language-Header senden. IE6 nicht immer je nachdem.

    ^^ Was kann ich tun, was mach ich falsch?
    Geändert von PeHaPe (27.05.2009 um 13:53 Uhr)

  2. #2
    Erfahrener Benutzer
    Registriert seit
    10.09.2007
    Ort
    Wuppertal
    Beiträge
    5.725
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Wie sieht denn die HTTP_ACCEPT_LANGUAGE beim IE aus? Steht da vielleicht statt de_DE de_CH oder was ganz anderes?

    Edit:
    Ups, sry, zu Ende lesen hilft. HTTP_ACCEPT_LANGUAGE steht halt nur "de" drin. Dann kann es so auch nicht gehen. Locales sind auch gültig, wenn nur eine Sprache angegeben wird. Was du da machst ist ein Hack der schlecht ist, weil die "Region" immernoch nicht bestimmt werden kann!
    Geändert von DennisBecker (27.05.2009 um 13:58 Uhr)
    Neues Projekt: zandman.de - Status: WIP




  3. #3
    Moderator Avatar von thomas
    Registriert seit
    17.12.2006
    Beiträge
    1.350
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Lesen hilft meistens...

    Die Exception heißt doch "No region found within the locale '...".
    Wenn z.B. "en" drinsteht, wie soll er dann wissen welche von den 30 möglichen Währungen für "en" Du willst ?

    Steht aber alles ganz genau im Handbuch drin. Lies doch einfach was genau geworfen wird.
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  4. #4
    Erfahrener Benutzer
    Registriert seit
    23.07.2008
    Beiträge
    236
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    [HTTP_ACCEPT_LANGUAGE] => de

    steht tatsächlich nur das drin.
    Vielleicht ist irgendwas in meinem IE verstellt oder die Betriebssystemlokale

    aber sollte in so einem Fall nicht Zend_Currency nicht anderst prüfen.

  5. #5
    Erfahrener Benutzer
    Registriert seit
    23.07.2008
    Beiträge
    236
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    @Thomas

    eigentlich hab ich Zend_Currency und Zend_Locale heute schon mehrfach durchgelesen.
    Hab Leider die wohl entscheidende Stelle nicht erkannt. Dachte ich könnte Zend_Locale zwingen die Lokale zu normalisieren also aus de ,de_DE machen. Finde aber nichts der gleichen. Ich werd noch mal suchen.

  6. #6
    Moderator Avatar von Bleistift
    Registriert seit
    14.12.2006
    Ort
    Zürich (Schweiz)
    Beiträge
    1.580
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von PeHaPe Beitrag anzeigen
    also aus de ,de_DE machen. Finde aber nichts der gleichen. Ich werd noch mal suchen.
    Er sagte doch bereits:
    Zitat Zitat von thomas Beitrag anzeigen
    Wenn z.B. "en" drinsteht, wie soll er dann wissen welche von den 30 möglichen Währungen für "en" Du willst ?
    Das selbe gilt genau so für "de"... Nicht jeder der Deutsch spricht, ist ein Deutscher.
    Moderator
    Kein ZF-Support via Foren-PN

  7. #7
    Erfahrener Benutzer
    Registriert seit
    10.09.2007
    Ort
    Wuppertal
    Beiträge
    5.725
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Mir fallen da Spontan auch 2 Währungen ein Euro und Schweizer Franken ... Demnach ist das verhalten völlig korrekt.
    Neues Projekt: zandman.de - Status: WIP




  8. #8
    Erfahrener Benutzer
    Registriert seit
    23.07.2008
    Beiträge
    236
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Ich hab die Währung ja angegeben. Korrekt ist ich hab kein Land. Was kann ich tun? Mir fiele nur ein in der bootstrap zu prüfen, ob ich nur eine Sprache hab, dann fallback auf den Defaultwert. Oder ich fange die Currency Exception und sag dann er soll die default locale verwenden. Ich würde eher zu ersteren tendieren, dann ist das Problem auch für alle anderen Klassen gelöst die damit Probleme hätten. Oder in dem Fall kann ich auch die Lokale angeben habe ja eh nur EUR.

  9. #9
    Erfahrener Benutzer
    Registriert seit
    10.09.2007
    Ort
    Wuppertal
    Beiträge
    5.725
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    EUR Beträge sehen aber in en_US anders aus als in de_DE, somit ist das keine vernünftige Lösung. Gibt's im IE auch sowas wie about:config?
    Neues Projekt: zandman.de - Status: WIP




  10. #10
    Moderator Avatar von Bleistift
    Registriert seit
    14.12.2006
    Ort
    Zürich (Schweiz)
    Beiträge
    1.580
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von DennisBecker Beitrag anzeigen
    Gibt's im IE auch sowas wie about:config?
    Der speichert seinen Kram in der Windows-Registry :-)
    Moderator
    Kein ZF-Support via Foren-PN

  11. #11
    Moderator Avatar von thomas
    Registriert seit
    17.12.2006
    Beiträge
    1.350
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Sorry, aber was soll bei "de" - normalisiert - werden ?

    Soll jetzt de_DE, de_AT, de_CH oder de_IT genommen werden ?
    Ausserdem ist das wenn schon, dann keine "Normalisierung" sondern eine "Spezialisierung", weil "de" für sich selbst schon normalisiert ist.

    Mit dem "nur die Lokale" angeben wäre ich vorsichtig... das Gebietsschema definiert auch wie Zahlen geschrieben werden...

    Ein Franzmann wird mit "1.000,00€" nix anfangen und ein Deutscher wird sich an "€1 000.00" stoßen, auch wenn Du nur Euro als Währung setzt.
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  12. #12
    Erfahrener Benutzer
    Registriert seit
    23.07.2008
    Beiträge
    236
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Ja die sehen anderst aus, aber mir ist lieber es sieht irgendwie nach euro aus als wie eine Exception ^^. Deshalb dachte ich ja es gäbe eine Möglichkeit zu sagen,wenn nur eine Sprache da ist, nimm das erstbeste Land dazu. Weil die Sprache ist ja wichtig , wenn ich deutsch anbiete, dann sollte der Text deutsch sein. Wenn dann ein Datum österreichisch formatiert ist, ist mir das dann auch egal. Kann ja den Browser nicht zwingen mir ein Land zu sagen und hab ja auch keines.

  13. #13
    Erfahrener Benutzer
    Registriert seit
    23.07.2008
    Beiträge
    236
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Ich werd in dem Fall die Region angeben. Da die Applikation eh nicht mehrsprachig ist. Wollte nur für eine eventuelle zukünftige Mehrsprachigkeit vorarbeit leisten. Dort würd ich es dann eh es so machen, das der Benutzer sein Land wählen muss.
    Danke für eure Hilfe und Anregungen zum weiter denken.


Ähnliche Themen

  1. Nachkommastellen bei Zend_Currency
    Von mastersurfer84 im Forum Lokalisierung & Internationalisierung
    Antworten: 6
    Letzter Beitrag: 15.05.2009, 08:19
  2. Explorer öffnet PDF nicht
    Von m4xL im Forum MFS
    Antworten: 9
    Letzter Beitrag: 11.02.2009, 18:42
  3. Zend_Currency::setFormat()
    Von DennisBecker im Forum Lokalisierung & Internationalisierung
    Antworten: 0
    Letzter Beitrag: 03.12.2007, 17:37
  4. Zend_Currency::setCache()
    Von DennisBecker im Forum Lokalisierung & Internationalisierung
    Antworten: 11
    Letzter Beitrag: 30.11.2007, 10:03
  5. Preise mit Zend_Currency ausgeben
    Von derwebhirsch im Forum Lokalisierung & Internationalisierung
    Antworten: 5
    Letzter Beitrag: 08.11.2007, 17:21

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •