diff --git a/src/c3nav/editor/templates/editor/changeset.html b/src/c3nav/editor/templates/editor/changeset.html
index e38e7d76..c45c0473 100644
--- a/src/c3nav/editor/templates/editor/changeset.html
+++ b/src/c3nav/editor/templates/editor/changeset.html
@@ -45,7 +45,7 @@
{% elif changeset.state == 'review' %}
{% with user=changeset.assigned_to %}
{% url 'editor.users.detail' pk=changeset.assigned_to.pk as user_url %}
-
{% blocktrans %}These changes are currently being reviewed by {{ user }}{% endblocktrans %}
+ {% blocktrans %}These changes are currently being reviewed by {{ user }}.{% endblocktrans %}
{% endwith %}
{% elif changeset.state == 'rejected' or changeset.state == 'finallyrejected' %}
{% with user=changeset.last_state_update.user comment=changeset.last_state_update.comment %}
diff --git a/src/c3nav/editor/templates/editor/list.html b/src/c3nav/editor/templates/editor/list.html
index 68c7312f..832e41eb 100644
--- a/src/c3nav/editor/templates/editor/list.html
+++ b/src/c3nav/editor/templates/editor/list.html
@@ -9,7 +9,7 @@
{% endif %}
- {% blocktrans %}{{ model_title_plural }}{% endblocktrans %}
+ {{ model_title_plural }}
{% if level %}
{% with level.title as level_title %}
{% blocktrans %}on level {{ level_title }}{% endblocktrans %}
diff --git a/src/c3nav/editor/templates/editor/user.html b/src/c3nav/editor/templates/editor/user.html
index 87309504..f79ca336 100644
--- a/src/c3nav/editor/templates/editor/user.html
+++ b/src/c3nav/editor/templates/editor/user.html
@@ -7,7 +7,7 @@
{% bootstrap_messages %}
{% if request.user == user %}
- {% trans "That\'s you!" %}
+ {% trans "That's you!" %}
{% if request.changeset.pk %}
{% with changeset_title=changeset.title changeset_id=request.changeset.pk changeset_url=request.changeset.get_absolute_url %}
diff --git a/src/c3nav/locale/de/LC_MESSAGES/django.po b/src/c3nav/locale/de/LC_MESSAGES/django.po
index 55f6aa51..d96fe9f0 100644
--- a/src/c3nav/locale/de/LC_MESSAGES/django.po
+++ b/src/c3nav/locale/de/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-12-28 09:33+0000\n"
-"PO-Revision-Date: 2016-12-28 10:37+0100\n"
+"POT-Creation-Date: 2017-07-08 19:29+0200\n"
+"PO-Revision-Date: 2017-07-08 19:30+0200\n"
"Last-Translator: Laura Klünder \n"
"Language-Team: \n"
"Language: de\n"
@@ -16,645 +16,903 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.2\n"
-#: c3nav/access/admin.py:17 c3nav/access/templates/access/user.html:38
-msgid "Permissions"
-msgstr "Zugänge"
+#: c3nav/editor/forms.py:61
+msgid "Redirecting Slugs (comma seperated)"
+msgstr "Umleitungs-Slugs (mit Komma getrennt)"
-#: c3nav/access/admin.py:19
-msgid "Important dates"
-msgstr "Wichtige Daten"
-
-#: c3nav/access/forms.py:31 c3nav/access/forms.py:52
-msgid "Full Permissions"
-msgstr "Voller Zugang"
-
-#: c3nav/access/forms.py:44
+#: c3nav/editor/forms.py:81
#, python-format
-msgid "%(grouptitle)s (%(count)s nonpublic locations)"
-msgstr "%(grouptitle)s (%(count)s nichtöffentliche Orte)"
-
-#: c3nav/access/models.py:18 c3nav/access/models.py:36
-#: c3nav/access/models.py:60
-msgid "description"
-msgstr "Beschreibung"
-
-#: c3nav/access/models.py:19
-msgid "can award permissions"
-msgstr "kann Zugänge verteilen"
-
-#: c3nav/access/models.py:20
-msgid "has access from"
-msgstr "hat Zugang von"
-
-#: c3nav/access/models.py:21
-msgid "has access until"
-msgstr "hat Zugang bis"
-
-#: c3nav/access/models.py:24 c3nav/access/models.py:25
-msgid "Access Operator"
-msgstr "Zugangsverwalter"
-
-#: c3nav/access/models.py:32
-msgid "access name"
-msgstr "Zugangsname"
-
-#: c3nav/access/models.py:33
-msgid "Usually an URL to a profile somewhere"
-msgstr "üblicherweise eine URL zu einem Profil irgendwo"
-
-#: c3nav/access/models.py:35 c3nav/access/models.py:58
-msgid "creator"
-msgstr "Ersteller"
-
-#: c3nav/access/models.py:37 c3nav/access/models.py:61
-#: c3nav/access/models.py:123
-msgid "creation date"
-msgstr "Erstellungsdatum"
-
-#: c3nav/access/models.py:40 c3nav/access/models.py:57
-msgid "Access User"
-msgstr "Zugangsnutzer"
-
-#: c3nav/access/models.py:41
-msgid "Access Users"
-msgstr "Zugangsnutzer"
-
-#: c3nav/access/models.py:59
-msgid "permissions"
-msgstr "Zugänge"
-
-#: c3nav/access/models.py:63
-msgid "is expired"
-msgstr "abgelaufen"
-
-#: c3nav/access/models.py:64
-msgid "activated"
-msgstr "aktiviert"
-
-#: c3nav/access/models.py:65
-msgid "activation secret"
-msgstr "Aktivierungstoken"
-
-#: c3nav/access/models.py:68 c3nav/access/models.py:116
-#: c3nav/access/models.py:121 c3nav/access/templates/access/prove.html:35
-msgid "Access Token"
-msgstr "Zugangstoken"
-
-#: c3nav/access/models.py:69
-msgid "Access Tokens"
-msgstr "Zugangstoken"
-
-#: c3nav/access/models.py:122
-msgid "access secret"
-msgstr "Zugangsschlüssel"
-
-#: c3nav/access/models.py:127
-msgid "Access Token Instance"
-msgstr "Zugangstokeninstanz"
-
-#: c3nav/access/models.py:128
-msgid "Access Token Instances"
-msgstr "Zugangstokeninstanzen"
-
-#: c3nav/access/templates/access/activate.html:11
-msgid "Your access token was installed on your device!"
-msgstr "Der Zugangstoken wurde auf deinem Gerät aktiviert!"
-
-#: c3nav/access/templates/access/fragment_token.html:9
-msgid "Link to this token / in this QR code"
-msgstr "Link zu diesem Token / in diesem QR Code"
-
-#: c3nav/access/templates/access/fragment_token.html:11
-msgid "Activate token on this device"
-msgstr "Token auf diesem Gerät aktivieren!"
-
-#: c3nav/access/templates/access/fragment_token.html:14
-msgid ""
-"This link QR Code / Link only works once. If you want access on multiple "
-"devices, you need multiple tokens."
+msgid "Can not add redirecting slug “%s”: it's the slug of this object."
msgstr ""
-"Dieser QR Code / link funktioniert nur einmal. Wenn du auf mehreren Geräten "
-"zugang willst, brauchst du mehrere Token."
+"Umleitungs-Slug „%s“ kann nicht hinzugefügt werden: Es ist der Slug dieses "
+"Objects."
-#: c3nav/access/templates/access/loggedin_base.html:7
-msgid "Users"
-msgstr "Nutzer"
-
-#: c3nav/access/templates/access/loggedin_base.html:8
-msgid "Log out"
-msgstr "Abmelden"
-
-#: c3nav/access/templates/access/login.html:12
-#: c3nav/access/templates/access/login.html:15
-msgid "Log in"
-msgstr "Anmelden"
-
-#: c3nav/access/templates/access/login.html:18
-msgid "This is the non-public backend for creation of access tokens."
+#: c3nav/editor/forms.py:88
+#, python-format
+msgid "Can not add redirecting slug “%s”: it is already used elsewhere."
msgstr ""
-"Das hier ist das nichtöffentliche Backend zum Erstellen von Zugangstokens."
+"Umleitungs-Slug „%s“ kann nicht hinzugefügt werden: Er wird bereits an "
+"anderer Stelle verwendet."
-#: c3nav/access/templates/access/login.html:21
-msgid "Prove that you should have access"
-msgstr "Beweise dass du Zugang haben solltest"
+#: c3nav/editor/forms.py:122
+msgid "Final rejection"
+msgstr "Endgültige Ablehnung"
-#: c3nav/access/templates/access/prove.html:12
-msgid "Prove access rights"
-msgstr "Zugangsrechte beweisen"
+#: c3nav/editor/models/changedobject.py:25 c3nav/editor/models/changeset.py:55
+msgid "Change Set"
+msgstr "Änderungsset"
-#: c3nav/access/templates/access/prove.html:13
-msgid ""
-"Please enter a valid authentication code for the hosters of the following "
-"non-public map packages:"
-msgstr ""
-"Bitte gebe einen gültigen API Token für die Hoster der folgenden "
-"nichtöffentlichen Kartenpakete an:"
+#: c3nav/editor/models/changedobject.py:26 c3nav/editor/models/changeset.py:38
+#: c3nav/editor/views/changes.py:254
+msgid "created"
+msgstr "erstellt"
-#: c3nav/access/templates/access/prove.html:16
-msgid "Thanks – you get full access to the map!"
-msgstr "Danke – du kriegst vollen Zugang zur Karte!"
+#: c3nav/editor/models/changedobject.py:28
+msgid "id of existing object"
+msgstr "ID eines existierenden Objects"
-#: c3nav/access/templates/access/prove.html:17
-msgid "All previous tokens have been invalidated."
-msgstr "Alle bisherigen Token wurden deaktiviert."
+#: c3nav/editor/models/changedobject.py:29
+msgid "updated fields"
+msgstr "geänderte Felder"
-#: c3nav/access/templates/access/prove.html:26
-#: c3nav/access/templates/access/prove.html:28
-msgid "Sorry."
-msgstr "Sorry."
+#: c3nav/editor/models/changedobject.py:30
+msgid "added m2m values"
+msgstr "hinzugefügte m2m-Werte"
-#: c3nav/access/templates/access/prove.html:26
-msgid "One or more access tokens were not correct."
-msgstr "Ein oder mehrere Token waren ungültig."
+#: c3nav/editor/models/changedobject.py:31
+msgid "removed m2m values"
+msgstr "entfernte m2m-Werte"
-#: c3nav/access/templates/access/prove.html:28
-msgid "You already have a valid access token."
-msgstr "Du hast bereits einen gültigen Zugangstoken."
+#: c3nav/editor/models/changedobject.py:32
+msgid "object was deleted"
+msgstr "Object wurde gelöscht"
-#: c3nav/access/templates/access/prove.html:40
-msgid "Invalidate previous token(s)."
-msgstr "Bisherige token invalidieren."
+#: c3nav/editor/models/changedobject.py:37
+msgid "Changed object"
+msgstr "Geändertes Objekt"
-#: c3nav/access/templates/access/prove.html:44
-msgid "Submit"
-msgstr "Absenden"
+#: c3nav/editor/models/changedobject.py:38
+msgid "Changed objects"
+msgstr "Geänderte Objekte"
-#: c3nav/access/templates/access/prove.html:48
-msgid "Sorry, this service is currently not available."
-msgstr "Sorry, dieses Feature is aktuell nicht verfügbar."
+#: c3nav/editor/models/changeset.py:30
+msgid "unproposed"
+msgstr "nicht vorgeschlagen"
-#: c3nav/access/templates/access/user.html:16
-msgid "Add new access token"
-msgstr "Neuen "
+#: c3nav/editor/models/changeset.py:31
+msgid "proposed"
+msgstr "vorgeschlagen"
-#: c3nav/access/templates/access/user.html:22
-msgid "Add"
-msgstr "Hinzufügen"
+#: c3nav/editor/models/changeset.py:32
+msgid "in review"
+msgstr "wird überprüft"
-#: c3nav/access/templates/access/user.html:35
-#: c3nav/access/templates/access/users.html:11
-msgid "ID"
-msgstr "ID"
+#: c3nav/editor/models/changeset.py:33
+msgid "rejected"
+msgstr "abgelehnt"
-#: c3nav/access/templates/access/user.html:36
-#: c3nav/access/templates/access/users.html:14
-msgid "Description"
-msgstr "Beschreibung"
+#: c3nav/editor/models/changeset.py:34
+msgid "proposed again"
+msgstr "erneut vorgeschlagen"
-#: c3nav/access/templates/access/user.html:37
-#: c3nav/access/templates/access/users.html:13
+#: c3nav/editor/models/changeset.py:35
+msgid "finally rejected"
+msgstr "endgültig abgelehnt"
+
+#: c3nav/editor/models/changeset.py:36
+msgid "accepted and applied"
+msgstr "akzeptiert und angewendet"
+
+#: c3nav/editor/models/changeset.py:40
+msgid "last object change"
+msgstr "letzte Änderung eines Objects"
+
+#: c3nav/editor/models/changeset.py:42
+msgid "last update"
+msgstr "letzte Anderung"
+
+#: c3nav/editor/models/changeset.py:44
+msgid "last state update"
+msgstr "letzte Statusänderung"
+
+#: c3nav/editor/models/changeset.py:46
msgid "Author"
msgstr "Autor"
-#: c3nav/access/templates/access/user.html:39
-#: c3nav/access/templates/access/users.html:16
-msgid "Creation Date"
-msgstr "Erstellungsdatum"
+#: c3nav/editor/models/changeset.py:47
+msgid "Title"
+msgstr "Titel"
-#: c3nav/access/templates/access/user.html:40
-msgid "Expiration"
-msgstr "Ablaufdatum"
+#: c3nav/editor/models/changeset.py:48
+msgid "Description"
+msgstr "Beschreibung"
-#: c3nav/access/templates/access/user.html:41
-msgid "Action"
-msgstr "Aktion"
+#: c3nav/editor/models/changeset.py:50
+msgid "assigned to"
+msgstr "zugewiesen"
-#: c3nav/access/templates/access/user.html:62
-msgid "expired"
-msgstr "abgelaufen"
+#: c3nav/editor/models/changeset.py:51
+msgid "map update"
+msgstr "Kartenupdate"
-#: c3nav/access/templates/access/user.html:66
-msgid "never"
-msgstr "nie"
+#: c3nav/editor/models/changeset.py:56
+msgid "Change Sets"
+msgstr "Änderungssets"
-#: c3nav/access/templates/access/user.html:71
-msgid "Expire"
-msgstr "Invalidieren"
+#: c3nav/editor/models/changeset.py:645
+msgid "Direct editing active"
+msgstr "Direktes Bearbeiten aktiv"
-#: c3nav/access/templates/access/user.html:73
+#: c3nav/editor/models/changeset.py:646
+msgid "No objects changed"
+msgstr "Keine Objekte geändert"
+
+#: c3nav/editor/models/changeset.py:647
+#, python-format
+msgid "%(num)d object changed"
+msgid_plural "%(num)d objects changed"
+msgstr[0] "%(num)d Objekt geändert"
+msgstr[1] "%(num)d Objekte geändert"
+
+#: c3nav/editor/models/changesetupdate.py:12
+msgid "datetime"
+msgstr "Zeitpunkt"
+
+#: c3nav/editor/models/changesetupdate.py:23
+msgid "Change set update"
+msgstr "Änderungssetänderung"
+
+#: c3nav/editor/models/changesetupdate.py:24
+msgid "Change set updates"
+msgstr "Änderungssetänderungen"
+
+#: c3nav/editor/templates/editor/base.html:10
+#: c3nav/editor/templates/editor/base.html:28
+msgid "c3nav map editor"
+msgstr "c3nav Karteneditor"
+
+#: c3nav/editor/templates/editor/base.html:23
+msgid "Toggle navigation"
+msgstr "Navigation ein-/ausblenden"
+
+#: c3nav/editor/templates/editor/changeset.html:10
+#, python-format
+msgid "Change set #%(id)s"
+msgstr "Änderungsset #%(id)s"
+
+#: c3nav/editor/templates/editor/changeset.html:20
+#, python-format
+msgid "created at %(datetime)s by %(author)s"
+msgstr "erstellt am %(datetime)s von %(author)s"
+
+#: c3nav/editor/templates/editor/changeset.html:22
+#, python-format
+msgid "created at %(datetime)s"
+msgstr "erstellt am %(datetime)s"
+
+#: c3nav/editor/templates/editor/changeset.html:27
+#, python-format
+msgid "last update at %(datetime)s"
+msgstr "zuletzt geändert am %(datetime)s"
+
+#: c3nav/editor/templates/editor/changeset.html:41
+msgid "These changes are currently pending review."
+msgstr "Diese Änderungen sind warten aktuell auf Überprüfung."
+
+#: c3nav/editor/templates/editor/changeset.html:43
+msgid ""
+"As long as the review is pending you can unpropose them to edit them again."
+msgstr ""
+"Solange die Überprüfung aussteht kannst du deinen Vorschlag zurücknehmen um "
+"sie weiter zu bearbeiten."
+
+#: c3nav/editor/templates/editor/changeset.html:48
+#, python-format
+msgid ""
+"These changes are currently being reviewed by "
+"%(user)s."
+msgstr ""
+"Diese Änderungen werden aktuell von %(user)s "
+"überprüft."
+
+#: c3nav/editor/templates/editor/changeset.html:54
+#, python-format
+msgid ""
+"These changes were rejected by %(user)s with "
+"the followed comment:"
+msgstr ""
+"Diese Änderungen wurden von %(user)s mit der "
+"folgenden Begründung zurückgewiesen:"
+
+#: c3nav/editor/templates/editor/changeset.html:56
+#, python-format
+msgid ""
+"These changes were finally rejected by %(user)s with the followed comment:"
+msgstr ""
+"Diese Änderungen wurden von %(user)s mit der "
+"folgenden Begründung endgültig zurückgewiesen:"
+
+#: c3nav/editor/templates/editor/changeset.html:58
+#, python-format
+msgid "“%(comment)s”"
+msgstr "„%(comment)s“"
+
+#: c3nav/editor/templates/editor/changeset.html:60
+msgid "You can now edit your changes and propose them again."
+msgstr "Du kannst deine Änderungen jetzt bearbeiten und erneut vorschlagen."
+
+#: c3nav/editor/templates/editor/changeset.html:66
+#, python-format
+msgid "These changes were applied by %(user)s."
+msgstr ""
+"Diese Änderungen wurden von %(user)s angewendet."
+
+#: c3nav/editor/templates/editor/changeset.html:72
+#, python-format
+msgid ""
+"In the meantime, if you want to create a new change set, you can do so in your profile."
+msgstr ""
+"Bis dahin kannst du wenn du möchtest ein neues Änderungsset in deinem Profil erstellen."
+
+#: c3nav/editor/templates/editor/changeset.html:74
+#, python-format
+msgid ""
+"If you want to create a new change set, you can do so in your profile."
+msgstr ""
+"Wenn du ein neues Änderungsset erstellen möchtest, kannst du das in deinem Profil tun."
+
+#: c3nav/editor/templates/editor/changeset.html:91
+#: c3nav/editor/templates/editor/changeset.html:136
+#: c3nav/editor/templates/editor/list.html:29
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: c3nav/editor/templates/editor/changeset.html:95
+msgid "Restore"
+msgstr "Wiederherstellen"
+
+#: c3nav/editor/templates/editor/changeset.html:124
+#: c3nav/editor/templates/editor/delete.html:17
+#: c3nav/editor/templates/editor/edit.html:27
+msgid "Delete"
+msgstr "Löschen"
+
+#: c3nav/editor/templates/editor/changeset.html:128
+msgid "Unpropose"
+msgstr "Zurücknehmen"
+
+#: c3nav/editor/templates/editor/changeset.html:131
+msgid "Unreject"
+msgstr "Ablehnung zurücknehmen"
+
+#: c3nav/editor/templates/editor/changeset.html:139
+msgid "Propose"
+msgstr "Vorschlagen"
+
+#: c3nav/editor/templates/editor/changeset.html:142
+msgid "Review"
+msgstr "Überprüfen"
+
+#: c3nav/editor/templates/editor/changeset.html:145
+#: c3nav/editor/templates/editor/changeset_reject.html:17
+msgid "Reject"
+msgstr "Ablehnen"
+
+#: c3nav/editor/templates/editor/changeset.html:146
+msgid "Accept"
+msgstr "Akzeptieren"
+
+#: c3nav/editor/templates/editor/changeset.html:150
msgid "Activate"
msgstr "Aktivieren"
-#: c3nav/access/templates/access/user_token.html:12
-msgid "back to user"
-msgstr "zurück zum Nutzer"
+#: c3nav/editor/templates/editor/changeset_apply.html:5
+msgid "Accept and apply changes"
+msgstr "Änderungen akzeptieren und anwenden"
-#: c3nav/access/templates/access/users.html:12 c3nav/mapdata/models/base.py:22
-msgid "Name"
-msgstr "Name"
+#: c3nav/editor/templates/editor/changeset_apply.html:8
+msgid "Do you really want to accept and apply these changes?"
+msgstr "Möchtest du diese Änderungen wirklich akzeptieren und anwenden?"
-#: c3nav/access/templates/access/users.html:15
-msgid "Active Tokens"
-msgstr "Aktive Token"
+#: c3nav/editor/templates/editor/changeset_apply.html:13
+#: c3nav/editor/templates/editor/changeset_reject.html:14
+#: c3nav/editor/templates/editor/delete.html:14
+#: c3nav/editor/templates/editor/edit.html:36
+msgid "Cancel"
+msgstr "Abbrechen"
-#: c3nav/access/templates/access/users.html:17
-#: c3nav/access/templates/access/users.html:29
+#: c3nav/editor/templates/editor/changeset_apply.html:16
+msgid "Accept and apply"
+msgstr "Akzeptieren und Anwenden"
+
+#: c3nav/editor/templates/editor/changeset_edit.html:10
+#, python-format
+msgid "Changeset #%(id)s"
+msgstr "Änderungsset #%(id)s"
+
+#: c3nav/editor/templates/editor/changeset_edit.html:23
+#: c3nav/editor/templates/editor/edit.html:38
+msgid "Back"
+msgstr "Zurück"
+
+#: c3nav/editor/templates/editor/changeset_edit.html:25
+#: c3nav/editor/templates/editor/edit.html:31
+msgid "Save"
+msgstr "Speichern"
+
+#: c3nav/editor/templates/editor/changeset_reject.html:5
+msgid "Reject changes"
+msgstr "Änderungen ablehnen"
+
+#: c3nav/editor/templates/editor/changeset_reject.html:8
+msgid "Please explain why you reject these changes."
+msgstr "Bitte erkläre warum du diese Änderungen ablehnst."
+
+#: c3nav/editor/templates/editor/delete.html:5
+#, python-format
+msgid "Delete %(model_title)s"
+msgstr "%(model_title)s löschen"
+
+#: c3nav/editor/templates/editor/delete.html:8
+#, python-format
+msgid "Please confirm deleting: %(obj_title)s"
+msgstr "Bitte bestätige, dass du dieses Objekt löschen möchtest: %(obj_title)s"
+
+#: c3nav/editor/templates/editor/edit.html:8
+#: c3nav/editor/templates/editor/index.html:7
+#: c3nav/editor/templates/editor/level.html:33
+#: c3nav/editor/templates/editor/list.html:8
+#, python-format
+msgid "New %(model_title)s"
+msgstr "%(model_title)s erstellen"
+
+#: c3nav/editor/templates/editor/edit.html:10
+#: c3nav/editor/templates/editor/level.html:7
+#: c3nav/editor/templates/editor/space.html:7
+#, python-format
+msgid "Edit %(model_title)s"
+msgstr "%(model_title)s bearbeiten"
+
+#: c3nav/editor/templates/editor/edit.html:14
+#: c3nav/editor/templates/editor/level.html:13
+#, python-format
+msgid "on top of %(on_top_of_level_title)s"
+msgstr "über %(on_top_of_level_title)s"
+
+#: c3nav/editor/templates/editor/fragment_changesets.html:9
+msgid "(no title)"
+msgstr "(kein Titel)"
+
+#: c3nav/editor/templates/editor/fragment_changesets.html:10
+#: c3nav/editor/templates/editor/list.html:27
msgid "Details"
msgstr "Details"
-#: c3nav/access/templates/access/users.html:37
-#: c3nav/access/templates/access/users.html:39
-msgid "previous"
-msgstr "vorherige"
+#: c3nav/editor/templates/editor/fragment_modal_close.html:4
+msgid "close dialog"
+msgstr "Dialog schließen"
-#: c3nav/access/templates/access/users.html:43
+#: c3nav/editor/templates/editor/fragment_nav.html:18
+msgid "Log out"
+msgstr "Abmelden"
+
+#: c3nav/editor/templates/editor/fragment_nav.html:20
+#: c3nav/editor/templates/editor/login.html:5
+#: c3nav/editor/templates/editor/login.html:13
+msgid "Log in"
+msgstr "Anmelden"
+
+#: c3nav/editor/templates/editor/index.html:6
+#: c3nav/editor/templates/editor/index.html:10
+#: c3nav/editor/templates/editor/level.html:6 c3nav/mapdata/models/level.py:22
+msgid "Level"
+msgstr "Etage"
+
+#: c3nav/editor/templates/editor/level.html:19
+#: c3nav/editor/templates/editor/space.html:11 c3nav/editor/views/edit.py:300
+msgid "back to overview"
+msgstr "zurück zur Übersicht"
+
+#: c3nav/editor/templates/editor/level.html:21
+msgid "back to parent level"
+msgstr "zurück zur übergeordneten Etage"
+
+#: c3nav/editor/templates/editor/level.html:36
+msgid "Levels on top"
+msgstr "Etagen oberhalb"
+
+#: c3nav/editor/templates/editor/list.html:15
#, python-format
-msgid "Page %(number)s of %(total)s"
-msgstr "Seite %(number)s von %(total)s"
+msgid "on level %(level_title)s"
+msgstr "in der Etage %(level_title)s"
-#: c3nav/access/templates/access/users.html:47
-#: c3nav/access/templates/access/users.html:49
-msgid "next"
-msgstr "nächste"
+#: c3nav/editor/templates/editor/list.html:20
+#, python-format
+msgid "in space %(space_title)s"
+msgstr "im Raum %(space_title)s"
-#: c3nav/access/templates/access/users.html:57
-msgid "Add new access user"
-msgstr "Neuen Zugangsnutzer erstellen"
+#: c3nav/editor/templates/editor/map.html:7
+msgid "Without Javascript"
+msgstr "Ohne Javascript"
-#: c3nav/access/templates/access/users.html:63
-msgid "Add new User"
-msgstr "Neuen Nutzer erstellen"
+#: c3nav/editor/templates/editor/map.html:14
+msgid "Show map"
+msgstr "Karte zeigen"
-#: c3nav/editor/forms.py:94
-msgid "Please select at least two levels."
-msgstr "Bitte wähle mindestens zwei Etagen."
+#: c3nav/editor/templates/editor/map.html:15
+msgid "Show details"
+msgstr "Details anzeigen"
-#: c3nav/editor/forms.py:104
-msgid "You have to select a title in at least one language."
-msgstr "Du musst einen Titel für mindestens eine Sprache wählen."
+#: c3nav/editor/templates/editor/space.html:6
+#: c3nav/mapdata/models/geometry/level.py:62
+msgid "Space"
+msgstr "Raum"
-#: c3nav/editor/hosters/base.py:90
-msgid "Internal error."
-msgstr "Interner Fehler."
+#: c3nav/editor/templates/editor/user.html:10
+msgid "That's you!"
+msgstr "Das bist du!"
+
+#: c3nav/editor/templates/editor/user.html:15
+#, python-format
+msgid ""
+"Your active change set is %(changeset_title)s"
+"a>."
+msgstr ""
+"Dein aktives Änderungsset ist "
+"%(changeset_title)s."
+
+#: c3nav/editor/templates/editor/user.html:17
+#, python-format
+msgid ""
+"Your active change set is #%(changeset_id)s "
+"(untitled)."
+msgstr ""
+"Dein aktives Änderungsset ist Nr. "
+"%(changeset_id)s (kein Titel)."
+
+#: c3nav/editor/templates/editor/user.html:19
+msgid "Deactivate it if you want to create a new one."
+msgstr "Deaktiviere es wenn du ein neues erstellen möchtest."
+
+#: c3nav/editor/templates/editor/user.html:23
+msgid "Deactivate change set"
+msgstr "Änderungsset deaktivieren"
+
+#: c3nav/editor/templates/editor/user.html:28
+msgid "Direct editing is activated."
+msgstr "Direktes Bearbeiten ist aktiviert."
+
+#: c3nav/editor/templates/editor/user.html:29
+msgid "Everything you do will be applied immediately."
+msgstr "Alles was tu tust wird sofort angewendet."
+
+#: c3nav/editor/templates/editor/user.html:33
+msgid "Deactivate direct editing"
+msgstr "Direktes Bearbeiten deaktivieren"
+
+#: c3nav/editor/templates/editor/user.html:37
+msgid "You have currently no active change set."
+msgstr "Du hast aktuell kein aktives Änderungsset."
+
+#: c3nav/editor/templates/editor/user.html:38
+msgid "Just edit something to create one."
+msgstr "Bearbeite etwas um eins zu erstellen."
+
+#: c3nav/editor/templates/editor/user.html:43
+msgid "Activate direct editing"
+msgstr "Direktes Bearbeiten aktivieren"
+
+#: c3nav/editor/templates/editor/user.html:49
+msgid "Recent change sets"
+msgstr "Aktuelle Änderungssets"
+
+#: c3nav/editor/views/changes.py:49
+msgid "Object has been successfully restored."
+msgstr "Objekt wurde erfolgreich wiederhergestellt."
+
+#: c3nav/editor/views/changes.py:51
+msgid "You cannot restore this object, because it depends on a deleted object."
+msgstr ""
+"Du kannst dieses Objekt nicht wiederherstellen weil es ein anderes Objekt "
+"benötigt."
+
+#: c3nav/editor/views/changes.py:55
+msgid "You can not edit changes on this change set."
+msgstr "Du kannst keine Änderungen dieses Änderungssets bearbeiten."
+
+#: c3nav/editor/views/changes.py:63
+msgid "You activated this change set."
+msgstr "Du hast dieses Änderungsset aktiviert."
+
+#: c3nav/editor/views/changes.py:65
+msgid "You can not activate this change set."
+msgstr "Du kannst dieses Änderungsset nicht aktivieren."
+
+#: c3nav/editor/views/changes.py:71
+msgid "You need to log in to propose changes."
+msgstr "Du musst dich anmelden um Änderungen vorzuschlagen."
+
+#: c3nav/editor/views/changes.py:76
+msgid "You need to add a title an a description to propose this change set."
+msgstr ""
+"Du musst einen Titel und eine Bescreibung hinzufügen, um dieses Änderungsset "
+"vorzuschlagen."
+
+#: c3nav/editor/views/changes.py:81
+msgid "You proposed your changes."
+msgstr "Du hast deine Änderungen vorgeschlagen."
+
+#: c3nav/editor/views/changes.py:83
+msgid "You cannot propose this change set."
+msgstr "Du kannst dieses Änderungsset nicht vorschlagen."
+
+#: c3nav/editor/views/changes.py:91
+msgid "You unproposed your changes."
+msgstr "Du hast deinen Änderungsvorschlag zurückgenommen."
+
+#: c3nav/editor/views/changes.py:93
+msgid "You cannot unpropose this change set."
+msgstr "Du kannst diesen Änderungsvorschlag nicht zurücknehmen."
+
+#: c3nav/editor/views/changes.py:101
+msgid "You are not reviewing these changes."
+msgstr "Du überprüfst diese Änderungen aktuell nicht."
+
+#: c3nav/editor/views/changes.py:103
+msgid "You cannot review these changes."
+msgstr "Du kannst diese Änderungen nicht überprüfen."
+
+#: c3nav/editor/views/changes.py:110
+msgid "You cannot reject these changes."
+msgstr "Du kannst diese Änderungen nicht ablehnen."
+
+#: c3nav/editor/views/changes.py:117
+msgid "You rejected these changes."
+msgstr "Du hast diese Änderungen abgelehnt."
+
+#: c3nav/editor/views/changes.py:130
+msgid "You cannot unreject these changes."
+msgstr "Du kannst diese Änderungsablehnung nicht zurücknehmen."
+
+#: c3nav/editor/views/changes.py:134
+msgid "You unrejected these changes."
+msgstr "Du hast die Änderungsablehnung zurückgenommen."
+
+#: c3nav/editor/views/changes.py:141
+msgid "You cannot accept and apply these changes."
+msgstr "Du kannst diese Änderungen nicht akzeptieren und anwenden."
+
+#: c3nav/editor/views/changes.py:146
+msgid "You accepted and applied these changes."
+msgstr "Du hast diese Änderungen akzeptiert und angewendet."
+
+#: c3nav/editor/views/changes.py:154
+msgid "You cannot delete this change set."
+msgstr "Du kannst dieses Änderungsset nicht löschen."
+
+#: c3nav/editor/views/changes.py:158
+msgid "You deleted this change set."
+msgstr "Du hast dieses Änderungsset gelöscht."
+
+#: c3nav/editor/views/changes.py:216
+#, python-brace-format
+msgid "{model} #{id}"
+msgstr "{model} Nr. {id}"
+
+#: c3nav/editor/views/changes.py:268
+msgid "edited geometry"
+msgstr "Geometrie bearbeitet"
+
+#: c3nav/editor/views/changes.py:274
+#, python-brace-format
+msgid "Title ({lang})"
+msgstr "Titel ({lang})"
+
+#: c3nav/editor/views/changes.py:302
+#, python-brace-format
+msgid "remove {field_title}"
+msgstr "{field_title} entfernt"
+
+#: c3nav/editor/views/changes.py:330 c3nav/editor/views/changes.py:337
+msgid "Redirect slugs"
+msgstr "Umleitungs-Slugs"
+
+#: c3nav/editor/views/changes.py:345
+msgid "deleted"
+msgstr "gelöscht"
+
+#: c3nav/editor/views/changes.py:365
+msgid "You cannot edit this change set."
+msgstr "Du kannst dieses Änderungsset nicht bearbeiten."
+
+#: c3nav/editor/views/edit.py:183
+msgid ""
+"You can not delete this object because other objects still depend on it."
+msgstr ""
+"Du kannst dieses Objekt nicht löschen weil andere Objekte sich darauf "
+"beziehen."
+
+#: c3nav/editor/views/edit.py:191 c3nav/editor/views/edit.py:239
+msgid "You can not edit changes on this changeset."
+msgstr "Du kannst keine Änderungen dieses Änderungssets bearbeiten."
+
+#: c3nav/editor/views/edit.py:193
+msgid "Object was successfully deleted."
+msgstr "Objekt wurde erfolgreich gelöscht."
+
+#: c3nav/editor/views/edit.py:236
+msgid "Object was successfully saved."
+msgstr "Objekt wurde erfolgreich gespeichert."
+
+#: c3nav/editor/views/edit.py:281
+msgid "back to level"
+msgstr "zurück zur Etage"
+
+#: c3nav/editor/views/edit.py:294
+msgid "back to space"
+msgstr "zurück zum Raum"
+
+#: c3nav/editor/views/users.py:20
+msgid "You deactivated your current changeset."
+msgstr "Du hast dein aktuelles Änderungsset deaktiviert."
+
+#: c3nav/editor/views/users.py:26
+msgid "You activated direct editing."
+msgstr "Du hast direktes Bearbeiten aktiviert."
+
+#: c3nav/editor/views/users.py:30
+msgid "You deactivated direct editing."
+msgstr "Du hast direktes Bearbeiten deaktiviert."
+
+#: c3nav/mapdata/api.py:35 c3nav/mapdata/api.py:43
+#, python-format
+msgid "%s is not an integer."
+msgstr "%s ist keine ganze Zahl."
+
+#: c3nav/mapdata/api.py:39 c3nav/mapdata/api.py:58
+msgid "level not found."
+msgstr "Etage nicht gefunden."
+
+#: c3nav/mapdata/api.py:47
+msgid "space not found."
+msgstr "Raum nicht gefunden."
+
+#: c3nav/mapdata/api.py:54
+#, python-format
+msgid "%s is not null or an integer."
+msgstr "%s ist weder null noch eine ganze Zahl."
#: c3nav/mapdata/fields.py:15
msgid "please enter a newline seperated lowercase list of BSSIDs"
msgstr "bitte gib Zeile für Zeile klein geschriebene BSSIDs ein"
-#: c3nav/mapdata/inclusion.py:29
-msgid "non-public areas"
-msgstr "nichtöffentliche Bereiche"
+#: c3nav/mapdata/models/base.py:36
+msgid "bottom coordinate"
+msgstr "untere koordinate"
-#: c3nav/mapdata/inclusion.py:30
-msgid "public areas"
-msgstr "öffentliche Bereiche"
+#: c3nav/mapdata/models/base.py:37
+msgid "left coordinate"
+msgstr "linke koordinate"
-#: c3nav/mapdata/models/base.py:23
-msgid "map package"
-msgstr "Kartenpaket"
+#: c3nav/mapdata/models/base.py:38
+msgid "top coordinate"
+msgstr "obere koordinate"
-#: c3nav/mapdata/models/collections.py:11
-msgid "Elevator"
-msgstr "Aufzug"
+#: c3nav/mapdata/models/base.py:39
+msgid "right coordinate"
+msgstr "rechte koordinate"
-#: c3nav/mapdata/models/collections.py:12
-#: c3nav/site/templates/site/main.html:36
-msgid "Elevators"
-msgstr "Aufzüge"
-
-#: c3nav/mapdata/models/geometry.py:45 c3nav/mapdata/serializers/fields.py:14
-#: c3nav/mapdata/serializers/fields.py:26
-msgid "Invalid GeoJSON."
-msgstr "Invalides GeoJSON."
-
-#: c3nav/mapdata/models/geometry.py:79
+#: c3nav/mapdata/models/geometry/level.py:12
msgid "level"
msgstr "Etage"
-#: c3nav/mapdata/models/geometry.py:142
+#: c3nav/mapdata/models/geometry/level.py:42
msgid "Building"
msgstr "Gebäude"
-#: c3nav/mapdata/models/geometry.py:143
+#: c3nav/mapdata/models/geometry/level.py:43
msgid "Buildings"
msgstr "Gebäude"
-#: c3nav/mapdata/models/geometry.py:154 c3nav/mapdata/models/locations.py:173
-msgid "Room"
-msgstr "Raum"
+#: c3nav/mapdata/models/geometry/level.py:52
+msgid "normal"
+msgstr "normal"
-#: c3nav/mapdata/models/geometry.py:155
-msgid "Rooms"
-msgstr "Räume"
-
-#: c3nav/mapdata/models/geometry.py:166
-msgid "Outside Area"
-msgstr "Außenbereich"
-
-#: c3nav/mapdata/models/geometry.py:167
-msgid "Outside Areas"
-msgstr "Außenbereiche"
-
-#: c3nav/mapdata/models/geometry.py:178
-msgid "Stuffed Area"
-msgstr "Vollgestopfter Bereich"
-
-#: c3nav/mapdata/models/geometry.py:179
-msgid "Stuffed Areas"
-msgstr "Vollgestopfte Bereiche"
-
-#: c3nav/mapdata/models/geometry.py:188
-msgid "up"
-msgstr "hoch"
-
-#: c3nav/mapdata/models/geometry.py:189
-msgid "down"
-msgstr "runter"
-
-#: c3nav/mapdata/models/geometry.py:191
-msgid "direction"
-msgstr "Richtung"
-
-#: c3nav/mapdata/models/geometry.py:196
-msgid "Escalator"
-msgstr "Rolltreppe"
-
-#: c3nav/mapdata/models/geometry.py:197 c3nav/site/templates/site/main.html:32
-msgid "Escalators"
-msgstr "Rolltreppen"
-
-#: c3nav/mapdata/models/geometry.py:226
-msgid "Escalator Slope"
-msgstr "Rolltreppensteigung"
-
-#: c3nav/mapdata/models/geometry.py:227
-msgid "Escalator Slopes"
-msgstr "Rolltreppensteigungen"
-
-#: c3nav/mapdata/models/geometry.py:236
-msgid "Stair"
-msgstr "Stufe"
-
-#: c3nav/mapdata/models/geometry.py:237 c3nav/site/templates/site/main.html:28
-msgid "Stairs"
+#: c3nav/mapdata/models/geometry/level.py:53
+msgid "stairs"
msgstr "Stufen"
-#: c3nav/mapdata/models/geometry.py:246
-msgid "Oneway"
-msgstr "Einbahnweg"
+#: c3nav/mapdata/models/geometry/level.py:54
+msgid "escalator"
+msgstr "Rolltreppe"
-#: c3nav/mapdata/models/geometry.py:247
-msgid "Oneways"
-msgstr "Einbahnwege"
+#: c3nav/mapdata/models/geometry/level.py:55
+msgid "elevator"
+msgstr "Aufzug"
-#: c3nav/mapdata/models/geometry.py:256
-msgid "crop to other level"
-msgstr "Auf andere Etage zuschneiden"
+#: c3nav/mapdata/models/geometry/level.py:58
+msgid "category"
+msgstr "Kategorie"
-#: c3nav/mapdata/models/geometry.py:261
-msgid "Obstacle"
-msgstr "Hindernis"
+#: c3nav/mapdata/models/geometry/level.py:59
+msgid "only outside of building"
+msgstr "nur außerhalb von Gebäuden"
-#: c3nav/mapdata/models/geometry.py:262
-msgid "Obstacles"
-msgstr "Hindernisse"
+#: c3nav/mapdata/models/geometry/level.py:63
+msgid "Spaces"
+msgstr "Räume"
-#: c3nav/mapdata/models/geometry.py:291
-msgid "obstacle width"
-msgstr "Hindernisbreite"
-
-#: c3nav/mapdata/models/geometry.py:296
-msgid "Line Obstacle"
-msgstr "Linienhindernis"
-
-#: c3nav/mapdata/models/geometry.py:297
-msgid "Line Obstacles"
-msgstr "Linienhindernisse"
-
-#: c3nav/mapdata/models/geometry.py:334
-msgid "levels"
-msgstr "Etagen"
-
-#: c3nav/mapdata/models/geometry.py:337
-msgid "Level Connector"
-msgstr "Etagenverbinder"
-
-#: c3nav/mapdata/models/geometry.py:338
-msgid "Level Connectors"
-msgstr "Etagenverbinder"
-
-#: c3nav/mapdata/models/geometry.py:375
+#: c3nav/mapdata/models/geometry/level.py:91
msgid "Door"
msgstr "Tür"
-#: c3nav/mapdata/models/geometry.py:376
+#: c3nav/mapdata/models/geometry/level.py:92
msgid "Doors"
msgstr "Türen"
-#: c3nav/mapdata/models/geometry.py:387
+#: c3nav/mapdata/models/geometry/space.py:16
+msgid "space"
+msgstr "Raum"
+
+#: c3nav/mapdata/models/geometry/space.py:43
+msgid "Column"
+msgstr "Säule"
+
+#: c3nav/mapdata/models/geometry/space.py:44
+msgid "Columns"
+msgstr "Säulen"
+
+#: c3nav/mapdata/models/geometry/space.py:53
+msgid "stuffed area"
+msgstr "Vollgestopfter Bereich"
+
+#: c3nav/mapdata/models/geometry/space.py:56
+msgid "Area"
+msgstr "Bereich"
+
+#: c3nav/mapdata/models/geometry/space.py:57
+msgid "Areas"
+msgstr "Bereiche"
+
+#: c3nav/mapdata/models/geometry/space.py:79
+msgid "Stair"
+msgstr "Stufe"
+
+#: c3nav/mapdata/models/geometry/space.py:80
+#: c3nav/site/templates/site/main.html:28
+msgid "Stairs"
+msgstr "Stufen"
+
+#: c3nav/mapdata/models/geometry/space.py:112
+msgid "Obstacle"
+msgstr "Hindernis"
+
+#: c3nav/mapdata/models/geometry/space.py:113
+msgid "Obstacles"
+msgstr "Hindernisse"
+
+#: c3nav/mapdata/models/geometry/space.py:122
+msgid "obstacle width"
+msgstr "Hindernisbreite"
+
+#: c3nav/mapdata/models/geometry/space.py:125
+msgid "Line Obstacle"
+msgstr "Linienhindernis"
+
+#: c3nav/mapdata/models/geometry/space.py:126
+msgid "Line Obstacles"
+msgstr "Linienhindernisse"
+
+#: c3nav/mapdata/models/geometry/space.py:160
+msgid "Point of Interest"
+msgstr "Ort von Interesse"
+
+#: c3nav/mapdata/models/geometry/space.py:161
+msgid "Points of Interest"
+msgstr "Orte von Interesse"
+
+#: c3nav/mapdata/models/geometry/space.py:182
msgid "Hole"
msgstr "Loch"
-#: c3nav/mapdata/models/geometry.py:388
+#: c3nav/mapdata/models/geometry/space.py:183
msgid "Holes"
msgstr "Löcher"
-#: c3nav/mapdata/models/geometry.py:397
-msgid "Button label"
-msgstr "Knopfbeschriftung"
-
-#: c3nav/mapdata/models/geometry.py:398
-msgid "override level altitude"
-msgstr "Bodenhöhe der Etage überschreiben"
-
-#: c3nav/mapdata/models/geometry.py:404
-msgid "Elevator Level"
-msgstr "Aufzugetage"
-
-#: c3nav/mapdata/models/geometry.py:405
-msgid "Elevator Levels"
-msgstr "Aufzugetagen"
-
-#: c3nav/mapdata/models/level.py:15
-msgid "level name"
-msgstr "Etagenname"
-
-#: c3nav/mapdata/models/level.py:16
-msgid "Usually just an integer (e.g. -1, 0, 1, 2)"
-msgstr "Üblicherweise eine Zahl (z.b. -1, 0, 1, 2)"
-
#: c3nav/mapdata/models/level.py:17
msgid "level altitude"
msgstr "Bodenhöhe"
-#: c3nav/mapdata/models/level.py:18
-msgid "intermediate level"
-msgstr "Zwischenetage"
+#: c3nav/mapdata/models/level.py:19
+msgid "on top of"
+msgstr "über"
-#: c3nav/mapdata/models/level.py:21 c3nav/mapdata/models/locations.py:171
-msgid "Level"
-msgstr "Etage"
-
-#: c3nav/mapdata/models/level.py:22
+#: c3nav/mapdata/models/level.py:23
msgid "Levels"
msgstr "Etagen"
-#: c3nav/mapdata/models/locations.py:97 c3nav/mapdata/models/locations.py:189
+#: c3nav/mapdata/models/locations.py:31
+msgid "Slug"
+msgstr "Slug"
+
+#: c3nav/mapdata/models/locations.py:50
+msgid "Location with Slug"
+msgstr "Ort mit Slug"
+
+#: c3nav/mapdata/models/locations.py:51
+msgid "Lucation with Slug"
+msgstr "Ort mit Slug"
+
+#: c3nav/mapdata/models/locations.py:57
msgid "can be searched"
msgstr "zur Suche zugelassen"
-#: c3nav/mapdata/models/locations.py:98 c3nav/mapdata/models/locations.py:190
+#: c3nav/mapdata/models/locations.py:58
msgid "can be used to describe a position"
msgstr "can zum beschreiben einer Position genutzt werden"
-#: c3nav/mapdata/models/locations.py:99 c3nav/mapdata/models/locations.py:191
+#: c3nav/mapdata/models/locations.py:59
msgid "background color"
msgstr "Hintergrundfarbe"
-#: c3nav/mapdata/models/locations.py:100 c3nav/mapdata/models/locations.py:192
-msgid "if set, has to be a valid color for svg images"
-msgstr "muss, falls gesetzt, eine gültige SVG Farbe sein"
+#: c3nav/mapdata/models/locations.py:60
+msgid "public"
+msgstr "öffentlich"
-#: c3nav/mapdata/models/locations.py:101
-msgid "is a compiled room"
-msgstr "zusammengesetzter Raum"
-
-#: c3nav/mapdata/models/locations.py:104
-msgid "Location Group"
-msgstr "Ortgruppe"
-
-#: c3nav/mapdata/models/locations.py:105 c3nav/mapdata/models/locations.py:187
+#: c3nav/mapdata/models/locations.py:147 c3nav/mapdata/models/locations.py:165
msgid "Location Groups"
msgstr "Ortgruppen"
-#: c3nav/mapdata/models/locations.py:141
-#, python-format
-msgid "%d location"
-msgid_plural "%d locations"
-msgstr[0] "%d Ort"
-msgstr[1] "%d Orte"
+#: c3nav/mapdata/models/locations.py:160
+msgid "is a compiled room"
+msgstr "zusammengesetzter Raum"
-#: c3nav/mapdata/models/locations.py:172
-msgid "General Area"
-msgstr "Allgemeiner Bereich"
+#: c3nav/mapdata/models/locations.py:161
+msgid "is a compiled area"
+msgstr "zusammengesetzter Raum"
-#: c3nav/mapdata/models/locations.py:174
-msgid "Room Segment"
-msgstr "Raumteil"
+#: c3nav/mapdata/models/locations.py:164
+msgid "Location Group"
+msgstr "Ortgruppe"
-#: c3nav/mapdata/models/locations.py:175
-msgid "Point of Interest"
-msgstr "Ort von Interesse"
-
-#: c3nav/mapdata/models/locations.py:179
-msgid "Default, include if map package is unlocked"
-msgstr "Standard: einbeziehen wenn das Kartenpaket zugänglich ist"
+#: c3nav/mapdata/models/locations.py:178
+msgid "search"
+msgstr "suchen"
#: c3nav/mapdata/models/locations.py:180
-msgid "Included, but allow excluding"
-msgstr "Einbeziehen, aber Vermeiden erlauben"
-
-#: c3nav/mapdata/models/locations.py:181
-msgid "Avoided, but allow including"
-msgstr "Vermeiden, aber Einbeziehen erlauben"
+msgid "describe"
+msgstr "beschreiben"
#: c3nav/mapdata/models/locations.py:182
-msgid "Excluded, needs permission to include"
-msgstr "Vermeiden, Erlaubnis zum Einbeziehen notwendig"
+msgid "color"
+msgstr "Farbe"
-#: c3nav/mapdata/models/locations.py:185
-msgid "Location Type"
-msgstr "Orttyp"
+#: c3nav/mapdata/models/locations.py:184
+msgid "internal"
+msgstr "intern"
-#: c3nav/mapdata/models/locations.py:194
-msgid "Routing Inclusion"
-msgstr "Routeneinbeziehung"
+#: c3nav/mapdata/models/locations.py:186
+msgid "comp. room"
+msgstr "zusammengesetzter Raum"
-#: c3nav/mapdata/models/locations.py:195
-msgid "BSSIDs"
-msgstr "BSSIDs"
+#: c3nav/mapdata/models/locations.py:188
+msgid "comp. area"
+msgstr "zusammengesetzter Bereich"
-#: c3nav/mapdata/models/locations.py:200
-msgid "Area Location"
-msgstr "Ortbereich"
+#: c3nav/mapdata/models/locations.py:193
+msgid "target"
+msgstr "Ziel"
-#: c3nav/mapdata/models/locations.py:201
-msgid "Area Locations"
-msgstr "Ortbereiche"
-
-#: c3nav/mapdata/models/locations.py:324
-msgid "Unreachable Coordinates"
-msgstr "Unerreichbare Koordinaten"
-
-#: c3nav/mapdata/models/locations.py:330
-msgid "Coordinates"
-msgstr "Koordinaten"
-
-#: c3nav/mapdata/models/locations.py:334
-#, python-format
-msgid "Coordinates in %(location)s"
-msgstr "Koordinaten innerhalb %(location)s"
-
-#: c3nav/mapdata/models/locations.py:336
-#, python-format
-msgid "Coordinates near %(location)s"
-msgstr "Koordinaten in der Nähe von %(location)s"
-
-#: c3nav/mapdata/models/package.py:14
-msgid "package identifier"
-msgstr "Paket ID"
-
-#: c3nav/mapdata/models/package.py:15
-msgid "e.g. de.c3nav.33c3.base"
-msgstr "z.b. de.c3nav.33c3.base"
-
-#: c3nav/mapdata/models/package.py:17
-msgid "URL to the home git repository"
-msgstr "URL des originalen git repos"
-
-#: c3nav/mapdata/models/package.py:18
-msgid "current commit id"
-msgstr "aktuelle commit id"
-
-#: c3nav/mapdata/models/package.py:20 c3nav/mapdata/models/source.py:11
-msgid "bottom coordinate"
-msgstr "untere koordinate"
-
-#: c3nav/mapdata/models/package.py:21 c3nav/mapdata/models/source.py:12
-msgid "left coordinate"
-msgstr "linke koordinate"
-
-#: c3nav/mapdata/models/package.py:22 c3nav/mapdata/models/source.py:13
-msgid "top coordinate"
-msgstr "obere koordinate"
-
-#: c3nav/mapdata/models/package.py:23 c3nav/mapdata/models/source.py:14
-msgid "right coordinate"
-msgstr "rechte koordinate"
-
-#: c3nav/mapdata/models/package.py:25
-msgid "folder name"
-msgstr "Verzeichnisname"
-
-#: c3nav/mapdata/models/package.py:28
-msgid "Map Package"
-msgstr "Kartenpaket"
-
-#: c3nav/mapdata/models/package.py:29
-msgid "Map Packages"
-msgstr "Kartenpakete"
+#: c3nav/mapdata/models/source.py:14
+msgid "Name"
+msgstr "Name"
#: c3nav/mapdata/models/source.py:17
msgid "Source"
@@ -664,76 +922,84 @@ msgstr "Vorlage"
msgid "Sources"
msgstr "Vorlagen"
-#: c3nav/routing/route.py:64 c3nav/routing/route.py:66
+#: c3nav/mapdata/models/update.py:20
+msgid "Map update"
+msgstr "Kartenupdate"
+
+#: c3nav/mapdata/models/update.py:21
+msgid "Map updates"
+msgstr "Kartenupdates"
+
+#: c3nav/routing/route.py:69 c3nav/routing/route.py:71
msgid "Unknown Location"
msgstr "Unbekannter Ort"
-#: c3nav/routing/route.py:111
+#: c3nav/routing/route.py:116
msgid "Go up the stairs."
msgstr "Gehe die Treppe nach oben."
-#: c3nav/routing/route.py:112
+#: c3nav/routing/route.py:117
msgid "Go down the stairs."
msgstr "Gehe die Treppe nach unten."
-#: c3nav/routing/route.py:113
+#: c3nav/routing/route.py:118
msgid "Take the escalator upwards."
msgstr "Fahre die Rolltreppe hoch."
-#: c3nav/routing/route.py:114
+#: c3nav/routing/route.py:119
msgid "Take the escalator downwards."
msgstr "Fahre die Rolltreppe runter."
-#: c3nav/routing/route.py:115
+#: c3nav/routing/route.py:120
msgid "Take the elevator upwards."
msgstr "Fahre mit dem Aufzug nach oben."
-#: c3nav/routing/route.py:116
+#: c3nav/routing/route.py:121
msgid "Take the elevator downwards."
msgstr "Fahr mit den Aufzug nach unten."
-#: c3nav/routing/route.py:142
+#: c3nav/routing/route.py:147
msgid "Go through the door on the left."
msgstr "Gehe links durch die Tür."
-#: c3nav/routing/route.py:143
+#: c3nav/routing/route.py:148
msgid "Go through the door on the right."
msgstr "Gehe rechts durch die Tür."
-#: c3nav/routing/route.py:144
+#: c3nav/routing/route.py:149
msgid "Go through the door."
msgstr "Gehe durch die Tür."
-#: c3nav/routing/route.py:173
+#: c3nav/routing/route.py:178
#, python-format
msgid "Turn light to the left and continue for %(d).1f meters."
msgstr "Gehe schräg nach links %(d).1f m weiter."
-#: c3nav/routing/route.py:174
+#: c3nav/routing/route.py:179
#, python-format
msgid "Turn light to the right and continue for %(d).1f meters."
msgstr "Gehe schräg nach rechts %(d).1f m weiter."
-#: c3nav/routing/route.py:175
+#: c3nav/routing/route.py:180
#, python-format
msgid "Turn left and continue for %(d).1f meters."
msgstr "Gehe nach links %(d).1f m weiter."
-#: c3nav/routing/route.py:176
+#: c3nav/routing/route.py:181
#, python-format
msgid "Turn right and continue for %(d).1f meters."
msgstr "Gehe nach rechts %(d).1f m weiter."
-#: c3nav/routing/route.py:177
+#: c3nav/routing/route.py:182
#, python-format
msgid "Continue for %(d).1f meters."
msgstr "Gehe %(d).1f m weiter geradeaus."
-#: c3nav/settings.py:203
+#: c3nav/settings.py:212
msgid "English"
msgstr "Englisch"
-#: c3nav/settings.py:204
+#: c3nav/settings.py:213
msgid "German"
msgstr "Deutsch"
@@ -849,6 +1115,14 @@ msgstr "Start"
msgid "Destination"
msgstr "Ziel"
+#: c3nav/site/templates/site/main.html:32
+msgid "Escalators"
+msgstr "Rolltreppen"
+
+#: c3nav/site/templates/site/main.html:36
+msgid "Elevators"
+msgstr "Aufzüge"
+
#: c3nav/site/templates/site/main.html:40
msgid "Include / Avoid areas"
msgstr "Bereiche einbeziehen / vermeiden"
@@ -912,6 +1186,320 @@ msgstr "Teilen"
msgid "shortcut"
msgstr "Verknüpfung"
+#~ msgid "%(model_title_plural)s"
+#~ msgstr "%(model_title_plural)s"
+
+#~ msgid "Permissions"
+#~ msgstr "Zugänge"
+
+#~ msgid "Important dates"
+#~ msgstr "Wichtige Daten"
+
+#~ msgid "Full Permissions"
+#~ msgstr "Voller Zugang"
+
+#~ msgid "%(grouptitle)s (%(count)s nonpublic locations)"
+#~ msgstr "%(grouptitle)s (%(count)s nichtöffentliche Orte)"
+
+#~ msgid "can award permissions"
+#~ msgstr "kann Zugänge verteilen"
+
+#~ msgid "has access from"
+#~ msgstr "hat Zugang von"
+
+#~ msgid "has access until"
+#~ msgstr "hat Zugang bis"
+
+#~ msgid "Access Operator"
+#~ msgstr "Zugangsverwalter"
+
+#~ msgid "access name"
+#~ msgstr "Zugangsname"
+
+#~ msgid "Usually an URL to a profile somewhere"
+#~ msgstr "üblicherweise eine URL zu einem Profil irgendwo"
+
+#~ msgid "creation date"
+#~ msgstr "Erstellungsdatum"
+
+#~ msgid "Access User"
+#~ msgstr "Zugangsnutzer"
+
+#~ msgid "Access Users"
+#~ msgstr "Zugangsnutzer"
+
+#~ msgid "permissions"
+#~ msgstr "Zugänge"
+
+#~ msgid "is expired"
+#~ msgstr "abgelaufen"
+
+#~ msgid "activated"
+#~ msgstr "aktiviert"
+
+#~ msgid "Access Token"
+#~ msgstr "Zugangstoken"
+
+#~ msgid "Access Tokens"
+#~ msgstr "Zugangstoken"
+
+#~ msgid "access secret"
+#~ msgstr "Zugangsschlüssel"
+
+#~ msgid "Access Token Instance"
+#~ msgstr "Zugangstokeninstanz"
+
+#~ msgid "Access Token Instances"
+#~ msgstr "Zugangstokeninstanzen"
+
+#~ msgid "Your access token was installed on your device!"
+#~ msgstr "Der Zugangstoken wurde auf deinem Gerät aktiviert!"
+
+#~ msgid "Link to this token / in this QR code"
+#~ msgstr "Link zu diesem Token / in diesem QR Code"
+
+#~ msgid "Activate token on this device"
+#~ msgstr "Token auf diesem Gerät aktivieren!"
+
+#~ msgid ""
+#~ "This link QR Code / Link only works once. If you want access on multiple "
+#~ "devices, you need multiple tokens."
+#~ msgstr ""
+#~ "Dieser QR Code / link funktioniert nur einmal. Wenn du auf mehreren "
+#~ "Geräten zugang willst, brauchst du mehrere Token."
+
+#~ msgid "Users"
+#~ msgstr "Nutzer"
+
+#~ msgid "This is the non-public backend for creation of access tokens."
+#~ msgstr ""
+#~ "Das hier ist das nichtöffentliche Backend zum Erstellen von Zugangstokens."
+
+#~ msgid "Prove that you should have access"
+#~ msgstr "Beweise dass du Zugang haben solltest"
+
+#~ msgid "Prove access rights"
+#~ msgstr "Zugangsrechte beweisen"
+
+#~ msgid ""
+#~ "Please enter a valid authentication code for the hosters of the following "
+#~ "non-public map packages:"
+#~ msgstr ""
+#~ "Bitte gebe einen gültigen API Token für die Hoster der folgenden "
+#~ "nichtöffentlichen Kartenpakete an:"
+
+#~ msgid "Thanks – you get full access to the map!"
+#~ msgstr "Danke – du kriegst vollen Zugang zur Karte!"
+
+#~ msgid "All previous tokens have been invalidated."
+#~ msgstr "Alle bisherigen Token wurden deaktiviert."
+
+#~ msgid "Sorry."
+#~ msgstr "Sorry."
+
+#~ msgid "One or more access tokens were not correct."
+#~ msgstr "Ein oder mehrere Token waren ungültig."
+
+#~ msgid "You already have a valid access token."
+#~ msgstr "Du hast bereits einen gültigen Zugangstoken."
+
+#~ msgid "Invalidate previous token(s)."
+#~ msgstr "Bisherige token invalidieren."
+
+#~ msgid "Submit"
+#~ msgstr "Absenden"
+
+#~ msgid "Sorry, this service is currently not available."
+#~ msgstr "Sorry, dieses Feature is aktuell nicht verfügbar."
+
+#~ msgid "Add new access token"
+#~ msgstr "Neuen "
+
+#~ msgid "Add"
+#~ msgstr "Hinzufügen"
+
+#~ msgid "ID"
+#~ msgstr "ID"
+
+#~ msgid "Creation Date"
+#~ msgstr "Erstellungsdatum"
+
+#~ msgid "Expiration"
+#~ msgstr "Ablaufdatum"
+
+#~ msgid "Action"
+#~ msgstr "Aktion"
+
+#~ msgid "expired"
+#~ msgstr "abgelaufen"
+
+#~ msgid "never"
+#~ msgstr "nie"
+
+#~ msgid "Expire"
+#~ msgstr "Invalidieren"
+
+#~ msgid "Active Tokens"
+#~ msgstr "Aktive Token"
+
+#~ msgid "previous"
+#~ msgstr "vorherige"
+
+#~ msgid "Page %(number)s of %(total)s"
+#~ msgstr "Seite %(number)s von %(total)s"
+
+#~ msgid "next"
+#~ msgstr "nächste"
+
+#~ msgid "Add new access user"
+#~ msgstr "Neuen Zugangsnutzer erstellen"
+
+#~ msgid "Add new User"
+#~ msgstr "Neuen Nutzer erstellen"
+
+#~ msgid "Please select at least two levels."
+#~ msgstr "Bitte wähle mindestens zwei Etagen."
+
+#~ msgid "You have to select a title in at least one language."
+#~ msgstr "Du musst einen Titel für mindestens eine Sprache wählen."
+
+#~ msgid "non-public areas"
+#~ msgstr "nichtöffentliche Bereiche"
+
+#~ msgid "Invalid GeoJSON."
+#~ msgstr "Invalides GeoJSON."
+
+#~ msgid "Room"
+#~ msgstr "Raum"
+
+#~ msgid "Rooms"
+#~ msgstr "Räume"
+
+#~ msgid "Outside Area"
+#~ msgstr "Außenbereich"
+
+#~ msgid "Outside Areas"
+#~ msgstr "Außenbereiche"
+
+#~ msgid "Stuffed Areas"
+#~ msgstr "Vollgestopfte Bereiche"
+
+#~ msgid "up"
+#~ msgstr "hoch"
+
+#~ msgid "down"
+#~ msgstr "runter"
+
+#~ msgid "Escalator Slope"
+#~ msgstr "Rolltreppensteigung"
+
+#~ msgid "Escalator Slopes"
+#~ msgstr "Rolltreppensteigungen"
+
+#~ msgid "Oneway"
+#~ msgstr "Einbahnweg"
+
+#~ msgid "Oneways"
+#~ msgstr "Einbahnwege"
+
+#~ msgid "levels"
+#~ msgstr "Etagen"
+
+#~ msgid "Level Connectors"
+#~ msgstr "Etagenverbinder"
+
+#~ msgid "Button label"
+#~ msgstr "Knopfbeschriftung"
+
+#~ msgid "override level altitude"
+#~ msgstr "Bodenhöhe der Etage überschreiben"
+
+#~ msgid "Elevator Level"
+#~ msgstr "Aufzugetage"
+
+#~ msgid "Elevator Levels"
+#~ msgstr "Aufzugetagen"
+
+#~ msgid "level name"
+#~ msgstr "Etagenname"
+
+#~ msgid "Usually just an integer (e.g. -1, 0, 1, 2)"
+#~ msgstr "Üblicherweise eine Zahl (z.b. -1, 0, 1, 2)"
+
+#~ msgid "intermediate level"
+#~ msgstr "Zwischenetage"
+
+#~ msgid "if set, has to be a valid color for svg images"
+#~ msgstr "muss, falls gesetzt, eine gültige SVG Farbe sein"
+
+#~ msgid "%d location"
+#~ msgid_plural "%d locations"
+#~ msgstr[0] "%d Ort"
+#~ msgstr[1] "%d Orte"
+
+#~ msgid "General Area"
+#~ msgstr "Allgemeiner Bereich"
+
+#~ msgid "Room Segment"
+#~ msgstr "Raumteil"
+
+#~ msgid "Default, include if map package is unlocked"
+#~ msgstr "Standard: einbeziehen wenn das Kartenpaket zugänglich ist"
+
+#~ msgid "Included, but allow excluding"
+#~ msgstr "Einbeziehen, aber Vermeiden erlauben"
+
+#~ msgid "Avoided, but allow including"
+#~ msgstr "Vermeiden, aber Einbeziehen erlauben"
+
+#~ msgid "Excluded, needs permission to include"
+#~ msgstr "Vermeiden, Erlaubnis zum Einbeziehen notwendig"
+
+#~ msgid "Location Type"
+#~ msgstr "Orttyp"
+
+#~ msgid "Routing Inclusion"
+#~ msgstr "Routeneinbeziehung"
+
+#~ msgid "BSSIDs"
+#~ msgstr "BSSIDs"
+
+#~ msgid "Area Location"
+#~ msgstr "Ortbereich"
+
+#~ msgid "Area Locations"
+#~ msgstr "Ortbereiche"
+
+#~ msgid "Unreachable Coordinates"
+#~ msgstr "Unerreichbare Koordinaten"
+
+#~ msgid "Coordinates"
+#~ msgstr "Koordinaten"
+
+#~ msgid "Coordinates in %(location)s"
+#~ msgstr "Koordinaten innerhalb %(location)s"
+
+#~ msgid "Coordinates near %(location)s"
+#~ msgstr "Koordinaten in der Nähe von %(location)s"
+
+#~ msgid "package identifier"
+#~ msgstr "Paket ID"
+
+#~ msgid "e.g. de.c3nav.33c3.base"
+#~ msgstr "z.b. de.c3nav.33c3.base"
+
+#~ msgid "URL to the home git repository"
+#~ msgstr "URL des originalen git repos"
+
+#~ msgid "current commit id"
+#~ msgstr "aktuelle commit id"
+
+#~ msgid "folder name"
+#~ msgstr "Verzeichnisname"
+
+#~ msgid "Map Package"
+#~ msgstr "Kartenpaket"
+
#~ msgid "Access Tokens Instance"
#~ msgstr "Zugangtokeninstanzen"
diff --git a/src/c3nav/mapdata/fields.py b/src/c3nav/mapdata/fields.py
index 9235284a..6aca759d 100644
--- a/src/c3nav/mapdata/fields.py
+++ b/src/c3nav/mapdata/fields.py
@@ -30,7 +30,7 @@ class GeometryField(models.TextField):
if geomtype == 'polyline':
geomtype = 'linestring'
if geomtype not in (None, 'polygon', 'linestring', 'point'):
- raise ValueError(_('GeometryField.geomtype has to be None, "polygon", "linestring", "point"'))
+ raise ValueError('GeometryField.geomtype has to be None, "polygon", "linestring", "point"')
self.geomtype = geomtype
super().__init__(default=default)
@@ -54,11 +54,11 @@ class GeometryField(models.TextField):
if value is None:
return None
elif self.geomtype == 'polygon' and not isinstance(value, Polygon):
- raise TypeError(_('Expected Polygon instance, got %s instead.') % repr(value))
+ raise TypeError('Expected Polygon instance, got %s instead.' % repr(value))
elif self.geomtype == 'linestring' and not isinstance(value, LineString):
- raise TypeError(_('Expected LineString instance, got %s instead.') % repr(value))
+ raise TypeError('Expected LineString instance, got %s instead.' % repr(value))
elif self.geomtype == 'point' and not isinstance(value, Point):
- raise TypeError(_('Expected Point instance, got %s instead.') % repr(value))
+ raise TypeError('Expected Point instance, got %s instead.' % repr(value))
return json.dumps(format_geojson(mapping(value)))