在Typescript中使用c#资源(ResX文件)的最佳方式
Best way to use C#-Ressources (ResX Files) in Typescript?
我们目前的项目是在ASP。Net MVC与Razor。我们使用ResX文件进行几千个翻译。在c#和Asp.net Razor中,这很容易使用HTML:
<div>@Ressources.Local.Test</div>
当我编写JavaScript时,我通常在cshtml文件中使用razor这样做:
<script>alert('@Ressources.Local.Test');</script>
这工作,但似乎有点丑…
几个星期前,我们开始使用Typescript,当然,排除(几乎)所有的javascript代码到ts文件。
我们在这里找到的唯一解决方案是,通过"hack"将资源从c#转换为Typescript:
我们做了一个资源。在CSHTML文件中,我们只包含javascript变量:
var ressourceTest = "@Ressource.Local.Test";
加载该资源。首先在_layout.cshtml中。另外,我们还需要在projectdeclarations .d.ts中为这个变量做一个自定义声明,以便从javascript跳转到typescript:
var ressourceTest:string;
现在我们可以在typescript文件test.ts中使用这个资源:
alert(ressourceTest);
正如你所看到的,这是一个工作的"黑客"或"变通",但它似乎可能会杀死我们几千资源…它是手工制作的,维护时间和工作量都很高……
有更好的主意吗?
我已经看到了一些关于这方面的好主意。
您可以在MVC应用程序中提供JSON端点以提供翻译块。您可以决定要将其细化到什么程度,但本质上您将JSON序列化一个翻译或一组翻译并将其发回。这将避免在一个大视图中塞满数百个元素。
另一种选择是在视图中放置翻译,使它们在上下文中可用。因此,如果你有一个按钮,你要用它来触发一些AJAX调用到服务器你需要说"更新工作"或"更新失败"你可以把属性内联。
<button ... data-msg-success="Saved OK" data-msg-failed="A problem occurred" />
你可以用你的资源填充这些属性
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 如何在JS文件中获取资源(.resx)字符串
- asp.net:资源 .resx 文件中的换行符 不起作用
- 如何在javascript文件中使用ASP.NET资源(.resx)字符串
- Knockoutjs模板文件和本地化的resx文件
- 在Typescript中使用c#资源(ResX文件)的最佳方式
- 使用javascript中的资源文件(.resx)
- 如何本地化asp:TextBox's占位符,方法是读取App_LocalResources文件(.resx)
- JavaScript从.resx文件中获取localresourceobject