Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
h med
[Résolu] cacher la langue courrante
September 18, 2012 1:22 AM
Answer

h med

Rank: New Member

Posts: 14

Join Date: November 17, 2011

Recent Posts

Bonjour,

j'ai un thème qui supporte 2 langues : français/englais.

quand le portail est en français, je veux afficher seulement l'anglais et vis versa.

Est ce que vous avez une solution?

Merci
Juan Fernández
RE: cacher la langue courrante
January 9, 2012 7:22 AM
Answer

Juan Fernández

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1262

Join Date: October 2, 2008

Recent Posts

Salut Mohammed:

en portal-ext.properties
locales=en_US,fr_FR

A+!
Leo Pratlong
RE: cacher la langue courrante
January 9, 2012 7:42 AM
Answer

Leo Pratlong

Rank: Expert

Posts: 363

Join Date: July 6, 2010

Recent Posts

Bonjour,

Juan, si on fait ça, ça affiche les 2 drapeaux me semble-t-il.
Si j'ai bien compris la question, Mohamed souhaite afficher uniquement le drapeau Anglais si la langue courante est le Français, et uniquement le drapeau français si la langue courante est l'Anglais.
Pour cela, vous pouvez utiliser une sorte de "switch" dans un plugin Hook. Il s'agira d'une condition vérifiant la langue courante. Par exemple, grossièrement, dans html/taglib/ui/language/page.jsp (version 6.0.5), on pourra fait un truc comme ci-dessous. Placez le code à l'endroit où est affiché le drapeau.
 1
 2<%
 3final Locale currentLocale = themeDisplay.getLocale();
 4final boolean isEn = currentLocale.getLanguage().contains("en");
 5%>
 6<c:choose>
 7    <c:when test="<%= isEn %>">
 8        <!-- On affiche le drapeau français -->
 9    </c:when>
10    <c:otherwise>
11        <!-- On affiche le drapeau anglais -->
12    </c:otherwise>
13</c:choose>


Ce code peut être bien sûr amélioré (d'autant plus qu'il est là uniquement à titre d'exemple) pour répondre à des cas plus génériques (en utilisant par exemple une nouvelle propriété à créer pour le portal-ext.properties et qui stipulerait des règles d'affichage).
Cela dit, s'il y a une solution déjà existante pour créer une sorte de switch uniquement via la configuration, je suis preneur emoticon.
h med
RE: cacher la langue courrante
January 10, 2012 1:24 AM
Answer

h med

Rank: New Member

Posts: 14

Join Date: November 17, 2011

Recent Posts

oui c'est ce que je veux exactement.

je vais essayer ta solution. Merci
h med
[Résolut] cacher la langue courrante
September 18, 2012 1:21 AM
Answer

h med

Rank: New Member

Posts: 14

Join Date: November 17, 2011

Recent Posts

Ta solution marche bien emoticon

Merci bcp!
voila ce que j'ai mis après la boucle : for (int i = 0; i < locales.length; i++) {}

final Locale currentLocale = themeDisplay.getLocale();
final boolean isEn = currentLocale.getLanguage().contains("en");

//locales[0] c'est l'anglais
//locales[1] c'est le français
%>
<c:choose>
<c:when test="<%= isEn %>">
<liferay-ui:icon
image='<%= "../language/" + LocaleUtil.toLanguageId(locales[1]) %>'
lang="<%= LocaleUtil.toW3cLanguageId(locales[1]) %>"
message="<%= locales[1].getDisplayName(locales[1]) %>"
url='<%= formAction + "&" + name + "=" + locales[1].getLanguage() + "_" + locales[1].getCountry() %>'

/>
</c:when>
<c:otherwise>
<liferay-ui:icon
image='<%= "../language/" + LocaleUtil.toLanguageId(locales[0]) %>'
lang="<%= LocaleUtil.toW3cLanguageId(locales[0]) %>"
message="<%= locales[0].getDisplayName(locales[0]) %>"
url='<%= formAction + "&" + name + "=" + locales[0].getLanguage() + "_" + locales[0].getCountry() %>'
/>
</c:otherwise>
</c:choose>