javascript - 在 ASP.NET,Razor,javascript,dhtmlx或者纯javascript中,实现本地化

  显示原文与译文双语对照的内容
0 0

如何在 ASP.NET 。MVC 。Razor 。javascript和dhtmlx中实现全球化和本地化? 我一直在寻找答案,我发现的所有引用都使用 Globalization.js 中的库。 谁有使用dhtmlx或者纯javascript的示例代码? 在cshtml中,我知道如何在。文件( Razor ) 中引用资源,但是如何引用这些资源,比如在内嵌入的javascript中的@Resources.UserID,? 我正在讨论像 ~/Scripts/Global.js. 这样的脚本

如果将这个文件放在下,创建一个 resources.de.resx 文件并将 de de添加到 IE 中,就像使用 below 代码一样更改标题,这样我就可以在javascript中修改文本了,所以我可以更改表单的文本。

<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>

login.cshtml:

@using SquishIt.Framework
@using SquishIt.Mvc
@using Resources 
@{
 Layout = null;
}
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1DTD/xhtml1-strict.dtd">
<html>
<head>
 <title>@Resources.Title</title>
 <meta http-equiv="Pragma" content="no-cache"/>
 <meta http-equiv="Expires" content="-1"/>
 <link rel="shortcut icon" type="image/x-icon" href="@Url.Content("~/Content/favicon.ico")"/>
 @(Bundle.Css()
. Add("~/Scripts/dhtmlx/dhtmlxLayout/codebase/dhtmlxlayout.css")
. Add("~/Scripts/dhtmlx/dhtmlxLayout/codebase/skins/dhtmlxlayout_dhx_skyblue.css")
. Add("~/Scripts/dhtmlx/dhtmlxWindows/codebase/dhtmlxwindows.css")
. Add("~/Scripts/dhtmlx/dhtmlxWindows/codebase/skins/dhtmlxwindows_dhx_skyblue.css")
. Add("~/Scripts/dhtmlx/dhtmlxForm/codebase/skins/dhtmlxform_dhx_skyblue.css")
. Add("~/Scripts/dhtmlx/dhtmlxForm/codebase/skins/dhtmlxform_dhx_skyblue_custom.css")
. Add("~/Content/Site.css")
. MvcRender("~/Content/SquishIt/BaseLogon_#.css"))
</head>
<body oncontextmenu="return false;">
 <!-- Empty on purpose, JavaScript populates HTML -->
 <!-- Text ruler used to measure text from JavaScript -->
 <span id="TextRuler" class="TextRuler"></span>
</body>
<script language="javascript" type="text/javascript">
 var SKIN_NAME ="dhx_skyblue";
 var URL_WINDOWS_IMAGES ="@Url.Content("~/Scripts/dhtmlx/dhtmlxWindows/codebase/imgs/")";
 var URL_LOGIN_FORM ="@Url.Content("~/XML/Forms/Base/Logon.xml")";
 var URL_LOGIN ="@Url.Content("~/Base/Login/")";
 var URL_MAIN ="@Url.Content("~/Base/Main/")";
 var LOGON_SESSION_ID ="@(Session["LOGON_SESSION_ID"])";
 var LOGOFF_MESSAGE ="@(ViewData.ContainsKey("LogOffMessage")? ViewData["LogOffMessage"] :"")";
</script>
@(Bundle.JavaScript()
. Add("~/Scripts/dhtmlx/dhtmlxLayout/codebase/dhtmlxcommon.js")
. Add("~/Scripts/dhtmlx/dhtmlxLayout/codebase/dhtmlxlayout.js")
. Add("~/Scripts/dhtmlx/dhtmlxLayout/codebase/dhtmlxcontainer.js")
. Add("~/Scripts/dhtmlx/dhtmlxWindows/codebase/dhtmlxwindows.js")
. Add("~/Scripts/dhtmlx/dhtmlxForm/codebase/dhtmlxform.js")
. Add("~/Scripts/Global.js")
. Add("~/Scripts/Utility/Browser.js")
. Add("~/Scripts/Utility/XML.js")
. Add("~/Scripts/Utility/ErrorHandler.js")
. Add("~/Scripts/Utility/Form.js")
. Add("~/Scripts/Utility/MessageBox.js")
. Add("~/Scripts/Base/Logon.js")
. MvcRender("~/Content/SquishIt/BaseLogon_#.js"))
</html>
时间:原作者:1个回答

0 0

看看这个帖子,它提供了我在我的网络应用中实现的另一种方式。

http://madskristensen.net/post/Localize-text-in-JavaScript-files-in-ASPNET.aspx

你必须创建一个HTTML处理程序,它将根据特定的标签转换你的js文件。

mvc路由引擎还需要一些配置。 这里代码应放在 global.asax. cs中:

 public static void RegisterRoutes(RouteCollection routes)
 {
//This will send. axd filse to the custom translate handler
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 routes.IgnoreRoute("Scripts/{folder}/{resource}.js.axd/{*pathInfo}");
 routes.MapRoute(
"Default",//Route name
"{controller}/{action}/{id}",//URL with parameters
 new { controller ="Home", action ="Index", id = UrlParameter.Optional }//Parameter defaults
 );
 }

注意如果你使用 register 7,那么你应该像这样使用处理程序: !

 <system.webServer>
 <validation validateIntegratedModeConfiguration="false"/>
 <modules runAllManagedModulesForAllRequests="true"/>
 <handlers>
 <add name="ScriptTranslatorHandler" path="*.js.axd" verb="*" type="CamelotShiftManagement.HttpHandlers.ScriptTranslator"/>
 </handlers>
 </system.webServer>

用户 validateIntegratedModeConfiguration="false" 支持向后可比性并添加以前已知的HTTP处理程序元素。

 <system.web>
 <httpHandlers>
 <add path="*.js.axd" verb="*" type="CamelotShiftManagement.HttpHandlers.ScriptTranslator"/>
 <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
 </httpHandlers>
 </system.web>
原作者:
...