est-il possible d'obtenir la clé de langue actuelle (ou le code) dans un modèle de fluide TYPO3?
Entre-temps, j'ai trouvé une autre solution à l'aide d'une assistance de vue trouvée : p> Que j'utilise dans le modèle de fluide comme suit. P>
6 Réponses :
Vous pouvez simplement affecter une variable dans votre action: puis lisez-le à votre vue: p>
Très simple et élégant par rapport à ce que j'ai trouvé - merci.
Je conseillerais contre ce type d'affectation, cela porte quelques problèmes. Premièrement, il utilise des références codées en dur aux UID de langage système susceptibles de casser si elles sont transférées sur un autre site. Deuxièmement, si vous devez traduire des étiquettes, vous devez utiliser F: traduire code>. Une meilleure stratégie est peut-être de lire la valeur "Nom de l'icône du drapeau" de la langue et d'utiliser cela dans un nom d'une étiquette traduite, par exemple.
LLL: EXT: MYEXT / RESSOURCES / Privé / Langue / LOCALLANG.XML: LANGUE AGES.DE CODE> ET
.EN CODE> ETC.
Lol tu appelle cet élégant? WTF Un boîtier de commutation n'est pas élégant du tout.
Une autre option pourrait être d'utiliser le Il y a un lot em> plus que vous pouvez faire avec les valeurs retournées. de chacun de ces voyageurs - vous pouvez par exemple utiliser V: page.Languagemenu code> ViewHelper de l'extension VHS. Cela vous permettrait de combiner avec d'autres fenêtres et d'utiliser quelque chose comme ce qui suit dans un modèle fluide:
v: var.set code> pour définir de nouvelles variables dans le gabarit contenant des noms d'indicateur extrait: p>
Chargement de VHS uniquement pour utiliser la langue, vous devez publier votre commentaire de l'utilisation du fichier de langue pour cela, j'avais évoqué cette réponse intelligente en un clic!
Pour obtenir le langage actuel, vous pouvez utiliser la page / LanguageViewHelper incluse avec l'extension VHS.
{v:page.language(languages: 'en,fr', pageUid: '0', normalWhenNoLanguage: 'en')}
Car j'utilise VHS dans la plupart des projets de toute façon - c'est la meilleure solution pour moi!
Donc, avec cela, un "exemple du monde réel" pourrait être
Une autre solution à l'aide d'un objet TypeScript dans le modèle de fluide: et code fluide: p> objet temp.language < / code> peut contenir des valeurs, bien sûr. p> p>
Ma solution est la suivante:
data = TSFE: sys_language_uid strong> p> (la sortie est la langue UID) p> <f:if condition="{pageLanguage}==0">
<f:then>Do this</f:then>
<f:else if="{pageLanguage}==1">
Do this instead if variable two evals true
</f:else>
<f:else if="{pageLanguage}==2">
Or do this if variable three evals true
</f:else>
<f:else>
Or do this if nothing above is true
</f:else>
</f:if>
showAction code>) h2> xxx pré> Exemple testé dans TYPO3 10.4 lts em> p> h1>