]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
langs/i18n: Fallback to defaultContentLanguage instead of English
authorJoe Mooring <joe.mooring@veriphor.com>
Sat, 22 Apr 2023 22:58:44 +0000 (15:58 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 24 Apr 2023 19:20:09 +0000 (21:20 +0200)
Co-authored-by: 641bill <wo23636@126.com>
Fixes #9216

langs/i18n/integration_test.go
langs/i18n/translationProvider.go

index a433fc4cdfc14293ee54e414f5b6e7b369ae0086..c010ac1113b59614de301fca64293af7da9a6165 100644 (file)
@@ -103,3 +103,41 @@ i18n: {{ i18n "a" . }}|
        i18n: Reading time: 3|
        `)
 }
+
+// Issue 9216
+func TestI18nDefaultContentLanguage(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- config.toml --
+disableKinds = ['RSS','sitemap','taxonomy','term','page','section']
+defaultContentLanguage = 'es'
+defaultContentLanguageInSubdir = true
+[languages.es]
+[languages.fr]
+-- i18n/es.toml --
+cat = 'gato'
+-- i18n/fr.toml --
+# this file intentionally empty
+-- layouts/index.html --
+{{ .Title }}_{{ T "cat" }}
+-- content/_index.fr.md --
+---
+title: home_fr
+---
+-- content/_index.md --
+---
+title: home_es
+---
+`
+
+       b := hugolib.NewIntegrationTestBuilder(
+               hugolib.IntegrationTestConfig{
+                       T:           t,
+                       TxtarString: files,
+               },
+       ).Build()
+
+       b.AssertFileContent("public/es/index.html", `home_es_gato`)
+       b.AssertFileContent("public/fr/index.html", `home_fr_gato`)
+}
index d9d334567f9423b53771ef453f8ee9bff88cb7ce..782bbf719fb08dac72cc37b8aafd5981ea79570d 100644 (file)
@@ -48,7 +48,12 @@ func NewTranslationProvider() *TranslationProvider {
 func (tp *TranslationProvider) Update(d *deps.Deps) error {
        spec := source.NewSourceSpec(d.PathSpec, nil, nil)
 
-       bundle := i18n.NewBundle(language.English)
+       var defaultLangTag, err = language.Parse(d.Cfg.GetString("defaultContentLanguage"))
+       if err != nil {
+               defaultLangTag = language.English
+       }
+       bundle := i18n.NewBundle(defaultLangTag)
+
        bundle.RegisterUnmarshalFunc("toml", toml.Unmarshal)
        bundle.RegisterUnmarshalFunc("yaml", yaml.Unmarshal)
        bundle.RegisterUnmarshalFunc("yml", yaml.Unmarshal)