hugo/docs/content/en/functions/lang.Merge.md
2018-05-04 09:44:59 +02:00

1.2 KiB

title description godocref workson date categories keywords menu toc signature workson hugoversion relatedfuncs deprecated draft aliases comments
lang.Merge Merge missing translations from other languages.
2018-03-16
functions
multilingual
docs
parent
functions
false
lang.Merge FROM TO
false false

As an example:

{{ $pages := .Site.RegularPages | lang.Merge $frSite.RegularPages | lang.Merge $enSite.RegularPages }}

Will "fill in the gaps" in the current site with, from left to right, content from the French site, and lastly the English.

A more practical example is to fill in the missing translations for the "minority languages" with content from the main language:

 {{ $pages := .Site.RegularPages }}
 {{ .Scratch.Set "pages" $pages }}
 {{ $mainSite := .Sites.First }}
 {{ if ne $mainSite .Site }}
    {{ .Scratch.Set "pages" ($pages | lang.Merge $mainSite.RegularPages) }}
 {{ end }}
 {{ $pages := .Scratch.Get "pages" }} 

{{% note %}} Note that the slightly ugly .Scratch construct will not be needed once this is fixed: https://github.com/golang/go/issues/10608 {{% /note %}}