HTML5 dil özelliğinin dil + bölge değeri


11

language+regionBu W3.org sayfasında açıklanan yaklaşıma göre yerelleştirilmiş içerik sunacak bir web sitesi üzerinde çalışıyorum (örneğin fr-CA, Kanada Fransızcası içeriği ve fr-FR"Fransız Fransızcası" içeriği için). Her birinin içeriğinin language+regionbenzersiz olduğunu düşündüğümüz için , arama motorlarının içeriği uygun şekilde tanımlaması ve buna göre sunması bizim için çok önemlidir.

İnternete bakarak (örneğin bu soru ), çoğu insan içerik dilini tanımlamak için HTML özelliğinde bir ISO639 dil kodu kullanılmasını önermektedirlang . Bu tavsiyeyi takiben <html lang="fr">, yukarıda belirtilen language+regionkombinasyonlar arasında ayrım yapılmasını sağlayamayacak şekilde kullanılacaktır .

HTML4 belirtimini incelerken, örnek olası bir değer olarak verildiğinden language+region, dil kodu olarak kullanmanın mükemmel bir şekilde uygun olacağı anlaşılmaktadır en-US. Ancak , bunun olası izin verilen değerlere ilişkin herhangi bir örnek sunmayan HTML5 spesifikasyonunda herhangi bir onay bulamadım .

Oradan web devlerinin ne yaptığına bakarak fiili bir cevap almaya çalıştım. Facebook'un ne yaptığına baktım: HTML langdeğeri aynı kalırken, web sitelerinin Candian Fransızca ve Fransızca Fransızca sürümlerini (biraz) farklı içerikle sunuyorlar :

fr-CA
URL'si: http://fr-ca.facebook.com
HTML lang özelliği: <html lang="fr">
'e-posta' kelimesinin çevirisi:courriel

fr-FR
URL: http://fr-fr.facebook.com/
HTML lang özelliği: <html lang="fr">
'e-posta' kelimesinin çevirisi:Adresse électronique

language+regionHTML5'teki yaklaşım kullanılarak yerelleştirilen içeriği tanımlamanın önerilen / standart yolu nedir?

Yanıtlar:


5

W3C, dil etiketlerini / alt etiketlerini seçme konusunda bu çok uzun kılavuzu sağlar .

Önemli bitler:

Dil etiketi sözdizimi, IETF'in BCP 47'si tarafından tanımlanır . Geçmişte, doğru alt etiketleri bulmak için çeşitli ISO standartlarında kod listelerine başvurmak gerekiyordu, ancak şimdi sadece IANA Dil Alt Etiketi Kayıt Defterine bakmanız gerekiyor . Yeni kayıt defterini aşağıda açıklayacağız.

Bu makalede, bir dil etiketinin bileşenlerinin nasıl seçileceği konusunda tavsiyeler verilmektedir. BCP 47'de tanımlanan kavramlara genel bir bakış için bkz . HTML ve XML'deki dil etiketleri .

...

Kayıt defterinde arama yaparken Richard Ishida'nın Dil Alt Etiketi Arama aracı gibi ek yardım sağlayan araçlar vardır .

...

Doğru dile sahip olduğunuzdan emin olun. Bazen birkaç alternatifi kontrol etmek işe yarar. BCP47'nin ortak yazarı Mark Davis şöyle yazıyor: "Hangi dil tanımlayıcısının kullanılacağı açık değildir. Örneğin, Pakistan'da Pencap olarak adlandırılan çoğu insanın aslında 'lah' kodu ve 'Lahnda' resmi adı vardır. aynı adın farklı diller için kullanıldığı veya kullanıcıların aradığı adın IANA kayıt defterinde yer almadığı diğer durumlar. "

SIL Ethnologue içindeki dil bilgilerine bakabilir ve Wikipedia ile bu bilgilere çapraz referansta bulunabilirsiniz . Ethnologue, BCP47 ile aynı üç harfli kodları kullanır, ancak bir dili kodla aramak için BCP47 2 harfli kodlarını ISO 639-3 muadillerine dönüştürmeniz gerekir . ( Richard Ishida'nın aracı bunu sizin için yapar.)

Birçok kişinin aynı dil olarak kabul edeceği şeyler için farklı dil kodlarının mevcut olduğu az sayıda durum vardır, örn. Filipinli ve Tagalog veya Twi ve Akan. Kayıt defterinde kullanmanız gerektiğine dair bir belirti yoktur, ancak tek bir uygulama veya bağlam içinde tutarlı olduğunuzdan emin olmalısınız.

(Vurgu benim.)

Unutulmamalıdır IANA dil alt etiketi kayıt kullanmak biraz zor. en-GB-oedDedelenmiş etiketler (gibi ) hariç , dil ailesi etiketini ve bölge / varyant alt etiketlerini ayrı ayrı aramanız gerekir. Etiketler / alt etiketler hiyerarşi yerine türe göre düzenlenir. Bu yüzden kendinize zaman ve sorundan tasarruf edin ve Richard Ishida'nın muhteşem arama aracını kullanın .


2

Gerçek içeriğe karşılık geldiyse <html lang="fr-FR">ve <html lang="fr-CA">öğelerini kullanmak iyidir. Ancak, arama motorları gibi görmezden gelinir <html lang="fr">.

HTML5, dil kodlarının kullanımını değiştirmek anlamına gelmez. BCP 47'de tanımlanan kod sistemi ve uzantıları çok ayrıntılıdır ve ağrılı hassasiyette bir dil değişkeni belirtmenize izin verir. Teknolojinin durumu çok, çok daha basit seviyelerde ve fr-FR ve fr-CA, bu günlerde yazılımda elde edebileceğiniz en iyi ayrıntı düzeyini temsil ediyor; oldukça sık, sadece ana kod (burada, fr) önemlidir.

Arama motorlarının, langnitelikler gibi dil kodu bildirimlerine dikkat ettiğini gösteren hiçbir kanıt yoktur . Tireleme, yazım denetimi, konuşma sentezleyici ve varsayılan yazı tipi seçim algoritmaları gibi diğer yazılımlar langnitelikleri dikkate alabilir . Ancak arama motorları sezgisel analizlerini gerçek içeriğe göre yapar.

Bunun için onları suçlamak zordur, çünkü bu langözelliklere güvenmekten daha iyi sonuçlar verir . Örneğin, birçok yazma aracı lang="en", yazara bildirmeden, gerçek içeriğe bakılmaksızın otomatik olarak oluşturulur .


2

[Bu benim en güçlü alanım değil, bu yüzden burada sadece belgelere atıfta bulunuyorum, ancak bir şeyleri göz ardı ettiğiniz anlaşılıyor.]

HTML5 spesifikasyonu , değerin geçerli bir BCP 47 etiketi olmasını gerektirir . Bu belgede, ilgili bit bölüm 3.4'te görülmektedir:lang

Örneğin, bir uygulama genişletilmiş dil aralıklarını temel aralıklarla eşleyebilir. Bir uygulamanın ASCII düzeninde ilk eşleşen etiketi döndürmesi başka bir olasılık olabilir. Dil aralığı "* -CH" ise ('CH' İsviçre'yi temsil eder) ve "de-CH" (İsviçre'de kullanılan Almanca), "fr-CH" (Fransızca, İsviçre) ve " -CH "(İtalyanca, İsviçre), daha sonra" de-CH "etiketi döndürülür.

... baktığınızda, RFC1766'dan alıntılanan HTML 4 spesifikasyonundan aldığınız şey, çok daha ayrıntılı.


Alıntıladığınız paragrafı bulmakta zorlanıyorum (sağladığım bağlantıda ve bölüm 3.4'te bazı anahtar kelimelerini aradım ve hiçbir şey bulamadım). Bana bir link verebilir misiniz lütfen? (mümkünse karma etiketi ile ideal).
Maksimum

HTML 5 spesifikasyonu sadece gerekli formatı ifade eder. Alıntılanan bit, bu formatı gerçekten tanımladığı BCP 47 bağlantısından alınmıştır.
'Su'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.