Cultura & Roteamento de URL

Em um portal multilíngue, onde a linguagem ativa está na URL — e como a troca de idioma se comporta — é configurável com uma única opção, UrlCultureStrategy. Ele governa toda a stack de forma consistente: o roteamento de requisições do servidor, as tags base href e SEO do documento Blazor, e <LanguageDropdown /> tanto o Blazor quanto o React concordam sobre onde a linguagem pertence. Portais de um único idioma não são afetados — não há nada a negociar, então toda estratégia se comporta de forma idêntica.

Como a linguagem aparece na URL

Três estratégias estão disponíveis. O padrão preserva o comportamento que foi enviado antes da opção existir, então portais existentes não precisam de alterações.

PathPrefix (padrão)

A linguagem padrão é servida em URLs simples e em todas as outras linguagens sob um /{culture} prefixo de caminho:

PathPrefixAll

Cada linguagem tem prefixo, incluindo o padrão — /en/contacts, /fr/contacts — para uma única forma de URL simétrica, sem padrão especial sem prefixo. Uma URL de página vazia redireciona para o prefixo da linguagem resolvida (retirado do cookie de cultura ou Accept-Language, voltando ao idioma padrão).

CookieOnly

O idioma nunca aparece na URL. É resolvido a partir do .AspNetCore.Culture cookie (voltando para Accept-Language) e aplicado no local — sem redirecionamentos, sem reescrita de caminhos. Ideal para portais no estilo SPA que mudam de idioma sem precisar navegar.

Escolhendo uma estratégia

Defina a estratégia de LocalizationOptions onde você configura a localização no seu host. Ele define por padrão , PathPrefixentão este é o opt-in:

Essa é a única fiação necessária — a mesma opção alimenta os hosts Blazor e React (ambos configurados LocalizationOptions da mesma forma), e tudo abaixo decorre disso.

Base href, canonical & hreflang — cuidando para você

Qualquer que seja a estratégia escolhida, o framework mantém a marcação de identidade de URL de cada página sincronizada com ela, então os mecanismos de busca e o circuito Blazor sempre concordam sobre onde uma linguagem está localizada:

Dois componentes do framework emitem essa marcação — <CultureBaseHref /> para o href base e <CultureAlternateLinks /> para as tags de localização canônica, hreflang e Open Graph. Ambos vivem e PowerPortalsPro.Web.Blazor.Components são conscientes da estratégia desde o início; a demonstração os integra em seu App.razor componente principal de SEO:

Troca de linguagem

O <LanguageDropdown /> on both stacks lista as linguagens configuradas do portal e troca a ativa quando o usuário escolhe. Ele segue automaticamente a estratégia configurada:

React
Blazor

Sob uma estratégia de prefixo, o switch navega até a URL do idioma escolhido, de modo que a página recarrega em seu endereço canônico, com prefixo correto. Por baixo CookieOnly , ele muda de posição via o cookie de cultura, sem navegação. De qualquer forma, o cookie está definido, então qualquer outra superfície da mesma origem permanece sincronizada.

Lendo a estratégia na interface personalizada

Construindo seu próprio switcher ou links que conheçam a língua? Leia a estratégia ativa diretamente — do lado do servidor em LocalizationOptions Blazor, ou do manifesto de localização no React, onde buildLocalePath() ela se transforma na URL de um idioma para a página atual:

React
Blazor

Nota

Tudo acima só entra em vigor quando um portal suporta mais de uma cultura de interface. Um site de cultura única atende todas as páginas em sua URL vazia, independentemente da estratégia, então não há redirecionamento ou sobrecarga de prefixo para pagar por idiomas que você não exporta.