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

  1. Définissez une variable de type “String” pour contenir la langue

    StringstrLang =null;

  2. Récupérez la langue depuis les paramètres de l’URL

    if(""+ Request.QueryString["LANG"] !="")
    {
        strLang =""+ Request.QueryString["LANG"];
    }

  3. Vérifiez si la langue est présente dans la variable de session correspondante

    elseif(""+ Session["lang"] !="")
    {
         strLang =""+ Session["lang"];
    }

  4. Définissez la langue par défaut

    if(String.IsNullOrEmpty(strLang))
    {
       strLang ="EN";
    }

  5. Ajoutez la langue aux variables de session et définissez la dans l’objet « OptiWebRequest »

    Session["lang"] = strLang;        
    R
    equest.Attributes["REQUEST.LANGUAGE"] = strLang;

     

  6. 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>

 

Retour