- Add ENABLED_LOCALES configuration in i18n/links.js (currently ["pt"]) - Redirect inactive locale prefixes to /pt via 307 in middleware.js - Restrict root locale negotiation to active locales with fallback to pt - Hide LanguageSelector when only one locale is enabled - Generate sitemap, hreflang alternates, and og:locale only for active locales - Generate static SSG pages only for active locales in build - Adapt check:i18n and smoke-imagem.sh to validate active vs inactive locales Co-Authored-By: Antigravity <noreply@google.com>
103 lines
2.0 KiB
JavaScript
103 lines
2.0 KiB
JavaScript
import { defineRouting } from "next-intl/routing";
|
|
import { ENABLED_LOCALES } from "./links";
|
|
|
|
export const routing = defineRouting({
|
|
locales: ENABLED_LOCALES,
|
|
defaultLocale: ENABLED_LOCALES.includes("en") ? "en" : (ENABLED_LOCALES[0] || "pt"),
|
|
localePrefix: "always",
|
|
pathnames: {
|
|
"/": "/",
|
|
"/series": {
|
|
pt: "/series",
|
|
en: "/series",
|
|
es: "/series",
|
|
fr: "/series",
|
|
de: "/serien",
|
|
"zh-CN": "/series",
|
|
},
|
|
"/series/[key]": {
|
|
pt: "/series/[key]",
|
|
en: "/series/[key]",
|
|
es: "/series/[key]",
|
|
fr: "/series/[key]",
|
|
de: "/serien/[key]",
|
|
"zh-CN": "/series/[key]",
|
|
},
|
|
"/catalogo": {
|
|
pt: "/catalogo",
|
|
en: "/catalog",
|
|
es: "/catalogo",
|
|
fr: "/catalogue",
|
|
de: "/katalog",
|
|
"zh-CN": "/catalog",
|
|
},
|
|
"/comparacao": {
|
|
pt: "/comparacao",
|
|
en: "/compare",
|
|
es: "/comparacion",
|
|
fr: "/comparaison",
|
|
de: "/vergleich",
|
|
"zh-CN": "/compare",
|
|
},
|
|
"/componentes": {
|
|
pt: "/componentes",
|
|
en: "/components",
|
|
es: "/componentes",
|
|
fr: "/composants",
|
|
de: "/komponenten",
|
|
"zh-CN": "/components",
|
|
},
|
|
"/diagnostico": {
|
|
pt: "/diagnostico",
|
|
en: "/diagnostics",
|
|
es: "/diagnostico",
|
|
fr: "/diagnostic",
|
|
de: "/diagnose",
|
|
"zh-CN": "/diagnostics",
|
|
},
|
|
"/frameworks": {
|
|
pt: "/frameworks",
|
|
en: "/frameworks",
|
|
es: "/frameworks",
|
|
fr: "/frameworks",
|
|
de: "/frameworks",
|
|
"zh-CN": "/frameworks",
|
|
},
|
|
"/frameworks/[key]": {
|
|
pt: "/frameworks/[key]",
|
|
en: "/frameworks/[key]",
|
|
es: "/frameworks/[key]",
|
|
fr: "/frameworks/[key]",
|
|
de: "/frameworks/[key]",
|
|
"zh-CN": "/frameworks/[key]",
|
|
},
|
|
"/glossario": {
|
|
pt: "/glossario",
|
|
en: "/glossary",
|
|
es: "/glosario",
|
|
fr: "/glossaire",
|
|
de: "/glossar",
|
|
"zh-CN": "/glossary",
|
|
},
|
|
"/seletor": {
|
|
pt: "/seletor",
|
|
en: "/selector",
|
|
es: "/selector",
|
|
fr: "/selecteur",
|
|
de: "/auswahl",
|
|
"zh-CN": "/selector",
|
|
},
|
|
"/sobre": {
|
|
pt: "/sobre",
|
|
en: "/about",
|
|
es: "/acerca",
|
|
fr: "/a-propos",
|
|
de: "/ueber-uns",
|
|
"zh-CN": "/about",
|
|
},
|
|
"/livro": {
|
|
pt: "/livro",
|
|
},
|
|
},
|
|
});
|