From 76108440043094b3841ef96cd1eda8274345430b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 9 Aug 2016 14:26:55 +0200 Subject: [PATCH] Add IsTranslated to Node and Page Makes the templates simpler. See #2309 --- docs/content/content/multilingual.md | 7 +++---- hugolib/node.go | 8 +++++++- hugolib/page.go | 6 ++++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/content/content/multilingual.md b/docs/content/content/multilingual.md index f5ff46f9c..7e1df45e1 100644 --- a/docs/content/content/multilingual.md +++ b/docs/content/content/multilingual.md @@ -93,13 +93,12 @@ By having the same _base file name_, the content pieces are linked together as t To create a list of links to translated content, use a template similar to this: ``` -{{ $translations := .Translations }} -{{ if gt (len $translations) 0 }} +{{ if .IsTranslated }}

{{ i18n "translations" }}

diff --git a/hugolib/node.go b/hugolib/node.go index 53c22af13..780190ec6 100644 --- a/hugolib/node.go +++ b/hugolib/node.go @@ -271,10 +271,16 @@ func (n *Node) Translations() Nodes { translations = append(translations, t) } } - return translations } +// IsTranslated returns whether this node is translated to +// other language(s). +func (n *Node) IsTranslated() bool { + n.initTranslations() + return len(n.translations) > 1 +} + func (n *Node) initTranslations() { n.translationsInit.Do(func() { if n.translations != nil { diff --git a/hugolib/page.go b/hugolib/page.go index 74f51c0bb..b09e2b1f7 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -531,6 +531,12 @@ func (p *Page) AllTranslations() Pages { return p.translations } +// IsTranslated returns whether this content file is translated to +// other language(s). +func (p *Page) IsTranslated() bool { + return len(p.translations) > 1 +} + // Translations returns the translations excluding the current Page. func (p *Page) Translations() Pages { translations := make(Pages, 0)