我有一个需要本地化的kendo单页面应用程序。我尝试使用Javascript来翻译文本部分,但是在翻译非HTML位(如模板(内部脚本标记))和属性(如“data-title”)时会变得复杂。
接下来,我尝试将扩展名更改为.aspx并使用ASP.NET资源,如下例所示:
<!-- logout -->
<div id="logout" data-role="view" data-layout="layout-logout"
data-title="<asp:Literal ID="Literal1" runat="server" Text="<%$ Resources:TextStrings, Logout%>" />"
data-before-show="myproject.logout">
<div style="padding: 50px 0; text-align: center;">
<p id="lang_LoggedOut"><asp:Literal ID="Literal2" runat="server" Text="<%$ Resources:TextStrings, Logout_Success%>" /></p>
</div>
</div>
这在某种程度上有效,因为&lt;%resources%&gt;比特被取代。
但是,我必须将登录转移到单独的.aspx页面以应用语言,登录后并发现用户文化,但之前单页应用程序加载。
登录页面调用惯例:
protected override void InitializeCulture()
设置文化,然后重定向到主应用页面。
据我所知,InitializeCulture被忽略,但页面是使用资源文件中的字符串呈现的,有时是一种语言,有时是另一种语言。
ASP.NET如何确定要应用的文化,以及如何控制该选择?
注意:
答案 0 :(得分:1)
简短的回答是肯定的。我已经看到它适用于VS2010和IIS 7.5。
Server.Transfer将保留您设置的设置和上下文,并在用户导航页面时将语言应用于没有代码隐藏的页面。