2012-05-30 218 views
1

我有含有一組不同語言的列表框:多語言網站配置

<%@ Page Language="C#" uiculture="auto" %> 
    <%@ Import Namespace="System.Threading" %> 
    <%@ Import Namespace="System.Globalization" %> 
<script runat="server"> 
protected override void InitializeCulture() 
{ 
if (Request.Form["ListBox1"] != null) 
{ 
    String selectedLanguage = Request.Form["ListBox1"]; 
    UICulture = selectedLanguage ; 
    Culture = selectedLanguage ; 

    Thread.CurrentThread.CurrentCulture = 
     CultureInfo.CreateSpecificCulture(selectedLanguage); 
    Thread.CurrentThread.CurrentUICulture = new 
     CultureInfo(selectedLanguage); 
} 
base.InitializeCulture(); 
} 
</script> 
<html> 
<head><title>Set Culture</title></head> 
<body> 
<form id="form1" runat="server"> 
<div> 
    <asp:ListBox ID="ListBox1" runat="server"> 
     <asp:ListItem Value="en-US" Selected="True">English</asp:ListItem> 
     <asp:ListItem Value="es-MX">Español</asp:ListItem> 
     <asp:ListItem Value="de-DE">Deutsch</asp:ListItem> 
    </asp:ListBox> 
    <br /> 
    <asp:Button ID="Button1" runat="server" Text="Set Language" /> 
    <br /> 
    <asp:Label ID="Label1" runat="server" Text="my name is" /> 

    </div> 
</form> 
</body> 
    </html> 

我希望當我選擇從我的列表框語言標籤文本將被翻譯爲例如所選擇的語言,如果我選擇西班牙語「我的名字是」將被翻譯成西班牙語語言和顯示屏幕

+0

是否只想更改標籤名稱,或者是否要更改CultureInfo,以便網站中的所有內容(資源)都應該更改爲所選語言? –

+0

我想網站的所有內容更改爲選定的語言是不僅標籤文本值 –

回答

1

你將需要刪除的硬編碼字符串,並開始使用Resource文件。我建議你看一看this教程,瞭解如何開發一個多語言網站的完整指南。

+0

你所說的硬編碼字符串是什麼意思? –

+0

@BassemAssemAlameddine:此:'文字= 「我的名字是」'。 – npinti

+0

這只是一個例子,我把這樣我就可以說明我的問題 –

0

你應該實現這個

protected override void InitializeCulture() 
每次需要多語言頁面上

。 我通常創建一個類來覆蓋它,並從那個派生出其他支持多語言的頁面。你也需要使用coockies。 coockies [「lang」] =「en-US」 - 類似這樣的語言管理。

+0

這不是我想要實現的目標我想創建一個多語言網站,不僅改變我選擇變更的標籤的價值 –

+0

@BassemAssemAlameddine:我發佈了一個鏈接到這樣的教程,它應該讓你在右邊跟蹤。我建議你看看它。 – npinti

1

寫的代碼在列表框的SelectedIndexChanged事件以下行

Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguageCode); 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguageCode); 

selectedLanguageCode東西指定每個培養例如美國英語en-US等。

+0

請檢查我的編輯 –

+0

你已經寫在初始化的文化事件中的代碼,寫在列表框中選定的指數變化事件定行,所以你改變事件每次它應該重新設置文化。 –

+0

剛剛看到我的一個項目實現,並發現需要指定其他行,現在編輯我的答案有兩行代碼你必須寫 –