Lokalisasi Blazor
Membangun URL budaya ramah SEO di Blazor
Gunakan rute /en-us/nama-halaman/ untuk akses langsung.
Tujuannya adalah sistem URL yang stabil, bukan hanya teks yang diterjemahkan.
Mengapa ini penting
URL budaya membantu pengguna dan perayap memilih halaman yang tepat
Cookie dapat mengubah bahasa setelah permintaan.
URL dapat dibagikan, dirayapi, diindeks, di-cache, dan diaudit.
Rute budaya cocok untuk artikel publik, halaman produk, dokumentasi, dan alat.
Daftar Isi
Konsep inti
Pisahkan bahasa, wilayah, rute, dan versi konten
Jaga istilah ini terpisah sebelum Anda menulis kode routing.
Gunakan bahasa untuk teks yang dapat dibaca.
Bahasa pilihan termasuk Inggris, Jerman, dan Prancis.
Gunakan wilayah untuk maksud lokal.
en-us dan en-gb mungkin memerlukan ejaan, contoh, dan penawaran yang berbeda.
Gunakan rute untuk penemuan.
Rute seperti /de-de/blazor/ memberikan alamat stabil untuk semua orang.
Gunakan konten ketika maksudnya berbeda.
Tulis versi terpisah jika catatan hukum, harga, atau contoh berbeda.
Sinyal SEO
Hubungkan rute budaya dengan aturan canonical dan hreflang
URL hanyalah satu sinyal. Metadata harus sesuai dengannya.
Canonical URL
Tunjukkan setiap halaman lokal ke URL pilihan masing-masing.
hreflang
Tautkan setiap versi bahasa atau wilayah nyata dengan hreflang.
x-default
Gunakan x-default untuk pemilih netral atau cadangan global.
BreadcrumbList
Jaga breadcrumb agar sesuai budaya sehingga skema cocok dengan hierarki rute yang terlihat.
Referensi terkait
Metadata dan skema harus menceritakan hal yang sama
Gunakan panduan ini saat Anda menambahkan metadata dan data terstruktur.
Implementasi
Bangun aturan rute dalam potongan kecil
Mulailah dengan satu layanan, satu pengalihan, dan satu pola rute.
Kontrak layanan budaya
Sentralisasikan budaya yang didukung dan parsing 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";
}
}Titik akhir pengalihan budaya
Setel cookie, lalu kembali ke rute budaya.
[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);
}
}Pengaturan program
Daftarkan lokalisasi sebelum Anda memetakan rute controller.
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();Rute halaman
Jadikan segmen budaya bagian dari setiap rute publik.
@page "/{Culture}/pricing/"
<a href="@BuildCultureLink(PageRegistryKey.Blazor)">
Blazor guides
</a>Realitas rute
Blazor dapat melokalkan konten, bukan template rute
Segmen budaya berubah; slug tetap stabil. Slug terjemahan membutuhkan lapisan routing sendiri.
Rute Razor @page menggunakan template literal. Lokalisasi hanya menerjemahkan teks halaman. PageRegistry dan string @page tetap dimiliki kode.
/de-de/seo-friendly-culture-links-in-blazor/
Hanya budaya yang berubah.
/de-de/seo-freundliche-culture-links-in-blazor/
Slug terjemahan membutuhkan tabel slug. Mereka juga membutuhkan pengalihan, canonical, sitemap, dan hreflang.
BuildCultureLink(PageRegistryKey.Blazor)
BuildCultureLink mengubah budaya, bukan slug.
Kesalahan umum
Sebagian besar bug URL budaya adalah ketidaksesuaian routing
Template rute jarang menjadi bagian yang sulit.
Jaga setiap sinyal tetap selaras setelah perubahan bahasa.
Jangan terus menerus mengalihkan budaya yang valid.
Normalisasi budaya sekali, lalu berhenti jika rute sudah cocok.
Jangan menebak budaya default terlambat.
Gunakan satu budaya default untuk routing, metadata, sitemap, dan logika fallback.
Jangan biarkan dua halaman memiliki slug budaya yang sama.
Tautan halaman pusat memudahkan peninjauan tabrakan rute tidak sengaja.
Jangan sembunyikan rute bahasa hanya di status klien.
Crawler dan pengguna perlu nilai href nyata sebelum Blazor menjadi interaktif.
Validasi
Periksa setiap rute budaya sebelum dipublikasikan
Validasi HTML yang dirender, bukan hanya kode Razor.
- Buka setidaknya satu URL untuk setiap budaya yang didukung.
- Periksa tag canonical dan hreflang di sumber yang dirender.
- Konfirmasi skema FAQ cocok dengan pertanyaan dan jawaban yang terlihat.
- Periksa pengalihan agar budaya yang tidak didukung tidak berulang.
- Tinjau judul, deskripsi, teks H1, dan kata kunci yang sudah diterjemahkan.
Pertanyaan umum
Apakah URL budaya lebih baik daripada cookie untuk SEO?
Ya. URL budaya membuat halaman yang dapat di-crawl dan dibagikan.
Apa perbedaan antara bahasa dan wilayah?
Bahasa mengontrol teks. Wilayah mengontrol contoh dan penawaran lokal.
Apakah saya masih perlu hreflang dengan rute budaya?
Ya. Rute budaya membuat URL jelas. hreflang menghubungkannya.
Apa yang harus canonical tunjukkan pada halaman yang dilokalkan?
Biasanya, canonical menunjuk ke halaman lokal yang sama.
Bagaimana cara menghindari loop pengalihan?
Alihkan budaya yang tidak didukung sekali, lalu hentikan.