Hallo David,

wie wäre es mit f:translate?

https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/Translate.html

https://forum.typo3.org/index.php?t=msg&goto=676703&;



viele Grüße
Birgit



> Am 29.03.2018 um 13:52 schrieb David Brünner <david.bruen...@t-online.de>:
> 
> Hallo,
> 
> ich rufe den SelectViewHelper folgendermaßen auf:
> 
> [code]
> <f:form.select options="{leistungen}" property="uebergeordneteLeistung" 
> additionalAttributes="{data-placeholder: 'Wählen Sie eine Leistung...'}" 
> optionLabelField="bezeichnung" multiple="0" class="form-control chosen"/>
> [/code]
> 
> Nun habe ich aber das Problem, dass der Text für das Attribut 
> 'data-placeholder' aus einem Languagefile kommen soll.
> 
> Meine Idee wäre gewesen, einen neuen ViewHelper zu schreiben, der erst schaut 
> ob was zu übersetzen ist und dann einfach an den vorhanden SelectViewHelper 
> weiterleitet.
> 
> [code]
> <kkvh:form.selectWithTranslation options="{leistungen}" 
> property="uebergeordneteLeistung" additionalAttributes="{data-placeholder: 
> 'LLL:EXT:kkbaybw/Resources/Private/Language/locallang.xlf:be.chooseLeistung;bla'}"
>  optionLabelField="bezeichnung" multiple="0" class="form-control chosen"/>
> [/code]
> 
> [code]
> class SelectWithTranslationViewHelper extends SelectViewHelper {
>       protected $viewHelperArgs = null;
> 
>       public function init() {
>               $this->viewHelperArgs = $this->arguments;
>       }
> 
>       public function render() {
>               $this->init();
>               $this->_getAttributeFromArgs($this->viewHelperArgs);
>               $this->setArguments($this->viewHelperArgs);
>               return parent::render();
>       }
> 
>       protected function _getAttributeFromArgs($arguments) {
>               foreach ($arguments as $attribute => $value) {
>                       if (is_array($value)) {
>                               $result = $this->_getAttributeFromArgs($value);
>                               $this->viewHelperArgs[$attribute] = $result;
>                       } else {
>                               if (strpos(strtolower($value), 'lll:') !== 
> false) {
>                                       $parts[] = $value;
>                                       if (strpos($value, ';') !== false) {
>                                               $parts = explode(';', $value);
>                                       }
>                                       if (count($parts) == 1) {
>                                               $result[$attribute] = 
> $this->_translated($parts[0], []);
>                                       } elseif (count($parts) == 2) {
>                                               $result[$attribute] = 
> $this->_translated($parts[0], $parts[1]);
>                                       }
>                                       return $result;
>                               }
>                       }
>               }
>       }
> 
>       protected function _translated($id, $args) {
>               $request = 
> $this->renderingContext->getControllerContext()->getRequest();
>               $extensionName = $request->getControllerExtensionName();
>               return LocalizationUtility::translate($id, $extensionName, 
> $args);
>       }
> }
> [/code]
> 
> Aber leider funktioniert das nicht. Die Argumente die im 
> 'SelectWithTranslationVH' entgegengenommen werden ,werden schön übersetzt.
> Aber es kommt trotzdem der Placeholder 'LLL:xxxx' raus.
> 
> Ich habe gelesen, dass sowieso davon abgeraten wird ViewHelper zu 
> verschachteln 
> (https://forum.typo3.org/index.php/t/152059/call-viewhelper-from-another-viewhelper).
> 
> Zusammenfassend:
> Ich brauche eine Möglichkeit den SelectViewHelper aufzurufen, aber zusätzlich 
> auch zusätzliche Attribute (in diesem Bsp.: 'data-placeholder') zu übersetzen.
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an