Skip to content
Snippets Groups Projects
Verified Commit 2ba68c1c authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

fix(translation): fixes in datastruct

parent 3b91ff9d
No related branches found
No related tags found
No related merge requests found
......@@ -15,7 +15,7 @@ test.html:
title: Ja
anchors:
- id: mmmm
href: mmmm
href: this is a yummy link
hreflang: ""
title: ""
- id: yes-a-html
......@@ -56,24 +56,26 @@ test.html:
- text: Kundin
id: customer
- text: PLZ
id: city
id: zipcode
- text: Stadt
id: country
id: city
- text: Land
id: street
id: country
- text: Straße
id: order-state
id: street
- text: Zustand der Bestellung
id: workflow-state
id: order-state
- text: Workflow-Status
id: total
id: workflow-state
- text: gesamt
id: company
id: total
- text: firma
id: channel-order-number
id: company
- text: Bestellnummer des Kanals
id: resubmission-date
id: channel-order-number
- text: Datum der erneuten Einreichung
id: resubmission-date
- text: Art der Zahlung
id: payment-type
translations:
- id: the-translation
......
......@@ -15,7 +15,7 @@ test.html:
title: "yes"
anchors:
- id: mmmm
href: mmmm
href: this is a yummy link
hreflang: ""
title: ""
- id: yes-a-html
......
......@@ -167,83 +167,74 @@ func collectUniqueTexts(storage *types.PageDataStorage) []string {
func applyTranslations(page, origin types.PageData, translations map[string]string) types.PageData {
newPage := page
// PageData.Title
originPageTitle := origin.Title
if t, ok := translations[originPageTitle]; ok {
if t, ok := translations[origin.Title]; ok {
newPage.Title = t
} else {
newPage.Title = originPageTitle
newPage.Title = origin.Title
}
// PageData.Meta
newMeta := make(map[string]string)
for k, v := range page.Meta {
vv := origin.Meta[k]
if t, ok := translations[vv]; ok {
for k, v := range origin.Meta {
newMeta[k] = v
if t, ok := translations[v]; ok {
newMeta[k] = t
} else {
newMeta[k] = v
}
}
newPage.Meta = newMeta
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] = t
if tr, ok := translations[origin.Text[i].Text]; ok {
newPage.Text[i].Text = tr
} else {
newPage.Text[i].Text = t.Text
}
}
newPage.Images = make([]types.Image, len(origin.Images))
for i, img := range origin.Images {
newPage.Images[i] = img
if tr, ok := translations[img.Alt]; ok {
newPage.Images[i].Alt = tr
} else {
newPage.Images[i].Alt = img.Alt
}
if tr, ok := translations[img.Title]; ok {
newPage.Images[i].Title = tr
} else {
newPage.Images[i].Title = img.Title
}
}
newPage.Anchors = make([]types.Anchor, len(origin.Anchors))
for i, anc := range origin.Anchors {
newPage.Anchors[i] = anc
if tr, ok := translations[anc.Title]; ok {
newPage.Anchors[i].Title = tr
} else {
newPage.Anchors[i].Title = anc.Title
}
}
// Translations: KeyValues (nur falls Value ein String ist)
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 {
originStr, ok := origin.Translations[i].KeyValues[k].(string)
if !ok {
originStr = s
}
newPage.Translations[i] = t
if tr, found := translations[originStr]; found {
newKV := make(map[string]any)
for k, v := range t.KeyValues {
newKV[k] = v
switch v := v.(type) {
case string:
if tr, found := translations[v]; found {
newKV[k] = tr
} else {
newKV[k] = s
newKV[k] = v
}
} else {
newKV[k] = v
}
}
newPage.Translations[i].KeyValues = newKV
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment