summaryrefslogtreecommitdiffstats
path: root/hugolib/multilingual.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-08-07 14:03:03 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-09-06 18:32:17 +0300
commit2079a23dd89734cea39e523faf46e44201151279 (patch)
tree5b5163a12cf874863eea889685d65a3c5b56515c /hugolib/multilingual.go
parent596e0e98e4483d2a0a709412a338ceddb6538757 (diff)
Make it possible to configure Blackfroday per language
See #2309
Diffstat (limited to 'hugolib/multilingual.go')
-rw-r--r--hugolib/multilingual.go29
1 files changed, 20 insertions, 9 deletions
diff --git a/hugolib/multilingual.go b/hugolib/multilingual.go
index cc9f607f2..9c5342f99 100644
--- a/hugolib/multilingual.go
+++ b/hugolib/multilingual.go
@@ -25,9 +25,14 @@ func NewLanguage(lang string) *Language {
return &Language{Lang: lang, params: make(map[string]interface{})}
}
-// TODO(bep) multilingo
func newDefaultLanguage() *Language {
- return NewLanguage("en")
+ defaultLang := viper.GetString("DefaultContentLanguage")
+
+ if defaultLang == "" {
+ defaultLang = "en"
+ }
+
+ return NewLanguage(defaultLang)
}
type Languages []*Language
@@ -74,16 +79,18 @@ func newMultiLingualFromSites(sites ...*Site) (*Multilingual, error) {
languages[i] = s.Language
}
- defaultLang := viper.GetString("DefaultContentLanguage")
+ return &Multilingual{Languages: languages, DefaultLang: newDefaultLanguage()}, nil
- if defaultLang == "" {
- defaultLang = "en"
- }
-
- return &Multilingual{Languages: languages, DefaultLang: NewLanguage(defaultLang)}, nil
+}
+func newMultiLingualDefaultLanguage() *Multilingual {
+ return newMultiLingualForLanguage(newDefaultLanguage())
}
+func newMultiLingualForLanguage(language *Language) *Multilingual {
+ languages := Languages{language}
+ return &Multilingual{Languages: languages, DefaultLang: language}
+}
func (ml *Multilingual) enabled() bool {
return len(ml.Languages) > 1
}
@@ -92,6 +99,7 @@ func (l *Language) Params() map[string]interface{} {
l.paramsInit.Do(func() {
// Merge with global config.
// TODO(bep) consider making this part of a constructor func.
+
globalParams := viper.GetStringMap("Params")
for k, v := range globalParams {
if _, ok := l.params[k]; !ok {
@@ -116,6 +124,9 @@ func (l *Language) GetStringMapString(key string) map[string]string {
}
func (l *Language) Get(key string) interface{} {
+ if l == nil {
+ panic("language not set")
+ }
key = strings.ToLower(key)
if v, ok := l.params[key]; ok {
return v
@@ -159,7 +170,7 @@ func toSortedLanguages(l map[string]interface{}) (Languages, error) {
}
// Put all into the Params map
- // TODO(bep) reconsile with the type handling etc. from other params handlers.
+ // TODO(bep) ml reconsile with the type handling etc. from other params handlers.
language.SetParam(loki, v)
}