Bezeichner der Select-List-Einträge je nach Sprache ausgeben?

  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    08. 04. 2013, 15:10

    Hallo Forumbenutzer,

    ich habe ein mehrsprachiges System. Mittels "locallang_db" bin ich in der Lage zu sagen, für welchen Wert in einer Select List welcher Bezeichner verwendet werden soll. Hier im TCA:

    1. 'salutation' => array(
    2. 'exclude' => 0,
    3. 'label' => 'LLL:EXT:[xxx]/Resources/Private/Language/locallang_db.xlf:tx_[xxx]_domain_model_question.salutation',
    4. 'config' => array(
    5. 'type' => 'select',
    6. 'items' => array(
    7. array('LLL:EXT:[xxx]/Resources/Private/Language/locallang_db.xlf:tx_[xxx]_domain_model_question.salutation.male', 0),
    8. array('LLL:EXT:[xxx]/Resources/Private/Language/locallang_db.xlf:tx_[xxx]_domain_model_question.salutation.female', 1),
    9. ),
    10. 'size' => 1,
    11. 'maxitems' => 1,
    12. 'eval' => ''
    13. ),
    14. ),

    dementsprechend gibt es auch eine de.locallang_db für die deutsche Sprache.

    Aktuell mache ich es im Controller wie folgt, obwohl es eine unschöne Lösung ist, Sprachabhängigkeiten im Controller zu verankern:

    1. if($GLOBALS['TSFE']->sys_language_uid==0){ //German
    2. $this->view->assign('salutations', array(0 => "Herr", 1 => "Frau;
    3. }else if($GLOBALS['TSFE']->sys_language_uid==1){ //English
    4. $this->view->assign('salutations', array(0 => "Mr", 1 => "Mrs;
    5. }

    [i]Entschuldigt, dass ich die Klammern nicht geschlossen habe. In der Vorschau wurde mir immer ein "wink"-Smily angehängt.[/i]

    Kann ich nicht die Bezeichner ermitteln lassen? So könnte es dem Controller und Fluid egal sein.

    Vielen Dank für die Anregungen,
    Gruss


  • 1
  • karf karf
    T3PO
    0 x
    25 Beiträge
    0 Hilfreiche Beiträge
    09. 04. 2013, 14:44

    Mit TYPO3\CMS\Extbase\Utility\LocalizationUtility->translate() kannst du die locallang file im controller abrufen.

  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    18. 04. 2013, 16:15

    Hallo,

    danke für die Antwort. Ich bekomme in meinem Controller die Fehlermeldung:
    Parse error: syntax error, unexpected T_OBJECT_OPERATOR in ...Controller.php on line 171

    Meine Anweisung ist:

    1. echo TYPO3\CMS\Extbase\Utility\LocalizationUtility->translate('tx_[xxx]_domain_model_person.salutation.male','[xxx]');

  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    19. 04. 2013, 09:42

    Also mit folgender Anweisung bekomme ich die gewünschte Ausgabe:

    1. $GLOBALS['TSFE']->sL('LLL:EXT:[xxx]/Resources/Private/Language/de.locallang_db.xlf:tx_[xxx]_domain_model_person.salutation.male'),

  • trayandev trayandev
    Jar Jar Binks
    0 x
    1 Beiträge
    0 Hilfreiche Beiträge
    20. 08. 2013, 13:25

    versuch mal:

    \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_[xxx]_domain_model_person.salutation.male', '[xxx]');

  • kainobi kainobi
    Jedi-Ritter
    0 x
    141 Beiträge
    0 Hilfreiche Beiträge
    20. 08. 2013, 16:04

    mMn. wäre es einfacher und schöner, wenn Du das direkt im Template machst:

    1. <f:translate key="tx_xxx_domain_model_person.salutation.{modelObject.salutation}" />

    Und dann die entsprechenden Keys in die locallang.xml/xlf Deiner Ext. eintragen...

  • 1