Culture & Routage d’URL

Sur un portail multilingue, où la langue active se trouve dans l’URL — et comment le changement de langue se comporte — est configurable avec une seule option, UrlCultureStrategy. Il régit l’ensemble de la pile de manière cohérente : le routage des requêtes du serveur, les balises href et SEO de base du document Blazor, ainsi que les <LanguageDropdown /> tags sur Blazor et React, s’accordent tous sur la place du langage. Les portails monolingues ne sont pas affectés — il n’y a rien à négocier, donc chaque stratégie se comporte de la même manière.

Comment la langue apparaît dans l’URL

Trois stratégies sont disponibles. Le défaut conserve le comportement qui avait été livré avant l’existence de l’option, donc les portails existants n’ont pas besoin de modifications.

PathPrefixe (par défaut)

Le langage par défaut est servi aux URL nues et sur tous les autres langages sous un /{culture} préfixe de chemin :

PathPrefixAll

Chaque langage est préfixé, y compris le par défaut — /en/contacts, /fr/contacts — pour une forme d’URL symétrique unique sans préfixe spécial par défaut. Une URL de page nue redirige vers le préfixe de la langue résolue (pris du cookie de culture ou Accept-Language, revenant à la langue par défaut).

CookieOnly

La langue n’apparaît jamais dans l’URL. Il est résolu à partir du .AspNetCore.Culture cookie (revenant à Accept-Language) et appliqué en place — pas de redirections, pas de réécriture de chemin. Idéal pour les portails de type SPA qui changent de langue sans avoir à naviguer.

Choisir une stratégie

Définissez la stratégie de LocalizationOptions configuration de la localisation dans votre hôte. Par défaut, PathPrefixil est donc indiqué par consentement :

C’est le seul câblage nécessaire — la même option pilote les hôtes Blazor et React (tous deux configurés LocalizationOptions de la même manière), et tout ce qui suit en découle.

Base href, canonique et hreflang — gérés pour vous

Quelle que soit la stratégie choisie, le framework synchronise le balisage d’identité URL de chaque page, de sorte que les moteurs de recherche et le circuit Blazor s’accordent toujours sur l’emplacement d’un langage :

Deux composants du cadre émettent ce balisage — <CultureBaseHref /> pour le href de base et <CultureAlternateLinks /> pour les balises de localisation canonique, hreflang et Open Graph. Les deux sont présents PowerPortalsPro.Web.Blazor.Components et attentifs à la stratégie dès la sortie des sentiers ; la démo les intègre à son App.razor composant SEO :

Changement de langage

Sur <LanguageDropdown /> les deux piles liste les langues configurées du portail et change la langue active lorsque l’utilisateur le choisit. Elle suit automatiquement la stratégie configurée :

React
Blazor

Sous une stratégie de préfixe, le commutateur navigue vers l’URL de la langue choisie, de sorte que la page se recharge à son adresse canonique, correctement préfixée. En dessous CookieOnly , elle se replace via le cookie de culture, sans navigation. Dans tous les cas, le cookie est réglé, donc toute autre surface d’origine similaire reste synchronisée.

Lecture de la stratégie dans une interface personnalisée

Construire votre propre switcher ou des liens sensibles à la langue ? Lisez la stratégie active directement — côté serveur depuis LocalizationOptions Blazor, ou depuis le manifeste de localisation dans React, où buildLocalePath() elle devient l’URL d’une langue pour la page actuelle :

React
Blazor

Note

Tout ce qui précède ne prend effet que lorsqu’un portail prend en charge plus d’une culture d’interface. Un site à culture unique sert chaque page à son URL nue, quelle que soit la stratégie, donc il n’y a pas de redirection ni de préfixe à payer pour des langues que vous ne distribuez pas.