cancel
Showing results for 
Search instead for 
Did you mean: 

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

damienmorvan
Champ in-the-making
Champ in-the-making
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 4

rguinot
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.