<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://dev.contaowiki.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://dev.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BugBuster</id>
		<title>Contao Community Documentation - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BugBuster"/>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Spezial:Beitr%C3%A4ge/BugBuster"/>
		<updated>2026-05-13T11:05:17Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-12-17T01:10:42Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Ursprungssprache hochladen zu Transifex */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ''ctb'' ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wo die php.ini der PHP Kommandozeilenversion liegt, erfährt man so:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php --ini | grep 'Configuration File'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablegen, um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt &amp;quot;extra&amp;quot; ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-12-17T01:09:31Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ''ctb'' ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wo die php.ini der PHP Kommandozeilenversion liegt, erfährt man so:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php --ini | grep 'Configuration File'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablegen, um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt &amp;quot;extra&amp;quot; ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Cron</id>
		<title>Cron</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Cron"/>
				<updated>2014-12-14T23:17:25Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Beispiel Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Automatisierung von Batch Programmen mittels Zeitsteuerung&lt;br /&gt;
* Automatische zeitgesteuerte Ausführung von PHP Skripten.&lt;br /&gt;
* Zeitsteuerungs-Syntax von UNIX cron/crontab.&lt;br /&gt;
* Benötigt kein “richtiges” cron, wird bei Backend Seitenaufrufen ausgeführt&lt;br /&gt;
* Frontend Auslösung mittels Frontend Modul möglich&lt;br /&gt;
* Alternative Auslösung mittels “echtem” cron möglich.&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Glen Langer ([[User:BugBuster|BugBuster]])&lt;br /&gt;
| DevSite=http://www.contao.glen-langer.de&lt;br /&gt;
| ExtVersion=3.1.0&lt;br /&gt;
| Version=ab 3.0&lt;br /&gt;
| TLVersion=2.7.0 - 2.9.5 (siehe Installationshinweise)&lt;br /&gt;
| ERLink=https://contao.org/de/extension-list/view/cron.de.html&lt;br /&gt;
| DonateLink=http://www.amazon.de/wishlist/26HHEJOU03G76&lt;br /&gt;
| TrackerLink=https://github.com/BugBuster1701/contao-cron/issues&lt;br /&gt;
| VCSLink=https://github.com/BugBuster1701/contao-cron&lt;br /&gt;
| Comment=Version für Contao 3.1 verfügbar&lt;br /&gt;
}}&lt;br /&gt;
[[Kategorie:Extensions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorwort=&lt;br /&gt;
Die Erweiterung Cron stammt ursprünglich von Peter Koch (acenes) und wurde von mir übernommen mit dem Ziel, diese für Contao 3 kompatibel zu machen. Die Beschreibung hier bezieht sich nur auf die Cron Version ab 3.0.0 für Contao 3.&lt;br /&gt;
&lt;br /&gt;
=Forum=&lt;br /&gt;
Fragen zur Cron Erweiterung werden im Forum beantwortet: [https://community.contao.org/de/forumdisplay.php?119 Forum - Sonstige-Erweiterungen]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fehler und Wünsche können im [https://github.com/BugBuster1701/contao-cron/issues Tracking System] gemeldet werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Installation erfolgt über das Extension Repository im Backend der Contao Installation.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Eine manuelle Installation ist möglich, dazu die ZIP Datei [https://contao.org/de/extension-list/view/cron.de.html vom Extension Repository laden], entpacken und entsprechend übertragen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Danach wie dabei üblich /contao/install.php aufrufen um ein eventuelles Update der Datenbank durchführen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Hinweis für ältere TYPOlight Versionen==&lt;br /&gt;
Nutzer von TYPOlight 2.9/2.8/2.7 nutzen bitte Cron Version 1.1.0 ([http://www.contao.org/erweiterungsliste/view/cron.10010009.de.html Direktlink])&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installation als Update=&lt;br /&gt;
Ein Update erfolgt identisch der Installation.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Achtung|Beim Update von Contao 2 auf Contao 3 muss die Erweiterung vollständig deinstalliert/gelöscht werden, da Contao 3 intern die Tabelle tl_cron nutzt, die bisher die Erweiterung Cron nutzte.}}&lt;br /&gt;
'''Für die Profis''': Deinstallation ohne Löschung der Tabelle tl_cron, diese umbenennen nach tl_crontab, dann Update nach Contao 3 und die neue Version von Cron für Contao 3 installieren. So sollten die eingerichteten Cron-Jobs erhalten bleiben. Job Pfade müssen aber geprüft werden, falls der Demo Job genutzt wurde.&lt;br /&gt;
&lt;br /&gt;
=Auslösen des Schedulers=&lt;br /&gt;
==Backend==&lt;br /&gt;
Standardmäßig wird der Scheduler bei jeder Backend Seitenaktualisierung ausgelöst.&lt;br /&gt;
==Frontend==&lt;br /&gt;
Über ein Frontend Modul (ab Cron 3.1.0), welches aber keine Ausgabe erzeugt und somit das Layout nicht stört, ist die Auslösung auch über Seitenaufrufe des Frontends möglich. Bei Jobs die längere Zeit benötigen ist diese Art der Auslösung ungeeignet.&lt;br /&gt;
In einer der nächsten Versionen wird es dazu eine Verbesserung geben, entweder auf die Art und Weise wie der Contao interne Frontend-Cron funktioniert oder als Job für diesen. Evaluierung erfolgt demnächst dazu.&lt;br /&gt;
&lt;br /&gt;
==Luxus Lösung mit realem Cron==&lt;br /&gt;
Hat man einen Server zur Verfügung in dem Cron-Jobs eingerichtet werden können, kann man diesen System Cron nutzen um die Cron Erweiterung darüber auszulösen.&lt;br /&gt;
Der Vorteil ist, dass der Cron-Job genau zur geplanten Zeit gestartet wird, auch wenn niemand auf die Website zugreift. Auch bei Seiten mit sehr hohem Traffic, wird diese Art der Auslösung die Webserver Last etwas senken. (im Vergleich zur FE-Modul Auslösung)&lt;br /&gt;
&lt;br /&gt;
Folgende Zeile in die crontab eintragen, vorher anpassen mit der eigenen Domain natürlich.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
* * * * * wget -t 1 -O - http://www.example.com/system/modules/cron/public/CronController.php &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Cron-Jobs definieren=&lt;br /&gt;
Über Backend - System - Scheduler sieht man zunächst die Übersicht bereits eingerichteter Cron-Jobs. Als Beispiel hier ein Job zum löschen der Music Academy Demo Dateien und der mitgelieferte Demo Job zum löschen der Einträge im System-Log.&lt;br /&gt;
[[Datei:Scheduler_overview_de.png]]&lt;br /&gt;
&lt;br /&gt;
Der Job zum löschen der System-Log Einträge im Detail:&lt;br /&gt;
[[Datei:Scheduler_purge_system_log_de.png]]&lt;br /&gt;
&lt;br /&gt;
=Benutzerdefinierte Cron-Job Scripte=&lt;br /&gt;
Die Erweiterung bringt ein Beispielskript &amp;quot;PurgeLog.php&amp;quot; mit im Unterverzeichnis &amp;quot;jobs&amp;quot;. Hier kann man schon einiges erkennen wie es läuft. Weiter unten folgt ein weiteres kleines Beispiel.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Überlegungen==&lt;br /&gt;
Generell sollte man versuchen, kleine Jobs wann immer möglich zu schaffen, die nicht lange laufen. Zum Beispiel statt der Schaffung eines großen Jobs, das 3 Dinge tut, ist es besser, 3 kleinere Jobs zu schaffen. Auf diese Weise kann die Last in 3 verschiedenen Seitenaufrufe vom Scheduler verteilt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Laufzeit eines Jobs sollte kurz bleiben, weil der Benutzer eine Sanduhr so lange zu sehen bekommt bis dieser fertig ist. Wenn es zu lange dauert wird man denken, es gibt ein Problem mit der Website oder mit dem Computer und bricht die Anfrage ab oder schließt gar den Browser.&lt;br /&gt;
&lt;br /&gt;
==Das globale Array $cronJob==&lt;br /&gt;
Es gibt eine globales Array $cronjob die einem hilft den Job in sinnvolle Stücke aufzuteilen, und einige Informationen und Kontrolle bietet:&lt;br /&gt;
&lt;br /&gt;
===$cronJob['id']===&lt;br /&gt;
&lt;br /&gt;
ID in der Job Table tl_crontab.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser Parameter kann nur gelesen werden, eine Änderung hat keine Auswirkung.&lt;br /&gt;
&lt;br /&gt;
===$cronJob['title']===&lt;br /&gt;
&lt;br /&gt;
Titel des Jobs.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser Parameter kann nur gelesen werden, eine Änderung hat keine Auswirkung.&lt;br /&gt;
&lt;br /&gt;
===$cronJob['lastrun']===&lt;br /&gt;
&lt;br /&gt;
Zeitstempel der letzten Ausführung. Der Wert ist 0 wenn unbekannt bzw. noch nie ein Start erfolgte.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser Parameter kann nur gelesen werden, eine Änderung hat keine Auswirkung.&lt;br /&gt;
&lt;br /&gt;
===$cronJob['endtime']===&lt;br /&gt;
&lt;br /&gt;
Ab dieser Zeit sollt der Job stoppen, z.B. in dem keine neuen Aktionen mehr ausgeführt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser Parameter kann nur gelesen werden, eine Änderung hat keine Auswirkung.&lt;br /&gt;
&lt;br /&gt;
===$cronJob['runonce']===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;true&amp;quot;: der Job wird nach komplettem Durchlauf deaktiviert.&amp;lt;br&amp;gt;&lt;br /&gt;
Das kann im Job selbst geändert werden:&amp;lt;br&amp;gt;&lt;br /&gt;
* Setzen auf &amp;quot;true&amp;quot; : der Job wird nach komplettem Durchlauf deaktiviert..&lt;br /&gt;
* Setzen auf &amp;quot;false&amp;quot;: der Job wird nach komplettem Durchlauf nicht deaktiviert.&lt;br /&gt;
Setzt man $cronJob['completed'] auf &amp;quot;false&amp;quot;, wird der Job nicht deaktiviert auch wenn $cronJob['runonce'] auf &amp;quot;true&amp;quot; gesetzt ist. &lt;br /&gt;
&lt;br /&gt;
===$cronJob['logging']===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;true&amp;quot;: die Protokollierung des Jobs ist eingeschaltet, für Testzwecke gedacht.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;false&amp;quot;: nur Fehler werden protokolliert, so sollte der Job im Normalfall eingestellt sein.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser Wert kann vom Job geändert werden, führt aber eventuell zur Verwirrung der Nutzer:&lt;br /&gt;
* Setzen auf &amp;quot;true&amp;quot; : die Protokollierung des Jobs ist eingeschaltet.&lt;br /&gt;
* Setzen auf &amp;quot;false&amp;quot;: die Protokollierung des Jobs ist abgeschaltet, bis auf Fehlermeldungen.&lt;br /&gt;
&lt;br /&gt;
===$cronJob['completed']===&lt;br /&gt;
&lt;br /&gt;
Dieser Status ist per Default &amp;quot;true&amp;quot; und bedeutet, wenn der Job fertig ist wird dieser als erledigt markiert und wird neu geplant.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Benötigt der Job zu viel Zeit und man hat die Möglichkeit diesen abzubrechen und beim nächsten Aufruf an der Stelle weiter zu machen, setzt man diesen Status auf &amp;quot;false&amp;quot; und beendet den Job. Dadurch wird der alte Zeitplan beibehalten und beim nächsten Scheduler Aufruf der Job wieder gestartet, um die Arbeit abzuschließen.&lt;br /&gt;
&lt;br /&gt;
==Beispiel Script==&lt;br /&gt;
Script liegt hier unter system/modules/cron/jobs/PurgeLog.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Initialize the system&lt;br /&gt;
 */&lt;br /&gt;
if (!function_exists('log_message')) // zur Vermeidung von PHP Fatal error:  Cannot redeclare __error()&lt;br /&gt;
{&lt;br /&gt;
    define('TL_MODE', 'BE');&lt;br /&gt;
&lt;br /&gt;
    // Suche nach initialize.php, damit auch über composer nutzbar&lt;br /&gt;
    $dir = __DIR__;&lt;br /&gt;
    &lt;br /&gt;
    while ($dir != '.' &amp;amp;&amp;amp; $dir != '/' &amp;amp;&amp;amp; !is_file($dir . '/system/initialize.php'))&lt;br /&gt;
    {&lt;br /&gt;
        $dir = dirname($dir);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if (!is_file($dir . '/system/initialize.php'))&lt;br /&gt;
    {&lt;br /&gt;
        echo 'Could not find initialize.php!';&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    require($dir . '/system/initialize.php');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Class PurgeLog&lt;br /&gt;
 * &lt;br /&gt;
 * @copyright  Glen Langer 2012..2013 &amp;lt;http://www.contao.glen-langer.de&amp;gt;&lt;br /&gt;
 * @author     Glen Langer (BugBuster)&lt;br /&gt;
 * @package    Cron&lt;br /&gt;
 */&lt;br /&gt;
class PurgeLog extends Backend&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Initialize the controller&lt;br /&gt;
     */&lt;br /&gt;
    public function __construct()&lt;br /&gt;
    {&lt;br /&gt;
    	parent::__construct();&lt;br /&gt;
    } // __construct&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Implement the commands to run by this batch program&lt;br /&gt;
     */&lt;br /&gt;
    public function run()&lt;br /&gt;
    {&lt;br /&gt;
        global  $cronJob; // from CronController&lt;br /&gt;
        &lt;br /&gt;
        //At this time the job should be defered,&lt;br /&gt;
        //no new actions should be started after this time.&lt;br /&gt;
        if (time() &amp;gt;= $cronJob['endtime'])&lt;br /&gt;
        {&lt;br /&gt;
            $cronJob['completed'] = false;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;DELETE FROM `tl_log`&amp;quot;)-&amp;gt;executeUncached();&lt;br /&gt;
        if ($cronJob['logging'])&lt;br /&gt;
        {&lt;br /&gt;
            $this-&amp;gt;log('System log purged by cron job.', 'PurgeLog run()', TL_GENERAL);&lt;br /&gt;
        }&lt;br /&gt;
    } // run&lt;br /&gt;
	&lt;br /&gt;
} // class PurgeLog&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Instantiate log purger&lt;br /&gt;
 */&lt;br /&gt;
$objPurge = new PurgeLog();&lt;br /&gt;
$objPurge-&amp;gt;run();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weitere Cron-Jobs==&lt;br /&gt;
Weitere Cron-Jobs werden in einem extra Wiki Artikel gezeigt: [[Cron-Jobs_für_Erweiterung_Cron]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] 15:45, 2. Jun. 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Composer/Hosting</id>
		<title>Composer/Hosting</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Composer/Hosting"/>
				<updated>2014-08-28T12:58:08Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Tipps und Tricks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Composer]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Installation und Updates]]&lt;br /&gt;
&lt;br /&gt;
=Kompatibilitätsliste=&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite werden Webhoster gelistet, auf denen Contao mit Composer läuft, mit Einschränkungen läuft oder nicht läuft.&lt;br /&gt;
&lt;br /&gt;
==Kompatible Webhostingpakete==&lt;br /&gt;
&lt;br /&gt;
Bitte beim Eintragen auf eine alfabetische Reihenfolge achten.&lt;br /&gt;
&lt;br /&gt;
* [https://www.all-inkl.com/ All-Inkl] Getestet unter Contao 3.3.5 auf Paket 'all-inkl PrivatPlus', mit Zeile ''AddHandler php53-cgi .php'' am Anfang der .htaccess  ([[User:Nina|Nina]])&lt;br /&gt;
* [https://www.df.eu/ domainfactory] ManagedServer L4  ([[User:Hellschu|Hellschu]])/ ab ManagedHosting Pro lauffähig ([[User:MacKP|MacKP]])&lt;br /&gt;
* [http://hosteurope.de/ Hosteurope] Virtual Server Managed, phar whitellisten ([[User:Lucina|Lucina]])&lt;br /&gt;
* [https://inetrobots.de/ Inetrobots.de] Getestet mit Webhosting &amp;quot;Professional&amp;quot; ([https://community.contao.org/de/member.php?4042-ciaobello ciaobello]).&lt;br /&gt;
* [https://www.fc-hosting.de/ fc-hosting.de] Paket: Expert 3.2 ohne Extras ([https://community.contao.org/de/member.php?6680-dackelchen dackelchen])&lt;br /&gt;
* [http://www.metanet.ch Metanet.ch] Wichtig ist zu beachten dass mindestens Plesk 11.5 installiert ist (darauf beharren). Dann kann die notwendige Funktion im Kontrollpanel pro Domain eingeschaltet werden. Getestet mit METAHost ([https://community.contao.org/de/member.php?4042-ciaobello ciaobello]).&lt;br /&gt;
* [http://w4w.net/ w4w.net] Standardhosting ([[User:Lucina|Lucina]])&lt;br /&gt;
* [https://www.webhostone.de/ WebhostOne] Webhosting MultiApp ([[User:Lucina|Lucina]])&lt;br /&gt;
&lt;br /&gt;
==Inkompatible Webhostingpakete==&lt;br /&gt;
&lt;br /&gt;
* [http://df.eu/ Domain Factory] MyHomePlus (zu geringe Ressourcen, u.a. nur 50 MB Ram ([[User:Lucina|Lucina]])&lt;br /&gt;
* [https://www.hosteurope.de/ Hosteurope] Webpack (nicht Webpack Pro) (Ursache z.Zt. unbekannt) ([[User:Lucina|Lucina]])&lt;br /&gt;
* [https://www.webhostone.de/ WebhostOne] Webhosting Single App (RAM nicht ausreichend) ([[User:Lucina|Lucina]])&lt;br /&gt;
==Tipps und Tricks ==&lt;br /&gt;
* Bei df.eu kann die php.ini so bearbeitet werden, das auch die Optionalen Bedingungen erfüllt werden (per php.ini Editor im Backend von df.eu)&lt;br /&gt;
* Bei goneo + PHP 5.4 kann eine eigene php.ini verwendet werden, damit kann man die Bedingungen erreichen. [[Webhoster#goneo]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Mediabox_auf_Deutsch</id>
		<title>Mediabox auf Deutsch</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Mediabox_auf_Deutsch"/>
				<updated>2014-08-20T16:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Variante ab Contao 3.2 (HTML5) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mediabox]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.8.2}}&lt;br /&gt;
Oft besteht der Wunsch, die Mediabox einzudeutschen.&amp;lt;br /&amp;gt;Da die Buttons dabei schon auf neutrale Symbole geändert wurden, reicht es, nur den Text &amp;quot;x of y&amp;quot; zu ändern.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dazu erstellt man eine Kopie von moo_mediabox.tpl|xhtml|html5 (z.B. moo_mediabox_de.html5) direkt über das Backend:&lt;br /&gt;
* &amp;quot;Layout&amp;quot; - &amp;quot;Templates&amp;quot;&lt;br /&gt;
* Neues Template , Auswahl moo_mediabox, Template erstellen (hier je nach Ausgabeformat das richtige auswählen)&lt;br /&gt;
* Template umbenennen (Bleistift) nach moo_mediabox_de (die Endung fügt Contao selber an, also vorher das richtige Template auswählen)&lt;br /&gt;
* Template editieren, Code anpassen wie unten gezeigt, speichern&lt;br /&gt;
&lt;br /&gt;
Nun muss man im Layout noch das geänderte Template aktivieren, dazu unter:&lt;br /&gt;
* &amp;quot;Layout&amp;quot; - &amp;quot;Themes&amp;quot; - &amp;quot;Seitenlayouts&amp;quot; - Layout bearbeiten  (Contao ab 2.9)&lt;br /&gt;
* &amp;quot;Layout&amp;quot; - &amp;quot;Seitenlayouts&amp;quot; - Layout bearbeiten (TYPOlight bis 2.8.x)&lt;br /&gt;
* hier nimmt man nun bei &amp;quot;MooTools-Templates&amp;quot; das Häkchen bei &amp;quot;moo_mediabox&amp;quot; raus und bei &amp;quot;moo_mediabox_de&amp;quot; rein.&lt;br /&gt;
* fertig&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 3.2 (HTML5)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = 'assets/mootools/mediabox/'. MEDIABOX .'/css/mediaboxAdvBlack21.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script src=&amp;quot;&amp;lt;?php echo TL_ASSETS_URL; ?&amp;gt;assets/mootools/mediabox/&amp;lt;?php echo MEDIABOX; ?&amp;gt;/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function($) {&lt;br /&gt;
  window.addEvent('domready', function() {&lt;br /&gt;
    var links = $$('a').filter(function(el) {&lt;br /&gt;
      return el.getAttribute('data-lightbox') != null;&lt;br /&gt;
    });&lt;br /&gt;
    $$(links).mediabox({&lt;br /&gt;
      // Put custom options here&lt;br /&gt;
      counterText: '&amp;lt;br&amp;gt;(Bild {x} von {y})'&lt;br /&gt;
    }, function(el) {&lt;br /&gt;
  	  return [el.href, el.title, el.getAttribute('data-lightbox')];&lt;br /&gt;
    }, function(el) {&lt;br /&gt;
      var data = this.getAttribute('data-lightbox').split(' ');&lt;br /&gt;
      return (this == el) || el.getAttribute('data-lightbox').match(data[0]);&lt;br /&gt;
    });&lt;br /&gt;
    // Support swiping on mobile devices&lt;br /&gt;
    $('mbImage').addEvent('swipe', function(e) {&lt;br /&gt;
      (e.direction == 'left') ? $('mbNextLink').fireEvent('click') : $('mbPrevLink').fireEvent('click');&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})(document.id);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Zeile mit &amp;quot;counterText&amp;quot; wurde eingefügt.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 2.11 (HTML5)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = TL_PLUGINS_URL . 'plugins/mediabox/'. MEDIABOX .'/css/mediaboxAdvBlack21.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script src=&amp;quot;&amp;lt;?php echo TL_PLUGINS_URL; ?&amp;gt;plugins/mediabox/&amp;lt;?php echo MEDIABOX; ?&amp;gt;/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$('a').filter(function(el) {&lt;br /&gt;
    return el.getAttribute('data-lightbox') != null;&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({&lt;br /&gt;
    counterText: '&amp;lt;p&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'&lt;br /&gt;
  }, function(el) {&lt;br /&gt;
	return [el.href, el.title, el.getAttribute('data-lightbox')];&lt;br /&gt;
  }, function(el) {&lt;br /&gt;
    var data = this.getAttribute('data-lightbox').split(' ');&lt;br /&gt;
    return (this == el) || (data[0] &amp;amp;&amp;amp; el.getAttribute('data-lightbox').match(data[0]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent('domready', Mediabox.scanPage);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Zeile mit &amp;quot;counterText&amp;quot; wurde eingefügt, der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags eingebunden.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 2.10 (XHTML)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = TL_PLUGINS_URL . 'plugins/mediabox/'. MEDIABOX .'/css/mediaboxAdvBlack21.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;?php echo TL_PLUGINS_URL; ?&amp;gt;plugins/mediabox/&amp;lt;?php echo MEDIABOX; ?&amp;gt;/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/* &amp;lt;![CDATA[ */&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$('a').filter(function(el) {&lt;br /&gt;
    return el.rel &amp;amp;&amp;amp; el.rel.test(/^lightbox/i);&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({counterText: '&amp;lt;p&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'}, null, function(el) {&lt;br /&gt;
    var rel0 = this.rel.replace(/[[]|]/gi,' ');&lt;br /&gt;
    var relsize = rel0.split(' ');&lt;br /&gt;
    return (this == el) || ((this.rel.length &amp;gt; 8) &amp;amp;&amp;amp; el.rel.match(relsize[1]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent('domready', Mediabox.scanPage);&lt;br /&gt;
/* ]]&amp;gt; */&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags eingebunden.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 2.9.1==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = 'plugins/mediabox/css/mediabox.css?'. MEDIABOX .'|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;plugins/mediabox/js/mediabox.js?&amp;lt;?php echo MEDIABOX; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--//--&amp;gt;&amp;lt;![CDATA[//&amp;gt;&amp;lt;!--&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$(&amp;quot;a&amp;quot;).filter(function(el) {&lt;br /&gt;
    return el.rel &amp;amp;&amp;amp; el.rel.test(/^lightbox/i);&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({counterText: '&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'}, null, function(el) {&lt;br /&gt;
    var rel0 = this.rel.replace(/[[]|]/gi,&amp;quot; &amp;quot;);&lt;br /&gt;
    var relsize = rel0.split(&amp;quot; &amp;quot;);&lt;br /&gt;
    return (this == el) || ((this.rel.length &amp;gt; 8) &amp;amp;&amp;amp; el.rel.match(relsize[1]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent(&amp;quot;domready&amp;quot;, Mediabox.scanPage);&lt;br /&gt;
//--&amp;gt;&amp;lt;!]]&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags und einem &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; eingebunden. Grund ist ein kleiner Bug in Mediabox, der dazu führen kann, dass der Beschreibungstext nicht vollständig angezeigt wird, da die Höhe dafür falsch berechnet wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Tags zwingen nun die Mediabox dazu die Höhe zu erweitern. Dadurch entstehen zwar ab und zu darunter unschöne Abstände, aber der Text ist dafür vollständig, was wichtiger ist.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Variante für Contao 2.8==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = 'plugins/mediabox/css/mediabox.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;plugins/mediabox/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--//--&amp;gt;&amp;lt;![CDATA[//&amp;gt;&amp;lt;!--&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$(&amp;quot;a&amp;quot;).filter(function(el) {&lt;br /&gt;
    return el.rel &amp;amp;&amp;amp; el.rel.test(/^lightbox/i);&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({counterText: '&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'}, null, function(el) {&lt;br /&gt;
    var rel0 = this.rel.replace(/[[]|]/gi,&amp;quot; &amp;quot;);&lt;br /&gt;
    var relsize = rel0.split(&amp;quot; &amp;quot;);&lt;br /&gt;
    return (this == el) || ((this.rel.length &amp;gt; 8) &amp;amp;&amp;amp; el.rel.match(relsize[1]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent(&amp;quot;domready&amp;quot;, Mediabox.scanPage);&lt;br /&gt;
//--&amp;gt;&amp;lt;!]]&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags und einem &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; eingebunden. Grund ist ein kleiner Bug in Mediabox, der dazu führen kann, dass der Beschreibungstext nicht vollständig angezeigt wird, da die Höhe dafür falsch berechnet wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Tags zwingen nun die Mediabox dazu die Höhe zu erweitern. Dadurch entstehen zwar ab und zu darunter unschöne Abstände, aber der Text ist dafür vollständig, was wichtiger ist.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] 23:11, 2. Jan. 2012 (CET)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Mediabox_auf_Deutsch</id>
		<title>Mediabox auf Deutsch</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Mediabox_auf_Deutsch"/>
				<updated>2014-08-20T16:29:28Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Variante ab Contao 3.2 (HTML5) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mediabox]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.8.2}}&lt;br /&gt;
Oft besteht der Wunsch, die Mediabox einzudeutschen.&amp;lt;br /&amp;gt;Da die Buttons dabei schon auf neutrale Symbole geändert wurden, reicht es, nur den Text &amp;quot;x of y&amp;quot; zu ändern.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dazu erstellt man eine Kopie von moo_mediabox.tpl|xhtml|html5 (z.B. moo_mediabox_de.html5) direkt über das Backend:&lt;br /&gt;
* &amp;quot;Layout&amp;quot; - &amp;quot;Templates&amp;quot;&lt;br /&gt;
* Neues Template , Auswahl moo_mediabox, Template erstellen (hier je nach Ausgabeformat das richtige auswählen)&lt;br /&gt;
* Template umbenennen (Bleistift) nach moo_mediabox_de (die Endung fügt Contao selber an, also vorher das richtige Template auswählen)&lt;br /&gt;
* Template editieren, Code anpassen wie unten gezeigt, speichern&lt;br /&gt;
&lt;br /&gt;
Nun muss man im Layout noch das geänderte Template aktivieren, dazu unter:&lt;br /&gt;
* &amp;quot;Layout&amp;quot; - &amp;quot;Themes&amp;quot; - &amp;quot;Seitenlayouts&amp;quot; - Layout bearbeiten  (Contao ab 2.9)&lt;br /&gt;
* &amp;quot;Layout&amp;quot; - &amp;quot;Seitenlayouts&amp;quot; - Layout bearbeiten (TYPOlight bis 2.8.x)&lt;br /&gt;
* hier nimmt man nun bei &amp;quot;MooTools-Templates&amp;quot; das Häkchen bei &amp;quot;moo_mediabox&amp;quot; raus und bei &amp;quot;moo_mediabox_de&amp;quot; rein.&lt;br /&gt;
* fertig&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 3.2 (HTML5)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;&amp;lt;?php echo TL_ASSETS_URL; ?&amp;gt;assets/mootools/mediabox/&amp;lt;?php echo MEDIABOX; ?&amp;gt;/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function($) {&lt;br /&gt;
  window.addEvent('domready', function() {&lt;br /&gt;
    var links = $$('a').filter(function(el) {&lt;br /&gt;
      return el.getAttribute('data-lightbox') != null;&lt;br /&gt;
    });&lt;br /&gt;
    $$(links).mediabox({&lt;br /&gt;
      // Put custom options here&lt;br /&gt;
      counterText: '&amp;lt;br&amp;gt;(Bild {x} von {y})'&lt;br /&gt;
    }, function(el) {&lt;br /&gt;
  	  return [el.href, el.title, el.getAttribute('data-lightbox')];&lt;br /&gt;
    }, function(el) {&lt;br /&gt;
      var data = this.getAttribute('data-lightbox').split(' ');&lt;br /&gt;
      return (this == el) || el.getAttribute('data-lightbox').match(data[0]);&lt;br /&gt;
    });&lt;br /&gt;
    // Support swiping on mobile devices&lt;br /&gt;
    $('mbImage').addEvent('swipe', function(e) {&lt;br /&gt;
      (e.direction == 'left') ? $('mbNextLink').fireEvent('click') : $('mbPrevLink').fireEvent('click');&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})(document.id);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Zeile mit &amp;quot;counterText&amp;quot; wurde eingefügt.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 2.11 (HTML5)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = TL_PLUGINS_URL . 'plugins/mediabox/'. MEDIABOX .'/css/mediaboxAdvBlack21.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script src=&amp;quot;&amp;lt;?php echo TL_PLUGINS_URL; ?&amp;gt;plugins/mediabox/&amp;lt;?php echo MEDIABOX; ?&amp;gt;/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$('a').filter(function(el) {&lt;br /&gt;
    return el.getAttribute('data-lightbox') != null;&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({&lt;br /&gt;
    counterText: '&amp;lt;p&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'&lt;br /&gt;
  }, function(el) {&lt;br /&gt;
	return [el.href, el.title, el.getAttribute('data-lightbox')];&lt;br /&gt;
  }, function(el) {&lt;br /&gt;
    var data = this.getAttribute('data-lightbox').split(' ');&lt;br /&gt;
    return (this == el) || (data[0] &amp;amp;&amp;amp; el.getAttribute('data-lightbox').match(data[0]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent('domready', Mediabox.scanPage);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Zeile mit &amp;quot;counterText&amp;quot; wurde eingefügt, der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags eingebunden.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 2.10 (XHTML)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = TL_PLUGINS_URL . 'plugins/mediabox/'. MEDIABOX .'/css/mediaboxAdvBlack21.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;?php echo TL_PLUGINS_URL; ?&amp;gt;plugins/mediabox/&amp;lt;?php echo MEDIABOX; ?&amp;gt;/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/* &amp;lt;![CDATA[ */&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$('a').filter(function(el) {&lt;br /&gt;
    return el.rel &amp;amp;&amp;amp; el.rel.test(/^lightbox/i);&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({counterText: '&amp;lt;p&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'}, null, function(el) {&lt;br /&gt;
    var rel0 = this.rel.replace(/[[]|]/gi,' ');&lt;br /&gt;
    var relsize = rel0.split(' ');&lt;br /&gt;
    return (this == el) || ((this.rel.length &amp;gt; 8) &amp;amp;&amp;amp; el.rel.match(relsize[1]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent('domready', Mediabox.scanPage);&lt;br /&gt;
/* ]]&amp;gt; */&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags eingebunden.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variante ab Contao 2.9.1==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = 'plugins/mediabox/css/mediabox.css?'. MEDIABOX .'|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;plugins/mediabox/js/mediabox.js?&amp;lt;?php echo MEDIABOX; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--//--&amp;gt;&amp;lt;![CDATA[//&amp;gt;&amp;lt;!--&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$(&amp;quot;a&amp;quot;).filter(function(el) {&lt;br /&gt;
    return el.rel &amp;amp;&amp;amp; el.rel.test(/^lightbox/i);&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({counterText: '&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'}, null, function(el) {&lt;br /&gt;
    var rel0 = this.rel.replace(/[[]|]/gi,&amp;quot; &amp;quot;);&lt;br /&gt;
    var relsize = rel0.split(&amp;quot; &amp;quot;);&lt;br /&gt;
    return (this == el) || ((this.rel.length &amp;gt; 8) &amp;amp;&amp;amp; el.rel.match(relsize[1]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent(&amp;quot;domready&amp;quot;, Mediabox.scanPage);&lt;br /&gt;
//--&amp;gt;&amp;lt;!]]&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags und einem &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; eingebunden. Grund ist ein kleiner Bug in Mediabox, der dazu führen kann, dass der Beschreibungstext nicht vollständig angezeigt wird, da die Höhe dafür falsch berechnet wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Tags zwingen nun die Mediabox dazu die Höhe zu erweitern. Dadurch entstehen zwar ab und zu darunter unschöne Abstände, aber der Text ist dafür vollständig, was wichtiger ist.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Variante für Contao 2.8==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Add mediabox style sheet&lt;br /&gt;
$GLOBALS['TL_CSS'][] = 'plugins/mediabox/css/mediabox.css|screen';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;plugins/mediabox/js/mediabox.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--//--&amp;gt;&amp;lt;![CDATA[//&amp;gt;&amp;lt;!--&lt;br /&gt;
Mediabox.scanPage = function() {&lt;br /&gt;
  var links = $$(&amp;quot;a&amp;quot;).filter(function(el) {&lt;br /&gt;
    return el.rel &amp;amp;&amp;amp; el.rel.test(/^lightbox/i);&lt;br /&gt;
  });&lt;br /&gt;
  $$(links).mediabox({counterText: '&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;(Bild {x} von {y})&amp;lt;/p&amp;gt;'}, null, function(el) {&lt;br /&gt;
    var rel0 = this.rel.replace(/[[]|]/gi,&amp;quot; &amp;quot;);&lt;br /&gt;
    var relsize = rel0.split(&amp;quot; &amp;quot;);&lt;br /&gt;
    return (this == el) || ((this.rel.length &amp;gt; 8) &amp;amp;&amp;amp; el.rel.match(relsize[1]));&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
window.addEvent(&amp;quot;domready&amp;quot;, Mediabox.scanPage);&lt;br /&gt;
//--&amp;gt;&amp;lt;!]]&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der deutsche Text wurde noch in &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; Tags und einem &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; eingebunden. Grund ist ein kleiner Bug in Mediabox, der dazu führen kann, dass der Beschreibungstext nicht vollständig angezeigt wird, da die Höhe dafür falsch berechnet wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Tags zwingen nun die Mediabox dazu die Höhe zu erweitern. Dadurch entstehen zwar ab und zu darunter unschöne Abstände, aber der Text ist dafür vollständig, was wichtiger ist.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] 23:11, 2. Jan. 2012 (CET)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Webhoster</id>
		<title>Webhoster</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Webhoster"/>
				<updated>2014-08-18T21:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Goneo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installation und Updates]]&lt;br /&gt;
=Liste kompatibler Webhoster=&lt;br /&gt;
&amp;lt;big&amp;gt;'''Diese Informationen basieren ausschließlich auf Erfahrungen von Nutzern. Diese Erfahrungen stimmen teilweise nicht für alle Webpakete eines Anbieters! Manchmal ändern Anbieter auch die technischen Einstellungen, so dass sich neue Umstände ergeben. Verlasst euch niemals nur darauf, sondern führt wenn möglich mindestens eine Diagnose, am besten aber eine Testinstallation auf einem Test-Webspace (beim Anbieter nachfragen) durch.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abkürzungen:&lt;br /&gt;
* SMH = [[Safemode Hack]]&lt;br /&gt;
* ER = [[Systemdiagnosetool#PHP_configuration|Extension Repository]] (siehe ''SOAP extension'')&lt;br /&gt;
* LU = Live Update&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!Webhoster&lt;br /&gt;
!Tarif&lt;br /&gt;
!SMH notwendig&lt;br /&gt;
!.htaccess notwendig&lt;br /&gt;
!php.ini notwendig&lt;br /&gt;
!CHMOD notwendig&lt;br /&gt;
!ER möglich&lt;br /&gt;
!LU möglich&lt;br /&gt;
!Sonstige Anmerkungen&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.1und1.de 1&amp;amp;1] || ab 1&amp;amp;1 Homepage Perfect || nein || {{td_red |PHP 5}} || nein || nein || ja || ja || [[1 und 1 Internet|detaillierte Installationsanleitung]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.1blu.de 1blu] || Homepage Unlimited, Homepage Professional || nein || nein || nein || nein || ja || ja || [[#1blu|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://alfahosting.de Alfahosting] || Multipaket, Profipaket, Businesspaket || nein || nein || nein || nein || ja || ja || [[#Alfahosting|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://all-inkl.com All-Inkl] || ab &amp;quot;Start&amp;quot; Tarif || nein || {{td_red| PHP 5}} || nein || nein || ja || ja || [[#All-Inkl|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.arcor.de Arcor] || 700 MB Webspace || {{td_yellow |unbekannt}} || nein || nein || nein || {{td_red | SOAP}} || ja || [[#Arcor|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.bytecamp.net bytecamp] || bytecamp arbeitet mit einem einzigen Tarifmodell || nein || {{td_red |PHP 5}} || nein || nein || ja || {{td_yellow|unbekannt}} || [[#bytecamp|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.bplaced.net bplaced]&amp;lt;br /&amp;gt;(Freehoster, in den Userseiten werbefrei) || Free || nein || nein || nein || nein || {{td_red |nein}} | {{td_red |nein}} || [[#bplaced|Details]]&lt;br /&gt;
|-&lt;br /&gt;
|CanHost || CAN-NUKE und andere || nein || nein || {{td_red |ja}} || nein || ja || ja || [[#CanHost|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.celeros.de Celeros] || Private || nein || nein || nein || nein || ja || {{td_yellow|unbekannt}} ||keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contao-webhosting.de Contao Webhosting] || ab Paket S || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cyon.ch Cyon] || Cherry, KIWI || nein || laut Nutzer &amp;quot;zed&amp;quot; inzwischen nicht mehr nötig, PHP5 nun Standard || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.df.eu DomainFactory] || ManagedHosting L, ManagedHosting M, My Home Vorkonfiguration 1, My Home Dynamic || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.dynamic-net.ch dynamic-net] || Alle Pakete inkl. Reseller || nein || nein || nein || nein || ja || ja || [[#dynamic-net|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.fc-hosting.de fc-hosting] || Profi-2 || nein || nein || nein || nein || ja || ja || [[#fc-hosting|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.flyhost.de FlyHost] || Flyhost 100, Flyhost 50 || nein || nein || nein || nein || ja || {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.genotec.ch Genotec] || Shared Pro UNIX || nein || nein || nein || nein || {{td_red | SOAP}} | {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.goneo.de goneo] || Homepage Easy, Profi und Premium  || nein || nein || nein || nein || ja || ja || [[#goneo|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.greatnet.de Greatnet] || Classic || nein || {{td_red |PHP 5 }} || nein || nein || ja || ja || [[#Greatnet|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hetzner.de Hetzner] || ab dem Paket &amp;quot;Level 4&amp;quot; voll kompatibel || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.host4free.de Host4Free] || individueller Tarif || nein || nein || nein || nein || ja || ja || [[#Host4Free|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hosteurope.de Hosteurope] || ab Webpack M || nein || nein || nein || nein || ja || ja || [[#Hosteurope|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hosting-agency.de Hosting-Agency] || Agency 250 || nein || nein || nein || nein || {{td_red | SOAP}} || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hostmonster.com Hostmonster] || - || nein || nein || nein || nein || {{td_yellow |unbekannt}} | {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hostmax.ch HostMax] || One || nein || nein || nein || nein || nein || ja || [[#HostMax|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hostpoint.ch Hostpoint] || SH Server Standard  || nein || nein || nein || nein || ja || ja || [[#Hostpoint|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hoststar.ch Hoststar] || StarEntry || nein || {{td_red |PHP 5}} | {{td_red |mod_rewrite aktivieren lassen}} || nein || {{td_yellow | SOAP}} || ja || [[#Hoststar|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hosttech.de hosttech] || Easy 10000 || {{td_red |Ja}} || nein || nein || nein || ja || {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.inetrobots.com iNet Robots] || ab Web Home  || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.intersaar.de intersaar] || ab Web-Präsenz &amp;quot;Eco&amp;quot; aufwärts (&amp;quot;Eco&amp;quot;, &amp;quot;Business&amp;quot;, &amp;quot;Professional&amp;quot;, &amp;quot;Premium&amp;quot;) gut geeignet. || nein || nein || nein || nein || {{td_yellow | SOAP}} | {{td_yellow |unbekannt}} || [[#intersaar|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mittwald.de Mittwald] || - || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.one.com One.com] || 3000MB || {{td_yellow |unbekannt}} || nein || nein || nein || ja || {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.strato.de Strato] || Strato PowerPlus, Strato Speedplus || nein || {{td_red |PHP 5 bei älteren Hostings }} || nein || nein || {{td_red | SOAP}} | {{td_yellow |unbekannt}} || [[#Strato|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.suleitec.de Suleitec] || ab Tarif Expert || nein || nein || nein || nein || {{td_yellow |unbekannt}} | {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.tecserver.com TecServer] || Webhosting Small || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.tng.de TNG] || VLAMP-Server || nein || nein || nein || nein || ja || ja || [[#TNG|Details]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.tophoster.de tophoster.de] || alle || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [https://uberspace.de Uberspace] || Uberspace arbeitet mit einem einzigen Tarifmodell || nein || nein || nein || nein || ja || {{td_yellow|unbekannt}} || [[#Uberspace|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.united-domains.de united-domains] || Standard || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.web.de web.de] || colspan=&amp;quot;8&amp;quot; | Siehe [[1 und 1 Internet]] da web.de eine Tochtergesellschaft ist.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.webhoster.de webhoster.de] || Webhosting Starter Tarif || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.webhostone.de WebhostOne] || ab Basic-300 (Carino: empfohlen Basic 750), Pro-1500 || nein || nein || nein || nein || ja || ja || [[#WebhostOne|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.world4you.com World4You] || Domainserver Start || nein || nein || nein || nein || ja || ja || [[#World4You|Details]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Im [http://www.contao-community.de/showthread.php?66-Hosting-von-Contao-Installationen Contao-Forum] findet sich ebenfalls eine (evtl. aktuellere) [http://www.contao-community.de/showthread.php?66-Hosting-von-Contao-Installationen Übersicht über Contao-kompatible Webhoster].&lt;br /&gt;
&lt;br /&gt;
=Liste inkompatibler Webhoster=&lt;br /&gt;
In dieser Liste werden Webhoster gelistet, bei denen Contao nicht eingesetzt werden kann oder sollte, da sie die Nutzung wichtiger Systemfunktionen deaktivieren.&lt;br /&gt;
Bitte beim Hinzufügen von Webhostern darauf achten, detailliert zu beschreiben woran es scheitert, wie z.B. &amp;quot;stellt nur PHP4 zur Verfügung&amp;quot;, alternativ kann auch der Inhalt des betreffenden Forum-Threads rezitiert werden und selbiger Thread als Sonstige Anmerkung verlinkt werden.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;margin:0;vertical-align:top;&amp;quot;&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Diese Informationen basieren ausschließlich auf Erfahrungen von Nutzern. Diese Erfahrungen stimmen teilweise nicht für alle Webpakete eines Anbieters! Manchmal ändern Anbieter auch die technischen Einstellungen, so dass sich neue Umstände ergeben. Verlasst euch niemals nur darauf, sondern führt wenn möglich mindestens eine Diagnose, am besten aber eine Testinstallation auf einem Test-Webspace (beim Anbieter nachfragen) durch.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!Webhoster&lt;br /&gt;
!Grund der Inkompatibilität&lt;br /&gt;
!Sonstige Anmerkungen&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.1a-websolutions.ch 1a-websolutions] || Verwendet mod_security, welches das Datenbank-Update lahm legt. || [http://www.contao-community.de/showthread.php?5895-Fehlermeldung-bei-der-Installatio Forum-Thread]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.t-online.de T-Online] ||Unterstützt keinen .htaccess Dateien. Daher keine URL-Umschreibung und keine Absicherung von Verzeichnissen. || [http://www.contao-community.de/showthread.php?5621-t-online Forum-Thread]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Workarounds für bestimmte Webhoster=&lt;br /&gt;
Bei manchen Webhostern ist es leider notwendig von [[Installation|Standard Installationsschema]] abzuweichen. Oftmals betrifft dies den so genannten [[Safemode Hack]], welcher bei etlichen Webhostern notwendig ist. Weiterhin ist oftmals die SOAP Erweiterung nicht in PHP enthalten, was den Erweiterungskatalog nicht verwendbar macht (Mögliche Abhilfe hierbei ist jedoch [[TensideRepository]] für TYPOlight oder [[nusoap]] für Contao).&lt;br /&gt;
&lt;br /&gt;
Diese Besonderheiten sind hier aufgeführt um zu ermöglichen, dass Contao bei diesen Webhostern läuft.&lt;br /&gt;
&lt;br /&gt;
==1blu==&lt;br /&gt;
PHP muss mittels einer im Verzeichnis abzulegenden Konfigurationsdatei auf Version 5 umgestellt werden. Problemlos und in den 1Blu-FAQ gut erklärt.&lt;br /&gt;
==Alfahosting==&lt;br /&gt;
One-Click-Installation von Contao.&lt;br /&gt;
==All-Inkl==&lt;br /&gt;
PHP 5 Aktivierung in .htaccess:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;AddHandler php5-cgi .php&amp;lt;/source&amp;gt;&lt;br /&gt;
==Arcor==&lt;br /&gt;
Läuft sehr langsam, Premium-Pakete mit weniger Kunden pro Server gibt es nicht. Safe_Mode ist aktiviert, die Seite funktioniert trotzdem, nur eben sehr langsam.&lt;br /&gt;
==bytecamp==&lt;br /&gt;
PHP 5 Aktivierung in .htaccess:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;AddType application/x-httpd-php5 .php&amp;lt;/source&amp;gt;&lt;br /&gt;
Vereinfache Installation und PHP5 vorkonfiguriert durch eigenen Installer. [http://www.bytecamp.net/de/hosting/details/installer.html 3 Schritte bequem per Webbrowser. ]&lt;br /&gt;
==bplaced==&lt;br /&gt;
Laut User [http://www.contao-community.de/showthread.php?7436-PHP-Version-5.3.2&amp;amp;highlight=bplaced tommy] gibt es inzwischen Ärger mit diesem Freehoster.&lt;br /&gt;
==CanHost==&lt;br /&gt;
Hängt stark vom gebuchten Paket ab, einige Änderungen sind im IP-Conf möglich, sonstige sind häufig per Mail an Support machbar.&amp;lt;br /&amp;gt;&lt;br /&gt;
Kein Backup von Webspace und Datenbanken im Preis enthalten (hinzubuchbar).&amp;lt;br /&amp;gt; &lt;br /&gt;
Teilweise nur kurzes PHP-Zeitlimit (Support um Aufstockung bitten).&amp;lt;br /&amp;gt;&lt;br /&gt;
Sehr unterschiedliche Konfigurationen der Server (auch bei gleichen Hosting-Paketen).&amp;lt;br /&amp;gt;&lt;br /&gt;
In der Vergangenheit auch zeitweise Ausfälle; Domain teilweise nicht erreichbar.&amp;lt;br /&amp;gt;&lt;br /&gt;
Einige ausgewählte php.ini-Parameter lassen sich im IP-Conf (Konfigurationstool) selbst einstellen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Über den Support kann man fast immer die benötigten Einstellungen bekommen (Beispiele: allow_url_fopen=On, max_execution_time=30, upload_max_filesize=8M, mcrypt aktiviert, SOAP installiert).&amp;lt;br /&amp;gt;&lt;br /&gt;
Nicht in allen Paketen läßt sich der Safe-Mode einstellen (safe_mode = Off).&lt;br /&gt;
==dynamic-net==&lt;br /&gt;
Falls das Extension Repository nicht ersichtlich ist, reicht ein kurzes Supportticket, um SOAP freischalten zu lassen.&lt;br /&gt;
==fc-hosting==&lt;br /&gt;
Newsletterversand möglich, aber nur blockweise (100Stk.).&lt;br /&gt;
==goneo==&lt;br /&gt;
Nur .de Domains gelten als Inklusivdomains, andere müssen kostenpflichtig zugebucht werden.&lt;br /&gt;
Nutzung des Composers ist mit PHP 5.3 nicht möglich, da allow_url_fopen standardmäßig und nicht änderbar auf Off gesetzt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Wer auf PHP 5.4 umstellt, hat die Möglichkeit eine eigene php.ini zu nutzen.&lt;br /&gt;
Das nachfolgende PHP-Script muss auf den Webserver kopiert (z.B. als copyini.php) und aufgerufen werden (z.B. mit http://www.domain.de/copyini.php)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $cfg = get_cfg_var( 'cfg_file_path' );&lt;br /&gt;
  if ( copy( $cfg , './php.ini' ) ) &lt;br /&gt;
  {&lt;br /&gt;
    echo &amp;quot;Kopieren erfolgreich&amp;quot;;&lt;br /&gt;
  } &lt;br /&gt;
  else &lt;br /&gt;
  {&lt;br /&gt;
    echo &amp;quot;Kopieren fehlgeschlagen&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das PHP-Script kopiert die aktuelle php.ini in den Ordner, wo auch das Script liegt. Anschließend sollte man das Script (copyini.php) wieder löschen.&lt;br /&gt;
&lt;br /&gt;
Für Contao + Composer muss man die kopierte php.ini anpassen. Dazu ändert man die Angabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
allow_url_fopen = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
zu&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
allow_url_fopen = On&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese geänderte php.ini kopiert man nun in die Verzeichnisse TL_ROOT/contao und optional nach TL_ROOT/check.&lt;br /&gt;
Damit läuft nun das Backend mit der geänderten php.ini und der Contao-Check, sofern installiert. Aus dem Verzeichnis TL_ROOT kann man die geänderte php.ini nun löschen.&lt;br /&gt;
&lt;br /&gt;
==Greatnet==&lt;br /&gt;
PHP 5 Aktivierung in .htaccess:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;FCGIWrapper /home/www/*DEINWEB*/fcgid/php5-fcgid .php&amp;lt;/source&amp;gt;&lt;br /&gt;
==Host4Free==&lt;br /&gt;
Für größere Websites wird ein Paket ab 4maxi empfohlen, da hier mehr Arbeitsspeicher pro Prozess zur Verfügung steht.&lt;br /&gt;
==Hosteurope==&lt;br /&gt;
Gilt seit 2011. Hochladen der Contao-Dateien: FTP-Zugang muss als Webserver-Benutzer konfiguriert sein (In allen neuen Paketen Standardeinstellung). Sonst ist der Safemod Hack notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Composer und LiveUpdate ===&lt;br /&gt;
Für die Nutzung von Composer und dem LiveUpdate-Service muss im KIS von Hosteurope eine Anpassung vorgenommen werden, die die Nutzung von .phar-Dateien unter Suhosin erlaubt. Dazu muss man sich im KIS einloggen. Dann sollte man in der linken Navigation unter dem Punkt &amp;quot;Administration&amp;quot; die Seite &amp;quot;Webserver&amp;quot; besuchen. Im Hauptbereich erscheint nun die Auflistung der jeweiligen Webpakete bzw. Server. Dort sollte man dann das jeweilige Paket mit dem passenden Button &amp;quot;Konfigurieren&amp;quot;. Jetzt ruft man den Punkt &amp;quot;Skripte&amp;quot; auf und dann den Unterpunkt &amp;quot;Skripteinstellungen&amp;quot;. In der nun erscheinenden Tabelle zu den php-Einstellungen klickt man bei dem Eintrag &amp;quot;PHP Suhosin Executor Include Whitelist&amp;quot; auf &amp;quot;ändern&amp;quot;. Unter dem nun erscheinenden Screen sollte die Checkbox für &amp;quot;phar&amp;quot; aktiviert sein. Diese Einstellung sollte nun gespeichert werden und der Nutzung von Composer und dem LiveUpdate-Service sollte nun nichts mehr im Wege stehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:hosteurope_phar_01.jpg|200px|Script-Einstellung vor der Anpassung]] [[Datei:hosteurope_phar_02.jpg|200px|Script-Einstellung Details]] [[Datei:hosteurope_phar_03.jpg|200px|Script-Einstellung nach der Anpassung]]&lt;br /&gt;
&lt;br /&gt;
==HostMax==&lt;br /&gt;
E-Mail an info@hostmax.ch senden, und mitteilen, dass Contao verwendet wird. HostMax muss die FireWall-Filter anpassen für Contao, sonst können Einstellungen im Backend nicht gesichert werden.&lt;br /&gt;
==Hostpoint==&lt;br /&gt;
Anscheinend läuft bei Hostpoint [http://www.contao-community.de/showpost.php?p=30104&amp;amp;postcount=32 TCPDF nicht wie gewünscht].&lt;br /&gt;
==Hoststar==&lt;br /&gt;
Über my.hoststar.ch ein Ticket erstellen für SOAP Aktivierung. Dann kommt meistens eine Antwort wie &amp;quot;das sei unsicher&amp;quot;. Durch Beharrlichkeit und klar machen, dass SOAP kein Sicherheitsrisiko darstellt, kann eine Aktivierung erreicht werden.&lt;br /&gt;
==intersaar==&lt;br /&gt;
Bei Vertragsschluß am Besten gleich angeben, dass SOAP-Extensions aktiviert werden sollen.&lt;br /&gt;
==Strato==&lt;br /&gt;
Pakete, die jetzt neu gebucht werden, haben bereits PHP5 aktiviert. PHP4 gibt es bei neuen Paketen nicht mehr.&lt;br /&gt;
&lt;br /&gt;
In den neuen Paketen (z.B. BasicWeb XL) muss man in der localconfig.php ggf. diese Zeile nach(!) &amp;quot;### INSTALL SCRIPT STOP ###&amp;quot; hinzufügen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;unset($_SERVER['HTTP_X_FORWARDED_HOST']);&amp;lt;/source&amp;gt;&lt;br /&gt;
Teilweise sehr langsam im Datenbankzugriff.&lt;br /&gt;
&lt;br /&gt;
===PHP5 bei Alt-Hostings===&lt;br /&gt;
Bei einem länger existierenden Paket muss unter Umständen PHP5 aktiviert werden. Dies '''muss''' im Kundencenter erfolgen (wie weiter unten von planepix beschrieben).&lt;br /&gt;
&lt;br /&gt;
''Anmerkung von tril:'' Diese Methode scheint nicht mehr zu funktionieren und führt idR zu einem 500er Fehler, dies kann aber von Paket zu Paket unterschiedlich sein, deshalb hier nochmal die '''alte Methode''' um PHP5 zu aktivieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;AddHandler application/x-httpd-php5 .php&amp;lt;/source&amp;gt;&lt;br /&gt;
''Anmerkung von planepix:'' Alternativ kann man sich im Kundencenter von Strato einloggen und links im Menü unter &amp;quot;Homepagestaltung&amp;quot; die Option &amp;quot;Website-Konfigurator&amp;quot; wählen. Dort gibt es den Punkt &amp;quot;PHP-Konfiguration&amp;quot; mit dem man die PHP-Version fürs Verzeichnis auf PHP5 einstellen kann.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TNG==&lt;br /&gt;
Aktivierung von mod_rewrite via Support.&lt;br /&gt;
&lt;br /&gt;
==Uberspace==&lt;br /&gt;
Default ist PHP 5.4. In PHP 5.4 wurden für Zlib die neuen Konstanten ZLIB_ENCODING_DEFLATE, ZLIB_ENCODING_GZIP und ZLIB_ENCODING_RAW eingeführt.&lt;br /&gt;
&lt;br /&gt;
Bedingt durch einen Bug in SOAP ist es nötig, in Contao 2.11.x die folgenden Änderungen in der Datei /system/modules/rep_client/RepositoryBackendModule.php vorzunehmen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;diff --git a/system/modules/rep_client/RepositoryBackendModule.php b/system/modules/rep_client/RepositoryBackendModule.php&lt;br /&gt;
index d04626c..ff8b0f4 100644&lt;br /&gt;
--- a/system/modules/rep_client/RepositoryBackendModule.php&lt;br /&gt;
+++ b/system/modules/rep_client/RepositoryBackendModule.php&lt;br /&gt;
@@ -124,7 +124,7 @@ class RepositoryBackendModule extends BackendModule&lt;br /&gt;
 				$proxy_uri = parse_url($GLOBALS['TL_CONFIG']['proxy_url']);&lt;br /&gt;
 				$this-&amp;gt;client = new SoapClient($wsdl, array(&lt;br /&gt;
 					'soap_version' =&amp;gt; SOAP_1_2,&lt;br /&gt;
-					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 1,&lt;br /&gt;
+					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,&lt;br /&gt;
 					'proxy_host' =&amp;gt; $proxy_uri['host'],&lt;br /&gt;
 					'proxy_port' =&amp;gt; $proxy_uri['port'],&lt;br /&gt;
 					'proxy_login' =&amp;gt; $proxy_uri['user'],&lt;br /&gt;
@@ -135,7 +135,7 @@ class RepositoryBackendModule extends BackendModule&lt;br /&gt;
 			else {&lt;br /&gt;
 				$this-&amp;gt;client = new SoapClient($wsdl, array(&lt;br /&gt;
 					'soap_version' =&amp;gt; SOAP_1_2,&lt;br /&gt;
-					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 1&lt;br /&gt;
+					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP&lt;br /&gt;
 				));&lt;br /&gt;
 			}&lt;br /&gt;
 			$this-&amp;gt;mode = 'soap';&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei älteren Uberspaces, die vor dem Erscheinen der neuen PHP-Version erstellt worden sind, wird PHP 5.4 noch nicht automatisch aktiviert, dort müssen diese Änderungen nicht vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Bei neueren Uberspaces ist es außerdem möglich, wenn es sein muss, auf eine ältere PHP-Version (beispielsweise 5.3) umzuschalten. Dies ist [https://uberspace.de/dokuwiki/development:php#php-version_einstellen hier] beschrieben.&lt;br /&gt;
&lt;br /&gt;
==WebhostOne==&lt;br /&gt;
[http://www.contao.org/neuigkeiten/items/typolight-als-1click-installation.html 1 Klick Installation von TL]&amp;lt;br/&amp;gt;Man kann bei speziellen Wünschen httpd.conf und php.ini selbst anpassen. Wenn man sich nicht so gut damit auskennt, kann man sogar im kostenlosen SupportChat fragen, wie man welchen Befehl schreiben muss.&lt;br /&gt;
==World4You==&lt;br /&gt;
Live Update URL ev. vom Support freischalten lassen. Contao als Easy-Install im Kundencenter verfügbar.&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Webhoster</id>
		<title>Webhoster</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Webhoster"/>
				<updated>2014-08-18T21:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* goneo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installation und Updates]]&lt;br /&gt;
=Liste kompatibler Webhoster=&lt;br /&gt;
&amp;lt;big&amp;gt;'''Diese Informationen basieren ausschließlich auf Erfahrungen von Nutzern. Diese Erfahrungen stimmen teilweise nicht für alle Webpakete eines Anbieters! Manchmal ändern Anbieter auch die technischen Einstellungen, so dass sich neue Umstände ergeben. Verlasst euch niemals nur darauf, sondern führt wenn möglich mindestens eine Diagnose, am besten aber eine Testinstallation auf einem Test-Webspace (beim Anbieter nachfragen) durch.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abkürzungen:&lt;br /&gt;
* SMH = [[Safemode Hack]]&lt;br /&gt;
* ER = [[Systemdiagnosetool#PHP_configuration|Extension Repository]] (siehe ''SOAP extension'')&lt;br /&gt;
* LU = Live Update&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!Webhoster&lt;br /&gt;
!Tarif&lt;br /&gt;
!SMH notwendig&lt;br /&gt;
!.htaccess notwendig&lt;br /&gt;
!php.ini notwendig&lt;br /&gt;
!CHMOD notwendig&lt;br /&gt;
!ER möglich&lt;br /&gt;
!LU möglich&lt;br /&gt;
!Sonstige Anmerkungen&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.1und1.de 1&amp;amp;1] || ab 1&amp;amp;1 Homepage Perfect || nein || {{td_red |PHP 5}} || nein || nein || ja || ja || [[1 und 1 Internet|detaillierte Installationsanleitung]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.1blu.de 1blu] || Homepage Unlimited, Homepage Professional || nein || nein || nein || nein || ja || ja || [[#1blu|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://alfahosting.de Alfahosting] || Multipaket, Profipaket, Businesspaket || nein || nein || nein || nein || ja || ja || [[#Alfahosting|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://all-inkl.com All-Inkl] || ab &amp;quot;Start&amp;quot; Tarif || nein || {{td_red| PHP 5}} || nein || nein || ja || ja || [[#All-Inkl|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.arcor.de Arcor] || 700 MB Webspace || {{td_yellow |unbekannt}} || nein || nein || nein || {{td_red | SOAP}} || ja || [[#Arcor|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.bytecamp.net bytecamp] || bytecamp arbeitet mit einem einzigen Tarifmodell || nein || {{td_red |PHP 5}} || nein || nein || ja || {{td_yellow|unbekannt}} || [[#bytecamp|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.bplaced.net bplaced]&amp;lt;br /&amp;gt;(Freehoster, in den Userseiten werbefrei) || Free || nein || nein || nein || nein || {{td_red |nein}} | {{td_red |nein}} || [[#bplaced|Details]]&lt;br /&gt;
|-&lt;br /&gt;
|CanHost || CAN-NUKE und andere || nein || nein || {{td_red |ja}} || nein || ja || ja || [[#CanHost|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.celeros.de Celeros] || Private || nein || nein || nein || nein || ja || {{td_yellow|unbekannt}} ||keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contao-webhosting.de Contao Webhosting] || ab Paket S || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cyon.ch Cyon] || Cherry, KIWI || nein || laut Nutzer &amp;quot;zed&amp;quot; inzwischen nicht mehr nötig, PHP5 nun Standard || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.df.eu DomainFactory] || ManagedHosting L, ManagedHosting M, My Home Vorkonfiguration 1, My Home Dynamic || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.dynamic-net.ch dynamic-net] || Alle Pakete inkl. Reseller || nein || nein || nein || nein || ja || ja || [[#dynamic-net|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.fc-hosting.de fc-hosting] || Profi-2 || nein || nein || nein || nein || ja || ja || [[#fc-hosting|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.flyhost.de FlyHost] || Flyhost 100, Flyhost 50 || nein || nein || nein || nein || ja || {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.genotec.ch Genotec] || Shared Pro UNIX || nein || nein || nein || nein || {{td_red | SOAP}} | {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.goneo.de goneo] || Homepage Easy, Profi und Premium  || nein || nein || nein || nein || ja || ja || [[#goneo|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.greatnet.de Greatnet] || Classic || nein || {{td_red |PHP 5 }} || nein || nein || ja || ja || [[#Greatnet|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hetzner.de Hetzner] || ab dem Paket &amp;quot;Level 4&amp;quot; voll kompatibel || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.host4free.de Host4Free] || individueller Tarif || nein || nein || nein || nein || ja || ja || [[#Host4Free|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hosteurope.de Hosteurope] || ab Webpack M || nein || nein || nein || nein || ja || ja || [[#Hosteurope|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hosting-agency.de Hosting-Agency] || Agency 250 || nein || nein || nein || nein || {{td_red | SOAP}} || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hostmonster.com Hostmonster] || - || nein || nein || nein || nein || {{td_yellow |unbekannt}} | {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hostmax.ch HostMax] || One || nein || nein || nein || nein || nein || ja || [[#HostMax|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hostpoint.ch Hostpoint] || SH Server Standard  || nein || nein || nein || nein || ja || ja || [[#Hostpoint|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hoststar.ch Hoststar] || StarEntry || nein || {{td_red |PHP 5}} | {{td_red |mod_rewrite aktivieren lassen}} || nein || {{td_yellow | SOAP}} || ja || [[#Hoststar|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.hosttech.de hosttech] || Easy 10000 || {{td_red |Ja}} || nein || nein || nein || ja || {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.inetrobots.com iNet Robots] || ab Web Home  || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.intersaar.de intersaar] || ab Web-Präsenz &amp;quot;Eco&amp;quot; aufwärts (&amp;quot;Eco&amp;quot;, &amp;quot;Business&amp;quot;, &amp;quot;Professional&amp;quot;, &amp;quot;Premium&amp;quot;) gut geeignet. || nein || nein || nein || nein || {{td_yellow | SOAP}} | {{td_yellow |unbekannt}} || [[#intersaar|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mittwald.de Mittwald] || - || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.one.com One.com] || 3000MB || {{td_yellow |unbekannt}} || nein || nein || nein || ja || {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.strato.de Strato] || Strato PowerPlus, Strato Speedplus || nein || {{td_red |PHP 5 bei älteren Hostings }} || nein || nein || {{td_red | SOAP}} | {{td_yellow |unbekannt}} || [[#Strato|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.suleitec.de Suleitec] || ab Tarif Expert || nein || nein || nein || nein || {{td_yellow |unbekannt}} | {{td_yellow |unbekannt}} || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.tecserver.com TecServer] || Webhosting Small || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.tng.de TNG] || VLAMP-Server || nein || nein || nein || nein || ja || ja || [[#TNG|Details]]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.tophoster.de tophoster.de] || alle || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [https://uberspace.de Uberspace] || Uberspace arbeitet mit einem einzigen Tarifmodell || nein || nein || nein || nein || ja || {{td_yellow|unbekannt}} || [[#Uberspace|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.united-domains.de united-domains] || Standard || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.web.de web.de] || colspan=&amp;quot;8&amp;quot; | Siehe [[1 und 1 Internet]] da web.de eine Tochtergesellschaft ist.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.webhoster.de webhoster.de] || Webhosting Starter Tarif || nein || nein || nein || nein || ja || ja || keine&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.webhostone.de WebhostOne] || ab Basic-300 (Carino: empfohlen Basic 750), Pro-1500 || nein || nein || nein || nein || ja || ja || [[#WebhostOne|Details]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.world4you.com World4You] || Domainserver Start || nein || nein || nein || nein || ja || ja || [[#World4You|Details]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Im [http://www.contao-community.de/showthread.php?66-Hosting-von-Contao-Installationen Contao-Forum] findet sich ebenfalls eine (evtl. aktuellere) [http://www.contao-community.de/showthread.php?66-Hosting-von-Contao-Installationen Übersicht über Contao-kompatible Webhoster].&lt;br /&gt;
&lt;br /&gt;
=Liste inkompatibler Webhoster=&lt;br /&gt;
In dieser Liste werden Webhoster gelistet, bei denen Contao nicht eingesetzt werden kann oder sollte, da sie die Nutzung wichtiger Systemfunktionen deaktivieren.&lt;br /&gt;
Bitte beim Hinzufügen von Webhostern darauf achten, detailliert zu beschreiben woran es scheitert, wie z.B. &amp;quot;stellt nur PHP4 zur Verfügung&amp;quot;, alternativ kann auch der Inhalt des betreffenden Forum-Threads rezitiert werden und selbiger Thread als Sonstige Anmerkung verlinkt werden.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;margin:0;vertical-align:top;&amp;quot;&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Diese Informationen basieren ausschließlich auf Erfahrungen von Nutzern. Diese Erfahrungen stimmen teilweise nicht für alle Webpakete eines Anbieters! Manchmal ändern Anbieter auch die technischen Einstellungen, so dass sich neue Umstände ergeben. Verlasst euch niemals nur darauf, sondern führt wenn möglich mindestens eine Diagnose, am besten aber eine Testinstallation auf einem Test-Webspace (beim Anbieter nachfragen) durch.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!Webhoster&lt;br /&gt;
!Grund der Inkompatibilität&lt;br /&gt;
!Sonstige Anmerkungen&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.1a-websolutions.ch 1a-websolutions] || Verwendet mod_security, welches das Datenbank-Update lahm legt. || [http://www.contao-community.de/showthread.php?5895-Fehlermeldung-bei-der-Installatio Forum-Thread]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.t-online.de T-Online] ||Unterstützt keinen .htaccess Dateien. Daher keine URL-Umschreibung und keine Absicherung von Verzeichnissen. || [http://www.contao-community.de/showthread.php?5621-t-online Forum-Thread]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Workarounds für bestimmte Webhoster=&lt;br /&gt;
Bei manchen Webhostern ist es leider notwendig von [[Installation|Standard Installationsschema]] abzuweichen. Oftmals betrifft dies den so genannten [[Safemode Hack]], welcher bei etlichen Webhostern notwendig ist. Weiterhin ist oftmals die SOAP Erweiterung nicht in PHP enthalten, was den Erweiterungskatalog nicht verwendbar macht (Mögliche Abhilfe hierbei ist jedoch [[TensideRepository]] für TYPOlight oder [[nusoap]] für Contao).&lt;br /&gt;
&lt;br /&gt;
Diese Besonderheiten sind hier aufgeführt um zu ermöglichen, dass Contao bei diesen Webhostern läuft.&lt;br /&gt;
&lt;br /&gt;
==1blu==&lt;br /&gt;
PHP muss mittels einer im Verzeichnis abzulegenden Konfigurationsdatei auf Version 5 umgestellt werden. Problemlos und in den 1Blu-FAQ gut erklärt.&lt;br /&gt;
==Alfahosting==&lt;br /&gt;
One-Click-Installation von Contao.&lt;br /&gt;
==All-Inkl==&lt;br /&gt;
PHP 5 Aktivierung in .htaccess:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;AddHandler php5-cgi .php&amp;lt;/source&amp;gt;&lt;br /&gt;
==Arcor==&lt;br /&gt;
Läuft sehr langsam, Premium-Pakete mit weniger Kunden pro Server gibt es nicht. Safe_Mode ist aktiviert, die Seite funktioniert trotzdem, nur eben sehr langsam.&lt;br /&gt;
==bytecamp==&lt;br /&gt;
PHP 5 Aktivierung in .htaccess:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;AddType application/x-httpd-php5 .php&amp;lt;/source&amp;gt;&lt;br /&gt;
Vereinfache Installation und PHP5 vorkonfiguriert durch eigenen Installer. [http://www.bytecamp.net/de/hosting/details/installer.html 3 Schritte bequem per Webbrowser. ]&lt;br /&gt;
==bplaced==&lt;br /&gt;
Laut User [http://www.contao-community.de/showthread.php?7436-PHP-Version-5.3.2&amp;amp;highlight=bplaced tommy] gibt es inzwischen Ärger mit diesem Freehoster.&lt;br /&gt;
==CanHost==&lt;br /&gt;
Hängt stark vom gebuchten Paket ab, einige Änderungen sind im IP-Conf möglich, sonstige sind häufig per Mail an Support machbar.&amp;lt;br /&amp;gt;&lt;br /&gt;
Kein Backup von Webspace und Datenbanken im Preis enthalten (hinzubuchbar).&amp;lt;br /&amp;gt; &lt;br /&gt;
Teilweise nur kurzes PHP-Zeitlimit (Support um Aufstockung bitten).&amp;lt;br /&amp;gt;&lt;br /&gt;
Sehr unterschiedliche Konfigurationen der Server (auch bei gleichen Hosting-Paketen).&amp;lt;br /&amp;gt;&lt;br /&gt;
In der Vergangenheit auch zeitweise Ausfälle; Domain teilweise nicht erreichbar.&amp;lt;br /&amp;gt;&lt;br /&gt;
Einige ausgewählte php.ini-Parameter lassen sich im IP-Conf (Konfigurationstool) selbst einstellen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Über den Support kann man fast immer die benötigten Einstellungen bekommen (Beispiele: allow_url_fopen=On, max_execution_time=30, upload_max_filesize=8M, mcrypt aktiviert, SOAP installiert).&amp;lt;br /&amp;gt;&lt;br /&gt;
Nicht in allen Paketen läßt sich der Safe-Mode einstellen (safe_mode = Off).&lt;br /&gt;
==dynamic-net==&lt;br /&gt;
Falls das Extension Repository nicht ersichtlich ist, reicht ein kurzes Supportticket, um SOAP freischalten zu lassen.&lt;br /&gt;
==fc-hosting==&lt;br /&gt;
Newsletterversand möglich, aber nur blockweise (100Stk.).&lt;br /&gt;
==Goneo==&lt;br /&gt;
Nur .de Domains gelten als Inklusivdomains, andere müssen kostenpflichtig zugebucht werden.&lt;br /&gt;
Nutzung des Composers ist mit PHP 5.3 nicht möglich, da allow_url_fopen standardmäßig und nicht änderbar auf Off gesetzt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Wer auf PHP 5.4 umstellt, hat die Möglichkeit eine eigene php.ini zu nutzen.&lt;br /&gt;
Das nachfolgende PHP-Script muss auf den Webserver kopiert (z.B. als copyini.php) und aufgerufen werden (z.B. mit http://www.domain.de/copyini.php)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $cfg = get_cfg_var( 'cfg_file_path' );&lt;br /&gt;
  if ( copy( $cfg , './php.ini' ) ) &lt;br /&gt;
  {&lt;br /&gt;
    echo &amp;quot;Kopieren erfolgreich&amp;quot;;&lt;br /&gt;
  } &lt;br /&gt;
  else &lt;br /&gt;
  {&lt;br /&gt;
    echo &amp;quot;Kopieren fehlgeschlagen&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das PHP-Script kopiert die aktuelle php.ini in den Ordner, wo auch das Script liegt. Anschließend sollte man das Script (copyini.php) wieder löschen.&lt;br /&gt;
&lt;br /&gt;
Für Contao + Composer muss man die kopierte php.ini anpassen. Dazu ändert man die Angabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
allow_url_fopen = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
zu&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
allow_url_fopen = On&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese geänderte php.ini kopiert man nun in die Verzeichnisse TL_ROOT/contao und optional nach TL_ROOT/check.&lt;br /&gt;
Damit läuft nun das Backend mit der geänderten php.ini und der Contao-Check, sofern installiert. Aus dem Verzeichnis TL_ROOT kann man die geänderte php.ini nun löschen.&lt;br /&gt;
&lt;br /&gt;
==Greatnet==&lt;br /&gt;
PHP 5 Aktivierung in .htaccess:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;FCGIWrapper /home/www/*DEINWEB*/fcgid/php5-fcgid .php&amp;lt;/source&amp;gt;&lt;br /&gt;
==Host4Free==&lt;br /&gt;
Für größere Websites wird ein Paket ab 4maxi empfohlen, da hier mehr Arbeitsspeicher pro Prozess zur Verfügung steht.&lt;br /&gt;
==Hosteurope==&lt;br /&gt;
Gilt seit 2011. Hochladen der Contao-Dateien: FTP-Zugang muss als Webserver-Benutzer konfiguriert sein (In allen neuen Paketen Standardeinstellung). Sonst ist der Safemod Hack notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Composer und LiveUpdate ===&lt;br /&gt;
Für die Nutzung von Composer und dem LiveUpdate-Service muss im KIS von Hosteurope eine Anpassung vorgenommen werden, die die Nutzung von .phar-Dateien unter Suhosin erlaubt. Dazu muss man sich im KIS einloggen. Dann sollte man in der linken Navigation unter dem Punkt &amp;quot;Administration&amp;quot; die Seite &amp;quot;Webserver&amp;quot; besuchen. Im Hauptbereich erscheint nun die Auflistung der jeweiligen Webpakete bzw. Server. Dort sollte man dann das jeweilige Paket mit dem passenden Button &amp;quot;Konfigurieren&amp;quot;. Jetzt ruft man den Punkt &amp;quot;Skripte&amp;quot; auf und dann den Unterpunkt &amp;quot;Skripteinstellungen&amp;quot;. In der nun erscheinenden Tabelle zu den php-Einstellungen klickt man bei dem Eintrag &amp;quot;PHP Suhosin Executor Include Whitelist&amp;quot; auf &amp;quot;ändern&amp;quot;. Unter dem nun erscheinenden Screen sollte die Checkbox für &amp;quot;phar&amp;quot; aktiviert sein. Diese Einstellung sollte nun gespeichert werden und der Nutzung von Composer und dem LiveUpdate-Service sollte nun nichts mehr im Wege stehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:hosteurope_phar_01.jpg|200px|Script-Einstellung vor der Anpassung]] [[Datei:hosteurope_phar_02.jpg|200px|Script-Einstellung Details]] [[Datei:hosteurope_phar_03.jpg|200px|Script-Einstellung nach der Anpassung]]&lt;br /&gt;
&lt;br /&gt;
==HostMax==&lt;br /&gt;
E-Mail an info@hostmax.ch senden, und mitteilen, dass Contao verwendet wird. HostMax muss die FireWall-Filter anpassen für Contao, sonst können Einstellungen im Backend nicht gesichert werden.&lt;br /&gt;
==Hostpoint==&lt;br /&gt;
Anscheinend läuft bei Hostpoint [http://www.contao-community.de/showpost.php?p=30104&amp;amp;postcount=32 TCPDF nicht wie gewünscht].&lt;br /&gt;
==Hoststar==&lt;br /&gt;
Über my.hoststar.ch ein Ticket erstellen für SOAP Aktivierung. Dann kommt meistens eine Antwort wie &amp;quot;das sei unsicher&amp;quot;. Durch Beharrlichkeit und klar machen, dass SOAP kein Sicherheitsrisiko darstellt, kann eine Aktivierung erreicht werden.&lt;br /&gt;
==intersaar==&lt;br /&gt;
Bei Vertragsschluß am Besten gleich angeben, dass SOAP-Extensions aktiviert werden sollen.&lt;br /&gt;
==Strato==&lt;br /&gt;
Pakete, die jetzt neu gebucht werden, haben bereits PHP5 aktiviert. PHP4 gibt es bei neuen Paketen nicht mehr.&lt;br /&gt;
&lt;br /&gt;
In den neuen Paketen (z.B. BasicWeb XL) muss man in der localconfig.php ggf. diese Zeile nach(!) &amp;quot;### INSTALL SCRIPT STOP ###&amp;quot; hinzufügen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;unset($_SERVER['HTTP_X_FORWARDED_HOST']);&amp;lt;/source&amp;gt;&lt;br /&gt;
Teilweise sehr langsam im Datenbankzugriff.&lt;br /&gt;
&lt;br /&gt;
===PHP5 bei Alt-Hostings===&lt;br /&gt;
Bei einem länger existierenden Paket muss unter Umständen PHP5 aktiviert werden. Dies '''muss''' im Kundencenter erfolgen (wie weiter unten von planepix beschrieben).&lt;br /&gt;
&lt;br /&gt;
''Anmerkung von tril:'' Diese Methode scheint nicht mehr zu funktionieren und führt idR zu einem 500er Fehler, dies kann aber von Paket zu Paket unterschiedlich sein, deshalb hier nochmal die '''alte Methode''' um PHP5 zu aktivieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;AddHandler application/x-httpd-php5 .php&amp;lt;/source&amp;gt;&lt;br /&gt;
''Anmerkung von planepix:'' Alternativ kann man sich im Kundencenter von Strato einloggen und links im Menü unter &amp;quot;Homepagestaltung&amp;quot; die Option &amp;quot;Website-Konfigurator&amp;quot; wählen. Dort gibt es den Punkt &amp;quot;PHP-Konfiguration&amp;quot; mit dem man die PHP-Version fürs Verzeichnis auf PHP5 einstellen kann.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TNG==&lt;br /&gt;
Aktivierung von mod_rewrite via Support.&lt;br /&gt;
&lt;br /&gt;
==Uberspace==&lt;br /&gt;
Default ist PHP 5.4. In PHP 5.4 wurden für Zlib die neuen Konstanten ZLIB_ENCODING_DEFLATE, ZLIB_ENCODING_GZIP und ZLIB_ENCODING_RAW eingeführt.&lt;br /&gt;
&lt;br /&gt;
Bedingt durch einen Bug in SOAP ist es nötig, in Contao 2.11.x die folgenden Änderungen in der Datei /system/modules/rep_client/RepositoryBackendModule.php vorzunehmen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;diff --git a/system/modules/rep_client/RepositoryBackendModule.php b/system/modules/rep_client/RepositoryBackendModule.php&lt;br /&gt;
index d04626c..ff8b0f4 100644&lt;br /&gt;
--- a/system/modules/rep_client/RepositoryBackendModule.php&lt;br /&gt;
+++ b/system/modules/rep_client/RepositoryBackendModule.php&lt;br /&gt;
@@ -124,7 +124,7 @@ class RepositoryBackendModule extends BackendModule&lt;br /&gt;
 				$proxy_uri = parse_url($GLOBALS['TL_CONFIG']['proxy_url']);&lt;br /&gt;
 				$this-&amp;gt;client = new SoapClient($wsdl, array(&lt;br /&gt;
 					'soap_version' =&amp;gt; SOAP_1_2,&lt;br /&gt;
-					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 1,&lt;br /&gt;
+					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,&lt;br /&gt;
 					'proxy_host' =&amp;gt; $proxy_uri['host'],&lt;br /&gt;
 					'proxy_port' =&amp;gt; $proxy_uri['port'],&lt;br /&gt;
 					'proxy_login' =&amp;gt; $proxy_uri['user'],&lt;br /&gt;
@@ -135,7 +135,7 @@ class RepositoryBackendModule extends BackendModule&lt;br /&gt;
 			else {&lt;br /&gt;
 				$this-&amp;gt;client = new SoapClient($wsdl, array(&lt;br /&gt;
 					'soap_version' =&amp;gt; SOAP_1_2,&lt;br /&gt;
-					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 1&lt;br /&gt;
+					'compression' =&amp;gt; SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP&lt;br /&gt;
 				));&lt;br /&gt;
 			}&lt;br /&gt;
 			$this-&amp;gt;mode = 'soap';&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei älteren Uberspaces, die vor dem Erscheinen der neuen PHP-Version erstellt worden sind, wird PHP 5.4 noch nicht automatisch aktiviert, dort müssen diese Änderungen nicht vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Bei neueren Uberspaces ist es außerdem möglich, wenn es sein muss, auf eine ältere PHP-Version (beispielsweise 5.3) umzuschalten. Dies ist [https://uberspace.de/dokuwiki/development:php#php-version_einstellen hier] beschrieben.&lt;br /&gt;
&lt;br /&gt;
==WebhostOne==&lt;br /&gt;
[http://www.contao.org/neuigkeiten/items/typolight-als-1click-installation.html 1 Klick Installation von TL]&amp;lt;br/&amp;gt;Man kann bei speziellen Wünschen httpd.conf und php.ini selbst anpassen. Wenn man sich nicht so gut damit auskennt, kann man sogar im kostenlosen SupportChat fragen, wie man welchen Befehl schreiben muss.&lt;br /&gt;
==World4You==&lt;br /&gt;
Live Update URL ev. vom Support freischalten lassen. Contao als Easy-Install im Kundencenter verfügbar.&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Datei:Check_plan_de.jpg</id>
		<title>Datei:Check plan de.jpg</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Datei:Check_plan_de.jpg"/>
				<updated>2014-07-27T16:19:52Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: BugBuster lud eine neue Version von „Datei:Check plan de.jpg“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check Plan&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Datei:Check_overview_de.jpg</id>
		<title>Datei:Check overview de.jpg</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Datei:Check_overview_de.jpg"/>
				<updated>2014-07-27T16:15:44Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: BugBuster lud eine neue Version von „Datei:Check overview de.jpg“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check Übersicht&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Integrity_Check</id>
		<title>Integrity Check</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Integrity_Check"/>
				<updated>2014-07-27T16:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: Update zur Version 3.4.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:check_overview_de.jpg|right|Integrity Check]] Früherkennung von gehackten Contao Installationen mittels Integritäts Check einiger Dateien.&lt;br /&gt;
&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Glen Langer ([[User:BugBuster|BugBuster]])&lt;br /&gt;
| DevSite=http://www.contao.glen-langer.de&lt;br /&gt;
| ExtVersion=1.3.10 / 3.4.0&lt;br /&gt;
| Version=ab 2.10.0&lt;br /&gt;
| ERLink=http://www.contao.org/de/extension-list/view/integrity_check.de.html&lt;br /&gt;
| TrackerLink=https://github.com/BugBuster1701/integrity_check/issues&lt;br /&gt;
| DonateLink=http://www.amazon.de/wishlist/26HHEJOU03G76&lt;br /&gt;
}}&lt;br /&gt;
[[en:Integrity_Check]]&lt;br /&gt;
[[Kategorie:Extensions]]&lt;br /&gt;
&lt;br /&gt;
Wie es dazu kommen kann, und das dabei in den meisten Fällen nicht Contao selbst schuldig ist, kann hier nachgelesen werden: [[Contao gehackt|Contao gehackt]]&lt;br /&gt;
&amp;lt;br /&amp;gt;Nun muss mal das natürlich noch selber merken, möglichst bevor Google die Seite sperrt.&lt;br /&gt;
&lt;br /&gt;
=Forum=&lt;br /&gt;
Fragen zum Integrity Check Modul werden im Forum beantwortet: [https://www.contao-community.de/showthread.php?32762-Integrity-Check-im-ER Forum]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fehler und Wünsche können im [https://github.com/BugBuster1701/integrity_check/issues Tracking System] gemeldet werden.&lt;br /&gt;
&lt;br /&gt;
=Übersetzungen=&lt;br /&gt;
Übersetzungen können auf [https://www.transifex.com/projects/p/contao-integrity_check/ Transifex] durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Installation erfolgt über das Extension Repository im Backend der Contao Installation.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Eine manuelle Installation ist möglich, dazu die ZIP Datei [http://www.contao.org/de/extension-list/view/integrity_check.de.html vom Extension Repository laden], entpacken und entsprechend übertragen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dadurch sollte ein Verzeichnis /system/modules/integrity_check angelegt worden sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Danach wie dabei üblich /contao/install.php aufrufen um ein eventuelles Update der Datenbank durchführen. (nur bei manueller Installation)&amp;lt;br /&amp;gt;&lt;br /&gt;
Im System Menü erscheint dann ein neuer Unterpunkt: Integritäts-Check&lt;br /&gt;
&lt;br /&gt;
=Installation als Update=&lt;br /&gt;
Ein Update erfolgt identisch der Installation.&lt;br /&gt;
&lt;br /&gt;
=Infektionsbeispiele=&lt;br /&gt;
Wie sieht nun eine solcher Hack aus?&amp;lt;br /&amp;gt;&lt;br /&gt;
Im den von mir betrachteten Fällen war es ein Anhang an die index.php der zur Ausführung kam, wenn die Seite nicht aus dem Server-Cache kam.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dieser sah in etwa so aus (gekürzt):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
#c3284d#&lt;br /&gt;
echo(gzinflate(base64_decode(&amp;quot;ZZBNisMwDIX.......T7oD&amp;quot;)));&lt;br /&gt;
#/c3284d# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
oder:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
#d47c75#&lt;br /&gt;
echo &amp;quot;&amp;lt;script type=\&amp;quot;text/javascript\&amp;quot; .....&amp;lt;/script&amp;gt;&amp;quot;;&lt;br /&gt;
#/d47c75#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Oder so (gekürzt):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt; &lt;br /&gt;
function frmAdd() { &lt;br /&gt;
var ifrm = document.createElement('iframe'); &lt;br /&gt;
....&lt;br /&gt;
}; &lt;br /&gt;
window.onload = frmAdd; &lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Seite auf der schwarzen Liste==&lt;br /&gt;
Reagiert man nicht schnell genug, und Google bekommt das mit, wird die Seite auf die schwarze Liste gesetzt. Browser wie Firefox nutzen diese, um vor dem Zugriff darauf zu warnen. Das sieht dann so aus:&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Datei:site_on_black_list.jpg]]&lt;br /&gt;
&lt;br /&gt;
Was nun zu tun ist steht im Wiki Beitrag [[Contao_gehackt]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Und im Google wieder zu überzeugen, man hat aufgeräumt, siehe diese [http://support.google.com/webmasters/bin/answer.py?hl=de&amp;amp;answer=163633 Google Support Seite] dazu.&lt;br /&gt;
&lt;br /&gt;
=Funktion des Moduls=&lt;br /&gt;
In der jetzigen Version werden diese PHP Files prüft auf Veränderungen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Geprüft werden:&lt;br /&gt;
* index.php&lt;br /&gt;
* cron.php (ab Version 1.1.0)&lt;br /&gt;
* contao/index.php&lt;br /&gt;
* contao/main.php&lt;br /&gt;
* .htaccess (ab Version 3.1.0)&lt;br /&gt;
&lt;br /&gt;
Optionale Warning Checks:&lt;br /&gt;
* Contao Update Prüfung (ab Version 3.4.0)&lt;br /&gt;
* Prüfung auf Installtool Login-Sperre (ab Version 3.4.0)&lt;br /&gt;
&lt;br /&gt;
==Prüfzeitpunkt==&lt;br /&gt;
Dieser Test wird automatisch durchgeführt über den Contao-Cron Mechanismus, siehe dazu den Punkt [[Integrity_Check#Feinheiten|Feinheiten]].&lt;br /&gt;
&lt;br /&gt;
==Erkennung==&lt;br /&gt;
Die Prüfung kann erfolgen auf 2 Arten:&lt;br /&gt;
* identisch zum offiziellem Contao Check Tool, d.h. über MD5 Checksummen. Es werden die Checksummen für Contao ab 2.10.0 zum Vergleich herangezogen bis zur jeweils freigegebenen Contao Version.&lt;br /&gt;
* per Zeitstempel (ab Version 1.1.0). Dazu werden bei der Installation der Erweiterung die Zeitstempel der Dateien erfasst. Diese können auch jederzeit erneuert werden.&lt;br /&gt;
&lt;br /&gt;
==Information==&lt;br /&gt;
Im Backend kann unter System - System-Log nach dem Ergebnis geschaut werden. Normalerweise, wenn alles OK ist, taucht keine Meldung auf. Im moduleigenem Debug Modus erfolgt dann nur eine Meldung:&lt;br /&gt;
* Integritäts-Überprüfung der Dateien abgeschlossen.&lt;br /&gt;
Wenn Veränderungen entdeckt werden, dann erfolgt eine entsprechende Meldung je Datei die es betrifft:&lt;br /&gt;
* Integritäts-Status für Datei index.php ist: beschädigt [MD5]&lt;br /&gt;
** in dem Fall wurde per Checksumme MD5 geprüft.&lt;br /&gt;
* Integritäts-Status für Datei cron.php ist: beschädigt [Zeitstempel]&lt;br /&gt;
** in dem Fall wurde per Zeitstempel geprüft, ab Version 1.1.0 möglich.&lt;br /&gt;
Eine Information ist per System-Log und per Mail ist möglich, siehe dazu den Punkt [[Integrity_Check#Feinheiten|Feinheiten]].&lt;br /&gt;
&lt;br /&gt;
=Feinheiten=&lt;br /&gt;
==Integritäts-Check anlegen==&lt;br /&gt;
Beim Anlegen des Integritäts-Checks muss ein Überprüfungsplan definiert werden. Hier kann für jede der zu prüfenden Dateien der Zeitpunkt, die Erkennung und die Aktion eingestellt werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:check_plan_de.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Anschließend noch die Integritäts-Überprüfung aktivieren. &amp;lt;br /&amp;gt;&lt;br /&gt;
Will man sehen welche Dateien geprüft wurden und somit ob überhaupt, kann der moduleigene Debug Modus eingeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Zeitpunkt===&lt;br /&gt;
* in Contao 2.10: täglich, wöchentlich, monatlich&lt;br /&gt;
* in Contao 2.11: stündlich, täglich, wöchentlich, monatlich&lt;br /&gt;
* in Contao 3.0: minütlich*, stündlich, täglich, wöchentlich, monatlich&lt;br /&gt;
 *muss manuell aktiviert werden&lt;br /&gt;
&lt;br /&gt;
===Erkennung===&lt;br /&gt;
Die Erkennung einer Veränderung der Datei ist auf zwei Arten möglich:&lt;br /&gt;
* über eine MD5 Checksumme &lt;br /&gt;
* über einen Zeitstempel&lt;br /&gt;
&lt;br /&gt;
===Aktion===&lt;br /&gt;
* System-Log: Nachricht erfolgt im System-Log, im Backend einsehbar&lt;br /&gt;
* Mail an Admin: eine Mail an den Admin der Contao Installation erfolgt&lt;br /&gt;
** Es erfolgt dann auch automatisch ein Eintrag im System-Log (ab Version 1.1.0)&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
===System-Log und Mail===&lt;br /&gt;
Ab Version 1.1.0 erfolgt automatisch ein Eintrag im System-Log, wenn eine Mail versendet wird.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
Möchte man in Verison 1.0.0 für eine Datei beide Arten der Information haben, legt man einfach im Plan die Überprüfung zweimal an mit je einem der Aktionen: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:check_plan_2_de.jpg]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Hier als Beispiel nur für die index.php, dass geht natürlich auch für die anderen Dateien.&lt;br /&gt;
&lt;br /&gt;
===Es kann nur einen geben!===&lt;br /&gt;
Es ist möglich in der Integritäts-Check Übersicht mehrere Checks anzulegen. Das macht im Prinzip aber keinen Sinn. Daher wird dafür gesorgt, dass es nur einen Integritäts-Check geben kann, der aktiv geschaltet ist. Schaltet man einen neuen aktiv, werden automatisch alle anderen vorhandenen inaktiv geschaltet.&lt;br /&gt;
&lt;br /&gt;
==Schutz gegen Infektion==&lt;br /&gt;
Nun, ein genereller Schutz ist wohl nicht möglich. Wenn die Infektion z.B. dadurch passierte, dass jemand an die FTP Daten kam, kann er alles was der Eigentümer auch kann. &amp;lt;br /&amp;gt;&lt;br /&gt;
Es gibt aber eine Möglichkeit, dass der angehangene Code nicht zur Ausführung kommt. In Contao 3 wurde dies bereits auf ähnliche Art umgesetzt. Hier mal kurz die Info für Contao 2.&amp;lt;br /&amp;gt;&lt;br /&gt;
Editiert die index.php und geht in die letzte Zeile der Methode &amp;quot;run&amp;quot;, müsste die Zeile 269 sein. (2.11.5) Schreibt davor einfach ein '''''exit;''''' rein, oder fügt eine Zeile dafür ein. Hier mal ab Zeile 268 als Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
        }&lt;br /&gt;
    }  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
wird zu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
        }&lt;br /&gt;
        exit;&lt;br /&gt;
    }  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit wird die Abarbeitung des Scripte beendet, was auch OK ist, da davor die Seite bereits zum Browser gesendet wurde.&lt;br /&gt;
Achtung: Nun wird das Integrity Check Tool wie auch das Contao Check Tool eine Veränderung melden im MD5 Checksummen Test. Ab Version 1.1.0 kann in dem Fall dann der Test per Zeitstempel ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 18:02, 27. Jul. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-07-07T20:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einem passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie [[#Transifex_f.C3.BCr_Entwickler|Entwickler]] und [[#Transifex_f.C3.BCr_.C3.9Cbersetzer|Übersetzer]] damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim Anlegen des Projektes in Transifex legt man die Ursprungssprache fest. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in anderen Sprachen nur einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Team-Diskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
Transifex ist als eine Onlineplattform zum Übersetzen konzipiert. Es ist aber auch offline, also lokal möglich die Ressourcen zu übersetzen und hoch zu laden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Offline</id>
		<title>Transifex für Übersetzer Offline</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Offline"/>
				<updated>2014-07-07T20:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
TODO: Folgt später.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-07-07T20:37:01Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Registration in Transifex=&lt;br /&gt;
Wer nur als Übersetzer in Transifex arbeiten möchte, muss sich dort als erstes als Contributor registrieren. &lt;br /&gt;
* https://www.transifex.com/signup/contributor/ &lt;br /&gt;
In der Bestätigungs-E-Mail auf den Bestätigungslink klicken.&lt;br /&gt;
&lt;br /&gt;
=An einem Projekt beteiligen=&lt;br /&gt;
Es gibt nun zwei Wege sich an Übersetzungen zu beteiligen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein öffentliches Projekt suchen über https://www.transifex.com/connect/projects/ und dann:&lt;br /&gt;
* in der Sprachübersicht auf eine Sprache klicken und dort auf &amp;quot;Gruppe beitreten&amp;quot;, um bei eine vorhandene Sprache mitzuwirken&amp;lt;br&amp;gt;oder&lt;br /&gt;
* in der Sprachübersicht auf &amp;quot;Sprache anfragen&amp;quot;, um eine neue Sprache für dieses Projekt zu öffen.&lt;br /&gt;
&lt;br /&gt;
=Übersetzen einer Ressource=&lt;br /&gt;
Sobald man in die gewählte Sprachen wechseln kann, sieht man die Ressourcen. Diese anklicken, und dann in dem Popup auf &amp;quot;Jetzt übersetzen&amp;quot;.&lt;br /&gt;
Nun sieht man ein Formular, links die einzelnen Wortgruppen der gewählten Ressource, in der Mitte das Original und die Übersetzung (bzw. leer), und rechts einige Statusinformation wie Vorschläge, Verlauf etc. (bei kleinerer Auflösung ist die rechte Spalte unter der mittleren)&lt;br /&gt;
&lt;br /&gt;
Nun klickt man sich links die Wortgruppe raus die man übersetzen will, tut das in der Mitte und geht mit TAB zur nächsten, wobei vorher automatisch gespeichert wird, oder speichert direkt.&lt;br /&gt;
&lt;br /&gt;
Ist man als Prüfer eingetragen, gibt es dort noch einen Button &amp;quot;Überprüfen&amp;quot;. Damit markiert man dann, dass die Übersetzung von jemandem anderem stimmt und bestätigt wird.&lt;br /&gt;
&lt;br /&gt;
Ist man mit dieser Ressource fertig, klickt man links oben auf den Ressourcen Name und bekommt eine Übersicht weiterer Ressourcen. So kann man sich durch alle Ressourcen durcharbeiten und die Wortgruppen übersetzen die man möchte. Man muss nicht alles übersetzen, ist natürlich gern gesehen, jede Kleinigkeit hilft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 16:04, 3. Jul. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_TX_Client</id>
		<title>Transifex mit TX Client</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_TX_Client"/>
				<updated>2014-07-07T20:36:30Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
TODO: Folgt später.&lt;br /&gt;
{{stub}}&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-07-07T20:36:13Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einem passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim Anlegen des Projektes in Transifex legt man die Ursprungssprache fest. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in anderen Sprachen nur einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Team-Diskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
Transifex ist als eine Onlineplattform zum Übersetzen konzipiert. Es ist aber auch offline, also lokal möglich die Ressourcen zu übersetzen und hoch zu laden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T20:35:08Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Transifex]]&lt;br /&gt;
[[Category:Dev_HOWTOS]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ''ctb'' ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wo die php.ini der PHP Kommandozeilenversion liegt, erfährt man so:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php --ini | grep 'Configuration File'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T20:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Optional: eine ctb.phar kompilieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ''ctb'' ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wo die php.ini der PHP Kommandozeilenversion liegt, erfährt man so:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php --ini | grep 'Configuration File'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T20:26:06Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Optional: eine ctb.phar kompilieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ''ctb'' ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wo die php.ini der PHP Kommandozeilenversion liegt, erfährt man so:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -i | grep 'Configuration File'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T20:17:52Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Über Git Cloning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T20:15:22Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu den Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;extra&amp;quot;:{&lt;br /&gt;
        &amp;quot;contao&amp;quot;: {&lt;br /&gt;
            &amp;quot;transifex&amp;quot;: {&lt;br /&gt;
                &amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
                &amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
                &amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T19:46:56Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Über Git Cloning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängigkeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T19:45:50Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Über Git Cloning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Um nun die ctb von überall aufrufen zu können, diese liegt ja nicht im Suchpfad, habe ich dazu noch ein Alias angelegt. Pfad in diesem Beispiel muss jeder für sich anpassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias ctb='/contao_entwicklung/contao-toolbox/bin/ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein symbolischen Link anlegen, um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s ctb.phar ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellungen in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-07-07T19:37:15Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Nutzer Rollen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einem passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim Anlegen des Projektes in Transifex legt man die Ursprungssprache fest. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in anderen Sprachen nur einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Team-Diskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
Transifex ist als eine Onlineplattform zum Übersetzen konzipiert. Es ist aber auch offline, also lokal möglich die Ressourcen zu übersetzen und hoch zu laden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-07-07T14:50:54Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* An einem Projekt beteiligen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Registration in Transifex=&lt;br /&gt;
Wer nur als Übersetzer in Transifex arbeiten möchte, muss sich dort als erstes als Contributor registrieren. &lt;br /&gt;
* https://www.transifex.com/signup/contributor/ &lt;br /&gt;
In der Bestätigungs-E-Mail auf den Bestätigungslink klicken.&lt;br /&gt;
&lt;br /&gt;
=An einem Projekt beteiligen=&lt;br /&gt;
Es gibt nun zwei Wege sich an Übersetzungen zu beteiligen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein öffentliches Projekt suchen über https://www.transifex.com/connect/projects/ und dann:&lt;br /&gt;
* in der Sprachübersicht auf eine Sprache klicken und dort auf &amp;quot;Gruppe beitreten&amp;quot;, um bei eine vorhandene Sprache mitzuwirken&amp;lt;br&amp;gt;oder&lt;br /&gt;
* in der Sprachübersicht auf &amp;quot;Sprache anfragen&amp;quot;, um eine neue Sprache für dieses Projekt zu öffen.&lt;br /&gt;
&lt;br /&gt;
=Übersetzen einer Ressource=&lt;br /&gt;
Sobald man in die gewählte Sprachen wechseln kann, sieht man die Ressourcen. Diese anklicken, und dann in dem Popup auf &amp;quot;Jetzt übersetzen&amp;quot;.&lt;br /&gt;
Nun sieht man ein Formular, links die einzelnen Wortgruppen der gewählten Ressource, in der Mitte das Original und die Übersetzung (bzw. leer), und rechts einige Statusinformation wie Vorschläge, Verlauf etc. (bei kleinerer Auflösung ist die rechte Spalte unter der mittleren)&lt;br /&gt;
&lt;br /&gt;
Nun klickt man sich links die Wortgruppe raus die man übersetzen will, tut das in der Mitte und geht mit TAB zur nächsten, wobei vorher automatisch gespeichert wird, oder speichert direkt.&lt;br /&gt;
&lt;br /&gt;
Ist man als Prüfer eingetragen, gibt es dort noch einen Button &amp;quot;Überprüfen&amp;quot;. Damit markiert man dann, dass die Übersetzung von jemandem anderem stimmt und bestätigt wird.&lt;br /&gt;
&lt;br /&gt;
Ist man mit dieser Ressource fertig, klickt man links oben auf den Ressourcen Name und bekommt eine Übersicht weiterer Ressourcen. So kann man sich durch alle Ressourcen durcharbeiten und die Wortgruppen übersetzen die man möchte. Man muss nicht alles übersetzen, ist natürlich gern gesehen, jede Kleinigkeit hilft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 16:04, 3. Jul. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T14:46:10Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Kommandozeilen Workflow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein alias anlegen um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellunge in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführt wird. Die ''--base-language'' könnte weggelassen werden, &amp;quot;en&amp;quot; ist hier das default.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T14:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein alias anlegen um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellunge in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;prefix&amp;quot; wäre es z.B. möglich, die Sprachdateien von mehreren Teilprojekten innerhalb eines einzigen transifex Projektes zu speichern.&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführrt wird.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T14:28:32Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Kommandozeilen Workflow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein alias anlegen um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellunge in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
Im Hauptverzeichnis seiner Erweiterung ruft man nun die einzelnen Jobs auf die zu erledigen sind. Dabei wird von den obigen Definitionen ausgegangen.&lt;br /&gt;
Das ''--verbose'' dient hier nur zu Kontrolle, was gerade durchgeführrt wird.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in xliff umwandeln in Verzeichnis .tx==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb to-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Urpsungssprache hochladen zu Transifex==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb upload-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzen in Transifex==&lt;br /&gt;
Zu diesem Zeitpunkt würde nun die Online-Übersetzung auf Transifex erfolgen. Liegen bereits weitere Sprachen vor, z.B. aus ER2 Zeiten, können diese manuell hochgeladen werden, dazu später. ('''ctb''' kann dieses derzeit nicht)&lt;br /&gt;
&lt;br /&gt;
==Übersetze Sprachen von Transifex laden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --base-language=&amp;quot;en&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb download-transifex --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --mode=&amp;quot;translated&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wurde der default Wert vom Modus &amp;quot;reviewed&amp;quot; auf &amp;quot;translated&amp;quot; geändert. Damit bekommt man alle übersetzte Sprachen, egal wieviel Prozent davon fertig sind.&lt;br /&gt;
&lt;br /&gt;
==Sprachfiles in PHP umwandeln und in die Sprachverzeichnisse ablegen==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --base-language=&amp;quot;en&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Langform wenn die composer.json und die config.json nicht definiert wären:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ctb from-xliff --contao=&amp;quot;languages/&amp;quot; --xliff=&amp;quot;.tx/&amp;quot; --projectname=&amp;quot;acme-core&amp;quot; --base-language=&amp;quot;en&amp;quot; --prefix=&amp;quot;core-&amp;quot; --user=&amp;quot;john-doe&amp;quot; --pass=&amp;quot;sUp3rPassword!&amp;quot; --verbose&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei werden die vorhandenen nur überschrieben, wenn Änderungen vorliegen.&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T14:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Was ist das? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden alle Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden die XLIFF Dateien der Ursprungsprache (default: en) mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein alias anlegen um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellunge in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T14:05:41Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden die Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden diese XLIFF Dateien mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/ &lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein alias anlegen um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellunge in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um bei der Nutzung nicht immer Login und Passwort angeben zu müssen, kann man diese in seine Home-Verzeichnis in einer Konfigurationsdatei im json-Format anlegen wie folgt: &amp;lt;pre&amp;gt;`$HOME/.config/ctb/config.json`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;user&amp;quot;: &amp;quot;john-doe&amp;quot;,&lt;br /&gt;
		&amp;quot;pass&amp;quot;: &amp;quot;sUp3rPassword!&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In der composer.json der jeweiligen Erweiterung kann man ebenfalls einige Daten ablagen um die Aufrufe auf Kommandozeile zu verkürzen.&lt;br /&gt;
Dazu in Abschnitt extra ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;quot;transifex&amp;quot;: {&lt;br /&gt;
		&amp;quot;project&amp;quot;: &amp;quot;acme-core&amp;quot;,&lt;br /&gt;
		&amp;quot;prefix&amp;quot;: &amp;quot;core-&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_cto&amp;quot;: &amp;quot;languages&amp;quot;,&lt;br /&gt;
		&amp;quot;languages_tx&amp;quot;: &amp;quot;.tx&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dabei bedeuten:&lt;br /&gt;
* &amp;quot;project&amp;quot; : der Projektname auf Transifex&lt;br /&gt;
* &amp;quot;prefix&amp;quot; : ein frei wählbarer Prefix, aus diesem und dem originalem Dateiname wird der Dateiname für die Ressource generiert (z.B.:  core-tl_module)&lt;br /&gt;
* &amp;quot;languages_cto&amp;quot;: Verzeichnisname in dem die Sprachunterverzeichnisse liegen (/de/..., /en/... )&lt;br /&gt;
* &amp;quot;languages_tx&amp;quot;: Verzeichnisname in der die umgewandelten XLIFF Datein abgelegt werden sollen&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-07T13:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden die Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden diese XLIFF Dateien mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/ &lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die Installationanleitung entspricht der aus der Readme von ctb und kann auf zwei Arten erfolgen.&lt;br /&gt;
==Über composer==&lt;br /&gt;
Download composer wenn noch nicht vorhanden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und nun die Contao Toolbox installieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer create-project --prefer-source cyberspectrum/contao-toolbox&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Achtung|Am Ende der Installation wird gefragt, ob die VCS History gelöscht werden kann, hier mit 'n' dieses verneinen. Sonst arbeitet der Compiler nicht richtig (folgt später)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Über Git Cloning==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/discordier/contao-toolbox.git&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Anschließend als erstes die Abhängikeiten auflösen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php composer update&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optional: eine ctb.phar kompilieren===&lt;br /&gt;
Zum kompilieren ruft man das mitgelieferten Compiler-Script auf.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bin/compile-ctb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese phar Datei kann man nun in ein Pfad kopieren auf dem ein Suchpfad liegt. Dadurch ist die spätere Nutzung einfacher. Dazu noch ein alias anlegen um ctb ohne die Endung .phar aufrufen zu können.&lt;br /&gt;
&lt;br /&gt;
Falls es zu einem Compiler Fehler kommt liegt es wohl an einer Einstellunge in der php.ini, dort muss definiert sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Phar]&lt;br /&gt;
phar.readonly = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Weitere Hinweise dazu: [http://php.net/phar.readonly php.net/phar.readonly]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
(composer.json / config.json)&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_TX_Client</id>
		<title>Transifex mit TX Client</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_TX_Client"/>
				<updated>2014-07-03T14:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
TODO: Folgt später.&lt;br /&gt;
{{stub}}&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-07-03T14:21:36Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Was ist das?=&lt;br /&gt;
Die Contao-Toolbox, kurz '''ctb''', gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Konzept dahinter ist folgender.&lt;br /&gt;
* der Entwickler legt wie bisher PHP Sprachdateien an für die Ursprungsprache, z.B. &amp;quot;en&amp;quot;, im Modul Unterverzeichnis language/en/&lt;br /&gt;
* mit ''ctb'' werden die Sprachdateien in das XLIFF Format gewandelt&lt;br /&gt;
* anschließend werden diese XLIFF Dateien mit ''ctb'' hoch geladen nach Transifex und tauchen dadurch in der Ursprungsprache als Ressourcen auf&lt;br /&gt;
* übersetzte Ressourcen anderer Sprachen werden mit ''ctb'' runter geladen im XLIFF Format&lt;br /&gt;
* anschließend werden mit ''ctb'' diese in PHP Sprachdateien umgewandelt und in das passende Verzeichnis abgelegt, z.B. language/de/ &lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
(composer.json / config.json)&lt;br /&gt;
&lt;br /&gt;
=Kommandozeilen Workflow=&lt;br /&gt;
&lt;br /&gt;
=Upload weiterer Sprachen=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Wird ergänzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-07-03T14:07:36Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Transifex für Übersetzer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einem passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim Anlegen des Projektes in Transifex legt man die Ursprungssprache fest. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in der Ursprungssprache einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
Transifex ist als eine Onlineplattform zum Übersetzen konzipiert. Es ist aber auch offline, also lokal möglich die Ressourcen zu übersetzen und hoch zu laden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Offline</id>
		<title>Transifex für Übersetzer Offline</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Offline"/>
				<updated>2014-07-03T14:05:39Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
TODO: Folgt später.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-07-03T14:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
=Registration in Transifex=&lt;br /&gt;
Wer nur als Übersetzer in Transifex arbeiten möchte, muss sich dort als erstes als Contributor registrieren. &lt;br /&gt;
* https://www.transifex.com/signup/contributor/ &lt;br /&gt;
In der Bestätigungs-E-Mail auf den Bestätigungslink klicken.&lt;br /&gt;
&lt;br /&gt;
=An einem Projekt beteiligen=&lt;br /&gt;
Es gibt nun zwei Wege sich an Übersetzungen zu beteiligen bzw. sich dran zu beteiligen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein öffentliches Projekt suchen über https://www.transifex.com/connect/projects/ und dann:&lt;br /&gt;
* in der Sprachübersicht auf eine Sprache klicken und dort auf &amp;quot;Gruppe beitreten&amp;quot;, um bei eine vorhandene Sprache mitzuwirken&lt;br /&gt;
* in der Sprachübersicht auf &amp;quot;Sprache anfragen&amp;quot;, um eine neue Sprache für dieses Projekt zu öffen.&lt;br /&gt;
&lt;br /&gt;
=Übersetzen einer Ressource=&lt;br /&gt;
Sobald man in die gewählte Sprachen wechseln kann, sieht man die Ressourcen. Diese anklicken, und dann in dem Popup auf &amp;quot;Jetzt übersetzen&amp;quot;.&lt;br /&gt;
Nun sieht man ein Formular, links die einzelnen Wortgruppen der gewählten Ressource, in der Mitte das Original und die Übersetzung (bzw. leer), und rechts einige Statusinformation wie Vorschläge, Verlauf etc. (bei kleinerer Auflösung ist die rechte Spalte unter der mittleren)&lt;br /&gt;
&lt;br /&gt;
Nun klickt man sich links die Wortgruppe raus die man übersetzen will, tut das in der Mitte und geht mit TAB zur nächsten, wobei vorher automatisch gespeichert wird, oder speichert direkt.&lt;br /&gt;
&lt;br /&gt;
Ist man als Prüfer eingetragen, gibt es dort noch einen Button &amp;quot;Überprüfen&amp;quot;. Damit markiert man dann, dass die Übersetzung von jemandem anderem stimmt und bestätigt wird.&lt;br /&gt;
&lt;br /&gt;
Ist man mit dieser Ressource fertig, klickt man links oben auf den Ressourcen Name und bekommt eine Übersicht weiterer Ressourcen. So kann man sich durch alle Ressourcen durcharbeiten und die Wortgruppen übersetzen die man möchte. Man muss nicht alles übersetzen, ist natürlich gern gesehen, jede Kleinigkeit hilft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; [[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 16:04, 3. Jul. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-07-03T14:03:00Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Übersetzen einer Ressource */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
=Registration in Transifex=&lt;br /&gt;
Wer nur als Übersetzer in Transifex arbeiten möchte, muss sich dort als erstes als Contributor registrieren. &lt;br /&gt;
* https://www.transifex.com/signup/contributor/ &lt;br /&gt;
In der Bestätigungs-E-Mail auf den Bestätigungslink klicken.&lt;br /&gt;
&lt;br /&gt;
=An einem Projekt beteiligen=&lt;br /&gt;
Es gibt nun zwei Wege sich an Übersetzungen zu beteiligen bzw. sich dran zu beteiligen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein öffentliches Projekt suchen über https://www.transifex.com/connect/projects/ und dann:&lt;br /&gt;
* in der Sprachübersicht auf eine Sprache klicken und dort auf &amp;quot;Gruppe beitreten&amp;quot;, um bei eine vorhandene Sprache mitzuwirken&lt;br /&gt;
* in der Sprachübersicht auf &amp;quot;Sprache anfragen&amp;quot;, um eine neue Sprache für dieses Projekt zu öffen.&lt;br /&gt;
&lt;br /&gt;
=Übersetzen einer Ressource=&lt;br /&gt;
Sobald man in die gewählte Sprachen wechseln kann, sieht man die Ressourcen. Diese anklicken, und dann in dem Popup auf &amp;quot;Jetzt übersetzen&amp;quot;.&lt;br /&gt;
Nun sieht man ein Formular, links die einzelnen Wortgruppen der gewählten Ressource, in der Mitte das Original und die Übersetzung (bzw. leer), und rechts einige Statusinformation wie Vorschläge, Verlauf etc. (bei kleinerer Auflösung ist die rechte Spalte unter der mittleren)&lt;br /&gt;
&lt;br /&gt;
Nun klickt man sich links die Wortgruppe raus die man übersetzen will, tut das in der Mitte und geht mit TAB zur nächsten, wobei vorher automatisch gespeichert wird, oder speichert direkt.&lt;br /&gt;
&lt;br /&gt;
Ist man als Prüfer eingetragen, gibt es dort noch einen Button &amp;quot;Überprüfen&amp;quot;. Damit markiert man dann, dass die Übersetzung von jemandem anderem stimmt und bestätigt wird.&lt;br /&gt;
&lt;br /&gt;
Ist man mit dieser Ressource fertig, klickt man links oben auf den Ressourcen Name und bekommt eine Übersicht weiterer Ressourcen. So kann man sich durch alle Ressourcen durcharbeiten und die Wortgruppen übersetzen die man möchte. Man muss nicht alles übersetzen, ist natürlich gern gesehen, jede Kleinigkeit hilft.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-07-03T14:00:17Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Registration in Transifex */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
=Registration in Transifex=&lt;br /&gt;
Wer nur als Übersetzer in Transifex arbeiten möchte, muss sich dort als erstes als Contributor registrieren. &lt;br /&gt;
* https://www.transifex.com/signup/contributor/ &lt;br /&gt;
In der Bestätigungs-E-Mail auf den Bestätigungslink klicken.&lt;br /&gt;
&lt;br /&gt;
=An einem Projekt beteiligen=&lt;br /&gt;
Es gibt nun zwei Wege sich an Übersetzungen zu beteiligen bzw. sich dran zu beteiligen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein öffentliches Projekt suchen über https://www.transifex.com/connect/projects/ und dann:&lt;br /&gt;
* in der Sprachübersicht auf eine Sprache klicken und dort auf &amp;quot;Gruppe beitreten&amp;quot;, um bei eine vorhandene Sprache mitzuwirken&lt;br /&gt;
* in der Sprachübersicht auf &amp;quot;Sprache anfragen&amp;quot;, um eine neue Sprache für dieses Projekt zu öffen.&lt;br /&gt;
&lt;br /&gt;
=Übersetzen einer Ressource=&lt;br /&gt;
Sobald man in die gewählte Sprachen wechseln kann, sieht man die Ressourcen. Klickt man diese an, und dann in dem Popup auf &amp;quot;Jetzt übersetzen&amp;quot;.&lt;br /&gt;
Nun sieht man ein Formular, links die einzelnen Wortgruppen der gewählten Ressource, in der Mitte Orignal und Übersetzung (bzw. leer), und rechts einige Statusinformation wie Vorschläge, Verlauf etc. (bei kleinerer Auflösung ist die rechte Spalte unter der mittleren)&lt;br /&gt;
&lt;br /&gt;
Nun klickt man sich links die Wortgruppe raus die man übersetzen will, tut das in der Mitte und geht mit TAB zum nächsten, wobei vorher automatisch gespeichert wird, oder speichert direkt.&lt;br /&gt;
&lt;br /&gt;
Ist man als Prüfer eingetragen, gibt es dort noch einen Button &amp;quot;Überprüfen&amp;quot;. Damit markiert man dann das die Übersetzung, von jemandem anderem, stimmt und bestätigt wird.&lt;br /&gt;
&lt;br /&gt;
Ist man mit dieser Ressource fertig, klickt man links oben auf den Ressourcen Name und bekommt eine Übersicht weiterer Ressourcen. So kann man sich durch alle Ressourcen durcharbeiten und die Wortgruppen übersetzen die man möchte. Man muss nicht alles übersetzen, ist natürlich gern gesehen, jede Kleinigkeit hilft.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-07-03T13:59:19Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
=Registration in Transifex=&lt;br /&gt;
Wer nur als Übersetzer in Transifex arbeiten möchte, muss sich dort als erstes als Contributor registrieren. &lt;br /&gt;
* https://www.transifex.com/signup/contributor/ &lt;br /&gt;
In der Bestätigungs-E-Mail auf den Bestätigungslink klicken.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun zwei Wege sich an Übersetzungen zu beteiligen bzw. sich dran zu beteiligen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein öffentliches Projekt suchen über https://www.transifex.com/connect/projects/ und dann:&lt;br /&gt;
* in der Sprachübersicht auf eine Sprache klicken und dort auf &amp;quot;Gruppe beitreten&amp;quot;, um bei eine vorhandene Sprache mitzuwirken&lt;br /&gt;
* in der Sprachübersicht auf &amp;quot;Sprache anfragen&amp;quot;, um eine neue Sprache für dieses Projekt zu öffen.&lt;br /&gt;
&lt;br /&gt;
Sobald man in die gewählte Sprachen wechseln kann, sieht man die Ressourcen. Klickt man diese an, und dann in dem Popup auf &amp;quot;Jetzt übersetzen&amp;quot;.&lt;br /&gt;
Nun sieht man ein Formular, links die einzelnen Wortgruppen der gewählten Ressource, in der Mitte Orignal und Übersetzung (bzw. leer), und rechts einige Statusinformation wie Vorschläge, Verlauf etc. (bei kleinerer Auflösung ist die rechte Spalte unter der mittleren)&lt;br /&gt;
&lt;br /&gt;
Nun klickt man sich links die Wortgruppe raus die man übersetzen will, tut das in der Mitte und geht mit TAB zum nächsten, wobei vorher automatisch gespeichert wird, oder speichert direkt.&lt;br /&gt;
&lt;br /&gt;
Ist man als Prüfer eingetragen, gibt es dort noch einen Button &amp;quot;Überprüfen&amp;quot;. Damit markiert man dann das die Übersetzung, von jemandem anderem, stimmt und bestätigt wird.&lt;br /&gt;
&lt;br /&gt;
Ist man mit dieser Ressource fertig, klickt man links oben auf den Ressourcen Name und bekommt eine Übersicht weiterer Ressourcen. So kann man sich durch alle Ressourcen durcharbeiten und die Wortgruppen übersetzen die man möchte. Man muss nicht alles übersetzen, ist natürlich gern gesehen, jede Kleinigkeit hilft.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Visitors</id>
		<title>Visitors</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Visitors"/>
				<updated>2014-06-30T22:37:50Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Forum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Modul_visitors_fe_all.jpg|right|Besucher]]Ein kleines Modul welches die Zugriffe (Hits) und Besucher (Visits) zählt und zur Anzeige bringt.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dabei wird in der Anzeige getrennt angezeigt die Zugriffe/Besucher vom aktuellem Tag sowie die jeweilige Gesamtzahl.&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Zugriffszähler wird, wie der Name schon sagt, bei jedem Zugriff erhöht. Der Besucherzähler zeigt die Zahl der unterschiedlichen IP-Adressen, die innerhalb von 30 Minuten eine oder mehrere Seiten angefordert haben auf dem sich das Modul befindet. (siehe dazu auch [[Visitors#Blockzeit|Blockzeit]])&amp;lt;br &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Glen Langer ([[User:BugBuster|BugBuster]])&lt;br /&gt;
| DevSite=http://www.contao.glen-langer.de&lt;br /&gt;
| ExtVersion=2.8.2 / 3.2.1&lt;br /&gt;
| Version=ab 2.10&lt;br /&gt;
| TLVersion=2.7 - 2.9 (siehe Installationshinweise)&lt;br /&gt;
| Depending=[[Bot Detection|Bot Detection]],[[xls_export|Excel 95 Erzeuger (xls_export)]]&lt;br /&gt;
| ERLink=http://www.contao.org/erweiterungsliste/view/visitors.de.html&lt;br /&gt;
| DonateLink=http://www.amazon.de/wishlist/26HHEJOU03G76&lt;br /&gt;
| TrackerLink=https://github.com/BugBuster1701/visitors/issues&lt;br /&gt;
| VCSLink=https://github.com/BugBuster1701/visitors&lt;br /&gt;
| Comment=Version für Contao 3.2 verfügbar&lt;br /&gt;
}}&lt;br /&gt;
[[en:Visitors]]&lt;br /&gt;
[[Kategorie:Extensions]]&lt;br /&gt;
&lt;br /&gt;
=Forum=&lt;br /&gt;
Fragen zum Visitors-Modul werden im Forum beantwortet: [https://community.contao.org/de/forumdisplay.php?28-visitors Forum - Subforen beliebter Third-Party-Erweiterungen (Extensions) - Visitors]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fehler und Wünsche können auf GitHub im [https://github.com/BugBuster1701/visitors/issues Tracking System] gemeldet werden.{{msgInfo|'''Hinweis bei gleichzeitiger Nutzung von chShop und Visitors:'''&amp;lt;br&amp;gt;Durch einen Bug in chShop funktionierte Visitors nicht. Festgestellt bei Version 0.1.1 beta1 von chShop. Mittlerweile dort behoben (ohne jedoch die Versionsnummer anzupassen)}}&lt;br /&gt;
[http://www.contao-community.de/showthread.php?202-chShop-Integriertes-Bestellsystem-ohne-feste-Artikelverwaltung&amp;amp;p=157260&amp;amp;viewfull=1#post157260 Forum Beitrag zur Lösung]&lt;br /&gt;
&lt;br /&gt;
=Übersetzungen=&lt;br /&gt;
Übersetzungen können auf [https://www.transifex.com/projects/p/contao-visitors/ Transifex] durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Installation erfolgt über das Extension Repository im Backend der Contao-Installation.&amp;lt;br /&amp;gt;&lt;br /&gt;
Eine manuelle Installation ist möglich, dazu die ZIP-Datei [http://www.contao.org/erweiterungsliste/view/visitors.html vom Extension Repository laden], entpacken und entsprechend übertragen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dadurch sollte ein Verzeichnis /system/modules/visitors angelegt worden sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Danach wie dabei üblich /contao/install.php Aufrufen - Update Database durchführen.&amp;lt;br /&amp;gt;&lt;br /&gt;
( /typolight/install.php bei älteren TYPOlight Installationen )&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''''Da das Visitors-Modul abhängig ist von den Modulen &amp;quot;[[Bot Detection|Bot Detection]]&amp;quot; und &amp;quot;[[xls_export|Excel 95 Erzeuger (xls_export)]]&amp;quot;, müssen diese bei der manuellen Installation mit installiert werden.'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis für ältere TYPOlight/Contao-Versionen==&lt;br /&gt;
===Contao 2.9===&lt;br /&gt;
Nutzer von Contao 2.9.x nutzen bitte Visitors-Modul-Version 2.7.1 ([http://www.contao.org/erweiterungsliste/view/visitors.20070019.de.html Direktlink])&lt;br /&gt;
===TYPOlight 2.8===&lt;br /&gt;
Nutzer von TYPOlight 2.8.x nutzen bitte Visitors-Modul-Version 1.7.2 ([http://www.contao.org/erweiterungsliste/view/visitors.10070029.de.html Direktlink])&lt;br /&gt;
===TYPOlight 2.7===&lt;br /&gt;
Nutzer von TYPOlight 2.7.x nutzen bitte Visitors-Modul-Version 1.4.1 ([http://www.contao.org/erweiterungsliste/view/visitors.10040019.de.html Direktlink])&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Update von Version 1.x auf Version 2.x==&lt;br /&gt;
{{Achtung|Die Version 2.x ist nicht vollständig kompatibel, ein Update ist aber möglich.}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Was dabei zu beachten ist, kann hier nachgelesen werden.&lt;br /&gt;
*[[Visitors_Update_v1_auf_v2|'''Visitors-Update-Version 1 auf Version 2''']]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Übersicht=&lt;br /&gt;
Das Visitors-Modul bringt 2 Backend- und ein Frontend-Modul mit.&amp;lt;br /&amp;gt;&lt;br /&gt;
Im Backend gibt es &amp;quot;Besucher&amp;quot; und &amp;quot;Besucher Statistik&amp;quot;, für das Frontend ebenfalls &amp;quot;Besucher&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Backend==&lt;br /&gt;
&lt;br /&gt;
===Besucher===&lt;br /&gt;
[[Datei:Visitors_de_backend_besucher.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Besucher-Statistik===&lt;br /&gt;
[[Datei:Visitors_de_backend_besucherstatistik.jpg]]&lt;br /&gt;
&lt;br /&gt;
zeigt dann im Detail: (Klick aufs Bild für höhere Auflösung)&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot; heights=&amp;quot;180&amp;quot; caption=&amp;quot;Besucher Statistik&amp;quot;&amp;gt;&lt;br /&gt;
File:Visitors_de_backend_besucherstatistikdetail.jpg|Besucher Statistik im Detail&lt;br /&gt;
File:Visitors_de_backend_besucherstatistikdetailBrowser.jpg|Browser Statistik&lt;br /&gt;
File:Visitors_de_backend_besucherstatistikdetailSearchEngine.jpg|Search Engine Referer Statistik&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend==&lt;br /&gt;
Für das Frontend werden als Beispiel zwei CSS-Dateien mitgeliefert:&lt;br /&gt;
*mod_visitors_fe.css für die normale, zeilenweise Ausgabe&lt;br /&gt;
*mod_visitors_fe_horizontal.css für die horizontale Ausgabe&lt;br /&gt;
Ab der Version 3 liegen die css Dateien im Unterverzeichnis &amp;quot;css_demo&amp;quot;. Zur Verwendung siehe [[Visitors#CSS-Datei|CSS-Datei]]&lt;br /&gt;
&lt;br /&gt;
===Besucher-Statistik===&lt;br /&gt;
[[Datei:Modul_visitors_fe_all.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Besucher-Statistik horizontal===&lt;br /&gt;
[[Datei:Modul_visitors_fe_all_horizontal.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Erste Schritte=&lt;br /&gt;
Als erstes legt man über den Menüpunkt Besucher eine neue Besucher-Kategorie an. In dieser dann den Besucherzähler.&amp;lt;br /&amp;gt;&lt;br /&gt;
Danach legt man ein Frontend-Modul an und baut es in das Layout der Seite ein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Hier nun die einzelnen Schritte, jeweils mit den Default-Angaben. Feinheiten werden [[Visitors#Feinheiten|später erklärt]].&lt;br /&gt;
&lt;br /&gt;
==Anlegen einer Kategorie==&lt;br /&gt;
Um eine neue Besucher-Kategorie zu erstellen, klickt man links im Backend unter 'Inhalte' auf 'Besucher'.&amp;lt;br /&amp;gt;&lt;br /&gt;
Im Hauptbereich dann auf den Button 'Neue Kategorie'. &lt;br /&gt;
[[Datei:Visitors_de_backend_kategorie_neu.jpg]]&lt;br /&gt;
&lt;br /&gt;
Am Anfang reicht es einen Kategorie-Namen anzugeben, anschließend klickt man auf &amp;quot;Speichern und Schließen&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Nun ist man in der Kategorie Übersicht. Durch Klick auf den Bleistift in der Zeile der Kategorie und nochmaligem Klick auf den Bleistift im Kopf der Kategorie gelangt man wieder zu den Einstellungen der Kategorie.&lt;br /&gt;
&lt;br /&gt;
==Anlegen des Besucherzählers==&lt;br /&gt;
In der Kategorie Übersicht klickt man nun auf Edit (Bleistift) der Kategorie.&amp;lt;br /&amp;gt;&lt;br /&gt;
Dort entweder auf 'Neuer Besucherzähler' und dann das Pfeil-Symbol oder auf das Plus im Kopf der Kategorie:&lt;br /&gt;
[[Datei:Visitors_de_backend_besucherzaehler_neu.jpg]]&lt;br /&gt;
&lt;br /&gt;
Nun sind einige Angaben nötig:&lt;br /&gt;
* Namen angeben (wird über den Zahlen als Überschrift angezeigt).&lt;br /&gt;
* Start-Datum, ist optional, dient nur zur Anzeige im Frontend&lt;br /&gt;
* Optional: 'Startwerte für Zähler' eingeben&lt;br /&gt;
* Optional: 'Besucher pro Tag' Anzeige aktivieren&lt;br /&gt;
* &amp;quot;Veröffentlicht&amp;quot; aktivieren&lt;br /&gt;
anschließend klickt man auf &amp;quot;Speichern und Schließen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul==&lt;br /&gt;
Ein neues Frontend-Modul wird angelegt über:&lt;br /&gt;
* Layout -&amp;gt; Themes -&amp;gt; Frontend Module -&amp;gt; Neues Modul (Contao ab 2.9)&lt;br /&gt;
* Layout -&amp;gt; Module -&amp;gt; Neues Modul (TYPOlight bis 2.8.x)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Als erstes unbedingt '''zuerst den Titel''' eingeben, erst dann bei Modultyp: 'Verschiedenes'-'Besucher' auswählen. Es ändern sich nun die Formularfelder.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei 'Besucher-Kategorie' nun die vorher angelegte Kategorie auswählen, anschließend 'Speichern und Schließen'.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Nun muss das angelegte Frontend-Modul noch im Layout eingebunden werden:&lt;br /&gt;
* Layout -&amp;gt; Themes -&amp;gt; Seitenlayout -&amp;gt; Edit des genutzte Layouts (Contao ab 2.9)&lt;br /&gt;
* Layout -&amp;gt; Seitenlayout -&amp;gt; Edit des genutzte Layouts (TYPOlight bis 2.8.x)&lt;br /&gt;
&lt;br /&gt;
Bei 'Eingebundene Module' das gerade erstellte Frontend-Modul einbinden (z.b in left)&lt;br /&gt;
&lt;br /&gt;
==CSS-Datei==&lt;br /&gt;
Wie erwähnt sind 2 CSS-Dateien mitgeliefert für die Darstellung.&amp;lt;br /&amp;gt;&lt;br /&gt;
Für die ersten Tests sollte die Datei &amp;lt;code&amp;gt;mod_visitors_fe.css&amp;lt;/code&amp;gt; aus dem Verzeichnis&amp;lt;br&amp;gt;&lt;br /&gt;
*Contao 2.x: &amp;lt;code&amp;gt;/system/modules/visitors&amp;lt;/code&amp;gt; kopiert werden nach &amp;lt;code&amp;gt;/tl_files&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
*Contao 3.x: &amp;lt;code&amp;gt;/system/modules/visitors/css_demo&amp;lt;/code&amp;gt; auf den lokalem PC kopiert werden &amp;lt;br&amp;gt;&lt;br /&gt;
und dann über das Backend importiert (Themes - CSS - Import) und im Layout aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
=Feinheiten=&lt;br /&gt;
Feinheiten sind einstellbar in der Kategorie, im Besucherzähler selbst sowie im selbst angelegtem Frontend-Modul. &lt;br /&gt;
&lt;br /&gt;
==Feinheiten in der Kategorie Definition==&lt;br /&gt;
===Zählweise===&lt;br /&gt;
Seit Version 1.6.0 kann die Zählweise bei eingeschaltetem Seitencache gewählt werden:&lt;br /&gt;
* Last Zählung, serverseitig durch Contao&lt;br /&gt;
* Lese Zählung, clientseitig durch Browser&lt;br /&gt;
** (nur im Contao cacheModus: Server- und Browsercache / Nur Browsercache)&lt;br /&gt;
&lt;br /&gt;
Mit dem zweiten Punkt kann damit auch gezählt werden, wenn die Seite im Browsercache liegt und daraus aufgerufen wird.&lt;br /&gt;
Die System-Einstellung 'Cache-Modus' wird dabei beachtet.&lt;br /&gt;
&lt;br /&gt;
{{Anmerkung|Die Anzeige der aktuellen Werte erfolgt aber weiterhin nur wenn die Seite vom Server angefordert wird.}}&lt;br /&gt;
&lt;br /&gt;
==Feinheiten in der Besucherzähler-Definition==&lt;br /&gt;
===Blockzeit===&lt;br /&gt;
Die Blockzeit wird in Sekunden angegeben. Nach Zugriffspause dieser Zeit wird ein Zugriff als weiterer Besucher gezählt.&amp;lt;br /&amp;gt;&lt;br /&gt;
Voreingetragen sind 1800 Sekunden, d.h. 30 Minuten.&lt;br /&gt;
&lt;br /&gt;
==Feinheiten in der Frontend-Modul-Definition==&lt;br /&gt;
===Templates===&lt;br /&gt;
Jedem Modul kann per Auswahl ein Template zugeordnet werden. Zur Auswahl stehen 4 Templates.&lt;br /&gt;
* mod_visitors_fe_all&lt;br /&gt;
** Liefert alle Felder die möglich sind (siehe Beispielbild oben)&lt;br /&gt;
* mod_visitors_fe_hits&lt;br /&gt;
** Hier wurden die beiden Besucherzeilen entfernt&lt;br /&gt;
* mod_visitors_fe_visits&lt;br /&gt;
** Hier wurden die beiden Zugriffszeilen entfernt&lt;br /&gt;
* mod_visitors_fe_invisible&lt;br /&gt;
** Hier wird nichts angezeigt. Dieses Template dient dadurch zur reinen Zählung.&lt;br /&gt;
&lt;br /&gt;
Es können eigene Templates erstellt werden. Diese müssen als Dateiname anfangen mit 'mod_visitors_fe_' und die Endung '.tpl' (Contao &amp;lt;2.10) bzw. '.xhtml' oder '.html5' haben.&lt;br /&gt;
&lt;br /&gt;
===Nur Gästen anzeigen===&lt;br /&gt;
Nach dem Aktivieren der Funktion wird das Modul versteckt, sobald ein Mitglied (Frontend-Nutzer) angemeldet ist.&lt;br /&gt;
&lt;br /&gt;
===Modul schützen===&lt;br /&gt;
Hier kann nun definiert werden, dass die Anzeige des Moduls nur dann erfolgt, wenn Mitglieder bestimmter Gruppen online sind.&lt;br /&gt;
&lt;br /&gt;
===Selbstzählung verhindern===&lt;br /&gt;
Es gab einige Ideen, wie man noch verhindern kann, eigene Zugriffe nicht zu zählen. Besonders, wenn man mit dynamischen IPs ankommt.&lt;br /&gt;
Hier ist nun eine Möglichkeit umgesetzt, dieses über einen angepassten User Agent String des Browsers zu tun.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Über: &lt;br /&gt;
* Layout -&amp;gt; Themes -&amp;gt; Frontend-Module -&amp;gt; Modul-Name (Contao ab 2.9)&lt;br /&gt;
* Layout -&amp;gt; Module -&amp;gt; Modul-Name (TYPOlight bis 2.8.x)&lt;br /&gt;
vom angelegtem Besucher-Modul kann im neuem Feld &amp;quot;Keine Zählung bei HTTP_USER_AGENT Teilkennung:&amp;quot; einen String eingegeben werden, dieser sollte eindeutig sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel: CTISOK&amp;lt;br /&amp;gt;&lt;br /&gt;
Es sind, wozu auch immer, auch mehrere Strings dort möglich, diese dann durch Komma getrennt eingeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Im Firefox ergänzt man nun den Agent String wie folgt:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Tippe '''about:config''' in der Adresszeile ein und drücke ENTER&lt;br /&gt;
# Tippe '''general.useragent.extra.firefox''' in der Filter Zeile&lt;br /&gt;
# Doppelklick auf die gefunde Zeile&lt;br /&gt;
# Hier nun den Beispiel String von oben mit Leerzeichen getrennt anhängen, OK&lt;br /&gt;
&lt;br /&gt;
z.B. wird so aus &amp;quot;Firefox/3.5.2&amp;quot; nun &amp;quot;Firefox/3.5.2 CTISOK&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Kennung kann man sich dann durch Eingabe von '''about:''' + Enter anzeigen lassen. (letzte Zeile)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Weitere Browser sind hier erläutert (eng):&lt;br /&gt;
[http://www.walkernews.net/2007/07/05/how-to-change-user-agent-string/ walkernews.net - how to change user agent string]&lt;br /&gt;
{{Hinweis|Ab Firefox 4 funktioniert das so nicht mehr. Als Alternative gibt es das Add-On [https://addons.mozilla.org/de/firefox/addon/user-agent-switcher/ User-Agent-Switcher]}}&lt;br /&gt;
&lt;br /&gt;
=Insert-Tags=&lt;br /&gt;
Die Insert-Tags werden vom Frontend Modul selbst benutzt. Ein Nutzer benötigt diese nur, wenn das Frontend Modul nicht eingesetzt wird.&lt;br /&gt;
==Anzeige==&lt;br /&gt;
Seit der Version 1.2.0 gibt es Insert-Tags zum Anzeigen der Werte.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 {{visitors::katid::name}}&lt;br /&gt;
 {{visitors::katid::online}}&lt;br /&gt;
 {{visitors::katid::start}}&lt;br /&gt;
 {{visitors::katid::totalvisit}}&lt;br /&gt;
 {{visitors::katid::totalhit}}&lt;br /&gt;
 {{visitors::katid::todayvisit}}&lt;br /&gt;
 {{visitors::katid::todayhit}}&lt;br /&gt;
 {{visitors::katid::averagevisits}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Seit der Version 1.5.0 und ab TYPOlight 2.8 können die Insert-Tags um den Präfix 'cache_' erweitert werden, damit sind diese dann auch cachesicher.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 {{cache_visitors::katid::name}}&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Modul zählt und zeigt normalerweise die Werte an. Wer für die Anzeige die Insert-Tags nutzen will, braucht das Modul weiterhin, aber nur zum Zählen. Mittels des Templates mod_visitors_fe_invisible kann es dazu unsichtbar geschaltet werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Die &amp;quot;katid&amp;quot; ist die Kategorie-ID, in dem der Zähler angelegt wurde. Zur Ermittlung in der Kategorieübersicht des Moduls mit der Maus über das &amp;quot;i&amp;quot; gehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Visitors_de_backend_kategorie_id.jpg|Besucherzähler Kategorie-ID]]&lt;br /&gt;
&lt;br /&gt;
Dabei wird als Tooltipp die ID angezeigt.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ab Version 2.3.1 steht die ID direkt hinter dem Kategorie-Namen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei Kategorie-ID = 1 wäre das dann also beispielsweise:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 {{visitors::1::online}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zählung==&lt;br /&gt;
Eine Alternative für &amp;quot;nur zählen&amp;quot; wäre, den Insert-Tag zu nutzen, den es ab Version 1.5.0 gibt, das Modul selbst verwendet diesen ebenfalls:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 {{cache_visitors::katid::count}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Beispiel für Einbau in einen Artikel (für Kategorie-ID = 1):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;width:0px;height:0px;&amp;quot;&amp;gt;{{cache_visitors::1::count}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Achtung|Dabei muss drauf geachtet werden, dass der Insert-Tag für die Zählung als erstes auf der Seite eingebaut wird, damit die Zählung vor der Ermittlung der Anzeigewerte erfolgt.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weitere Insert-Tags==&lt;br /&gt;
Seit der Version 2.1.0 gibt es Insert-Tags zum Anzeigen der Werte vom Tag an dem die meisten Besucher gezählt wurden.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 {{visitors::katid::bestday::date}}   - Tag (Datum) mit den meisten Besuchern&lt;br /&gt;
 {{visitors::katid::bestday::visits}} - Anzahl Besucher vom Tag mit den meisten Besuchern&lt;br /&gt;
 {{visitors::katid::bestday::hits}}   - Anzahl Zugriffe vom Tag mit den meisten Besuchern&lt;br /&gt;
bzw.&lt;br /&gt;
 {{cache_visitors::katid::bestday::date}}&lt;br /&gt;
 {{cache_visitors::katid::bestday::visits}}&lt;br /&gt;
 {{cache_visitors::katid::bestday::hits}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Beim &amp;quot;date&amp;quot; Insert-Tag ist noch ein optionaler Parameter möglich, um die Datumsausgabe zu formatieren.(m.d.Y , Y-m-d, etc.)&amp;lt;br /&amp;gt;&lt;br /&gt;
Als default wird die Systemeinstellung verwendet. Als Trennzeichen muss ein &amp;quot;::&amp;quot; verwendet werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ein komplettes Beispiel (hier mit Kategorie 1):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 BestDay: {{visitors::1::bestday::date::j. F Y}} mit {{visitors::1::bestday::visits}} Besuchern (bei {{visitors::1::bestday::hits}} Hits)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ergibt:&lt;br /&gt;
 BestDay: 31. August 2010 mit 25 Besuchern (bei 123 Hits)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Besonderheiten=&lt;br /&gt;
==Keine Zählung==&lt;br /&gt;
Es wird kein Frontend-Aufruf gezählt, wenn man dabei gleichzeitig im Backend angemeldet ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
Es muss ein Frontend Modul angelegt und eingebunden werden, bzw. als Alternative der Insert-Tag für die Zählung (nur für Profis), sonst kann natürlich nicht gezählt werden.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Besucher pro Tag: Ø = 0==&lt;br /&gt;
Der Durschnittswert pro Tag wird pro vollständigem Kalendertag berechnet.&amp;lt;br /&amp;gt;&lt;br /&gt;
Hat man nun nur von einem Tag vorher oder gar nur vom aktuellem Tag eine Zählung, kann kein sinnvoller Wert berechnet werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
(Durschnitt = Anzahl Besucher)&amp;lt;br /&amp;gt;&lt;br /&gt;
In diesen Fällen wird &amp;quot;0&amp;quot; angezeigt.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bot Detection abschalten==&lt;br /&gt;
Wer die Zugriffe von Bots und Suchmaschinen mitzählen möchte, kann die Bot Detection abschalten. Das geht allerdings nicht über das Backend, sondern muss über die localconfig.php passieren.&lt;br /&gt;
{{Achtung|Das gilt dann für alle Visitors-Module, falls mehrere Frontend Module angelegt wurden!}}&lt;br /&gt;
Folgender Eintrag ans Ende der localconfig.php (nach: ### INSTALL SCRIPT STOP ### ) bewirkt das Ausschalten:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_CONFIG']['mod_visitors_bot_check'] = false;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Datenschutz=&lt;br /&gt;
Einige Worte zum Thema Datenschutz. Im Gegensatz zu den meisten anderen Besucherstatistik-Tools, speichert Visitors nicht die Rohdaten und wertet diese später aus. Die notwendigen Auswertungen werden sofort ausgeführt. Gespeichert werden also die fertigen Statistik Daten, mit Außnahme der IP-Adresse, siehe dazu die Hinweise in den weiteren Kapiteln.&lt;br /&gt;
Somit ist das Ziel der Datenvermeidung und Datenminimierung bestmöglich erreicht.&lt;br /&gt;
==Datenerfassung==&lt;br /&gt;
===IP-Adresse===&lt;br /&gt;
Zur Erkennung von unterschiedlichen Besuchern wird ausschließlich die IP-Adresse genommen, kein JavaScript, keine Cookies.&lt;br /&gt;
===Browser-Agent und Referrer===&lt;br /&gt;
Für zusätzliche Statistiken wird der Browser-Agent ausgelesen und der Referrer sofern vorhanden. Beides wird unabhängig von der IP-Adresse getrennt gespeichert und kann somit auch nicht in Verbindung gebracht werden. (reine Zählung)&lt;br /&gt;
==Datenspeicherung==&lt;br /&gt;
===IP-Adresse===&lt;br /&gt;
Gespeichert wird nicht die IP-Adresse des Besuchers. Mit Außnahme zur Erkennung von Bots/Crawler/Spider wird die IP-Adresse auch nicht zu weiteren Analysezwecken verwendet. Aus der IP-Adresse und weiteren internen Daten wird ein Pseudonym generiert in Form eines Hashwertes. Ein Rückrechnen ist denkbar, aber nur mit erheblichem Aufwand. Der Hashwert wird mit keiner anderen statistischen Auswertung in Verbindung gebracht.&lt;br /&gt;
===Browser-Agent und Referrer===&lt;br /&gt;
Für den Browser-Agent werden die Kombinationen aus Browser,Sprache,OS mit einem Zählstand gespeichert, nicht der komplette Agent String. &lt;br /&gt;
Beim Referrer wird die URL gespeichert mit Zählstand und Zeitstempel des letzten Auftretens, ohne Verbindung zur IP-Adresse oder Browser-Agent.&lt;br /&gt;
==Datenhaltung==&lt;br /&gt;
Die Hashwerte zur Erkennung von unterschiedlichen Besuchern werden bei jedem Aufruf geprüft, zeitlich abgelaufende werden dabei gelöscht. Haltezeit entspricht dabei der Blockzeit, Default-Wert ist 1800 Sekunden, d.h. 30 Minuten.&lt;br /&gt;
Referrer Werte werden je nach Art derzeit nach 90 bzw. 120 Tagen gelöscht.&lt;br /&gt;
&lt;br /&gt;
Die Anzahl der Besucher/Zugriffe je Tag wird dauerhaft gespeichert, daraus werden die weiteren Anzeigen generiert. Diese Speicherung kann über das Backend gelöscht werden, der Zähler fängt dann wieder bei 0 an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] 12:24, 22. Nov. 2011 (CET)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T17:57:05Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Ursprungssprache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einem passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim Anlegen des Projektes in Transifex legt man die Ursprungssprache fest. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in der Ursprungssprache einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:51:16Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einem passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in der Ursprungssprache einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Nutzer Rollen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einen passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
Ein Nutzer kann eine oder mehrere Rollen übernehmen innerhalb der Organisation. Hobby Entwickler mit mehreren kleinen Erweiterungen werden in der Muttersprache alle Rollen übernehmen, in der Ursprungssprache einige davon.&lt;br /&gt;
&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:44:35Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Transifex für Entwickler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einen passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tools. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:42:23Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Transifex für Übersetzer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einen passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tool. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
--[[Benutzer:BugBuster|BugBuster]] ([[Benutzer Diskussion:BugBuster|Diskussion]]) 15:42, 30. Jun. 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:42:10Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Übersetzer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einen passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können aber auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tool. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Begriffe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einen passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
Begriffe die einem über den Weg laufen bei der Nutzung von Transifex.&lt;br /&gt;
&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tool. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox</id>
		<title>Transifex mit Contao Toolbox</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_mit_Contao_Toolbox"/>
				<updated>2014-06-30T13:38:15Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
Die Contao-Toolbox gibt es auf GitHub: [https://github.com/cyberspectrum/contao-toolbox contao-toolbox]&lt;br /&gt;
&lt;br /&gt;
TODO: Folgt noch.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Offline</id>
		<title>Transifex für Übersetzer Offline</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Offline"/>
				<updated>2014-06-30T13:36:03Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: Die Seite wurde neu angelegt: „Kategorie:Transifex TODO: Folgt später.  Zum Hauptartikel“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
TODO: Folgt später.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform</id>
		<title>Transifex – Lokalisierungsplattform</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_%E2%80%93_Lokalisierungsplattform"/>
				<updated>2014-06-30T13:35:48Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: /* Transifex für Übersetzer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
[https://www.transifex.com Transifex] ist ein Lokalisierungs-Workflow und eine Crowdsourcing-Plattform, geeignet für die Übersetzung von Software.&lt;br /&gt;
&lt;br /&gt;
Contao nutzt ab Version 3.0 diese Plattform auf Basis von XLIFF Dateien, diese können ab Contao 3.1 auch direkt verarbeitet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.transifex.com/projects/p/contao/ Contao Projekt auf Transifex]&lt;br /&gt;
&lt;br /&gt;
Auch für externe Erweiterungen ist dieser Service gut geeignet. Die Übersetzungen erfolgen dabei meist online, aber auch offline ist dieses möglich mit einen passenden XLIFF Editor.&lt;br /&gt;
&lt;br /&gt;
Nachfolgende Seiten sollen zeigen wie Entwickler und Übersetzer damit umgehen können.&lt;br /&gt;
&lt;br /&gt;
=Begriffe=&lt;br /&gt;
==Organisation==&lt;br /&gt;
Eine Organisation stellt in der Regel ein Unternehmen oder ein große Lokalisierungsprojekt da, wie zum Beispiel &amp;quot;Contao&amp;quot;. Ein Unternehmen hat in der Regel eine Organisation und ist verbunden mit dieser. Diese beherbergt die Übersetzungsteams und verschiedene Projekte. &lt;br /&gt;
&lt;br /&gt;
==Projekt==&lt;br /&gt;
Ein Art Container, in dem übersetzbaren Inhalte übertragen werden. Dieser Container kann ein Computerprogramm, eine Werbekampagne, Dokumente oder ähnliches sein. Eine Organisation kann beliebige viele Projekte haben (konstenlos nur bei Open Source)&lt;br /&gt;
&lt;br /&gt;
==Ressource==&lt;br /&gt;
Dateien, die übersetzbaren Strings enthalten. Nachdem ein Projekt erstellt wurde, kann der Nutzer seine Ressourcen uploaden, die übersetzbaren Dateien in der entsprechenden Quellsprache. Eine Ressource kann die Dokumentation eines Computerprogramms darstellen, die Worte in einem Menü, usw. Ein Projekt kann so viele Ressourcen haben, wie gebraucht werden.&lt;br /&gt;
&lt;br /&gt;
==Ursprungssprache==&lt;br /&gt;
Beim ersten Füllen des Projektes mit Ressourcen legt man die Ursprungssprache fest. Diese Sprache kann in Transifex selbst nicht editiert werden. Sie dient als Basissprache für alle Übersetzer in andere Sprachen. Daher bietet es sich an englisch (en) als Ursprungssprache zu definieren.&lt;br /&gt;
{{Achtung|Die Ursprungssprache kann später nicht mehr geändert werden. Dazu muss das ganze Projekt gelöscht und neu angelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
=Nutzer Rollen=&lt;br /&gt;
==Organisations-Administrator==&lt;br /&gt;
Administratoren sind Benutzer, die Zugang zu bestimmten Werkzeugen auf Transifex haben somit die volle Kontrolle über eine Organisation haben.&lt;br /&gt;
&lt;br /&gt;
==Projekt-Betreuer==&lt;br /&gt;
Diese Nutzer haben die Kontrolle über die Einstellungen eines Projekts, wie Eigentum, Löschung, maschinelle Übersetzung, TMX-Dateien, Auto-Update usw.&lt;br /&gt;
&lt;br /&gt;
==Sprachteam Koordinator==&lt;br /&gt;
Jedes Übersetzungsteam hat mindestens einen Sprachkoordinator. Er ist für die Lokalisierung in diese spezifische Sprache verantwortlich. Er kann Übersetzer und Prüfer freigeben und auch selbst übersetzen.&lt;br /&gt;
&lt;br /&gt;
==Prüfer==&lt;br /&gt;
Ein Benutzer, der sowohl über Übersetzungs- und Überprüfungs-Berechtigungen verfügt. Er kann entweder übersetzen, eine Übersetzung bearbeiten oder eine Übersetzung markieren als überprüft, für die Qualitätskontrolle.&lt;br /&gt;
&lt;br /&gt;
==Übersetzer==&lt;br /&gt;
Ein Benutzer mit Berechtigungen Übersetzung, der auch in Teamdiskussionen (auf Transifex) veröffentlichen kann. Übersetzer werden auf eine bestimmte Sprache gebunden, können auch als Prüfer definiert werden.&lt;br /&gt;
&lt;br /&gt;
=Transifex für Entwickler=&lt;br /&gt;
Neben den TX Client von Transifex gibt es Dank der API auch diverse externe Tool. Eines davon soll hier vorgestellt und in der Nutzunug erläutert werden.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_TX_Client|Nutzung Transifex mit dem TX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_mit_Contao_Toolbox|Nutzung Transifex mit Contao-Toolbox]]&lt;br /&gt;
&lt;br /&gt;
=Transifex für Übersetzer=&lt;br /&gt;
TODO: Registrieren, Übersetzungsanfrage, Online/Offline Übersetzung&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Online|Transifex für Übersetzer Online]]&lt;br /&gt;
&lt;br /&gt;
[[Transifex_für_Übersetzer_Offline|Transifex für Übersetzer Offline]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online</id>
		<title>Transifex für Übersetzer Online</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Transifex_f%C3%BCr_%C3%9Cbersetzer_Online"/>
				<updated>2014-06-30T13:35:14Z</updated>
		
		<summary type="html">&lt;p&gt;BugBuster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Transifex]]&lt;br /&gt;
TODO: Folgt später.&lt;br /&gt;
&lt;br /&gt;
[[Transifex_–_Lokalisierungsplattform|Zum Hauptartikel]]&lt;/div&gt;</summary>
		<author><name>BugBuster</name></author>	</entry>

	</feed>