Как отсортировать resx (файл ресурсов) in.NET
У меня проблема с файлами ресурсов в моем проекте. Когда я создал один из них на английском языке, я передал его команде переводчиков. Каким-то образом они вернули мне файл ресурсов со значениями в другом порядке, поэтому он не был отсортирован по алфавиту.
Итак, сначала это было:
<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>
Итак, есть ли способ отсортировать эти элементы .resx-файл по атрибуту <data name
?
3 ответа:
Я нашел одну программу: SortRESX Он создан Томом Клементом и вы можете найти его здесь: http://www.codeproject.com/KB/cs/ResxMergeUtility.aspx
Это простой исполняемый файл, и он сортирует resx файл в алфавитном порядке. Это действительно помогло мне. Я даже описал это в своем блоге.
Https://tijanavujanac.posterous.com/resxdiff-solving-the-resx-merge-problem :)
Для этого можно написать быстрый скрипт, используя LINQ to XML:
var root = XElement.Load(...); var sortedRoot = new XElement(root.Name, root.Attributes, root.Elements().OrderBy(e => e.Attribute("name").Value) );
Я написал очень простое расширение VS, которое сортирует файлы resx. Щелкните правой кнопкой мыши любой .resx файл (Ы), и нажмите кнопку "Сортировать Resx".