Lokalizacja Blazor
Twórz przyjazne SEO adresy URL z kulturą w Blazor
Używaj tras /en-us/nazwa-strony/ dla bezpośredniego dostępu.
Celem jest stabilny system URL, nie tylko przetłumaczony tekst.
Dlaczego to ważne
Adresy URL z kulturą pomagają użytkownikom i robotom wybrać właściwą stronę
Cookie może zmienić język po żądaniu.
Adres URL można udostępniać, indeksować, buforować i audytować.
Trasy kultury pasują do publicznych artykułów, stron produktów, dokumentacji i narzędzi.
Spis treści
Podstawowe koncepcje
Oddziel język, region, trasę i wersję treści
Zachowaj te terminy oddzielnie przed napisaniem kodu trasowania.
Używaj języka do czytelnego tekstu.
Angielski, niemiecki i francuski to dostępne języki.
Używaj regionu dla lokalnych intencji.
en-us i en-gb mogą wymagać innej pisowni, przykładów i ofert.
Używaj tras do odkrywania.
Trasa taka jak /de-de/blazor/ daje wszystkim jeden stabilny adres.
Używaj treści, gdy intencja się różni.
Napisz osobną wersję, gdy różnią się notatki prawne, ceny lub przykłady.
Sygnały SEO
Połącz trasy kultury z regułami canonical i hreflang
Adres URL to tylko jeden sygnał. Metadane muszą się z nim zgadzać.
Canonical URL
Wskaż każdą zlokalizowaną stronę na jej własny preferowany URL.
hreflang
Połącz każdą rzeczywistą wersję językową lub regionalną za pomocą hreflang.
x-default
Użyj x-default jako neutralnego selektora lub globalnego zapasowego adresu.
BreadcrumbList
Zachowaj breadcrumbs uwzględniające kulturę, aby schemat odpowiadał widocznej hierarchii ścieżki.
Powiązane odniesienie
Metadane i schemat muszą opowiadać tę samą historię
Używaj tych przewodników podczas dodawania metadanych i danych strukturalnych.
Implementacja
Buduj reguły tras w małych kawałkach
Zacznij od jednej usługi, jednego przekierowania i jednego wzorca trasy.
Kontrakt usługi kultury
Centralizuj obsługiwane kultury i analizę URL.
public sealed class CultureRouteService
{
private static readonly string[] SupportedCultures = ["en-us", "en-gb", "de-de"];
public string ResolveCulture(string? routeCulture)
{
if (SupportedCultures.Contains(routeCulture, StringComparer.OrdinalIgnoreCase))
{
return routeCulture!.ToLowerInvariant();
}
return "en-us";
}
}Punkt końcowy przekierowania kultury
Ustaw cookie, a następnie wróć do trasy kultury.
[Route("culture")]
public sealed class CultureController : Controller
{
[HttpGet("set")]
public IActionResult Set(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)));
return LocalRedirect(returnUrl);
}
}Konfiguracja programu
Zarejestruj lokalizację przed mapowaniem tras kontrolera.
builder.Services.AddLocalization();
builder.Services.AddScoped<CultureRouteService>();
app.UseRequestLocalization(options =>
{
options.SetDefaultCulture("en-us");
options.AddSupportedCultures("en-us", "en-gb", "de-de");
options.AddSupportedUICultures("en-us", "en-gb", "de-de");
});
app.MapControllers();Trasa strony
Uczyń segment kultury częścią każdej publicznej trasy.
@page "/{Culture}/pricing/"
<a href="@BuildCultureLink(PageRegistryKey.Blazor)">
Blazor guides
</a>Rzeczywistość tras
Blazor może lokalizować treść, nie szablony tras
Segment kultury się zmienia; slug pozostaje stabilny. Przetłumaczone slugi potrzebują własnej warstwy trasowania.
Trasy Razor @page używają dosłownych szablonów. Lokalizacja tłumaczy tylko tekst strony. PageRegistry i ciągi @page pozostają własnością kodu.
/de-de/seo-friendly-culture-links-in-blazor/
Zmienia się tylko kultura.
/de-de/seo-freundliche-culture-links-in-blazor/
Przetłumaczone slugi wymagają tabeli slugów. Potrzebują też przekierowań, canonicali, map witryn i hreflang.
BuildCultureLink(PageRegistryKey.Blazor)
BuildCultureLink zmienia kulturę, nie slugi.
Typowe błędy
Większość błędów URL kultury to niezgodności tras
Szablon trasy rzadko jest trudną częścią.
Utrzymuj zgodność wszystkich sygnałów po zmianie języka.
Nie przekierowuj ważnej kultury w nieskończoność.
Normalizuj kulturę raz, a potem zatrzymaj, gdy ścieżka już pasuje.
Nie zgaduj domyślnej kultury zbyt późno.
Używaj jednej domyślnej kultury dla routingu, metadanych, mapy witryny i logiki zapasowej.
Nie pozwól, aby dwie strony miały ten sam slug kultury.
Centralne linki do stron ułatwiają przegląd przypadkowych kolizji ścieżek.
Nie ukrywaj ścieżek językowych tylko w stanie klienta.
Crawlerzy i użytkownicy potrzebują prawdziwych wartości href zanim Blazor stanie się interaktywny.
Walidacja
Sprawdź każdą trasę kultury przed publikacją
Waliduj wygenerowany HTML, nie tylko kod Razor.
- Otwórz przynajmniej jeden URL dla każdej obsługiwanej kultury.
- Sprawdź tagi canonical i hreflang w renderowanym źródle.
- Potwierdź, że schemat FAQ odpowiada widocznym pytaniom i odpowiedziom.
- Przeskanuj przekierowania, aby nieobsługiwane kultury nie powodowały pętli.
- Przejrzyj przetłumaczone tytuły, opisy, teksty H1 oraz słowa kluczowe.
Najczęstsze pytania
Czy adresy URL z kulturą są lepsze niż pliki cookie dla SEO?
Tak. Adresy URL z kulturą tworzą strony indeksowalne i łatwe do udostępniania.
Jaka jest różnica między językiem a regionem?
Język kontroluje tekst. Region kontroluje lokalne przykłady i oferty.
Czy nadal potrzebuję hreflang przy trasach z kulturą?
Tak. Trasy z kulturą czynią adresy URL czytelnymi. hreflang je łączy.
Do czego powinien wskazywać canonical na stronach z lokalizacją?
Zazwyczaj canonical wskazuje na tę samą stronę w danej lokalizacji.
Jak uniknąć pętli przekierowań?
Przekieruj raz nieobsługiwane kultury, potem zatrzymaj.