diff options
Diffstat (limited to 'docs/content/en/functions/lang.Merge.md')
-rw-r--r-- | docs/content/en/functions/lang.Merge.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/content/en/functions/lang.Merge.md b/docs/content/en/functions/lang.Merge.md new file mode 100644 index 000000000..6e1d41c0f --- /dev/null +++ b/docs/content/en/functions/lang.Merge.md @@ -0,0 +1,47 @@ +--- +title: lang.Merge +description: "Merge missing translations from other languages." +godocref: "" +workson: [] +date: 2018-03-16 +categories: [functions] +keywords: [multilingual] +menu: + docs: + parent: "functions" +toc: false +signature: ["lang.Merge FROM TO"] +workson: [] +hugoversion: +relatedfuncs: [] +deprecated: false +draft: false +aliases: [] +comments: +--- + +As an example: + +```bash +{{ $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: + + +```bash + {{ $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 %}} |