Cultura y enrutamiento de URLs

En un portal multilingüe, donde el idioma activo está en la URL — y cómo se comporta el cambio de idioma — se puede configurar con una sola opción, UrlCultureStrategy. Regula toda la pila de forma consistente: el enrutamiento de solicitudes del servidor, las etiquetas base href y SEO del documento Blazor, y tanto <LanguageDropdown /> Blazor como React coinciden en dónde pertenece el lenguaje. Los portales monolingües no se ven afectados: no hay nada que negociar, así que cada estrategia se comporta de forma idéntica.

Cómo aparece el idioma en la URL

Hay tres estrategias disponibles. El predeterminado conserva el comportamiento que se envió antes de que existiera la opción, por lo que los portales existentes no necesitan cambios.

PathPrefix (por defecto)

El lenguaje predeterminado se sirve en URLs desnudas y en todos los demás idiomas bajo un /{culture} prefijo de ruta:

PathPrefixAll

Cada lenguaje tiene prefijo, incluido el predeterminado — /en/contacts, /fr/contacts — para una única forma de URL simétrica sin prefijo especial y sin prefijo. Una URL de página sin usar redirige al prefijo del idioma resuelto (tomado de la cookie de cultura o Accept-Language, volviendo al idioma por defecto).

CookieOnly

El idioma nunca aparece en la URL. Se resuelve a partir de la .AspNetCore.Culture cookie (volviendo a Accept-Language) y se aplica en su lugar — sin redirecciones, sin reescritura de rutas. Ideal para portales tipo SPA que cambian de idioma sin necesidad de navegar.

Elegir una estrategia

Establece la estrategia para LocalizationOptions configurar la localización en tu host. Por defecto se asigna PathPrefixa , así que esto es opt-in:

Ese es el único cableado necesario: la misma opción controla los hosts Blazor y React (ambos configurados LocalizationOptions de forma idéntica), y todo lo que hay a continuación se deduce de ella.

Href base, canónico y hreflang — manejados por ti

Sea cual sea la estrategia que elijas, el framework mantiene sincronizada la marca de identidad de URL de cada página, por lo que los motores de búsqueda y el circuito Blazor siempre coinciden en dónde se encuentra un lenguaje:

Dos componentes del framework emiten este marcado — <CultureBaseHref /> para la base href y <CultureAlternateLinks /> para las etiquetas de localidad canónica, hreflang y Open Graph. Ambos están presentes PowerPortalsPro.Web.Blazor.Components y son conscientes de la estrategia desde el principio; la demo los integra en su App.razor componente principal de SEO:

Cambio de lenguaje

En <LanguageDropdown /> ambas pilas lista los idiomas configurados del portal y cambia el idioma activo cuando el usuario lo elige. Sigue automáticamente la estrategia configurada:

React
Blazor

Bajo una estrategia de prefijo, el switch navega hasta la URL del idioma elegido, de modo que la página se recarga en su dirección canónica, correctamente prefijada. Debajo CookieOnly cambia de lugar mediante la galleta de cultivo, sin navegación. De cualquier forma, la cookie está configurada, así que cualquier otra superficie del mismo origen permanece sincronizada.

Leyendo la estrategia en una interfaz personalizada

¿Estás construyendo tu propio switcher o enlaces que conozcan el idioma? Lee la estrategia activa directamente — lado servidor desde LocalizationOptions Blazor, o desde el manifiesto de localización en React, donde buildLocalePath() se convierte en la URL de un idioma para la página actual:

React
Blazor

Nota

Todo lo anterior solo entra en vigor cuando un portal soporta más de una cultura de interfaz. Un sitio de una sola cultura sirve cada página en su URL sin importancia, independientemente de la estrategia, así que no hay redirección ni prefijo que pagar por idiomas que no se distribuyen.