diff --git a/kalamar.dict b/kalamar.dict
index a7b5aa6..b88a0d2 100644
--- a/kalamar.dict
+++ b/kalamar.dict
@@ -65,8 +65,36 @@
       doc => {
         ql => {
           'poliqarp-plus' => 'de/doc/ql/poliqarp-plus'
+        },
+        api => {
+          'koralquery' => 'de/doc/api/koralquery'
+        },
+        data => {
+          'annotation' => 'de/doc/data/annotation'
+        },
+        korap => {
+          'kalamar' => 'de/doc/korap/kalamar',
+          'karang' => 'de/doc/korap/karang',
+          'koral' => 'de/doc/korap/koral',
+          'krill' => 'de/doc/korap/krill',
+          'kustvakt' => 'de/doc/korap/kustvakt'
         }
       }
+    },
+    Nav => {
+      'ql' => 'Anfragesprachen',
+      '#segments' => 'Einfache Segmente',
+      '#complex' => 'Komplexe Segmente',
+      '#spans' => 'Span Segmente',
+      '#paradigmatic-operators' => 'Paradigmatische Operatoren',
+      '#syntagmatic-operators' => 'Syntagmatische Operatoren',
+      '#class-operators' => 'Klassen Operatoren',
+      'regexp' => 'Reguläre Ausdrücke',
+      'data' => 'Daten',
+      'corpus' => 'Korpora',
+      'annotation' => 'Annotationen',
+      '#default-foundries' => 'Standard Foundries',
+      'faq' => 'Häufig gestellte Fragen'
     }
   },
   -en => {
@@ -125,14 +153,37 @@
     Template => {
       doc => {
         ql => {
-#          'annis' => 'doc/ql/annis',
-#          'cosmas-2' => 'doc/ql/cosmas-2',
-#          'cql' => 'doc/ql/cql',
-          'poliqarp-plus' => 'doc/ql/poliqarp-plus',
-#          'regexp' => 'doc/ql/regexp',
-#          'wildcards' => 'doc/ql/wildcards'
+          'poliqarp-plus' => 'doc/ql/poliqarp-plus'
+        },
+        api => {
+          'koralquery' => 'doc/api/koralquery'
+        },
+        data => {
+          'annotation' => 'doc/data/annotation'
+        },
+        korap => {
+          'kalamar' => 'doc/korap/kalamar',
+          'karang' => 'doc/korap/karang',
+          'koral' => 'doc/korap/koral',
+          'krill' => 'doc/korap/krill',
+          'kustvakt' => 'doc/korap/kustvakt'
         }
       }
+    },
+    Nav => {
+      'ql' => 'Query Languages',
+      '#segments' => 'Simple Segments',
+      '#complex' => 'Complex Segments',
+      '#spans' => 'Span Segments',
+      '#paradigmatic-operators' => 'Paradigmatic Operators',
+      '#syntagmatic-operators' => 'Syntagmatic Operators',
+      '#class-operators' => 'Class Operators',
+      'regexp' => 'Regular Expressions',
+      'data' => 'Data',
+      'corpus' => 'Corpora',
+      'annotation' => 'Annotations',
+      '#default-foundries' => 'Default Foundries',
+      'faq' => 'F.A.Q.'
     }
   }
 };
diff --git a/lib/Kalamar/Plugin/KalamarHelpers.pm b/lib/Kalamar/Plugin/KalamarHelpers.pm
index 8ae6c1e..a091a28 100644
--- a/lib/Kalamar/Plugin/KalamarHelpers.pm
+++ b/lib/Kalamar/Plugin/KalamarHelpers.pm
@@ -18,7 +18,7 @@
 
       my $base = $c->url_for('index');
       if ($base->path->parts->[0]) {
-	$base->path->trailing_slash(1);
+        $base->path->trailing_slash(1);
       };
 
       # If there is a different base - append this as a base
@@ -26,11 +26,12 @@
 
       $url->fragment($scope);
 
-      return $c->tag('object',
-	data => $url,
-	type => 'image/svg+xml',
-	alt  => $c->loc('korap_overview'),
-	id   => 'overview'
+      return $c->tag(
+        'object',
+        data => $url,
+        type => 'image/svg+xml',
+        alt  => $c->loc('korap_overview'),
+        id   => 'overview'
       );
     }
   );
@@ -48,17 +49,17 @@
       ($page, my $fragment) = split '#', $page;
 
       my $url = $c->url_with(
-	'doc',
-	scope => $scope,
-	page => $page
+        'doc',
+        scope => $scope,
+        page => $page
       );
 
       $url->fragment($fragment) if $fragment;
 
       return $c->link_to(
-	$title,
-	$url,
-	class => 'doc-link'
+        $title,
+        $url,
+        class => 'doc-link'
       );
     }
   );
@@ -87,11 +88,11 @@
       my $scope = shift;
       my $url;
       if ($page) {
-	$url = $c->url_for('doc', page => $page, scope => $scope);
-	$url->path->canonicalize;
+        $url = $c->url_for('doc', page => $page, scope => $scope);
+        $url->path->canonicalize;
       }
       else {
-	$url = $c->url_for('doc_start');
+        $url = $c->url_for('doc_start');
       };
       return $c->link_to($cb->($c), $url);
     }
@@ -111,71 +112,73 @@
       # Embed all link tags
       foreach (@$items) {
 
-	my ($active, $url) = 0;
+        my ($active, $url) = 0;
 
-	# There is a fragment!
-	if (index($_->{id}, '#') == 0) {
+        # There is a fragment!
+        if (index($_->{id}, '#') == 0) {
 
-	  my $part_scope = scalar($scope);
-	  $part_scope =~ s!\/([^\/]+)$!!;
-	  my $page = $1;
-	  my $id = $_->{id};
-	  $id =~ s/^#//;
+          my $part_scope = scalar($scope);
+          $part_scope =~ s!\/([^\/]+)$!!;
+          my $page = $1;
+          my $id = $_->{id};
+          $id =~ s/^#//;
 
-	  $url = $c->url_with(
-	    'doc',
-	    'scope' => $part_scope,
-	    'page' => $page
-	  );
+          $url = $c->url_with(
+            'doc',
+            'scope' => $part_scope,
+            'page' => $page
+          );
 
-	  $url->fragment($id);
-	}
+          $url->fragment($id);
+        }
 
-	# There is no fragment
-	else {
+        # There is no fragment
+        else {
 
-	  # The item is active
-	  if ($c->stash('page') && $c->stash('page') eq $_->{id}) {
-	    $active = 1;
-	  };
+          # The item is active
+          if ($c->stash('page') && $c->stash('page') eq $_->{id}) {
+            $active = 1;
+          };
 
-	  # Generate url with query parameter inheritance
-	  $url = $c->url_with(
-	    'doc',
-	    'scope' => $scope,
-	    'page' => $_->{id}
-	  );
+          # Generate url with query parameter inheritance
+          $url = $c->url_with(
+            'doc',
+            'scope' => $scope,
+            'page' => $_->{id}
+          );
 
-	  # Canonicalize (for empty scopes)
-	  $url->path->canonicalize;
-	};
+          # Canonicalize (for empty scopes)
+          $url->path->canonicalize;
+        };
 
-	my @classes;
-	push(@classes, $_->{'class'}) if $_->{'class'};
-	push(@classes, 'active') if $active;
+        my @classes;
+        push(@classes, $_->{'class'}) if $_->{'class'};
+        push(@classes, 'active') if $active;
 
 
-	# New list item
-	$html .= '<li';
-	if (@classes) {
-	  $html .= ' class="' . join(' ', @classes) . '"';
-	};
-	$html .= '>';
+        # New list item
+        $html .= '<li';
+        if (@classes) {
+          $html .= ' class="' . join(' ', @classes) . '"';
+        };
+        $html .= '>';
 
+        # Translate title
+        my $title = $c->loc('Nav_' . $_->{id}, $_->{title});
 
-	# Generate link
-	$html .= $c->link_to($_->{title}, $url);
+        # Generate link
+        $html .= $c->link_to($title, $url);
 
-	# Set sub entries
-	if ($_->{items} && ref($_->{items}) eq 'ARRAY') {
-	  $html .= "\n";
-	  my $subscope = $scope ? scalar($scope) . '/' . $_->{id} : $_->{id};
-	  $html .= $c->doc_navi($subscope, $_->{items});
-	  $html .= "</li>\n";
-	}
-	else {
-	  $html .= "</li>\n";
-	};
+        # Set sub entries
+        if ($_->{items} && ref($_->{items}) eq 'ARRAY') {
+          $html .= "\n";
+          my $subscope = $scope ? scalar($scope) . '/' . $_->{id} : $_->{id};
+          $html .= $c->doc_navi($subscope, $_->{items});
+          $html .= "</li>\n";
+        }
+        else {
+          $html .= "</li>\n";
+        };
       };
       return $html . "</ul>\n";
     }
@@ -192,13 +195,13 @@
 
       # Return tag
       b('<pre class="query tutorial" ' .
-	  qq!data-query="$q" data-query-cutoff="! .
-	    ($param{cutoff} ? 1 : 0) .
-	      '"' .
-		qq! data-query-language="$ql">! .
-		  '<code>' . $q . '</code>' .
-		    '</pre>'
-		);
+          qq!data-query="$q" data-query-cutoff="! .
+          ($param{cutoff} ? 1 : 0) .
+          '"' .
+          qq! data-query-language="$ql">! .
+          '<code>' . $q . '</code>' .
+          '</pre>'
+        );
     }
   );
 
@@ -210,14 +213,14 @@
 
       # Test port is defined in the stash
       if (defined $c->stash('kalamar.test_port')) {
-	return $c->stash('kalamar.test_port');
+        return $c->stash('kalamar.test_port');
       };
 
       # Check the port
       if ($c->req->url->to_abs->port == 6666 ||
-	    $c->app->mode =~ m/^development|test$/) {
-	$c->stash('kalamar.test_port' => 1);
-	return 1;
+            $c->app->mode =~ m/^development|test$/) {
+        $c->stash('kalamar.test_port' => 1);
+        return 1;
       };
 
       # No test port
diff --git a/t/docnavi.t b/t/docnavi.t
index a9dc149..122956f 100644
--- a/t/docnavi.t
+++ b/t/docnavi.t
@@ -1,8 +1,8 @@
 use Mojo::Base -strict;
-use lib '../lib', 'lib';
 use Mojolicious::Lite;
 use Test::More;
 use Test::Mojo;
+use utf8;
 
 my $t = Test::Mojo->new;
 my $app = $t->app;
@@ -16,6 +16,23 @@
 # Load plugin to test
 $app->plugin('KalamarHelpers');
 
+my $languages = [qw/en de/];
+$app->plugin('Localize' => {
+  dict => {
+    Nav => {
+      _ => sub { $languages },
+      -en => {
+        faq => 'F.A.Q.',
+        '#default-foundries' => 'Default Foundries',
+      },
+      de => {
+        faq => 'Häufige Fragen',
+        '#default-foundries' => 'Standard Foundries'
+      }
+    }
+  }
+});
+
 my $navi = [
   {
     id => 'korap',
@@ -50,8 +67,8 @@
     title => 'KorAP',
     items => [
       {
-	id => 'krill',
-	title => 'Krill',
+        id => 'krill',
+        title => 'Krill',
       }
     ]
   },
@@ -72,12 +89,12 @@
     title => 'KorAP',
     items => [
       {
-	id => 'krill',
-	title => 'Krill',
+        id => 'krill',
+        title => 'Krill',
       },
       {
-	id => 'koral',
-	title => 'Koral'
+        id => 'koral',
+        title => 'Koral'
       }
     ]
   },
@@ -86,22 +103,22 @@
     id => 'ql',
     items => [
       {
-	title => 'Cosmas II',
-	id => 'cosmas2'
+        title => 'Cosmas II',
+        id => 'cosmas2'
       },
       {
-	'title' => 'Poliqarp+',
-	'id' => 'poliqarp-plus',
-	items => [
-	  {
-	    "title" => "Simple Segments",
-	    "id" => "#segments"
-	  },
-	  {
-	    "title" => "Complex Segments",
-	    "id" => "#complex"
-	  }
-	]
+        'title' => 'Poliqarp+',
+        'id' => 'poliqarp-plus',
+        items => [
+          {
+            "title" => "Simple Segments",
+            "id" => "#segments"
+          },
+          {
+            "title" => "Complex Segments",
+            "id" => "#complex"
+          }
+        ]
       }
     ]
   },
@@ -155,12 +172,12 @@
     title => 'KorAP',
     items => [
       {
-	id => 'krill',
-	title => 'Krill',
+        id => 'krill',
+        title => 'Krill',
       },
       {
-	id => 'koral',
-	title => 'Koral'
+        id => 'koral',
+        title => 'Koral'
       }
     ]
   },
@@ -169,23 +186,23 @@
     id => 'ql',
     items => [
       {
-	title => 'Cosmas II',
-	id => 'cosmas2'
+        title => 'Cosmas II',
+        id => 'cosmas2'
       },
       {
-	'title' => 'Poliqarp+',
-	'id' => 'poliqarp-plus',
-	'class' => 'folded',
-	items => [
-	  {
-	    "title" => "Simple Segments",
-	    "id" => "#segments"
-	  },
-	  {
-	    "title" => "Complex Segments",
-	    "id" => "#complex"
-	  }
-	]
+        'title' => 'Poliqarp+',
+        'id' => 'poliqarp-plus',
+        'class' => 'folded',
+        items => [
+          {
+            "title" => "Simple Segments",
+            "id" => "#segments"
+          },
+          {
+            "title" => "Complex Segments",
+            "id" => "#complex"
+          }
+        ]
       }
     ]
   },
@@ -205,6 +222,45 @@
      'Path matches doc/ql/poliqarp-plus#complex');
 like($render, qr!class="folded active".*?Poliqarp\+!, 'Active and folded value for Poliqarp+');
 
+
+# Test for translations
+$navi = [
+  {
+    id => 'korap',
+    title => 'KorAP',
+    items => [
+      {
+        id => 'krill',
+        title => 'Krill',
+      }
+    ]
+  },
+  {
+    id => 'faq',
+    title => 'F.A.Q.'
+  }
+];
+
+$render = $app->doc_navi($navi);
+like($render, qr!/doc/korap!, 'Path matches doc/korap');
+like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
+like($render, qr!<a href="/doc/korap/krill">Krill</a>!,
+     'Path matches korap/krill');
+like($render, qr!<a href="/doc/faq">F\.A\.Q\.</a>!,
+     'Path matches FAQ');
+
+# Change preferred language
+$languages = [qw/de en/];
+
+$render = $app->doc_navi($navi);
+like($render, qr!/doc/korap!, 'Path matches doc/korap');
+like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
+like($render, qr!<a href="/doc/korap/krill">Krill</a>!,
+     'Path matches korap/krill');
+like($render, qr!<a href="/doc/faq">Häufige Fragen</a>!,
+     'Path matches FAQ');
+
+
 done_testing;
 
 __END__
diff --git a/templates/de/doc/api/koralquery.html.ep b/templates/de/doc/api/koralquery.html.ep
new file mode 100644
index 0000000..0df876a
--- /dev/null
+++ b/templates/de/doc/api/koralquery.html.ep
@@ -0,0 +1,7 @@
+% layout 'main', title => 'KorAP: KoralQuery';
+
+<h2>KoralQuery</h2>
+
+<p><strong>Hauptentwickler:</strong> Nils Diewald, Joachim Bingel</p>
+
+<p>Die Spezifikation für KoralQuery ist auf <%=doc_ext_link_to 'GitHub', "http://korap.github.io/Koral"%> verfügbar.</p>
diff --git a/templates/de/doc/data/annotation.html.ep b/templates/de/doc/data/annotation.html.ep
new file mode 100644
index 0000000..4fcb2a1
--- /dev/null
+++ b/templates/de/doc/data/annotation.html.ep
@@ -0,0 +1,115 @@
+% layout 'main', title => 'KorAP: Annotationen';
+
+<h2>Annotationen</h2>
+
+<p>KorAP bietet Zugriff auf mehrere Ebenen von Annotationen, die aus mehreren Ressourcen stammen, so genannten <em>foundries</em>.</p>
+
+<section id="base">
+  <h3>Basis Foundry</h3>
+  <p>Die Basis Foundry steht allen Korpora zur Verfügung und dient als gemeinsame Grundlage für die Dokumentenstrukturannotation im layer <code>s</code>. Sie unterstützt drei Arten von Spans: <code>&lt;base/s=s&gt;</code> für Sätze, <code>&lt;base/s=p&gt;</code> für Absätze und <code>&lt;base/s=t&gt;</code> für den gesamten Text.</p>
+  %= doc_query poliqarp => '<base/s=s>', cutoff => 1
+</section>
+
+
+<section id="cnx">
+  <h3>Connexor (<code>cnx</code>)</h3>
+  <p>Connexor-Annotationen liefern die folgenden Layer für das <code>cnx</ code> Präfix:</p>
+  <dl>
+    <dt><abbr data-type="token" title="Lemma">l</abbr></dt>
+    <dd>Alle Lemmata sind in Kleinbuchstaben geschrieben. Komposita werden aufgeteilt, z. B. wird das Token &quot;Leitfähigkeit&quot durch die Lemmata &quot;leit&quot; und &quot;fähigkeit&quot; gefunden - nicht durch das Lemma &quot;leitfähigkeit&quot.</dd>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>Part-of-Speech-Informationen werden in Großbuchstaben geschrieben und basieren auf STTS</dd>
+    <dt><abbr data-type="token" title="Syntaktische Informationen">syn</abbr></dt>
+    <dd>Enthält Token-basierte Informationen wie <code>@PREMOD</code>, <code>@NH</code>, <code>@MAIN</code> ...</dd>
+    <dt><abbr data-type="token" title="Morphosyntaktische Information">m</abbr></dt>
+    <dd>Enthält Informationen über Tempus (<code>PRES</code> ...), Modus (<code>IND</code>), Numerus (<code>PL</code> ...) etc.</dd>
+    <dt><abbr data-type="span" title="Phrasen">c</abbr></dt>
+    <dd>Es stehen nur Nominalphrasen zur Verfügung und alle Nominalphrasen sind in Kleinbuchstaben geschrieben (<code>np</code>)</dd>
+  </dl>
+  %= doc_query poliqarp => '[cnx/p=CC]', cutoff => 1
+</section>
+
+
+<section id="corenlp">
+  <h3>CoreNLP (<code>corenlp</code>)</h3>
+  <dl>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>Part-of-Speech-Informationen werden in Großbuchstaben geschrieben und basieren auf STTS</dd>
+    <dt><abbr data-type="token" title="Constituency">c</abbr></dt>
+    <dd>Konstituenten Informationen folgen den Annotationen des <a href="http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/negra-corpus.html">negr@ Korpus</a>.</dd>
+    <dt><abbr data-type="token" title="Named Entity">ne</abbr></dt>
+    <dd>Enthält benannte Entitäten wie <code>I-PER</code>, <code>I-ORG</code> etc.</dd>
+    <dt><abbr data-type="token" title="Named Entity">ne_hgc_175m_600</abbr></dt>
+    <dd>S.o</dd>
+    <dt><abbr data-type="token" title="Named Entity">ne_dewac_175_175m_600</abbr></dt>
+    <dd>S.o.</dd>
+  </dl>
+  %= doc_query poliqarp => '[corenlp/ne_dewac_175m_600=I-ORG]', cutoff => 1
+</section>
+
+
+<section id="tt">
+  <h3>TreeTagger (<code>tt</code>)</h3>
+  <dl>
+    <dt><abbr data-type="token" title="Lemma">l</abbr></dt>
+    <dd>Alle Nicht-Nomen-Lemmata sind in Kleinbuchstaben geschrieben, Substantive sind in Großbuchstaben geschrieben. Komposita bleiben intakt (z. B. <code>Normalbedingung</code>).</dd>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>Alle Part-of-Speech-Informationen werden in Großbuchstaben geschrieben und basieren auf STTS.</dd>
+  </dl>
+  %= doc_query poliqarp => '[tt/p=ADV]', cutoff => 1
+</section>
+
+
+<section id="mate">
+  <h3>Mate (<code>mate</code>)</h3>
+  <dl>
+    <dt><abbr data-type="token" title="Lemma">l</abbr></dt>
+    <dd>Alle Lemmata sind in Kleinbuchstaben geschrieben. Komposita bleiben intakt (z. B. <code>buchstabenbezeichnung</code>)</dd>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>Alle Part-of-Speech-Informationen sind in Großbuchstaben geschrieben und basieren auf STTS</dd>
+    <dt><abbr data-type="token" title="Morphosyntaktische Informationen">m</abbr></dt>
+    <dd>Enthält Informationen über Tempus (<code>tense:pres</code> ...), Modus (<code>mood:ind</code>), Nummerus (<code>number:pl</code> ...), Geschlecht (<code>gender:masc</code> ...) etc.</dd>
+  </dl>
+  %= doc_query poliqarp => '[mate/m=gender:fem]', cutoff => 1
+</section>
+
+
+<section id="opennlp">
+  <h3>OpenNLP (<code>opennlp</code>)</h3>
+  <dl>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>Alle Part-of-Speech-Informationen sind in Großbuchstaben geschrieben und basieren auf STTS</dd>
+  </dl>
+  %= doc_query poliqarp => '[opennlp/p=PDAT]', cutoff => 1
+</section>
+
+<!--
+<section id="xip">
+  <h3>Xerox Incremental Parser (<code>xip</code>)</h3>
+  <dl>
+    <dt><abbr data-type="token" title="Lemma">l</abbr></dt>
+    <dd>All non-noun lemmas are written in lower case, nouns are written upper case. Composita are split, e.g. the token <code>Leitfähigkeit</code> is matched by the lemmas <code>leiten</code> and <code>Fähigkeit</code> - and by a merged and pretty useless <code>leitenfähigkeit</code> (This is going to change)</dd>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>All part-of-spech information is written in capital letters and is based on STTS</dd>
+    <dt><abbr data-type="span" title="Phrases">c</abbr></dt>
+    <dd>Some phrases to create sentences, all upper case (<code>NP</code>, <code>NPA</code>, <code>NOUN</code>, <code>VERB</code>, <code>PREP</code>, <code>AP</code> ...)</dd>      
+  </dl>
+  %= doc_query poliqarp => '[xip/p=ADJ]', cutoff => 1
+  %= doc_query poliqarp => '<xip/c=VERB>', cutoff => 1
+</section>
+-->
+
+<section id="default-foundries">
+  <h3>Standard Foundries</h3>
+  <p>Für Abfragen auf bestimmten Ebenen ohne vorgegebene Foundries stellt KorAP Standard Foundries zur Verfügung. Die Standardfoundries gelten für die folgenden Ebenen:</p>
+
+  <ul>
+    <li><strong>orth</strong>: <code>opennlp</code></li>
+    <li><strong>lemma</strong>: <code>tt</code></li>
+    <li><strong>pos</strong>: <code>tt</code></li>
+  </ul>
+
+  <blockquote>
+    <p>Im Lucene-Backend kann die <code>orth</code>-Ebene nur an eine bestimmte Foundry gebunden werden, da nur eine Tokenisierung unterstützt wird.</p>
+  </blockquote>
+</section>
diff --git a/templates/de/doc/korap/kalamar.html.ep b/templates/de/doc/korap/kalamar.html.ep
new file mode 100644
index 0000000..b43d522
--- /dev/null
+++ b/templates/de/doc/korap/kalamar.html.ep
@@ -0,0 +1,11 @@
+% layout 'main', title => 'KorAP: Kalamar';
+
+<h2>Kalamar</h2>
+
+%= korap_overview 'kalamar'
+
+<p><strong>Hauptentwickler:</strong> Nils Diewald</p>
+
+<p>Kalamar ist das wichtigste User-Frontend von KorAP. Es basiert auf <%= doc_ext_link_to 'Mojolicious', "http://mojolicio.us/" %> und ist in Perl und JavaScript geschrieben.</p>
+
+<p>Kalamar ist Open Source und steht unter <%= doc_ext_link_to 'GitHub', "https://github.com/KorAP/Kalamar"%> zur Verfügung.</p>
diff --git a/templates/de/doc/korap/karang.html.ep b/templates/de/doc/korap/karang.html.ep
new file mode 100644
index 0000000..84dc66d
--- /dev/null
+++ b/templates/de/doc/korap/karang.html.ep
@@ -0,0 +1,9 @@
+% layout 'main', title => 'KorAP: Karang';
+
+<h2>Karang</h2>
+
+%= korap_overview 'karang'
+
+<p><strong>Hauptentwickler:</strong> Piotr Pęzik</p>
+
+<p>Karang ist ein Neo4j-basiertes Such-Backend für KorAP.</p>
diff --git a/templates/de/doc/korap/koral.html.ep b/templates/de/doc/korap/koral.html.ep
new file mode 100644
index 0000000..ea90c03
--- /dev/null
+++ b/templates/de/doc/korap/koral.html.ep
@@ -0,0 +1,11 @@
+% layout 'main', title => 'KorAP: Koral';
+
+<h2>Koral</h2>
+
+%= korap_overview 'koral'
+
+<p><strong>Hauptentwickler:</strong> Joachim Bingel</p>
+
+<p>Koral ist eine Bibliothek, die für die Übersetzung verschiedener Korpus-Abfragesprachen nach <%= doc_link_to('KoralQuery', 'api', 'koralquery')%> konzipiert ist. Derzeit unterstützte Abfragesprachen sind <%= doc_link_to 'Cosmas II', 'ql', 'cosmas2'%>, <%= doc_link_to('Annis QL', 'ql', 'annis')%>, <%= doc_link_to ( 'Poliqarp +', 'ql', 'poliqarp-plus')%> (eine erweiterte Version von Poliqarp) und <%= doc_link_to('CQL', 'ql', 'cql')%>.
+
+<p>Koral ist Open Source und steht unter <%= doc_ext_link_to 'GitHub', "https://github.com/KorAP/Koral"%> zur Verfügung.</p>
diff --git a/templates/de/doc/korap/krill.html.ep b/templates/de/doc/korap/krill.html.ep
new file mode 100644
index 0000000..39b6aec
--- /dev/null
+++ b/templates/de/doc/korap/krill.html.ep
@@ -0,0 +1,11 @@
+% layout 'main', title => 'KorAP: Krill';
+
+<h2>Krill</h2>
+
+%= korap_overview 'krill'
+
+<p><strong>Hauptentwickler:</strong> Nils Diewald, Eliza Margaretha</p>
+
+<p>Krill ist eine <%= doc_ext_link_to 'Lucene', "https://lucene.apache.org/"%> basierte Suchmaschine für große kommentierte Korpora, die als Backend-Komponente für KorAP verwendet wird. Es ist die Referenzimplementierung für <%= doc_link_to('KoralQuery', 'api', 'koralquery')%>, die die meisten Protokolleigenschaften abdeckt.</p>
+
+<p>Krill ist Open Source und steht unter <%= doc_ext_link_to 'GitHub', "https://github.com/KorAP/Krill"%> zur Verfügung.</p>
diff --git a/templates/de/doc/korap/kustvakt.html.ep b/templates/de/doc/korap/kustvakt.html.ep
new file mode 100644
index 0000000..8cc2d81
--- /dev/null
+++ b/templates/de/doc/korap/kustvakt.html.ep
@@ -0,0 +1,9 @@
+% layout 'main', title => 'KorAP: Kustvakt';
+
+<h2>Kustvakt</h2>
+
+%= korap_overview 'kustvakt'
+
+<p><strong>Hauptentwickler:</strong> Michael Hanl, Eliza Margaretha, Franck Bodmer</p>
+
+<p>Kustvakt ist eine Benutzer- und Rechte-Management-Software, die in der Lage ist, Abfragen für richtlinienbasierte Dokumentenbeschränkungen umzuschreiben.</p>
diff --git a/templates/doc/data/annotation.html.ep b/templates/doc/data/annotation.html.ep
index 49e48b7..032375c 100644
--- a/templates/doc/data/annotation.html.ep
+++ b/templates/doc/data/annotation.html.ep
@@ -6,8 +6,8 @@
 
 <section id="base">
   <h3>Base Foundry</h3>
-  <p>The base foundry is available for all corpora and acts as a common ground for document structure annotation. It supports two types of spans: <code>&lt;s&gt;</code> for sentences and <code>&lt;p&gt;</code> for paragraphs - this will likely change in the next index version. These spans lack prefix information!</p>
-  %= doc_query poliqarp => '<s>', cutoff => 1
+  <p>The base foundry is available for all corpora and acts as a common ground for document structure annotation in the layer <code>s</code>. It supports three types of spans: <code>&lt;base/s=s&gt;</code> for sentences, <code>&lt;base/s=p&gt;</code> for paragraphs, and <code>&lt;base/s=t&gt;</code> for the text span</p>
+  %= doc_query poliqarp => '<base/s=s>', cutoff => 1
 </section>
 
 
@@ -33,8 +33,14 @@
 <section id="corenlp">
   <h3>CoreNLP (<code>corenlp</code>)</h3>
   <dl>
-    <dt><abbr data-type="token" title="Named Entity">ne_hgc_175m_600</abbr></dt>
+    <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
+    <dd>Part-of-speech information is written in capital letters and is based on STTS</dd>
+    <dt><abbr data-type="token" title="Constituency">c</abbr></dt>
+    <dd>Constituency information follows the annotations of the <a href="http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/negra-corpus.html">negr@ corpus</a>.</dd>
+    <dt><abbr data-type="token" title="Named Entity">ne</abbr></dt>
     <dd>Contains named entities like <code>I-PER</code>, <code>I-ORG</code> etc.</dd>
+    <dt><abbr data-type="token" title="Named Entity">ne_hgc_175m_600</abbr></dt>
+    <dd>See above</dd>
     <dt><abbr data-type="token" title="Named Entity">ne_dewac_175_175m_600</abbr></dt>
     <dd>See above</dd>
   </dl>
@@ -77,7 +83,7 @@
   %= doc_query poliqarp => '[opennlp/p=PDAT]', cutoff => 1
 </section>
 
-
+<!--
 <section id="xip">
   <h3>Xerox Incremental Parser (<code>xip</code>)</h3>
   <dl>
@@ -91,10 +97,11 @@
   %= doc_query poliqarp => '[xip/p=ADJ]', cutoff => 1
   %= doc_query poliqarp => '<xip/c=VERB>', cutoff => 1
 </section>
+-->
 
 <section id="default-foundries">
   <h3>Default Foundries</h3>
-  <p>For queries on specific layers without given foundries, KorAP provides default foundries, that can be overwritten by user configurations. The default foundries apply to the following layers:</p>
+  <p>For queries on specific layers without given foundries, KorAP provides default foundries<!--, that can be overwritten by user configurations-->. The default foundries apply to the following layers:</p>
 
   <ul>
     <li><strong>orth</strong>: <code>opennlp</code></li>
diff --git a/templates/doc/faq.html.ep b/templates/doc/faq.html.ep
index a7c41e2..72b9f22 100644
--- a/templates/doc/faq.html.ep
+++ b/templates/doc/faq.html.ep
@@ -9,6 +9,7 @@
   <p>Parts of KorAP are already available on <%= doc_ext_link_to 'GitHub', 'https://github.com/KorAP' %>, and we will publish more components in the future.</p>
 </section>
 
+<!--
 <section>
   <h3>Why can’t I create an account?</h3>
   <blockquote>
@@ -22,12 +23,15 @@
   <h3>Why is this written in English only?</h3>
   <p>This is a temporary collection of info before we develop proper documentation.</p>
 </section>
+-->
 
 <section>
   <h3>Why do some queries take a long time to finish, or in the end yield no results?</h3>
   <p>In the alpha phase, part of our tasks is to optimize the system. In the beginning, one may expect some actions to take an inordinate amount of time, but this is getting better and better. If you notice a persistent failure in some specific case, please be so kind as to <%= mail_to_chiffre join('@', 'korap', 'ids-mannheim.de'), subject => 'I found a bug in the query system', begin %>let us know<% end %>.</p>
 </section
 
+
+<!--
 <section>
   <h3>How do I know which tagset to use for collocation analysis properties?</h3>
   <blockquote>
@@ -45,13 +49,15 @@
   <p>The collocation search view uses collocation properties to find collocates in the context of the specified query. This property can be of either a POS or a lemma. The operator assigns this property either an inclusive and exclusive state (i.e. negation) or can specify that the selected property is a regular expression. You can assign multiple properties per queries.</p>
   <p>For more information on this topic, see our <%= doc_ext_link_to 'tutorial video', 'http://youtu.be/hiKHw50Hq9k' %>.</p>
 </section>
+-->
 
 <section>
   <h3>I want to report an issue, how do I do it?</h3>
-  <p>At some point, we shall move to a public ticketing system. For now, we are mostly aware of the outstanding issues and some others are listed below. When you want to report an issue, please send us an <%= mail_to_chiffre join('@', 'korap', 'ids-mannheim.de'), subject => 'I found an issue', begin %>e-mail<% end %>.</p>
+  <p>Please refer to our public ticketing system <%= doc_ext_link_to 'for the frontend at GitHub', 'https://github.com/KorAP/Kalamar/issues' %>, to report on any issues. If you don't have a GitHub account, please send us an <%= mail_to_chiffre join('@', 'korap', 'ids-mannheim.de'), subject => 'I found an issue', begin %>e-mail<% end %>.</p>
   %# This option is the preferred one because it gathers some (and will in time gather more) important versioning data.
 </section>
 
+    <!--
 <section>
   <h3>Are you aware of this/that issue?</h3>
   <p>What follows is a list of selected issues that might affect the users. We are aware of them and will address them. (When? As soon as possible, given the development schedule and time constraints.)</p>
@@ -59,14 +65,13 @@
     <li><strong>Some matches are completely wrong - what’s going on?</strong><br>
       Before the data can be searched, it has to be preprocessed and indexed. These processes can also suffer from errors, especially if the input data format is not perfectly regular, as a result of prior conversions. While fixes in the frontend and in the backend are uploaded quickly, fixes in the preprocessing pipeline (including tokenization, lemmatization etc.) only appear after reindexation - and that doesn’t happen very often. So these bugs will stay online for a while even if they are already fixed in the datasets. Known index bugs already fixed but with the fixes not visible immediately include:
       <ul>
-	<li>Sentence annotations for Treetagger</li>
-	<li>All annotations for Mate (including lemmata)</li>
-	<li>Some annotations on the first token of a text (includes first sentences and first paragraphs, in case they start at the beginning of a text)</li>
+	      <li>Sentence annotations for Treetagger</li>
+	      <li>All annotations for Mate (including lemmata)</li>
+	      <li>Some annotations on the first token of a text (includes first sentences and first paragraphs, in case they start at the beginning of a text)</li>
       </ul>
     </li>
   </ul>
-
   <p>We will be happy to get reports about all wrong matches not related to these bugs.</p>
 </section>
-
+-->
 
diff --git a/templates/doc/navigation.json b/templates/doc/navigation.json
index 931fa7f..12e4683 100644
--- a/templates/doc/navigation.json
+++ b/templates/doc/navigation.json
@@ -4,24 +4,24 @@
     "id" : "korap",
     "items" : [
       {
-	"title" : "Kalamar",
-	"id" : "kalamar"
+        "title" : "Kalamar",
+        "id" : "kalamar"
       },
       {
-	"title" : "Kustvakt",
-	"id" : "kustvakt"
+        "title" : "Kustvakt",
+        "id" : "kustvakt"
       },
       {
-	"title" : "Koral",
-	"id" : "koral"
+        "title" : "Koral",
+        "id" : "koral"
       },
       {
-	"title" : "Krill",
-	"id" : "krill"
+        "title" : "Krill",
+        "id" : "krill"
       },
       {
-	"title" : "Karang",
-	"id" : "karang"
+        "title" : "Karang",
+        "id" : "karang"
       }
     ]
   },
@@ -30,55 +30,55 @@
     "id" : "ql",
     "items" : [
       {
-	"title" : "Cosmas II",
-	"id" : "cosmas-2"
+        "title" : "Cosmas II",
+        "id" : "cosmas-2"
       },
       {
-	"title" : "Poliqarp+",
-	"id" : "poliqarp-plus",
-	"class" : "folded",
-	"items" : [
-	  {
-	    "title" : "Simple Segments",
-	    "id" : "#segments"
-	  },
-	  {
-	    "title" : "Complex Segments",
-	    "id" : "#complex"
-	  },
-	  {
-	    "title" : "Span Segments",
-	    "id" : "#spans"
-	  },
-	  {
-	    "title" : "Paradigmatic Operators",
-	    "id" : "#paradigmatic-operators"
-	  },
-	  {
-	    "title" : "Syntagmatic Operators",
-	    "id" : "#syntagmatic-operators"
-	  },
-	  {
-	    "title" : "Class Operators",
-	    "id" : "#class-operators"
-	  }
-	]
+        "title" : "Poliqarp+",
+        "id" : "poliqarp-plus",
+        "class" : "folded",
+        "items" : [
+          {
+            "title" : "Simple Segments",
+            "id" : "#segments"
+          },
+          {
+            "title" : "Complex Segments",
+            "id" : "#complex"
+          },
+          {
+            "title" : "Span Segments",
+            "id" : "#spans"
+          },
+          {
+            "title" : "Paradigmatic Operators",
+            "id" : "#paradigmatic-operators"
+          },
+          {
+            "title" : "Syntagmatic Operators",
+            "id" : "#syntagmatic-operators"
+          },
+          {
+            "title" : "Class Operators",
+            "id" : "#class-operators"
+          }
+        ]
       },
       {
-	"title" : "Annis QL",
-	"id" : "annis"
+        "title" : "Annis QL",
+        "id" : "annis"
       },
       {
-	"title" : "CQL",
-	"id" : "cql"
+        "title" : "CQL",
+        "id" : "cql"
       },
       {
-	"title" : "Regular Expressions",
-	"id" : "regexp"
+        "title" : "Regular Expressions",
+        "id" : "regexp"
       },
       {
-	"title" : "Wildcards",
-	"id" : "wildcards"
+        "title" : "Wildcards",
+        "id" : "wildcards"
       }
     ]
   },
@@ -87,54 +87,54 @@
     "id" : "data",
     "items" : [
       {
-	"title" : "Corpora",
-	"id" : "corpus",
-	"class" : "folded",
-	"items" : [
-	  {
-	    "title" : "DeReKo",
-	    "id" : "#dereko"
-	  }
-	]
+        "title" : "Corpora",
+        "id" : "corpus",
+        "class" : "folded",
+        "items" : [
+          {
+            "title" : "DeReKo",
+            "id" : "#dereko"
+          }
+        ]
       },
       {
-	"title" : "Annotations",
-	"id" : "annotation",
-	"class" : "folded",
-	"items" : [
-	  {
-	    "title" : "Base",
-	    "id" : "#base"
-	  },
-	  {
-	    "title" : "Connexor",
-	    "id" : "#cnx"
-	  },
-	  {
-	    "title" : "CoreNLP",
-	    "id" : "#corenlp"
-	  },
-	  {
-	    "title" : "TreeTagger",
-	    "id" : "#tt"
-	  },
-	  {
-	    "title" : "Mate",
-	    "id" : "#mate"
-	  },
-	  {
-	    "title" : "OpenNLP",
-	    "id" : "#opennlp"
-	  },
-	  {
-	    "title" : "XIP",
-	    "id" : "#xip"
-	  },
-	  {
-	    "title" : "Default Foundries",
-	    "id" : "#default-foundries"
-	  }
-	]
+        "title" : "Annotations",
+        "id" : "annotation",
+        "class" : "folded",
+        "items" : [
+          {
+            "title" : "Base",
+            "id" : "#base"
+          },
+          {
+            "title" : "Connexor",
+            "id" : "#cnx"
+          },
+          {
+            "title" : "CoreNLP",
+            "id" : "#corenlp"
+          },
+          {
+            "title" : "TreeTagger",
+            "id" : "#tt"
+          },
+          {
+            "title" : "Mate",
+            "id" : "#mate"
+          },
+          {
+            "title" : "OpenNLP",
+            "id" : "#opennlp"
+          },
+          {
+            "title" : "XIP",
+            "id" : "#xip"
+          },
+          {
+            "title" : "Default Foundries",
+            "id" : "#default-foundries"
+          }
+        ]
       }
     ]
   },
@@ -143,20 +143,20 @@
     "id" : "api",
     "items" : [
       {
-	"title" : "KoralQuery",
-	"id" : "koralquery"
+        "title" : "KoralQuery",
+        "id" : "koralquery"
       },
       {
-	"title" : "Search API",
-	"id" : "search"
+        "title" : "Search API",
+        "id" : "search"
       },
       {
-	"title" : "Match API",
-	"id" : "match"
+        "title" : "Match API",
+        "id" : "match"
       },
       {
-	"title" : "User API",
-	"id" : "user"
+        "title" : "User API",
+        "id" : "user"
       }
     ]
   },
diff --git a/templates/layouts/main.html.ep b/templates/layouts/main.html.ep
index f887155..f91aab7 100644
--- a/templates/layouts/main.html.ep
+++ b/templates/layouts/main.html.ep
@@ -19,7 +19,7 @@
   <body<% if ($embedded) { %> class="embedded"<% } %>>
     <div id="kalamar-bg"></div>
 
-% if (!user_auth && stash('auth_support')) { # user not logged in
+% if (!$embedded && !user_auth && stash('auth_support')) { # user not logged in
 % content_for 'sidebar', begin
 % if (flash('handle_or_email') && !param('handle_or_email')) {
 %   param(handle_or_email => flash('handle_or_email'));
@@ -38,6 +38,7 @@
 %#    <li><%= link_to loc('register') => 'register' %></li>
 %#    <li><%= link_to loc('pwdforgotten') => 'pwd_forgotten' %></li>
 %#  </ul>
+
 </fieldset>
 % end
 % }
