diff --git a/render.go b/render.go index 5e2507a..7c27b3b 100644 --- a/render.go +++ b/render.go @@ -66,7 +66,7 @@ func initRendering() error { return d.Format(format) }, "asset": assetFile, - "string": getDefaultTemplateString, + "string": getTemplateStringVariant, "include": func(templateName string, blog *configBlog, data interface{}) (template.HTML, error) { buf := new(bytes.Buffer) err := templates[templateName].ExecuteTemplate(buf, templateName, &renderData{ diff --git a/templateStrings.go b/templateStrings.go index d075f0c..05e5c32 100644 --- a/templateStrings.go +++ b/templateStrings.go @@ -1,23 +1,32 @@ package main import ( - "gopkg.in/yaml.v3" "io/ioutil" + "os" "path" + + "gopkg.in/yaml.v3" ) const stringsDir = "templates/strings" -const defaultVariant = "default" +const defaultStrings = "default" const variantFileExt = ".yaml" var templateStrings map[string]map[string]string func initTemplateStrings() error { 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{} fileContent, err := ioutil.ReadFile(path.Join(stringsDir, variant+variantFileExt)) if err != nil { + if os.IsNotExist(err) { + continue + } return err } err = yaml.Unmarshal(fileContent, variantStrings) @@ -29,10 +38,14 @@ func initTemplateStrings() error { return nil } -func getDefaultTemplateString(name string) string { - return getTemplateStringVariant(name, defaultVariant) -} - -func getTemplateStringVariant(name, variant string) string { - return templateStrings[variant][name] +func getTemplateStringVariant(lang, name string) (result string) { + m, ok := templateStrings[lang] + if !ok { + m = templateStrings[defaultStrings] + } + result, ok = m[name] + if !ok { + result = templateStrings[defaultStrings][name] + } + return } diff --git a/templates/index.gohtml b/templates/index.gohtml index 775db46..5d6f3f6 100644 --- a/templates/index.gohtml +++ b/templates/index.gohtml @@ -30,10 +30,10 @@ {{ include "summary" $blog $post }} {{ end }} {{ if .Data.HasPrev }} -

Prev

+

{{ string .Blog.Lang "prev" }}

{{ end }} {{ if .Data.HasNext }} -

Next

+

{{ string .Blog.Lang "next" }}

{{ end }} {{ end }} diff --git a/templates/photos.gohtml b/templates/photos.gohtml index f3a99f7..08ad5f3 100644 --- a/templates/photos.gohtml +++ b/templates/photos.gohtml @@ -18,10 +18,10 @@ {{ include "photosummary" $blog $post }} {{ end }} {{ if .Data.HasPrev }} -

Prev

+

{{ string .Blog.Lang "prev" }}

{{ end }} {{ if .Data.HasNext }} -

Next

+

{{ string .Blog.Lang "next" }}

{{ end }} {{ end }} diff --git a/templates/photosummary.gohtml b/templates/photosummary.gohtml index 2b2d1c3..34d33a5 100644 --- a/templates/photosummary.gohtml +++ b/templates/photosummary.gohtml @@ -6,7 +6,7 @@ {{ md ( printf "![](%s)" $photo ) }} {{ end }}

{{ summary .Data }}

- View + {{ string .Blog.Lang "view" }}
{{ end }} \ No newline at end of file diff --git a/templates/post.gohtml b/templates/post.gohtml index bb05226..a929dfc 100644 --- a/templates/post.gohtml +++ b/templates/post.gohtml @@ -6,10 +6,10 @@
{{ with title .Data }}

{{ . }}

{{ end }} - {{ with .Data.Published }} -

{{ string "publishedon" }} {{ dateformat . "02. Jan 2006" }}

{{ end }} - {{ with .Data.Updated }} -

{{ string "updatedon" }} {{ dateformat . "02. Jan 2006" }}

{{ end }} + {{ if .Data.Published }} +

{{ string .Blog.Lang "publishedon" }} {{ dateformat .Data.Published "02. Jan 2006" }}

{{ end }} + {{ if .Data.Updated }} +

{{ string .Blog.Lang "updatedon" }} {{ dateformat .Data.Updated "02. Jan 2006" }}

{{ end }} {{ with .Data.Content }}
{{ md . }}
{{ end }} diff --git a/templates/strings/de.yaml b/templates/strings/de.yaml new file mode 100644 index 0000000..097df98 --- /dev/null +++ b/templates/strings/de.yaml @@ -0,0 +1,5 @@ +publishedon: "Veröffentlicht am" +updatedon: "Aktualisiert am" +next: "Weiter" +prev: "Zurück" +view: "Anschauen" \ No newline at end of file diff --git a/templates/strings/default.yaml b/templates/strings/default.yaml index 0e513b0..d3cc5e9 100644 --- a/templates/strings/default.yaml +++ b/templates/strings/default.yaml @@ -1,2 +1,5 @@ publishedon: "Published on" -updatedon: "Updated on" \ No newline at end of file +updatedon: "Updated on" +next: "Next" +prev: "Previous" +view: "View" \ No newline at end of file diff --git a/templates/summary.gohtml b/templates/summary.gohtml index fbc854d..c80fd10 100644 --- a/templates/summary.gohtml +++ b/templates/summary.gohtml @@ -3,7 +3,7 @@ {{ with p .Data "title" }}

{{ . }}

{{ end }} {{ with .Data.Published }}

{{ dateformat . "02. Jan 2006" }}

{{ end }}

{{ summary .Data }}

- View + {{ string .Blog.Lang "view" }}

{{ end }} \ No newline at end of file