Files
hugo/content/en/functions/lang.Merge.md
T
Anthony Fok 77578f5bfc Move content/ into new contentDir content/en/
in preparation for adding new translations such as Chinese.

Paths for "readfile" shortcode are adjusted accordingly.

See #461
2018-05-01 11:23:28 -06:00

1.2 KiB

title, description, godocref, workson, date, categories, keywords, menu, toc, signature, workson, hugoversion, relatedfuncs, deprecated, draft, aliases, comments
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

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:

{{ $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 %}}