2
0

feat(pages): add navigation label translation support
All checks were successful
Build and Release / Create Release (push) Successful in 0s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 4m4s
Build and Release / Unit Tests (push) Successful in 4m38s
Build and Release / Lint (push) Successful in 6m26s
Build and Release / Build Binaries (amd64, darwin, macos) (push) Successful in 3m52s
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Successful in 4m52s
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Successful in 9h5m22s
Build and Release / Build Binaries (arm64, darwin, macos) (push) Successful in 3m38s
Build and Release / Build Binary (linux/arm64) (push) Successful in 7m46s

Add translation support for navigation section labels (Value Props, Features, Pricing, Blog, Gallery, Compare, etc.). Adds TemplateDefaultLabels function that returns template-specific creative names (e.g., "Systems Analysis" for value props in Architecture Deep Dive). Auto-applies defaults when enabling pages or changing templates. Includes UI fields in languages settings and translation JSON serialization. Enables full localization of section headings.
This commit is contained in:
2026-03-17 23:34:29 -04:00
parent 17028589c8
commit 965ef8966f
5 changed files with 186 additions and 9 deletions

View File

@@ -469,3 +469,65 @@ func TemplateDisplayNames() map[string]string {
"architecture-deep-dive": "Architecture Deep Dive",
}
}
// TemplateDefaultLabels returns the template-specific default section labels.
// These are the creative names each template uses for its sections.
func TemplateDefaultLabels(template string) NavigationConfig {
switch template {
case "architecture-deep-dive":
return NavigationConfig{
LabelValueProps: "Systems Analysis",
LabelFeatures: "Technical Specifications",
LabelPricing: "Resource Allocation",
LabelBlog: "Dispatches",
LabelGallery: "Visual Index",
LabelCompare: "Compare",
}
case "bold-marketing":
return NavigationConfig{
LabelValueProps: "Why choose this",
LabelFeatures: "Capabilities",
LabelPricing: "Investment",
LabelBlog: "Blog",
LabelGallery: "Gallery",
LabelCompare: "Compare",
}
case "minimalist-docs":
return NavigationConfig{
LabelValueProps: "Why choose this",
LabelFeatures: "Capabilities",
LabelPricing: "Investment",
LabelBlog: "Blog",
LabelGallery: "Gallery",
LabelCompare: "Compare",
}
case "open-source-hero":
return NavigationConfig{
LabelValueProps: "Why choose us",
LabelFeatures: "Capabilities",
LabelPricing: "Pricing",
LabelBlog: "Blog",
LabelGallery: "Gallery",
LabelCompare: "Compare",
}
case "saas-conversion":
return NavigationConfig{
LabelValueProps: "Why",
LabelFeatures: "Features",
LabelPricing: "Pricing",
LabelBlog: "Blog",
LabelGallery: "Gallery",
LabelCompare: "Compare",
}
default:
// developer-tool, documentation-first, visual-showcase, cli-terminal
return NavigationConfig{
LabelValueProps: "Why choose us",
LabelFeatures: "Capabilities",
LabelPricing: "Pricing",
LabelBlog: "Blog",
LabelGallery: "Gallery",
LabelCompare: "Compare",
}
}
}