diff --git a/source/translate/main.go b/source/translate/main.go
index 436bd733968c8ef406b372ce7a2062780c76aeec..c22fe77b6ce41c4363967c555984c6e81f7d571a 100644
--- a/source/translate/main.go
+++ b/source/translate/main.go
@@ -188,8 +188,8 @@ func applyTranslations(page, origin types.PageData, translations map[string]stri
 	}
 	newPage.Meta = newMeta
 
-	// Text.Text
-	for i, t := range newPage.Text {
+	newPage.Text = make([]types.Text, len(origin.Text))
+	for i, t := range origin.Text {
 		tt := origin.Text[i]
 		if tr, ok := translations[tt.Text]; ok {
 			newPage.Text[i].Text = tr
@@ -198,30 +198,26 @@ func applyTranslations(page, origin types.PageData, translations map[string]stri
 		}
 	}
 
-	// Images: Alt und Title
-	for i, img := range newPage.Images {
+	newPage.Images = make([]types.Image, len(origin.Images))
+	for i, img := range origin.Images {
 
-		imgOrigin := origin.Images[i]
-
-		if tr, ok := translations[imgOrigin.Alt]; ok {
+		if tr, ok := translations[img.Alt]; ok {
 			newPage.Images[i].Alt = tr
 		} else {
 			newPage.Images[i].Alt = img.Alt
 		}
 
-		if tr, ok := translations[imgOrigin.Title]; ok {
+		if tr, ok := translations[img.Title]; ok {
 			newPage.Images[i].Title = tr
 		} else {
 			newPage.Images[i].Title = img.Title
 		}
 	}
 
-	// Anchors: Title
-	for i, anc := range newPage.Anchors {
-
-		ancOrigin := origin.Anchors[i]
+	newPage.Anchors = make([]types.Anchor, len(origin.Anchors))
+	for i, anc := range origin.Anchors {
 
-		if tr, ok := translations[ancOrigin.Title]; ok {
+		if tr, ok := translations[anc.Title]; ok {
 			newPage.Anchors[i].Title = tr
 		} else {
 			newPage.Anchors[i].Title = anc.Title
@@ -229,7 +225,8 @@ func applyTranslations(page, origin types.PageData, translations map[string]stri
 	}
 
 	// Translations: KeyValues (nur falls Value ein String ist)
-	for i, t := range newPage.Translations {
+	newPage.Translations = make([]types.Translations, len(origin.Translations))
+	for i, t := range origin.Translations {
 		newKV := make(map[string]interface{})
 		for k, v := range t.KeyValues {
 			if s, ok := v.(string); ok {
diff --git a/source/types/page-data.go b/source/types/page-data.go
index 7260de7c510e4f7d23fe5348cd0ca6ac91f29e08..123f2134ccf2b1f174702a113b4f991e7bdef608 100644
--- a/source/types/page-data.go
+++ b/source/types/page-data.go
@@ -19,10 +19,12 @@ type Anchor struct {
 	Title    string `yaml:"title"`
 }
 
+type TranslationKeyValues map[string]any
+
 type Translations struct {
-	Id        string         `yaml:"id"`
-	Type      string         `yaml:"type"`
-	KeyValues map[string]any `yaml:"translations"`
+	Id        string               `yaml:"id"`
+	Type      string               `yaml:"type"`
+	KeyValues TranslationKeyValues `yaml:"translations"`
 }
 
 type AddModification struct {