turk porno porno escort rokettube
Ergebnis 1 bis 10 von 10

Thema: URL Translation Route Language Select

  1. #1
    Benutzer Avatar von rougher
    Registriert seit
    03.03.2008
    Beiträge
    73
    Thanks
    0
    Thanked 15 Times in 5 Posts

    Standard URL Translation Route Language Select

    Hi!

    Ich habe folgendes Problem beim Übersetzen von routes. Übersetzung, routing klappt super. Angelehnt an: Translating urls in Zend Framework 2 - Roy van Kaathoven

    Aber ich möchte dem User auch eine Umschaltmöglichkeit mit einem Link bieten. Hier passiert folgendes am Bsp. erklärt.

    1.) Seite wird auf Standard Deutsch angezeigt.
    http://bla.local/kontakt
    2.) es existiert ein link zum umschalten der Sprache:
    http://bla.local/en/kontakt
    3.) bei Click ändert sich auch die Sprache, Seite wird übersetzt, aber die Route sollte es gar nicht geben. Sie sollte auch english sein:
    http://bla.local/en/contact

    Das ganze wird ein problem, wenn man einen reload macht, oder den browserback macht. Beim zweiten mal wird die "falsche" Route nämlich nicht gefunden.

    The requested URL could not be matched by routing.

    Habt Ihr eine Idee, Lösung für dieses Problem. So ein Language Selector und translated routes müßten doch Standard sein. Finde aber keine passende Lösung im Netz.

  2. The Following 3 Users Say Thank You to rougher For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  3. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von rougher Beitrag anzeigen
    Habt Ihr eine Idee, Lösung für dieses Problem.
    Wenn ich dich richtig verstanden habe, dann musst du noch die Option „locale“ dem URL-Helfer übergeben. Woher soll sonst auch bekannt sein, welche Übersetzung du jetzt haben möchtest.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  4. The Following 3 Users Say Thank You to Kaiuwe For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  5. #3
    Benutzer Avatar von rougher
    Registriert seit
    03.03.2008
    Beiträge
    73
    Thanks
    0
    Thanked 15 Times in 5 Posts

    Standard

    Jeah.... danke! Damit kann ich arbeiten. Die Doku zum url helper ist echt .....also quasi nicht da. Zumindest wird da nix über die Options verraten. Hier mein Codesnipped:

    PHP-Code:
    // sett option locale to view helper url
    $this->url('contact', array('lang'=>'en'), array('locale' => 'en_US' )); 
    Geändert von rougher (24.02.2014 um 17:14 Uhr)

  6. The Following 3 Users Say Thank You to rougher For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  7. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von rougher Beitrag anzeigen
    Die Doku zum url helper ist echt .....also quasi nicht da. Zumindest wird da nix über die Options verraten.
    Bitte so etwas im Bugtracker der Doku melden.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  8. The Following 3 Users Say Thank You to Kaiuwe For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  9. #5
    Benutzer Avatar von rougher
    Registriert seit
    03.03.2008
    Beiträge
    73
    Thanks
    0
    Thanked 15 Times in 5 Posts

    Standard

    Bitte so etwas im Bugtracker der Doku melden.

    Wurde ja schon in den comments der Doku gefordert. Scheint sich niemand zu interessieren.



    Jetzt bin ich ins nächste Problem gelaufen. Der url helper übersetzt jetzt brav in:
    http://bla.local/en/contact

    Aber er findet die Route schon beim ersten mal nicht.:
    404 Für die angeforderte URL konnte keine Übereinstimmung gefunden werden.

    http://bla.local/en/kontakt trifft, aber das macht ja wenig Sinn.

    Route Config:
    'route' => '/[:lang/]{contact}',

    Den lang param lang kann ich ja leider auch nur über eine callbackfunction nach einem RouteMatch auslesen, um ggf. das locale zu ändern.
    $eventManager->attach(\Zend\Mvc\MvcEvent::EVENT_ROUTE, $routeCallback);

    Was kann ich anstellen, damit die route auch auf english gefunden wird?

  10. The Following 3 Users Say Thank You to rougher For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  11. #6
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von rougher Beitrag anzeigen
    Wurde ja schon in den comments der Doku gefordert. Scheint sich niemand zu interessieren.
    Im Bugtracker melden und nicht in den Kommentaren. Wer soll denn das alles lesen?

    Ein Open-Source-Projekt lebt von der Mitarbeit/-hilfe und ist auch auf diese angewiesen.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  12. The Following 3 Users Say Thank You to Kaiuwe For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  13. #7
    Erfahrener Benutzer
    Registriert seit
    18.05.2012
    Beiträge
    156
    Thanks
    5
    Thanked 29 Times in 22 Posts

    Standard

    Zitat Zitat von rougher Beitrag anzeigen

    Wurde ja schon in den comments der Doku gefordert. Scheint sich niemand zu interessieren.

    Liegt wohl eher daran, dass sich keiner die unnötige Mühe machen wird, die Kommentare aller Doku-Seiten auf eventuelle Fehler zu kontrollieren. Vor allem dann nicht, wenn nunmal der Bugtracker die zentrale Anlaufstelle ist.

    In der Antwort auf eine ähnliche Frage bei Stackoverflow wurde auf den folgenden Pull Request hingewiesen: https://github.com/zendframework/zf2/pull/5885

    Ich vermute mal, dass du Deutsch irgendwo als Standardsprache festgelegt hat und deswegen jetzt auch nur die "deutsche Route" (unabhängig vom lang-Wert) aufgelöst werden kann und das mit der aktuellen Version auch noch nicht anders möglich ist. Das sollte dann mit ZF 2.3.0 (evtl. mit ein paar Anpassungen) funktionieren.

  14. The Following 3 Users Say Thank You to av3nger For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  15. #8
    Benutzer Avatar von rougher
    Registriert seit
    03.03.2008
    Beiträge
    73
    Thanks
    0
    Thanked 15 Times in 5 Posts

    Standard

    nur die "deutsche Route" (unabhängig vom lang-Wert) aufgelöst werden kann und das mit der aktuellen Version auch noch nicht anders möglich ist.
    Hm... das ist enttäuschend. Dachte multilanguage in Route und Nav wäre ein Standard. Wundere mich, dass ich da der erste sein soll der dieses Requirement hat: Multilanguage mit Umschalter.
    Wenn ich es richtig verstehe müsste ich die request uri nach lang parsen und dann dem Router die entsprechende Locale setzen. Aber genau das kann ich ja nicht. Henne - Ei.
    - braucher erst die Route(match)
    - und hab dann den param lang aus der Route
    - und dann routen

    Kann ich nicht irgendwie einen Routematch erzeugen. Also dem Router vorher sagen, übersetze {contact} abhängig von [:lang]? Das muss doch gehen, oder?

  16. The Following 3 Users Say Thank You to rougher For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  17. #9
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von rougher Beitrag anzeigen
    Das muss doch gehen, oder?
    Vielleicht findest du in einem aktuellen Vorgang vom Bugtracker einen Hinweis: https://github.com/zendframework/zf2/pull/5885
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  18. The Following 3 Users Say Thank You to Kaiuwe For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

  19. #10
    Benutzer Avatar von rougher
    Registriert seit
    03.03.2008
    Beiträge
    73
    Thanks
    0
    Thanked 15 Times in 5 Posts

    Standard

    Vielleicht findest du in einem aktuellen Vorgang vom Bugtracker einen Hinweis:
    ...und so war es. Danke für den Stubbs! Hab es nicht gesehen, weil ich in git nicht eingelogged war.

    ( Eine Möglichkeit:
    I don't like to do it my on and trust another module, use the zf2 module SlmLocale. )

    Oder, do it yourself - nochmal zusammengefasst Die Lösung:

    1.) Translating urls in Zend Framework 2 - Roy van Kaathoven
    - Module.php function onBootstrapp set the translator to the router
    - routerconfig, use TranslatorAwareTreeRouteStack
    - use { } to translte: 'route' => '/[:lang/]{contact}',

    2.) Frontend - url View helper mit korrekten locale - optionen anzeigen
    Code:
    <a href="<?php echo $this->url(null, array('lang'=>'de'), array('locale' => 'de_DE'));?>"> DE </a>
    <a href="<?php echo $this->url(null, array('lang'=>'en'), array('locale' => 'en_US') );?>">EN </a>
    3.) do the trick
    - change Module.php onBootstrap to
    Code:
            $eventManager        = $e->getApplication()->getEventManager();
            $eventManager->attach('route', array($this, 'onPreRoute'), 100);
    - code Module.php onPreRoute function detecting the lang
    Code:
    // check find lang part in uri .. this is just an example
            $application    = $e->getApplication();
            $serviceManager = $application->getServiceManager();
            $serviceManager->get('router')->setTranslator($serviceManager->get('translator'));
            $translator = $e->getApplication()->getServiceManager()->get('translator');
    
    
            $uri = $e->getRequest()->getUri();
            $uriArray = explode('/', $uri);
            $lang     = $uriArray[3];
    
    
            if ($lang == 'en'){
                $translator->setLocale('en_US');
            } else {
                $translator->setLocale('de_DE');
            }
    
    
            $e->getRouter()->setTranslator($translator);
            $e->getRouter()->setTranslatorEnabled(true);

  20. The Following 3 Users Say Thank You to rougher For This Useful Post:

    acanadaparkas (20.05.2014), naracinapabl (22.05.2014), suggmenstiffany (22.05.2014)

Ähnliche Themen

  1. URL translation ZF2
    Von Spin_1987 im Forum ZF2 MVC
    Antworten: 1
    Letzter Beitrag: 24.12.2012, 19:15
  2. Antworten: 1
    Letzter Beitrag: 15.02.2011, 17:30
  3. Antworten: 8
    Letzter Beitrag: 14.09.2010, 20:10
  4. Gettext: No translation for the language 'de_DE' available
    Von Honighans im Forum Lokalisierung & Internationalisierung
    Antworten: 3
    Letzter Beitrag: 15.08.2010, 21:20
  5. Antworten: 0
    Letzter Beitrag: 21.12.2008, 14:25

Stichworte

Lesezeichen

Berechtigungen

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