Add language based strings

This commit is contained in:
Jan-Lukas Else 2020-10-12 19:12:43 +02:00
parent 69522ef127
commit 43cd803342
9 changed files with 42 additions and 21 deletions

View File

@ -66,7 +66,7 @@ func initRendering() error {
return d.Format(format) return d.Format(format)
}, },
"asset": assetFile, "asset": assetFile,
"string": getDefaultTemplateString, "string": getTemplateStringVariant,
"include": func(templateName string, blog *configBlog, data interface{}) (template.HTML, error) { "include": func(templateName string, blog *configBlog, data interface{}) (template.HTML, error) {
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
err := templates[templateName].ExecuteTemplate(buf, templateName, &renderData{ err := templates[templateName].ExecuteTemplate(buf, templateName, &renderData{

View File

@ -1,23 +1,32 @@
package main package main
import ( import (
"gopkg.in/yaml.v3"
"io/ioutil" "io/ioutil"
"os"
"path" "path"
"gopkg.in/yaml.v3"
) )
const stringsDir = "templates/strings" const stringsDir = "templates/strings"
const defaultVariant = "default" const defaultStrings = "default"
const variantFileExt = ".yaml" const variantFileExt = ".yaml"
var templateStrings map[string]map[string]string var templateStrings map[string]map[string]string
func initTemplateStrings() error { func initTemplateStrings() error {
templateStrings = map[string]map[string]string{} templateStrings = map[string]map[string]string{}
for _, variant := range []string{defaultVariant} { variants := []string{defaultStrings}
for _, blog := range appConfig.Blogs {
variants = append(variants, blog.Lang)
}
for _, variant := range variants {
variantStrings := map[string]string{} variantStrings := map[string]string{}
fileContent, err := ioutil.ReadFile(path.Join(stringsDir, variant+variantFileExt)) fileContent, err := ioutil.ReadFile(path.Join(stringsDir, variant+variantFileExt))
if err != nil { if err != nil {
if os.IsNotExist(err) {
continue
}
return err return err
} }
err = yaml.Unmarshal(fileContent, variantStrings) err = yaml.Unmarshal(fileContent, variantStrings)
@ -29,10 +38,14 @@ func initTemplateStrings() error {
return nil return nil
} }
func getDefaultTemplateString(name string) string { func getTemplateStringVariant(lang, name string) (result string) {
return getTemplateStringVariant(name, defaultVariant) m, ok := templateStrings[lang]
} if !ok {
m = templateStrings[defaultStrings]
func getTemplateStringVariant(name, variant string) string { }
return templateStrings[variant][name] result, ok = m[name]
if !ok {
result = templateStrings[defaultStrings][name]
}
return
} }

View File

@ -30,10 +30,10 @@
{{ include "summary" $blog $post }} {{ include "summary" $blog $post }}
{{ end }} {{ end }}
{{ if .Data.HasPrev }} {{ if .Data.HasPrev }}
<p><a href="{{ .Data.Prev }}">Prev</a></p> <p><a href="{{ .Data.Prev }}">{{ string .Blog.Lang "prev" }}</a></p>
{{ end }} {{ end }}
{{ if .Data.HasNext }} {{ if .Data.HasNext }}
<p><a href="{{ .Data.Next }}">Next</a></p> <p><a href="{{ .Data.Next }}">{{ string .Blog.Lang "next" }}</a></p>
{{ end }} {{ end }}
</main> </main>
{{ end }} {{ end }}

View File

@ -18,10 +18,10 @@
{{ include "photosummary" $blog $post }} {{ include "photosummary" $blog $post }}
{{ end }} {{ end }}
{{ if .Data.HasPrev }} {{ if .Data.HasPrev }}
<p><a href="{{ .Data.Prev }}">Prev</a></p> <p><a href="{{ .Data.Prev }}">{{ string .Blog.Lang "prev" }}</a></p>
{{ end }} {{ end }}
{{ if .Data.HasNext }} {{ if .Data.HasNext }}
<p><a href="{{ .Data.Next }}">Next</a></p> <p><a href="{{ .Data.Next }}">{{ string .Blog.Lang "next" }}</a></p>
{{ end }} {{ end }}
</main> </main>
{{ end }} {{ end }}

View File

@ -6,7 +6,7 @@
{{ md ( printf "![](%s)" $photo ) }} {{ md ( printf "![](%s)" $photo ) }}
{{ end }} {{ end }}
<p>{{ summary .Data }}</p> <p>{{ summary .Data }}</p>
<a href="{{ .Data.Path }}">View</a> <a href="{{ .Data.Path }}">{{ string .Blog.Lang "view" }}</a>
</article> </article>
<hr> <hr>
{{ end }} {{ end }}

View File

@ -6,10 +6,10 @@
<main class=h-entry> <main class=h-entry>
<article> <article>
{{ with title .Data }}<h1 class=p-name>{{ . }}</h1>{{ end }} {{ with title .Data }}<h1 class=p-name>{{ . }}</h1>{{ end }}
{{ with .Data.Published }} {{ if .Data.Published }}
<p>{{ string "publishedon" }} {{ dateformat . "02. Jan 2006" }}</p>{{ end }} <p>{{ string .Blog.Lang "publishedon" }} {{ dateformat .Data.Published "02. Jan 2006" }}</p>{{ end }}
{{ with .Data.Updated }} {{ if .Data.Updated }}
<p>{{ string "updatedon" }} {{ dateformat . "02. Jan 2006" }}</p>{{ end }} <p>{{ string .Blog.Lang "updatedon" }} {{ dateformat .Data.Updated "02. Jan 2006" }}</p>{{ end }}
{{ with .Data.Content }} {{ with .Data.Content }}
<div class=e-content>{{ md . }}</div> <div class=e-content>{{ md . }}</div>
{{ end }} {{ end }}

View File

@ -0,0 +1,5 @@
publishedon: "Veröffentlicht am"
updatedon: "Aktualisiert am"
next: "Weiter"
prev: "Zurück"
view: "Anschauen"

View File

@ -1,2 +1,5 @@
publishedon: "Published on" publishedon: "Published on"
updatedon: "Updated on" updatedon: "Updated on"
next: "Next"
prev: "Previous"
view: "View"

View File

@ -3,7 +3,7 @@
{{ with p .Data "title" }}<h2>{{ . }}</h2>{{ end }} {{ with p .Data "title" }}<h2>{{ . }}</h2>{{ end }}
{{ with .Data.Published }}<p>{{ dateformat . "02. Jan 2006" }}</p>{{ end }} {{ with .Data.Published }}<p>{{ dateformat . "02. Jan 2006" }}</p>{{ end }}
<p>{{ summary .Data }}</p> <p>{{ summary .Data }}</p>
<a href="{{ .Data.Path }}">View</a> <a href="{{ .Data.Path }}">{{ string .Blog.Lang "view" }}</a>
</article> </article>
<hr> <hr>
{{ end }} {{ end }}