Add IsTranslated to Node and Page

Makes the templates simpler.

See #2309
This commit is contained in:
Bjørn Erik Pedersen 2016-08-09 14:26:55 +02:00
parent 8b55bfc814
commit 7610844004
3 changed files with 16 additions and 5 deletions

View file

@ -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>

View file

@ -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 {

View file

@ -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)