Jas*_*ber 1 .net asp.net localization visual-studio-2010 visual-studio
我已经在我公司的网站上添加了3种其他语言(fr,es-mx,de)到英语,它们都运行良好.我按照MSDN演练创建了本地化.
我正在使用Visual Studio 2010/VB/dot-net 4.0,我已经在我的所有页面的顶线,这个:
<%@ Page Title="USS Products & Services" Language="VB" MasterPageFile="~/products/products.Master" AutoEventWireup="false"
CodeFile="default.aspx.vb" Inherits="default" culture="auto" meta:resourcekey="PageResource1" uiculture="auto" %>
Run Code Online (Sandbox Code Playgroud)
我的global_apps目录中有4个全局资源(.resx)文件.但是,如果我不想仅仅使用浏览器来检测他们的语言呢?我想让他们选择自己的语言.
如何为客户提供4个标志之间的选项 - 每种语言1个 - 并让他们选择?或者也许是翻转站点地图类型的效果,他们可以将鼠标悬停在语言上并选择它?任何帮助,将不胜感激!谢谢!
尝试这个简单的方法:我已经在下拉列表中定义了语言并选择了一个按钮
<asp:DropDownList ID="ddlCulture" DataTextField="DisplayName" DataValueField="Name"
runat="server" >
<asp:ListItem Value="es-MX">Spanish</asp:ListItem>
<asp:ListItem Value="en-US">English</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnSelect" Text="Select" runat="server" OnClick="btnSelect_Click" />
Run Code Online (Sandbox Code Playgroud)
现在代码:
protected void btnSelect_Click(object sender, EventArgs e)
{
Session["uiculture"] = ddlCulture.SelectedValue;
Session["culture"] = ddlCulture.SelectedValue;
Response.Redirect(Request.Path);
}
protected override void InitializeCulture()
{
if(Session["culture"]!=null)
UICulture=Session["culture"].ToString();
}
Run Code Online (Sandbox Code Playgroud)
更新:抱歉,我忘记了覆盖关键字.现在包括它应该工作.
顺便说一下,你正在使用VB,抱歉我见过这个.等效代码是:
Protected Sub btnSelect_Click(ByVal sender As Object, ByVal e As EventArgs)
Session("uiculture") = ddlCulture.SelectedValue
Session("culture") = ddlCulture.SelectedValue
Response.Redirect(Request.Path)
End Sub
Protected Overrides Sub InitializeCulture()
If Not Session("culture") Is Nothing Then
UICulture = Session("culture").ToString()
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1965 次 |
| 最近记录: |