Exposé du problème
En Accessibilité, il y a un critère majeur :
Critère 8.3 [Bronze] Accessiweb
Dans chaque page Web, la langue par défaut est-elle présente ?
Correspondances WCAG 2.0 et RGAA? : Critère(s) de succès WCAG 2.0 : 3.1.1? - Technique(s) suffisante(s) et/ou échec(s) WCAG 2.0 : H57? - Test RGAA : 9.8
Bonne nouvelle par rapport à la 3.2, avec uPortal 4, le serveur renvoie l'en-tête HTTP Content-Language correctement. Et même quand on change la langue du portail, l'en-tête HTTP change.
Vous pouvez le vérifier avec Firebug, dans le panneau "réseau".
L'en-tête HTTP indique le ou les langues des pages.(plusieurs possible)
Malheureusement, la langue de traitement de la page est -elle- indiqué en dur dans la page. A savoir les attributs de la balise <html> "lang" et xml:lang".
dans uportal-war/src/main/resources/layout/theme/universality/page.xsl
86. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
il faut faire la même chose pour la vue Mobile :
dans uportal-war/src/main/resources/layout/theme/muniversality/muniversality.xsl
là la langue est fixée en dur dans la xsl :
171. <xsl:param name="USER_LANG">en</xsl:param>
et mettre l'attribut lang au tag "html" :
301. <xsl:template match="/">302. <html>La langue de traitement indique la langue principale de la page (une seule possible)
Résolution du problème
il faudrait pouvoir changer dynamiquement la langue principale dans la XSL,
à savoir, avoir en français :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
avoir en anglais :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
et ainsi de suite...
Proposition de résolution
On peut se basse sur les traductions
diff --git a/uportal-war/src/main/resources/layout/theme/universality/page.xsl b/uportal-war/src/main/resources/layout/theme/universality/page.xsl index 0aa723d..4039016 100644 --- a/uportal-war/src/main/resources/layout/theme/universality/page.xsl +++ b/uportal-war/src/main/resources/layout/theme/universality/page.xsl @@ -83,7 +83,7 @@ </xsl:choose> </xsl:variable> - <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{upMsg:getMessage('portal.lang', $USER_LANG)}" lang="{upMsg:getMessage('portal.lang', $USER_LANG)}"> <head> <title> <xsl:choose>
Ajouter dans chaque fichier de langue la traduction /uportal-war/src/main/resources/properties/i18n/Messages_*.properties
diff --git a/uportal-war/src/main/resources/properties/i18n/Messages.properties b/uportal-war/src/main/resources/properties/i18n/Messages.properties index da52cfe..dc7ee74 100644 --- a/uportal-war/src/main/resources/properties/i18n/Messages.properties +++ b/uportal-war/src/main/resources/properties/i18n/Messages.properties @@ -536,3 +536,5 @@ your.account.has.been.successfully.updated.your.changes.will.be.visible.upon.you your.password.has.been.updated.successfully=Your password has been updated successfully your.selection=Your Selection your.selections=Your Selections + +portal.lang=en
diff --git a/uportal-war/src/main/resources/properties/i18n/Messages_fr.properties b/uportal-war/src/main/resources/properties/i18n/Messages_fr.properties index d44cdba..57d6665 100644 --- a/uportal-war/src/main/resources/properties/i18n/Messages_fr.properties +++ b/uportal-war/src/main/resources/properties/i18n/Messages_fr.properties @@ -519,3 +519,5 @@ your.account.has.been.successfully.updated.your.changes.will.be.visible.upon.you your.password.has.been.updated.successfully=Votre mot de passe a \u00e9t\u00e9 mis \u00e0 jour avec succ\u00e8s your.selection=Votre s\u00e9lection your.selections=Vos s\u00e9lections + +portal.lang=fr
Avantages
Cela nous permettrai de patcher et de surcharger proprement en css (sans toucher aux css anglaises) le thèmes graphiques "uportal3", "ivy", "coal" et "hight contrast" en français, par le moyen de sélecteurs css qui ne s'appliqueraient qu'en français du type :
html[lang=fr] .up .myclass { property:value-in-french; }
2 commentaires
Christian COUSQUER dit :
févr. 05, 2012Julien,
Dans l'idée, c'est exactement ça. Il serait bon de remonter directement ceci a Jasig, car ça solutionnerai le truc pour n'importe quelle langue i18n...
Christian COUSQUER dit :
avr. 26, 2012Bon ben, j'ai un pb de clé ssh avec mon mail upmc pour commiter sur sourcesup... comme mathilde. Désolé ;)
je viens de commiter sur le github de jasig le correctif du bug, il vient d'être merger.
voici le jira :
https://issues.jasig.org/browse/UP-3454
voici le correctif du bug il est simple...
et
ça a été merger le 25 Avril 2012 sur github/jasig/uportal :
https://github.com/Jasig/uPortal/commits/master