2011-10-18 6 views
0

J'ai développé une application web et c'est un site dynamique. Puis-je placer une option multilingue pour mon site?Application multilingue, Microsoft Visual Studio?

Si oui, y a-t-il des plugins pour cela? Comment puis-je aller plus loin pour développer une application multilingue?

+0

se réfèrent à http://stackoverflow.com/questions/256229/ multilingue-web-application-comment-je-détecter-les-utilisateurs-langue-dans-asp-net –

Répondre

0

Nous avons le contrôle DropdownList. Sur son événement SelectedIndexChanged, il postbacks et nous changeons alors la culture du site, et il charge ensuite les fichiers de ressources respectifs ...

DropDownList ASP.NET code

<asp:DropDownList ID="ddlLanguage" runat="server" CssClass="select-language" AutoPostBack="true"> 
    <asp:ListItem Value="en-US" Text="English" title="/images/Flag_USA.gif"></asp:ListItem> 
    <asp:ListItem Value="it-IT" Text="Italiano" title="/images/Flag_Italian.gif"></asp:ListItem> 
    <asp:ListItem Value="fr-FR" Text="Française" title="/images/Flag_French.gif"></asp:ListItem> 
</asp:DropDownList> 

classe commune héritée par tous des pages web

using System; 
using System.Web; 
using System.Threading; 
using System.Globalization; 

public class languagebase : System.Web.UI.Page 
{ 
    protected override void InitializeCulture() 
    { 
     try 
     { 
      string LanguageCode = Request["ctl00$ucMenu$ddlLanguage"]; // Language Drop Down Control in Front End 
      if (!LanguageCode.IsNullOrEmpty()) 
      { 
       setCulture(LanguageCode); // Set Culture language from drop down 
       Request.Cookies["LanguageCode"].Value = LanguageCode; // Update REQUEST Cookie language from drop down 
       SetCookies(LanguageCode); // Set Cookie language from drop down 
      } 
     } 
     catch(Exception ex) 
     { 
      setCulture("en-US"); // Set default language 
      Request.Cookies["LanguageCode"].Value = "en-US"; // Update REQUEST Cookie language to default 
      SetCookies("en-US"); // Set default language 
     } 
     base.InitializeCulture(); 
    } 

    private static void setCulture(string LanguageValue) 
    { 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageValue); 
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageValue); 
    } 

    public void SetCookies(string strLanguage) 
    { 
     System.Web.HttpContext.Current.Response.Cookies["LanguageCode"].Value = strLanguage; 
     System.Web.HttpContext.Current.Response.Cookies["LanguageCode"].Expires = DateTime.Now.AddDays(15); 
    } 
} 

Méthode d'extension (juste pour l'amour de l'information)

public static Boolean IsNullOrEmpty(this String original) 
{ 
    return string.IsNullOrEmpty(original); 
} 

S'il vous plaît examiner ces liens avant de commencer à mettre en œuvre:

  1. Globalization Architecture
  2. [astuces globalisation jQuery utilisés dans ASP.NET MVC] qui peuvent être utiles dans ASP.NET également.
  3. My question here defines the way to implement multi-language code
  4. How to create and use Global language resources in ASP.NET

Ceux-ci font toutes vos pages à utiliser hériter de la classe languagebase comme ci-dessous:

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Default : languagebase 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 
} 
+0

merci je vais essayer et laissez-vous savoir à ce sujet. –

+0

il donne une erreur: aucune méthode appropriée trouvée pour remplacer –

+0

À quel point de code dans ma réponse ?? –

Questions connexes