[Frage] f:translate und f:uri.action link als argument übergeben [Gelöst]


  • 0 x
    05. 07. 2014, 13:20

    Hallo,

    ich versuche gerade über arguments von f:translate einen Link der durch f:uri.action erstellt wird zu übergeben.

    Versucht hatte ich:

    1. <f:translate id="form.login.no.account.yet" source="Login" arguments="{0:{f:uri.action(action:'register')},1:'_self'}" />
    2.  
    3. bzw.
    4.  
    5. <f:translate id="form.login.no.account.yet" source="Login" arguments="{0:'{f:uri.action(action:'register')}',1:'_self'}" />


    Die Zeile in meiner XLIFF Datei sieht wie folgt aus:
    1. <trans-unit id="form.login.no.account.yet">
    2. <source>Don't have an account yet <![CDATA[?&nbsp; <a href="{0}" target="{1}" id="register-btn">Create an account</a>]]></source>
    3. </trans-unit>


    Wenn ich einfach nur einen String für {0:'...'} übergebe wird mir der auch ausgegeben, will ich aber den Link durch die f:uri.action dynamisch erstellt haben und den dann übergeben klappt das nicht.
    Ich bekomme dann immer die Fehlermeldung:
    1. The argument "arguments" was registered with type "array", but is of type "string"


    Habe ich etwas übersehen? Geht das nicht?

    Der Grund warum ich das so machen möchte ist einfach der, dass der Link im Text ist und ich es sehr unschön finden würde wenn ich in solchen Fällen den Link aufteilen müsste in mehrere Teile.

    Dank euch!

  • afoeder afoeder
    Padawan
    1 x
    58 Beiträge
    1 Hilfreiche Beiträge
    09. 07. 2014, 12:29 - Lösung

    Du musst die "inneren" Anführungszeichen escapen, also:

    1. <f:translate [...] arguments="{0: '{f:uri.action(action: \'register\')}', 1: '_self'}" />

    (beachte die \ vor 'register'). So müsste es gehen.

    meine Flow-Kenntnis verdanke ich der täglichen Arbeit an https://www.wishbase.com - der Crowdfunding-Plattform für Wünsche, und der großartigen community im IRC-Channel #typo3-flow.


  • 1
  • afoeder afoeder
    Padawan
    1 x
    58 Beiträge
    1 Hilfreiche Beiträge
    09. 07. 2014, 12:29

    Du musst die "inneren" Anführungszeichen escapen, also:

    1. <f:translate [...] arguments="{0: '{f:uri.action(action: \'register\')}', 1: '_self'}" />

    (beachte die \ vor 'register'). So müsste es gehen.

    meine Flow-Kenntnis verdanke ich der täglichen Arbeit an https://www.wishbase.com - der Crowdfunding-Plattform für Wünsche, und der großartigen community im IRC-Channel #typo3-flow.

  • 1