Как отсортировать 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 6

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".