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

fix(translate): update keys

parent 1788ba30
No related branches found
No related tags found
No related merge requests found
...@@ -53,27 +53,27 @@ test.html: ...@@ -53,27 +53,27 @@ test.html:
id: date id: date
- text: Nutzername - text: Nutzername
id: username id: username
- text: Customer - text: Kundin
id: customer id: customer
- text: Stadt - text: PLZ
id: city id: city
- text: Land - text: Stadt
id: country id: country
- text: Straße - text: Land
id: street id: street
- text: Zustand der Bestellung - text: Straße
id: order-state id: order-state
- text: Workflow-Status - text: Zustand der Bestellung
id: workflow-state id: workflow-state
- text: gesamt - text: Workflow-Status
id: total id: total
- text: firma - text: gesamt
id: company id: company
- text: Bestellnummer des Kanals - text: firma
id: channel-order-number id: channel-order-number
- text: Datum der erneuten Einreichung - text: Bestellnummer des Kanals
id: resubmission-date id: resubmission-date
- text: Art der Zahlung - text: Datum der erneuten Einreichung
id: payment-type id: payment-type
translations: translations:
- id: the-translation - id: the-translation
......
...@@ -83,7 +83,9 @@ func Do(dataFile, api string, targetLanguages []string) { ...@@ -83,7 +83,9 @@ func Do(dataFile, api string, targetLanguages []string) {
for name, page := range pageTarget { for name, page := range pageTarget {
translatedPage := applyTranslations(*page, translationsByLang[lang]) origin := storage[name]
translatedPage := applyTranslations(*page, *origin, translationsByLang[lang])
// Optional: Sprache im PageData anpassen // Optional: Sprache im PageData anpassen
translatedPage.Lang = lang translatedPage.Lang = lang
...@@ -162,18 +164,23 @@ func collectUniqueTexts(storage *types.PageDataStorage) []string { ...@@ -162,18 +164,23 @@ func collectUniqueTexts(storage *types.PageDataStorage) []string {
} }
// applyTranslations nimmt die Originalstruktur und ersetzt alle übersetzbaren Felder durch die entsprechenden Übersetzungen. // applyTranslations nimmt die Originalstruktur und ersetzt alle übersetzbaren Felder durch die entsprechenden Übersetzungen.
func applyTranslations(page types.PageData, translations map[string]string) types.PageData { func applyTranslations(page, origin types.PageData, translations map[string]string) types.PageData {
newPage := page newPage := page
// PageData.Title // PageData.Title
if t, ok := translations[page.Title]; ok { originPageTitle := origin.Title
if t, ok := translations[originPageTitle]; ok {
newPage.Title = t newPage.Title = t
} else {
newPage.Title = originPageTitle
} }
// PageData.Meta // PageData.Meta
newMeta := make(map[string]string) newMeta := make(map[string]string)
for k, v := range page.Meta { for k, v := range page.Meta {
if t, ok := translations[v]; ok { vv := origin.Meta[k]
if t, ok := translations[vv]; ok {
newMeta[k] = t newMeta[k] = t
} else { } else {
newMeta[k] = v newMeta[k] = v
...@@ -183,25 +190,41 @@ func applyTranslations(page types.PageData, translations map[string]string) type ...@@ -183,25 +190,41 @@ func applyTranslations(page types.PageData, translations map[string]string) type
// Text.Text // Text.Text
for i, t := range newPage.Text { for i, t := range newPage.Text {
if tr, ok := translations[t.Text]; ok { tt := origin.Text[i]
if tr, ok := translations[tt.Text]; ok {
newPage.Text[i].Text = tr newPage.Text[i].Text = tr
} else {
newPage.Text[i].Text = t.Text
} }
} }
// Images: Alt und Title // Images: Alt und Title
for i, img := range newPage.Images { for i, img := range newPage.Images {
if tr, ok := translations[img.Alt]; ok {
imgOrigin := origin.Images[i]
if tr, ok := translations[imgOrigin.Alt]; ok {
newPage.Images[i].Alt = tr newPage.Images[i].Alt = tr
} else {
newPage.Images[i].Alt = img.Alt
} }
if tr, ok := translations[img.Title]; ok {
if tr, ok := translations[imgOrigin.Title]; ok {
newPage.Images[i].Title = tr newPage.Images[i].Title = tr
} else {
newPage.Images[i].Title = img.Title
} }
} }
// Anchors: Title // Anchors: Title
for i, anc := range newPage.Anchors { for i, anc := range newPage.Anchors {
if tr, ok := translations[anc.Title]; ok {
ancOrigin := origin.Anchors[i]
if tr, ok := translations[ancOrigin.Title]; ok {
newPage.Anchors[i].Title = tr newPage.Anchors[i].Title = tr
} else {
newPage.Anchors[i].Title = anc.Title
} }
} }
...@@ -210,7 +233,13 @@ func applyTranslations(page types.PageData, translations map[string]string) type ...@@ -210,7 +233,13 @@ func applyTranslations(page types.PageData, translations map[string]string) type
newKV := make(map[string]interface{}) newKV := make(map[string]interface{})
for k, v := range t.KeyValues { for k, v := range t.KeyValues {
if s, ok := v.(string); ok { if s, ok := v.(string); ok {
if tr, found := translations[s]; found {
originStr, ok := origin.Translations[i].KeyValues[k].(string)
if !ok {
originStr = s
}
if tr, found := translations[originStr]; found {
newKV[k] = tr newKV[k] = tr
} else { } else {
newKV[k] = s newKV[k] = s
...@@ -219,6 +248,7 @@ func applyTranslations(page types.PageData, translations map[string]string) type ...@@ -219,6 +248,7 @@ func applyTranslations(page types.PageData, translations map[string]string) type
newKV[k] = v newKV[k] = v
} }
} }
newPage.Translations[i].KeyValues = newKV 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