diff --git a/AKModel/migrations/0006_translation_akmodel.py b/AKModel/migrations/0006_translation_akmodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..a4fe749bfe65fe494c49b8643492558cd1e7739f
--- /dev/null
+++ b/AKModel/migrations/0006_translation_akmodel.py
@@ -0,0 +1,121 @@
+# Generated by Django 2.2.6 on 2019-10-12 12:34
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('AKModel', '0005_ak_slot'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='event',
+            options={'ordering': ['name'], 'verbose_name': 'Event', 'verbose_name_plural': 'Events'},
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='event',
+            field=models.ForeignKey(help_text='Associated event', on_delete=django.db.models.deletion.CASCADE,
+                                    to='AKModel.Event', verbose_name='Event'),
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='interest',
+            field=models.IntegerField(default=-1, help_text='Expected number of people', verbose_name='Interest'),
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='reso',
+            field=models.BooleanField(default=False, help_text='Intends to submit a resolution',
+                                      verbose_name='Resolution Intention'),
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='short_name',
+            field=models.CharField(blank=True, help_text='Name displayed in the schedule', max_length=64, unique=True,
+                                   verbose_name='Short Name'),
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='tags',
+            field=models.ManyToManyField(blank=True, help_text='Tags provided by owners', to='AKModel.AKTag',
+                                         verbose_name='Tags'),
+        ),
+        migrations.AlterField(
+            model_name='ak',
+            name='track',
+            field=models.ForeignKey(help_text='Track the AK belongs to', null=True,
+                                    on_delete=django.db.models.deletion.SET_NULL, to='AKModel.AKTrack',
+                                    verbose_name='Track'),
+        ),
+        migrations.AlterField(
+            model_name='akowner',
+            name='email',
+            field=models.EmailField(blank=True, help_text='Contact mail', max_length=128,
+                                    verbose_name='E-Mail Address'),
+        ),
+        migrations.AlterField(
+            model_name='akowner',
+            name='event',
+            field=models.ForeignKey(help_text='Associated event', on_delete=django.db.models.deletion.CASCADE,
+                                    to='AKModel.Event', verbose_name='Event'),
+        ),
+        migrations.AlterField(
+            model_name='akowner',
+            name='institution',
+            field=models.CharField(blank=True, help_text='Uni etc.', max_length=128, verbose_name='Institution'),
+        ),
+        migrations.AlterField(
+            model_name='akowner',
+            name='name',
+            field=models.CharField(help_text='Name to identify an AK owner by', max_length=256,
+                                   verbose_name='Nickname'),
+        ),
+        migrations.AlterField(
+            model_name='akrequirement',
+            name='event',
+            field=models.ForeignKey(help_text='Associated event', on_delete=django.db.models.deletion.CASCADE,
+                                    to='AKModel.Event', verbose_name='Event'),
+        ),
+        migrations.AlterField(
+            model_name='akrequirement',
+            name='name',
+            field=models.CharField(help_text='Name of the Requirement', max_length=128, unique=True,
+                                   verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='akslot',
+            name='event',
+            field=models.ForeignKey(help_text='Associated event', on_delete=django.db.models.deletion.CASCADE,
+                                    to='AKModel.Event', verbose_name='Event'),
+        ),
+        migrations.AlterField(
+            model_name='aktrack',
+            name='color',
+            field=models.CharField(blank=True, help_text='Color for displaying', max_length=7, verbose_name='Color'),
+        ),
+        migrations.AlterField(
+            model_name='aktype',
+            name='color',
+            field=models.CharField(blank=True, help_text='Color for displaying', max_length=7, verbose_name='Color'),
+        ),
+        migrations.AlterField(
+            model_name='event',
+            name='place',
+            field=models.CharField(help_text='City etc. the event takes place in', max_length=128,
+                                   verbose_name='Place'),
+        ),
+        migrations.AlterField(
+            model_name='room',
+            name='building',
+            field=models.CharField(help_text='Name/number of the building', max_length=256, verbose_name='Building'),
+        ),
+        migrations.AlterField(
+            model_name='room',
+            name='event',
+            field=models.ForeignKey(help_text='Associated event', on_delete=django.db.models.deletion.CASCADE,
+                                    to='AKModel.Event', verbose_name='Event'),
+        ),
+    ]
diff --git a/AKModel/models.py b/AKModel/models.py
index 7f7f682a70d1b410e5155dae6c0da16e4a3fcd1d..54498b26512e123a4c400b1ecdb5bd1df7f94d3e 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -1,36 +1,39 @@
 # Create your models here.
 
 from django.db import models
+from django.utils.translation import gettext_lazy as _
 
 
 class Event(models.Model):
     """ An event supplies the frame for all Aks.
     """
-    name = models.CharField(max_length=64, unique=True, verbose_name='Name', help_text='Name or iteration of the event')
-    start = models.DateTimeField(verbose_name='Start', help_text='Time the event begins')
-    end = models.DateTimeField(verbose_name='End', help_text='Time the event ends')
-    place = models.CharField(max_length=128, verbose_name='Place', help_text='City etc. where the event takes place')
-    active = models.BooleanField(verbose_name='Active State', help_text='Marks currently active events')
+    name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'),
+                            help_text=_('Name or iteration of the event'))
+    start = models.DateTimeField(verbose_name=_('Start'), help_text=_('Time the event begins'))
+    end = models.DateTimeField(verbose_name=_('End'), help_text=_('Time the event ends'))
+    place = models.CharField(max_length=128, verbose_name=_('Place'), help_text=_('City etc. the event takes place in'))
+    active = models.BooleanField(verbose_name=_('Active State'), help_text=_('Marks currently active events'))
 
     class Meta:
-        verbose_name = 'Event'
-        verbose_name_plural = 'Events'
+        verbose_name = _('Event')
+        verbose_name_plural = _('Events')
         ordering = ['name']
 
 
 class AKOwner(models.Model):
     """ An AKOwner describes the person organizing/holding an AK.
     """
-    name = models.CharField(max_length=256, verbose_name='Nickname', help_text='Name used to identify an AK owner')
-    email = models.EmailField(max_length=128, blank=True, verbose_name='E-Mail Address', help_text='Contact e-mail')
-    institution = models.CharField(max_length=128, blank=True, verbose_name='Institution', help_text='University etc.')
-    link = models.URLField(blank=True, verbose_name='Web Link', help_text='Link to Homepage')
+    name = models.CharField(max_length=256, verbose_name=_('Nickname'), help_text=_('Name to identify an AK owner by'))
+    email = models.EmailField(max_length=128, blank=True, verbose_name=_('E-Mail Address'), help_text=_('Contact mail'))
+    institution = models.CharField(max_length=128, blank=True, verbose_name=_('Institution'), help_text=_('Uni etc.'))
+    link = models.URLField(blank=True, verbose_name=_('Web Link'), help_text=_('Link to Homepage'))
 
-    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
+                              help_text=_('Associated event'))
 
     class Meta:
-        verbose_name = 'AK Owner'
-        verbose_name_plural = 'AK Owners'
+        verbose_name = _('AK Owner')
+        verbose_name_plural = _('AK Owners')
         ordering = ['name']
         unique_together = [['name', 'institution']]
 
@@ -38,108 +41,112 @@ class AKOwner(models.Model):
 class AKType(models.Model):
     """ An AKType describes the characteristics of an AK, e.g. content vs. recreational.
     """
-    name = models.CharField(max_length=64, unique=True, verbose_name='Name', help_text='Name of the AK Type')
-    color = models.CharField(max_length=7, blank=True, verbose_name='Color', help_text='Color to display this type in')
+    name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK Type'))
+    color = models.CharField(max_length=7, blank=True, verbose_name=_('Color'), help_text=_('Color for displaying'))
 
     # TODO model availability
 
     class Meta:
-        verbose_name = 'AK Type'
-        verbose_name_plural = 'AK Types'
+        verbose_name = _('AK Type')
+        verbose_name_plural = _('AK Types')
         ordering = ['name']
 
 
 class AKTrack(models.Model):
     """ An AKTrack describes a set of semantically related AKs.
     """
-    name = models.CharField(max_length=64, unique=True, verbose_name='Name', help_text='Name of the AK Track')
-    color = models.CharField(max_length=7, blank=True, verbose_name='Color', help_text='Color to display this track in')
+    name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK Track'))
+    color = models.CharField(max_length=7, blank=True, verbose_name=_('Color'), help_text=_('Color for displaying'))
 
     class Meta:
-        verbose_name = 'AK Track'
-        verbose_name_plural = 'AK Tracks'
+        verbose_name = _('AK Track')
+        verbose_name_plural = _('AK Tracks')
         ordering = ['name']
 
 
 class AKTag(models.Model):
     """ An AKTag is a keyword given to an AK by (one of) its owner(s).
     """
-    name = models.CharField(max_length=64, unique=True, verbose_name='Name', help_text='Name of the AK Tag')
+    name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK Tag'))
 
     class Meta:
-        verbose_name = 'AK Tag'
-        verbose_name_plural = 'AK Tags'
+        verbose_name = _('AK Tag')
+        verbose_name_plural = _('AK Tags')
         ordering = ['name']
 
 
 class AKRequirement(models.Model):
     """ An AKRequirement describes something needed to hold an AK, e.g. infrastructure.
     """
-    name = models.CharField(max_length=128, unique=True, verbose_name='Name', help_text='Name of the AK Requirement')
+    name = models.CharField(max_length=128, unique=True, verbose_name=_('Name'), help_text=_('Name of the Requirement'))
 
-    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
+                              help_text=_('Associated event'))
 
     class Meta:
-        verbose_name = 'AK Requirement'
-        verbose_name_plural = 'AK Requirements'
+        verbose_name = _('AK Requirement')
+        verbose_name_plural = _('AK Requirements')
         ordering = ['name']
 
 
 class AK(models.Model):
     """ An AK is a slot-based activity to be scheduled during an event.
     """
-    name = models.CharField(max_length=256, unique=True, verbose_name='Name', help_text='Name of the AK')
-    short_name = models.CharField(max_length=64, unique=True, blank=True, verbose_name='Short Name',
-                                  help_text='Name displayed in schedule')
-    description = models.TextField(blank=True, verbose_name='Description', help_text='Description of the AK')
+    name = models.CharField(max_length=256, unique=True, verbose_name=_('Name'), help_text=_('Name of the AK'))
+    short_name = models.CharField(max_length=64, unique=True, blank=True, verbose_name=_('Short Name'),
+                                  help_text=_('Name displayed in the schedule'))
+    description = models.TextField(blank=True, verbose_name=_('Description'), help_text=_('Description of the AK'))
 
-    owners = models.ManyToManyField(to=AKOwner, verbose_name='Owners', help_text='Those organizing the AK')
+    owners = models.ManyToManyField(to=AKOwner, verbose_name=_('Owners'), help_text=_('Those organizing the AK'))
 
     # TODO generate automatically
-    link = models.URLField(blank=True, verbose_name='Web Link', help_text='Link to wiki page')
-
-    type = models.ForeignKey(to=AKType, on_delete=models.PROTECT, verbose_name='Type', help_text='Type of the AK')
-    tags = models.ManyToManyField(to=AKTag, blank=True, verbose_name='Tags', help_text='Tags provided by AK owners')
-    track = models.ForeignKey(to=AKTrack, on_delete=models.SET_NULL, null=True, verbose_name='Track',
-                              help_text='Track the AK belongs to.')
-
-    reso = models.BooleanField(verbose_name='Resolution Intention', default=False, help_text='Intends to submit a reso')
-    requirements = models.ManyToManyField(to=AKRequirement, blank=True, verbose_name='Requirements',
-                                          help_text="AK's Requirements")
-
-    conflicts = models.ManyToManyField(to='AK', blank=True, related_name='conflict', verbose_name='Conflicting AKs',
-                                       help_text='AKs that conflict and thus must not take place at the same time')
-    prerequisites = models.ManyToManyField(to='AK', blank=True, verbose_name='Prerequisite AKs',
-                                           help_text='AKs that should precede this AK in the schedule')
+    link = models.URLField(blank=True, verbose_name=_('Web Link'), help_text=_('Link to wiki page'))
+
+    type = models.ForeignKey(to=AKType, on_delete=models.PROTECT, verbose_name=_('Type'), help_text=_('Type of the AK'))
+    tags = models.ManyToManyField(to=AKTag, blank=True, verbose_name=_('Tags'), help_text=_('Tags provided by owners'))
+    track = models.ForeignKey(to=AKTrack, on_delete=models.SET_NULL, null=True, verbose_name=_('Track'),
+                              help_text=_('Track the AK belongs to'))
+
+    reso = models.BooleanField(verbose_name=_('Resolution Intention'), default=False,
+                               help_text=_('Intends to submit a resolution'))
+    requirements = models.ManyToManyField(to=AKRequirement, blank=True, verbose_name=_('Requirements'),
+                                          help_text=_("AK's Requirements"))
+
+    conflicts = models.ManyToManyField(to='AK', blank=True, related_name='conflict', verbose_name=_('Conflicting AKs'),
+                                       help_text=_('AKs that conflict and thus must not take place at the same time'))
+    prerequisites = models.ManyToManyField(to='AK', blank=True, verbose_name=_('Prerequisite AKs'),
+                                           help_text=_('AKs that should precede this AK in the schedule'))
     # TODO model availability
 
-    notes = models.TextField(blank=True, verbose_name='Internal Notes', help_text='Notes to organizers')
+    notes = models.TextField(blank=True, verbose_name=_('Internal Notes'), help_text=_('Notes to organizers'))
 
-    interest = models.IntegerField(default=-1, verbose_name='Interest', help_text='Expected number of people to attend')
+    interest = models.IntegerField(default=-1, verbose_name=_('Interest'), help_text=_('Expected number of people'))
 
-    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
+                              help_text=_('Associated event'))
 
     class Meta:
-        verbose_name = 'AK'
-        verbose_name_plural = 'AKs'
+        verbose_name = _('AK')
+        verbose_name_plural = _('AKs')
 
 
 class Room(models.Model):
     """ A room describes where an AK can be held.
     """
-    name = models.CharField(max_length=64, verbose_name='Name', help_text='Name or number of the room')
-    building = models.CharField(max_length=256, verbose_name='Building', help_text='Name or number of the building')
-    capacity = models.IntegerField(verbose_name='Capacity', help_text='Maximum number of people')
-    properties = models.ManyToManyField(to=AKRequirement, verbose_name='Properties',
-                                        help_text='AK requirements fulfilled by the room')
+    name = models.CharField(max_length=64, verbose_name=_('Name'), help_text=_('Name or number of the room'))
+    building = models.CharField(max_length=256, verbose_name=_('Building'), help_text=_('Name/number of the building'))
+    capacity = models.IntegerField(verbose_name=_('Capacity'), help_text=_('Maximum number of people'))
+    properties = models.ManyToManyField(to=AKRequirement, verbose_name=_('Properties'),
+                                        help_text=_('AK requirements fulfilled by the room'))
 
     # TODO model availability
 
-    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
+                              help_text=_('Associated event'))
 
     class Meta:
-        verbose_name = 'Room'
-        verbose_name_plural = 'Rooms'
+        verbose_name = _('Room')
+        verbose_name_plural = _('Rooms')
         ordering = ['building', 'name']
         unique_together = [['name', 'building']]
 
@@ -147,16 +154,17 @@ class Room(models.Model):
 class AKSlot(models.Model):
     """ An AK Mapping matches an AK to a room during a certain time.
     """
-    ak = models.ForeignKey(to=AK, on_delete=models.CASCADE, verbose_name='AK', help_text='AK being mapped')
-    room = models.ForeignKey(to=Room, null=True, on_delete=models.SET_NULL, verbose_name='Room',
-                             help_text='Room the AK will take place in')
-    start = models.DateTimeField(verbose_name='Slot Begin', help_text='Time and date the slot begins')
-    duration = models.DecimalField(max_digits=4, decimal_places=2, default=2, verbose_name='Duration',
-                                   help_text='Length in hours')
+    ak = models.ForeignKey(to=AK, on_delete=models.CASCADE, verbose_name=_('AK'), help_text=_('AK being mapped'))
+    room = models.ForeignKey(to=Room, null=True, on_delete=models.SET_NULL, verbose_name=_('Room'),
+                             help_text=_('Room the AK will take place in'))
+    start = models.DateTimeField(verbose_name=_('Slot Begin'), help_text=_('Time and date the slot begins'))
+    duration = models.DecimalField(max_digits=4, decimal_places=2, default=2, verbose_name=_('Duration'),
+                                   help_text=_('Length in hours'))
 
-    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name='Event', help_text='Matching event')
+    event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
+                              help_text=_('Associated event'))
 
     class Meta:
-        verbose_name = 'AK Slot'
-        verbose_name_plural = 'AK Slots'
+        verbose_name = _('AK Slot')
+        verbose_name_plural = _('AK Slots')
         ordering = ['start', 'room']