ngôn ngữ + giá trị vùng của thuộc tính lang HTML5


11

Tôi đang làm việc trên một trang web sẽ cung cấp nội dung được bản địa hóa theo language+regioncách tiếp cận như được mô tả trên trang W3.org này (ví dụ: fr-CAđối với nội dung tiếng Pháp của Canada và fr-FRcho nội dung "Tiếng Pháp của Pháp"). Khi chúng tôi coi nội dung của mỗi nội dung language+regionlà duy nhất, điều quan trọng đối với chúng tôi là các công cụ tìm kiếm xác định đúng và phục vụ nội dung phù hợp.

Bằng cách tìm kiếm trên Internet (ví dụ câu hỏi này ), có vẻ như hầu hết mọi người khuyên bạn nên sử dụng mã ngôn ngữ ISO639 trong langthuộc tính HTML để mô tả ngôn ngữ nội dung. Theo khuyến nghị này, chúng tôi sẽ sử dụng <html lang="fr">để không cho phép phân biệt giữa các language+regionkết hợp đã nói ở trên .

Khi xem xét đặc tả HTML4 , có vẻ như sử dụng language+regionlàm mã ngôn ngữ sẽ hoàn toàn ổn, vì en-USví dụ được đưa ra là một giá trị có thể. Tuy nhiên, tôi không thể tìm thấy bất kỳ xác nhận nào về điều này trong đặc tả HTML5 dường như không cung cấp bất kỳ ví dụ nào về các giá trị được phép có thể.

Từ đó tôi đã cố gắng để có được một câu trả lời thực tế bằng cách nhìn vào những gì những người khổng lồ web đang làm. Tôi đã xem những gì Facebook đang làm: họ cung cấp các phiên bản trang web tiếng Pháp và tiếng Pháp của Candian với các nội dung (hơi) khác nhau, trong khi langgiá trị HTML vẫn giữ nguyên:


URL fr-CA : http://fr-ca.facebook.com
Thuộc tính lang HTML: <html lang="fr">
bản dịch của từ 'email':courriel


URL fr-FR : http://fr-fr.facebook.com/
HTML lang thuộc tính: <html lang="fr">
bản dịch của từ 'email':Adresse électronique

Cách mô tả / tiêu chuẩn để mô tả nội dung được bản địa hóa bằng cách sử dụng language+regionphương pháp tiếp cận trong HTML5 là gì?

Câu trả lời:


5

W3C cung cấp hướng dẫn rất dài này về cách chọn thẻ / thẻ ngôn ngữ.

Các bit quan trọng:

Cú pháp thẻ ngôn ngữ được xác định bởi BCP 47 của IETF . Trước đây, cần phải tham khảo danh sách mã theo các tiêu chuẩn ISO khác nhau để tìm ra các thẻ phụ phù hợp, nhưng bây giờ bạn chỉ cần tìm trong Sổ đăng ký Subtag Ngôn ngữ IANA . Chúng tôi sẽ mô tả đăng ký mới dưới đây.

Bài viết này cung cấp lời khuyên về cách chọn các thành phần của thẻ ngôn ngữ. Để biết tổng quan về các khái niệm được xác định trong BCP 47, hãy xem thẻ Ngôn ngữ trong HTML và XML .

...

Có các công cụ có sẵn cung cấp trợ giúp bổ sung trong khi tìm kiếm sổ đăng ký, chẳng hạn như công cụ Tra cứu Subtag Tra cứu Ngôn ngữ của Richard Ishida .

...

Đảm bảo bạn có ngôn ngữ phù hợp. Đôi khi, nó trả tiền để kiểm tra một vài lựa chọn thay thế. Mark Davis, đồng tác giả của BCP47, viết "Thường thì không rõ nên sử dụng định danh ngôn ngữ nào. Ví dụ, hầu hết mọi người gọi tiếng Ba Tư ở Pakistan thực sự có mã 'lah' và tên chính thức là 'Lahnda'. Có rất nhiều các trường hợp khác mà cùng tên được sử dụng cho các ngôn ngữ khác nhau hoặc nơi tên mà mọi người tìm kiếm không được liệt kê trong sổ đăng ký IANA. "

Bạn có thể tra cứu thông tin ngôn ngữ trong Dân tộc học và tham khảo chéo thông tin đó với Wikipedia . Ethnologue sử dụng mã ba chữ cái giống như BCP47, nhưng bạn sẽ cần chuyển đổi mã 2 chữ cái BCP47 sang bản sao ISO 639-3 của họ để tra cứu ngôn ngữ theo mã. ( Công cụ của Richard Ishida làm điều này cho bạn.)

Có một số ít trường hợp có sẵn các mã ngôn ngữ khác nhau cho những gì nhiều người coi là cùng một ngôn ngữ, ví dụ. Tiếng Philipin và tiếng Tagalog, hoặc Twi và Akan. Không có dấu hiệu nào trong sổ đăng ký mà bạn nên sử dụng, nhưng bạn nên cố gắng đảm bảo rằng trong một ứng dụng hoặc ngữ cảnh bạn nhất quán.

(Nhấn mạnh của tôi.)

Cần lưu ý rằng đăng ký phụ đề ngôn ngữ IANA hơi khó sử dụng. Ngoại trừ các thẻ có nội dung lớn (như en-GB-oed), bạn phải tra cứu thẻ gia đình ngôn ngữ và các thẻ phụ khu vực / biến thể riêng biệt. Và các thẻ / thẻ phụ được sắp xếp theo loại chứ không phải phân cấp. Vì vậy, chỉ cần tiết kiệm thời gian và rắc rối của bạn và sử dụng công cụ tra cứu tuyệt vời của Richard Ishida .


2

Sử dụng <html lang="fr-FR"><html lang="fr-CA">là tốt, nếu chúng tương ứng với nội dung thực tế. Nhưng họ bị bỏ qua bởi các công cụ tìm kiếm, giống như <html lang="fr">là.

HTML5 không có nghĩa là thay đổi việc sử dụng mã ngôn ngữ. Hệ thống các mã như được định nghĩa trong BCP 47 và các phần mở rộng của nó rất phức tạp và cho phép bạn chỉ định một biến thể ngôn ngữ ở mức chính xác đau đớn. Trạng thái của nghệ thuật ở mức độ đơn giản hơn nhiều, và fr-FR và fr-CA đại diện cho mức độ chi tiết tốt nhất mà bạn có thể đạt được trong những ngày này trong phần mềm; khá thường xuyên, chỉ là mã chính (ở đây, fr) có vấn đề.

Không có bằng chứng về các công cụ tìm kiếm thực sự chú ý đến bất kỳ tuyên bố nào về mã ngôn ngữ, chẳng hạn như langcác thuộc tính. Các phần mềm khác, chẳng hạn như dấu gạch nối, trình kiểm tra chính tả, trình tổng hợp giọng nói và thuật toán chọn phông chữ mặc định có thể langtính đến các thuộc tính. Nhưng các công cụ tìm kiếm thực hiện các phân tích heuristic của họ dựa trên nội dung thực tế.

Thật khó để đổ lỗi cho họ vì điều này tạo ra kết quả tốt hơn so với việc tin tưởng các langthuộc tính. Ví dụ, nhiều công cụ tác giả tự động tạo ra lang="en"bất kể nội dung thực tế, mà không cho tác giả biết.


2

[Đây không phải là lĩnh vực mạnh nhất của tôi, vì vậy tôi chỉ trích dẫn tài liệu ở đây, nhưng có vẻ như bạn đã bỏ qua điều gì đó.]

Spec HTML5 đòi hỏi rằng các langgiá trị là một giá trị BCP 47 thẻ . Trong tài liệu đó, bit có liên quan dường như nằm trong phần 3.4:

Ví dụ: việc triển khai có thể ánh xạ các phạm vi ngôn ngữ mở rộng sang các phạm vi cơ bản. Một khả năng khác là việc triển khai sẽ trả về thẻ phù hợp đầu tiên theo thứ tự ASCII. Nếu phạm vi ngôn ngữ là "* -CH" ('CH' đại diện cho Thụy Sĩ) và bộ thẻ bao gồm "de-CH" (tiếng Đức được sử dụng ở Thụy Sĩ), "fr-CH" (tiếng Pháp, Thụy Sĩ) và "nó -CH "(tiếng Ý, Thụy Sĩ), sau đó thẻ" de-CH "sẽ được trả lại.

... Mà khi bạn nhìn vào nó về cơ bản là những gì bạn nhận được từ thông số HTML 4 trích dẫn RFC1766, chi tiết hơn nhiều.


Tôi gặp khó khăn khi định vị đoạn bạn trích dẫn (Tôi đã tìm kiếm một số từ khóa của nó trong liên kết tôi cung cấp và trong phần 3,4 và không thể tìm thấy bất cứ điều gì). Bạn có thể cung cấp cho tôi một liên kết đến nó xin vui lòng? (lý tưởng với thẻ băm nếu có thể).
Tối đa

Thông số kỹ thuật HTML 5 chỉ đề cập đến định dạng cần thiết. Bit được trích dẫn là từ liên kết BCP 47, trong đó định dạng mà nó thực sự được xác định.
Su '
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.