2011-04-28 22 views
6

Tengo un problema con los archivos de recursos en mi proyecto. Cuando creé uno en inglés, se lo di al equipo de traducción. De alguna manera, me devolvieron el archivo de recursos con valores en diferente orden, por lo que no se ordenó alfabéticamente.Cómo ordenar a. resx (archivo de recursos) en .NET

Así, en un primer momento fue:

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

y recibí:

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

Así que, ¿hay alguna manera de ordenar los elementos en el archivo .resx por el atributo <data name?

Respuesta

5

encontré uno de software: SortRESX Es creado por Tom Clemente y se puede encontrar aquí: http://www.codeproject.com/KB/cs/ResxMergeUtility.aspx

Es un archivo ejecutable simple y ordena el archivo resx alfabéticamente. Esto realmente me ayudó. Incluso lo describí en mi blog.

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

+1

Publicación del blog ya no está disponible. – Andy

+0

¿Puedo hacer que Visual Studio (o git) ejecute el programa SortRESX automáticamente antes de una fusión? ¿Cómo? – murf

3

Se puede escribir un guión rápido de hacer que el uso de LINQ to XML:

var root = XElement.Load(...); 
var sortedRoot = new XElement(root.Name, root.Attributes, 
     root.Elements().OrderBy(e => e.Attribute("name").Value) 
); 
+0

Esa es realmente una gran idea, pero encontré una solución rápida, la agregaré como comentario. Estaba pensando en escribir mi propio código, pero esto es más rápido. – ticky

3

me escribió una very simple VS extension que ordena los archivos resx. Haga clic derecho en cualquier archivo .resx y haga clic en "Ordenar Resx".

+0

Parece que está desactualizado, el plugin no se instalará en vs 2015 – deadManN

+0

Tenedor tu proyecto, recompilarlo, luego instalado, pero sin botón en el archivo de recursos, también agrego todo tipo de VS a 'Instalar Target' en' source.extension.vsixmanifest' pero tampoco trajo ningún nuevo menú contextual. : | – deadManN

+2

Gracias por los comentarios. Es bastante obsoleto - Recomiendo usar [Resx Manager] (https://visualstudiogallery.msdn.microsoft.com/3b64e04c-e8de-4b97-8358-06c73a97cc68) - agregaron capacidades de clasificación últimamente. – seldary

Cuestiones relacionadas