diff --git a/requirements.txt b/requirements.txt
index 4634623558f4ef01fca555f1ff5ccf511518cd5b..3466d8979683b95afee3c6a87a1d68d67f61f981 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,3 +12,4 @@ urllib3==1.26.4
 Pillow==8.2.0
 django-cors-headers==3.7.0
 djangorestframework==3.12.4
+django-modeltranslation==0.17.2
\ No newline at end of file
diff --git a/unisportomat/quiz/migrations/0006_auto_20210612_1230.py b/unisportomat/quiz/migrations/0006_auto_20210612_1230.py
new file mode 100644
index 0000000000000000000000000000000000000000..0841c6e4eeb8b109ac3f719cad169cb658a10612
--- /dev/null
+++ b/unisportomat/quiz/migrations/0006_auto_20210612_1230.py
@@ -0,0 +1,43 @@
+# Generated by Django 3.2 on 2021-06-12 12:30
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('quiz', '0005_merge_20210602_1355'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='calltomove',
+            name='text_de',
+            field=models.TextField(null=True),
+        ),
+        migrations.AddField(
+            model_name='calltomove',
+            name='text_en',
+            field=models.TextField(null=True),
+        ),
+        migrations.AddField(
+            model_name='knowledgesnack',
+            name='text_de',
+            field=models.TextField(null=True),
+        ),
+        migrations.AddField(
+            model_name='knowledgesnack',
+            name='text_en',
+            field=models.TextField(null=True),
+        ),
+        migrations.AddField(
+            model_name='question',
+            name='text_de',
+            field=models.TextField(null=True),
+        ),
+        migrations.AddField(
+            model_name='question',
+            name='text_en',
+            field=models.TextField(null=True),
+        ),
+    ]
diff --git a/unisportomat/quiz/translation.py b/unisportomat/quiz/translation.py
new file mode 100644
index 0000000000000000000000000000000000000000..16a62a8ec63625382ec0d1676cbfa2cdb333584e
--- /dev/null
+++ b/unisportomat/quiz/translation.py
@@ -0,0 +1,33 @@
+"""
+Here, every Model which needs translation fields is registered.
+"""
+
+
+from modeltranslation.translator import register, TranslationOptions
+from .models import Question, CallToMove, KnowledgeSnack
+
+
+@register(Question)
+class QuestionTranslationOptions(TranslationOptions):
+    """
+    Translations for Question-model. Only the text of the question needs to be translated.
+    A German Translation is Required.
+    """
+
+    fields = ("text",)
+    required_languages = ("de",)
+    fallback_values = ("No Translation for this Field",)
+
+
+@register(CallToMove)
+class CallToMoveTranslationOptions(TranslationOptions):
+    fields = ("text",)
+    required_languages = ("de",)
+    fallback_values = ("No Translation for this Field",)
+
+
+@register(KnowledgeSnack)
+class KnowledgeSnackTranslationOptions(TranslationOptions):
+    fields = ("text",)
+    required_languages = ("de",)
+    fallback_values = ("No Translation for this Field",)
diff --git a/unisportomat/unisportomat/settings.py b/unisportomat/unisportomat/settings.py
index 1e46314375fb8545697ddb902f87bc66606ff270..f4fdefc869a206c673cc06dc07158fccac340523 100644
--- a/unisportomat/unisportomat/settings.py
+++ b/unisportomat/unisportomat/settings.py
@@ -33,6 +33,7 @@ ALLOWED_HOSTS = []
 
 INSTALLED_APPS = [
     # "quiz.apps.QuizConfig",
+    "modeltranslation",  # Needs to be before django.contrib.admin because Admin Panel won't work otherwise
     "django.contrib.admin",
     "django.contrib.auth",
     "django.contrib.contenttypes",
@@ -53,6 +54,7 @@ MIDDLEWARE = [
     "django.contrib.messages.middleware.MessageMiddleware",
     "django.middleware.clickjacking.XFrameOptionsMiddleware",
     "corsheaders.middleware.CorsMiddleware",
+    "django.middleware.locale.LocaleMiddleware",
 ]
 
 ROOT_URLCONF = "unisportomat.urls"
@@ -116,6 +118,18 @@ USE_L10N = True
 
 USE_TZ = True
 
+# Internationalization with django-modeltranslation
+# https://django-modeltranslation.readthedocs.io/en/latest/index.html
+
+gettext = lambda s: s
+LANGUAGES = (
+    ("de", gettext("German")),
+    ("en", gettext("English")),
+)
+
+MODELTRANSLATION_DEFAULT_LANGUAGE = "de"
+
+
 # Static files (CSS, JavaScript, Images)
 # https://docs.djangoproject.com/en/3.2/howto/static-files/