nilai bahasa + wilayah atribut lang HTML5

11

Saya sedang mengerjakan situs web yang akan menawarkan konten yang dilokalkan mengikuti language+regionpendekatan seperti yang dijelaskan pada halaman W3.org ini (misalnya fr-CAuntuk konten Perancis Kanada, dan fr-FRuntuk konten "Prancis Prancis"). Karena kami menganggap konten untuk masing-masing language+regionsebagai unik, sangat penting bagi kami bahwa mesin pencari mengidentifikasi dan melayani konten dengan tepat.

Dengan mencari di Internet (mis. Pertanyaan ini ), tampaknya kebanyakan orang merekomendasikan penggunaan kode bahasa ISO639 dalam langatribut HTML untuk menggambarkan bahasa konten. Mengikuti rekomendasi ini, kami akan menggunakan <html lang="fr">yang tidak memungkinkan diferensiasi antara language+regionkombinasi yang disebutkan di atas .

Saat meninjau spesifikasi HTML4 , tampaknya menggunakan language+regionkode bahasa sama sekali OK, karena en-UScontoh diberikan sebagai salah satu nilai yang mungkin. Namun saya tidak dapat menemukan konfirmasi mengenai hal ini dalam spesifikasi HTML5 yang sepertinya tidak memberikan contoh mengenai nilai yang diizinkan.

Dari sana saya mencoba untuk mendapatkan jawaban de facto dengan melihat apa yang dilakukan raksasa web. Saya melihat apa yang dilakukan Facebook: mereka menawarkan versi Candian French dan French French dari situs web mereka dengan (sedikit) konten yang berbeda, sementara nilai HTML langtetap sama:

fr-CA
URL: http://fr-ca.facebook.com
Atribut lang HTML: <html lang="fr">
terjemahan dari kata 'email':courriel

fr-FR
URL: http://fr-fr.facebook.com/
Atribut HTML lang: <html lang="fr">
terjemahan dari kata 'email':Adresse électronique

Apa cara yang direkomendasikan / standar untuk menggambarkan konten yang dilokalkan menggunakan language+regionpendekatan dalam HTML5?

Maks
sumber

Jawaban:

5

W3C menyediakan panduan yang sangat panjang ini dalam memilih tag bahasa / subtag.

Bit penting:

Sintaksis tag bahasa ditentukan oleh BCP 47 IETF . Di masa lalu perlu untuk berkonsultasi daftar kode dalam berbagai standar ISO untuk menemukan subtag yang tepat, tetapi sekarang Anda hanya perlu melihat di Registry Subtag Bahasa IANA . Kami akan menjelaskan registri baru di bawah ini.

Artikel ini memberikan saran tentang cara memilih komponen tag bahasa. Untuk tinjauan umum konsep yang didefinisikan dalam BCP 47, lihat Tag bahasa dalam HTML dan XML .

...

Ada alat yang tersedia yang memberikan bantuan tambahan saat mencari registri, seperti alat Pencarian Bahasa Subtag Richard Ishida .

...

Pastikan Anda memiliki bahasa yang tepat. Terkadang, membayar untuk memeriksa beberapa alternatif. Mark Davis, rekan penulis BCP47, menulis "Seringkali tidak jelas pengidentifikasi bahasa mana yang digunakan. Misalnya, apa yang kebanyakan orang sebut Punjabi di Pakistan sebenarnya memiliki kode 'lah', dan nama resmi 'Lahnda'. Ada banyak kasus lain di mana nama yang sama digunakan untuk bahasa yang berbeda, atau di mana nama yang dicari orang tidak tercantum dalam registri IANA. "

Anda dapat mencari informasi bahasa di SIL Ethnologue dan referensi silang informasi itu dengan Wikipedia . Ethnologue menggunakan kode tiga huruf yang sama dengan BCP47, tetapi Anda harus mengonversi kode 2-huruf BCP47 ke mitra ISO 639-3 mereka untuk mencari bahasa dengan kode. ( Alat Richard Ishida melakukan ini untuk Anda.)

Ada sejumlah kecil kasus di mana kode bahasa yang berbeda tersedia untuk apa yang banyak orang anggap sebagai bahasa yang sama, misalnya. Filipina dan Tagalog, atau Twi dan Akan. Tidak ada indikasi dalam registri yang harus Anda gunakan, tetapi Anda harus mencoba memastikan bahwa dalam satu aplikasi atau konteks Anda konsisten.

(Penekanan milikku.)

Perlu dicatat bahwa pendaftaran subtag bahasa IANA agak sulit digunakan. Dengan pengecualian tag grandfathered-in (seperti en-GB-oed), Anda harus mencari tag keluarga bahasa dan subtag wilayah / varian secara terpisah. Dan tag / subtag disusun berdasarkan jenis dan bukan hierarki. Jadi hemat waktu dan masalah Anda sendiri dan gunakan alat lookup Richard Ishida yang mengagumkan .

Lèse majesté
sumber
2

Menggunakan <html lang="fr-FR">dan <html lang="fr-CA">baik-baik saja, jika mereka sesuai dengan konten yang sebenarnya. Tetapi mereka diabaikan oleh mesin pencari, seperti halnya <html lang="fr">.

HTML5 tidak berarti mengubah penggunaan kode bahasa. Sistem kode sebagaimana didefinisikan dalam BCP 47 dan ekstensi untuknya sangat rumit dan memungkinkan Anda menentukan varian bahasa dengan akurasi yang menyakitkan. Keadaan seni berada pada level yang jauh lebih sederhana, dan fr-FR dan fr-CA mewakili granularity terbaik yang dapat Anda raih saat ini dalam perangkat lunak; cukup sering, hanya kode utama (di sini, fr) yang penting.

Tidak ada bukti mesin pencari yang benar-benar memperhatikan deklarasi kode bahasa, seperti langatribut. Perangkat lunak lain, seperti tanda hubung, pemeriksa ejaan, synthesizer ucapan, dan algoritma pemilihan font default dapat mempertimbangkan langatribut. Tetapi mesin pencari melakukan analisis heuristik mereka berdasarkan konten yang sebenarnya.

Sulit untuk menyalahkan mereka untuk ini, karena ini menghasilkan hasil yang lebih baik daripada mempercayai langatribut. Sebagai contoh, banyak alat pembuat secara otomatis menghasilkan lang="en"terlepas dari konten yang sebenarnya, tanpa memberi tahu penulis.

Jukka K. Korpela
sumber
2

[Ini bukan area terkuatku, jadi aku hanya mengutip dokumentasi di sini, tapi sepertinya kau mengabaikan sesuatu.]

HTML5 spesifikasi mensyaratkan bahwa langnilai menjadi valid BCP 47 tag . Dalam dokumen itu, bit yang relevan tampaknya ada di bagian 3.4:

Misalnya, implementasi dapat memetakan rentang bahasa yang diperluas ke rentang dasar. Kemungkinan lain adalah implementasi mengembalikan tag yang cocok yang pertama dalam urutan ASCII. Jika rentang bahasa adalah "* -CH" ('CH' mewakili Swiss) dan rangkaian tag termasuk "de-CH" (Jerman seperti yang digunakan di Swiss), "fr-CH" (Prancis, Swiss), dan "itu -CH "(Italia, Swiss), maka tag" de-CH "akan dikembalikan.

... yang ketika Anda melihatnya pada dasarnya adalah apa yang Anda dapatkan dari HTML 4 yang mengutip RFC1766, hanya dalam detail yang lebih besar.

Su '
sumber
Saya mengalami kesulitan menemukan paragraf yang Anda kutip (saya mencari beberapa kata kunci di tautan yang saya berikan dan di bagian 3.4 dan tidak dapat menemukan apa pun). Bisakah Anda memberi saya tautan ke sana? (idealnya dengan tag hash jika memungkinkan).
Maks.
Spesifikasi HTML 5 hanya mengacu pada format yang diperlukan. Bit yang dikutip berasal dari tautan BCP 47, di mana format itu sebenarnya didefinisikan.
Su '