<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>c-dev &#187; Dev</title>
	<atom:link href="http://www.c-dev.ch/blog/category/computer/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.c-dev.ch/blog</link>
	<description>fresh looking</description>
	<lastBuildDate>Wed, 08 Sep 2010 19:53:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>string Format Patterns</title>
		<link>http://www.c-dev.ch/blog/2010/06/17/string-format-patterns-2/</link>
		<comments>http://www.c-dev.ch/blog/2010/06/17/string-format-patterns-2/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 12:38:49 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=397</guid>
		<description><![CDATA[Schöne, grosse Liste von Date-Format Patterns&#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm">Schöne, grosse Liste von Date-Format Patterns&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2010/06/17/string-format-patterns-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Module werden ausgeblendet bei Weiterlesen Beiträgen</title>
		<link>http://www.c-dev.ch/blog/2010/05/02/module-werden-ausgeblendet-bei-weiterlesen-beitragen/</link>
		<comments>http://www.c-dev.ch/blog/2010/05/02/module-werden-ausgeblendet-bei-weiterlesen-beitragen/#comments</comments>
		<pubDate>Sun, 02 May 2010 09:30:25 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=370</guid>
		<description><![CDATA[In Joomla kann sich das Problem ergeben, dass die Module nicht mehr angezeigt werden, wenn ein weiterlesen-Beitrag in der Vollansicht geöffnet wird. Beispiel: Die Startseite zeigt im Blog-Styl News Beiträge an. Diese bieten über Weiterlesen eine Vollansicht. Wird diese Vollansicht geöffnet, wird ein Module nicht mehr angezeigt, das zuvor auf der Startseite eingeblendet war. Bei [...]]]></description>
			<content:encoded><![CDATA[<p>In Joomla kann sich das Problem ergeben, dass die Module nicht mehr angezeigt werden, wenn ein weiterlesen-Beitrag in der Vollansicht geöffnet wird. Beispiel: Die Startseite zeigt im Blog-Styl News Beiträge an. Diese bieten über Weiterlesen eine Vollansicht. Wird diese Vollansicht geöffnet, wird ein Module nicht mehr angezeigt, das zuvor auf der Startseite eingeblendet war. Bei mir war das z.B. ein Split-Menü, das heisst, das Menü ist dann einfach verschwunden.</p>
<p>Folgende Konfiguration löst das Problem&#8230;</p>
<p><span id="more-370"></span>Ausgangslage:</p>
<p>Ich hatte Beiträge, die waren nicht kategorisiert, aber hatten das Flag gesetzt: Anzeigen auf der Startseite. Die Startseite hat diese Beiträge im Blog-Style schön angezeigt. Auf der Startseite habe ich links noch einen Modul- user-Bereich &#8211; mein Submenü. (Grundsätzlich kann das aber auch jedes andere Modul betreffen.)</p>
<p>Lösung:</p>
<p>Werden die Beiträge einer Kategorie anghängt, die über einen Menüeintrag verfügt, dann kann im das Modul (welches angezeigt werden soll) auch entsprechend konfiguriert werden.</p>
<p>Schritt 1.<br />
Eine Kategorie neu anlegen, alle betroffenen Beiträge dieser Kategorie zuweisen.</p>
<p>Schritt 2.<br />
Einen neuen Menüpunkt des Typs Kategorie-Blog anlegen. Diese verweist auf die in Schritt 1 angelegte Kategorie</p>
<p>Schritt 3.<br />
In der Modul konfiguration zu dem Modul gehen, welches eingeblendet werden soll. Dieses Modul nun in der Menüzuweisung so konfigurieren, dass es auch aktiv ist für den in Schritt 2 erstellten Menüpunkt.</p>
<p>Ich merke, dass es etwas schwierig ist zum sauber erklären, aber ich hoffe dass ich das später noch kapiere <img src='http://www.c-dev.ch/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  bzw. es jemandem anderen auch weiter hilft. Ansonsten einfach eine Nachricht an mich. Möglicherweise bin ich auch nur auf Grund einer vielleicht etwas speziellen Struktur der Beiträge auf dieses &#8220;Problem&#8221; gestossen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2010/05/02/module-werden-ausgeblendet-bei-weiterlesen-beitragen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# Format-Kürzel (Datentypen)</title>
		<link>http://www.c-dev.ch/blog/2010/03/26/c-format-kurzel-datentypen/</link>
		<comments>http://www.c-dev.ch/blog/2010/03/26/c-format-kurzel-datentypen/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 12:53:50 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/2010/03/26/c-format-kurzel-datentypen/</guid>
		<description><![CDATA[Formatangabe Beschreibung C Zeigt die Zahl im lokalen Währungsformat an. D Zeigt die Zahl als dezimalen Integer an. E Zeigt die Zahl im wissenschaftlichen Format an (Exponentialschreibweise). F Zeigt die Zahl im Festpunktformat an. G Eine numerische Zahl wird entweder im Festpunkt- oder im wissenschaftlichen Format angezeigt. Zur Anzeige kommt das »kompakteste« Format. N Zeigt [...]]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="1" cellpadding="3" width="100%">
<tbody>
<tr>
<td><span style="color: #808000;">Formatangabe</span></td>
<td><span style="color: #808000;">Beschreibung</span></td>
</tr>
<tr>
<td>C</td>
<td>Zeigt die Zahl im lokalen Währungsformat an.</td>
</tr>
<tr>
<td>D</td>
<td>Zeigt die Zahl als dezimalen Integer an.</td>
</tr>
<tr>
<td>E</td>
<td>Zeigt die Zahl im wissenschaftlichen Format an  (Exponentialschreibweise).</td>
</tr>
<tr>
<td>F</td>
<td>Zeigt die Zahl im Festpunktformat an.</td>
</tr>
<tr>
<td>G</td>
<td>Eine numerische Zahl wird entweder im Festpunkt- oder im  wissenschaftlichen Format angezeigt. Zur Anzeige kommt das »kompakteste«  Format.</td>
</tr>
<tr>
<td>N</td>
<td>Zeigt eine numerische Zahl einschließlich Kommaseparatoren an.</td>
</tr>
<tr>
<td>P</td>
<td>Zeigt die numerische Zahl als Prozentzahl an.</td>
</tr>
<tr>
<td>X</td>
<td>Die Anzeige erfolgt in Hexadezimalnotation.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2010/03/26/c-format-kurzel-datentypen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schlüsselwort ref</title>
		<link>http://www.c-dev.ch/blog/2010/03/12/schlusselwort-ref/</link>
		<comments>http://www.c-dev.ch/blog/2010/03/12/schlusselwort-ref/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 15:27:12 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Dev]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=313</guid>
		<description><![CDATA[Quelle: http://www.secretgeek.net/ref_params.asp Imagine we have a little function like this: And we call it with some code like this: string Name = &#8220;Jimi Hendrix&#8221;; TryAndChangeTheValue(Name); MessageBox.Show(Name); What happens? Does it return &#8216;Jimi Hendrix&#8217; or &#8216;Ziggy Stardust&#8217;? It shows &#8216;Jimi Hendrix&#8217;. Because the parameter does not have the &#8216;ref&#8216; keyword, a copy of the value &#8216;Name&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>Quelle:<br />
<a href="http://www.secretgeek.net/ref_params.asp">http://www.secretgeek.net/ref_params.asp</a></p>
<p><span id="more-313"></span>Imagine we have a little function like this:</p>
<p><!-- .cf { font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt; } .cl { margin: 0px; } .cb1 { color: blue; } --></p>
<p>And we call it with some code like this:</p>
<div>
<blockquote><p>string Name = &#8220;Jimi Hendrix&#8221;;</p>
<p>TryAndChangeTheValue(Name);</p>
<p>MessageBox.Show(Name);</p></blockquote>
</div>
<p>What happens? Does it return &#8216;Jimi Hendrix&#8217; or &#8216;Ziggy Stardust&#8217;?</p>
<p>It shows &#8216;Jimi Hendrix&#8217;. Because the parameter does not have the &#8216;<code>ref</code>&#8216;  keyword, a copy of the value &#8216;Name&#8217; is created, altered and then not  returned from the stack. So the initial value of &#8216;Name&#8217; is displayed in  the messagebox.</p>
<p>If you want the function to affect the displayed message, you need to  use the <code>ref</code> keyword, as follows:</p>
<div>
<blockquote><p>private void  TryAndChangeTheValue(ref string  name)</p>
<p>{</p>
<p>name = &#8220;Ziggy Stardust&#8221;;</p>
<p>}</p></blockquote>
</div>
<p>And you need to add the keyword <code>ref</code> to your calling  code:</p>
<p>Now when the above code is run, the value &#8216;Ziggy Stardust&#8217; will be  displayed.</p>
<p>Okay, recap over. Time to think about classes.</p>
<p><strong>But what happens when you do (or don&#8217;t) use the <code>ref</code> keyword on an object parameter?</strong></p>
<p>Imagine we have a simple little class like this:</p>
<p><!-- .cf { font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt; } .cl { margin: 0px; } .cb1 { color: blue; } --></p>
<div>
<blockquote><p>private class  NameClass</p>
<p>{</p>
<p>public string  Value = &#8220;Jimi Hendrix&#8221;;</p>
<p>}</p></blockquote>
</div>
<p>It has one public field, &#8216;Value&#8217; which defaults to &#8216;Jimi Hendrix&#8217;.</p>
<p>And now imagine we have a function that looks like this:</p>
<p><!-- .cf { font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt; } .cl { margin: 0px; } .cb1 { color: blue; } --></p>
<div>
<blockquote><p>private void  TryAndChangeTheValue(NameClass name)</p>
<p>{</p>
<p>name.Value = &#8220;Ziggy Stardust&#8221;;</p>
<p>}</p></blockquote>
</div>
<p>It accepts a &#8216;<code>NameClass</code>&#8216; object, and changes the <code>name</code> property to &#8216;Ziggy Stardust&#8217;.</p>
<p>Now what happens when we call the method, and then check the value&#8230;</p>
<p><!-- .cf { font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt; } .cl { margin: 0px; } .cb1 { color: blue; } --></p>
<div>
<blockquote><p>NameClass name = new  NameClass();</p>
<p>TryAndChangeTheValue(name);</p>
<p>MessageBox.Show(name.Value);</p></blockquote>
</div>
<p>Will the messagebox show &#8216;Jimi Hendrix&#8217; or &#8216;Ziggy Stardust&#8217;?</p>
<p>Before you answer, consider this case:</p>
<p>What if we changed the function to look like this:</p>
<div>
<blockquote><p>private void  TryAndChangeTheValue(ref NameClass name)</p>
<p>{</p>
<p>name.Value = &#8220;Ziggy Stardust&#8221;;</p>
<p>}</p></blockquote>
</div>
<p>So that now the parameter is of type reference. (We&#8217;ll also need to  add the &#8216;<code>ref</code>&#8216; keyword to our calling code)</p>
<div>
<blockquote><p>NameClass name = new  NameClass();</p>
<p>TryAndChangeTheValue(ref name);</p>
<p>MessageBox.Show(name.Value);</p></blockquote>
</div>
<p>Will the &#8216;<code>ref</code>&#8216; keyword make any difference to our test?  If so, why? If not, why not?</p>
<p>For both these tests, the result will be &#8216;Ziggy Stardust&#8217;. The <code>ref</code> keyword won&#8217;t make a difference to the results.</p>
<p>Does that mean that the <code>ref</code> keyword was ignored? Not at  all.</p>
<p>The important thing is that the <code>ref</code> keyword applies to  the parameter (name), not to its properties (name.Value).</p>
<p>So let&#8217;s look at a case where the function doesn&#8217;t just change a  property of the parameters, but tries to change the parameter itself. In  that cases the <code>ref</code> parameter will make an important  difference.</p>
<p>Here&#8217;s an example where our function gets sloppy and drops the  object.</p>
<div>
<blockquote><p>private void  TryAndChangeTheValue(NameClass name)</p>
<p>{</p>
<p>name.Value = &#8220;Ziggy Stardust&#8221;;</p>
<p>name = null;</p>
<p>}</p></blockquote>
</div>
<p>What will happen now?</p>
<p>Will this code:</p>
<div>
<blockquote><p>NameClass name = new  NameClass();</p>
<p>TryAndChangeTheValue(name);</p>
<p>MessageBox.Show(name.Value);</p></blockquote>
</div>
<p>Still return &#8216;Ziggy Stardust?&#8217; Or will we get a null reference  exception?</p>
<p>We will still get &#8216;Ziggy Stardust&#8217; out. There won&#8217;t be a null  reference exception, because the thing that was set to null was a value  copy of the object reference, not a direct reference to the object.</p>
<p>The object itself wasn&#8217;t affected by the &#8216;name = null&#8217; line. That  merely stopped a value on the stack from pointing to the object.</p>
<p>And then consider the same code, but with the &#8216;<code>ref</code>&#8216;  keyword:</p>
<div>
<blockquote><p>private void  TryAndChangeTheValue(ref NameClass name)</p>
<p>{</p>
<p>name.Value = &#8220;Ziggy Stardust&#8221;;</p>
<p>name = null;</p>
<p>}</p></blockquote>
</div>
<p>What will happen when this code is used to call it?</p>
<div>
<blockquote><p>NameClass name = new  NameClass();</p>
<p>TryAndChangeTheValue(ref name);</p>
<p>MessageBox.Show(name.Value);</p></blockquote>
</div>
<p>Will we get a &#8216;ziggy stardust&#8217;? Or a null reference exception?</p>
<p>In this case we get a null reference exception. Because now when the  name = null line was executed, it was the reference itself that was set  to null, not just a copy of it on the stack.</p>
<p>Okay that&#8217;s all i want to say about that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2010/03/12/schlusselwort-ref/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OMG! joomla 404 HTTP Error</title>
		<link>http://www.c-dev.ch/blog/2010/02/06/omg-joomla-404-http-error/</link>
		<comments>http://www.c-dev.ch/blog/2010/02/06/omg-joomla-404-http-error/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 16:49:06 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=297</guid>
		<description><![CDATA[Ja cool, da installier ich mir joomla 1.5.15 mit Testdaten und fange an zu bereinigen, nachdem ich verstanden habe wie das so funktioniert mit Beiträgen und Menü. Da kann ich plötzlich die Startseite nicht mehr aufrufen. Ok, hab ich wohl keinen Beitrag als &#8220;Startseite&#8221; markiert. War so und nochmals versuchen. Verflixt, schon wieder derselbe 404 [...]]]></description>
			<content:encoded><![CDATA[<p>Ja cool, da installier ich mir joomla 1.5.15 mit Testdaten und fange an zu bereinigen, nachdem ich verstanden habe wie das so funktioniert mit Beiträgen und Menü. Da kann ich plötzlich die Startseite nicht mehr aufrufen. Ok, hab ich wohl keinen Beitrag als &#8220;Startseite&#8221; markiert. War so und nochmals versuchen. Verflixt, schon wieder derselbe 404 Fehler. Was ist denn nun los. Alles durchchecken, alle Optionen zu verstehen versuchen. Keine Chance, nicht mal die &#8220;Bin momentan Offline&#8221; Funktion geht. *fluch* Googlen&#8230;</p>
<p><strong>joomla verlangt neben einem Beitrag der als &#8220;Hauptseite&#8221; gekennzeichnet ist auch ein Menüitem, das als &#8220;Standard&#8221; gesetzt ist. Toll wenn man das weiss.</strong></p>
<p>Liebes joomla, wenn Du nicht funktionierst, wenn Du kein Default-Menüitem hast, warum sagst Du das nicht einfach? Warum sagst Du mir nicht schlicht und ergreifend, &#8220;hör zu Kumpel; Du hast ne Menge Artikel und Menüitems, aber keines davon ist &#8220;Default&#8221;. So kann ich nicht funktionieren.&#8221; Die Informatik-Welt wäre so einfach, wenn sich der Entwickler auch nur kurz anstrengen würde und Showstoper Errors auch als solche zu kennzeichnen und entsprechende Fehlermeldungen auszugeben&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2010/02/06/omg-joomla-404-http-error/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>typo3 und die Mehrsprachigkeit &#124; Mehrsprachig</title>
		<link>http://www.c-dev.ch/blog/2010/02/04/typo3-mehrsprachig/</link>
		<comments>http://www.c-dev.ch/blog/2010/02/04/typo3-mehrsprachig/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 14:06:32 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/2010/02/04/typo3-mehrsprachig/</guid>
		<description><![CDATA[Version 1.0 vom 02.10.2003 Version 1.1 vom 08.12.2003 (Erweiterungen und Ergänzungen) Version 1.2 vom 05.05.2006 (Korrekturen Kontaktadresse) Version 1.3 vom 25.03.2010 (Bugfixing php script) Inhalt Einleitung Das Sprachkonzept in typo3 Schritt 1: Die Defaultsprache (Standard Sprache) Schritt 2: Neue Sprache in typo3 konfigurieren Schritt 3: Inhalte übersetzen &#8211; neue Seite erstellen Schritt 4: Inhalte übersezten [...]]]></description>
			<content:encoded><![CDATA[<p>Version 1.0 vom 02.10.2003<br />
Version 1.1 vom 08.12.2003 (Erweiterungen und Ergänzungen)<br />
Version 1.2 vom 05.05.2006 (Korrekturen Kontaktadresse)<br />
Version 1.3 vom 25.03.2010 (Bugfixing php script)</p>
<p><strong><br />
</strong></p>
<p><strong>Inhalt</strong></p>
<ol>
<li>Einleitung</li>
<li>Das Sprachkonzept in typo3</li>
<li>Schritt 1: Die Defaultsprache (Standard Sprache)</li>
<li>Schritt 2: Neue Sprache in typo3 konfigurieren</li>
<li>Schritt 3: Inhalte übersetzen &#8211; neue Seite erstellen</li>
<li>Schritt 4: Inhalte übersezten &#8211; neue Inhalte erstellen</li>
<li>Schritt 5: Die Sprache auf der Website auswählen</li>
<li>Schlusswort</li>
<li>Weiterführende Links</li>
</ol>
<p><span id="more-279"></span></p>
<h2>1. Einleitung</h2>
<p>Hier mein Beitrag zum Thema &#8220;Mehrsprachige Websites mit typo3&#8243;. Die    Gründe warum ich mir die Mühe mache sind folgende. Ich habe noch kein    vollständiges deutsches Tutorial gefunden, welches auch für Anfänger    geeignet ist. Als Anfäger hatte ich zuerst zu prüfen, ob typo3 soweit    Mehrsprachenfähig ist wie wir es uns vorgestellt hatten. Aber das Problem    ist: Die Mehrsprachenfähigkeit von typo3 ist da &#8211; es brauch jedoch schon    gewisses Vorwissen um es zu aktivieren!</p>
<p>Deshalb versuche ich in meinem Tutorial wirklich alles (jeden einzelnen Schritt)    so zu erklären, dass auch noch Anfänger damit zurecht kommen und einen    ersten Einblick in die Tiefen von typo3 bekommen können. Leider gibt es    sehr viele Abängigkeiten, angefangen vom verwendeten Installations-Packet,    so dass es doch sein kann dass noch Fragen offen bleiben &#8211; was ich aber wirklich    vermeiden möchte. Mein Tutorial setzt auf der Grundkonfiguration vom Quickstart-Packet    auf.</p>
<p>Das Tutorial richtet sich an all die, welche mit den Konzepten und Gebräuchlichkeiten    mit typo3 noch nicht so vertraut sind und deshalb Schritt für Schritt ins    Thema eingeführt werden müssen. Ich selbst bin noch blutiger Anfänger    mit typo3 und hoffe keine Fehlinformationen in diesem Tutorial zu verbreiten,    falls doch wäre ich um Hinweise sehr dankbar. Soweit kann ich Dir als Leser    aber versichern; alle Schritte habe ich selbst bei mir mit Erfolg durchgeführt    <img src='http://www.c-dev.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Das Tutorial setzt eine Installation von Quickstart voraus, die Beispiele beziehen    sich auf die Website &#8220;FC Bigfeet&#8221;. Ich habe in den Bezeichnungen und    den Screenshots die Englischen Begriffen verwendet. (Entspricht auch der Grundeinstellung    nach der Installation von Quickstart).</p>
<p><strong>Als kleines Schmankerl, damit dieses Tutorial doch noch eine richtige    Existenzberechtigung hat, habe ich eine eigene Lösung für die Sprachauswahl.    Mir gefallen diese Flaggen die standardmässig angezeigt werden überhaupt    nicht und präsentiere eine sehr viel elegantere Variante!</strong></p>
<h2>2 . Das Sprachkonzept in typo3</h2>
<p>typo3 ist Mehsprachenfähig (wer hätte das Gedacht!?) und unterstützt    dabei zwei unterschiedliche Konzepte. Das &#8220;Two-Tree&#8221; Konzept und das    &#8220;one-tree-fits-all-languages&#8221;. Ich möchte nicht weiter auf das    Two-Tree Konzept eingehen, da ich es aus praktischer Sicht weniger nützlich    finde, es gibt aber sicher Einsatzgebiete dafür. Das Tutorial befasst sich    mit dem Konzept &#8220;Ein Baum für alle Sprachen&#8221; = &#8220;one-tree-fits-all-languages&#8221;.</p>
<p>In typo3 können nach der Installation von Quickstart sogleich Text- bzw.    Inhalts-Datensätze eingegeben werden. Diese Inhalts-Datensätze entsprechen    dem Inhalt der auf der Webseite angezeigt wird. Die FC Bigfeet Website hat schon    eine Menge dieser Texte. Das klingt trivial und Du denkst Dir jetzt, warum ich    das schreibe. Weil Du Dir dabei vermutlich keinen Gedanken daran verschwendet    hast zu überlegen, in welcher Sprache diese Text abgespeichert werden.    Wir müssen uns auch gar nicht darum kümmern wenn unsere Website nur    eine Sprache anbiete. Wir geben unseren Text ein &#8211; der kann Deutsch, oder Englisch,    oder Italienisch, oder was auch immer sein und er wird angezeigt &#8211; fertig.</p>
<p>Ab dem Moment aber wo wir mehrere Sprachen anbieten wollen wird es plötzlich    interessant wie die Sprachen nun verwaltet werden. Dann fragen wir uns plötzlich:    Welche Sprache ist nun die Sprache die ich in FC Bigfeet als &#8220;standard&#8221;    habe? Es ist die Sprache mit dem Code 0! Zufällig ist es Englisch, aber    es hätte auch Deutsch sein können &#8211; die Sprache hat aber in jedem    Fall den Code 0.</p>
<p>Gerade das obige Thema war mir und mit mir bestimmt unzähligen Anfängern    nicht so ganz klar. Da wurde immer von &#8220;definiere Deine Standardsprache&#8221;    geschrieben. Man kann keine Standardsprache definieren, es ist immer die Sprache    mit dem Code 0. Es ist immer die Sprache die nach der Installation per Default    aktiv ist. Und welche Sprache es effektiv ist, das ist typo3 egal, typo3 gibt    dieser Standardsprache einfach den Code 0. Nehmen wir das mal so mit, auch wenn    vielleicht noch nicht klar ist warum das so ist.</p>
<p>typo3 hat ein &#8220;fall-back&#8221; System &#8211; wird eine Seite in einer Sprache    aufgerufen die nicht vorhanden ist, z.B. weil es für diese Seite auch keine    Übersetzung gibt, dann wird die Seite in der Default-Sprache angezeigt.</p>
<p>Ein wesentlicher Punkt im Umgang mit typo3 und der Mehrsprachigkeit ist noch    die Tatsache, dass die aktuelle Sprache nicht über die Seitengrenze hinaus    gespeichert wird. Das bedeutet folgendes: Die Sprache wird in dem Sinne nicht    &#8220;umgeschaltet&#8221;, sondern jeder Aufruf einer Seite muss einen zusätzlichen    Parameter mit dem Sprachcode besitzen. Wird eine Seite ohne diesem Parameter    aufgerufen, wird die Seite in der Standardsprache &#8211; Code 0 &#8211; angezeigt. Wird    der Parameter mit dem Code angegeben, dann wird die Seite in der gewünschten    Sprache angezeigt. Das mag auf den ersten Blick kein Nachteil sein, spätestens    dann aber wenn man sich nicht alle Verlinkungen auf der Website dynamisch durch    typo3 erzeugen lässt, sondern auch &#8220;harte&#8221; Links verwendet oder    eigene PHP Skripts einbindet die Links erzeugen, dann merkt man schnell dass    es umständlich wird.</p>
<h3>Wir machen nun unsere FC Bigfeet Startseite Schritt für Schritt zweisprachig    -nämlich zusätzlich in Deutsch!</h3>
<h2>3. Schritt 1 : Defaultsprache</h2>
<p>Unsere Standardsprache in FC Bigfeet ist Englisch &#8211; alle Texte sind in englischer    Sprache vorhanden. Wir wollen FC Bigfeet zusätzlich noch in Deutsch anbieten    und werden hierzu eine zusätzliche Sprache aktivieren, die neben der englischen    Standardsprache auch angezeigt werden kann.</p>
<p>In unserem ersten Schritt haben wir also festgestellt, dass unsere Defaultsprache    &#8220;Englisch&#8221; ist. Die Defaultsprache besitzt immer den Code &#8220;0&#8243;.</p>
<h2>4. Schritt 2 : Neue Sprache in typo3 konfigurieren</h2>
<p>Wir konfigurieren nun also die zusätzliche Sprache Deutsch in typo3.</p>
<p>Dazu gehen wir im Admin-Bereich von typo3 auf &#8220;List&#8221; und dann auf    den Root-Eintrag &#8220;Quick Start&#8221; unseres Baumes. Anschliessend machen    wir einen neuen Record über &#8220;Create new record&#8221; am unteren Ende    der Seite.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_1.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-337" title="sc_1" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_1.gif" alt="" width="915" height="526" /></a></p>
<p>Im Anschliessenden Dialog wählen wir &#8220;Website Language&#8221; um den    neuen Record zu erstellen.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_2.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-338" title="sc_2" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_2.gif" alt="" width="357" height="269" /></a></p>
<p>Es öffnet sich uns das Fenster um die Sprache (Sprach-Record) zu konfigurieren.    Wir tippen in das Feld Language &#8220;Deutsch&#8221; hinein uns speichern den    Record über das Disketten-Symbol.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_3.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-339" title="sc_3" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_3.gif" alt="" width="506" height="286" /></a></p>
<p>Zurück in der Übersicht können wir feststellen, dass unsere    neue Sprache angezeigt wird. In meinem Beispiel kann man erkennen, dass ich    auch noch die Sprache Französisch/Francaise konfiguriert habe.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_4.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-340" title="sc_4" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_4.gif" alt="" width="915" height="526" /></a></p>
<h2>5. Schritt 3 : Inhalte übersetzen &#8211; neue Seite erstellen</h2>
<p>Wir haben also im Schritt 2 die Sprache konfiguriert und können nun daran    gehen unsere Startseite vom FC Bigfeet ins Deutsche zu übersetzen. Momentan    sind sämtliche Texte in unserer Default-Sprache Englisch.</p>
<p>Wir wählen im Menü &#8220;Page&#8221; und dann die Startseite &#8220;FC    Bigfeet&#8221;. Es soll die erste Seite sein die wir übersetzen. Der Dialog    zeigt uns die Inhalts-Records der Startseite. Noch sind diese Texte in unserer    Defaultsprache Englisch, aber nicht mehr lange. Wir wählen in der Auswahlbox    unsere Sprache die wir übersetzen wollen.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_5.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-341" title="sc_5" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_5.gif" alt="" width="886" height="624" /></a></p>
<p>Im nun folgenden Dialog können wir wider erwarten noch keine Texte übersetzen,    sondern wir müssen die Eigenschaften für die Seite erfassen. Warum    ist das so? Eigentlich wollten wir doch die Inhalts-Records übersetzen,    was hat das mit einer Seite zu tun? Weil uns typo3 die gute Lösung bietet,    dass auch die Seiteneigenschaften übersetzt werden können. So können    wir im einfachsten Fall der Seite in Deutsch einen anderen Titel geben.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_6.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-342" title="sc_6" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_6.gif" alt="" width="490" height="176" /></a></p>
<h2>6. Schritt 4 : Inhalte übersetzen &#8211; neue Inhalte erstellen</h2>
<p>Nach dem Speichern der Seite im Schritt 3 sind wir endlich bei den Inhalts-Records    (Textinhalten), die wir nun übersetzen können. Wir sehen, dass neben    der Sprache &#8220;Default&#8221; unsere neue Sprache &#8220;Deutsch&#8221; angezeigt    wird. Das erste Mal wo ich soweit kam war ich doch ein wenig enttäuscht    &#8211; warum ist die Seite leer, warum gibts keine Inhalts-Records? Tja das ist einfach    so und bedeutet, dass wir nun etwas mühselig alle Inhaltsrecords von Grund    auf für die neue Sprache neu erstellen müssen. Denn wir wollen exakt    dieselben Seiten-Elemente/Texte auf der Deutschen Seite haben, wie wir sie auch    auf der Englischen Seite haben. Wir füllen also unsere Seite mit Inhalten    im Bereich Deutsch. Es gibt zwar Möglichkeiten die Inhalte vom Default    in unserer neue Sprache zu kopieren, aber das soll der Einfachheit halber nun    nicht bestandteil dieses Tutorials sein.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_7.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-343" title="sc_7" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_7.gif" alt="" width="886" height="624" /></a></p>
<h2>7. Schritt 5 : Die Sprache auf der Website auswählen</h2>
<p>Wir haben nun typo3 für die neue Sprache konfiguriert. Wir haben die Startseite    des FC Bigfeet für Deutsch neu erstellt. Nun möchten wir schliesslich    noch die Seiten in der neuen Sprache auch anzeigen können. Dazu machen    wir ein kleines Menü, welches auf der Seite angezeigt wir und es dem Besucher    ermöglicht in die andere Sprache umzuschalten.</p>
<p>Das Menü für die Sprachauswahl benötigt ein PHP-Script und entsprechende    konfigurationen im SETUP des TS-Templates der Seite um dieses PHP-Script aufzurufen    und auszuführen. Das Script ist verantwortlich für die Ausgabe des    Menüs. Ich selbst mag solche Mischung von Logik und Design überhaupt    nicht, aber wir fügen uns und passen das Script so an, dass der gewünschte    HTML-Output erzeugt wird.</p>
<p>Mein Menü wie es vom Script unten erzeugt wird ist sehr einfach: Die Homepage    wird, wenn sie aufgerufen wird, in der Standardsprache Englisch angezeigt. Mein    Menü besteht daher aus einem einzigen, diskreten Link &#8220;Deutsch&#8221;.    Ein klick auf diesen Link schaltet dann die Sprache um. Sinngemäss besteht    dann auf der Deutschen Variante das Menü aus dem Link &#8220;English&#8221;.</p>
<p><strong>Die typo3 Sprachinterna</strong></p>
<p>So nun gehts ans Eingemachte. Nach dem wir nur ein wenig herumklicken konnten,    wirds erst richtig lustig.</p>
<p>Wird unsere Homepage FC Bigfeet aufgerufen, dann erscheint die Startseite in    der Sprache Englisch. Wir möchten also einen Umschalter einbauen &#8211; ein    Menü, welches uns ermöglicht die Startseite in der Sprache Deutsch    anzuzeigen. Die Umschaltung erfolgt über einen Parameter in der URL. Wir    legen Fest, dass der Sprachcode in der Variable &#8220;L&#8221; mit der URL mittransportiert    wird. Ein Seitenaufruf hat in typo3 folgende Syntax: index.php?id=12 Die id    entspricht der Seite die aufgerufen werden muss. Nun erweitern wir diese Syntax    um unser L. index.php?id=12&amp;L=1 ruft die Seite mit der id 12 in der Sprache    1 auf. Unsere Sprache 1 ist Deutsch. Daselbe geht für L=0, dann wird nämlich    die Seite wieder in unserer Standardsprache Englisch angezeigt. Oder wir geben    gar keinen &#8220;L&#8221; Code mit, dann nimmt unsere TS Konfiguration ganz einfach    wieder die Standardsprache. Das legen wir einfach so fest und konfigurieren    nun unser TS-Template, damit diese Sprachvariable über die Seiten hinweg    transportiert wird, respektive dass die Sprachvariable auch gewechselt werden    kann.</p>
<p><strong>Die Bestandteile des PHP Scripts</strong></p>
<p>Programmieren wir zuerst unser Menü in PHP. Dieses Skript ist für    die Darstellung des &#8220;Umschalt-Menü&#8221; auf der Webseite verantwortlich.</p>
<p>Vorhandene Sprachen holen: (Bei uns 0=Englisch und 1=Deutsch)</p>
<blockquote><p>// Für die aktuelle Seite werden alle all pages_language_overlay records geholt. Jeder Record entspricht einer Sprache<br />
$query = &#8220;SELECT * FROM pages_language_overlay WHERE pid=&#8221;.$GLOBALS['TSFE']-&gt;id.$GLOBALS['TSFE']-&gt;sys_page-&gt;enableFields(&#8216;pages_language_overlay&#8217;).&#8221; GROUP BY sys_language_uid&#8221;;</p>
<p>$res = mysql(TYPO3_db,$query);<br />
$langArr=array();<br />
while($row=mysql_fetch_assoc($res)) {<br />
$langArr[$row['sys_language_uid']]=$row['title'];<br />
}</p></blockquote>
<p>In Abhängigkeit der aktiven Sprache den HTML Code des Sprachmenüs    erzeugen. Das PHP Script arbeitet logischerweise auch mit der Variable L, welche    den Sprachcode beinhaltet:</p>
<blockquote><p>$flags = array();<br />
if ($GLOBALS['TSFE']-&gt;sys_language_uid==0) {<br />
// Englisch ist aktiv &#8211; Deutsch anzeigen<br />
$flags[] = &#8216;&lt;a href=&#8221;index.php?id=&#8217;.$GLOBALS['TSFE']-&gt;id.&#8217;&amp;L=1&#8243; target=_top&gt;English&lt;/a&gt;&#8217;;<br />
} elseif ($GLOBALS['TSFE']-&gt;sys_language_uid==1) {<br />
// Deutsch ist aktiv &#8211; Englisch anzeigen<br />
$flags[] = &#8216;&lt;a href=&#8221;index.php?id=&#8217;.$GLOBALS['TSFE']-&gt;id.&#8217;&amp;L=0&#8243; target=_top&gt;Deutsch&lt;/a&gt;&#8217;;<br />
}</p>
<p>// Macht die Ausgabe. Das Menü transferitert die page-id und die &#8220;L&#8221; variable zur Sprachsteuerung<br />
$content = implode(&#8220;&#8221;,$flags);</p></blockquote>
<p>So das wars, nicht viel zum Glück. Das Skript können wir dorthin    speichern wo wir es für richtig halten. Wir werden später im TS-Setup    den Pfad angeben müssen. Ich habe ein neues Verzeichnis &#8220;scripts&#8221;    im fileadmin gemacht und dorthinein die Datei hochgeladen/gespeichert.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_10.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-346" title="sc_10" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_10.gif" alt="" width="633" height="250" /></a></p>
<p>Hier noch die komplette Datei zum herunterladen (Aktualisiert am 25.03.2010):<a href="http://www.c-dev.ch/kaepten/typo3/sprachmenu.zip"></a><br />
<a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sprachmenu_2010-03-25.zip">sprachmenu_2010-03-25 (enthält sprachmenu.php)</a></p>
<p>Es gibt auch eine typo3 Originaldatei die findet man hier: quickstart/media/scripts/example_languageMenu.php</p>
<p><strong>Das PHP Script im TS-Template aufrufen</strong></p>
<p>Jetzt werden wir den &#8220;Schalter&#8221; konfigurieren, so dass typo3 die    richtigen Inhalts-Records holen kann. Dazu verwenden wir die neue Variable &#8220;L&#8221;    ein. Diese wird bei der Umschaltung auf eine andere Sprache benützt.</p>
<p>SETUP konfiguration</p>
<blockquote><p># SprachVariable L initialisieren<br />
config.linkVars = L</p>
<p># Standardsprache UID 0 -&gt; Englisch<br />
config.sys_language_uid = 0<br />
config.language = en<br />
config.locale_all = english</p>
<p># Deutsch, sys_language.uid = 1<br />
[globalVar = GP:L = 1]<br />
config.sys_language_uid = 1<br />
config.language = de<br />
config.locale_all = de_DE<br />
[global]</p></blockquote>
<p>Die Konfiguration macht die Umschaltung der Sprache. Generell wird angenommen,    dass die Seite in der Standardsprache angezeigt werden soll. Dann kommt aber    noch eine Entscheidungsabfrage, ob die Variable L=1 sei. Falls dies der Fall    ist, werden wir die Sprache wieder umschalten auf Deutsch.</p>
<p>Ich kann bei mir nicht bestätigen &#8211; entgegen allen anderen Tutorials &#8211;    dass meine neue Sprache, hier Deutsch, den Code 3 oder 2 hat. Die Codes werden    schön inkrementiert bei der Erstellung einer neuen Sprache. So führt    das Hinzufügen der Sprache Deutsch unweigerlich zu der ID / Code 1. Ziemlich    eindeutige Sache im Grunde. Die nächste Sprache die ich also neu konfigurieren    würde hätte also dann den Code 2.</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_8.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-344" title="sc_8" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_8.gif" alt="" width="263" height="123" /></a></p>
<p>Man sieht am Tooltipp an, dass Deutsch (leider fehlt der Mauszeiger, aber der    zeigt auf das Erkugelsymbol von &#8220;Deutsch&#8221;) die id=1 bekommen hat.    Diese ID entspricht unserem Code. Ich habe noch &#8220;Francaise&#8221; hinzugefügt,    diese Sprache bekam die ID=2.</p>
<p>Es kann daraus gefolgert werden, dass die Sprachbezeichnung im Grunde nur an    einer Stelle relevant ist: Im Backend wenn Inhalte für eine Sprache übersetzt    werden:</p>
<p><a href="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_9.gif" rel="shadowbox[post-279];player=img;"><img class="alignnone size-full wp-image-345" title="sc_9" src="http://www.c-dev.ch/blog/wp-content/uploads/2010/03/sc_9.gif" alt="" width="346" height="137" /></a></p>
<p>Für das System wichtig ist nur der Code und der wird für jede zusätzliche    Sprache einfach hochgezählt. Man kann also nicht sagen, dass der Code 1    immer Deutsch ist, oder Code 3 immer Französisch etc.</p>
<p>Nun müssen wir unser TS-Template auch noch soweit konfigurieren, dass    unser Menü-Script aufgerufen wird und damit die HTML-Ausgabe erzeugt. Dazu    fügen wir im Setup unseres TS-Template folgende zwei Zeilen hinzu:</p>
<p>SETUP konfiguration:</p>
<blockquote><p>page.10 = PHP_SCRIPT<br />
page.10.file = fileadmin/scripts/sprachmenu.php</p></blockquote>
<h2>8. Schlusswort</h2>
<p><strong>Das war es. Weiter gibt es nichts mehr zu tun. Über die TS-Konfiguration    sollte nun also auf jeder Seite das &#8220;Sprach-Menü&#8221; angezeigt werden,    dafür ist unser PHP-Skript zuständig welches wir auf unsere Bedürfnisse    angepasst haben.</strong></p>
<p>Feedback über Fehler in meinem Turorial, oder den Nutzen &#8211; ist jederzeit    willkommen.</p>
<h2>9. Weiterführende Links</h2>
<p><a href="http://typo3.org/1220.0.html" target="_blank">Originaldoku von typo3</a></p>
<p><a href="http://www.t3net.de/dokumentation/extension-tutorials/typo3-mehrsprachig.html" target="_blank">Ergänzende Doku auf T3NET</a></p>
<p><a href="http://typo3.org/fileadmin/typo3api-4.0.0/d3/d96/example__languageMenu_8php-source.html" target="_blank">Originaldatei example_languageMenu.php</a> (woraus ich die sprachmenu.php abgeleitet habe)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2010/02/04/typo3-mehrsprachig/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Compare und Merge Tools in VisualStudio 2005</title>
		<link>http://www.c-dev.ch/blog/2009/09/21/freie-compare-und-merge-tools/</link>
		<comments>http://www.c-dev.ch/blog/2009/09/21/freie-compare-und-merge-tools/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 12:56:03 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[VisualStudio]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=248</guid>
		<description><![CDATA[Inklusive Commandlines für die Einbindung in Visual Studio 2005. Hier finden sich die Parametersettings des VisualStudio. DiffMerge Compare /t1=%6 /t2=%7 %1 %2 Merge /m /r=%4 /t1=%7 /t2=%8 /t3=%6 /c=%9 %2 %3 %1 WinMerge Compare /e /x /s /wl /dl %6 /dr %7 %1 %2 Merge /e /s /x /ub /dl %6 /dr %7 %1 %2 [...]]]></description>
			<content:encoded><![CDATA[<p>Inklusive Commandlines für die Einbindung in Visual Studio 2005. <a href="http://blogs.msdn.com/b/jmanning/archive/2006/02/20/diff-merge-configuration-in-team-foundation-common-command-and-argument-values.aspx" target="_blank">Hier finden sich die Parametersettings des VisualStudio.</a></p>
<h3>DiffMerge</h3>
<p>Compare</p>
<blockquote><p>/t1=%6 /t2=%7 %1 %2</p></blockquote>
<p>Merge</p>
<blockquote><p>/m /r=%4 /t1=%7 /t2=%8 /t3=%6 /c=%9 %2 %3 %1</p></blockquote>
<h3>WinMerge</h3>
<p>Compare</p>
<blockquote><p>/e /x /s /wl /dl %6 /dr %7 %1 %2</p></blockquote>
<p>Merge</p>
<blockquote><p>/e /s /x /ub /dl %6 /dr %7 %1 %2 %4</p></blockquote>
<h3>Araxis</h3>
<p>Execute: ConsoleCompare.exe</p>
<p>Compare</p>
<blockquote><p>/2 /title1:%6 /title2:%7 %1 %2</p></blockquote>
<p>Merge</p>
<blockquote><p>/wait /swap /a3 /3 /title1:%6 /title2:%7 /title3:%8 %1 %2 %3 %4</p></blockquote>
<p><a href="http://readcommit.blogspot.com/2008/04/araxis-merge-integration-with-tfs-team.html">Hier noch zusätzliche Informationen zur Einbindung von Araxis&#8230;</a></p>
<h3>KDiff3</h3>
<p>Compare</p>
<blockquote><p>%1 &#8211;fname %6 %2 &#8211;fname %7</p></blockquote>
<p>Merge</p>
<blockquote><p>%3 &#8211;fname %8 %2 &#8211;fname %7 %1 &#8211;fname %6 -o %4</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2009/09/21/freie-compare-und-merge-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xs:attribute</title>
		<link>http://www.c-dev.ch/blog/2009/06/24/xsattribute/</link>
		<comments>http://www.c-dev.ch/blog/2009/06/24/xsattribute/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:16:17 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[XML & XSL]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=207</guid>
		<description><![CDATA[Ein element kann nicht direkt ein attribute haben, es muss über einen complexType angefügt werden. Das Attribute selbst ist jedoch immer als simpler Typ definiert: xs:string xs:decimal xs:integer xs:boolean xs:date xs:time &#60;xs:attribute name=&#8221;lang&#8221; type=&#8221;xs:string&#8221; use=&#8221;required&#8221;/&#62; Das Beispiel zeigt eine Definition, die das Attribut als erforderlich deklariert.]]></description>
			<content:encoded><![CDATA[<p>Ein element kann nicht direkt ein attribute haben, es muss über einen complexType angefügt werden.</p>
<p>Das Attribute selbst ist jedoch immer als simpler Typ definiert:</p>
<ul>
<li>xs:string</li>
<li>xs:decimal</li>
<li>xs:integer</li>
<li>xs:boolean</li>
<li>xs:date</li>
<li>xs:time</li>
</ul>
<blockquote><p>&lt;xs:attribute name=&#8221;lang&#8221; type=&#8221;xs:string&#8221; use=&#8221;required&#8221;/&gt;</p></blockquote>
<p>Das Beispiel zeigt eine Definition, die das Attribut als erforderlich deklariert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2009/06/24/xsattribute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xs:element</title>
		<link>http://www.c-dev.ch/blog/2009/06/24/xselement/</link>
		<comments>http://www.c-dev.ch/blog/2009/06/24/xselement/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:11:47 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[XML & XSL]]></category>
		<category><![CDATA[xsd]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=201</guid>
		<description><![CDATA[Ein Element kann nur Text enthalten. Es kann keine weiteren Elemente oder Attribute beinhalten. Wobei &#8220;Text&#8221; missverständlich sein kann. Denn der Inhalt kann einer von den xsd Typen (boolean, string, date, etc.) sein, oder ein benutzerdefinierter Typ, den man selbst erstellt. &#60;xs:element name=&#8221;xxx&#8221; type=&#8221;yyy&#8221;/&#62; Komplexes Element Es gibt vier Möglichkeiten: leere elemente &#60;result state=&#8221;true&#8221; /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Element kann nur Text enthalten. Es kann keine weiteren Elemente oder Attribute beinhalten.</p>
<p>Wobei &#8220;Text&#8221; missverständlich sein kann. Denn der Inhalt kann einer von den xsd Typen (boolean, string, date, etc.) sein, oder ein benutzerdefinierter Typ, den man selbst erstellt.</p>
<blockquote><p>&lt;xs:element name=&#8221;xxx&#8221; type=&#8221;yyy&#8221;/&gt;</p></blockquote>
<p><strong>Komplexes Element</strong></p>
<p>Es gibt vier Möglichkeiten:</p>
<ul>
<li>leere elemente<br />
&lt;result state=&#8221;true&#8221; /&gt;</li>
<li>solche die nur andere elemente beinhalten<br />
&lt;result&gt;<br />
&lt;state&gt;true&lt;/state&gt;<br />
&lt;/result&gt;</li>
<li>solche die nur text beinhalten<br />
&lt;result state=&#8221;true&#8221;&gt;no error occurred&lt;/result&gt;</li>
<li>elemente, die andere elemente und text beinhalten<br />
&lt;result state=&#8221;true&#8221;&gt;no &lt;green&gt;error&lt;/green&gt; occurred&lt;/result&gt;</li>
</ul>
<p><strong>Definition eines komplexen Elementes</strong></p>
<blockquote><p>&lt;employee&gt;<br />
&lt;firstname&gt;John&lt;/firstname&gt;<br />
&lt;lastname&gt;Smith&lt;/lastname&gt;<br />
&lt;/employee&gt;</p></blockquote>
<p>XSD</p>
<blockquote><p>&lt;xs:element name=&#8221;employee&#8221;&gt;<br />
&lt;xs:complexType&gt;<br />
&lt;xs:sequence&gt;<br />
&lt;xs:element name=&#8221;firstname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;xs:element name=&#8221;lastname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;/xs:sequence&gt;<br />
&lt;/xs:complexType&gt;<br />
&lt;/xs:element&gt;</p></blockquote>
<p>Oder mehr genereller, damit beispielsweise ein anderes Element wie &#8220;Kunde&#8221; dieselbe Definition verwenden kann:</p>
<blockquote><p>&lt;xs:element name=&#8221;employee&#8221; type=&#8221;personinfo&#8221;/&gt;</p>
<p>&lt;xs:complexType name=&#8221;personinfo&#8221;&gt;<br />
&lt;xs:sequence&gt;<br />
&lt;xs:element name=&#8221;firstname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;xs:element name=&#8221;lastname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;/xs:sequence&gt;<br />
&lt;/xs:complexType&gt;</p></blockquote>
<p>Ohne Angaben von minOccurs and maxOccurs muss das Element exakt einmal vorkommen. (entspricht also minOccurs=1 und maxOccurs=1).</p>
<p><span style="color: #ff6600;"><strong>ACHTUNG! </strong>Attribute Definitionen müssen immer am Ende (z.B. nach sequence) erfolgen!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2009/06/24/xselement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interface / GUI / UI Linksammlung</title>
		<link>http://www.c-dev.ch/blog/2009/01/29/interface-gui-ui-linksammlung/</link>
		<comments>http://www.c-dev.ch/blog/2009/01/29/interface-gui-ui-linksammlung/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 12:32:04 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=152</guid>
		<description><![CDATA[Linksammlung (z.T. grafisch angestaubt, aber inhaltlich aktuell!) : Hall of shame http://homepage.mac.com/bradster/iarchitect/shame.htm http://www.frankmahler.de/mshame/ How To Windows Vista MSDN Userinterface Area UI StyleGuide Userinterface Styleguide]]></description>
			<content:encoded><![CDATA[<p>Linksammlung (z.T. grafisch angestaubt, aber inhaltlich aktuell!) :</p>
<p><strong>Hall of shame</strong></p>
<p><a href="http://homepage.mac.com/bradster/iarchitect/shame.htm">http://homepage.mac.com/bradster/iarchitect/shame.htm</a><br />
<a href="http://www.frankmahler.de/mshame/">http://www.frankmahler.de/mshame/</a></p>
<p><strong>How To</strong></p>
<p><a href="http://msdn.microsoft.com/en-us/library/aa511258.aspx">Windows Vista</a><a href="http://msdn.microsoft.com/en-us/library/aa894341.aspx"><br />
MSDN Userinterface Area</a><br />
<a href="http://technet.microsoft.com/en-us/library/aa662849.aspx">UI StyleGuide</a><br />
<a href="http://msdn.microsoft.com/en-us/library/aa152962.aspx">Userinterface Styleguide<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2009/01/29/interface-gui-ui-linksammlung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
