Langues et modules de rendu de contenu
Pour ajouter le support de langues dans un module de rendu de contenu, il faut fournir un attribut « langue » à l’objet OptiWebRequest. Le module doit ensuite être adapté pour la gestion des différentes langues
-
Définissez une variable de type “String” pour contenir la langue
StringstrLang =null;
-
Récupérez la langue depuis les paramètres de l’URL
if(""+ Request.QueryString["LANG"] !="")
{
strLang =""+ Request.QueryString["LANG"];
} -
Vérifiez si la langue est présente dans la variable de session correspondante
elseif(""+ Session["lang"] !="")
{
strLang =""+ Session["lang"];
} -
Définissez la langue par défaut
if(String.IsNullOrEmpty(strLang))
{
strLang ="EN";
} -
Ajoutez la langue aux variables de session et définissez la dans l’objet « OptiWebRequest »
Session["lang"] = strLang;
Request.Attributes["REQUEST.LANGUAGE"] = strLang; -
Définissez la langue au niveau des emails, pages et sections dans SELLIGENT Editor.Le résultat obtenu après configuration de la page de rendu de contenu incluant les langues est le suivant
<%@PageTitle="Home Page"Language="C#"AutoEventWireup="true"%>
<%@ImportNamespace="System"%>
<%@ImportNamespace="System.Configuration"%>
<%@ImportNamespace="MessagentNET"%>
<scriptrunat="server">
StringincHead, incBody, incBodyAttr;
protectedvoidPage_Load(objectsender,EventArgse)
{
if(""+ Request.QueryString["ID"] !="")
{
OptiWebRequestiRequest =newOptiWebRequest(this);
iRequest.CollectDebugInfo =false;
iRequest.AutoRedirect =false;
iRequest.MessagentUrl ="http://formations.emsecure.net/optiext/optiextension.dll";
foreach(stringvarinRequest.QueryString)
{
iRequest.Attributes[var] = Request.QueryString[var];
}
foreach(stringvarinRequest.Form.AllKeys)
{
iRequest.Attributes[var] = Request.Form[var];
}
// LANGUAGE
StringstrLang =null;
if(""+ Request.QueryString["LANG"] !="")
{
strLang =""+ Request.QueryString["LANG"];
}
elseif(""+ Session["lang"] !="")
{
strLang =""+ Session["lang"];
}
if(String.IsNullOrEmpty(strLang))
{
strLang ="EN";
}
Session["lang"] = strLang;
iRequest.Attributes["REQUEST.LANGUAGE"] = strLang;
OptiWebResultm_WebResult = iRequest.Send();
incHead = m_WebResult.HtmlHead;
if(m_WebResult.ResultType ==OptiWebResult.OptiWebResultType.Redirect)
incBody ="<script language=\"javascript\" type=\"text/javascript\">\n\tdocument.location = \""+ m_WebResult.Url +"\";\n</scr"+"ipt>";
else
incBody = m_WebResult.HtmlBody;
incBodyAttr =" "+ m_WebResult.HtmlBodyAttr;
}
else
{
incHead ="";
incBody ="Error - No ID provided";
incBodyAttr ="";
}
}
</script>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en">
<headid="Head1"runat="server">
<linkhref="~/Styles/Site.css"rel="stylesheet"type="text/css"/>
<%=incHead%>
</head>
<body<%=incBodyAttr%>>
<!-- put header/navigation here -->
<%=incBody%>
<!-- put footer/navigation here -->
</body>
</html>