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

fix(translate): write

parent a364a86d
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@ import (
"gitlab.schukai.com/oss/bob/types"
"gopkg.in/yaml.v3"
"os"
"path"
"strings"
)
......@@ -52,27 +53,56 @@ func Do(dataFile, api string, targetLanguages []string) {
translationsByLang[lang] = trans
}
dataDir := path.Dir(dataFile)
// 4. Für jede Sprache: Original-Struktur kopieren, übersetzte Texte an derselben Stelle eintragen und als YAML speichern.
for _, lang := range targetLanguages {
for _, page := range storage {
pageTarget := types.PageDataStorage{}
langSourcePath := fmt.Sprintf("%s/%s.yaml", dataDir, lang)
langSourceData, err := os.ReadFile(langSourcePath)
if err != nil {
if !os.IsNotExist(err) {
log.Fatalf("Error reading data file %s: %v", langSourcePath, err)
continue
}
// Wenn die Datei nicht existiert, wird sie neu erstellt.
pageTarget = storage
} else {
err = yaml.Unmarshal(langSourceData, &pageTarget)
if err != nil {
log.Fatalf("Error unmarshalling data file %s: %v", langSourcePath, err)
continue
}
}
for name, page := range pageTarget {
translatedPage := applyTranslations(*page, translationsByLang[lang])
// Optional: Sprache im PageData anpassen
translatedPage.Lang = lang
outData, err := yaml.Marshal(&translatedPage)
pageTarget[name] = &translatedPage
}
outData, err := yaml.Marshal(&pageTarget)
if err != nil {
log.Fatalf("Error marshalling translated data for %s: %v", lang, err)
}
filename := fmt.Sprintf("%s.yaml", lang)
filename := fmt.Sprintf("%s/%s.yaml", dataDir, lang)
err = os.WriteFile(filename, outData, 0644)
if err != nil {
log.Fatalf("Error writing translated data for %s: %v", lang, err)
}
log.Info("Translated data for %s written to %s.\n", lang, filename)
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment