Web Application multilínguas
1 – Primeiro adicione a pasta App_GlobalResources a sua aplicação.
2 – Dentro ela ficará os arquivos *.resx das línguas disponíveis em sua aplicação, aqui no exemplo vou usar duas liguas, pt-BR e em-US, então terá que três arquivos.

Essa é a estrutura dos arquivos:

3 – Criei uma página e nela coloque os controles na qual será alterado os idiomas.
<asp:Image runat="server" ID="imgTopo" ImageUrl="<%$ Resources:Lingua, imgTopo %>" />
Esse cotrole receberá as imagens correpondente a cada lingua escolhida.
<asp:Label runat="server" ID="copy" Text="<%$ Resources:Lingua, copy %>" />
Esse controle receberá o texto de quem desenvoleu o sistema.
O importante é o id do controle ter o mesmo nome que o especificado no arquivo *.resx.

4 - Feito isso criei um método que sobrecarregue o método InitializeCulture
protected override void InitializeCulture()
{
if (Session["ligua"] != null && Session["ligua"] != "")
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["ligua"].ToString());
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Session["ligua"].ToString());
}
}
5 – adicione os botões que alterará a língua com os seguintes métodos.
<asp:ImageButton ID="usa" runat="server" ImageUrl="~/imagens/usa_flag.gif" OnClick="usa_Click" ToolTip="Inglês" />
<asp:ImageButton ID="bra" runat="server" ImageUrl="~/imagens/brasil_flag.gif" OnClick="bra_Click" ToolTip="Português" />
protected void usa_Click(object sender, ImageClickEventArgs e)
{
Session["ligua"] = "en-US";
Server.Transfer(Request.Path);
}
protected void bra_Click(object sender, ImageClickEventArgs e)
{
Session["ligua"] = "pt-BR";
Server.Transfer(Request.Path);
}
Boa Sorte!
Qualquer coisa só entrar em contato.