diff --git a/app/assets/javascripts/discourse/controllers/user_activity_controller.js b/app/assets/javascripts/discourse/controllers/user_activity_controller.js
index 038d786bc..e765f09fe 100644
--- a/app/assets/javascripts/discourse/controllers/user_activity_controller.js
+++ b/app/assets/javascripts/discourse/controllers/user_activity_controller.js
@@ -24,5 +24,6 @@ Discourse.UserActivityController = Discourse.ObjectController.extend({
   },
 
   privateMessagesActive: Em.computed.equal('pmView', 'index'),
-  privateMessagesSentActive: Em.computed.equal('pmView', 'sent')
+  privateMessagesMineActive: Em.computed.equal('pmView', 'mine'),
+  privateMessagesUnreadActive: Em.computed.equal('pmView', 'unread')
 });
diff --git a/app/assets/javascripts/discourse/dialects/dialect.js b/app/assets/javascripts/discourse/dialects/dialect.js
index 302597b66..58bb55f7a 100644
--- a/app/assets/javascripts/discourse/dialects/dialect.js
+++ b/app/assets/javascripts/discourse/dialects/dialect.js
@@ -64,7 +64,7 @@ function invalidBoundary(args, prev) {
   var last = prev[prev.length - 1];
   if (typeof last !== "string") { return; }
 
-  if (args.wordBoundary && (!last.match(/\W$/))) { return true; }
+  if (args.wordBoundary && (last.match(/(\w|\/)$/))) { return true; }
   if (args.spaceBoundary && (!last.match(/\s$/))) { return true; }
 }
 
diff --git a/app/assets/javascripts/discourse/helpers/grouped_each.js b/app/assets/javascripts/discourse/helpers/grouped_each.js
index f0632acae..218232aca 100644
--- a/app/assets/javascripts/discourse/helpers/grouped_each.js
+++ b/app/assets/javascripts/discourse/helpers/grouped_each.js
@@ -78,8 +78,6 @@ DiscourseGroupedEach.prototype = {
         template = this.template;
 
     data.insideEach = true;
-    data.insideGroup = true;
-
     for (var i = 0; i < contentLength; i++) {
       template(content.objectAt(i), { data: data });
     }
@@ -124,5 +122,6 @@ Ember.Handlebars.registerHelper('groupedEach', function(path, options) {
   }
 
   options.hash.dataSourceBinding = path;
+  options.data.insideGroup = true;
   new DiscourseGroupedEach(this, path, options).render();
 });
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/routes/application_routes.js b/app/assets/javascripts/discourse/routes/application_routes.js
index 663314d3f..5772dc6a3 100644
--- a/app/assets/javascripts/discourse/routes/application_routes.js
+++ b/app/assets/javascripts/discourse/routes/application_routes.js
@@ -50,7 +50,8 @@ Discourse.Route.buildRoutes(function() {
     });
 
     this.resource('userPrivateMessages', { path: '/private-messages' }, function() {
-      this.route('sent', {path: '/messages-sent'});
+      this.route('mine', {path: '/mine'});
+      this.route('unread', {path: '/unread'});
     });
 
     this.resource('preferences', { path: '/preferences' }, function() {
diff --git a/app/assets/javascripts/discourse/routes/user_routes.js b/app/assets/javascripts/discourse/routes/user_routes.js
index 9ff40c4b1..ab8d8699b 100644
--- a/app/assets/javascripts/discourse/routes/user_routes.js
+++ b/app/assets/javascripts/discourse/routes/user_routes.js
@@ -171,33 +171,26 @@ Discourse.UserTopicListRoute = Discourse.Route.extend({
   }
 });
 
-Discourse.UserPrivateMessagesIndexRoute = Discourse.UserTopicListRoute.extend({
-  userActionType: Discourse.UserAction.TYPES.messages_received,
+function createPMRoute(viewName, path, type) {
+  return Discourse.UserTopicListRoute.extend({
+    userActionType: Discourse.UserAction.TYPES.messages_received,
 
-  model: function() {
-    return Discourse.TopicList.find('topics/private-messages/' + this.modelFor('user').get('username_lower'));
-  },
+    model: function() {
+      return Discourse.TopicList.find('topics/' + path + '/' + this.modelFor('user').get('username_lower'));
+    },
 
-  setupController: function(controller, model) {
-    this._super(controller, model);
-    controller.set('hideCategories', true);
-    this.controllerFor('userActivity').set('pmView', 'index');
-  }
+    setupController: function(controller, model) {
+      this._super(controller, model);
+      controller.set('hideCategories', true);
+      this.controllerFor('userActivity').set('pmView', viewName);
+    }
+  });
+}
 
-});
-Discourse.UserPrivateMessagesSentRoute = Discourse.UserTopicListRoute.extend({
-  userActionType: Discourse.UserAction.TYPES.messages_sent,
+Discourse.UserPrivateMessagesIndexRoute = createPMRoute('index', 'private-messages');
+Discourse.UserPrivateMessagesMineRoute = createPMRoute('mine', 'private-messages-sent');
+Discourse.UserPrivateMessagesUnreadRoute = createPMRoute('unread', 'private-messages-unread');
 
-  model: function() {
-    return Discourse.TopicList.find('topics/private-messages-sent/' + this.modelFor('user').get('username_lower'));
-  },
-
-  setupController: function(controller, model) {
-    this._super(controller, model);
-    controller.set('hideCategories', true);
-    this.controllerFor('userActivity').set('pmView', 'sent');
-  }
-});
 
 Discourse.UserActivityTopicsRoute = Discourse.UserTopicListRoute.extend({
   userActionType: Discourse.UserAction.TYPES.topics,
@@ -205,7 +198,6 @@ Discourse.UserActivityTopicsRoute = Discourse.UserTopicListRoute.extend({
   model: function() {
     return Discourse.TopicList.find('topics/created-by/' + this.modelFor('user').get('username_lower'));
   }
-
 });
 
 Discourse.UserActivityFavoritesRoute = Discourse.UserTopicListRoute.extend({
diff --git a/app/assets/javascripts/discourse/templates/user/activity.js.handlebars b/app/assets/javascripts/discourse/templates/user/activity.js.handlebars
index bdf292ff0..03cd3c61d 100644
--- a/app/assets/javascripts/discourse/templates/user/activity.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/user/activity.js.handlebars
@@ -16,10 +16,13 @@
   <ul class='action-list nav-stacked side-nav'>
     {{#if privateMessageView}}
       <li {{bindAttr class=":noGlyph privateMessagesActive:active"}}>
-        {{#linkTo 'userPrivateMessages.index' model}}{{i18n user.private_messages}}{{/linkTo}}
+        {{#linkTo 'userPrivateMessages.index' model}}{{i18n user.messages.all}}{{/linkTo}}
       </li>
-      <li {{bindAttr class=":noGlyph privateMessagesSentActive:active"}}>
-        {{#linkTo 'userPrivateMessages.sent' model}}{{i18n user.private_messages_sent}}{{/linkTo}}
+      <li {{bindAttr class=":noGlyph privateMessagesMineActive:active"}}>
+        {{#linkTo 'userPrivateMessages.mine' model}}{{i18n user.messages.mine}}{{/linkTo}}
+      </li>
+      <li {{bindAttr class=":noGlyph privateMessagesUnreadActive:active"}}>
+        {{#linkTo 'userPrivateMessages.unread' model}}{{i18n user.messages.unread}}{{/linkTo}}
       </li>
 
     {{else}}
diff --git a/app/controllers/list_controller.rb b/app/controllers/list_controller.rb
index 9dfada7b4..a46976c50 100644
--- a/app/controllers/list_controller.rb
+++ b/app/controllers/list_controller.rb
@@ -53,6 +53,14 @@ class ListController < ApplicationController
     respond(list)
   end
 
+  def private_messages_unread
+    list_opts = build_topic_list_options
+    list = TopicQuery.new(current_user, list_opts).list_private_messages_unread(fetch_user_from_params)
+    list.more_topics_url = url_for(topics_private_messages_unread_path(list_opts.merge(format: 'json', page: next_page)))
+
+    respond(list)
+  end
+
   def category
     query = TopicQuery.new(current_user, page: params[:page])
 
diff --git a/app/models/topic.rb b/app/models/topic.rb
index 5fe6a17bd..8087c8492 100644
--- a/app/models/topic.rb
+++ b/app/models/topic.rb
@@ -10,6 +10,16 @@ class Topic < ActiveRecord::Base
   include ActionView::Helpers::SanitizeHelper
   include RateLimiter::OnCreateRecord
   include Trashable
+  extend Forwardable
+
+  def_delegator :featured_users, :user_ids, :featured_user_ids
+  def_delegator :featured_users, :choose, :feature_topic_users
+
+  def_delegator :notifier, :watch!, :notify_watch!
+  def_delegator :notifier, :tracking!, :notify_tracking!
+  def_delegator :notifier, :regular!, :notify_regular!
+  def_delegator :notifier, :muted!, :notify_muted!
+  def_delegator :notifier, :toggle_mute, :toggle_mute
 
   def self.max_sort_order
     2**31 - 1
@@ -21,14 +31,6 @@ class Topic < ActiveRecord::Base
     @featured_users ||= TopicFeaturedUsers.new(self)
   end
 
-  def featured_user_ids
-    featured_users.user_ids
-  end
-
-  def feature_topic_users(args={})
-    featured_users.choose(args)
-  end
-
   def trash!(trashed_by=nil)
     update_category_topic_count_by(-1) if deleted_at.nil?
     super(trashed_by)
@@ -561,34 +563,12 @@ class Topic < ActiveRecord::Base
     @topic_notifier ||= TopicNotifier.new(self)
   end
 
-  # notification stuff
-  def notify_watch!(user)
-    notifier.watch! user
-  end
-
-  def notify_tracking!(user)
-    notifier.tracking! user
-  end
-
-  def notify_regular!(user)
-    notifier.regular! user
-  end
-
-  def notify_muted!(user)
-    notifier.muted! user
-  end
-
   def muted?(user)
     if user && user.id
       notifier.muted?(user.id)
     end
   end
 
-  # Enable/disable the mute on the topic
-  def toggle_mute(user_id)
-    notifier.toggle_mute user_id
-  end
-
   def auto_close_days=(num_days)
     @ignore_category_auto_close = true
     set_auto_close(num_days)
diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml
index 372cb2401..96e28f16c 100644
--- a/config/locales/client.de.yml
+++ b/config/locales/client.de.yml
@@ -20,9 +20,6 @@ de:
             mb: MB
             tb: TB
     dates:
-      short_date_no_year: "D MMM"
-      short_date: "D. MMM YYYY"
-      long_date: "D. MMMM YYYY, H:mm"
       tiny:
         half_a_minute: "< 1Min"
         less_than_x_seconds:
@@ -43,12 +40,6 @@ de:
         x_days:
           one:   "1T"
           other: "%{count}T"
-        about_x_months:
-          one:   "1Mon"
-          other: "%{count}Mon"
-        x_months:
-          one:   "1Mon"
-          other: "%{count}Mon"
         about_x_years:
           one:   "1J"
           other: "%{count}J"
@@ -93,6 +84,7 @@ de:
     yes_value: "Ja"
     of_value: "von"
     generic_error: "Entschuldigung, ein Fehler ist aufgetreten."
+    generic_error_with_reason: "Ein Fehler ist aufgetreten: %{error}"
     log_in: "Anmelden"
     age: "Alter"
     last_post: "Letzter Beitrag"
@@ -101,10 +93,20 @@ de:
     show_more: "zeige mehr"
     links: Links
     faq: "FAQ"
+    privacy_policy: "Datenschutzrichtlinie"
     you: "Du"
     or: "oder"
     now: "gerade eben"
     read_more: 'weiterlesen'
+    more: "Mehr"
+    less: "Weniger"
+    never: "nie"
+    daily: "täglich"
+    weekly: "wöchentlich"
+    every_two_weeks: "jede zweite Woche"
+    character_count:
+      one: "{{count}} Zeichen"
+      other: "{{count}} Zeichen"
 
     in_n_seconds:
       one: "in einer Sekunde"
@@ -137,6 +139,10 @@ de:
     saving: "Wird gespeichert..."
     saved: "Gespeichert!"
 
+    upload: "Hochladen"
+    uploading: "Hochladen..."
+    uploaded: "Hochgeladen!"
+
     choose_topic:
       none_found: "Keine Themen gefunden."
       title:
@@ -175,6 +181,7 @@ de:
       "13": "Eingänge"
 
     user:
+      said: "{{username}} sagte:"
       profile: Profil
       title: "Benutzer"
       mute: Ignorieren
@@ -182,6 +189,7 @@ de:
       download_archive: "Archiv meiner Beiträge herunterladen"
       private_message: "Private Nachricht"
       private_messages: "Nachrichten"
+      private_messages_sent: "Gesendete Nachrichten"
       activity_stream: "Aktivität"
       preferences: "Einstellungen"
       bio: "Über mich"
@@ -191,30 +199,41 @@ de:
       dynamic_favicon: "Zeige eingehende Nachrichten im Favicon"
       external_links_in_new_tab: "Öffne alle externen Links in neuen Tabs"
       enable_quoting: "Markierten Text bei Antwort zitieren"
-
+      change: "ändern"
       moderator: "{{user}} ist Moderator"
       admin: "{{user}} ist Administrator"
 
       change_password:
-        action: "ändern"
         success: "(Mail gesendet)"
         in_progress: "(sende Mail)"
         error: "(Fehler)"
+        action: "Passwort zurücksetzten Mail senden"
+
+      change_about:
+        title: "Über mich ändern"
 
       change_username:
-        action: "ändern"
         title: "Benutzername ändern"
         confirm: "Den Benutzernamen zu ändern kann Konsequenzen nach sich ziehen. Bist Du sicher, dass du fortfahren willst?"
         taken: "Entschuldige, der Benutzername ist schon vergeben."
         error: "Beim Ändern des Benutzernamens ist ein Fehler aufgetreten."
         invalid: "Dieser Benutzername ist ungültig, sie dürfen nur aus Zahlen und Buchstaben bestehen."
+
       change_email:
-        action: 'ändern'
         title: "Mailadresse ändern"
         taken: "Entschuldige, diese Mailadresse ist nicht verfügbar."
         error: "Beim ändern der Mailadresse ist ein Fehler aufgetreten. Möglicherweise wird diese Adresse schon benutzt."
         success: "Eine Bestätigungsmail wurde an diese Adresse verschickt. Bitte folge den darin enthaltenen Anweisungen."
 
+      change_avatar:
+        title: "Ändere dein Avatar"
+        gravatar: "<a href='//gravatar.com/emails' target='_blank'>Gravatar</a>, basierend auf"
+        gravatar_title: "Wechsle dein Avatar auf der Gravatar Webseite"
+        uploaded_avatar: "Eigenes Bild"
+        uploaded_avatar_empty: "Eigenes Bild hinzufügen"
+        upload_title: "Lade dein Bild hoch"
+        image_is_not_a_square: "Achtung: wir haben den Bild angeschnitten, da es nicht rechteckig war."
+
       email:
         title: "Mail"
         instructions: "Deine Mailadresse wird niemals öffentlich angezeigt."
@@ -378,6 +397,7 @@ de:
       authenticating: "Authentisiere..."
       awaiting_confirmation: 'Dein Konto ist noch nicht aktiviert. Benutze den "Passwort vergesse"-Link um eine neue Aktivierungsmail zu erhalten.'
       awaiting_approval: "Dein Konto wurde noch nicht von einem Moderator bewilligt. Du bekommst eine Mail, sobald das geschehen ist."
+      requires_invite: "Entschuldige, der Zugriff auf dieses Forum ist nur mit einer Einladung erlaubt."
       not_activated: "Du kannst Dich noch nicht anmelden. Wir haben Dir kürzlich eine Aktivierungsmail an <b>{{sentTo}}</b> geschickt. Bitte folge den Anweisungen darin, um dein Konto zu aktivieren."
       resend_activation_email: "Klick hier, um ein neue Aktivierungsmail zu erhalten."
       sent_activation_email_again: "Wir haben noch eine Aktivierungsmail an <b>{{currentEmail}}</b> verschickt. Es kann einige Minuten dauern, bis sie ankommt. Im Zweifel schaue auch im Spam-Ordner nach."
@@ -489,16 +509,23 @@ de:
       total_flagged: "total markierte Einträge"
 
     upload_selector:
-      title: "Bild einfügen"
-      from_my_computer: "von meinem Gerät"
-      from_the_web: "aus dem Web"
+      title: "Bild hochladen"
+      title_with_attachments: "Bild oder Datei hochladen"
+      from_my_computer: "Von meinem Gerät"
+      from_the_web: "Aus dem Web"
       add_title: "Bild hinzufügen"
+      add_title_with_attachments: "Bild oder Datei hinzufügen"
       remote_title: "Entferntes Bild"
+      remote_title_with_attachments: "Entferntes Bild oder Datei"
       remote_tip: "Gib die Adresse eines Bildes wie folgt ein: http://example.com/image.jpg"
+      remote_tip_with_attachments: "Gib die Adresse eines Bildes oder Datei wie folgt ein http://example.com/file.ext (Erlaubte Dateiendungen: {{authorized_extensions}})."
       local_title: "Lokales Bild"
+      local_title_with_attachments: "Lokales Bild oder Datei"
       local_tip: "Klicke hier, um ein Bild von deinem Gerät zu wählen."
-      upload_title: "Hochladen"
-      uploading: "Bild wird hochgeladen"
+      local_tip_with_attachments: "Klicke hier, um ein Bild oder eine Datei von deinem Gerät zu wählen (Erlaubte Dateiendungen: {{authorized_extensions}})"
+      upload_title: "Bild hochladen"
+      upload_title_with_attachments: "Bild oder Datei hochladen"
+      uploading: "Hochgeladen..."
 
     search:
       title: "Such nach Themen, Beiträgen, Nutzern oder Kategorien"
@@ -745,10 +772,13 @@ de:
       edit: "Editing {{link}} von {{replyAvatar}} {{username}}"
       post_number: "Beitrag {{number}}"
       in_reply_to: "Antwort auf"
+      last_edited_on: "Antwort zuletzt bearbeitet am"
       reply_as_new_topic: "Mit Themenwechsel antworten"
       continue_discussion: "Fortsetzung des Gesprächs {{postLink}}:"
-      follow_quote: "Springe zu zitiertem Beitrag"
-      deleted_by_author: "(Beitrag vom Autor entfernt)"
+      follow_quote: "Springe zu dem zitiertem Beitrag"
+      deleted_by_author:
+        one: "(Antwort vom Autor zurückgezogen, wird automatisch in %{count} Stunde gelöscht falls nicht gemeldet)"
+        other: "(Antwort vom Autor zurückgezogen, wird automatisch in %{count} Stunden gelöscht falls nicht gemeldet)"
       deleted_by: "Entfernt von"
       expand_collapse: "mehr/weniger"
 
@@ -760,11 +790,11 @@ de:
         create: "Entschuldige, es gab einen Fehler beim Anlegen des Beitrags. Bitte versuche es noch einmal."
         edit: "Entschuldige, es gab einen Fehler beim Bearbeiten des Beitrags. Bitte versuche es noch einmal."
         upload: "Entschuldige, es gab einen Fehler beim Hochladen der Datei. Bitte versuche es noch einmal."
-        image_too_large: "Entschuldige, das Bild, das du hochladen wolltest, ist zu groß (Maximalgröße {{max_size_kb}}kb), bitte reduziere die Dateigröße und versuche es nochmal."
-        image_upload_not_allowed_for_new_user: "Entschuldige, neue Benutzer dürfen keine Bilder hochladen."
         attachment_too_large: "Entschuldige, die Datei, die du hochladen wolltest, ist zu groß (Maximalgröße {{max_size_kb}}kb)."
+        image_too_large: "Entschuldige, das Bild, das du hochladen wolltest, ist zu groß (Maximalgröße {{max_size_kb}}kb), bitte reduziere die Dateigröße und versuche es nochmal."
         too_many_uploads: "Entschuldige, du darfst immer nur eine Datei hochladen."
         upload_not_authorized: "Entschuldige, die Datei, die du hochladen wolltest, ist nicht erlaubt (erlaubte Endungen: {{authorized_extensions}})."
+        image_upload_not_allowed_for_new_user: "Entschuldige, neue Benutzer dürfen keine Bilder hochladen."
         attachment_upload_not_allowed_for_new_user: "Entschuldige, neue Benutzer dürfen keine Dateien hochladen."
 
       abandon: "Willst Du diesen Beitrag wirklich verwerfen?"
@@ -884,6 +914,7 @@ de:
           other: "Bist Du sicher, dass Du all diesen Beiträge löschen willst?"
 
     category:
+      can: 'kann&hellip; '
       none: '(keine Kategorie)'
       edit: 'Bearbeiten'
       edit_long: "Kategorie bearbeiten"
@@ -912,18 +943,19 @@ de:
       change_in_category_topic: "Besuche die Themen dieser Kategorie um einen Eindruck für eine gute Beschreibung zu gewinnen."
       hotness: "Beliebtheit"
       already_used: 'Diese Farbe wird bereits für eine andere Kategorie verwendet'
-      is_secure: "Sichere Kategorie?"
-      add_group: "Gruppe hinzufügen"
       security: "Sicherheit"
-      allowed_groups: "Erlaubte Gruppen:"
       auto_close_label: "Thema automatisch schließen nach:"
-
+      edit_permissions: "Berechtigung bearbeiten"
+      add_permission: "Berechtigung hinzufügen"
 
     flagging:
       title: 'Aus welchem Grund meldest Du diesen Beitrag?'
       action: 'Beitrag melden'
       take_action: "Reagieren"
       notify_action: 'Melden'
+      delete_spammer: "Spammer löschen"
+      delete_confirm: "Du wirst <b>%{posts}</b> Beiträge und <b>%{topics}</b> Themen von diesem Benutzer löschen, das Konto entfernen und die Mail <b>%{email}</b> permanent blockieren. Bist du sicher, dass dieser Benutzer wirklich ein Spammer ist?"
+      yes_delete_spammer: "Ja, lösche den Spammer"
       cant: "Entschuldige, Du kannst diesen Beitrag augenblicklich nicht melden."
       custom_placeholder_notify_user: "Weshalb erfordert der Beitrag, dass du den Benutzer direkt und privat kontaktieren möchtest? Sei spezifisch, konstruktiv und immer freundlich."
       custom_placeholder_notify_moderators: "Warum soll ein Moderator sich diesen Beitrag ansehen? Bitte lass uns wissen, was genau Dich beunruhigt, und wenn möglich dafür relevante Links."
@@ -956,6 +988,7 @@ de:
     views_long: "Dieses Thema wurde {{number}} aufgerufen"
     activity: "Aktivität"
     likes: "Gefällt mir"
+    likes_long: "es gibt {{number}} „Gefällt mir“ in diesem Thema"
     top_contributors: "Teilnehmer"
     category_title: "Kategorie"
     history: "Verlauf"
@@ -1004,6 +1037,11 @@ de:
 
     browser_update: '<a href="http://www.discourse.org/faq/#browser">Dein Webbrowser ist leider zu alt um dieses Forum zu besuchen</a>. Bitte <a href="http://browsehappy.com">installiere einen neueren Browser</a>.'
 
+    permission_types:
+      full: "Erstellen / Antworten / Anschauen"
+      create_post: "Antworten / Anschauen"
+      readonly: "Anschauen"
+
   # This section is exported to the javascript for i18n in the admin section
   admin_js:
     type_to_filter: "Tippe etwas ein, um zu filtern..."
@@ -1014,6 +1052,7 @@ de:
 
       dashboard:
         title: "Übersicht"
+        last_updated: "Übersicht zuletzt aktualisiert:"
         version: "Version"
         up_to_date: "Discourse ist aktuell."
         critical_available: "Ein kritisches Update ist verfügbar."
@@ -1065,6 +1104,7 @@ de:
         disagree_unhide_title: "Verwerfe alle Meldungen über diesen Beitrag (blendet verstecke Beiträge ein)"
         disagree: "Ablehnen"
         disagree_title: "Meldung ablehnen, alle Meldungen über diesen Beitrag annullieren"
+        delete_spammer_title: "Lösche den Benutzer und alle seine Beiträge und Themen."
 
         flagged_by: "Gemeldet von"
         error: "Etwas ist schief gelaufen"
@@ -1145,6 +1185,48 @@ de:
         last_seen_user: "Letzer Benutzer:"
         reply_key: "Antwort-Schlüssel"
 
+      logs:
+        title: "Logs"
+        action: "Aktion"
+        created_at: "Erstellt"
+        last_match_at: "Letzte Übereinstimmung"
+        match_count: "Übereinstimmungen"
+        ip_address: "IP"
+        screened_actions:
+          block: "blockieren"
+          do_nothing: "nichts machen"
+        staff_actions:
+          title: "Mitarbeiter Aktion"
+          instructions: "Kilcke auf die Benutzernamen und Aktionen um die Liste zu filtern. Klicke den Avatar um die Benutzerseite zu sehen."
+          clear_filters: "Alles anzeigen"
+          staff_user: "Mitarbeiter"
+          target_user: "Zielnutzer"
+          subject: "Betreff"
+          when: "Wann"
+          context: "Kontext"
+          details: "Details"
+          previous_value: "Vorangehend"
+          new_value: "Neu"
+          diff: "Diff"
+          show: "Anzeigen"
+          modal_title: "Details"
+          no_previous: "Es gibt keinen vorgängigen Wert."
+          deleted: "Kein neuer Wert. Der Eintrag wurde gelöscht."
+          actions:
+            delete_user: "Benutzer löschen"
+            change_trust_level: "Vertrauensstufe ändern"
+            change_site_setting: "Seiten Einstellungen ändern"
+            change_site_customization: "Seiten Anpassungen ändern"
+            delete_site_customization: "Seiten Anpassungen löschen"
+        screened_emails:
+          title: "Geschützte Mails"
+          description: "Wen jemand ein Konto erstellt, werden die folgenden Mail überprüft und die Registration blockiert, oder eine andere Aktion ausgeführt."
+          email: "Mail Adresse"
+        screened_urls:
+          title: "Geschützte URLs"
+          description: "Die aufgelisteten URLs wurden in Beiträgen von identifizierten Spammen verwendet."
+          url: "URL"
+
       impersonate:
         title: "Aus Nutzersicht betrachten"
         username_or_email: "Benutzername oder Mailadresse des Nutzers"
@@ -1170,6 +1252,9 @@ de:
         approved_selected:
           one: "Benutzer zulassen"
           other: "Benutzer zulassen ({{count}})"
+        reject_selected:
+          one: "Benutzer ablehnen"
+          other: "Lehne ({{count}}) Benutzer ab"
         titles:
           active: 'Aktive Benutzer'
           new: 'Neue Benutzer'
@@ -1183,12 +1268,19 @@ de:
           moderators: 'Moderatoren'
           blocked: 'Gesperrte Benutzer'
           banned: "Gebannte Benutzer"
+        reject_successful:
+          one: "Erfolgreich 1 Benutzer abgelehnt."
+          other: "Erfolgreich %{count} Benutzer abgelehnt."
+        reject_failures:
+          one: "Konnte 1 Benutzer nicht ablehnen."
+          other: "Konnte %{count} Benutzer nicht ablehnen."
 
       user:
         ban_failed: "Beim Sperren dieses Benutzers ist etwas schief gegangen {{error}}"
         unban_failed: "Beim Entsperren dieses Benutzers ist etwas schief gegangen {{error}}"
         ban_duration: "Wie lange soll dieser Benutzer gesperrt werden? (Tage)"
         delete_all_posts: "Lösche alle Beiträge"
+        delete_all_posts_confirm: "Du löschst %{posts} Beiträge und %{topics} Themen. Bist du sicher?"
         ban: "Sperren"
         unban: "Entsperren"
         banned: "Gesperrt?"
@@ -1219,12 +1311,18 @@ de:
         flags_received_count: Erhaltene Meldungen
         approve: 'Genehmigen'
         approved_by: "genehmigt von"
-        approve_success: "Benutzer freigeschalten und Mail mit den Anweisungen zur Aktivierung gesendet."
-        approve_bulk_success: "Erfolg! Alle ausgewählten Benutzer wurden freigeschalten und benachrichtigt."
+        approve_success: "Benutzer freigeschalten und Mail mit den Anweisungen zur Aktivierung
+          gesendet."
+        approve_bulk_success: "Erfolg! Alle ausgewählten Benutzer wurden freigeschalten und
+          benachrichtigt."
         time_read: "Lesezeit"
         delete: Benutzer löschen
-        delete_forbidden: "Der Benutzer kann nicht gelöscht werden, da er noch Beiträge hat. Lösche zuerst seine Beträge."
+        delete_forbidden:
+          one: "Benutzer können nicht gelöscht werden, wenn  sie sich vor mehr als %{count} Tag angemeldet oder noch Beiträge haben. Lösche zuerst seine Beträge."
+          other: "Benutzer können nicht gelöscht werden, wenn  sie sich vor mehr als %{count} Tagen angemeldet oder noch Beiträge haben. Lösche zuerst seine Beträge."
         delete_confirm: "Bist du SICHER das du diesen Benutzer permanent von der Seite entfernen möchtest? Diese Aktion kann nicht rückgängig gemacht werden!"
+        delete_and_block: "<b>Ja</b>, und <b>blockiere</b> Anmeldungen von dieser Mail Adresse"
+        delete_dont_block: "<b>Ja</b>, aber <b>erlaube</b> Anmeldungen von dieser Mail Adresse"
         deleted: "Der Benutzer wurde gelöscht."
         delete_failed: "Beim Löschen des Benutzers ist ein Fehler aufgetreten. Stelle sicher, dass dieser Benutzer keine Beiträge mehr hat."
         send_activation_email: "Aktivierungsmail senden"
@@ -1239,7 +1337,7 @@ de:
         deactivate_explanation: "Ein deaktivierter Benutzer muss seine E-Mail erneut bestätigen."
         banned_explanation: "Ein gesperrter Benutzer kann sich nicht einloggen."
         block_explanation: "Ein geblockter Benutzer kann keine Themen erstellen oder Beiträge veröffentlichen."
-
+        trust_level_change_failed: "Beim Wechsel der Vertrauensstufe ist ein Fehler aufgetreten."
 
       site_content:
         none: "Wähle einen Inhaltstyp um mit dem Bearbeiten zu beginnen."
@@ -1251,3 +1349,5 @@ de:
         title: 'Einstellungen'
         reset: 'Zurücksetzen'
         none: "Keine"
+
+
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index fb6642845..d3b74cd09 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -188,7 +188,6 @@ en:
       download_archive: "download archive of my posts"
       private_message: "Private Message"
       private_messages: "Messages"
-      private_messages_sent: "Sent Messages"
       activity_stream: "Activity"
       preferences: "Preferences"
       bio: "About me"
@@ -202,6 +201,11 @@ en:
       moderator: "{{user}} is a moderator"
       admin: "{{user}} is an admin"
 
+      messages:
+        all: "All"
+        mine: "Mine"
+        unread: "Unread"
+
       change_password:
         success: "(email sent)"
         in_progress: "(sending email)"
diff --git a/config/locales/server.de.yml b/config/locales/server.de.yml
index 2058fc286..a2f903e88 100644
--- a/config/locales/server.de.yml
+++ b/config/locales/server.de.yml
@@ -5,9 +5,15 @@
 # http://yamllint.com/
 
 de:
+  dates:
+    short_date_no_year: "D MMM"
+    short_date: "D. MMM YYYY"
+    long_date: "D. MMMM YYYY, H:mm"
   time:
     formats:
       short: "%d. %m. %Y"
+      short_no_year: "%-d. %B"
+      date_only: "%-d. %b %Y"
 
   title: "Discourse"
   topics: "Themen"
@@ -33,6 +39,10 @@ de:
     zero: "Entschuldige, neue Benutzer können Beiträge keine Bilder hinzufügen."
     one: "Entschuldige, neue Benutzer können Beiträgen nur ein Bild hinzufügen."
     other: "Entschuldige, neue Benutzer können Beiträge nur %{count} Bilde hinzufügen."
+  too_many_attachments:
+    zero: "Entschuldige, neue Benutzer können Beiträge keine Dateien hinzufügen."
+    one: "Entschuldige, neue Benutzer können Beiträgen nur eine Datei hinzufügen."
+    other: "Entschuldige, neue Benutzer können Beiträgen nur %{count} Dateien hinzufügen."
   too_many_links:
     zero: "Entschuldige, neue Benutzer können Beiträgen keine Links hinzufügen."
     one: "Entschuldige, neue Benutzer können Beiträgen nur einen Link hinzufügen."
@@ -50,8 +60,13 @@ de:
   rss_topics_in_category: "RSS-Feed von Themen in der Kategorie '%{category}'"
   author_wrote: "%{author} schrieb:"
   private_message_abbrev: "PN"
+  rss_description:
+    latest: "Neuste Themen"
+    hot: Angesagte Themen"
 
   groups:
+    errors:
+      can_not_modify_automatic: "Du kannst eine automatische Gruppe nicht bearbeiten"
     default_names:
       admins: "admins"
       moderators: "moderatoren"
@@ -70,8 +85,6 @@ de:
     'new-topic': |
       Willkommen auf %{site_name} &mdash; **Danke, dass Du ein neues Thema erstellst!**
 
-      Beachte dabei bitte die Folgenden Dinge:
-
       - Ist der Titel eines adäquate Beschreibung dessen, was ein Nutzer vorzufinden erwartet, wenn er dieses Thema aufruft?
 
       - Der erste Beitrag umschreibt das Thema: Worum geht es? Wer wäre interessiert daran? Warum ist es wichtig? Welche Arten von Antworten erhoffst Du dir von der Community?
@@ -83,8 +96,6 @@ de:
     'new-reply': |
       Willkommen auf %{site_name} &mdash; **Danke für deinen Beitrag zum Thema!**
 
-      Beachte bitte folgende Dinge während des Schreibens:
-
       - Fügt dein Beitrag dem Gespräch etwas Neues hinzu, und sei es auch wenig?
 
       - Behandle deine Gesprächspartner mit demselben Respekt, den Du von ihnen erwartest.
@@ -130,6 +141,8 @@ de:
       title: "Anführer"
     elder:
       title: "Ältester"
+    change_failed_explanation: "Du wolltest %{user_name} auf '%{new_trust_level}' zurückstufen. Jedoch ist seine Vertrauensstufe bereits '%{current_trust_level}'. %{user_name} verbleibt auf '%{current_trust_level}'"
+
 
   rate_limiter:
     too_many_requests: "Du machst das zu häufig. Bitte warte %{time_left} vor dem nächsten Versuch."
@@ -382,12 +395,17 @@ de:
     cas_config_warning: 'Der Server erlaubt die Anmeldung mit CAS (enable_cas_logins), aber der Hostname und die Domäne sind nicht gesetzt.'
     twitter_config_warning: 'Der Server erlaubt die Anmeldung mit Facebook Twitter (enable_twitter_logins), aber der Schlüssel und der Geheimcode sind nicht gesetzt. Besuche <a href="/admin/site_settings">die Einstellungen</a> um die fehlenden Einträge hinzuzufügen. <a href="https://github.com/discourse/discourse/wiki/The-Discourse-Admin-Quick-Start-Guide#enable-twitter-logins" target="_blank">Besuche den Leitfaden um mehr zu erfahren</a>.'
     github_config_warning: 'Der Server erlaubt die Anmeldung mit Facebook GitHub (enable_github_logins), aber die Kunden ID und der Geheimcode sind nicht gesetzt. Besuche <a href="/admin/site_settings">die Einstellungen</a> um die fehlenden Einträge hinzuzufügen. <a href="https://github.com/discourse/discourse/wiki/The-Discourse-Admin-Quick-Start-Guide" target="_blank">Besuche den Leitfaden um mehr zu erfahren</a>.'
+    s3_config_warning: 'Der Server wurde konfiguriert um Dateien nach s3 hochzuladen, aber mindestens der folgenden Einstellungen fehlt: s3_access_key_id, s3_secret_access_key oder s3_upload_bucket. Besuche <a href="/admin/site_settings">die Einstellungen</a> um die fehlenden Einträge hinzuzufügen. <a href="http://meta.discourse.org/t/how-to-set-up-image-uploads-to-s3/7229" target="_blank">Besuche "How to set up image uploads to S3?" um mehr zu erfahren</a>.'
+    image_magick_warning: 'Der Server wurde konfiguriert um Vorschaubilder von grossen Bildern zu erstellen, aber ImageMagick ist nicht installiertd. Installiere ImageMagick mit deinem bevorzugten Packetmanager oder besuche <a href="http://www.imagemagick.org/script/binary-releases.php" target="_blank">um das aktuelle Paket herunterzuladen</a>.'
     failing_emails_warning: 'Es konnten insgesamt %{num_failed_jobs} Mails nicht versendet werden. Bitte überprüfe die Einstellungen in config/environments/production.rb und stelle die Richtigkeit der config.action_mailer Einstellungen. <a href="/sidekiq/retries" target="_blank">Zu den Fehlern in Sidekiq</a>.'
     default_logo_warning: "Das Logo der Seite wurde noch nicht angepasst. Bitte bearbeite dieses in den <a href='/admin/site_settings'>Einstellungen</a> (siehe logo_url, logo_small_url und favicon_url)."
     contact_email_missing: "Du hast noch keine Kontaktmail für die Seite hinterlegt. Bitte hinterlege diese in den <a href='/admin/site_settings'>Einstellungen</a> (siehe contact_email)."
     contact_email_invalid: "Die Kontaktmail der Seite ist ungültig. Bitte bearbeite diese in den <a href='/admin/site_settings'>Einstellungen</a> (siehe contact_email)."
     title_nag: "Der Titel der Seite wurde noch nicht angepasst. Bitte bearbeite diesen in den <a href='/admin/site_settings'>Einstellungen</a>."
     consumer_email_warning: "Deine Seite verwendet Gmail um Mails zu senden. <a href='http://support.google.com/a/bin/answer.py?hl=en&answer=166852' target='_blank'>Gmail hat eine Limite zum Senden von Mails</a>. Um die Mail-Zustellung zu gewährleisten, solltest du einen anderen Mail Service in Erwägung ziehen."
+    access_password_removal: "Deine Seite hat die Einstellung access_password verwendet, welche entfernt wurde. Die Einstellungen login_required und must_approve_users wurden eingeschalten und werden sofort verwendet. Du kannst diese in <a href='/admin/site_settings'>den Einstellungen</a> wechseln. Stelle sicher, <a href='/admin/users/list/pending'>dass die Benutzer in der Warteliste</a> aktiviert werden. (Diese Meldung wird in 2 Tagen nicht mehr angezeigt.)"
+    system_username_warning: "Die Einstellung system_username ist leer. Bitte ändere diese in <a href='/admin/site_settings'>den Einstellungen</a>. Setzte einen Benutzernamen eines Administrators, welcher als Sender der Systemnachrichten verwendet werden soll."
+    notification_email_warning: "Die Einstellung notification_email ist leer. Bitte ändere diese in <a href='/admin/site_settings'>den Einstellungen</a>."
 
   content_types:
     education_new_reply:
@@ -405,22 +423,30 @@ de:
     welcome_invite:
       title: "Willkommen: Eingeladener Benutzer"
       description: "Eine private Nachricht welche automatisch an alle eingeladenen Benutzer gesendet wird, wenn diese die Einladung annehmen."
-
+    privacy_policy:
+      title: "Datenschutzrichtlinie"
+      description: "Die Datenschutzrichtlinie deiner Seite. Leer lassen um die Vorgabe zu verwenden."
+    faq:
+      title: "FAQ"
+      description: "Die FAQ deiner Seite. Leer lassen um die Vorgabe zu verwenden."
     login_required_welcome_message:
       title: "Anmeldung erforderlich: Willkommensnachricht"
       description: "Willkommensnachricht welche angezeigt wird wenn der Benutzer nicht angemeldet ist und die
         Einstellung 'login required' aktiviert ist."
-
     tos_user_content_license:
       title: "Nutzungsbedingungen: Lizenz"
       description: "Der Text für die Lizenz-Sektion in den Nutzungsbedingungen."
     tos_miscellaneous:
       title: "Nutzungsbedingungen: Verschiedenes"
       description: "Der Text für die Verschiedene-Sektion in den Nutzungsbedingungen."
+    login_required:
+      title: "Anmeldung erforderlich: Hauptseite"
+      description: "Der Text welcher nicht angemeldeten Benutzer angezeigt wird, wenn eine Anmeldung erforderlich ist."
 
   site_settings:
     default_locale: "Die Standardsprache dieser Discourse-Instanz (kodiert in ISO 639-1)."
     min_post_length: "Minimale Beitragslänge in Zeichen."
+    min_private_message_post_length: "Minimale Beitragslänge in Zeichen für private Nachrichten"
     max_post_length: "Maximale Beitragslänge in Zeichen."
     min_topic_title_length: "Minimale Titellänge von Themen in Zeichen."
     max_topic_title_length: "Maximale Titellänge von Themen in Zeichen."
@@ -441,12 +467,15 @@ de:
     queue_jobs: "Benutze die Sidekiq-Queue, falls falsche Queues inline sind."
     crawl_images: "Lade Bilder von Dritten herunter, um ihre Höhe und Breite zu bestimmen."
     ninja_edit_window: "Sekunden nach Empfang eines Beitrag, in denen Bearbeitungen nicht als neue Version gelten."
+    edit_history_visible_to_public: "Erlaube jedem vorherige Versionen eines beitrages zu sehen. Wenn deaktiviert, konnen nur Mitarbeiter die Bearbeitungshistorie anschauen."
+    delete_removed_posts_after: "Anzahl Stunden nach welchem Beiträge die von ihrem Author entfernt wurden endgültig gelöscht werden."
     max_image_width: "Maximalbreite von Bildern in einem Beitrag."
+    max_image_height: "Maximalhöhe von Bildern in einem Beitrag."
     category_featured_topics: "Zahl der angezeigten Themen je Kategorie auf der Kategorieseite /categories."
     add_rel_nofollow_to_user_content: "Füge mit Ausnahme interner Links allen nutzergenerierten Inhalten 'rel nofollow' hinzu (inkludiert übergeordnete Domains). Die Änderung dieser Einstellung erfordert, dass Du sämtliche Markdown-Beiträge aktualisierst."
     exclude_rel_nofollow_domains: "Kommaseparierte Liste aller Domains, bei denen 'nofollow' nicht hinzugefügt wird (tld.com erlaubt auch sub.tld.com)."
 
-    post_excerpt_maxlength: "Maximale Länge des Exzerpts eines Beitrags in Zeichen."
+    post_excerpt_maxlength: "Maximale Länge des Zitates eines Beitrags in Zeichen."
     post_onebox_maxlength: "Maximale Länge eines Onebox-Discourse-Beitrags."
     category_post_template: "Die Beitragsvorlage zur Kategoriedefinition beim erstellen einer neuen Kategorie."
     onebox_max_chars: "Maximale Zahl der Zeichen, die eine Onebox von einer externen Webseite in einen Beitrag lädt."
@@ -457,6 +486,7 @@ de:
     apple_touch_icon_url: "Icon für berührungsempfindliche Apple Geräte. Empfohlene Grösse ist 144px auf 144px."
 
     notification_email: "Die Antwortadresse, die in Systemmails (zum Beispiel zur Passwortwiederherstellung, neuen Konten, etc.) eingetragen wird."
+    email_custom_headers: "Eine Pipe-getrennte (|) Liste von eigenen Mail Headern"
     use_ssl: "Soll die Seite via SSL nutzbar sein?"
     best_of_score_threshold: "Der Minimalscore eines Beitrags, um zu den Top Beiträgen zu zählen."
     best_of_posts_required: "Minimale Zahl der Beiträge zu einem Thema bevor der Modus 'Top Beiträge' aktiviert wird."
@@ -476,13 +506,15 @@ de:
     cooldown_minutes_after_hiding_posts: "Minuten, die ein Nutzer warten muss, bevor ein Beitrag, der wegen Meldungen versteckt wurde, bearbeitet werden kann."
     num_flags_to_block_new_user: "Wenn ein Beitrag eines neuen Benutzers von (n) anderen Benutzern als Werbung gemeldet wird, verstecke alle Beiträge des Benutzers und erlaube keine neue Beiträge mehr. 0 stellt diese Funktion ab."
     num_users_to_block_new_user: "Wenn ein Beitrag eines neuen Benutzers von nderen Benutzern (n) mal als Werbung gemeldet wird, verstecke alle Beiträge des Benutzers und erlaube keine neue Beiträge mehr. 0 stellt diese Funktion ab."
-
+    notify_mods_when_user_blocked: "Wenn ein Benutzer automatisch gesperrt wird, sende eine Mail an alle Moderatoren."
 
     traditional_markdown_linebreaks: "Traditionelle Zeilenumbrüche in Markdown, anstatt zwei nachfolgende Leerzeichen als Zeilenumbruch zu verwenden."
     post_undo_action_window_mins: "Sekunden, die ein Nutzer hat, um Aktionen auf Beiträgen rückgängig zu machen (Like, Meldung, etc.)."
     must_approve_users: "Administratoren müssen Nutzer freischalten, bevor sie Zugriff erlangen."
     ga_tracking_code: "Google Analytics Trackingcode, zum Beispiel: UA-12345678-9; siehe http://google.com/analytics"
     ga_domain_name: "Google Analytics Domänenname, zum Beispiel: mysite.com; siehe http://google.com/analytics"
+    enable_escaped_fragments: "Aktiviere Umgehungslösung um älteren Suchmaschinen-Webcrawler zu helfen die Seite zu indexieren. ACHTUNG: Nur aktivieren falls wirklich nötig."
+    enable_noscript_support: "Aktiviere standard Suchmaschinen-Webcrawler Unterstützung durch den noscript Tag"
     top_menu: "Bestimme, welche Navigationselemente in welcher Reihenfolge auftauchen. Beispiel: latest|hot|read|favorited|unread|new|posted|categories"
     post_menu: "Bestimme, welche Funktionen in welcher Reihenfolge im Beitragsmenü auftauchen. Beispiel: like|edit|flag|delete|share|bookmark|reply"
     share_links: "Bestimme, welche Dienste in welcher Reihenfolge im Teilen-Dialog auftauchen. Beispiel: twitter|facebook|google+|email"
@@ -491,11 +523,14 @@ de:
     posts_per_page: "Zahl der Beiträge, die auf einer Themenseite gezeigt werden."
     system_username: "Benutzername des Autors für automatisch vom Forum versendete private Nachrichten."
     send_welcome_message: "Bekommen neue Nutzer eine Willkommensnachricht?"
-    suppress_reply_directly_below: "Zeige die Zahl der Antworten auf einen Beitrag nicht, falls die einzige Antwort direkt darauf folgt."
+    suppress_reply_directly_below: "Zeige die Zahl der Antworten auf einen Beitrag nicht, falls die einzige Antwort direkt darunter folgt."
+    suppress_reply_directly_above: "Zeige 'In Antwort auf' nicht, falls der Beitrag direkt über der einzigen Antwort folgt."
+
     allow_index_in_robots_txt: "Diese Seite soll durch Suchmaschinen indiziert werden (aktualisiert robots.txt)."
     email_domains_blacklist: "Eine durch senkrechte Striche getrennte Liste von unerlaubten Maildomains. Beispiel: mailinator.com|trashmail.net"
     email_domains_whitelist: "Eine durch senkrechte Striche getrennte Liste von erlaubte Maildomains. WARNUNG: Benutzer mit Mailadressen anderer Domains können sich nicht registrieren."
     version_checks: "Erfrage Versionsupdate bei Discourse Hub und zeige Versionsbenachrichtigungen auf der Administratorkonsole /admin."
+    new_version_emails: "Sende eine Mail an contact_email Adresse wenn eine neue Version verfügbar ist."
 
     port: "NUR FÜR ENTWICKLER! ACHTUNG! Benutze diesen HTTP-Port anstatt den Standardport 80. Diese Feld leer lassen heißt 'keinen'. Dient hauptsächlich Entwicklungszwecken."
     force_hostname: "NUR FÜR ENTWICKLER! ACHTUNG! Spezifiziere einen Hostnamen in der URL. Dieses Feld leer lassen heißt 'keinen'. Dient hauptsächlich Entwicklungszwecken."
@@ -559,6 +594,8 @@ de:
     s3_secret_access_key: "Der geheime Schlüssel von Amazon S3 welcher für das Hochladen verwendet wird"
     s3_region: "Der Name der Amazon S3 Region welche für das Hochladen verwendet wird"
 
+    enable_flash_video_onebox: "Aktiviere das Einbinden von swf und flv Links in einer Onebox. ACHTUNG: Kann eine Sicherheitsrisiko sein"
+
     default_invitee_trust_level: "Standardwert für die Stufe eines eingeladenen Nutzers (0-4)."
     default_trust_level: "Standardwert für die Stufe von Nutzern (0-4)."
 
@@ -576,10 +613,14 @@ de:
 
     newuser_max_links: "Maximale Zahl der Links, die neue Benutzer Beiträgen hinzufügen dürfen."
     newuser_max_images: "Maximale Zahl der Bilder, die neue Benutzer Beiträgen hinzufügen dürfen."
+    newuser_max_attachments: "Maximale Zahl der Dateien, die neue Benutzer Beiträgen hinzufügen dürfen."
     newuser_max_mentions_per_post: "Maximale Zahl der @Namens-Erwähnungen, die neue Benutzer in Beiträgen nutzen dürfen."
     max_mentions_per_post: "Maximale Zahl der @Namens-Erwähnungen, die man in einem Beitrag nutzen kann."
 
+    create_thumbnails: "Erstelle Vorschaubilder für Bilder in einer Lightbox"
+
     email_time_window_mins: "Minuten Wartezeit, bevor eine Mail an Nutzer verschickt wird, um ihnen die Chance zu geben, eine Neuigkeit zuerst zu sehen."
+    email_posts_context: "Anzahl der Antworten welche als Konext einer Notifikations-Mail hinzugefügt werden."
     flush_timings_secs: "Sekunden, nach denen Zeiteinstellungen auf den Server übertragen werden."
     max_word_length: "Maximale Wortlänge in Zeichen in Thementiteln."
     title_min_entropy: "Minimal nötige Entropie (einzigartige Zeichen) in einem Thementitel."
@@ -591,7 +632,9 @@ de:
     min_body_similar_length: "Minimale Länge eines Beitragstextes, bevor nach ähnlichen Themen gesucht wird."
 
     category_colors: "Eine durch senkrechte Striche getrennte Liste hexadezimaler Farbwerte, die als Kategoriefarben erlaubt sind."
-    max_image_size_kb: "Maximale Größe in Kilobytes (kB), die von Benutzern hochgeladene Bilder groß sein dürfen. Stelle sicher, dass dieser Wert auch in nginx (client_max_body_size) / apache und Proxies konfiguriert ist."
+    max_image_size_kb: "Maximale Größe in Kilobytes (kB), die von Benutzern hochgeladene Bilder groß sein dürfen. Stelle sicher, dass dieser Wert auch in nginx (client_max_body_size) / Apache und Proxies konfiguriert ist."
+    max_attachment_size_kb: "Maximale Größe in Kilobytes (kB), die von Benutzern hochgeladenen Dateien groß sein dürfen. Stelle sicher, dass dieser Wert auch in nginx (client_max_body_size) / Apache und Proxies konfiguriert ist."
+    authorized_extensions: "Eine Pipe-getrennte (|) Liste von Dateiendungen welche hochgeladen werden dürfen."
     max_similar_results: "Anzahl ähnlicher Themen, die ein Nutzer sieht, während er ein neues Thema erstellen."
 
     title_prettify: "Verhindert gängige Fehler im Titel, wie reine Grossschreibung, Kleinbuchstaben am Anfang, mehrere ! und ?, überflüssiger . am Ende, etc."
@@ -600,12 +643,33 @@ de:
     topic_views_heat_medium: "Die Anzahl der Aufrufe bis die Popularität des Themas mittel ist."
     topic_views_heat_high: "Die Anzahl der Aufrufe bis die Popularität des Themas hoch ist."
 
+    faq_url: "URL zu einer externen FAQ welche Du gerne verwenden möchtest."
     tos_url: "URL zu einer externen Dienstleistungsbedingung welche Du gerne verwenden möchtest."
     privacy_policy_url: "URL zu einer externen Datenschutzrichtlinie welche Du gerne verwenden möchtest."
 
     newuser_spam_host_threshold: "Die Anzahl welche ein Frischling Beiträge mit Links auf die gleiche Seite innerhalb ihrer `newuser_spam_host_posts` veröffentlichen , bevor der Beitrag als Spam klassifiziert wird."
     staff_like_weight: "Zusätzlicher Gewichtungsfaktor wenn Mitglieder „Gefällt mir“ verteilen."
 
+    reply_by_email_enabled: "Erlaube das Antworten auf Themen via Mail"
+    reply_by_email_address: "Vorgabe der Antwort-Mail Adresse in der Form von: %{reply_key}@reply.myforum.com"
+
+    pop3s_polling_enabled: "Antworten via POP3S anfragen"
+    pop3s_polling_port: "Der Port für die POP3S Anfrage"
+    pop3s_polling_host: "Der Host für die POP3S Anfrage"
+    pop3s_polling_username: "Der Benutzername für die POP3S Anfrage"
+    pop3s_polling_password: "Das Passwort für die POP3S Anfrage"
+
+    minimum_topics_similar: "Wie viele Themen in der Datenbank existieren müssen, bevor ähnliche Themen angezeigt werden."
+
+    relative_date_duration: "Anzahl von Tagen nach nach welchen das Beitragsdatum relativ und nicht absolut angezeigt wird. Beispiel: relatives Datum: 7T, absolutes Datum: 20 Feb"
+    delete_user_max_age: "Nach wievielen Tagen ein Benutzerkonto von einem Administrator gelöscht werden kann."
+    delete_all_posts_max: "Die maximale Anzahl von Beiträgen welche auf einmal gelöscht werden kann. Hat ein Benutzer mehr Beiträge, so können die Beiträge nicht auf einmal und der Benutzer nicht gelöscht werden."
+    username_change_period: "Wie lange neu registrierte Benutzer ihren Benutzernamen ändern können."
+
+    allow_uploaded_avatars: "Erlaube das Hochladen eines eigenen Avatars"
+    allow_animated_avatars: "Erlaube den Benutzern animierte GIFs als Avatar zu benutzen"
+    default_digest_email_frequency: "Wie oft man Zusammenfassungen per Mail standardmässig erhält. Diese Einstellung kann von jedem geändert werden."
+
   notification_types:
     mentioned: "%{display_username} hat Dich in %{link} erwähnt."
     liked: "%{display_username} gefällt deinen Beitrag in %{link}."
@@ -633,6 +697,9 @@ de:
     moderator_post:
       one: "Ich habe einen Beitrag in ein neues Thema verschoben: %{topic_link}"
       other: "Ich habe %{count} Beiträge in ein neues Thema verschoben: %{topic_link}"
+    existing_topic_moderator_post:
+      one: "Ich habe den Beitrag in ein vorhandenes Thema verschoben: %{topic_link}"
+      other: "Ich hab %{count} Beiträge in ein vorhandenes Thema verschoben: %{topic_link}"
 
   topic_statuses:
     archived_enabled: "Dieses Thema ist nun archiviert. Es ist eingefroren und kann in keiner Weise mehr verändert werden."
@@ -656,6 +723,7 @@ de:
     active: "Dein Konto ist nun freigeschaltet und einsatzbereit."
     activate_email: "Fast fertig! Wir haben eine Aktivierungsmail an <b>%{email}</b> verschickt. Bitte folge den Anweisungen in der Mail, um Dein Konto zu aktivieren."
     not_activated: "Du kannst Dich noch nicht anmelden. Wir haben Dir eine Aktivierungsmail geschickt. Bitte folge zunächst den Anweisungen aus der Mail, um Dein Konto zu aktivieren."
+    banned: "Du kannst dich bis am %{date} nicht mehr anmelden."
     errors: "%{errors}"
     not_available: " Nicht verfügbar. Versuche %{suggestion}?"
     something_already_taken: "Etwas ist schief gelaufen. Möglicherweise ist der Benutzername bereits registriert. Probiere den 'Passwort vergessen'-Link."
@@ -716,6 +784,8 @@ de:
 
       Deine Freunde von %{site_name}.
 
+      :smile:
+
       [0]: %{base_url}
       [1]: http://www.kitterman.com/spf/validate.html
       [2]: http://mxtoolbox.com/SuperTool.aspx
@@ -728,6 +798,17 @@ de:
 
       <small>Am Fuß jeder Mail, die Du verschickst, sollte eine Möglichkeit zum Abbestellen gegeben werden. Hier ein Beispiel: Diese Mail wurde von Unternehmensname, Hauptstraße 55, 12345 Stadtname, Deutschland, versendet. Wenn Du zukünftig keine weiteren Mail erhalten möchtest, [klicke hier, um dich abzumelden][5].</small>
 
+  new_version_mailer:
+    subject_template: "[%{site_name}] neue Version verfügbar"
+    text_body_template: |
+      Eine neue Version von Discourse ist verfügbar.
+
+      **Neue Version: %{new_version}**
+
+      Deine Version: %{installed_version}
+
+      Bitte aktuallisiere die Installation so bald wie möglich um die neusten Fehlerbehebungen und Funktionen zu erhalten.
+
   system_messages:
     post_hidden:
       subject_template: "Beitrag wegen Meldungen aus der Community versteckt"
@@ -839,6 +920,15 @@ de:
 
         Weitere Hilfe findest du in unserer [FAQ](%{base_url}/faq).
 
+    blocked_by_staff:
+      subject_template: "Konto gesperrt"
+      text_body_template: |
+        Hallo,
+
+        Dies ist eine automatische Nachricht von %{site_name} um dich zu informierenm, dass dein Konto durch einem Moderator gesperrt wurde.
+
+        Weitere Hilfe findest du in unserer [FAQ](%{base_url}/faq).
+
     user_automatically_blocked:
       subject_template: "Benutzer %{username} wurde automatisch gesperrt"
       text_body_template: |
@@ -846,6 +936,13 @@ de:
 
         Bitte [überprüfe die Beanstandungen](/admin/flags). Wenn %{username} nicht mehr gesperrt sein soll, schalte den Benutzer in der [Benuzeradministration](%{user_url}) wieder frei.
 
+    spam_post_blocked:
+      subject_template: "Spam wirde in einem Beitrag von %{username} entdeckt"
+      text_body_template: |
+        Dies ist eine automatische Nachricht um dich zu informieren, dass [%{username}](%{user_url}) versucht hat einen Beitrag mit Links zu erstellen, was aber basierend auf der Einstellung newuser_spam_host_threshold unterbunden wurde.
+
+        Bitte [überprüfe den Benutzer](%{user_url}).
+
     unblocked:
       subject_template: "Benutzerkonto entsperrt"
       text_body_template: |
@@ -855,13 +952,28 @@ de:
 
         Du kannst nun wieder Themen erstellen und Beiträge veröffentlichen.
 
+    pending_users_reminder:
+      subject_template:
+        one: "Es gibt einen nicht freigegebenen Benutzer"
+        other: "Es gibt %{count} nicht freigegebene Benutzer"
+      text_body_template: |
+        Es warten neuen Benutzer auf ihre Freigabe.
+
+        [Bitte bewerte diese im Administrationsbereich](/admin/users/list/pending).
+
   unsubscribe_link: "Wenn Du diese Mails nicht mehr erhalten möchtest, verändere deine [Benutzereinstellungen](%{user_preferences_url})."
 
   user_notifications:
+    previous_discussion: "Vorangehende Antworten"
     unsubscribe:
       title: "Mails Abbestellen"
       description: "Nicht interessiert an diesen Mails? Kein Problem! Klicke unten um Dich abzumelden:"
 
+    reply_by_email: "Um zu Antworten, antworte auf diese Email oder besuche %{base_url}%{url} in deinem Browser."
+    visit_link_to_respond: "Um zu Antworten, besuche %{base_url}%{url} in deinem Browser."
+
+    posted_by: "Erstellt von %{username} am %{post_date}"
+
     user_invited_to_private_message:
       subject_template: "[%{site_name}] %{username} hat Dich zu einem privaten Gespräch eingeladen: '%{topic_title}'"
       text_body_template: |
@@ -872,52 +984,49 @@ de:
     user_replied:
       subject_template: "[%{site_name}] %{username} hat auf deinen Beitrag '%{topic_title}' geantwortet"
       text_body_template: |
-        %{username} hat auf deinen Beitrag '%{topic_title}' auf %{site_name} geantwortet:
-
-        ---
         %{message}
 
+        %{context}
+
         ---
-        Um zu antworten, besuche den folgenden Link: %{base_url}%{url}
+        %{respond_instructions}
 
     user_quoted:
       subject_template: "[%{site_name}] %{username} hat Dich in '%{topic_title}' zitiert"
       text_body_template: |
-        %{username} hat Dich in '%{topic_title}' auf %{site_name} zitiert:
-
-        ---
         %{message}
 
+        %{context}
+
         ---
-        Um zu antworten, besuche den folgenden Link: %{base_url}%{url}
+        %{respond_instructions}
 
     user_mentioned:
       subject_template: "[%{site_name}] %{username} hat Dich in '%{topic_title}' erwähnt"
       text_body_template: |
-        %{username} hat Dich in '%{topic_title}' auf %{site_name} erwähnt:
-
-        ---
         %{message}
 
+        %{context}
+
         ---
-        Um zu antworten, besuche den folgenden Link: %{base_url}%{url}
+        %{respond_instructions}
 
     user_posted:
       subject_template: "[%{site_name}] %{subject_prefix}%{username} hat auf '%{topic_title}' geantwortet"
       text_body_template: |
-        %{username} hat in '%{topic_title}' auf %{site_name} geantwortet:
-
-        ---
         %{message}
 
+        %{context}
+
         ---
-        Um zu antworten, besuche den folgenden Link: %{base_url}%{url}
+        %{respond_instructions}
 
     digest:
       why: "Hier eine kurze Zusammenfassung, was auf %{site_link} passiert ist, seit Du das letzte Mal am %{last_seen_at} da warst."
       subject_template: "[%{site_name}] Forenaktivität für den %{date}"
       new_activity: "Neues in deinen Themen und Beiträgen:"
       top_topics: "Inhalte die dich vielleicht interessieren:"
+      other_new_topics: "Andere neue Themen:"
       unsubscribe: "Diese Zusammenfassung wurde Dir von %{site_link} geschickt, damit Du auf dem Laufenden bleibst, und weil wir nicht eine Weile nicht begrüßen durften.\nWenn Du diese Benachrichtigungen nicht mehr erhalten möchtest, kannst Du sie in deinen Maileinstellungen abschalten: %{unsubscribe_link}."
       click_here: "klicke hier"
       from: "%{site_name} Übersicht"
@@ -992,8 +1101,12 @@ de:
   deleted: 'gelöscht'
 
   upload:
-    pasted_image_filename: ""
+    unauthorized: "Entschuldige, die Datei die du hochladen möchtest ist nicht erlaubt (Erlaubte Dateiendungen: %{authorized_extensions})."
+    pasted_image_filename: "Hinzugefügtes Bild"
+    attachments:
+      too_large: "Entschuldige, die Datei die du hochladen möchtest ist zu gross (Maximale Dateigrösse ist %{max_size_kb}%kb)."
     images:
-      fetch_failure: "Entschuldige, beim Laden des Bildes ist ein Fehler aufgetreten."
+      too_large: "Entschuldige, das Bild welches du hochladen möchtest ist zu gross (Maximale Dateigrösse ist %{max_size_kb}%kb), bitte verkleinere es und versuche es nochmals."
+      fetch_failure: "Sorry, there has been an error while fetching the image."
       unknown_image_type: "Entschuldige, aber die Datei die Du hochladen möchtest schein kein Bild zu sein."
       size_not_found: "Entschuldige, aber wir konnten die Grösse des Bildes nicht feststellen. Vielleicht ist das Bild defekt?"
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index 98f2bdb8b..69274dc08 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -937,9 +937,9 @@ en:
         Please [review the flags](/admin/flags). If %{username} was incorrectly blocked from posting, click the unblock button on [the admin page for this user](%{user_url}).
 
     spam_post_blocked:
-      subject_template: "Spam was detected in a post by %{username}"
+      subject_template: "New user %{username} is posting repeated links"
       text_body_template: |
-        This is an automated message to inform you that [%{username}](%{user_url}) tried to make a post with links, but it was stopped as spam based on the newuser_spam_host_threshold site setting.
+        This is an automated message to inform you that the new user [%{username}](%{user_url}) tried to create multiple posts with links to the same domain, but they were blocked based on the newuser_spam_host_threshold site setting.
 
         Please [review the user](%{user_url}).
 
@@ -1027,7 +1027,7 @@ en:
       new_activity: "New activity on your topics and posts:"
       top_topics: "Recent posts the community enjoyed:"
       other_new_topics: "Other New Topics:"
-      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while.\nTo unsubscribe or change your email preferences, %{unsubscribe_link}."
+      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while. To unsubscribe or change your email preferences, %{unsubscribe_link}."
       click_here: "click here"
       from: "%{site_name} digest"
       read_more: "Read More"
diff --git a/config/locales/server.id.yml b/config/locales/server.id.yml
index 217ab1fe6..3988ece34 100644
--- a/config/locales/server.id.yml
+++ b/config/locales/server.id.yml
@@ -725,7 +725,7 @@ id:
       subject_template: "[%{site_name}] Forum Activity for %{date}"
       new_activity: "New activity on your topics and posts:"
       new_topics: "New topics:"
-      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while.\nTo unsubscribe or change your email preferences, %{unsubscribe_link}."
+      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while. To unsubscribe or change your email preferences, %{unsubscribe_link}."
       click_here: "click here"
       from: "%{site_name} digest"
 
diff --git a/config/locales/server.ko.yml b/config/locales/server.ko.yml
index 165d5133f..6025c3a21 100644
--- a/config/locales/server.ko.yml
+++ b/config/locales/server.ko.yml
@@ -870,7 +870,7 @@ ko:
       subject_template: "[%{site_name}] Forum Activity for %{date}"
       new_activity: "New activity on your topics and posts:"
       new_topics: "New topics:"
-      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while.\nTo unsubscribe or change your email preferences, %{unsubscribe_link}."
+      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while. To unsubscribe or change your email preferences, %{unsubscribe_link}."
       click_here: "click here"
       from: "%{site_name} digest"
 
diff --git a/config/locales/server.sv.yml b/config/locales/server.sv.yml
index 7aac74e9b..5e74f96fe 100644
--- a/config/locales/server.sv.yml
+++ b/config/locales/server.sv.yml
@@ -783,7 +783,7 @@ sv:
       subject_template: "[%{site_name}] Forum Activity for %{date}"
       new_activity: "New activity on your topics and posts:"
       new_topics: "New topics:"
-      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while.\nTo unsubscribe or change your email preferences, %{unsubscribe_link}."
+      unsubscribe: "This summary email is sent as a courtesy notification from %{site_link} when we haven't seen you in a while. To unsubscribe or change your email preferences, %{unsubscribe_link}."
       click_here: "click here"
       from: "%{site_name} digest"
 
diff --git a/config/routes.rb b/config/routes.rb
index e4c81d8cf..40283267c 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -216,6 +216,7 @@ Discourse::Application.routes.draw do
   get 'topics/created-by/:username' => 'list#topics_by', as: 'topics_by', constraints: {username: USERNAME_ROUTE_FORMAT}
   get 'topics/private-messages/:username' => 'list#private_messages', as: 'topics_private_messages', constraints: {username: USERNAME_ROUTE_FORMAT}
   get 'topics/private-messages-sent/:username' => 'list#private_messages_sent', as: 'topics_private_messages_sent', constraints: {username: USERNAME_ROUTE_FORMAT}
+  get 'topics/private-messages-unread/:username' => 'list#private_messages_unread', as: 'topics_private_messages_unread', constraints: {username: USERNAME_ROUTE_FORMAT}
 
   # Topic routes
   get 't/:slug/:topic_id/wordpress' => 'topics#wordpress', constraints: {topic_id: /\d+/}
diff --git a/docs/DEVELOPER-ADVANCED.md b/docs/DEVELOPER-ADVANCED.md
index 9f6be8df6..a75068dfe 100644
--- a/docs/DEVELOPER-ADVANCED.md
+++ b/docs/DEVELOPER-ADVANCED.md
@@ -19,11 +19,9 @@ Note: If you are developing on a Mac, you will probably want to look at [these i
 ## Before you start Rails
 
 1. `bundle install`
-2. `bundle exec rake db:migrate`
-3. `bundle exec rake db:test:prepare`
-4. `bundle exec rake db:seed_fu`
-5. Try running the specs: `bundle exec rake autospec`
-6. `bundle exec rails server`
+2. `bundle exec rake db:migrate db:test:prepare db:seed_fu`
+4. Try running the specs: `bundle exec rake autospec`
+5. `bundle exec rails server`
 
 You should now be able to connect to rails on [http://localhost:3000](http://localhost:3000) - try it out! The seed data includes a pinned topic that explains how to get an admin account, so start there! Happy hacking!
 
diff --git a/lib/topic_query.rb b/lib/topic_query.rb
index 766fb8178..a39e4293c 100644
--- a/lib/topic_query.rb
+++ b/lib/topic_query.rb
@@ -146,6 +146,11 @@ class TopicQuery
     TopicList.new(:private_messages, user, list)
   end
 
+  def list_private_messages_unread(user)
+    list = private_messages_for(user)
+    list = TopicQuery.unread_filter(list)
+    TopicList.new(:private_messages, user, list)
+  end
 
   def list_uncategorized
     create_list(:uncategorized, unordered: true) do |list|
diff --git a/lib/version.rb b/lib/version.rb
index c54f87566..4b1ff0085 100644
--- a/lib/version.rb
+++ b/lib/version.rb
@@ -5,7 +5,7 @@ module Discourse
       MAJOR = 0
       MINOR = 9
       TINY  = 6
-      PRE   = 1
+      PRE   = 2
 
       STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
     end
diff --git a/test/javascripts/components/markdown_test.js b/test/javascripts/components/markdown_test.js
index ef2d5e9db..9f53d0705 100644
--- a/test/javascripts/components/markdown_test.js
+++ b/test/javascripts/components/markdown_test.js
@@ -23,6 +23,7 @@ test("basic cooking", function() {
   cooked("_trout_", "<p><em>trout</em></p>", "it italicizes text.");
   cooked("***hello***", "<p><strong><em>hello</em></strong></p>", "it can do bold and italics at once.");
   cooked("word_with_underscores", "<p>word_with_underscores</p>", "it doesn't do intraword italics");
+  cooked("common/_special_font_face.html.erb", "<p>common/_special_font_face.html.erb</p>", "it doesn't intraword with a slash");
   cooked("hello \\*evil\\*", "<p>hello *evil*</p>", "it supports escaping of asterisks");
   cooked("hello \\_evil\\_", "<p>hello _evil_</p>", "it supports escaping of italics");
   cooked("brussel sproutes are *awful*.", "<p>brussel sproutes are <em>awful</em>.</p>", "it doesn't swallow periods.");