<?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">
	<channel>
		<title></title>
		<link></link>
		<language>de</language>
		<lastBuildDate>Wed, 06 May 2026 00:50:08 +0000</lastBuildDate>
		<atom:link href="" rel="self" type="application/rss+xml" />
				<description></description>
				<managingEditor>mail@rocksolidthemes.com</managingEditor>
										<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Thu, 12 Jan 2017 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Contao 4.3 ist für Entwickler gedacht. Wer die Kommandozeile nicht scheut und schon jetzt die neue Version nutzen möchte, erfährt hier wie es geht.</p>

<div class="highlight-box icon-info">

<p><strong>Update:</strong> Ab der Contao-Version 4.4.0 ist für die Installation keine Kommandozeile mehr nötig, beachten Sie bitte die <a href="https://rocksolidthemes.com/de/contao/support/dokumentation">Dokumentationen der Themes</a>.</p>

</div>

<h2>Contao 4.3 mit Composer installieren</h2>

<p>Um Contao 4.3 zu installieren wird zuerst Composer benötigt, der über <a href="https://getcomposer.org/doc/00-intro.md#system-requirements" target="_blank">getcomposer.org</a> heruntergeladen bzw. installiert werden kann.</p>

<p>Erstellen Sie einen Ordner für die Website und installieren Sie Contao 4.3 mit folgender Eingabe:</p>

<pre class="shell"><code>cd &lt;pfad&gt;
composer create-project --no-dev contao/managed-edition .</code></pre>

<p>Ersetzen Sie dabei <code>&lt;pfad&gt;</code> mit dem Pfad zu dem soeben erstellten Ordner in dem Contao installiert werden soll.</p>

<p>Stellen Sie nun in der Webspace-Konfiguration den Unterordner <em>web</em> als Hauptverzeichnis (Document Root) ein. Danach rufen Sie das Install-Tool auf und führen wie üblich die einzelnen Schritte durch.</p>

<div class="highlight-box icon-info">

<p>Das Install-Tool ist ab Version 4.0.2 unter <em>/install.php</em>, ab 4.4.0 unter <em>/contao/install</em> anstatt wie früher unter <em>/contao/install.php</em> zu finden.</p>

</div>

<p>Nachdem alle Schritte des Install-Tools abgeschlossen sind, ist unter <em>/contao</em> das Backend von Contao 4 zu sehen.</p>

<h2>Erweiterungen installieren</h2>

<p>Mit folgenden Eingaben werden alle Erweiterungen mit Composer in einem Schritt installiert:</p>

<pre class="shell"><code>composer require \
    madeyourday/contao-rocksolid-frontend-helper:^2.0 \
    madeyourday/contao-rocksolid-custom-elements:^2.0 \
    madeyourday/contao-rocksolid-columns:^2.0 \
    madeyourday/contao-rocksolid-icon-picker:^2.0 \
    madeyourday/contao-rocksolid-slider:^2.0 \
    madeyourday/contao-rocksolid-theme-assistant:^2.0 \
    madeyourday/contao-rocksolid-mega-menu:^2.0 \
    madeyourday/contao-rocksolid-antispam:^2.0</code></pre>

<p>Nun muss erneut das Install-Tool aufgerufen werden um die Datenbank zu aktualisieren.</p>

<h2>Theme installieren</h2>

<p>Nachdem Contao 4 inklusive Erweiterungen erfolgreich installiert wurde können Sie der üblichen <a href="https://rocksolidthemes.com/de/contao/support/dokumentation/opensauce#theme-importieren">Installationsanleitung des Themes</a> ab dem Schritt <em>Theme herunterladen und importieren</em> folgen.</p>

<p>Aktualisieren Sie die Symlinks des Web-Ordners nach der Installation des Themes indem Sie im Contao-Backend unter <em>System › Systemwartung › Daten bereinigen</em> den Punkt <em>Symlinks neu erstellen</em> ausführen.</p>

<h2>Fertig</h2>

<p>Contao 4 und Ihr RockSolid Theme sind nun einsatzbereit und bereit für Ihre Inhalte.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Mon, 18 May 2015 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Erfahren Sie Schritt für Schritt wie Sie den Icon-Font Ihres Themes erweitern können. Tauschen Sie einzelne Icons aus oder fügen neue Icons hinzu. Sie benötigen dazu keine zusätzliche Software. Eine Contao-Installation mit installiertem Theme ist alles was Sie brauchen.</p>

<h2>Icon-Font in IcoMoon importieren</h2>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/10-contao-blog-iconfont-workflow/import-toolbar.png?95b5" alt="Menüleiste „Import Icons“"><p>IcoMoon Menüleiste</p></div>

<p>Für die Anpassung des Icon-Fonts verwenden wir in diesem Artikel die kostenlose Online-Software <a href="https://icomoon.io/" target="_blank">IcoMoon</a>. Öffnen Sie dazu die Seite <a href="https://icomoon.io/app" target="_blank">icomoon.io/app</a> in Ihrem Browser, klicken links oben auf den Button <em>Import Icons</em> und wählen den SVG-Icon-Font <em>rocksolid-icons.svg</em> aus. IcoMoon erstellt nun automatisch ein neues Icon-Set mit dem Namen <em>rocksolid-icons</em>.</p>

<div class="highlight-box icon-info">

<p>Die SVG-Datei des Icon-Fonts finden Sie auf Ihrem Webspace im Ordner <em>files/THEMENAME/fonts</em>.</p>

</div>

<h2>Icons verändern oder austauschen</h2>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/10-contao-blog-iconfont-workflow/edit-toolbar.png?d56a" alt="Menüleiste „Edit“"><p>IcoMoon Menüleiste</p></div>

<p>Um einzelne Icons zu verändern oder mit einem anderen Symbol auszutauschen, wählen Sie in der Menüleiste den Stift-Button <em>Edit</em> und klicken auf das gewünschte Icon. Einfachere Modifikationen wie Größe, Position oder Name des Icons können direkt vorgenommen werden. Um das Icon mit einem Grafikprogramm zu bearbeiten klicken Sie auf <em>Download (SVG)</em>. Mit dem Klick auf <em>Replace</em> können Sie eine SVG-Datei auswählen, mit der das Icon ersetzt werden soll.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/10-contao-blog-iconfont-workflow/edit-options.png?812e" alt="Icon-Bearbeitungsoptionen"><p>Icon-Bearbeitungsoptionen</p></div>

<h2>Icons hinzufügen</h2>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/10-contao-blog-iconfont-workflow/icon-set-menu.png?f463" alt="Iconset-Menü"><p>Iconset-Menü</p></div>

<p>Für die Erweiterung des Icon-Fonts um neue Icons gibt es mehrere Möglichkeiten. Um ein einzelnes Icon, das als SVG-Datei vorliegt hinzuzufügen, klicken Sie rechts neben dem Icon-Set <em>rocksolid-icons</em> auf das Menü-Symbol, dann auf <em>Import to Set</em> und laden das gewünschte SVG-Icon hoch. Auf diese Weise können Sie auch einen kompletten Icon-Font hinzufügen.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/10-contao-blog-iconfont-workflow/add-icons-from-library.png?7a92" alt="Add Icons from Library"></div>

<p>IcoMoon selbst bietet auch einige Icon-Fonts zur Auswahl, um diese hinzuzufügen scrollen Sie nach unten und klicken auf <em>Add Icons From Library</em> und fügen die gewünschten Icon-Fonts zur Übersicht hinzu. Makieren Sie nun die gewünschten Icons aus dem hinzugefügten Icon-Font und wählen Sie im Menü von <em>rocksolid-icons</em> den Punkt <em>Copy Selection to Set</em>.</p>

<h2>Icon-Font exportieren</h2>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/10-contao-blog-iconfont-workflow/download.png?b319" alt="Download Icon-Font"><p>IcoMoon Fußzeile</p></div>

<p>Wenn Sie die Anpassungen und Ergänzungen abgeschlossen haben, wählen Sie im Menü von <em>rocksolid-icons</em> den Punkt <em>Select All</em> und klicken rechts unten auf <em>Generate Font</em> und danach ebenfalls rechts unten auf <em>Download</em>. Ersetzen Sie die Icon-Font-Dateien auf Ihrem Webspace mit den Dateien aus dem Ordner <em>fonts</em> des Download-Pakets. Achten Sie dabei darauf, dass Sie die Dateien in <em>rocksolid-icons</em> umbenennen müssen.</p>

<div class="highlight-box icon-info">

<p>Falls die neuen Icons im Picker nicht korrekt dargestellt werden, leeren Sie bitte den Cache des Browsers, da Schrift-Dateien oft sehr hartnäckig im Browser-Cache verharren.</p>

</div>

<p>Damit auch die Suche des Icon Picker die Icons erkennt, kopieren Sie die Datei <em>style.css</em> des Download-Pakets in den Ordner der Icon-Font-Dateien und benennen Sie sie in <em>rocksolid-icons.css</em> um. Löschen Sie die Datei <em>rocksolid-icons.html</em> falls sie existiert.</p>

<div class="highlight-box icon-tip">

<p>IcoMoon speichert Ihre Icons und Einstellungen in Ihrem Browser ab, dadurch können Sie im Nachhinein Ihr Icon-Set weiter bearbeiten.</p>

</div>

<h2>Fertig</h2>

<p>Die neuen Icons sind nun einsatzbereit und können in allen Custom Elements mit Icon Picker ausgewählt werden.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Thu, 27 Nov 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Responsive Images sind seit der Version 3.4 Teil von Contao. In diesem Artikel erfahren Sie, welche neuen Möglichkeiten es gibt und wie Sie Ihre Bilder schnell und einfach responsive einbinden. Außerdem zeigen wir Ihnen, was Sie dabei im Bezug auf Performance und ältere Browser beachten sollten.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/responsive-images.svg?2ffa" alt=""><p>Liebling, wir haben die Content-Bilder geschrumpft.</p></div>

<h2>Zentrale Bildgrößen definieren</h2>

<p>Um die Einstellung der Bildgrößen für Redakteure zu vereinfachen und die Wartbarkeit für Administratoren zu verbessern, können Bildgrößen in den Theme-Einstellungen nun zentral definiert werden.</p>

<p>Um eine neue Bildgröße anzulegen navigieren Sie im Backend zu <em>Layout › Themes › Bildgrößen</em>. Dort können Sie einen Namen vergeben und die üblichen Einstellungen (Breite, Höhe, Modus) setzen. Danach können Sie in jedem Inhaltselement oder Modul, das über eine Einstellungsmöglichkeit für die Bildgröße verfügt auf die angelegten Definitionen zurückgreifen.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/image-settings.png?2425" alt=""></div>

<p>Die zentrale Einstellung der Bildgrößen erleichtern es, vor allem Redakteuren, konsequent dieselben Einstellungen zu verwenden. Gleichzeitig kann sichergestellt werden, dass keine Bildgrößen gewählt werden, die das Layout negativ beeinflussen. Und unabsichtlich in voller Größe eingebundene Bilder sollten damit ebenfalls der Vergangenheit angehören.</p>

<p>Die Praktikanten atmen auf: Bei einem Design-Update oder Relaunch müssen künftig nicht mehr sämtliche Bilder einzeln editiert werden um z. B. die Bildgröße oder Proportionen an das neue Design anzupassen.</p>

<h2>Die verschiedenen Arten von Responsive Images</h2>

<p>Es gibt grundsätzlich zwei Arten von Responsive Images.</p>

<p>Bei der ersten Variante werden Bilder mit unterschiedlicher Auflösung angezeigt, abhängig von der Größe und der Pixeldichte des Bildschirms. Der Bildausschnitt und die Proportion des Bildes bleiben jedoch gleich. Hierfür wird das <code>srcset</code>- und das <code>sizes</code>-Attribut eingesetzt.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/example-srcset.jpg?d507" alt=""><p>Beispiel für ein Responsive Image ohne Veränderung des Ausschnitts.</p></div>

<p>Die zweite Variante wird als „Art Direction“ bezeichnet. Dabei wird abhängig von der Bildschirmgröße, des Bildschirmformats und möglichen anderen Faktoren ein anderer Bildausschnitt und/oder eine andere Proportion des Bildes angezeigt. Hierfür wird das <code>&lt;picture&gt;</code>-Element verwendet.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/example-picture.jpg?03a5" alt=""><p>Beispiel für ein Responsive Image mit verändertem Ausschnitt und verschiedenen Proportionen.</p></div>

<h2>Responsive Images ohne „Art Direction“ in Contao</h2>

<p>Unterschiedliche Auflösungen für verschiedene Pixeldichten (z. B. „Retina“) können eingerichtet werden, indem man in den Bildgrößen-Einstellungen die gewünschten Pixeldichten einträgt. Wenn Sie für eine Größe von 100x100 die Pixeldichten <code>0.5x, 1x, 2x</code> vergeben, wird automatisch für jedes Bild, das dieser Größe zugeordnet ist ein 50x50, 100x100 und 200x200 großes Bild erzeugt.</p>

<p>Um zusätzlich verschieden breite Bildschirme zu unterstützen, muss das <code>sizes</code>-Attribut in den Einstellungen vergeben werden. Diese Einstellung teilt dem Browser mit, in welcher Breite das Bild angezeigt wird.</p>

<p>Wenn das Bild immer in voller Breite des Fensters angezeigt wird, tragen Sie <code>100vw</code> ein. Wenn ein Bild z. B. auf kleineren Bildschirmen in voller Breite angezeigt wird und in größeren immer 500 Pixel breit ist, tragen Sie <code>(max-width: 600px) 100vw, 500px</code> ein. Auch mehrere Media-Queries können verwendet werden z. B. <code>(max-width: 600px) 100vw, (max-width: 900px) 60vw, 500px</code>.</p>

<p>Die Einstellung folgt dem Schema: Media-Query in Klammern (optional), gefolgt von Wert und Einheit. Mehrere Angaben getrennt durch Komma.</p>

<p>Wenn nun bei einer 100x100-Bildgröße unter Sizes <code>100vw</code> und unter Pixeldichte <code>0.5x, 1x, 2x</code> eingestellt ist, erzeugt Contao ein 50x50, 100x100 und 200x200 großes Bild und der Browser entscheidet anhand der Sizes-Einstellung und der Daten des Bildschirms welches dieser Bilder geladen wird.</p>

<h2>Der Zoom-Faktor und der bedeutende Bereich von Bildern</h2>

<p>Der bedeutende Bereich eines Bildes kann im Contao-Backend in der Dateiverwaltung festgelegt werden. Editieren Sie dafür das gewünschte Bild unter <em>System › Dateiverwaltung</em> und markieren Sie den Bereich mit dem Mauszeiger. Dabei sollte der Bereich des Bildes markiert werden der für den Informationsgehalt von Bedeutung ist bzw. möglichst immer sichtbar sein sollte.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/important-part-setting.jpg?3c60" alt=""></div>

<p>In den Einstellungen der Bildgröße kann nun ein Zoom-Faktor angegeben werden. Bei 0% wird das gesamte Bild angezeigt, bei 100% wird nur der zuvor markierte bedeutende Bereich des Bildes angezeigt und von 1% bis 99% werden Zwischenschritte des Ausschnitts berechnet.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/example-picture.jpg?03a5" alt=""><p>Links: Zoom 0%, Mitte: Zoom 50%, Rechts Zoom 100%</p></div>

<h2>Responsive Images mit „Art Direction“ in Contao</h2>

<p>Pro Bildgröße können Sie zusätzlich Media-Queries anlegen. Navigieren Sie dazu im Contao-Backend nach <em>Layout › Themes › Bildgrößen</em>, editieren eine Bildgröße und klicken auf <em>Neues Bildgrößen-Media-Query</em>. Dort können Sie ein beliebiges CSS-Media-Query angeben wie z. B. <code>(max-width: 600px)</code>, <code>(orientation: portrait)</code> oder <code>print</code> und zugehörige Größeneinstellungen definieren.</p>

<p>Dabei gilt es die Reihenfolge der Media-Queries zu beachten, denn der Browser geht diese Liste von oben nach unten durch und nimmt den ersten Eintrag mit passendem Media-Query. Wenn keines der Media-Queries zutrifft, werden die Haupteinstellungen der Bildgröße verwendet. Die komplette Konfiguration einer Bildgröße mit „Art Direction“ könnte folgendermaßen aussehen:</p>

<ul>
<li>Bildgröße 1000x200, Exaktes Format, 0% Zoom

<ul>
<li>Media-Query <code>(max-width: 600px)</code> 600x300, Exaktes Format, 100% Zoom</li>
<li>Media-Query <code>(max-width: 900px)</code> 900x350, Exaktes Format, 50% Zoom</li>
</ul></li>
</ul>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/09-contao-blog-responsive-images/image-size-settings.png?61ec" alt=""></div>

<h2>Browser-Unterstützung und Polyfill</h2>

<p>Die Browser-Unterstützung für Responsive Images <a href="http://caniuse.com/#feat=srcset" target="_blank">ohne Art-Direction</a> und <a href="http://caniuse.com/#feat=picture" target="_blank">mit Art-Direction</a> ist noch nicht sehr weit fortgeschritten, man kann das Feature jedoch mit JavaScript nachrüsten. In Contao ist standardmäßig ein Script enthalten, das nur aktiviert werden muss.</p>

<h3>Den JavaScript-Polyfill aktivieren</h3>

<p>Navigieren Sie zu den <em>Layouteinstellungen</em> unter <em>Layout › Themes › Seitenlayouts</em> im Bereich <em>Responsive Bilder</em> und aktiveren den Punkt <em>Das Image-Polyfill laden</em>. Der Image-Polyfill ist optional, denn Browser die <code>&lt;picture&gt;</code> oder <code>srcset</code> nicht verstehen, ignorieren diese Angaben einfach und laden die Standardgröße des Bildes.</p>

<h2>Performance</h2>

<p>Da Contao jede Variante eines Bildes erstellen und abspeichern muss, sollte man für die <strong>Server-Performance</strong> bei kleinen Webhosting-Paketen darauf achten, nicht zu viele Varianten einzustellen. Denn für jede eingestellte Pixeldichte und für jeden Media-Query berechnet Contao ein eigenes Bild und speichert es auf dem Webserver.</p>

<p>Für die <strong>Performance im Browser</strong> sollte beachtet werden, dass es bei aktiviertem Image-Polyfill vorkommen kann, dass zwei Server-Abfragen für ein Bild ausgeführt werden müssen. Einmal für die Standard-Variante und ein zweites Mal für die „richtige“ Variante des Bildes. Um das zu verhindern, sollten Sie die Standardgröße so wählen, dass sie für die meisten Besucher bereits passt. Wenn eine Website z. B. hauptsächlich in mobilen Browsern aufgerufen wird, sollten die Standardgrößen darauf ausgerichtet sein.</p>

<h2>Fazit</h2>

<p>Administratoren bzw. Designer können ab Contao 3.4 umfangreiche Einstellungen für die Bildgrößen vornehmen. Der Workflow für Redakteure hat sich gleichzeitig vereinfacht: Bild hochladen, bedeutenden Bereich auswählen, Bild einfügen und vordefinierte Größe auswählen. Fertig.</p>

<p>Alle RockSolid Themes und Erweiterungen setzen ab sofort standardmäßig auf Responsive Images. Mit unserem <a href="https://rocksolidthemes.com/de/contao/themes/opensauce">Free Theme Open Sauce</a> können Sie die beschriebenen Punkte einfach nachvollziehen, sehen Sie sich dafür die Bildgrößen <em>Slider</em> und <em>Tagline</em> genauer an.</p>

<h2>Dank</h2>

<p>Es war sehr spannend für mich, an diesem wichtigen neuen Contao-Feature mitzuarbeiten. Ich möchte mich bei <a href="https://github.com/Toflar" target="_blank">Yanick Witschi</a> für seine Unterstützung und bei der gesamten Contao-Community für das rege Interesse an dem Thema bedanken. Ich freue mich darauf bald mehr (Contao-)Websites mit Responsive Images zu sehen.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Wed, 12 Nov 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Erfahren Sie, wie Sie Templates und Module Multi-Language-Ready machen und wie Sie Standard-Übersetzungen von Contao Ihren Wünschen entsprechend anpassen können.</p>

<p>Dieser Artikel ist Teil einer Serie.</p>

<ol>
<li>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/mehrsprachige-website">Mehrsprachige Contao-Websites erfolgreich planen und umsetzen</a></li>
<li>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language">Multi-Language Websites mit Contao erstellen und verwalten – so klappt es!</a></li>
<li><strong>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language-templates">Experten-Tipps für mehrsprachige Contao-Installationen</a></strong></li>
</ol>

<h2>Core-Übersetzungen anpassen und globale Labels definieren</h2>

<p>Die deutschsprachigen Standardübersetzungen finden Sie in den Übersetzungsdateien im Ordner <em>system/modules/core/languages/de</em>. Sie können die Dateien mit jedem Browser öffnen um die IDs der Texte zu finden, die Sie anpassen möchten.</p>

<p>Updatesicher überschreiben können Sie die Texte in dem Sie die Datei <em>system/config/langconfig.php</em> anlegen, die Datei wird, sobald sie existiert, automatisch von Contao geladen. Darin können Sie eigene globale verfügbare Textbausteine (Labels) definieren und zusätzlich die Standardübersetzungen von Contao und von Third-Party-Erweiterungen überschreiben bzw. anpassen.</p>

<h4>Beispiel für das Anpassen des häufig verwendeten Zurücklinks</h4>

<pre class="php"><code>// Die Bezeichnung in allen Sprachen ändern
$GLOBALS[&#039;TL_LANG&#039;][&#039;MSC&#039;][&#039;goBack&#039;] = &#039;«&#039;;

// Die Bezeichnung in einer bestimmten Sprache ändern
if ($GLOBALS[&#039;TL_LANGUAGE&#039;] == &#039;de&#039;) {
    $GLOBALS[&#039;TL_LANG&#039;][&#039;MSC&#039;][&#039;goBack&#039;] = &#039;Zurück zur Übersicht&#039;;
}
elseif ($GLOBALS[&#039;TL_LANGUAGE&#039;] == &#039;en&#039;) {
    $GLOBALS[&#039;TL_LANG&#039;][&#039;MSC&#039;][&#039;goBack&#039;] = &#039;Back to overview&#039;;
}</code></pre>

<p>Der Text für den Zurücklink aus dem Beispiel kommt aus der Datei <em>default.xlf</em> und hat die ID <em>MSC.goBack</em>, er kann daher mit <em>['MSC']['goBack']</em> über das Language-Array angesprochen werden.</p>

<p>Die Sprachdateien sind derzeit noch nicht durchgängig benannt, so heißen die meisten Sprachdateien nach der jeweiligen Datenbanktabelle, einige weichen jedoch von diesem Schema ab. Die Datei <em>default.xlf</em> ist z. B. ein Sammelsurium verschiedenster Texte, die an diversen Stellen in Contao zum Einsatz kommen und daher eine gute erste Anlaufstelle für viele Texte, die im Frontend ausgegeben werden.</p>

<p>Erweiterungen für Übersetzungen meist eine <em>default.php</em> in ihrem <em>language</em>-Ordner im Verzeichnis der Erweiterung unter <em>system/modules</em> ab.</p>

<h3 id="label-inserttag">Der Label-Inserttag</h3>

<p>Der Label-Inserttag wird mit den Übersetzungen aus den Sprachdateien des Contao-Core bzw. der installierten Erweiterungen und den Texten, die Sie in der <em>langconfig.php</em> individuell festlegen können ersetzt.</p>

<pre class="php"><code>// Beispieldefinition in der langconfig.php
$GLOBALS[&#039;TL_LANG&#039;][&#039;meinbereich&#039;][&#039;mein_label_1&#039;] = &#039;Mein Label 1&#039;;

// Beispiel für die Ausgabe des Labels
{{label::meinbereich:mein_label_1}}
// Ausgabe: Mein Label 1

// Beispiel für die Ausgabe eines Core-Textes aus der Datei default.xlf
{{label::PTY:error_404:0}}
// Ausgabe: 404 Seite nicht gefunden</code></pre>

<div class="highlight-box icon-info">

<p>Lassen Sie sich nicht von kryptischen Abkürzungen wie <em>{{label::CNT:au}}</em> oder <em>{{label::tl_article:title:0}}</em> irritieren. Trifft der erste Teil nicht auf einen Dateinamen im Core- oder Erweiterungs-Ordner zu, findet sich der Text dazu meist in der Datei <em>default.xlf</em> oder <em>.php</em>.</p>

<p>„CNT“ soll im Beispiel aus der Contao-Dokumentation für „Country“ stehen und der Text dazu findet sich in der Datei <em>countries.xlf</em>.</p>

</div>

<h2 id="templates-anpassen">Mehrsprachige Contao-Templates</h2>

<p>Bevor Sie PHP-Logik einsetzen um zwischen verschiedenen Inhalten in den Templates zu unterscheiden, sollten Sie versuchen, Texte, die in den Templates stehen müssen, mit Hilfe der global definierten Textelemente zu übersetzen – wie oben beschrieben.</p>

<h4>Beispiel für in der langconfig.php global gespeicherte Texte</h4>

<pre class="php"><code>// Eigene globale Texte
if ($GLOBALS[&#039;TL_LANGUAGE&#039;] == &#039;de&#039;) {
    $GLOBALS[&#039;TL_LANG&#039;][&#039;meinbereich&#039;][&#039;mein_label_1&#039;] = &#039;Mein Label 1&#039;;
}
elseif ($GLOBALS[&#039;TL_LANGUAGE&#039;] == &#039;en&#039;) {
    $GLOBALS[&#039;TL_LANG&#039;][&#039;meinbereich&#039;][&#039;mein_label_1&#039;] = &#039;My Label 1&#039;;
}</code></pre>

<h4>Ausgabe eines global definierten Labels in einem Template</h4>

<pre class="php"><code>&lt;h1&gt;&lt;?php echo $GLOBALS[&#039;TL_LANG&#039;][&#039;meinbereich&#039;][&#039;mein_label_1&#039;]; ?&gt;&lt;/h1&gt;</code></pre>

<div class="highlight-box icon-tip">

<p><strong>Tipp:</strong> Teilen Sie Ihre Übersetzungen nach dem Schema <em>['meinbereich']['mein_label_1']</em> auf, auch dann wenn Sie alle Übersetzungen zusammen in der langconfig.php speichern. So können sie die Texte später bei Bedarf leichter auftrennen.</p>

</div>

<p>Wenn in manchen Ihrer Sprachen Änderungen an den Templates notwenig sind, können Sie zusätzlich mit PHP-Logik auf die aktive Sprache prüfen und Änderungen vornehmen (z. B. wenn Teile des Templates nicht in allen Sprachen benötigt werden).</p>

<h4>Beispiel für PHP-Logik im Template</h4>

<pre class="php"><code>&lt;?php if($GLOBALS[&#039;TL_LANGUAGE&#039;] == &#039;en&#039;): ?&gt;
    &lt;!-- English Content --&gt;
&lt;?php elseif($GLOBALS[&#039;TL_LANGUAGE&#039;] == &#039;de&#039;): ?&gt;
    &lt;!-- Deutscher Inhalt --&gt;
&lt;?php endif; ?&gt;</code></pre>

<h2>RockSolid Custom Elements übersetzen</h2>

<p>Mit den RockSolid Custom Elements können Sie eigene Inhaltselemente erstellen, die exakt auf Ihren und den Bedarf Ihrer Redakteure abgestimmt sind. So können Sie z. B. eine Kombination aus Titel, Bild und Kurztext in einem einzigen Element speichern um WYSIWYG-Chaos auf Team-Seiten und bei vielen weiteren komplexeren Inhalten zu vermeiden.</p>

<p>Die Feldbezeichnungen und Feldbeschreibungen der Custom Elements lassen sich im Backend einfach übersetzen. Öffnen Sie die Config-Datei des jeweiligen Elementes und tragen Sie die mehrsprachigen Texte nach dem folgenden Schema ein:</p>

<pre class="php"><code>&#039;label&#039; =&gt; array(
    &#039;en&#039; =&gt; array(&#039;Field Name&#039;, &#039;Description&#039;),
    &#039;de&#039; =&gt; array(&#039;Feldname&#039;, &#039;Beschreibung&#039;),
),</code></pre>

<p>Allgemeine Informationen dazu, wie Sie eigene Inhaltselemente anlegen können, finden Sie in der Dokumentation der <a href="https://rocksolidthemes.com/de/contao/plugins/custom-content-elements/dokumentation">Custom Elements</a>.</p>

<div class="highlight-box icon-info">

<p>Was das Frontend betrifft sind keine Anpassungen Ihrer Custom Elements nötig – Sie fügen die Elemente in den Sprachversionen einfach wie gewohnt mit den übersetzten Inhalten ein.</p>

</div>

<h2>Layout, CSS und Schriften</h2>

<h3>Layout-Änderungen einkalkulieren</h3>

<p>Denken Sie daran, dass sich die Textlängen sowohl von Menüpunkten als auch von Fließtexten, je nach Sprache und Stil des Übersetzers, recht deutlich unterscheiden können. Es ist daher wichtig möglichst keine Texte in Grafiken und Bildern zu speichern, sondern Buttons und Interface-Elemente mit Hilfe von CSS3 aufzubauen.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/08-contao-blog-multi-language-part-3/navigation-example.png?2626" alt=""><p>Die Länge der Menüpunkte und Texte kann je nach Sprache und Stil der Übersetzung deutlich variieren, beim Theme Open Sauce passt sich die Navigation problemlos an.</p></div>

<p>Bei Sprachen, die von rechts nach links gelesen werden wie z. B. Arabisch, sollten Sie schon im Vorfeld daran denken, dass sich sowohl die Textausrichtung als auch die Anordnung des Layouts umkehren. <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language-templates#schreibrichtung">Mehr dazu</a>.</p>

<h3>Multi-Language Schriften</h3>

<p>Nicht jede Schrift unterstützt alle für Fremdsprachen benötigten Zeichen. Systemschriften, die einen erweiterten Zeichensatz unterstützen sollen wie z. B. Arial Cyrillic müssen oft nachinstalliert werden, sind jedoch nicht zwangsläufig frei verfügbar. Webfonts, die für den internationalen Einsatz gemacht sind deshalb möglicherweise einfacher zu handhaben. Hochwertige Free-Fonts und Schriften für den Corporate-Einsatz unterstützen zumindest den Latin-1 Zeichensatz, der die westeuropäischen Sprachen wie Englisch, Deutsch, Italienisch, Französisch etc. abdeckt.</p>

<p>Für Sprachen wie Kroatisch, Ungarisch, Polnisch oder Türkisch kann es bei manchen Schriften, gerade für den Headline- und Title-Einsatz, für einzelne Zeichen bereits spannend werden. Und wer auf Kyrillisch, Griechisch, Chinesisch, Japanisch, Arabisch etc. übersetzen möchte muss sich die verwendeten Schriften besonders gezielt aussuchen.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/08-contao-blog-multi-language-part-3/noto-example.png?db63" alt=""><p>Das Schriftprojekt Noto strebt eine vollständige Unterstützung des Unicode-Zeichensatzes an.</p></div>

<p>Die meisten Font-Bibliotheken bieten deshalb eine Möglichkeit nach Sprachunterstützung zu filtern (z. B. auch <a href="https://www.google.com/fonts">Google Fonts</a> und <a href="http://www.fontsquirrel.com">Font Squirrel</a>).</p>

<p>Free-Fonts die von internationalen Unternehmen verwendet, gesponsert oder vorangetrieben verwendet werden bieten oft besonders umfangreiche Zeichensätze, bei denen die nicht-lateinischen Glyphen in Anmutung und Ausrichtung den lateinischen gut entsprechen. Dazu zählen z. B. Droid, Open Sans, Roboto, Ubuntu, Fira Sans und Source Sans Pro.</p>

<p>Besonders breite Abdeckung strebt das <a href="http://www.google.com/get/noto/">Schriftprojekt Noto</a> von Google an, das von der Droid-Schriftfamilie abgespalten wurde. Zukünftig soll der gesamte Unicode-6.2-Raum abgedeckt werden (110.182 Zeichen). Vereinfachtes und traditionelles Chinesisch, Japanisch und Koreanisch sind bereits Teil der Zeichensammlung.</p>

<p><strong>Zur Technik:</strong> Empfehlenswert ist die Schrift mit dem jeweiligen erweiterten Zeichensatz erst dann zu laden, wenn sie benötigt wird. Zusätzlich benötigen arabische bzw. asiatische Zeichen oft einen größeren Schriftgrad um die gleiche optische Größe zu erreichen und für einen ähnlichen Grauwert auf der Seite zu sorgen.</p>

<p>Um den Schriftgrad sprachabhängig zu vergrößern, können Sie via CSS direkt den HTML-Tag ansprechen oder eine eigene Klasse vergeben. Beispiel:</p>

<pre class="template"><code>&lt;html lang=&quot;zh&quot;&gt;
    &lt;body class=&quot;chinese&quot;&gt;</code></pre>

<pre class="css"><code>:lang(zh), .chinese {
    font-size: 125%;
}</code></pre>

<h2>Mehrere Sprachen auf einer Seite</h2>

<p>Gibt es einzelne Seiten auf denen sich Inhalte in verschiedenen Sprachen befinden (z. B. mehrsprachige Einstiegsseiten, Zitate) oder falls Sie auf allen Seiten zweisprachige Inhalte parallel anzeigen möchten, weil z. B. nur kurze Beschreibungstexte nötig sind (etwa für ein Fotografie-Portfolio), können Sie die Sprache auch innerhalb der Seite definieren. Das sorgt für die richtige Aussprache für blinde Benutzer, die auf einen Screenreader angewiesen sind.</p>

<p>Contao bietet für einzelne Wörter oder Sätze einen eigenen Inserttag <em>{{lang::&#42;}}</em>:</p>

<pre class="php"><code>{{lang::fr}}Au revoir{{lang}}

// Wird zu
&lt;span lang=&quot;fr&quot; xml:lang=&quot;fr&quot;&gt;Au revoir&lt;/span&gt;</code></pre>

<p>Sind ganze Seitenteile in einer anderen Sprache lassen sich diese wie folgt auszeichnen:</p>

<pre class="html"><code>&lt;blockquote lang=&quot;fr&quot;&gt;
    &lt;p&gt;Il n&#039;est rien de réel que le rêve et l&#039;amour.&lt;/p&gt;
&lt;/blockquote&gt;</code></pre>

<p>Die Sprache einer verlinkten Seite lässt sich mit dem Attribut <em>hreflang</em> angeben:</p>

<pre class="html"><code>&lt;!-- Französischer Inhalt, deutscher Linktext --&gt;
&lt;a href=&quot;&quot; hreflang=&quot;fr&quot;&gt;Französische Seite&lt;/a&gt;

&lt;!-- Französischer Inhalt und Linktext --&gt;
&lt;a href=&quot;&quot; lang=&quot;fr&quot; hreflang=&quot;fr&quot;&gt;Page français&lt;/a&gt;</code></pre>

<p>Sind die Inhalte auf einer Seite gleichmäßig verteilt, sollten Sie das Sprachattribut entweder vom HTML-Tag entfernen oder auf die „Hauptsprache“ z. B. Englisch setzen <code>&lt;html lang="en"&gt;</code>. Die Sprache der Inhalte kann dann auf der Seite wie bereits gezeigt gekennzeichnet werden:</p>

<pre class="html"><code>&lt;div lang=&quot;de&quot; xml:lang=&quot;de&quot;&gt;
    Deutscher Inhalt
&lt;/div&gt;
&lt;div lang=&quot;en&quot; xml:lang=&quot;en&quot;&gt;
    English content
&lt;/div&gt;</code></pre>

<div class="content-image "><a href="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/08-contao-blog-multi-language-part-3/hostel-64-example.jpg?c2f9" target="_blank"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/08-contao-blog-multi-language-part-3/hostel-64-example-small.jpg?57fa" alt=""><p>Beispiel der Seite hostel64.com mit Englisch und Japanisch jeweils auf der selben Seite.</p></a></div>

<div class="highlight-box icon-info">

<p>Zum Thema SEO für Seiten mit mehreren Sprachen pro Seite gibt es ein kurzes <a href="https://www.youtube.com/watch?v=FPiALaxDr6E">Statement von Matt Cutts</a>. Kurzfassung: Google versucht die Inhalte so gut es geht zu trennen und ein sinnvolles Ranking zu erstellen, wenn möglich werden jedoch getrennte Sprachversionen empfohlen.</p>

<p><strong>Fazit:</strong> Gibt es genügend Inhalte für getrennte Sprachversionen ist diese Variante klar vorzuziehen. Erstellen Sie z. B. ein Portfolio für einen Fotografen oder eine One-Page-Produktseite mit kurzen Beschreibungstexten, kann grundsätzlich auch die Variante mit zwei Sprachen auf einer Seite funktionieren und lässt sich u. U. einfacher umsetzen und pflegen. Das <em>lang</em>-Attribut wird von den „großen“ Suchmaschinen nicht verwendet.</p>

</div>

<h2 id="encoding">Encoding und Schreibrichtung</h2>

<h3>UTF-8-Kodierung explizit angeben</h3>

<p>Egal ob ein- oder mehrsprachig, Sie sollten Ihre Website als UTF-8 kodiert ausliefern. Der De-facto-Standard wird von Contao bereits zur Speicherung der Daten verwendet, daher werden wir nicht näher darauf eingehen. Damit die Ausgabe korrekt funktioniert, kontrollieren Sie nur, ob sich nachfolgende Meta-Tags im Template befinden und fügen sie bei Bedarf ein.</p>

<p>HTML4 (veraltet):</p>

<pre class="html"><code>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=UTF-8&quot;&gt;</code></pre>

<p>HTML5 und standard in allen RockSolid Themes:</p>

<pre class="html"><code>&lt;meta charset=&quot;UTF-8&quot;&gt;</code></pre>

<h3 id="schreibrichtung">Umgekehrte Schreibrichtung beachten</h3>

<p>Für von rechts nach links geschriebene Sprachen wie z. B. Arabisch, Hebräisch oder Urdu sollte das <em>dir</em>-Attribut (Direction) des HTML-Tags auf <em>rtl</em> (right-to-left) gesetzt werden.</p>

<pre class="html"><code>&lt;html dir=&quot;rtl&quot;&gt;</code></pre>

<p>Zusätzlich wird die Ausrichtung des Textes via CSS <em>text-align</em> auf <em>right</em> gesetzt.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/08-contao-blog-multi-language-part-3/du-example.jpg?0f36" alt=""><p>Beispiel der Seite des arabischen Providers »du« mit geänderter Textausrichtung und horizontal umgekehrtem Layout – inklusive kleiner Unachtsamkeiten.</p></div>

<p>Beachten Sie, dass die Sakkaden (Augenbewegung) von Menschen die von rechts nach links lesen allgemein genau umgekehrt verlaufen – wichtige Elemente wie Logo, Navigation etc. sollten also ebenfalls die Seite wechseln. Das übliche f-förmige Lesemuster ist, statt von links nach rechts und von oben nach unten, genau invertiert wie eine Studie der <a href="http://www.nngroup.com/articles/international-usability-details-differ">Nielsen Normal Group</a> zeigt. Allgemeine Usability-Richtlinien haben der Untersuchung zufolge internationale Gültigkeit – müssen jedoch teilweise seitenverkehrt angewendet werden.</p>

<blockquote>
  <p>User testing on 3 continents confirmed that the main usability guidelines hold worldwide, but many other considerations exist to better support international users. <em>– Jakob Nielsen</em></p>
</blockquote>

<div class="highlight-box icon-tip">

<p>Denken Sie daran, dass z. B. auch Grafiken mit Vorher-Nachher-Vergleichen, die das Endergebnis rechts zeigen umgekehrt werden müssen, damit sich die Aussage nicht verändert.</p>

</div>

<p><strong>Fazit:</strong> Rechnen Sie ausreichend Zeit für Right-to-Left-Sprachversionen ein. Angefangen vom WYSIWYG-Editor über Erweiterungen, die Probleme machen können, warten garantiert einige Überraschungen auf Sie. Darüber hinaus müssen Layout und Inhalt horizontal umgekehrt werden – also unter anderem auch Abstände, Rahmen und Bilder.</p>

<p>Am besten sollten Sie eine Right-to-Left-Sprachversion deshalb schon vorher einplanen um Floats und Ausrichtung möglichst flexibel zu halten oder um z. B. besonders häufig mit <em>display: inline-block</em> zu arbeiten, damit auch Boxen und Container von der geänderten Textrichtung direkt betroffen sind.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Wed, 12 Nov 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Installtool-Passwort nicht aufgeschrieben oder eine Contao-Installation übernommen und das Passwort ist vergessen?</p>

<p>Öffnen Sie die Datei <em>system/config/localconfig.php</em> und löschen folgende Zeile:</p>

<pre class="php"><code>$GLOBALS[&#039;TL_CONFIG&#039;][&#039;installPassword&#039;] = &#039;xxxxx&#039;;</code></pre>

<p>Danach können Sie <em>/contao/install.php</em> im Browser aufrufen und ein neues Passwort vergeben.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Thu, 09 Oct 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Contao bietet standardmäßig viele Möglichkeiten um Websites zu übersetzen und Ihre Inhalte mehrsprachig anzubieten. Mit Hilfe dieser Schritt-für-Schritt-Anleitung können Sie in wenigen Minuten mit dem Übersetzung Ihrer Inhalte beginnen.</p>

<p>Dieser Artikel ist Teil einer Serie.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/multi-language-illustration-2.svg?4eba" alt=""></div>

<ol>
<li>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/mehrsprachige-website">Mehrsprachige Contao-Websites erfolgreich planen und umsetzen</a></li>
<li><strong>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language">Multi-Language Websites mit Contao erstellen und verwalten – so klappt es!</a></strong></li>
<li>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language-templates">Experten-Tipps für mehrsprachige Contao-Installationen</a></li>
</ol>

<h2><em>Tl;dr:</em> In 5 Minuten zur mehrsprachigen Contao-Website</h2>

<p>Um Ihre Website mit Contao mehrsprachig zu machen sind grundsätzlich <strong>keine Erweiterungen nötig</strong>. Wie Sie Ihre Seite in nur fünf Minuten mehrsprachig machen, erfahren Sie in der nachfolgenden Kurzanleitung. Die Schritte funktioniert mit jedem RockSolid Theme und Themes, die den Contao-Standards folgen.</p>

<h3><em>1. Schritt:</em> .htaccess.default in .htaccess umbenennen bzw. falls bereits geschehen die Weiterleitungen aktivieren (standardmäßig bereits aktiv)</h3>

<p>Benennen Sie die Datei <em>.htaccess.default</em> im Hauptverzeichnis Ihrer Contao-Installation in <em>.htaccess</em> um – falls noch nicht geschehen.</p>

<p>Sollten Sie die Weiterleitungen am Ende der Datei gelöscht oder auskommentiert haben, stellen Sie die Zeilen wieder her. Davor sollten Sie gegebenenfalls überprüfen welchen Grund das Entfernen ursprünglich hatte, damit es nicht zu Problemen kommt.</p>

<h3><em>2. Schritt:</em> Navigieren Sie zu: System › Einstellungen</h3>

<ol>
<li><em>URLs umschreiben</em> aktivieren</li>
<li>Wenn gewünscht: <em>Die Sprache zur URL hinzufügen</em> aktivieren</li>
</ol>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/system-settings.png?4f84" alt=""></div>

<div class="highlight-box icon-tip">

<p>Haben Sie die Option <em>Die Sprache zur URL hinzufügen</em> aktiviert können die Seiten in den Sprachversionen den selben Alias haben. Praktisch z. B. bei <em>/de/home</em> und <em>/en/home</em> oder für Produktbezeichnungen wie <em>/de/myproduct-XL700</em>.</p>

</div>

<h3><em>3. Schritt:</em> Den Seitenbaum duplizieren</h3>

<p>Den Seitenbaum duplizieren, umbenennen und ggf. den <em>Sprachen-Fallback</em> aktivieren. Auf die Fallback-Sprache werden alle Benutzer geleitet, für deren Browser-Spracheinstellung sie keine eigene Sprachversion anbieten.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/page-settings.png?349d" alt=""><p>Beispiel zum Sprachen-Fallback: Bei Deutsch-Englisch würden Sie z. B. Englisch als Fallback-Sprache wählen, wenn Sie schon derzeit viele internationale Besucher auf Ihrer Seite haben, die zukünftig automatisch auf die englischen Version weitergeleitet werden sollen. Nur Besucher mit deutschen Spracheinstellungen würden so auf der deutschsprachigen Seite landen.</p></div>

<div class="highlight-box icon-tip">

<p><strong>Praxistipp:</strong> Benennen Sie die einzelnen Seiten erst um wenn alles andere erledigt ist, so können Sie während des übersetzens, deutlich schneller und leichter durch die Seite navigieren. Das gilt besonders für Sprachen, die Sie selbst nicht sprechen.</p>

</div>

<h3><em>4. Schritt:</em> Seiten, Inhalte und Module anpassen</h3>

<p><strong>Inhalte anpassen:</strong> Das Anpassen der Inhalte, die sich in Artikeln befinden, funktioniert, wie Sie es erwarten. Öffnen Sie die jeweiligen Seiten bzw. Artikel des neu entstandenen Seitenbaums und passen Sie dort die Titel, Aliase (= URL) und Inhalte an.</p>

<p><strong>Module anpassen:</strong> Mit Hilfe der <a href="https://docs.contao.org/books/manual/3.5/de/04-inhalte-verwalten/inserttags.html" target="_blank">Inserttags</a> können Sie Inhalte in Modulen sprachspezifisch anpassen und sparen es sich so viele Module für jede Sprache anlegen zu müssen. Statt die Module für jede Sprache zu duplizieren nutzen Sie folgende Inserttags:</p>

<pre class="php"><code>// Verschwindet gänzlich wenn die Sprache nicht &#039;en&#039; oder &#039;de&#039; ist
{{iflng::en}}Your name{{iflng::de}}Ihr Name{{iflng}}

// Zeigt in der deutschen Sprachversion den deutschen Inhalt und für alle anderen den Fallback
{{ifnlng::de}}Your name{{ifnlng}}{{iflng::de}}Ihr Name{{iflng}}</code></pre>

<div class="highlight-box icon-info">

<p><strong>Mehrere Sprachen</strong> können sowohl bei <code>iflng</code> als auch bei <code>ifnlng</code> mit Komma getrennt angegeben werden z. B. <code>{{ifnlng::de,fr}}Your name{{ifnlng}}</code>.</p>

</div>

<p>Module wie Nachrichtenliste, Nachrichtenleser, FAQ-Liste etc. müssen für jede Sprache dupliziert werden um die jeweils richtige Inhaltsquelle (z. B. News-Archiv) wählen zu können.</p>

<div class="highlight-box icon-tip">

<p><strong>Praxistipp:</strong> Damit Module übersichtlich nach Sprache gruppiert werden, können Sie dem Namen ein Kürzel voranstellen z. B. <code>DE - News List</code>. Das Präfix hat technisch keine Auswirkung und dient allein der Übersicht.</p>

</div>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/module-example.png?d692" alt=""><p>Beispiel für News-Module mit Sprachpräfix und ein Navigationspfadmodul, das in allen Sprachen zum Einsatz kommt, weil die Überschrift innerhalb des Moduls mit Inserttags übersetzt wurde - siehe oben.</p></div>

<p>Denken Sie daran, dass Sie Inserttags auch verschachteln können, um z. B. verschiedene Artikel zu laden oder andere Unterscheidungen zu treffen.</p>

<h4>Beispiel: Artikel/Inhalte sprachabhängig laden</h4>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/iflang-example.png?eee0" alt=""></div>

<pre class="php"><code>{{iflng::en}}
    {{insert_article::21}}
{{iflng::de}}
    {{insert_article::54}}
{{iflng}}</code></pre>

<h4>Beispiel: Datum sprachabhängig ausgeben</h4>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/iflang-example-2.png?0088" alt=""></div>

<pre class="php"><code>{{iflng::en}}
    Today&#039;s date is {{date::m/d/Y}}
{{ifnlng::en}}
    Heute ist der {{date::d.m.Y}}
{{iflng}}.</code></pre>

<h4>Beispiel: Iflang innerhalb einer Überschrift einsetzen</h4>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/06-contao-blog-multi-language-part-2/iflang-example-3.png?a400" alt=""></div>

<p>Das Beispiel zeigt deutlich, dass Inserttags innerhalb von Contao praktisch überall funktionieren. Genau das macht sie für Übersetzungen sehr hilfreich.</p>

<p><strong>Optional:</strong> Haben Sie eigene Templates, die Texte enthalten oder möchten Teile von Templates in einer Sprache entfernen bzw. anpassen können Sie dies mit PHP-Logik tun. Mehr dazu im dritten Teil der Artikelserie.</p>

<h3><em>5. Schritt:</em> Sprachversion verlinken</h3>

<p>Setzen Sie an der gewünschten Stelle in Ihrem Layout einen Link auf die neue Übersetzung. Zum Beispiel die Startseite der englischen Version.</p>

<h3><em>Optional:</em> Sprach- und Newswechsler</h3>

<p>Anstatt den Startpunkt der verschiedenen Sprachversionen manuell zu verlinken, entscheiden sich manche Webmaster dazu die Erweiterung <a href="https://contao.org/de/erweiterungsliste/view/changelanguage.de.html" target="_blank">[changelanguage]</a> zu installieren um beim Umschalten der Sprache jeweils wieder auf der richtigen Seite zu landen, sofern die Seite in der Übersetzung existiert.</p>

<p><strong>So funktionierts:</strong> Der Sprachwechsler fügt allen Seiten ein Feld hinzu, das es Ihnen erlaubt die jeweilige Übersetzung zuzuordnen. Haben Sie die Verknüpfung getroffen, können Sie das Modul „Sprachwechsler“ an einer beliebigen Stelle in Ihren Layouts einfügen um zwischen den Sprachen zu wechseln.</p>

<p>Mit der Erweiterung <a href="https://contao.org/de/erweiterungsliste/view/newslanguage.de.html" target="_blank">[newslanguage]</a> kann in Verbindung mit <a href="https://contao.org/de/erweiterungsliste/view/changelanguage.de.html" target="_blank">[changelanguage]</a> auch zwischen News-Beiträgen in verschiedenen Sprachen gewechselt werden.</p>

<div class="check-list" id="checkliste">

<h2>Checkliste vor dem Onlinegang einer Übersetzung</h2>

<ul>
<li>Die Übersetzung, Seite für Seite, auf Fehler kontrolliert</li>
<li>Unpassende/fehlende Übersetzungen der Erweiterungen korrigieren</li>
<li>Übersetzung von Title, Description und evtl. Meta-Tags hinzugefügt</li>
<li>Verlinkte Dateien und externe Links überprüft und ggf. ersetzt</li>
<li>Eigene (Youtube-)Videos mit Untertiteln oder Audio versehen</li>
<li>Alle Nachrichten-, Event- und FAQ-Module ausgetauscht</li>
<li>Bestätigungs-E-Mails, Danke-Seiten und 404 kontrolliert und übersetzt</li>
<li>Sprachversionen sind korrekt verlinkt</li>
<li>Sprachwahl ist leicht auffindbar und setzt auf Textlinks</li>
</ul>

</div>

<h2><em>Fehler:</em> Häufige Probleme</h2>

<h3>Die Sprachversionen werden nicht verlinkt</h3>

<p>Verlinken Sie die Sprachversionen nicht, kann das dazu führen, dass nicht alle Inhalte korrekt von Suchmaschinen und anderen Bots indiziert werden können.</p>

<h2><em>FAQ:</em> Häufige Fragen</h2>

<h3>Wie kann ich kleine Flaggen zur Sprachwahl mit [Changelanguage] verwenden?</h3>

<p>Flaggen für die Sprachwahl zu verwenden ist, aus <a href="https://rocksolidthemes.com/de/contao/blog/mehrsprachige-website">verschiedenen Gründen</a>, keine Gute Idee. Möchte man es dennoch tun können Sie auf Flaggen-Icons und CSS zurückgreifen. Weitere Informationen und Beispiele dazu finden Sie <a href="https://community.contao.org/de/showthread.php?24299-Keine-Flaggen" target="_blank">im Community-Forum</a>.</p>

<div class="highlight-box icon-info">

<h3>Fragen &amp; Feedback</h3>

<p>Nutzen Sie unsere <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language#twitter-comments">Twitter-Wall</a> für Ihr Feedback und offene Fragen zum Thema Mehrsprachigkeit und Contao. <strong>Wir bemühen uns sämtliche Fragen zu beantworten</strong>. Die interessantesten Fragen nehmen wir, mit Verweis auf den Fragesteller, in die FAQ-Sektion auf.</p>

</div>

<p>Lesen Sie demnächst den dritten Teil der Artikelserie zum Thema: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language-templates">Experten-Tipps für mehrsprachige Contao-Installationen</a>. <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language#newsletter">Tragen Sie sich jetzt in den Newsletter ein</a> und erhalten Sie einmal im Monat wertvolle Inhalte rund um Contao.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Thu, 31 Jul 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Ein mehrsprachige Website kann zu mehr Traffic und internationalem Umsatz führen, aber auch dazu, dass Sie Ressourcen an einer Stelle investieren, die zu mehr Kosten und Arbeit als Erfolg führt. Diese Tipps und Anregungen helfen Ihnen Ihre Website erfolgreich in mehreren Sprachen anzubieten.</p>

<p>Dieser Artikel ist Teil einer Serie.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/05-contao-blog-multi-language-part-1/multi-language-illustration.svg?4b25" alt=""></div>

<ol>
<li><strong>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/mehrsprachige-website">Mehrsprachige Contao-Websites erfolgreich planen und umsetzen</a></strong></li>
<li>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language">Multi-Language Websites mit Contao erstellen und verwalten – so klappt es!</a></li>
<li>Teil: <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language-templates">Experten-Tipps für mehrsprachige Contao-Installationen</a></li>
</ol>

<h2>Wichtige Fragen zu Beginn</h2>

<h3>1. Welche Sprachen bringen Ihnen Erfolg?</h3>

<p>Eine Website zu übersetzen kostet Zeit, Geld und Nerven. Und wie jede andere Marketingmaßnahme muss sich eine neue Sprachversion am Ende rechnen. Werten Sie erst Ihre Zugriffszahlen nach Sprachen und Ländern aus, um realistisch abzuschätzen wie viele neue Besucher bzw. zusätzlichen Absatz die Sprachversion bringen kann.</p>

<p>Um eine informiertere Entscheidung zu treffen, sollte erst einen Teil der Website, etwa die Startseite und/oder einige Hauptpunkte übersetzt werden, so erhalten Sie ein erstes Gefühl für die Auswirkungen der mehrsprachigen Suchmaschinenplatzierungen.</p>

<p>Wenn Sie schnelle Ergebnisse möchten, empfiehlt es sich zusätzlich länder- und sprachspezifische bezahlte Werbung (z. B. AdWords) zu schalten, um Erfahrungen im neuen Markt zu sammeln. Die üblichen Kennzahlen wie Klick- und Absprungrate, Besuchszeit und vor allem Besucherzahl geben Ihnen einen ersten Eindruck des aktuellen Potenzials Ihrer Website im neuen Markt. Zusätzlich können Sie testen welche Keywords und Begriffe in der Zielsprache ankommen.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 1:</strong> Vermeiden Sie es durch Tests im Vorfeld, Ressourcen in eine Übersetzung zu investieren, die am Ende nicht den gewünschten Effekt bringt. Eine legitime Antwort der Analyse kann lauten: Weitere Sprachen sind derzeit noch nicht nötig.</p>

</div>

<h3>2. Schätzen Sie die Kosten und zusätzlich nötigen Ressourcen richtig ein?</h3>

<p>Denken Sie daran, dass jede Änderung am Inhalt fortan übersetzt und mehrmals durchgeführt werden muss, um die verschiedenen Sprachversionen aktuell zu halten.</p>

<p>Ein Beispiel: Sie schaffen neue Inhalte, lassen das Ergebnis übersetzen, oder tun es selbst, und anschließend fügen Sie die Texte mehrmals ein. Nachdem Sie den ursprünglichen Inhalt zwei Wochen später adaptieren, weil Kunden wiederholt Fragen zu einem Punkt hatten, geht das Spiel von neuem los.</p>

<p>Die Preise für die Übersetzung einer einzelnen Seite beginnen zwar schon bei ca. € 5, die Kosten können jedoch rasant steigen, wenn Sie jemanden beauftragen möchten, der a) etwas von der Materie versteht und b) den nötigen Wortschatz mitbringt. Qualität kostet gerade bei Fachübersetzungen schnell Geld.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 2:</strong> Die versteckten Kosten einer Übersetzung sind höher als Sie denken. Wer billig übersetzen lässt, zahlt am Ende meist dreimal: Für die dürftige Übersetzung, den Image- und Ranking-Verlust und anschließend die Nacharbeit durch einen Profi.</p>

</div>

<h3>3. Ist Ihre Dienstleistung bzw. Ihr Produkt bereit für weitere Sprachen?</h3>

<p>Gibt es die Bedienungsanleitung in der neuen Sprache? Erfüllt Ihr Produkt alle Auflagen und Bedingungen um es exportieren zu dürfen? Ist die Logistik bereit zum Versenden ins Ausland? Sind Ihr Team und Sie bereit zum Erbringen Ihrer Dienstleistungen zu reisen?</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 3:</strong> Überprüfen Sie im Vorfeld welche Änderungen an Ihrer Strategie und Ihren Produkten für eine Ausweitung des Marktes nötig sind. Selbst wenn ein neuer Markt immer ein Stück von „Alice im Wunderland“ bedeutet.</p>

</div>

<h3>4. Können Sie mit Kunden kommunizieren, die mit Ihnen in Kontakt treten?</h3>

<p>Eine Sprache lesen und grundsätzlich verstehen zu können, unterscheidet sich stark davon sie zu sprechen und zu schreiben. Sind Sie und Ihr Team bereit dafür <i>professionell</i> mit internationalen Kunden in Kontakt zu treten?</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 4:</strong> Haben Sie mehr als einen Mitarbeiter im Team, der mit Kunden in der Zielsprache professionell, schriftlich und mündlich kommunizieren kann? Reicht Englisch als Überbrückung oder sind weitere Sprachen nötig?</p>

</div>

<h3>5. Sind Sie innerbetrieblich auf Exporte vorbereitet?</h3>

<p>Beispiele: Verkäufe in einer anderen Währung, Umsatzsteuer im EU-Ausland und die damit verbundene „zusammenfassende Meldung“, Ausfuhrzölle etc.</p>

<p>Ein Beispiel für einen Verwaltungsmehraufwand, der durch internationalen Verkauf entsteht: Ab 1.1.2015 müssen auch Dienstleistungen die auf elektronischem Weg erbracht werden wie z. B. E-Books, Webhosting, Software etc. in dem Land versteuert werden, in dem sie erbracht wurden. Verkaufen Sie Ihre Leistung also z. B. von Deutschland nach Österreich müssen 20 % statt 19 % Umsatzsteuer berechnet werden. <a href="http://www.haufe.de/steuern/gesetzgebung-politik/elektronische-dienstleistungen-und-mini-one-stop-shop-ab-2015_168_223538.html" target="_blank">Weitere Informationen dazu</a>.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 5:</strong> Prüfen Sie ob die internen Prozesse und Ihre Buchhaltung bereit für internationale Geschäfte sind und klären Sie, was an zusätzlicher Bürokratie auf Sie zukommen wird.</p>

</div>

<h3>6. Was muss alles übersetzt werden?</h3>

<p>Denken Sie daran, dass oft auch Materialien wie PDFs, Videos und Grafiken übersetzt werden müssen. Genauso wie externe Inhalte und Werbung wie z. B. AdWords, Banner und Partnereinträge.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 6:</strong> Stecken Sie ab welche Inhalte und Texte neben der Website übersetzt werden müssen. Vor allem gerne vergessene „Details“ wie Lieferscheine, Rechnungen und AGB. Denn juristische Texte übersetzen und u. U. an eine andere Rechtslage anpassen zu lassen ist teuer. Die Kammer der jeweiligen Branche bieten häufig Mustertexte für AGB, Widerrufserklärung und dergleichen.</p>

</div>

<h3>7. Reicht eine Übersetzung oder benötigen Sie eher eine Lokalisierung?</h3>

<p>Internationalisierung, Übersetzung, Lokalisierung/Adaptierung – alles eins? Mitnichten.</p>

<p>Eine Internationalisierung wird eher als produktbezogener Schritt verstanden und bedeutet nicht zwingend, dass auch eine Übersetzung nötig ist, etwa für den Verkauf eines deutschen Produktes im gesamten deutschsprachigen Raum. Außerdem wird der Begriff teilweise für das Schaffen der Möglichkeit einer Übersetzung oder Lokalisierung verwendet.</p>

<p>Stark vereinfachtes Beispiel: Eine Internationalisierung wäre es wenn Nutella mit deutschsprachiger Verpackung im DACH-Raum verkauft wird.</p>

<p>Und während eine Übersetzung nur die sinngemäße Wiedergabe eines Inhalts in einer anderen Sprache bedeutet, ginge eine Lokalisierung einen Schritt weiter und würde den Inhalt so anpassen, dass er die gleiche Wirkung erzielt und sich den sprachlichen, regionalen und kulturellen Gegebenheiten des Zielmarktes anpasst. Das kann Stil, numerische Formate, Datum und Zeit sowie Farben und Symbole einschließen.</p>

<p>Fortsetzung des obigen Beispiels: Eine Übersetzung wäre es, wenn Nutella mit mehrsprachiger Verpackung angeboten würde. Und eine Lokalisierung ist es, wenn Nutella auch noch seine Konsistenz anpasst, damit Deutsche ihr Schwarzbrot und Franzosen ihr Baguette perfekt damit schmieren können.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp 7:</strong> Je nachdem wie Stark sich der neue Markt kulturell und sprachlich unterscheidet, müssen Sie unter Umständen weitreichendere Anpassungen bis hin zu ganz neuen Inhalten und Layoutänderungen einplanen.</p>

</div>

<h3>Nun zum spannenden Teil</h3>

<p>Nachdem ich Ihnen alle Lust auf eine Übersetzung bzw. Lokalisierung Ihrer Website genommen habe, kommen wir zum spannenden Teil: Wie stellen Sie es an, wenn Sie sich trotz allem dazu entschieden haben? Und zwar so, dass es reibungslos und effizient klappt.</p>

<h2>Den richtigen Partner für die Übersetzung finden</h2>

<h3>Online-Übersetzungsagenturen</h3>

<p>Die Preise bei den gängigen Online-Übersetzungsbüros gehen von ca. € 40 für 1000 Wörter für die Korrektur einer automatischen Übersetzung (nicht empfehlenswert) bis hin zu ca. € 240 für zertifizierte und professionelle Übersetzungen.</p>

<p>Bei einigen Anbietern wie z. B. <a href="http://www.translated.net/de/">Translated.net</a>, <a href="https://www.24translate.de/">24translate.de</a> und <a href="https://www.easytrans24.com/">easytrans24.com</a> lässt sich das Fachgebiet des Textes manuell angeben. <a href="https://www.tolingo.com/de">Tolingo</a> lässt Sie Branche und Textart in einem zweiten Schritt wählen.</p>

<h4>Die bekanntesten Anbieter für Online-Übersetzungen</h4>

<ul>
<li><a href="https://www.tolingo.com/de">www.tolingo.com</a> – Sehr professionell, aber für kurze Texte wegen des Grundpreises etwas teurer. Große Auswahl an Sprachen. Sitz in Hamburg.</li>
<li><a href="http://www.translated.net/de/">www.translated.net</a> – Viele Sprachen, viele Übersetzer, jedoch ohne DIN EN 15038 Zertifizierung und wegen des Sitzes in Rom, sind als Privatperson 22 % USt. zu bezahlen</li>
<li><a href="https://www.24translate.de/">www.24translate.de</a> – 24Translate versucht mit einer Preis-Leistungs-Garantie und einem 6-Augen-Prinzip besonders hohe Qualität sicherzustellen. Standort Hamburg.</li>
<li><a href="https://www.easytrans24.com/">www.easytrans24.com</a> - Bieten auch Lektorat und Korrektorat bestehender Texte aus vielen Quellformaten. Standort Hamburg.</li>
<li><a href="http://www.lingoking.com/">www.lingoking.com</a> – Wortwiederholungen werden automatisch verrechnet. Weitere Leistungen: Telefondolmetschen und Dolmetschervermittlung. Standort München.</li>
</ul>

<p>Bitte beachten Sie, dass dieser kurze Überblick keinen fairen Vergleich ermöglicht. Wägen Sie daher selbst ab, welcher Service Ihren Anforderungen entspricht oder noch besser: Vergeben Sie erst kleinere Aufträge an verschiedene Anbieter, um herauszufinden mit welchem die Zusammenarbeit am besten klappt, bevor Sie die gesamte Übersetzung beauftragen.</p>

<h3>Lokales Übersetzungsbüro oder Freelancer</h3>

<p>Das nächstgelegene Übersetzungsbüro muss nicht teurer sein als einer der Online-Services. Ein Vorteil ist aber, dass sich freie Übersetzer oder Agenturen bei Bedarf leichter auf Ihren Arbeitsablauf einstellen können – oder es zumindest versuchen. Da die Online-Anbieter hunderte oder eher tausende Aufträge in kurzer Zeit abzuwickeln haben, bleibt weniger Raum für persönliche Sonderwünsche.</p>

<p>Möchten Sie Ihre Übersetzung z. B. direkt innerhalb von Contao abwickeln, ohne die Inhalte zu ex- und importieren lässt sich das Übersetzungsbüro von nebenan leichter überzeugen, als einer der Online-Platzhirsche. Sich zuerst in Ihrer Umgebung umzusehen kann sich also auszahlen.</p>

<p>Im Gegenzug wird es kleinen Büros oder Einzelpersonen schwerer fallen, Ihnen ein Vier- oder gar Sechs-Augen-Prinzip für die direkte Korrektur der Übersetzung anzubieten.</p>

<p>Es liegt bei Ihnen und den Anforderungen Ihres Auftrages ob Ihnen besonders persönliche Betreuung, hohe Standards oder beides gleichermaßen wichtig sind.</p>

<h3>Einen lokalen Partner für die Übersetzung finden</h3>

<p>In der deutsche <a href="http://www.bdue.de/">Bundesverband der Dolmetscher und Übersetzer e.V.</a> bietet eine umfangreiche, durchsuchbare Datenbank an Experten, auch aus Österreich und der Schweiz. Die private Seite <a href="http://www.uebersetzer-verzeichnis.com">uebersetzer-verzeichnis.com</a> umfasst ebenfalls eine große Auswahl an Übersetzern aus Deutschland, macht jedoch starken Gebrauch von bezahlten Anzeigen.</p>

<p><a href="http://www.universitas.org/">UNIVERSITAS</a>, der Berufsverband für Dolmetschen und Übersetzen in Österreich, sowie die <a href="http://www.duev.ch/">Dolmetscher- und Übersetzervereinigung</a> der Schweiz, bieten einen ähnlichen Service.</p>

<p>Achten Sie bei der Auswahl darauf, dass sich der jeweilige Experte mit dem thematischen Schwerpunkt Ihrer Texte wohlfühlt und den Fachjargon beherrscht. Wenn es um eine englische Übersetzung geht, sollten Sie im Idealfall auch darauf achten, ob es sich um einen amerikanischen, britischen oder z. B. australischen Nativespeaker handelt.</p>

<h2>Briefing und Beauftragung</h2>

<p>Wie jeder andere Experte, benötigt auch ein Übersetzer genaue Angaben darüber was Sie erreichen möchten. Investieren Sie daher ausreichend Zeit und Energie in ein detailliertes Briefing.</p>

<div class="highlight-box icon-tip">

<p><strong>Wichtig:</strong> Achten Sie darauf, das Briefing bei den Online-Agenturen, mit automatischer Preisberechnung, nicht gemeinsam mit den Texten hochzuladen, sondern als Nachricht oder E-Mail zu senden.</p>

</div>

<h3>Informationen zu gewünschtem Sprachstil und Ton</h3>

<p>Was soll der Text beim Leser auslösen? Wie lautet die Handlungsaufforderung oder was soll nach dem Lesen zurückbleiben? Für welche Zielgruppe ist der Text bestimmt? Stilistisch flott und ungezwungen oder seriös und besonders sachlich? Welche Art von Website betreiben Sie?</p>

<p>Machen Sie dem Übersetzer klar, mit welchem Hintergrund Sie den Ausgangstext verfasst haben und wen Sie damit ansprechen möchten. Je mehr Informationen Sie geben, desto leichter ist es die bestmögliche Wirkung auch in der Zielsprache zu erreichen.</p>

<h3>Zusätzliche Informationen und Referenzmaterialien</h3>

<p>Wenn Sie Ihre Texte für ein bestimmtes Produkt oder Ihren Shop übersetzen lassen, stellen Sie Produktbilder zur Verfügung. Möchten Sie Interface-Elemente Ihrer Website oder App-Übersetzen lassen, dann fügen Sie Screenshots bei oder geben Zugang zur Originalversion. So kann der Übersetzer einfacher erkennen in welchem Kontext seine Worte stehen werden.</p>

<p>Sind Grafiken oder PDFs zu übersetzen liefern Sie den Inhalt entweder als Rohdaten mit oder stellen die Texte separat zur Verfügung.</p>

<h3>Eigennamen, Unternehmenssprache und Fachbegriffe</h3>

<p>Legen Sie einen Glossar an, wenn Sie Fachwörter oder Teile Ihrer Unternehmenssprache auf bestimmte Weise übersetzt haben möchten. Das gilt auch für No-go-Begriffe oder häufig falsch verwendete Wörter, die Sie keinesfalls im Text haben möchten. Auch nicht alltägliche Abkürzungen sollten erklärt werden, damit sie übersetzt werden können.</p>

<p><strong>Beispiel:</strong> Wir würden z. B. definieren, dass der Begriff „Homepage“ nur verwendet werden darf, wenn tatsächlich die Startseite einer Website gemeint ist. Und „Webseite“ nur, wenn eine einzelne Seite eines Internetauftritts gemeint ist.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp:</strong> Legen Sie eine dreispaltige Excel-Tabelle mit Begriff, gewünschter Übersetzung und optionaler Erklärung an um dem Übersetzer zu ermöglichen sich an Ihre Unternehmens- und Branchensprache zu halten.</p>

</div>

<h3>Nicht zu übersetzende Textteile markieren</h3>

<p>Markieren Sie Textteile, wie z. B. Inserttags oder interne Referenzen wie die URL der Seite deutlich bzw. trennen Sie sie klar vom eigentlichen Inhalt ab.</p>

<h2>Empfehlenswerte Dateiformate für Website-Übersetzungen</h2>

<p>Ein wesentlicher Teil eines effizienten und nervenschonenden Arbeitsablaufes für Übersetzungen ist das gewählte Dateiformat bzw. Medium, das für die Zusammenarbeit mit dem Übersetzer genutzt wird.</p>

<h3>Die üblichen Dateiformate</h3>

<div class="box">

<h4>Textdokumente</h4>

<ul>
<li>Text (.txt)</li>
<li>Rich Text Format (.rtf)</li>
<li>Microsoft Word (.doc, .docx)</li>
<li>OpenOffice (.odt)</li>
</ul>

</div>

<p><strong>Vorteile:</strong> Diese Formate können praktisch von jedem ohne weitere Erklärung geöffnet und bearbeitet werden. Für kleine Seiten und Textmengen geeignet.</p>

<p><strong>Nachteile:</strong> Zwar könnte man die Übersetzungen relativ übersichtlich mit Leerzeilen o.ä. trennen, ein automatischer Import wird jedoch nicht möglich sein. In der Praxis erhalten Sie das übersetzte Dokument, wie es ist, zurück.</p>

<div class="box">

<h4>Tabellenformate</h4>

<ul>
<li>Microsoft Excel (.xls, .xlsx, .csv)</li>
<li>OpenOffice Calc (.ods, .ots)</li>
</ul>

</div>

<p><strong>Vorteile:</strong> Kann praktisch jeder öffnen und ohne weitere Erklärung bearbeiten. Plus: Es ist grundsätzlich ein strukturiertes Dateiformat. Heißt: Der Zusammenhang von Original und Übersetzung ist nicht nur klar (auch bei einzelnen Wörtern und Sätzen), sondern kann bei Bedarf automatisch verarbeitet werden. Für kleine und mittlere Seiten gut geeignet.</p>

<div class="box">

<h4>Online Tabelleneditoren</h4>

<ul>
<li>Google Spreadsheets</li>
<li>Excel Online</li>
</ul>

</div>

<p><strong>Vorteile:</strong> Kann bei kleineren laufenden Anpassungen und Korrekturen leichter aktuell und synchron gehalten werden, das vermeidet Dateinamen wie <em>2014-05_uebersetzung_example_de_final_v4.doc</em>.</p>

<p><strong>Nachteile:</strong> Viele (gerade Teilzeit-) Übersetzer arbeiten häufig offline, was mit beiden Tools zwar grundsätzlich möglich ist, die Skepsis gegenüber einem möglicherweise noch unbekannten Werkzeug jedoch weiter erhöht. Sofern Ihre Texte später online erscheinen ist es vermutlich kein Gegenargument, dass es sich bei beiden Tools um Cloud-Services handelt.</p>

<h3>Gängige Formate professioneller Übersetzer</h3>

<div class="box">

<h4>Diverse strukturierte Textformate</h4>

<ul>
<li>.xlf, .xlif, .xliff</li>
<li>.xml, .html, .yaml</li>
<li>.json</li>
</ul>

</div>

<p>Computer-Aided Translation (CAT) Tools machen es in der Regel möglich Inhalte im Kontext zu sehen und speichern bereits übersetzte Texte im sogenannten Translation Memory zu speichern. Das erleichtert und beschleunigt nicht nur die Übersetzung sondern stellt sicher, dass die gleichen Begriffe konsequent wiederverwendet werden.</p>

<p><strong>Vorteile:</strong> Wenn es Ihnen möglich ist Ihre Inhalte gesammelt in einem strukturierten Textformat zur Verfügung zu stellen, das Ihr Übersetzer direkt mit der CAT-Software seiner Wahl öffnen kann, dann tun Sie es. Denken Sie daran, dass Sie die fertige Übersetzung im Anschluss verarbeiten müssen.</p>

<p><strong>Nachteile:</strong> Wenn Ihre italienische Schwägerin oder der Onkel aus England die Übersetzung vornehmen sollen, werden sie mit diesen Formaten wenig Freude haben. Zwar gibt es einige gute kostenlose Tools, die Lizenzen für die professionellen Standardwerkzeuge kosten jedoch mehrere hundert Euro.</p>

<div class="highlight-box icon-info">

<p>Der Contao-Core und einige größere Erweiterungen setzen statt der PHP-Messagefiles mittlerweile auf XLF-Dokumente.</p>

</div>

<h4>Kostenpflichtige Software</h4>

<ul>
<li><a href="http://www.sdl.com/products/sdl-trados-studio/" target="_blank">SDL Trados</a></li>
<li><a href="http://www.my-across.net/" target="_blank">Across</a></li>
<li><a href="http://kilgray.com/de/produkte/memoq" target="_blank">memoQ</a></li>
<li><a href="http://www.maxprograms.com/products/swordfish.html" target="_blank">Swordfish</a>  </li>
</ul>

<h4>Freie Software</h4>

<ul>
<li><a href="http://www.kde.org/applications/development/lokalize/" target="_blank">Lokalize</a></li>
<li><a href="http://qt-apps.org/content/show.php/Qt+Linguist+Download?content=89360" target="_blank">Qt Linguist</a></li>
<li><a href="http://virtaal.translatehouse.org/" target="_blank">Virtaal</a></li>
<li><a href="http://www.omegat.org/de/omegat.html" target="_blank">OmegaT</a></li>
<li><a href="http://pootle.translatehouse.org/" target="_blank">Pootle</a></li>
</ul>

<h2>Inhalte aus Contao für die Übersetzungen exportieren</h2>

<p>Die derzeit einzige angebotene Lösung, um Inhalte (auch aus News, Events, Formularen und unseren Custom Elements) zum Übersetzen aus Contao zu exportieren und anschließend zu importieren, ist die kommerzielle Erweiterung <a href="http://menatwork.github.io/language-doku/">Language Tools</a>.</p>

<p>Die Erweiterung kostet je nach gewünschtem Exportformat (.csv, .xml, .xliff) zwischen € 350,00 und € 550,00. Nach dem Kauf kann sie für beliebig viele eigene Projekte verwendet werden.</p>

<p>Besonders für Sprachen wie Hebräisch oder Russisch, die für Unkundige keinen Interpretationsspielraum mehr zulassen ist der Ex- und Import eine deutliche Arbeitserleichterung. Ob Sie und Ihr Übersetzungsdienstleister mit den Daten arbeiten können, lässt sich vorab mit den auf der Website der <a href="http://menatwork.github.io/language-doku/">Language Tools</a> zur Verfügung gestellten Demo-Daten überprüfen.</p>

<p><strong>Einschränkung:</strong> Das FAQ-Modul wird zum Zeitpunkt dieses Artikels noch nicht unterstützt, ist jedoch, genauso wie eine Anbindung an MetaModels und Isotope, bereits in Planung.</p>

<p><strong>Fazit:</strong> Wie gut der Export aus Contao mit den <a href="http://menatwork.github.io/language-doku/">Language Tools</a> wirklich funktioniert können wir, ohne die Erweiterung selbst getestet zu haben, nicht beurteilen. Die Behandlung der verschiedenen Module, Inhaltselemente und „losem“ HTML wie Content-Links und Bildern ist für die Entwickler eine große Herausforderung und ganz ohne nachzuarbeiten wird eine Übersetzung auch mit diesem Hilfswerkzeug eher nicht möglich sein.</p>

<h2>Inhalte direkt mit Hilfe des CMS übersetzen</h2>

<p>Die Inhalte direkt „an Ort und Stelle“ zu übersetzen, ist je nach Struktur und Größe der Seite eine effiziente und grundsätzlich einfach zu bewerkstelligende Vorgehensweise – sofern der Übersetzer davon überzeugt werden kann auf ein CAT-Tool zu verzichten.</p>

<p><strong>Vorteile:</strong> Kein hin und her kopieren. Keine durch den Dateitransfer verursachten Reibungsverluste. Content-Links, Bilder und Co. können in einem Arbeitsschritt angepasst werden.</p>

<p><strong>Beachtenswert:</strong> Funktioniert nur für Inhalte, die direkt und leicht erreichbar sind. Alle anderen Textteile müssen separat zur Verfügung gestellt werden, da man es seinem Übersetzer kaum zumuten kann einzelne Module oder gar Templates ausfindig zu machen.</p>

<div class="highlight-box icon-tip">

<p><strong>Tipp:</strong> Der RockSolid Frontend Helper für Contao ermöglicht es, dass der Übersetzer die Website Seite für Seite durchgehen kann und nur den jeweiligen Abschnitt anklicken muss, um ihn zu editieren. So können Module z. B. in der Fußzeile oder Seitenleiste, die für Laien schwierig auffindbar sind, leicht bearbeitet werden.</p>

</div>

<p>Während der Übersetzung noch nicht mehrsprachig verfügbare Inhalte sollten dokumentiert werden um zu verhindern, dass falsche Links und fehlende Videos, Downloads etc. zurückbleiben.</p>

<p>Ist es nicht möglich eine Arbeitskopie der Seite und Datenbank zu erstellen, weil z. B. laufend an der Ausgangssprache gearbeitet wird, sollten zumindest regelmäßige Backups gemacht werden.</p>

<p>Zusätzlich sollten die Rechte des Benutzers für den/die ÜbersetzerIn so eingeschränkt werden, das ungewollte Änderungen an der Live-Version der Website möglichst ausgeschlossen sind. Stichworte: Aus versehen die Originalseite übersetzt, Inhalte gelöscht oder verändern etc.</p>

<p><strong>Fazit:</strong> Sofern sich der Übersetzer in der Lage fühlt, nach einer Einschulung, mit dem CMS zu arbeiten und der Spagat gelingt die Texte aus Templates, E-Mails und Co. zusätzlich zur Verfügung zu stellen, ist die Übersetzung direkt mit Hilfe des CMS eine angenehme Lösung für alle Beteiligten.</p>

<p>Vorteile eines professionellen CAT-Programmes, wie eine Translation-Memory-Funktion, die alle Inhalte speichert und bereits übersetzte Inhalte direkt vorschlägt fallen jedoch weg. Auch ein eventuelles Lektorat muss direkt über das CMS erfolgen. Insgesamt also ebenfalls eher eine Lösung für kleine bis mittlere Seiten.</p>

<h2>SEO und URL-Struktur</h2>

<p>Damit Ihre neue Sprachversion nicht unverhofft zu einem SEO-Nach- statt Vorteil führt sollten Sie vor allem darauf achten, dass die Sprachversionen leicht zugänglich, also direkt verlinkt sind, und es nicht durch auf über verschiedene Wege zugängliche Seiten wie z. B. <em>/de</em> und <em>/de/home</em> zu Duplicate Content kommt.</p>

<h3>Empfehlenswerte URL-Stukturen</h3>

<p>Je nachdem ob Sie auf einzelne Länder oder ganze Sprachen abzielen, sind die am besten geeigneten URL-Schemen <em>example.com/de</em> und <em>example.de</em>. Weitere mögliche Strukturen und Ihre Vor- und Nachteile finden Sie unter anderem in den <a href="https://support.google.com/webmasters/answer/182192?hl=de">Google Webmaster Richtlinien</a>.</p>

<h4>Unterverzeichnisse und eine internationale Domain (example.com/de)</h4>

<p>Die mit einfach umsetzbare Variante mit Unterverzeichnissen ist praktikabel, effektiv und günstig, das macht sie für praktisch alle Seiten, die Sie je mit Contao betreiben werden zur richtigen Wahl. Nur wenn Sie gezielt einzelne Länder ansprechen möchten oder Ihre Seite auf verschiedene Serverstandorte verteilen möchten, können länderspezifische Domains Vorteile bringen.</p>

<p>Die Idee hinter der Struktur mit Unterordnern ist, dass eine <abbr title="generische Top-Level-Domain">gTLD</abbr>, also eine internationale Domain wie .com, org oder .eu, verwendet wird und die Ausrichtung auf die Zielländer mit anderen Methoden erfolgt. So kann das Hauptzielland bei Google z. B. über die Webmaster Tools <a href="https://support.google.com/webmasters/answer/62399?hl=de">definierten werden</a>.</p>

<p>So erlaubt es diese Variante, die Vorteile einer länderspezifischen Domain mit denen einer internationalen weitgehend zu verbinden, ist dabei jedoch flexibler, einfacher und günstiger in der Unterhaltung. Darüber hinaus wird die gesamte Linkpower, anders als bei einem Subdomain-Schema wie <em>de.example.com</em>, auf einer Domain gesammelt, was zu einem höheren Page-Rank der Startseite führen kann.</p>

<h4>Länderspezifische Domain (example.de)</h4>

<p>Länderspezifische Domains sind von vornherein einer geografischen Region zugeordnet, die für den Benutzer deutlich erkennbar ist. Trotzdem können länderspezifische Websites Sprachversionen nach dem Schema <em>example.de/it</em> anbieten, ein gutes Beispiel dafür wäre etwa ein deutsches Hotel, das seine italienischen Gäste in deren Landessprache ansprechen möchte.</p>

<p>Geografisch eindeutig zugewiesene Domains sind vor allem für Projekte von Vorteil, deren Angebot vor allem regional ausgerichtet ist. Hauptsächlich deshalb weil <em>meinprojekt.de</em> unterbewusst darauf schließen lässt, dass das jeweilige Projekt oder Produkt einen stärkeren regionalen Bezug hat als z. B. <em>meinprojekt.com/de</em>.</p>

<p>Der Vorteil, dass sich (sehr) große Seiten einfacher auf verschiedene Server aufteilen lassen, hat in einer Zeit, in der der Einsatz eines <a href="https://rocksolidthemes.com/de/contao/blog/contao-ladezeit-optimieren">CDN und andere Geschwindigkeitsoptimierungen</a> sehr einfach möglich sind kaum noch Bedeutung.</p>

<h2>Checkliste für die Vorbereitung Ihrer Übersetzung</h2>

<div class="check-list" id="checkliste">

<ul>
<li>Geprüft ob eine Sprachversion der richtige Schritt ist</li>
<li>Ausgangssprache korrigiert und auf den neusten Stand gebracht</li>
<li>Relevante Teile der Website für erste Analysen testweise übersetzt</li>
<li>Mit dem Übersetzer auf Dateiformat und Arbeitsablauf verständigt</li>
<li>Alle zu benötigten Texte gesammelt, z. B. auch Grafiken, PDFs, Dokumente wie AGB und Inhalte aus Templates und Modulen</li>
<li>Texte und evtl. zusätzliches hilfreiches Material in einem geeigneten Format zur Verfügung gestellt</li>
<li>Übersetzer detailliert zu gewünschtem Stil und Bedarf gebrieft</li>
<li>Unabhängigen Lektor mit der Kontrolle der Übersetzung beauftragt</li>
</ul>

</div>

<h2>Häufige Fehler</h2>

<h3>1. Die Ausgangsversion wird während der Übersetzung verändert</h3>

<p>Die Ausgangssprache wird nach Beauftragung der Übersetzung weiter verändert bzw. die fertige Übersetzung bleibt so lange liegen, dass sich das Original bereits verändert hat.</p>

<h3>2. Länderspezifische Ausdrucks- und Schreibweisen werden vernachlässigt</h3>

<p>Häufigstes Beispiel: British vs. American English. Ob feine Unterschiede wie colour/color, jewellery/jewelery oder die Schreibweise mit -ise statt -ize wie in localisation/localization, bis hin zu komplett unterschiedlichen Begriffen wie football/soccer oder chips/french fries.</p>

<p>Je nachdem woher Ihre Zielgruppe stammt, könnte ein Brite demnach besser für Ihre Übersetzung geeignet sein als z. B. ein Amerikaner oder Australier. Zwar wird jeder Englischsprechende verstehen, worum es geht, eher zuhause wird er sich jedoch mit der gewohnten Schreibweise fühlen. Und findet man in Ihrem Shop zwar ein mobile phone, aber kein cell phone kann der Unterschied noch direkteren Einfluss haben.</p>

<p>Überlegen Sie sich also gut, welche Sprache Ihre Zielgruppe spricht und wählen Sie den Übersetzer entsprechend.</p>

<h3>3. Übersetzung mit Hilfe von Google Translate und Praktikant</h3>

<p>Ihre Inhalte sind ein Verkaufsinstrument und von der Qualität Ihrer Texte, schließen Kunden unterbewusst direkt auf die Qualität Ihrer Produkte und Dienstleistungen. Übersetzungen, vor allem in Sprachen, die Sie selbst nicht beherrschen, sind Vertrauenssache. Beauftragen Sie einen professionellen Übersetzer der a) etwas von der Materie im Text versteht und b) die Sprache perfekt beherrscht.</p>

<h3>4. Standardphrasen werden 1:1 übersetzt</h3>

<p>Ob „Jetzt unverbindlich anfragen“, „In den Warenkorb“ oder „abonnieren Sie unseren Newsletter“ statt die Übersetzungen für gewohnte Bedienelemente neu zu erfinden, sollten Sie einen Blick auf andere Websites werfen um zu vergleichen bzw. Ihren Übersetzer bitten besonders bei Interface- und Call-to-Action-Elementen auf verbreitete Schreibweisen zu achten.</p>

<h3 id="flaggen">5. Flaggen statt Textlinks für die Sprachwahl</h3>

<p>Deutsch ist Amtssprache in Belgien, Brasilien (z. B. Domingos Martins), Deutschland, Italien (Südtirol), Liechtenstein, Österreich, der Schweiz und der Slowakei (Krahule). Indien hat 23 Amtssprachen, die Schweiz vier. Die Iren sprechen zwar English, manche klicken deshalb trotzdem ungern auf die Flagge des Vereinigten Königreichs. Und obwohl Englisch weder im Vereinigten Königreich, noch in den USA, die offiziell festgelegte Amtssprache ist (sic!), ist sie es in mehr als 70 anderen Nationen.</p>

<p>Da viele Sprachen also in mehr als einem Land gesprochen werden, ist es wenig sinnvoll Landesflaggen als Symbole für Sprachen zu verwenden.</p>

<p>Betreiben Sie hingegen eine länderspezifische Seiten oder einen Shop, wäre das ein Ausnahmefall, in dem Landesflaggen sinnvoll sein können. <a href="http://www.apple.com">Apple</a> etwa bietet seine lokalisierten Onlineshops teilweise in mehreren Sprachen, den kanadischen Shop z. B. in Englisch und Französisch. In diesem Fall repräsentieren die Flaggen korrekterweise die Länder.</p>

<h3>6. Datum, Währung und Zahlen</h3>

<p>Ist der erste Tag der Woche nun Sonntag oder Montag? Schreiben Sie das Datum als dd.mm.yy oder mm/dd/yy und nutzen Sie Kommas als Tausendertrennzeichen und Punkte als Dezimaltrennzeichen?</p>

<p>Fragen über Fragen und das war erst der Anfang. Groß- und Kleinschreibung (Title Case), Anführungszeichen und Abkürzungen für vieles, mit dem wir schon in unserer Muttersprache kämpfen, gibt es in anderen Sprachen eigene Regeln. Einen minutiösen Überblick der Regeln für englische Übersetzungen, gibt der <a href="http://www.fjfhs.eu/esg/index.htm" target="_blank">English Style Guide</a> der Europäischen Kommission.</p>

<h3>7. Die Übersetzung wird nicht unabhängig überprüft</h3>

<p>Google und der gesunde Menschenverstand <a href="https://support.google.com/webmasters/answer/182192?hl=de">sagen es</a> einem: „Eine schlechte oder offensichtlich maschinell angefertigte Übersetzung kann bewirken, dass Ihre Website einen negativen Eindruck hinterlässt“.</p>

<p>Viele Online-Services bieten deshalb standardmäßig ein Vier- oder Sechs-Augen-Kontrolle. Sollten Sie Ihre Übersetzung also von einer lokalen Agentur oder selbst vornehmen, beauftragen Sie einen Lektor mit der Überprüfung.</p>

<div class="highlight-box icon-info">

<h3>Fragen &amp; Feedback</h3>

<p>Nutzen Sie unsere <a href="https://rocksolidthemes.com/de/contao/blog/mehrsprachige-website#twitter-comments">Twitter-Wall</a> für Ihr Feedback und offene Fragen zum Thema Mehrsprachigkeit und Contao. Die interessantesten Fragen nehmen wir, mit Verweis auf den Fragesteller, in die FAQ-Sektion auf.</p>

</div>

<p>Lesen Sie den <a href="https://rocksolidthemes.com/de/contao/blog/contao-multi-language">zweiten Teil der Artikelserie</a> zum Thema: „Multi-Language Websites mit Contao erstellen und verwalten – so klappt es!“. <a href="https://rocksolidthemes.com/de/contao/blog/mehrsprachige-website#newsletter">Tragen Sie sich jetzt in den Newsletter ein</a> und erhalten Sie einmal im Monat wertvolle Inhalte rund um Contao.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Wed, 04 Jun 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>In Contao 3.3 wurde der Funktionsumfang des Template-Systems deutlich erweitert. So ist es jetzt möglich von anderen Templates abzuleiten, nur Teilbereiche aus Core-Templates zu überschreiben und Templates in einzelne Bereiche aufzuteilen.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/04-contao-blog-templates-3-3/template-illustration.svg?3d95" alt=""></div>

<p><strong>Tipp:</strong> Nutzen Sie die Möglichkeit zwischen der <strong>Template-</strong> und <strong>HTML-Ansicht</strong> zu wechseln, um die Beispiele einfach nachvollziehen zu können.</p>

<h2>Template-Blöcke</h2>

<p>Mit den Funktionen <code>block()</code> und <code>endblock()</code> lässt sich ein Template in Bereiche unterteilen. Das Template einer Formularzeile könnte folgendermaßen aussehen:</p>

<pre class="template"><code>&lt;div&gt;
    &lt;?php $this-&gt;block(&#039;label&#039;) ?&gt;
        &lt;label&gt;&lt;?php echo $this-&gt;label ?&gt;&lt;/label&gt;
    &lt;?php $this-&gt;endblock() ?&gt;
    &lt;?php $this-&gt;block(&#039;field&#039;) ?&gt;
        &lt;input type=&quot;text&quot; name=&quot;&lt;?php echo $this-&gt;name ?&gt;&quot;&gt;
    &lt;?php $this-&gt;endblock() ?&gt;
&lt;/div&gt;</code></pre>

<pre class="html"><code>&lt;div&gt;
    &lt;label&gt;Vorname&lt;/label&gt;
    &lt;input type=&quot;text&quot; name=&quot;vorname&quot;&gt;
&lt;/div&gt;</code></pre>

<h2>Vererbung und updatesicheres Überschreiben</h2>

<p>Wenn Sie von diesem Template mit <code>extend()</code> ableiten, können Sie die einzelnen Blöcke überschreiben oder erweitern, mit <code>parent()</code> können Sie den Inhalt des ursprünglichen Blocks einfügen.</p>

<pre class="template"><code>&lt;?php $this-&gt;extend(&#039;form_row&#039;) ?&gt;
&lt;?php $this-&gt;block(&#039;label&#039;) ?&gt;
    &lt;label class=&quot;special-label&quot;&gt;&lt;?php echo $this-&gt;label ?&gt;&lt;/label&gt;
&lt;?php $this-&gt;endblock() ?&gt;
&lt;?php $this-&gt;block(&#039;field&#039;) ?&gt;
    &lt;div&gt;&lt;?php $this-&gt;parent() ?&gt;&lt;/div&gt;
&lt;?php $this-&gt;endblock() ?&gt;</code></pre>

<pre class="html"><code>&lt;div&gt;
    &lt;label class=&quot;special-label&quot;&gt;Vorname&lt;/label&gt;
    &lt;div&gt;&lt;input type=&quot;text&quot; name=&quot;vorname&quot;&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>

<p>Sie können <code>extend()</code> auch verwenden um nur die Template-Daten zu modifizieren, bevor das eigentliche Template verarbeitet wird. Das folgende Beispiel erweitert das Galerie-Template um eine CSS-Klasse mit der Anzahl der Bilder pro Reihe. Dabei kann dem Template der gleiche Dateiname wie dem Core-Template gegeben werden – so passen Sie das Template updatesicher an.</p>

<pre class="template"><code>&lt;?php $this-&gt;extend(&#039;ce_gallery&#039;) ?&gt;
&lt;?php $this-&gt;class .= &#039; images-per-row-&#039; . $this-&gt;perRow ?&gt;</code></pre>

<pre class="html"><code>&lt;div class=&quot;ce_gallery block images-per-row-4&quot;&gt;
    &lt;ul&gt;
        ...
    &lt;/ul&gt;
&lt;/div&gt;</code></pre>

<h2>Verschachtelte Blöcke</h2>

<p>Zusätzlich können Sie Blöcke verschachteln, um noch genauer festzulegen welche Bereiche verändert werden. Ein gutes Beispiel dafür ist das <a href="https://github.com/contao/core/blob/master/system/modules/core/templates/frontend/fe_page.html5" target="_blank">Template fe_page in Contao 3.3</a>. Mit dem Block <code>body</code> könnte z. B. der komplette Inhaltsbereich überschrieben werden. Würden Sie etwa nur den Footer anpassen wollen, überschreiben oder erweitern Sie nur den Block <code>footer</code>.</p>

<h2>Fazit</h2>

<p>Die Erweiterung des Template-Systems ist eines der wichtigsten neuen Features, die Contao je erhalten hat. Die Möglichkeit Templates „updatesicher“ zu überschreiben, wird vielen Benutzern die Vorbehalte nehmen die Templates und damit das HTML-Markup bei Bedarf projektspezifisch anzupassen.</p>

<p>Alle RockSolid Themes verwenden bereits die neuen Template-Funktionen. Für mehr Beispiele laden Sie sich unser kostenloses Theme <a href="https://rocksolidthemes.com/de/contao/themes/opensauce">Open Sauce</a> für Contao 3.3 herunter und sehen sich den Templates-Ordner an.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Sat, 17 May 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>Foren, Wikis und Frage-Antwort-Portale erleichtern unsere Arbeit ungemein. Das Internet ermöglicht es uns die Hilfe von Fremden 24/7/365, oft kostenlos, in Anspruch zu nehmen. Und wir bezahlen mit unserer eigenen Lösungskompetenz.</p>

<p>Sobald ich auf ein Problem stoße, kann ich mein Gehirn oft dabei beobachten, wie es versucht Energie zu sparen. Statt mir einen Moment Zeit zu nehmen und zu überlegen was ich eigentlich erreichen will bzw. wo der Haken liegen könnte, ertappe ich mich ganz automatisch dabei ein Browser-Fenster zu öffnen und zu suchen. Häufig dauert die Suche wohl genauso lange, wie die Lösung mit anderen Mitteln gedauert hätte.</p>

<p>Copy &amp; Paste ist bequem, wir machen es jeden Tag. Es ist Teil unserer Arbeit.</p>

<p>Wie oft habe ich schon das selbe Code-Snippet gesucht, kopiert und eingefügt. Manches Script bleibt dabei ein Hexenwerk, weil ich mich nie damit befasst habe, wie es im Kern funktioniert. Und nächstes Mal suche ich wieder danach, weil ich dachte „das brauche ich nie wieder“. Für einige Snippets, die ich wirklich häufig verwende, habe ich mittlerweile zumindest einen Katalog angelegt.</p>

<p>Es geht uns doch allen ähnlich. Das Ergebnis ist, dass wir nicht besser darin werden strukturiert zu denken und unsere Probleme in Teilstücke zu zerlegen um sie zu lösen, sondern gut darin nach Fragen zu suchen und <kbd>Strg + C</kbd> zu drücken.</p>

<p>Wenn wir es schaffen unsere Gehirne häufiger davon überzeugen, dass es Spaß macht Probleme zu lösen, können wir es im Anschluss auch häufiger mit den Glücksgefühlen belohnen. Überzeugen wir unsere Gehirne davon, dass sie zum Entdecken, Spielen und Learning-by-doing gemacht sind. Auch wenn wir einfach nur die Deadline einhalten möchten oder das Projektbudget schon derart überzogen ist, dass wir eigentlich kein einziges Watt Hirnleistung mehr investieren dürften.</p>

<p>Das bedeutet natürlich nicht, dass wir aufhören sollten Entdeckungen zu teilen, unsere eigenen Lösungen zu verbessern und zu erkunden wie andere arbeiten. Seiten wie das <a href="http://stackexchange.com">Stack Exchange Netzwerk</a>, <a href="https://github.com">Github</a>, <a href="https://coderwall.com">Coderwall</a> oder <a href="http://codepen.io">Codepen</a> machen die rasante Weiterentwicklung erst möglich. Und diese Weiterentwicklung ist größtenteils positiv. Auch wenn sie uns manchmal überfordert. Und ja, auch unsere Themes sind eine Abkürzung, die bewusst eingesetzt werden sollte. Wie jede Art von vorgefertigter Lösung.</p>

<p>Es ist genauso gekommen, wie Tim Berners-Lee es auf der <a href="http://info.cern.ch/hypertext/WWW/TheProject.html">ersten Website</a> angedacht hatte.</p>

<blockquote>
  <p>The WorldWideWeb (W3) is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents. <em>— Tim Berners-Lee</em></p>
</blockquote>

<p>Ein relativ großer Teil der Menschheit hat bereits heute Zugriff auf einen Ozean an Inhalten, viele weitere folgen täglich. Mengenmäßig gesehen entstanden praktisch alle Texte, Inhalte und Bilder, die je geschaffen wurden in den letzten paar Jahren. Fast eine Million neue Websites kommen Tag für Tag dazu. Milliarden an Forenbeiträgen werden täglich erstellt und beantwortet.</p>

<p>Doch nur 8% der Stack Overflow Nutzer beantworten mehr als 5 Fragen und gehören damit zu der Gruppe, die aktiv zu Lösungen beiträgt (<a href="https://en.wikipedia.org/wiki/Stack_Overflow_(website)#Statistics">Quelle</a>). Nach der 1%-Regel, sind 90% der Internetnutzer reine Zuschauer, 9% editieren bzw. partizipieren und nur 1% Prozent schafft aktiv neue Inhalte (<a href="https://en.wikipedia.org/wiki/1%25_rule_(Internet_culture)">Quelle</a>). Die Zahlen lassen sich auf die meisten Foren umlegen. Dabei ist es gar nicht zwangsweise nötig noch mehr Inhalte zu verfassen, wir müssen nur öfter von der Zuschauerbank aufstehen.</p>

<p>Entscheiden wir uns bewusst dafür unsere Gehirne öfter aus dem Energiesparmodus zu holen, um gemeinsam Probleme zu lösen. Geben wir nicht auf, wenn etwas nicht auf Anhieb funktioniert. Wir schulden es uns und unserer (beruflichen) Zukunft. Je größer das Problem, desto größer die Belohnung, wenn wir es lösen.</p>
]]></description>
			</item>
								<item>
				<title></title>
				<link></link>
				<guid></guid>
				<pubDate>Thu, 24 Apr 2014 00:00:00 +0000</pubDate>
				<description><![CDATA[<p>In diesem Artikel erfahren Sie Schritt für Schritt wie Sie die Ladezeit Ihrer Contao-Website optimieren und über 95 Punkte bei Google PageSpeed und Yahoo YSlow erreichen können. Alles was Sie dazu brauchen ist eine Contao-Installation und 10 Minuten Zeit, es werden keine zusätzlichen Erweiterungen benötigt.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/speed-optimization.svg?92d4" alt=""></div>

<p>Als Basis habe ich unser Free-Theme <a href="https://rocksolidthemes.com/de/contao/themes/opensauce">Open Sauce</a> unter Contao 3.2.9 installiert. Ohne Anpassungen ist die Performance der Website auch mit unserem schlanken Theme noch deutlich verbesserungswürdig.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/performance-1.png?bb43" alt="Page Speed Grade: 52%; YSlow Grade: 73%; Page load time: 3.78s; Total page size: 685KB; Total number of requests: 23;"><p>Performance Report von gtmetrix.com</p></div>

<p>Die Seitenladezeit von fast vier Sekunden ist für eine einfache Webseite viel zu lange. Die PageSpeed und YSlow Wertung ist dementsprechend niedrig.</p>

<h2>Voraussetzungen</h2>

<p>Für den ersten und wichtigsten Schritt der Optimierungen sollte Ihr Webspace einen Apache-Webserver mit den aktivierten Modulen <em>mod_deflate</em>, <em>mod_filter</em>, <em>mod_expires</em> und optional auch <em>mod_mime</em> und <em>mod_headers</em> einsetzen. In der Regel sollte jeder moderne Webspace mit einem Apache-Webserver diesen Anforderungen entsprechen.</p>

<h2><em>Schritt 1:</em> .htaccess.default aktivieren</h2>

<p>Im Wurzelverzeichnis jeder Contao-Installation liegt standardmäßig die Datei <em>.htaccess.default</em>. Diese Datei beinhaltet sehr viele Optimierungen für den Webserver, darunter Cache-Einstellungen für JavaScript-, CSS- und Bilddateien, Optimierungen für einzelne HTTP-Header und Kompressionseinstellungen für viele weitere Dateitypen. Aktiv werden diese Einstellungen jedoch erst, wenn die Datei in <em>.htaccess</em> umbenannt wird.</p>

<p>Nach der Aktivierung haben sich die PageSpeed- und YSlow-Punkte bereits auf <strong>89</strong> verbessert.</p>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/performance-2.png?61da" alt="Page Speed Grade: 89%; YSlow Grade: 89%; Page load time: 3.36s; Total page size: 378KB; Total number of requests: 23;"><p>Performance Report von gtmetrix.com nach Aktivierung der .htaccess-Datei</p></div>

<h2><em>Schritt 2:</em> Seiten-Cache-Einstellungen</h2>

<p>Die Beispielseite mit unserem Contao Free Theme <a href="https://rocksolidthemes.com/de/contao/themes/opensauce">Open Sauce</a> benötigt für den Aufbau des HTML-Codes ca. 0,3 bis 0,4 Sekunden. Die meisten Seiten ändern sich jedoch nicht bei jedem Aufruf, deshalb ist es unnötig den HTML-Code jedes mal neu zu erstellen. Mit dem Seiten-Cache von Contao wird eine Seite zwischengespeichert, sobald sie das erste Mal aufgerufen wird. Bei jedem weiteren Aufruf wird die zwischengespeicherte Version der Seite verwendet, anstatt sie neu aufzubauen.</p>

<p>Der Seiten-Cache wird in <em>Layout › Seitenstruktur</em> beim Startpunkt der Website unter <em>Cache-Einstellungen</em> aktiviert. Für Websites mit wenigen Besuchern sollte als Cachezeit mindestens 24 Stunden ausgewählt werden. Für einzelne Seiten mit dynamischen Inhalten, oder Inhalten die sich mehrmals täglich ändern, kann in den Seiteneinstellungen die Cachezeit verringert oder komplett deaktiviert werden.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/page-cache-settings.png?67a0" alt=""></div>

<p>Unter <em>System › Einstellungen › Frontend-Einstellungen</em> sollte zudem als <em>Cache-Modus</em> „Nur den Servercache verwenden“ ausgewählt werden. Dadurch wird sichergestellt, dass beim leeren des Server-Caches keine veralteten Inhalte im Browser-Cache des Besuchers verbleiben.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/site-cache-settings.png?b846" alt=""></div>

<p>Nach diesen Einstellungen verringert sich die Antwortzeit des Servers für den HTML-Code auf 0,06 Sekunden. Die Gesamtladezeit hat sich bereits auf ca. zwei Sekunden verringert.</p>

<h2><em>Schritt 3:</em> Bilder optimieren</h2>

<p>Unter <em>System › Einstellungen › Dateien und Bilder</em> sollte man die <em>JPEG-Qualität</em> soweit senken, dass die Anzeigequalität gerade noch in Ordnung ist, meistens im Bereich zwischen 50 und 80.</p>

<div class="highlight-box icon-info">

<p>Wenn Sie die <em>JPEG-Qualität</em> ändern, vergessen Sie nicht in der Systemwartung den Bilder-Cache zu leeren.</p>

</div>

<p>Ein sehr wichtiger Punkt bei Bildern ist der Unterschied zwischen der tatsächlichen Bildgröße und der dargestellten Bildgröße. Wenn Sie z. B. in einem Bild-Inhaltselement eine Bildgröße von 320 x 160 einstellen, durch das CSS das Bild auf der Seite jedoch nur in der Größe von 120 x 60 dargestellt wird, verbrauchen Sie unnötig viel Bandbreite für das zu große Bild.</p>

<p>Die jeweils richtige Größe der Bilder, also die Größe in der das Bild vom Browser tatsächlich dargestellt wird, können Sie am einfachsten mit den Entwicklertools des Browsers herausfinden (Rechtsklick <em>Element untersuchen</em>). In Chrome: Mit der Maus über den Pfad des Bildes fahren oder in Firefox: Auf den Reiter <em>Box-Modell</em> wechseln.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/image-dimensions.jpg?5f64" alt=""><p>Entwicklertools, Chrome links und Firefox rechts, zeigen die dargestellte Größe: 120 x 60</p></div>

<h2><em>Schritt 4:</em> JavaScript zusammenfassen</h2>

<p>Je weniger Dateien für eine Seite geladen werden müssen, umso kürzer wird die Ladezeit. Meine Testinstallation lädt im unoptimierten Zustand 2 CSS-Dateien und 6 JavaScript-Dateien.</p>

<p>Die 2 CSS-Dateien sind die Stylesheets aus dem Seitenlayout und von Google-Fonts. Diese beiden Dateien können nicht zusammengefasst werden, da Google-Fonts an verschiedene Browser verschiedene Stylesheets ausliefert.</p>

<p>Die 6 JavaScript-Dateien teilen sich in ein Hauptskript im Header der Seite, 4 JavaScript-Dateien aus jQuery-Templates und einer JavaScript-Datei aus der Layouteinstellung <em>Eigener JavaScript-Code</em>. Alle diese Dateien können zu einer einzigen Datei zusammengefasst werden.</p>

<p>Dafür kopieren wir jedes verwendete jQuery- oder MooTools-Template unter <em>Layout › Templates › Neues Template</em> in das Templates-Verzeichnis. Danach editieren wir z. B. das Template <em>j_colorbox.html5</em> und ersetzen den Aufruf für die JavaScript-Datei:</p>

<pre class="php"><code>&lt;script src=&quot;&lt;?php echo TL_ASSETS_URL; ?&gt;assets/jquery/colorbox/&lt;?php
    echo COLORBOX; ?&gt;/js/colorbox.min.js&quot;&gt;&lt;/script&gt;</code></pre>

<p>Durch folgenden PHP-Code:</p>

<pre class="php"><code>&lt;?php
$GLOBALS[&#039;TL_JAVASCRIPT&#039;][] =
    &#039;assets/jquery/colorbox/&#039;.COLORBOX.&#039;/js/colorbox.min.js|static&#039;;
?&gt;</code></pre>

<p>Nachdem wir diesen Vorgang für alle verwendeten jQuery- und MooTools-Templates wiederholt haben, fehlt nur noch die JavaScript-Datei aus der Seitenlayouteinstellung <em>Eigener JavaScript-Code</em>. Dafür erstellen wir je nach verwendetem JavaScript-Framework eine neue Template-Datei <em>j_scripts.html5</em> oder <em>moo_scripts.html5</em> mit folgendem Inhalt:</p>

<pre class="php"><code>&lt;?php
$GLOBALS[&#039;TL_JAVASCRIPT&#039;][] = $GLOBALS[&#039;TL_CONFIG&#039;][&#039;uploadPath&#039;]
    .&#039;/opensauce/js/script.js|static&#039;;
?&gt;</code></pre>

<p>Tauschen Sie dabei den Pfad <em>/opensauce/js/script.js</em> mit dem Pfad aus der Layouteinstellung <em>Eigener JavaScript-Code</em> aus. Danach bearbeiten Sie die Datei <em>files/opensauce/js/script.js</em> und fügen als erste Zeile <code>jQuery(function(){</code> und als letzte Zeile <code>});</code> ein. Wenn Sie MooTools anstatt jQuery verwenden muss die erste Zeile <code>window.addEvent('domready', function() {</code> lauten. Damit wird sichergestellt, dass das Skript erst ausgeführt wird, sobald das Dokument geladen wurde.</p>

<p>Nun wird nur noch eine einzige JavaScript-Datei geladen.</p>

<div class="highlight-box icon-tip">

<p>Zusätzlich sollte man für jede JavaScript- und CSS-Datei überprüfen ob diese auch tatsächlich benötigt wird. Wenn es z. B. auf der Seite kein Akkordeon eingefügt wurde, muss auch das jQuery-Template <em>j_accordion</em> nicht eingebunden werden.</p>

</div>

<h2><em>Schritt 5:</em> CDN einrichten</h2>

<p>Ein Content Delivery Network ist ein verteiltes Netzwerk von Servern, die für die Auslieferung von vorwiegend statischen Inhalten genützt werden. Wenn ein Besucher eine Datei von einem CDN anfordert, bekommt er die Antwort von dem Server der die beste Verbindung zum Besucher hat und ihm geographisch am nächsten ist. Dadurch kann die Ladezeit vor allem für internationale Besucher deutlich verbessert werden. Ein weiterer Vorteil ist, dass ein CDN sehr gut mit einem großen Ansturm an Besuchern zurechtkommt und dadurch deutlich besser gegen überlastungsbedingte Ausfälle geschützt ist als ein normaler Webspace.</p>

<p>Es gibt viele verschiedene Anbieter von CDNs, einer davon ist <a href="http://aws.amazon.com/de/cloudfront/">Amazon CloudFront</a>. Dort kann sehr schnell und einfach ein CDN in der Origin-Pull-Variante eingerichtet werden. Origin-Pull bedeutet, dass sich das CDN die angeforderte Datei automatisch vom Origin-Server (Ihrem Webspace) kopiert und zwischenspeichert, sobald diese das erste Mal aufgerufen wird.</p>

<p>Das Einrichten des CDNs in Contao selbst ist relativ einfach, dazu wird in <em>Layout › Seitenstruktur</em> beim Startpunkt der Website unter <em>DNS-Einstellungen</em> als <em>Datei-URL</em> und <em>Assets-URL</em> die CDN-URL eingetragen.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/cdn-settings.png?b75e" alt=""></div>

<h2>Unnötige Einstellungen</h2>

<p>In den globalen Einstellungen von Contao gibt es auch zwei Einstellungen für Performance die jedoch nahezu keine Verbesserungen bringen. Im Gegenteil, sie können unerwünschte Auswirkungen nach sich ziehen. Deshalb empfehlen wir die Einstellungen <em>Markup komprimieren</em> und <em>Skripte komprimieren</em> <strong>nicht</strong> zu aktivieren.</p>

<div class="content-image "><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/bad-settings.png?cc8f" alt=""></div>

<h2>Fazit und Endergebnis</h2>

<div class="content-image no-border"><img src="https://static.rocksolidthemes.com/content/01-contao/04-contao-blog/02-contao-blog-website-performance/performance-3.png?830a" alt="Page Speed Grade: 97%; YSlow Grade: 99%; Page load time: 0.94s; Total page size: 279KB; Total number of requests: 15;"><p>Performance Report von gtmetrix.com nach allen Optimierungen</p></div>

<p>Nun sieht die Ladezeit der Website sehr gut aus, sie liegt unter einer Sekunde, die Gesamtgröße der Seite wurde auf unter die Hälfte gebracht und auch die Anzahl der Requests ist jetzt deutlich niedriger.</p>

<h2>Plugins und Werkzeuge</h2>

<p>Mit diesen Werkzeugen und Erweiterungen können Sie die Geschwindigkeit Ihrer Website weiter analysieren und verbessern.</p>

<ul>
<li><a href="http://gtmetrix.com/">GTmetrix</a> zum Analysieren der kompletten Seite inkl. PageSpeed und YSlow.</li>
<li><a href="http://www.webpagetest.org/">WebPageTest</a> zum Analysieren der Geschwindigkeit aus verschiedenen Ländern in verschiedenen Browsern.</li>
<li><a href="https://developers.google.com/speed/pagespeed/insights/">Google PageSpeed Insights</a> und <a href="http://developer.yahoo.com/yslow/">Yahoo YSlow</a> zur Bewertung und für Verbesserungstipps.</li>
<li><a href="https://tinypng.com/">tinypng</a> zum deutlichen Verringern der Dateigrößen von PNG-Bildern.</li>
</ul>

<h2>Weitere Optimierungsansätze (für Fortgeschrittene)</h2>

<p>Wem das Ergebnis noch nicht ausreicht, der kann noch weiter gehen. An folgenden Punkten könnte man ansetzen um noch höhere Geschwindigkeit zu erreichen:</p>

<ul>
<li>Einen CronJob einrichten der den Seiten-Cache regelmäßig aktualisiert, damit auch der erste Aufruf einer Seite schnell beantwortet werden kann.</li>
<li>Bilder weiter optimieren mit Tools wie <a href="https://tinypng.com/">tinypng</a> und <a href="http://imageoptim.com/">imageoptim</a></li>
<li>Die JavaScript-Datei vor dem <code>&lt;/body&gt;</code> anstatt im <code>&lt;head&gt;</code> einbinden, dabei wären allerdings einige Anpassungen an den Skripten notwendig.</li>
<li>Optimierung der CSS-Dateien: Nicht benötigte Styles entfernen und Icon-Fonts oder Image-Sprites anstatt Hintergrundbildern verwenden.</li>
<li>Optimierung der externen Schriften: Schriftschnitte reduzieren, Subsetting.</li>
<li>Die komplette Website, also auch den HTML-Code, über ein CDN ausliefern.</li>
</ul>
]]></description>
			</item>
					</channel>
</rss>
