Adding Different Languages in Asp.net
In this article , We will Learn about How languages are in websites in Asp.net
#
Language
Code for Different Languages
- English ------- en-us (us)
- French ------- fr-be (Belgium)
- Germen ------- de-at (Austria)
# How to find other languages with its code
Goto Internet Explorer > Tools > Internet
Option > Languages > Add
# We have to make txt file for languages
*Number of languages = number of txt file
Base name=abc
culture name=en region name=us
abc.en-us.txt
abc.fr-be.txt
abc.de-at.txt
# After making txt files, convert them to resource file
abc.en-us.resources
abc.fr-be.resources
abc.de-at.resources
# Resources file = compressed (common bitmap, icon, images, common string)
# Open Visual Studio and Make new Project
*Website >
Add new Item > Text file > abc.en-us.txt
b= Hello
c= English
d= Hi
key =a
value = Welcome
Key is used to access and it should be in English.
*Website >
Add new Item > Text file > abc.fr-be.txt
a= Bienvenu
b= Bonjour
c= French
d=
salut
*Website >
Add new Item > Text file > abc.de-at.txt
a= Herzlich willkommen
b= Hallo
c= Germen
d= Hallo
Resgen – utility to convert txt to resource file
*Add new webform > then drop downlist
DropdownList> Tasklist> Edit Item> add >
Text= English > Value = en-us
add > Text= French > Value = fr-be
add > Text= Germen> Value = de-at
*Enable autopostback
*Add 4 Label
using System.Globalization;
using System.Resources;
using System.Threading;
|
Globalization – culture specific classes
Threading
– multi-threading concept
#Global Application Class
- one project one file- to manage application and session level events
#Website > Add new Item > Global Application
Class
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Globalization"%>
<%@ Import Namespace="System.Resources"%>
<%@ Import Namespace="System.Threading" %>
|
void Application_Start(object sender, EventArgs e)
-
fire at first and one time only when
project runs
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application
startup
Application["rm"] =
ResourceManager.CreateFileBasedResourceManager("abc", Server.MapPath("."), null);
}
|
Rm= Global Variable (can be used in whole project)
. = current path
Null = current resource setting
# Make new method to fire the event everytime when request is send to server
void Application_BeginRequest(object sender,
EventArgs e)
{
try
{
Thread.CurrentThread.CurrentCulture = new
CultureInfo(Request.UserLanguages[0].ToString());
}
catch
{
Thread.CurrentThread.CurrentCulture = new
CultureInfo("en-us");
}
Thread.CurrentThread.CurrentUICulture =
Thread.CurrentThread.CurrentCulture;
}
|
Application_BeginRequest-
Number of times is request send to server , the event should be fired same
number of time
try,
catch – Structure error
handling (error handling)
on
error goto – Unstructured
error handling
try’s
error will come in catch
Thread.CurrentThread-
Current instance of the browser
CurrentCulture-
to change the format not the culture
CultureInfo-
it is a class of System.Globalization
CurrentUICulture-
just to change the culture not the format
Format-
it is date , time format and others etc
# Code File
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System.Resources;
using System.Threading;
public partial class _Default : System.Web.UI.Page
{
ResourceManager rm;
protected void Page_Load(object sender,
EventArgs e)
{
rm = (ResourceManager)(Application["rm"]);
if (Page.IsPostBack==false)
{
Label1.Text = rm.GetString("a").ToString();
Label2.Text = rm.GetString("b").ToString();
Label4.Text = rm.GetString("d").ToString();
}
}
private void Set_Cul(String d)
{
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(d);
Label1.Text = rm.GetString("a").ToString();
Label2.Text = rm.GetString("b").ToString();
Label3.Text = rm.GetString("c").ToString();
Label4.Text = rm.GetString("d").ToString();
}
}
|
String
d- to pass culture code
# Design
*Double click
DropDownList
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Set_Cul(DropDownList1.SelectedValue);
}
|
No comments:
Post a Comment