diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-07-25 22:22:09 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-09-06 18:32:15 +0300 |
commit | c4e7c37055a029a26d87ebeb21614efb3f0b0040 (patch) | |
tree | 55c05751d0734ace44783bc0b196873fd889d590 /hugolib/translations.go | |
parent | 06d12ab895a83fc8a9f94b23e533b25511bbb6d1 (diff) |
Add Translations and AllTranslations methods to Page
Will revisit Node later.
Diffstat (limited to 'hugolib/translations.go')
-rw-r--r-- | hugolib/translations.go | 21 |
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) } } |