如何对 . .NET 中的 resx(资源文件)
Posted
技术标签:
【中文标题】如何对 . .NET 中的 resx(资源文件)【英文标题】:How to sort a . resx (resource file) in .NET 【发布时间】:2011-04-28 13:56:57 【问题描述】:我的项目中的资源文件有问题。当我用英语创建了一个时,我把它交给了翻译团队。不知何故,他们返回给我的资源文件具有不同顺序的值,所以它没有按字母顺序排序。
所以,一开始是这样的:
<data name="a1" xml:space="preserve">
<value>some text2</value>
</data>
<data name="b1" xml:space="preserve">
<value>some text3</value>
</data>
<data name="c1" xml:space="preserve">
<value>some text1</value>
</data>
我收到了:
<data name="c1" xml:space="preserve">
<value>some text1</value>
</data>
<data name="a1" xml:space="preserve">
<value>some text2</value>
</data>
<data name="b1" xml:space="preserve">
<value>some text3</value>
</data>
那么,有没有办法通过<data name
属性对.resx 文件中的这些元素进行排序?
【问题讨论】:
【参考方案1】:SortRESX 是 Tom Clement 在 CodeProject 上创建的简单可执行文件。
它按字母顺序对 *.resx 文件进行排序。我描述了它on my blog。
【讨论】:
我可以让 Visual Studio(或 git)在合并之前自动执行 SortRESX 程序吗?怎么样?【参考方案2】:您可以使用 LINQ to XML 编写一个快速脚本来执行此操作:
var root = XElement.Load(...);
var sortedRoot = new XElement(root.Name, root.Attributes,
root.Elements().OrderBy(e => e.Attribute("name").Value)
);
【讨论】:
【参考方案3】:我写了一个 very simple VS extension 来对 resx 文件进行排序。 右键单击任何 .resx 文件,然后单击“排序 Resx”。
【讨论】:
看来你已经过时了,插件不会安装在vs 2015上 我 fork 你的项目,重新编译,然后安装,但是资源文件上没有按钮,我还在source.extension.vsixmanifest
中添加了所有类型的 VS 到 Install Target
,但它也没有带来任何新的上下文菜单。 :|
感谢您的反馈。它已经过时了——我推荐使用Resx Manager——他们最近增加了排序功能。
谢谢。安装 Resx Manager 后,您的排序图标也出现了。
如果它只与 VS 2015 兼容就会使用它以上是关于如何对 . .NET 中的 resx(资源文件)的主要内容,如果未能解决你的问题,请参考以下文章
防止资源 [.resx] 文件预编译。 .NET 核心 2.0