mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-01 15:59:11 -05:00
1.2 KiB
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 |
|
|
|
false |
|
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 %}}