12
votes

Modèle de fluide TYPO3 Obtenez le code de langue

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 : xxx

Que j'utilise dans le modèle de fluide comme suit. xxx


0 commentaires

6 Réponses :


13
votes

Vous pouvez simplement affecter une variable dans votre action: xxx

puis lisez-le à votre vue: xxx

sur L'autre main Il serait plus facile et plus confortable d'attribuer une variable de roue à utiliser dans le contrôleur comme bloc est assez simple et parfois mal à l'aise: < / p> xxx


3 commentaires

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 . 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 ET .EN ETC.


Lol tu appelle cet élégant? WTF Un boîtier de commutation n'est pas élégant du tout.



1
votes

Une autre option pourrait être d'utiliser le V: page.Languagemenu 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: xxx

Il y a un lot plus que vous pouvez faire avec les valeurs retournées. de chacun de ces voyageurs - vous pouvez par exemple utiliser v: var.set pour définir de nouvelles variables dans le gabarit contenant des noms d'indicateur extrait: xxx


1 commentaires

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!



8
votes

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')}


3 commentaires

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 @ Tobias Gaertner Vous avez sécurisé ma journée!



14
votes

Une autre solution à l'aide d'un objet TypeScript dans le modèle de fluide: xxx

et code fluide: xxx

objet temp.language < / code> peut contenir des valeurs, bien sûr.


0 commentaires

5
votes

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>


0 commentaires

0
votes

Une autre approche via l'exemple typo3 languageaspect

dans une extension ExtBase (par exemple, showAction ) xxx

Exemple testé dans TYPO3 10.4 lts


0 commentaires