2017-08-08 1 views
-1

Je construis une application simple dans ASP.NET MVC. Quelqu'un peut-il m'aider à le faire en tant que site multilingue, en stockant la langue en session et en travaillant avec des sessions, lien, aide ou tutoriel, pour changer la langue du côté serveur, je poste des nouvelles dans ce cms, donc quand j'appuie sur englisH, il devrait me montrer le texte en anglais, espagnol et ainsi de suite ..Asp.net Application Web multilingue

+0

utiliser Code du projet https://www.codeproject.com/Articles/526827/MVC-Basic-Site-Step-Multilingual-Site-Squelette pour avoir une compréhension de base de multilingue et après que vous pouvez explorer les fonctionnalités avancées en fonction de vos besoins –

+0

Je dois travailler avec des sessions et ensuite communiquer avec le contrôleur. – ttgg

Répondre

0

(ceci est fait en vb mais si C# est désiré, les convertisseurs de code sont disponibles et mais le principe est le même) cela pourrait être fait avec un fichier XML avec une structure comme celle-ci.

<globalization> 
    <!-- the lang attribute is a made up attribute. it helps with search 
     further on--> 
    <content lang="fr"> 
     <title>je suis un titre</title> 
     <text>et ceci est un paragraphe</title> 
    </content> 
    <content lang="en"> 
     <title>this is a title</title> 
     <text>and this is a paragraph</title> 
    </content> 
</globalization> 

et tout ce dont vous avez besoin est de faire est dans votre arrière changer votre code html en fonction de ce que la langue sélectionnée ... exemple de html:

<body> 
    <asp:button runat="server" id="btnLangFr" text="Fr"/> 
    <asp:button runat="server" id="btnLangEn" text="En"/> 
    <asp:label runat="server" id="lblTitle" /> 
    <asp:label runat="server" id="lblParagraph" /> 
<body> 

exemple de back-end:

Protected Sub btnLangEn(sender As Object, e As EventArgs) handles btnLangEn.click 
    Dim xmlDoc As XmlDocument = New XmlDocument() //defines xmldoc 
    xmlDoc.Load(Server.MapPath("globalization.xml")) //gets .xml file 
    Dim root As XmlElement = xmlDoc.DocumentElement //defines root 
    'next line sets a list of all the <content> tags 
    Dim elemList As XmlNodeList = root.GetElementsByTagName("lang") 
    'insert code to change the <asp:label> tags to be equal to the text 
    'between the corresponding xml tags 
End Sub 

pour obtenir la bonne étiquette content vous aurez besoin de faire une boucle qui recherche l'attribut lang correct

une fois trouvée, enregistrez la variable dans une variable (ex. Dim ActiveLang as xmlElement = root.ChildNodes.ItemOf(index of loop))

alors vous pouvez obtenir le texte des balises souhaitées comme si .. activeLang.GetElementsByTagName("title")(0).InnerText et faire des lignes de code comme ceci:

lblTitle.text = activeLang.GetElementsByTagName("title")(0).InnerText 
+0

Pourriez-vous reformater votre question, alors les barres de défilement horizontales disparaîtront? – reporter

+0

Je dois travailler avec des sessions et ensuite communiquer avec le contrôleur. – ttgg

+0

oh mes excuses, je ne suis pas familier avec mvc si c'est ce dont vous parlez – Alphanot