turk porno porno escort rokettube
Ergebnis 1 bis 5 von 5

Thema: Mehere Sprachen

  1. #1
    Erfahrener Benutzer
    Registriert seit
    07.07.2010
    Beiträge
    118
    Thanks
    7
    Thanked 0 Times in 0 Posts

    Standard Mehere Sprachen

    Hallo zusammen,

    in der Skeleton-Apllication wird ja sehr schön gezeigt wie es mit mehren Sprachen geht,
    allerdings ist in dem Buch von Ralf in Adaptern etc eine message verbaut u.A. bei dem User-Module.

    Wie nutze ich dort mehrere Sprachen?
    Code:
    $this->authenticateResultInfo['messages'][] = 
                    'Sie haben keine E-Mail Adresse eingegeben!';
    Danke euch!

  2. #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 AllOnline Beitrag anzeigen
    allerdings ist in dem Buch von Ralf in Adaptern etc eine message verbaut u.A. bei dem User-Module.

    Wie nutze ich dort mehrere Sprachen?
    Wo ist dort? Wenn man das Buch nicht vorliegen hat, wird es schwer mit helfen.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Erfahrener Benutzer
    Registriert seit
    07.07.2010
    Beiträge
    118
    Thanks
    7
    Thanked 0 Times in 0 Posts

    Standard

    Haste recht!
    Er definiert Sprache direkt in Adaptern welche dann später von ViewHelpern verarbeitet werden.
    Dem entsprechend habe ich mir meine Antwort schon fast selbst gegeben.

    Ich sehe 2 Möglichkeiten. Die Sprache in einem Adapter festzustellen und dort zu nutzen,
    oder im ViewHelper. Dabei stellt sich aber das Problem, dass die Sprachdatei nicht mehr beim Modul liegt.

    Also um die Frage step bei step zu erledigen.
    Wie lassen sich Unterschiedliche Sprachen außerhalb von Views behandeln?

  4. #4
    lom
    lom ist offline
    Neuer Benutzer
    Registriert seit
    02.10.2013
    Beiträge
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Mal ganz dumm gefragt :-):

    a) Wie nutzt man "am konformsten" den Translator bzw. translate() ausserhalb von einer View z.B. innerhalb eines Form-Konstrukts (für z.B. Labels), wie im ersten Post gefragt?

    b) Kann es sein das die Basis-Translations (z.B. in es) veraltet sind und daher nicht funktionieren für die Standard-Validierungsfehler?
    Siehe /vendor/ZF2/ressources/languages/es/Zend_Validate.php

    Bei einem Test mit den Deutschen Übersetzungen schienen korrekte Übersetzungen übersprungen wurden zu sein, wenn z.B. %s innerhalb der Translations für Variablen in der Translation beinhalten sind?


    Vielen Dank!

  5. #5
    Erfahrener Benutzer
    Registriert seit
    07.07.2010
    Beiträge
    118
    Thanks
    7
    Thanked 0 Times in 0 Posts

    Standard

    Mehre Fragen noch dazu:

    Ich habe in den UserListener folgende Funktion gebaut, welche ich bisher nicht testen konnte:
    PHP-Code:
    public function attach(EventManagerInterface $events)
        {
    ...

            
    $this->listeners[] = $events->attach(
                
    MvcEvent::EVENT_DISPATCH, array($this'setLanguage'), 200
            
    );
    ...
     public function 
    setLanguage(EventInterface $e)
        {
            
    // get route match, params and objects
            
    $routeMatch            $e->getRouteMatch();
            
    $controllerParam       $routeMatch->getParam('controller');
            
    $actionParam           $routeMatch->getParam('action');
            
    $serviceManager       $e->getApplication()->getServiceManager();
            
    $controllerLoader      $serviceManager->get('ControllerLoader');
            
    $identity                 $serviceManager->get('User\Auth\Service')->getIdentity();
            
    $translator              $serviceManager->get('translator');
            
            
    // try to load current controller
            
    try {
                
    $controller $controllerLoader->get($controllerParam);
            } catch (\
    Exception $exception) {
                return;
            }    
            
            
    // check login
            
    if ($identity) {
                
    $translator
                
    ->setLocale(\Locale::acceptFromHttp($identity->getLanguage()))
                ->
    setFallbackLocale('de_DE');
            } else {
                
    // Set Browserlanguage
                
    $translator
                
    ->setLocale(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']))
                ->
    setFallbackLocale('de_DE');
            }        
        } 
    Ist das soweit richtig?

    So nun habe ich erstmal in der Datenbank für den Nutzer wirklich de_De bzw en_Us etc. stehen.
    Wenn ich nun ein CMS mit meheren Sprachen aufbaue, wären doch de_De sehr komische Schlüssel.
    Sollte man daher nicht die Langauge als eigene Tabelle aufbauen?

    id languagename Englisch_languagename Language Currency First day oft he week timeframe Calendar date
    0 deutsch german de_De EUR Monday 24 TT.MM.JJJJ


    Weiterhin, gibt es im ApplicationListener von Ralf verschiedene Einstellungen:
    ( https://github.com/ZF2Buch/kapitel21...tener.php#L120 )
    PHP-Code:
       /**
         * Listen to the "dispatch" event and setup the localization
         *
         * @param  MvcEvent $e
         * @return null
         */
        
    public function setupLocalization(EventInterface $e)
        {
            
    // get service manager
            
    $serviceManager $e->getApplication()->getServiceManager();
            
    $viewManager    $serviceManager->get('viewmanager');
            
            
    // set locale
            
    Locale::setDefault('de_DE');
            
            
    // setup currency view helper
            
    $helper $viewManager->getRenderer()->plugin('currencyformat');
            
    $helper->setCurrencyCode('EUR');
            
    $helper->setShouldShowDecimals(true);
        }

        
    /**
         * Listen to the "dispatch" event and add translation files
         *
         * @param  MvcEvent $e
         * @return null
         */
        
    public function addValidatorTranslations(EventInterface $e)
        {
            
    $baseDir WLM_ROOT '/module/Application/language';
            
            
    $translator Translator::factory(array(
                
    'locale'                    => 'de',
                
    'translation_file_patterns' => array(
                    array(
                        
    'type'        => 'phpArray',
                        
    'base_dir'    => $baseDir,
                        
    'pattern'     => 'Zend_Validate.php',
                        
    'text_domain' => 'default',
                    ),
                )
            ));
            
            
    AbstractValidator::setDefaultTranslator($translator);
        } 
    Warum ist diser Schritt überhaupt notwendig?
    Es würde doch auch direkt in der Config gehen oder?:
    PHP-Code:
    'translator' => array(
            
    'locale' => 'en_US',
            
    'translation_file_patterns' => array(
                array(
                    
    'type'     => 'gettext',
                    
    'base_dir' => __DIR__ '/../language',
                    
    'pattern'  => '%s.mo',
                ),
            ),
        ), 
    Ist dies jetzt Modulübergreifend? Müssten dann ALLE Sprachdatein im Modul Application liegen?
    Wenn ich nun pro Modul noch die Sprachdatei hinzufügen kann, wo genau gehört der folgende Code hin?:
    PHP-Code:

    $translator
    ->addTranslationFilePattern(
     
    'phpArray',
      
    WLM_ROOT.'/module/MODULENAME/language/',
     
    '%s.php',
     
    'MODULENAME'
    ); 
    Wenn das alles richtig ist, kann ich wie gewohnt mit dem translate arbeiten?:
    PHP-Code:
    $this->translate('text'
    Das sollte dann auch in einem ViewHelper für z.B. Forms funktionieren?
    Wenn ich einen ViewHelper aufrufe, in welcher Sprachdatei sollte die Übersetzung dann stehen?
    Oder sollten die Sprachen bei einem Form schon in der Factory gesetzt werden?

    PHP-Code:
            $form = new UserForm('login');
            
    $form->addCsrfElement();
            
    $form->addEmailElement();
            
    $form->addPassElement();
            
    $form->addSubmitElement('login''Anmelden'); 
    Genau so wie es mit der Navigation über die Config möglich sein sollte, eben alle vorhandenen Sprachen zu nutzen.

    Zu guter letzt die Frage, wie kann ich am einfachsten Sprachen über Routen steuern?
    also domain.de/de/controller/action/page/...

Ähnliche Themen

  1. Routen für mehrere Sprachen?
    Von klaus24 im Forum Lokalisierung & Internationalisierung
    Antworten: 3
    Letzter Beitrag: 20.04.2010, 10:47
  2. mehrere Sprachen [MVC]
    Von tomtitom im Forum MVC
    Antworten: 10
    Letzter Beitrag: 14.01.2009, 14:07
  3. Zend_Locale: Übersetzung von Sprachen
    Von t-mow im Forum Lokalisierung & Internationalisierung
    Antworten: 2
    Letzter Beitrag: 20.10.2008, 17:39
  4. Liste der Sprachen
    Von jpieper im Forum Lokalisierung & Internationalisierung
    Antworten: 6
    Letzter Beitrag: 18.04.2008, 14:34
  5. Router und Sprachen (Ableiten)?
    Von divB im Forum MVC
    Antworten: 2
    Letzter Beitrag: 16.08.2007, 03:18

Lesezeichen

Berechtigungen

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