Foros de discusión
[Résolu] cacher la langue courrante
mohammed hilout, modificado hace 12 años.
[Résolu] cacher la langue courrante
New Member Mensajes: 14 Fecha de incorporación: 17/11/11 Mensajes recientes
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
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, modificado hace 12 años.
RE: cacher la langue courrante
Liferay Legend Mensajes: 1261 Fecha de incorporación: 2/10/08 Mensajes recientes
Salut Mohammed:
en portal-ext.properties
locales=en_US,fr_FR
A+!
en portal-ext.properties
locales=en_US,fr_FR
A+!
Leo Pratlong, modificado hace 12 años.
RE: cacher la langue courrante
Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
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.
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 .
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.
<%
final Locale currentLocale = themeDisplay.getLocale();
final boolean isEn = currentLocale.getLanguage().contains("en");
%>
<c:choose>
<c:when test="<%= isEn %>">
<!-- On affiche le drapeau français -->
</c:when>
<c:otherwise>
<!-- On affiche le drapeau anglais -->
</c:otherwise>
</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 .
mohammed hilout, modificado hace 12 años.
RE: cacher la langue courrante
New Member Mensajes: 14 Fecha de incorporación: 17/11/11 Mensajes recientes
oui c'est ce que je veux exactement.
je vais essayer ta solution. Merci
je vais essayer ta solution. Merci
mohammed hilout, modificado hace 12 años.
[Résolut] cacher la langue courrante
New Member Mensajes: 14 Fecha de incorporación: 17/11/11 Mensajes recientes
Ta solution marche bien
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>
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>