commit 76108440043094b3841ef96cd1eda8274345430b
parent 8b55bfc81438f33892611a8e828107791838ccdb
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Tue, 9 Aug 2016 14:26:55 +0200
Add IsTranslated to Node and Page
Makes the templates simpler.
See #2309
Diffstat:
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git 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 }}
<h4>{{ i18n "translations" }}</h4>
<ul>
- {{ range $translations }}
+ {{ range .Translations }}
<li>
- <a href="{{ .Permalink }}">{{ .Lang }}: {{ .Title }}</a>
+ <a href="{{ .Permalink }}">{{ .Lang }}: {{ .Title }}{{ if .IsPage }} ({{ i18n "wordCount" . }}){{ end }}</a>
</li>
{{ end}}
</ul>
diff --git 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
@@ -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)