summaryrefslogtreecommitdiffstats
path: root/hugolib/translations.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-07-25 22:22:09 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-09-06 18:32:15 +0300
commitc4e7c37055a029a26d87ebeb21614efb3f0b0040 (patch)
tree55c05751d0734ace44783bc0b196873fd889d590 /hugolib/translations.go
parent06d12ab895a83fc8a9f94b23e533b25511bbb6d1 (diff)
Add Translations and AllTranslations methods to Page
Will revisit Node later.
Diffstat (limited to 'hugolib/translations.go')
-rw-r--r--hugolib/translations.go21
1 files changed, 18 insertions, 3 deletions
diff --git a/hugolib/translations.go b/hugolib/translations.go
index b503071d8..7caa6b436 100644
--- a/hugolib/translations.go
+++ b/hugolib/translations.go
@@ -13,12 +13,16 @@
package hugolib
+import (
+ "fmt"
+)
+
// Translations represent the other translations for a given page. The
// string here is the language code, as affected by the `post.LANG.md`
// filename.
type Translations map[string]*Page
-func pagesToTranslationsMap(pages []*Page) map[string]Translations {
+func pagesToTranslationsMap(ml *Multilingual, pages []*Page) map[string]Translations {
out := make(map[string]Translations)
for _, page := range pages {
@@ -34,6 +38,14 @@ func pagesToTranslationsMap(pages []*Page) map[string]Translations {
continue
}
+ language := ml.Language(pageLang)
+
+ if language == nil {
+ panic(fmt.Sprintf("Page language not found in multilang setup: %s", pageLang))
+ }
+
+ page.language = language
+
pageTranslation[pageLang] = page
out[base] = pageTranslation
}
@@ -49,11 +61,14 @@ func assignTranslationsToPages(allTranslations map[string]Translations, pages []
continue
}
- for lang, translatedPage := range trans {
+ // TODO(bep) multilingo remove lang
+ for _, translatedPage := range trans {
if translatedPage == page {
continue
}
- page.Translations[lang] = translatedPage
+ page.translations = append(page.translations, translatedPage)
}
+
+ pageBy(languagePageSort).Sort(page.translations)
}
}