mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-15 20:44:01 +02:00
Add a way to disable one or more languages
This commit adds a new config setting: ```toml disableLanguages = ["fr"] ``` If this is a multilingual site: * No site for the French language will be created * French content pages will be ignored/not read * The French language configuration (menus etc.) will also be ignored This makes it possible to start translating new languages and turn it on when you're happy etc. Fixes #4297 Fixed #4329
This commit is contained in:
@@ -72,16 +72,46 @@ func LoadConfig(fs afero.Fs, relativeSourcePath, configFilename string) (*viper.
|
||||
}
|
||||
|
||||
func loadLanguageSettings(cfg config.Provider, oldLangs helpers.Languages) error {
|
||||
multilingual := cfg.GetStringMap("languages")
|
||||
|
||||
defaultLang := cfg.GetString("defaultContentLanguage")
|
||||
|
||||
var languages map[string]interface{}
|
||||
|
||||
languagesFromConfig := cfg.GetStringMap("languages")
|
||||
disableLanguages := cfg.GetStringSlice("disableLanguages")
|
||||
|
||||
if len(disableLanguages) == 0 {
|
||||
languages = languagesFromConfig
|
||||
} else {
|
||||
languages = make(map[string]interface{})
|
||||
for k, v := range languagesFromConfig {
|
||||
isDisabled := false
|
||||
for _, disabled := range disableLanguages {
|
||||
if disabled == defaultLang {
|
||||
return fmt.Errorf("cannot disable default language %q", defaultLang)
|
||||
}
|
||||
|
||||
if strings.EqualFold(k, disabled) {
|
||||
isDisabled = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !isDisabled {
|
||||
languages[k] = v
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
langs helpers.Languages
|
||||
err error
|
||||
)
|
||||
|
||||
if len(multilingual) == 0 {
|
||||
if len(languages) == 0 {
|
||||
langs = append(langs, helpers.NewDefaultLanguage(cfg))
|
||||
} else {
|
||||
langs, err = toSortedLanguages(cfg, multilingual)
|
||||
langs, err = toSortedLanguages(cfg, languages)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to parse multilingual config: %s", err)
|
||||
}
|
||||
@@ -114,8 +144,6 @@ func loadLanguageSettings(cfg config.Provider, oldLangs helpers.Languages) error
|
||||
}
|
||||
}
|
||||
|
||||
defaultLang := cfg.GetString("defaultContentLanguage")
|
||||
|
||||
// The defaultContentLanguage is something the user has to decide, but it needs
|
||||
// to match a language in the language definition list.
|
||||
langExists := false
|
||||
|
Reference in New Issue
Block a user