Articles
FAQs
Login
A Simple multi-language webpage using Sessions
By [)ia6l0 iii
Access over 40 UI widgets with everything from interactive menus to rich charts.
You could store the default language/culture information in a session and set it to a current webpage. This change could be triggered through any control. Read on for the code snippet.
Create a Page called
"MultiLanguagePage.aspx"
. For the explanation, i have used a textbox,button, calendar and a drop down list (has the various cultures listed).
Let's name the TextBox has
"inputbox"
, drop down
as
"ddlCultures"
, button
as
"btnClick"
In the page load
event
of the
"MultiLanguagePage.aspx"
write the following code.
//Page_Load event
/// <summary>
/// Handles the Load event of the Page control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected
void
Page_Load(
object
sender, EventArgs e)
{
List<CultureInfo> result =
new
List<CultureInfo>();
foreach
(CultureInfo culture
in
CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
ddlCultures.Items.Add(
new
System.Web.UI.WebControls.ListItem(culture.NativeName, culture.Name));
}
}
/// <summary>
/// Handles the Click event of the btnClick control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected
void
btnClick_Click(
object
sender, EventArgs e)
{
if
(!
string
.IsNullOrEmpty(ddlCultures.SelectedValue))
{
ResetCulture(
new
CultureInfo(ddlCultures.SelectedValue));
}
}
/// <summary>
/// Resets the culture.
/// </summary>
/// <param name="culture">The culture.</param>
protected
void
ResetCulture(CultureInfo culture)
{
if
(
null
!= culture)
{
//Apply New Culture
ApplyNewCulture(culture);
//Refresh the current page
Response.Redirect(Request.Url.AbsoluteUri);
}
}
/// <summary>
/// Applies the new culture.
/// </summary>
/// <param name="culture">The culture.</param>
private
void
ApplyNewCulture(CultureInfo culture)
{
//Set current Thread UI Culture
Thread.CurrentThread.CurrentUICulture = culture;
//Set current Thread Culture
Thread.CurrentThread.CurrentCulture = culture;
//Store current language in session
Session.Add(
"Current_Culture"
, culture);
}
You will see that on refresh, all the controls on the page will reflect the
new
culture. Retrieve it
in
the page_load
as
preference from the session
using
the following line of code.
//use sessopn culture
if
(
null
!= Session[
"Current_Culture"
])
{
ApplyNewCulture((CultureInfo) Session[
"Current_Culture"
]);
}
Popularity
(
1155 Views
)