summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-27 15:44:41 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-27 16:56:54 +0200
commit6c2db0dfb0720c0af6ffabb438e1d2ea8eb909b4 (patch)
tree6656476fb3702f4043d179bc95e9f69796f6c40e
parent8f293a18557806b5370451c13ea8959e85962c9b (diff)
Add language.LanguageCode
But keep an alias at Site Closes #11027
-rw-r--r--hugolib/config_test.go6
-rw-r--r--hugolib/site_new.go5
-rw-r--r--langs/config.go3
-rw-r--r--langs/language.go7
-rw-r--r--resources/page/site.go1
5 files changed, 17 insertions, 5 deletions
diff --git a/hugolib/config_test.go b/hugolib/config_test.go
index 2f9c6e3f6..f742eb862 100644
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -824,6 +824,7 @@ baseURL = "https://example.com"
disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT"]
[languages]
[languages.en]
+languageCode = "en-US"
title = "English Title"
[languages.en.params]
myparam = "enParamValue"
@@ -840,6 +841,7 @@ title: "My English Section"
title: "My Swedish Section"
---
-- layouts/index.html --
+LanguageCode: {{ eq site.LanguageCode site.Language.LanguageCode }}|{{ site.Language.LanguageCode }}|
{{ range $i, $e := (slice site .Site) }}
{{ $i }}|AllPages: {{ len .AllPages }}|Sections: {{ if .Sections }}true{{ end }}| Author: {{ .Authors }}|BuildDrafts: {{ .BuildDrafts }}|IsMultiLingual: {{ .IsMultiLingual }}|Param: {{ .Language.Params.myparam }}|Language string: {{ .Language }}|Languages: {{ .Languages }}
{{ end }}
@@ -863,10 +865,12 @@ Sections: true|
Param: enParamValue
Param: enParamValue
IsMultiLingual: true
+LanguageCode: true|en-US|
`)
b.AssertFileContent("public/sv/index.html", `
-Param: svParamValue
+Param: svParamValue
+LanguageCode: true|sv|
`)
diff --git a/hugolib/site_new.go b/hugolib/site_new.go
index e5398ba8d..4b3a28bdd 100644
--- a/hugolib/site_new.go
+++ b/hugolib/site_new.go
@@ -361,10 +361,7 @@ func (s *Site) Config() page.SiteConfig {
}
func (s *Site) LanguageCode() string {
- if s.conf.LanguageCode != "" {
- return s.conf.LanguageCode
- }
- return s.language.Lang
+ return s.Language().LanguageCode()
}
// Returns all Sites for all languages.
diff --git a/langs/config.go b/langs/config.go
index 3c7278388..15c0bedbc 100644
--- a/langs/config.go
+++ b/langs/config.go
@@ -24,6 +24,9 @@ type LanguageConfig struct {
// The language name, e.g. "English".
LanguageName string
+ // The language code, e.g. "en-US".
+ LanguageCode string
+
// The language title. When set, this will
// override site.Title for this language.
Title string
diff --git a/langs/language.go b/langs/language.go
index 232331cae..a1b8f4326 100644
--- a/langs/language.go
+++ b/langs/language.go
@@ -102,6 +102,13 @@ func (l *Language) Params() maps.Params {
return l.params
}
+func (l *Language) LanguageCode() string {
+ if l.LanguageConfig.LanguageCode != "" {
+ return l.LanguageConfig.LanguageCode
+ }
+ return l.Lang
+}
+
func (l *Language) loadLocation(tzStr string) error {
location, err := time.LoadLocation(tzStr)
if err != nil {
diff --git a/resources/page/site.go b/resources/page/site.go
index da97dfe6e..ccc36a4ee 100644
--- a/resources/page/site.go
+++ b/resources/page/site.go
@@ -65,6 +65,7 @@ type Site interface {
Title() string
// Returns the configured language code for this Site.
+ // Deprecated: Use .Language.LanguageCode instead.
LanguageCode() string
// Returns the configured copyright information for this Site.