Modèle de présentation FTL en fonction de la langue

cancel
Showing results for 
Search instead for 
Did you mean: 
damienmorvan
Member II

Modèle de présentation FTL en fonction de la langue

Bonjour à tous,

j'ai un problème avec un template FTL qui doit afficher un fichier HTML en fonction de la langue de l'utilisateur.

Ma configuration
Alfresco Enterprise 3.1.2 (390)
JDK 1.6.0_15
Serveur Linux

Pas à pas
J'ai créé un modèle d'espace dans Data Dictionnary. Dans ce dernier, j'appelle un template FTL qui affiche un fichier readme_fr.html situé dans un autre répertoire :

<#– Displays the contents of readme.html and/or the evaluated readme.ftl if they exist in the current space. –>

<#assign filename = "readme"/>
<#assign htmlExt = "html"/>
<#assign suffix = .lang />
<#assign htmlFilename = "${filename}_${suffix}.${htmlExt}"/>
<#assign messageError="File ${htmlFilename} does not exist! 2"/>

${companyhome.nodeByReference["workspace://SpacesStore/8d537a41-14a1-4ce8-b528-6746b38c9f05"].content}
Cela fonctionne bien. Désormais, je souhaite appeler un fichier HTML en fonction de la langue sélectionnée par l'utilisateur lors de sa connexion (Anglais ou Français). J'ai donc modifié le FTL :


<#– Displays the contents of readme.html and/or the evaluated readme.ftl if they exist in the current space. –>

<#assign filename = "readme"/>
<#assign htmlExt = "html"/>
<#assign suffix = .lang />
<#assign htmlFilename = "${filename}_${suffix}.${htmlExt}"/>
<#assign messageError="File ${htmlFilename} does not exist! 2"/>

<#if suffix=="fr">
${companyhome.nodeByReference["workspace://SpacesStore/8d537a41-14a1-4ce8-b528-6746b38c9f05"].content}
<#else>
${companyhome.nodeByReference["workspace://SpacesStore/ea516be8-adf1-426b-a5bd-d9ba0452dcf0"].content}
</#if>
Problème
Je n'arrive pas à récupérer la langue utilisé et mon test avec le if est toujours égal à "fr". J'imagine ne pas utiliser la bonne méthode. J'ai lu le Template Cook Book et le guide Freemarker mais je n'ai pas trouvé l'information.

Merci par avance pour vos réponses,

D.Morvan
4 Replies
rguinot
Customer

Re: Modèle de présentation FTL en fonction de la langue

Je ne pense pas que vous soyez parti sur la bonne piste. Il vaut mieux créer des resource bundles / fichier properties pour chaque langue concernée, et utiliser la fonction freemarker

message(String) - will return the I18N message string (resolved for current user Locale setting) for the specified String message ID.

pour afficher le message dans la locale courante.
damienmorvan
Member II

Re: Modèle de présentation FTL en fonction de la langue

Merci pour votre réponse.

Je dispose de deux fichiers HTML, un en français et l'autre en anglais.

Si j'ai compris, il faut mieux créer deux templates FTL ?
rguinot
Customer

Re: Modèle de présentation FTL en fonction de la langue

je dirais plutot 1 FTL et 2 fichiers properties. les properties s'insérant dans le code html au besoin, en fonction de la locale.
damienmorvan
Member II

Re: Modèle de présentation FTL en fonction de la langue

Bonjour,

je n'ai donc rien à ajouter dans mon FTL mais par contre je dois modifier mon HTML pour insérer des properties ?

A quoi ressemble les properties ? Où les insérer ? Il y a t-il de la doc sur le sujet ?

Merci par avance,

D.Morvan