我的项目中的资源文件有问题。当我用英语创建一个时,我把它交给了翻译团队。不知何故,他们以不同的顺序返回了资源文件,因此没有按字母顺序排序。
所以,起初它是:
<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文件中的元素进行排序?
答案 0 :(得分:6)
我找到了一个软件: SortRESX 它由Tom Clement创建,你可以在这里找到它: http://www.codeproject.com/KB/cs/ResxMergeUtility.aspx
它是简单的可执行文件,它按字母顺序排序resx文件。这对我很有帮助。 我甚至在我的博客上描述过它。
https://tijanavujanac.posterous.com/resxdiff-solving-the-resx-merge-problem:)
答案 1 :(得分:4)
您可以使用LINQ to XML编写一个快速脚本来执行此操作:
var root = XElement.Load(...);
var sortedRoot = new XElement(root.Name, root.Attributes,
root.Elements().OrderBy(e => e.Attribute("name").Value)
);
答案 2 :(得分:3)
我写了一个very simple VS extension来排序resx文件。 右键单击任何.resx文件,然后单击&#34; Sort Resx&#34;。