Как сортировать Resx (файл ресурсов) в .NET - PullRequest
7 голосов
/ 28 апреля 2011

У меня проблема с файлами ресурсов в моем проекте. Создав один на английском, я отдал его команде переводчиков. Так или иначе, они вернули мне файл ресурсов со значениями в другом порядке, поэтому он не был отсортирован по алфавиту.

Итак, сначала это было:

<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 голосов
/ 29 апреля 2011

Я нашел одно программное обеспечение: SortRESX Он создан Томом Клементом, и вы можете найти его здесь: http://www.codeproject.com/KB/cs/ResxMergeUtility.aspx

Это простой исполняемый файл, который сортирует файл resx по алфавиту. Это действительно помогло мне. Я даже описал это в своем блоге.

https://tijanavujanac.posterous.com/resxdiff-solving-the-resx-merge-problem:)

4 голосов
/ 28 апреля 2011

Вы можете написать быстрый скрипт для этого, используя LINQ to XML:

var root = XElement.Load(...);
var sortedRoot = new XElement(root.Name, root.Attributes,
        root.Elements().OrderBy(e => e.Attribute("name").Value)
);
3 голосов
/ 18 апреля 2015

Я написал очень простое расширение VS , которое сортирует файлы resx.Щелкните правой кнопкой мыши любой файл (ы) .resx и выберите «Сортировать Resx».

...