RESX Datei - Übersetzung

07/09/2007 - 15:31 von Thomas Bauer | Report spam
Halllo,
besteht die Möglichkeit aus einer RESX Datei eine Exceldatei zu
generieren.
Die Änderungen, dann wieder ins Projekt einzulesen?

Excel an Übersetzungsfirma
zurück
Einpflegen

Grüße Thomas




<data name="button1.Text" xml:space="preserve">
<value>Deutsch Start</value>
</data>


<data name="button1.Text" xml:space="preserve">
<value>Englisch Start</value>
</data>



~~~~~~~~~~~~~
DEUTSCH

<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

Version 2.0

The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.

Example:

... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader,
System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter,
System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</
value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color,
System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-
microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</
value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing"
mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array
form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>

There are any number of "resheader" rows that contain simple
name/value pairs.

Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with
the
mimetype set.

The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently
not
extensible. For a given mimetype the value must be set
accordingly:

Note - application/x-microsoft.net.object.binary.base64 is the
format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.

mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
:
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
:
System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/
XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string"
minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required"
type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string"
minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string"
minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"
use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string"
msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string"
msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string"
minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"
use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</resheader>
<data name="&gt;&gt;panel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
<value>593, 234</value>
</data>
<data name="&gt;&gt;button1.Name" xml:space="preserve">
<value>button1</value>
</data>
<data name="&gt;&gt;btnClose.Name" xml:space="preserve">
<value>btnClose</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="ucTestLanguage1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="lblMessage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="btnClose.Size" type="System.Drawing.Size,
System.Drawing">
<value>121, 50</value>
</data>
<data name="lblMessage2.Size" type="System.Drawing.Size,
System.Drawing">
<value>35, 13</value>
</data>
<data name="lblMessage.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="button1.Location" type="System.Drawing.Point,
System.Drawing">
<value>503, 341</value>
</data>
<data name="&gt;&gt;button1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;ucTestLanguage1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;lblMessage2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="btnClose.Location" type="System.Drawing.Point,
System.Drawing">
<value>514, 383</value>
</data>
<data name="lblMessage.Location" type="System.Drawing.Point,
System.Drawing">
<value>262, 278</value>
</data>
<data name="lblCulture.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;lblCulture.Name" xml:space="preserve">
<value>lblCulture</value>
</data>
<data name="&gt;&gt;lblMessage2.Name" xml:space="preserve">
<value>lblMessage2</value>
</data>
<data name="lblCulture.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="&gt;&gt;lblCulture.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="lblMain.Size" type="System.Drawing.Size,
System.Drawing">
<value>115, 31</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Form1</value>
</data>
<data name="&gt;&gt;panel1.Name" xml:space="preserve">
<value>panel1</value>
</data>
<data name="&gt;&gt;lblMain.Name" xml:space="preserve">
<value>lblMain</value>
</data>
<data name="lblCulture.Text" xml:space="preserve">
<value>label1</value>
</data>
<data name="lblMessage.Text" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;ucTestLanguage1.Type" xml:space="preserve">
<value>LanguageModul.ucTestLanguage, LanguageModul,
Version=1.0.2803.17362, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;panel1.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="&gt;&gt;ucTestLanguage1.Parent" xml:space="preserve">
<value>panel1</value>
</data>
<data name="&gt;&gt;button1.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="lblMain.Font" type="System.Drawing.Font,
System.Drawing">
<value>Microsoft Sans Serif, 20.25pt</value>
</data>
<data name="&gt;&gt;lblMessage.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="btnClose.Text" xml:space="preserve">
<value>Beenden</value>
</data>
<data name="&gt;&gt;lblCulture.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="lblMain.Text" xml:space="preserve">
<value>Deutsch</value>
</data>
<data name="lblCulture.Size" type="System.Drawing.Size,
System.Drawing">
<value>35, 13</value>
</data>
<data name="&gt;&gt;lblMain.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="lblMessage2.Location" type="System.Drawing.Point,
System.Drawing">
<value>262, 308</value>
</data>
<data name="lblMain.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblMessage.Size" type="System.Drawing.Size,
System.Drawing">
<value>35, 13</value>
</data>
<data name="button1.Size" type="System.Drawing.Size,
System.Drawing">
<value>120, 23</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size,
System.Drawing">
<value>647, 445</value>
</data>
<data name="lblMain.Location" type="System.Drawing.Point,
System.Drawing">
<value>214, 370</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lblMessage2.ImeMode" type="System.Windows.Forms.ImeMode,
System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="lblMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;lblMessage.Name" xml:space="preserve">
<value>lblMessage</value>
</data>
<data name="&gt;&gt;lblMessage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="lblMessage2.Text" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;btnClose.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="&gt;&gt;lblMessage2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="button1.Text" xml:space="preserve">
<value>Deutsch Start</value>
</data>
<data name="lblMessage2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblMessage2.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;lblMessage.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;lblCulture.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;lblMessage2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="panel1.Location" type="System.Drawing.Point,
System.Drawing">
<value>12, 12</value>
</data>
<data name="&gt;&gt;panel1.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="&gt;&gt;btnClose.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF,
System.Drawing">
<value>6, 13</value>
</data>
<data name="&gt;&gt;lblMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="ucTestLanguage1.Location" type="System.Drawing.Point,
System.Drawing">
<value>25, 15</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmLanguage</value>
</data>
<data name="&gt;&gt;ucTestLanguage1.Name" xml:space="preserve">
<value>ucTestLanguage1</value>
</data>
<data name="&gt;&gt;lblMain.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</data>
<data name="&gt;&gt;btnClose.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="lblCulture.Location" type="System.Drawing.Point,
System.Drawing">
<value>71, 278</value>
</data>
<data name="ucTestLanguage1.Size" type="System.Drawing.Size,
System.Drawing">
<value>531, 199</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

ENGLISCH
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

Version 2.0

The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.

Example:

... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader,
System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter,
System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</
value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color,
System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-
microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</
value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing"
mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array
form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>

There are any number of "resheader" rows that contain simple
name/value pairs.

Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with
the
mimetype set.

The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently
not
extensible. For a given mimetype the value must be set
accordingly:

Note - application/x-microsoft.net.object.binary.base64 is the
format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.

mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
:
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
:
System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/
XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string"
minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required"
type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string"
minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string"
minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"
use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string"
msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string"
msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string"
minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"
use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</
value>
</resheader>
<data name="btnClose.Text" xml:space="preserve">
<value>Exit</value>
</data>
<data name="button1.Text" xml:space="preserve">
<value>Englisch Start</value>
</data>
</root>
 

Lesen sie die antworten

#1 Frank Dzaebel
07/09/2007 - 16:19 | Warnen spam
Hallo Thomas,

besteht die Möglichkeit aus einer RESX Datei
eine Exceldatei zu generieren.
Die Änderungen, dann wieder ins Projekt einzulesen?
(Übersetzungsfirma)



ja.

Aber vielleicht zunàchst ein Vorschlag,
die Datei von der Übersetzungsfirma mit "winres"
öffnen zu lassen. Deine resx ist ja eine von VS
2005 generierte .NET 2.0 Windows Forms-Ressource,
in der Localizable auf true ist, also ok.
(Den Beenden Button vielleicht etwas nach links ;-)
Der Übersetzer kann ggf. auch sehen, wieviel
Platz er hat, in welchem Kontext das Wort
gemeint ist, etc.

Dazu muss der Übersetzer z.B. das
".NET Framework SDK 2.0" installiert haben.

[Microsoft .NET Framework SDK (Software Development Kit) 2.0 (x86)]
http://www.microsoft.com/downloads/...6d69c35dec

[Windows Forms Resource Editor-Tool (Winres.exe)]
http://msdn2.microsoft.com/de-de/library/8bxdx003(vs.80).aspx
(Auch über VS2005 Command-Prompt aufrufbar)

Die geànderte RESX-Datei kannst Du nun einfach
wieder in Dein Projekt einbinden.
Die Änderungen der Resx über winres sind nur additiv,
was zu der Standard-Resx aber "zugemischt" wird,
sodass das ganze letztlich funktioniert.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen