Gestion des langues sous TYPO3

Le problème de gestion des langues sous TYPO3 est un problème récurrent, je vais essayer à partir ce billet de faire face à ce problème.
Dans cet article, je vais mettre en place un système multilingue français/anglais (FR/EN).

1- Installation des extensions

Il faut commencer par installer les extensions nécessaires pour créer un système multilingue.

  • Static Info Tables
  • Static Info Tables (FR)
  • Static Info Library

 

2- Configuration des langues

Il faut créer une nouvelle langue sur la page root du site, la nouvelle langue sera la langue Anglaise (id=1), et la langue Française sera la langue par défaut (id=0).

L’étape suivante consiste à mettre en place le code typoscript suivant dans un gabarit, ce code est nécessaire pour la gestion des langues et permet de fixer les paramètres des langues.

  1. // Langue par defaut
  2. config.sys_language_uid = 0
  3. config.language = fr
  4. config.locale_all = fr_FR
  5. config.htmlTag_langKey = fr
  6. config.linkVars = L
  7.  
  8. // Langue FR
  9. [globalVar = GP:L = 0]
  10.   config.sys_language_uid = 0
  11.   config.language = fr
  12.   config.locale_all = fr_FR
  13.   config.htmlTag_langKey = fr
  14. [GLOBAL]
  15.  
  16. // Langue EN
  17. [globalVar = GP:L = 1]
  18.   config.sys_language_uid = 1
  19.   config.language = en
  20.   config.locale_all = en_EN
  21.   config.htmlTag_langKey = en
  22. [GLOBAL]

 
Aussi, il faut mettre le code suivant dans le tsconfig de la page root de votre site :

  1. #Activation de paradigme
  2. mod.web_txtemplavoilaM1.translationParadigm = free
  3.  
  4. #default flag
  5. mod.SHARED.defaultLanguageFlag = fr.gif
  6. mod.SHARED.defaultLanguageLabel = French


3- Menu des langues

Mapper l’emplacement destiné au menu de langue ou s'affiche les deux drapeaux des langues français et anglais, puis collé le code typoscript suivant dans un gabarit :

  1. # Menu language
  2. lib.menu_lang = HMENU
  3. lib.menu_lang.special = language
  4. lib.menu_lang.special.value = 0,1
  5. lib.menu_lang.1 = TMENU
  6. lib.menu_lang.1 {        
  7.         // Normal state
  8.         NO.linkWrap = <span> | </span>
  9.         NO.stdWrap.override = <img src="fr.gif" alt="Français" /> || <img src="en.gif" alt="English" />
  10. }


4- Configurer les flexibles contents et les DS

Il faut configurer les langues dans tous les flexibles contents et les DS, il faut remplacer le code suivant

  1. <T3DataStructure>
  2.         <ROOT type="array">

Par
  1. <T3DataStructure>
  2. <meta type="array">
  3.         <langChildren type="integer">1</langChildren>
  4.         <langDisable type="integer">0</langDisable>
  5. </meta>
  6.         <ROOT type="array">

TYPO3 Donate Becoming a T3CON11-San Fransisco Speaker TYPO3 Phoenix Sprint Release 5