Projet Socle ENT
Pages enfant
  • bug langue de traitement des pages

Vous regardez une version antérieure (v. /wiki/spaces/ESUPMU/pages/175046697/bug+langue+de+traitement+des+pages) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

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

uportal-war/src/main/resources/layout/theme/universality/page.xsl b/uportal-war/src/main/resources/layout/theme/universality/page.xsl
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

/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
/uportal-war/src/main/resources/properties/i18n/Messages_fr.properties
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;
}



  • Aucune étiquette