无需安装任何 3rd 方工具、API 或 dll 对象,我就可以使用 App_LocalResources。虽然我仍然使用谷歌翻译来翻译要翻译的单词和句子,并将其复制并粘贴到文件中,如您在下面的屏幕截图之一中所见(或者您可以使用人工翻译并手动输入添加)。在您的项目文件夹中(使用 MS Visual Studio 作为编辑器),添加 App_LocalResources 文件夹并创建英语和其他语言(resx 文件)。就我而言,它是西班牙语(es-ES)翻译。请参阅下面的屏幕截图。
接下来,在您的 aspx 上,添加将在 App_LocalResources 中匹配的元标记 (meta:resourcekey)。一个用于英语,另一个用于西班牙语文件。请看下面的截图:
西班牙语:(文件名.aspx.es-ES.resx)
英文:(filename.aspx.resx)
.
然后在您的母版页文件上创建一个带有查询字符串的链接,该链接将切换页面翻译并在所有页面上可用:
<%--ENGLISH/SPANISH VERSION BUTTON--%>
<asp:HyperLink ID="eng_ver" runat="server" Text="English" Font-Underline="false"></asp:HyperLink> |
<asp:HyperLink ID="spa_ver" runat="server" Text="Español" Font-Underline="false"></asp:HyperLink>
<%--ENGLISH/SPANISH VERSION BUTTON--%>
.
在您的母版页代码后面,创建一个指向超链接标签的动态链接:
////LOCALIZATION
string thispage = Request.Url.AbsolutePath;
eng_ver.NavigateUrl = thispage;
spa_ver.NavigateUrl = thispage + "?ver=es-ES";
////LOCALIZATION
.
现在,在您页面文件的代码后面,您可以设置一个会话变量,通过始终向 url 添加一个查询字符串来使所有链接或重定向坚持所需的翻译。
在页面加载时:
///'LOCALIZATION
//dynamic querystring; add this to urls ---> ?" + Session["add2url"]
{
if (Session["version"] != null)
{
Session["add2url"] = "?ver=" + Session["version"]; //SPANISH version
}
else
{
Session["add2url"] = ""; // ENGLISH as default
}
}
///'LOCALIZATION
。
点击事件示例:
protected void btnBack_Click(object sender, EventArgs e)
{
Session["FileName.aspx"] = null;
Response.Redirect("FileName.aspx" + Session["add2url"]);
}
我希望我的描述足够简单。