diff --git a/data/menus.de.xml b/data/menus.de.xml
new file mode 100644
index 000000000..d0a85f9c0
--- /dev/null
+++ b/data/menus.de.xml
@@ -0,0 +1,117 @@
+
+
+
+ Hauptmenü
+ menu-main
+
+ Startseite
+ {$baseurl}
+
+
+ Bildschirmfotos
+ screenshots/
+
+
+ Forum
+ http://forums.scummvm.org/
+
+
+ Downloads
+ downloads/
+
+
+ Spiele
+ games/
+
+
+ ScummVM-Blogs
+ http://planet.scummvm.org
+
+
+
+
+ Dokumentation
+ menu-docs
+
+ F.A.Q.
+ faq/
+
+
+ Dokumentation
+ documentation/
+
+
+ Kompatibilität
+ compatibility/
+
+
+ Wiki
+ http://wiki.scummvm.org/
+
+
+ Mitwirkende
+ credits/
+
+
+
+ Entwicklung
+ menu-sf
+
+ Projektseite auf SF.net
+ http://sourceforge.net/projects/scummvm/
+
+
+ Bug Tracker
+ http://sourceforge.net/p/scummvm/bugs/
+
+
+ Feature Requests
+ http://sourceforge.net/p/scummvm/feature-requests/
+
+
+ Patch Tracker
+ http://sourceforge.net/p/scummvm/patches/
+
+
+ Täglich erstellte Versionen
+ downloads/#daily
+
+
+ Quellcode-Verzeichnis
+ http://github.com/scummvm/scummvm
+
+
+ Buildbot
+ http://buildbot.scummvm.org/
+
+
+
+ Verschiedenes
+ menu-misc
+
+ Unterprojekte
+ subprojects/
+
+
+ Demos
+ demos/
+
+
+ Pressespiegel
+ press/
+
+
+ Kontakt
+ contact/
+
+
+ Links
+ links/
+
+
+
diff --git a/include/Pages/NewsPage.de.php b/include/Pages/NewsPage.de.php
new file mode 100644
index 000000000..dc75bda05
--- /dev/null
+++ b/include/Pages/NewsPage.de.php
@@ -0,0 +1,86 @@
+_template = 'news.tpl';
+ }
+
+ /* Display the index page. */
+ public function index() {
+ $date = isset($_GET['d']) ? $_GET['d'] : null;
+
+ if ($date != null) {
+ if (strtolower($date) == 'archive' || $date == '') {
+ $date = null;
+ }
+ return $this->getNews($date);
+ }
+ return $this->getNewsIntro();
+ }
+
+ /* Display a specific news item, or all news items. */
+ public function getNews($date = null) {
+ if ($date == null) {
+ $news_items = NewsModel::getAllNews();
+ $date = 'archive';
+ } else {
+ if (strlen($date) == 8) {
+ $news_items = NewsModel::getAllByDate($date);
+ } else {
+ $news_items = array(NewsModel::getOneByDate($date));
+ }
+ }
+
+ $this->addCSSFiles('news.css');
+
+ return $this->renderPage(
+ array(
+ 'title' => 'Home',
+ 'content_title' => 'Latest Developments',
+ 'show_intro' => false,
+ 'news_items' => $news_items,
+ 'news_archive_link' => false,
+ 'date' => $date,
+ ),
+ $this->_template
+ );
+ }
+
+ /* Display the main page with limited news items and intro text. */
+ public function getNewsIntro() {
+ $news_items = NewsModel::getLatestNews(NEWS_ITEMS);
+ $random_shot = ScreenshotsModel::getRandomScreenshot();
+
+ $this->addCSSFiles(array(
+ 'intro.css',
+ 'news.css',
+ '../javascripts/slimbox/css/slimbox2.css',
+ ));
+ $this->addJSFiles(array(
+ 'jquery-1.3.2.min.js',
+ 'slimbox/js/slimbox2.js',
+ 'introduction.js',
+ ));
+
+
+ return $this->renderPage(
+ array(
+ 'title' => 'Startseite',
+ 'content_title' => 'Aktuelle Entwicklungen',
+ 'show_intro' => true,
+ 'news_items' => $news_items,
+ 'news_archive_link' => true,
+ 'random_shot' => $random_shot,
+ ),
+ $this->_template
+ );
+ }
+}
+?>
diff --git a/templates_de/exception.tpl b/templates_de/exception.tpl
new file mode 100644
index 000000000..9f0ebb0f6
--- /dev/null
+++ b/templates_de/exception.tpl
@@ -0,0 +1,12 @@
+
+
Ein dreiköpfiger Affe!
+
+
Hinter dir, ein dreiköpfiger Affe!
+
+
+
+
Es gab ein Problem beim Ausführen deiner Anfrage:
+
{$exception->getMessage()|nl2br:false}
+
+
+
diff --git a/templates_de/faq.tpl b/templates_de/faq.tpl
new file mode 100644
index 000000000..d4826a861
--- /dev/null
+++ b/templates_de/faq.tpl
@@ -0,0 +1,44 @@
+
+
+ FAQ
+
+
+
zuletzt aktualisiert: {$modified}
+
+ {foreach from=$contents item=section name='toc_loop'}
+ {assign var='toc_num' value=$smarty.foreach.toc_loop.iteration}
+ {$toc_num}. {$section->getTitle()}
+
+
+ {foreach from=$section->getTOC() key=href item=name name='toc_section_loop'}
+ {assign var='toc_section_num' value=$smarty.foreach.toc_section_loop.iteration}
+ {$toc_num}.{$toc_section_num}. {$name}
+ {/foreach}
+
+
+ {/foreach}
+
+
+ {foreach from=$contents item=section name='section_loop'}
+ {assign var='section_num' value=$smarty.foreach.section_loop.iteration}
+
+
{$section_num}. {$section->getTitle()}
+
+ {foreach from=$section->getTOC() key=href item=name name='question_loop'}
+ {assign var='question_num' value=$smarty.foreach.question_loop.iteration}
+ {$section_num}.{$question_num}. {$name}
+ {/foreach}
+
+ {foreach from=$section->getEntries() item=entry name='entry_loop'}
+ {assign var='entry_num' value=$smarty.foreach.entry_loop.iteration}
+
{$section_num}.{$entry_num}.
+ {foreach from=$entry->getHrefs() item=href name='href_loop'}
+
+ {/foreach}
+ {$entry->getQuestion()}
+
{$entry->getAnswer()}
+ {/foreach}
+
+ {/foreach}
+
+
diff --git a/templates_de/feed_atom.tpl b/templates_de/feed_atom.tpl
new file mode 100644
index 000000000..3fdb39193
--- /dev/null
+++ b/templates_de/feed_atom.tpl
@@ -0,0 +1,35 @@
+{* Published date. *}
+{assign var='timezone_offset' value=$news[0]->getDate()|date_f:'Z'}
+{assign var='updated' value=$news[0]->getDate()-$timezone_offset}
+
+
+ {$baseurl}
+
+
+ ScummVM-News
+
+
+ {$baseurl}favicon.ico
+
+ ScummVM team
+ http://www.scummvm.org/
+
+ {$updated|date_f:'Y-m-d\Th:i:s\Z'}
+ {foreach from=$news item=n}
+ {assign var='timezone_offset' value=$n->getDate()|date_f:'Z'}
+ {assign var='updated' value=$n->getDate()-$timezone_offset}
+ {assign var='news_filename' value=$n->getFilename()|substr:'0':'-4'}
+
+
+ {$baseurl}news/archive/#{$n->getDate()|date_f:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}
+
+ {$updated|date_f:'Y-m-d\Th:i:s\Z'}
+ {$updated|date_f:'Y-m-d\Th:i:s\Z'}
+ {$n->getTitle()}
+ getContent()}]]>
+ {if $n->getAuthor() != ''}
+ {$n->getAuthor()}
+ {/if}
+
+ {/foreach}
+
diff --git a/templates_de/feed_rss.tpl b/templates_de/feed_rss.tpl
new file mode 100644
index 000000000..20d58ab42
--- /dev/null
+++ b/templates_de/feed_rss.tpl
@@ -0,0 +1,23 @@
+
+
+
+ ScummVM news
+ http://www.scummvm.org/
+
+ ScummVM ist ein auf mehreren Plattformen lauffähiger Interpreter für verschiedene Point-and-Click-Adventures. Darunter enthalten sind alle SCUMM-basierten Spiele von LucasArts, Simon the Sorcerer 1&2 von AdventureSoft, Beneath a Steel Sky und Broken Swort I & II von Revolution, sowie viele mehr.
+de
+ {foreach from=$news item=n}
+ {assign var='news_filename' value=$n->getFilename()|substr:'0':'-4'}
+ -
+
{$n->getTitle()}
+ getContent()}]]>
+ {$n->getDate()|date_f:'r'}
+ {if $n->getAuthor() != ''}
+ nospam@scummvm.org ({$n->getAuthor()})
+ {/if}
+ {$baseurl}news/archive/#{$n->getDate()|date_f:'Y-m-d'}{if $news_filename|strlen == 9}{$news_filename|substr:'-1'}{/if}
+ {$baseurl}news/{$news_filename}/
+
+ {/foreach}
+
+
diff --git a/templates_de/game_demos.tpl b/templates_de/game_demos.tpl
new file mode 100644
index 000000000..7b204955a
--- /dev/null
+++ b/templates_de/game_demos.tpl
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
Navigation
+
+ {foreach from=$demos item=group}
+ {$group.name}
+ {/foreach}
+
+
+
+
+ Diese Seite listet Demo-Versionen von verschiedenen Spielen auf. Bitte kontaktiere uns, wenn du eine Demo-Version besitzt, die hier nicht aufgeführt ist.
+
+
+ Aus technischen Gründen werden Demo-Versionen von Beneath a Steel Sky nicht unterstützt.
+
+
+
+
+
+ {foreach from=$demos item=group}
+
+
+ {$group.name}
+
+
+ Demo-Name / Download-Link
+ Game Target
+
+
+
+ {foreach from=$group.demos item=demo}
+
+
+
+ {$demo->getName()}
+
+ {$demo->getTarget()}
+
+ {/foreach}
+
+
+ {/foreach}
+
+
diff --git a/templates_de/games.tpl b/templates_de/games.tpl
new file mode 100644
index 000000000..0ec81d1b4
--- /dev/null
+++ b/templates_de/games.tpl
@@ -0,0 +1,57 @@
+{foreach from=$downloads item=dsection name=downloads_loop}
+ {if $dsection->getAnchor() != ''}
+
+ {/if}
+
+
{eval var=$dsection->getTitle()}
+
+ {if $smarty.foreach.downloads_loop.first}
+
+
+
+
+
+ Hier findest du die Spiele-Downloads . Darunter
+ sind derzeit auf die fünf Freeware-Spiele 'Beneath a Steel Sky',
+ 'Flight of the Amazon Queen', 'Lure of the Temptress', 'Drascula: The Vampire Strikes Back'
+ und 'Soltys' enthalten.
+
+
+ Hier findest du auch Pakete mit Zwischensequenzen, die empfohlen werden, wenn du die
+ Spiele der 'Broken Sword'-Reihe oder 'Feeble Files (dt: Floyd - Es gibt noch Helden)'
+ in ScummVM spielen willst.
+
+
+
+
+
+ {/if}
+
+ {foreach from=$dsection->getSubSections() item=dsubsection}
+ {if $dsubsection->getAnchor() != ''}
+
+ {/if}
+ {if $dsubsection->getTitle() != ''}
+
{eval var=$dsubsection->getTitle()}
+ {/if}
+
+
+ {if $dsubsection->getNotes() != ''}
+ {eval var=$dsubsection->getNotes()}
+ {/if}
+
+ {include file='list_items.tpl' list=$dsubsection->getItems()}
+ {if !is_null($dsubsection->getFooter())}
+
{$dsubsection->getFooter()}
+ {/if}
+
+ {/foreach}
+
+{/foreach}
diff --git a/templates_de/index.tpl b/templates_de/index.tpl
new file mode 100644
index 000000000..612a9fe5a
--- /dev/null
+++ b/templates_de/index.tpl
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+ ScummVM :: {$title}
+
+
+
+ {* Header. *}
+
+
+
+ {* Menu. *}
+
+
+ {* Content *}
+
+ {* Introduction text and screenshot viewer. *}
+ {if isset($show_intro) && $show_intro}
+ {include file='intro_header.tpl'}
+ {/if}
+
+ {* The actual content. *}
+
+
+
+
+ {include file='shadowed_text.tpl' text=$content_title shadowcolor='#fff' textcolor='#821d06'}
+
+
+
+
+
+
+
+
+ {strip}
+
+ {/strip}
+
+
+
+
+
+
+ LucasArts, Monkey Island, Maniac Mansion, Full Throttle, The Dig, LOOM, und wahrscheinlich noch viele Dinge mehr sind eingetragene Warenzeichen von LucasArts, Inc. . Alle anderen Marken und eingetragenen Warenzeichen sind Eigentum der entsprechenden Firmen. ScummVM ist in keiner Weise mit LucasArts, Inc. verbunden.
+
+
+
+{foreach from=$js_files item=script}
+
+{/foreach}
+{* Google analytics javascript. *}
+
+
+{* End Google analytics javascript. *}
+{* Piwik javascript. *}
+{literal}
+
+{/literal}
+{* End Piwik javascript. *}
+
+
diff --git a/templates_de/links.tpl b/templates_de/links.tpl
new file mode 100644
index 000000000..9b887a119
--- /dev/null
+++ b/templates_de/links.tpl
@@ -0,0 +1,30 @@
+
+
+ Links
+
+
+
+
Link to us:
+ Bitte verwende dieses Bild, wenn du einen Link zu uns auf deine Website setzen willst.
+
+
+ {foreach from=$links item=group}
+ {include file='subhead.tpl' subhead=$group.name}
+
+
{$group.description}
+
+ {foreach from=$group.links item=link}
+
+
+
+ {$link->getDescription()}
+
+
+ {/foreach}
+
+
+ {/foreach}
+
+
diff --git a/templates_de/list_items.tpl b/templates_de/list_items.tpl
new file mode 100644
index 000000000..42cb99aae
--- /dev/null
+++ b/templates_de/list_items.tpl
@@ -0,0 +1,40 @@
+{if is_array($list) && $list|@count > 0}
+
+ {foreach from=$list item=item}
+ {if $item instanceof File}
+ {assign var='data' value=$item->getExtraInfo()}
+
+
+ {$item->getName()}
+ {strip}
+
+ {if $item->getType() == 'daily'}
+
+ {if is_array($data)}
+ {$data.info}
+ {else}
+ {$data}
+ {/if}
+
+ {/if}
+ {/strip}
+
+ {elseif $item instanceof WebLink}
+
+ {$item->getName()} {$item->getDescription()}
+
+ {/if}
+ {/foreach}
+
+{/if}
diff --git a/templates_de/press.tpl b/templates_de/press.tpl
new file mode 100644
index 000000000..f7cc6dad3
--- /dev/null
+++ b/templates_de/press.tpl
@@ -0,0 +1,15 @@
+
+
ScummVM in der Presse
+
+
(Wenn du bezüglich Medienberichten mit uns in Kontakt treten willst, schreibe bitte eine e-Mail an press (@) scummvm.org)
+ {foreach from=$articles item=article}
+
+ {if $article->getLanguage() != null}
+ {$article->getName()} ({$article->getLanguage()}), {$article->getPosted()}
+ {else}
+ {$article->getName()} , {$article->getPosted()}
+ {/if}
+
+ {/foreach}
+
+
diff --git a/templates_de/screenshots.tpl b/templates_de/screenshots.tpl
new file mode 100644
index 000000000..e970ab43e
--- /dev/null
+++ b/templates_de/screenshots.tpl
@@ -0,0 +1,47 @@
+{* Random screenshot. *}
+{assign var='rand_files' value=$random_shot.screenshot->getFiles()}
+{assign var='rand_max' value=$rand_files|@count}
+{assign var='rand_pos' value=0|rand:$rand_max-1}
+{assign var='rand_file' value=$rand_files[$rand_pos]}
+
+{* List the available categories. *}
+
+
Bildschirmfotos
+
+
+ {foreach from=$screenshots item=arr}
+
+
+
+ {foreach from=$arr.games item=game}
+
+
+ {$game->getName()}
+ ({$game->getFiles()|@count} shots)
+
+ {/foreach}
+
+
+ {/foreach}
+
diff --git a/templates_de/screenshots_category.tpl b/templates_de/screenshots_category.tpl
new file mode 100644
index 000000000..d10cbb39d
--- /dev/null
+++ b/templates_de/screenshots_category.tpl
@@ -0,0 +1,45 @@
+{* List all screenshots for an entry. *}
+
+{* A single game (target) was selected. *}
+{if !empty($game)}
+
+
Gallerie
+ {foreach from=$screenshots.games item=g name=cat_loop}
+ {if $game == $g->getCategory()}
+
{$g->getName()}
+ {foreach from=$g->getFiles() item=fdata name=game_loop}
+
+
+
+
+
{$fdata.caption}
+
+ {/foreach}
+ {/if}
+ {/foreach}
+
+
+ Back
+
+{else}
+
+ {* No game selected, but the complete category. *}
+
+
Gallerie
+ {foreach from=$screenshots.games item=g name=cat_loop}
+
+
+ {foreach from=$g->getFiles() item=fdata name=game_loop}
+
+
+
+
+
{$fdata.caption}
+
+ {/foreach}
+
+
+ {/foreach}
+
+ Back
+{/if}
diff --git a/templates_de/screenshots_viewer.tpl b/templates_de/screenshots_viewer.tpl
new file mode 100644
index 000000000..bd6612358
--- /dev/null
+++ b/templates_de/screenshots_viewer.tpl
@@ -0,0 +1,27 @@
+{* Screenshot viewer, link to next/prev screenshots if any. *}
+{assign var='files' value=$screenshot->getFiles()}
+
+
+
Gallerie
+
{$screenshot->getName()} (#{$num+1} of {$files|@count})
+
+
+
+
{$files[$num].caption}
+
+
+
+
+
Back
+
diff --git a/templates_de/subprojects.tpl b/templates_de/subprojects.tpl
new file mode 100644
index 000000000..bf58cd84f
--- /dev/null
+++ b/templates_de/subprojects.tpl
@@ -0,0 +1,25 @@
+
+
+
+ Gelegentlich arbeitet das ScummVM-Team an verschiedenen Unterprojekten,
+ die nicht direkt etwas mit ScummVM selbst zu tun haben. Diese Projekte
+ stagnieren häufig und genießen keine besonders hohe Priorität.
+ Trotzdem soll diese Seite über diese Projekte informieren, in der vagen
+ Hoffnung, weitere Entwickler für diese Nebenprojekte zu gewinnen.
+
+
+ Bitte frage nicht danach, wo du die Binärdateien für diese
+ Programme beziehen kannst. Beide Nebenprojekte sind derzeit nur für
+ Entwickler geeignet... Wenn du den Code nicht selbst kompilieren kannst,
+ dann sind diese Programme nicht wirklich für dich geeignet.
+
+
+
+ {foreach from=$subprojects item=project}
+ {include file='subhead.tpl' subhead=$project->getName()}
+
+ {$project->getInfo()}
+ {include file='list_items.tpl' list=$project->getDownloads()}
+
+ {/foreach}
+