mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-20 21:31:32 +02:00
Fix language params handling
This fixes some issues with language params handling by separating params from configuration values per language. This means that you can now do this: ```toml [languages] [languages.en] languageName = "English" weight = 1 title = "My Cool Site" [languages.en.params] myParam = "Hi!" ``` This is not a breaking change, but the above is a less suprising way of configuring custom params. It also fixes some hard-to-debug corner-cases in multilingual sites. Fixes #4356 Fixes #4352
This commit is contained in:
@@ -141,6 +141,9 @@ func doTestMultiSitesMainLangInRoot(t *testing.T, defaultInSubDir bool) {
|
||||
|
||||
func TestMultiSitesWithTwoLanguages(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
assert := require.New(t)
|
||||
|
||||
mm := afero.NewMemMapFs()
|
||||
|
||||
writeToFs(t, mm, "config.toml", `
|
||||
@@ -152,11 +155,15 @@ defaultContentLanguage = "nn"
|
||||
languageName = "Nynorsk"
|
||||
weight = 1
|
||||
title = "Tittel på Nynorsk"
|
||||
[languages.nn.params]
|
||||
p1 = "p1nn"
|
||||
|
||||
[languages.en]
|
||||
title = "Title in English"
|
||||
languageName = "English"
|
||||
weight = 2
|
||||
[languages.en.params]
|
||||
p1 = "p1en"
|
||||
`,
|
||||
)
|
||||
|
||||
@@ -176,15 +183,24 @@ weight = 2
|
||||
// Add some data
|
||||
writeSource(t, fs, filepath.Join("data", "hugo.toml"), "slogan = \"Hugo Rocks!\"")
|
||||
|
||||
require.NoError(t, sites.Build(BuildCfg{}))
|
||||
require.Len(t, sites.Sites, 2)
|
||||
assert.NoError(sites.Build(BuildCfg{}))
|
||||
assert.Len(sites.Sites, 2)
|
||||
|
||||
nnSite := sites.Sites[0]
|
||||
nnSiteHome := nnSite.getPage(KindHome)
|
||||
require.Len(t, nnSiteHome.AllTranslations(), 2)
|
||||
require.Len(t, nnSiteHome.Translations(), 1)
|
||||
require.True(t, nnSiteHome.IsTranslated())
|
||||
nnHome := nnSite.getPage(KindHome)
|
||||
assert.Len(nnHome.AllTranslations(), 2)
|
||||
assert.Len(nnHome.Translations(), 1)
|
||||
assert.True(nnHome.IsTranslated())
|
||||
|
||||
enHome := sites.Sites[1].getPage(KindHome)
|
||||
|
||||
p1, err := enHome.Param("p1")
|
||||
assert.NoError(err)
|
||||
assert.Equal("p1en", p1)
|
||||
|
||||
p1, err = nnHome.Param("p1")
|
||||
assert.NoError(err)
|
||||
assert.Equal("p1nn", p1)
|
||||
}
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user