localization
Audit cara sesebuah halaman mengisytiharkan bahasa dan wilayahnya. Mengembalikan atribut <html lang>, pengepala Content-Language, setiap pautan hreflang rel="alternate", bahasa yang benar-benar dikesan daripada teks yang kelihatan, dan meta penyasaran geo secara pilihan — supaya anda dapat melihat di mana pengisytiharan sesebuah tapak tidak sepadan dengan kandungannya.
Kes Penggunaan
Audit hreflang
Senaraikan pautan bahasa alternatif yang diterbitkan oleh sesebuah halaman dan pastikan setnya lengkap serta saling merujuk antara lokal.
Kesan Halaman Berlabel Salah
Bandingkan html_lang dengan detected_language. Halaman yang mengisytiharkan en tetapi berbahasa Sepanyol ialah kecacatan SEO yang sebenar, dan inilah caranya ia ditemui.
Liputan Pesaing
Lihat bahasa yang benar-benar dihantar oleh pesaing, terus daripada set hreflang mereka, dan bukannya meneka daripada struktur URL mereka.
Semakan Regresi dalam CI
Sahkan language_count dan is_multilingual selepas penggunaan, supaya binaan i18n yang rosak tidak dihantar secara senyap dengan separuh lokal hilang.
Inventori Penyasaran Geo
Kumpulkan meta geo.region dan geo.position merentas sesebuah tapak untuk melihat halaman mana yang membawa isyarat serantau.
Ujian Respons Setempat
Hantar keutamaan Accept-Language bersama permintaan dan lihat sama ada pelayan mengubah apa yang dikembalikannya.
Endpoint
/api/v1/tools/localizationParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | Halaman yang akan diaudit. Mestilah URL http atau https mutlak yang sah. Example: https://example.com/pricing |
target_language | string | Optional | - | Bahasa yang anda jangkakan. Dihantar sebagai `Accept-Language` permintaan, dikembalikan semula, dan dibandingkan dengan bahasa yang dikesan serta `html_lang` untuk menghasilkan `matches_target`. Perbandingannya tepat, jadi `es` tidak sepadan dengan `es-ES`. Example: es |
target_country | string | Optional | - | Negara yang anda jangkakan. Dikembalikan semula dan dihantar sebagai pengepala permintaan `X-Country-Code`. Pengepala itu ialah konvensyen CrawlForge dan bukan standard, jadi kebanyakan pelayan akan mengabaikannya. Example: ES |
detect_language | boolean | Optional | true | Kesan bahasa daripada teks halaman yang kelihatan. Mengembalikan kod ISO 639-1, atau `und` apabila teks terlalu pendek atau bahasanya tidak dikenali. Tetapkan false dan `detected_language` kekal `und`. Example: true |
extract_hreflang | boolean | Optional | true | Kumpulkan pautan hreflang `rel="alternate"`. Tetapkan false dan `alternate_languages` kembali kosong, yang turut memaksa `language_count` kepada 0 dan `is_multilingual` kepada false. Example: true |
check_geo_targeting | boolean | Optional | false | Baca tag meta `geo.region` dan `geo.position`. Objek `geo_targeting` tiada melainkan anda memintanya. Example: true |
timeout | number | Optional | 10000 | Had masa pengambilan dalam milisaat, antara 1000 dan 30000. Example: 10000 |
respect_robots | boolean | Optional | true | Hormati robots.txt tapak sasaran. Dibiarkan pada `true`, laluan yang dilarang untuk `CrawlForge` ditolak dengan 403 sebelum apa-apa diambil dan tiada credits dicaj. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda. Example: true |
Isyarat Yang Dibaca
lang pada elemen <html> — apa yang didakwa oleh halaman itu. null apabila tiada.Content-Language. Bebas daripada HTML, dan kerap bercanggah dengannya.<link rel="alternate" hreflang="…">, mengikut susunan dokumen. x-default dikembalikan seperti mana-mana entri lain.Apa yang localization tidak lakukan
Ia membaca satu halaman dan tidak menerapkan apa-apa pada panggilan lain: target_language dan target_country hanya membentuk permintaan ini, dan tiada panggilan fetch_url, scrape atau stealth_mode selepasnya yang mengambilnya. Tiada proksi terlibat, jadi permintaan keluar dari alamat yang sama seperti alat lain dan sekatan geo tidak ditarik balik — sekatan serantau mengikut IP keluar. Untuk meminta halaman dalam bahasa tertentu, hantar bahasa itu pada panggilan yang membuat permintaan: fetch_url dengan headers: {"Accept-Language": "de-DE,de;q=0.9"}, atau stealth_mode dengan stealthConfig: {locale, timezone}; scrape tiada parameter locale. Pada pelayan MCP CrawlForge, localization ialah permukaan yang berbeza: operasi seperti configure_country memulangkan nilai locale sesebuah negara (Accept-Language, zon waktu, mata wang, domain carian) untuk 27 negara dan juga tidak menerapkan satu pun — note dalam hasilnya menamakan parameter untuk menghantarnya.
Contoh Permintaan
curl -X POST https://crawlforge.dev/api/v1/tools/localization \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/pricing",
"target_language": "es",
"check_geo_targeting": true
}'Contoh Respons
{ "success": true, "data": { "url": "https://example.com/pricing", "detected_language": "en", "html_lang": "en-US", "content_language_header": "en-US", "alternate_languages": [ { "lang": "en", "url": "https://example.com/pricing" }, { "lang": "es", "url": "https://example.com/es/pricing" }, { "lang": "zh-Hans", "url": "https://example.com/zh-Hans/pricing" }, { "lang": "x-default", "url": "https://example.com/pricing" } ], "language_count": 4, "is_multilingual": true, "target_language": "es", "matches_target": false, "target_country": "ES", "geo_targeted": true, "geo_targeting": { "region": "US-CA", "position": "37.7749;-122.4194", "has_geo_meta": true } }, "credits_used": 2, "credits_remaining": 998, "processing_time": 420}data.detected_languageKod ISO 639-1 yang dikesan daripada teks yang kelihatan, atau `und`. Bandingkan dengan `html_lang` — ketidakpadanan itulah penemuannyadata.html_langAtribut `lang` tepat seperti ditulis, termasuk subtag wilayah. `null` jika halaman tiadadata.content_language_headerPengepala respons `Content-Language`, atau `null`data.alternate_languagesSetiap alternatif hreflang, mengikut susunan dokumen. Susunan atribut dalam setiap tag tidak pentingdata.language_countPanjang `alternate_languages` — bukan kiraan bahasa yang berbezadata.is_multilingualTrue apabila sekurang-kurangnya satu alternatif hreflang dijumpaidata.matches_targetTrue apabila `target_language` sama dengan bahasa yang dikesan atau `html_lang`. Perbandingan rentetan yang tepat, jadi `es` gagal terhadap `es-ES`data.geo_targetedMengulang bendera `check_geo_targeting` yang anda hantar. Ia bukan keputusan — untuk itu baca `geo_targeting.has_geo_meta`data.geo_targeting.positionKandungan `geo.position` mentah, lazimnya `latitud;longitud`credits_used2 credits tetap setiap URLPengendalian Ralat
URL Tidak Sah (400 Bad Request)
VALIDATION_ERROR. url diperlukan dan mesti dihurai sebagai URL mutlak. Status yang sama meliputi timeout di luar 1000-30000.
Halaman Terlalu Besar (413 Payload Too Large)
RESPONSE_TOO_LARGE. Halaman melebihi had bacaan 25MB dan ditolak dan bukannya ditimbal.
Sasaran Tamat Masa (504 Gateway Timeout)
FETCH_TIMEOUT. Halaman berhenti bertindak balas semasa menghantar badannya. Naikkan timeout, sehingga 30000ms.
Pengambilan Gagal (502 Bad Gateway)
FETCH_FAILED. Badan respons tidak dapat dibaca — sambungan ditetapkan semula, atau badan yang bukan teks boleh nyahkod.
Analisis Gagal (500 Internal Server Error)
TOOL_ERROR. Panggilan yang gagal tidak dicaj; credits hanya ditolak selepas audit berjaya.
Disekat oleh robots.txt (403 Forbidden)
robots.txt tapak sasaran melarang laluan ini untuk CrawlForge. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots.
Halaman bukan 200 tetap dianalisis dan bukannya ditolak — 404 dengan <html lang> yang sah mengembalikan hasil biasa. Periksa status sasaran secara berasingan dengan fetch_url jika itu penting bagi anda.
Kos Credit
Apa yang Disertakan:
Pengekstrakan <html lang> dan Content-Language
Set hreflang rel=alternate yang lengkap, mengikut susunan dokumen
Pengesanan bahasa trigram ke atas teks yang kelihatan
Tag meta geo.region dan geo.position
Keputusan padanan bahasa sasaran
Cadangan Pelan:
Free Plan: 1,000 credits percubaan sekali sahaja = 500 URL
Hobby Plan: 5,000 credits = 2,500 URL ($19/mo)
Professional Plan: 100,000 credits = 50,000 URL ($99/mo)
Alat Berkaitan
Bersedia untuk mencuba localization? Daftar secara percuma dan dapatkan 1,000 credits untuk mula membina.