2012-07-19 31 views
8

Một số ngôn ngữ có chuyển ngữ được chấp nhận sang các ký tự Latinh, chẳng hạn như tiếng Hindi, tiếng Nga hoặc tiếng Nhật. Ví dụ, tiếng Hindi cho 'Người đàn ông đang ăn' được viết trong kịch bản Devanagari là 'आदमी खा रहा है।'. Chuyển ngữ, nó sẽ là 'Aadmi kha raha hai'. (hoặc một cái gì đó tương tự; phương pháp này thường được sử dụng trực tuyến, đặc biệt nếu mọi người không có quyền truy cập vào bàn phím tiếng Hindi.)Cách chính xác để sử dụng thuộc tính lang với cách phát âm phiên âm (nếu có) là gì?

Trong trường hợp này, chúng tôi đang sử dụng tập lệnh Latinh nhưng vẫn viết tiếng Hindi, có thể chấp nhận để đánh dấu một trong hai biến thể sử dụng lang thuộc tính:

<span lang="hi">आदमी खा रहा है।</span>hay<span lang="hi">Aadmi kha raha hai.</span>

câu hỏi của tôi sau đó là về ngôn ngữ mà thường được viết bằng bảng chữ cái Latin bản thân, nhưng có thể có hướng dẫn ngữ âm cho phi loa/học viên - hoặc là IPA hoặc phát âm ad hoc - có bất kỳ thực hành nào tốt nhất không ce về ý nghĩa ngữ nghĩa?

Ví dụ: bằng tiếng Ai-len nếu tôi nói "Người đàn ông đang ăn", tôi sẽ nói "Đó là một nỗi sợ hãi." Tôi có thể đánh dấu này lên như:

<span lang="ga">Tá an fear ag ithe.</span>

Nếu tôi là đưa ra một hướng dẫn phát âm cho người không loa, tôi có thể nói "Taw trên xa ví dụ ih-ông". Câu không phải là vô nghĩa, (như văn bản 'lorem ipsum') nhưng không phải là câu trong tiếng Anh hoặc tiếng Ai-len.

Việc sử dụng đúng các thuộc tính liên quan đến ngôn ngữ trong HTML trong trường hợp này là gì hoặc trường hợp sử dụng này có không được bao gồm trong đặc điểm kỹ thuật hiện tại không?

+0

Thú vị để xem Ailen trên SO :) –

+1

@ Darragh Tư tưởng tại sao không sử dụng ví dụ gần nhà :) – anotherdave

Trả lời

5

Phiên bản ngắn: nếu bạn muốn cụ thể nói nó được viết bằng bảng chữ cái Latinh, hãy tìm "hi-Latn" hoặc "ga-Latn" cho ví dụ bạn đã cung cấp.

phiên bản Long:

The W3C spec for the lang attribute không đề cập cụ thể này - nó cho thấy một số sử dụng điều này phụ thuộc vào chính tả (ví dụ như sử dụng nó để làm cho các phiên bản chất lượng cao của các nhân vật được sử dụng), nhưng một số mà không (chẳng hạn như cho công cụ tìm kiếm).

RFC1766, chỉ định định dạng cho thẻ ngôn ngữ, cho thấy rằng các thẻ chuyên ngành có thể được sử dụng để đại diện cho "biến thể tập lệnh, chẳng hạn như az-arabic và az-cyrillic". Có thêm thông tin về mã phụ của tập lệnh in this article on the W3C site và thêm một chút trong the later RFC5646. Cái đó trỏ đến một số ISO standard list of script names và trong danh sách đó, tập lệnh bạn muốn là "Latn" vì chúng là các dạng chữ viết hoa của các tập lệnh khác.

(Điều này không bao gồm những thứ như quy định cụ thể như thế nào bạn đã làm phiên âm, tuy nhiên, cho các ngôn ngữ có thể có nhiều hơn một tiêu chuẩn ví dụ như Trung Quốc trong kịch bản tiếng Latin bằng Wade-Giles so với bính âm.)

+0

Cảm ơn, đó là điều thú vị về hậu tố '-Latn'. Mặc dù sự khác biệt mà tôi đang cố gắng so sánh với tiếng Hindi là tiếng Ai-len là tiếng La Tinh theo mặc định: Vì vậy, khi phiên âm tiếng Hindi, nó được viết đúng ngữ âm trong tập lệnh mới và vẫn được coi là 'Tiếng Hindi'. Ngữ âm chính tả của một ngôn ngữ đã có trong tiếng Latin, như tiếng Ailen (hoặc tiếng Pháp/tiếng Đức/v.v.) thể hiện một cái gì đó mà không thể được coi là một trong hai ngôn ngữ. Cảm ơn các liên kết mặc dù, tôi đã có một số bài tập về nhà mới để đọc lên trên :) – anotherdave

+1

Là một phần thưởng: Tôi không chắc chắn cách bạn đọc chính tả ngữ âm cho văn bản Ailen, nhưng http: //www.iana. org/assignment/language-subtag-registry có các thẻ biến thể bạn có thể sử dụng nếu nó nằm trong IPA (ga-fonipa) hoặc X-SAMPA (ga-fonxsamp). – bouteillebleu

+0

Hoàn toàn, 100% không chuẩn :) Wow, điều đó thật thú vị như tôi đã sử dụng các tiêu chuẩn IPA, điều đó sẽ hoàn hảo. Tôi cũng thấy từ trang đó có 'biến thể' Zyyy 'và' Zzzz' (cho 'kịch bản chưa xác định' và 'tập lệnh không mã hóa' tương ứng) cũng có thể được sử dụng cho các biến thể không chuẩn. – anotherdave

0

Bạn có thể muốn xem xét đánh dấu nó là <ruby>.

Ví dụ:

<ruby lang="hi">आदमी<rt>Aadmi</rt> खा<rt>kha</rt> रहा<rt>raha</rt> है।<rt>hai</rt></ruby> 
+2

Phải thừa nhận rằng tôi không phải là chuyên gia nhưng điều này có vẻ giống như câu trả lời. Có thể downvoter xin vui lòng bình luận? (Có thể nó chỉ là về hình thức - Tôi đồng ý rằng câu trả lời có thể cung cấp thêm một chút chi tiết, thay vì chỉ là một liên kết) –

+0

Câu trả lời không liên quan gì đến câu hỏi, đó là về đánh dấu ngôn ngữ. –

+1

@Jukka Nhưng không phải là ' '* về * hướng dẫn đánh dấu/phát âm ngôn ngữ? –

3

Đối với mục đích thiết thực nhất, nó không quan trọng, vì các trình duyệt, công cụ tìm kiếm, và các chương trình khác có liên quan thường bỏ qua lang thuộc tính. Các thuộc tính có thể ảnh hưởng đến lựa chọn phông chữ, nhưng chỉ khi chính trang đó không đề xuất phông chữ (điều này hiếm khi xảy ra). Một số trình duyệt giọng nói nhận ra một vài giá trị cho lang và điều chỉnh chức năng của chúng cho phù hợp. Và nếu bạn mở một tài liệu HTML trong MS Word, nó sẽ nhận ra đánh dấu lang và áp dụng các công cụ chính tả theo ngôn ngữ cụ thể. Nhưng tất cả điều này là khá hạn chế và hiếm khi có nhiều vấn đề. Hơn nữa, trong những trường hợp này, chỉ có các loại mã ngôn ngữ đơn giản nhất mới được nhận dạng.

Về nguyên tắc, có thể chỉ ra hệ thống chữ viết ("tập lệnh"), chẳng hạn như Latin so với Devanagari và hệ thống phiên âm hoặc phiên âm đã được sử dụng. Điều này đã được mô tả trong BCP 47. Nhưng đối với hầu hết, đó là hướng dẫn cho người triển khai, không phải là điều bạn có thể sử dụng ở đây và bây giờ.

Ví dụ: bạn có thể viết <span lang="hi-Latn">Aadmi kha raha hai.</span> để cho biết nội dung bằng tiếng Hindi nhưng được viết bằng chữ cái Latinh. Và về nguyên tắc, ít nhất, một cách để chỉ ra hệ thống romanization cạnh tranh nào đã được sử dụng. Tôi không nghĩ rằng bất kỳ phần mềm nào liên quan đến web đều nhận ra lang="hi-Latn"; các chương trình thậm chí có thể không nhận ra nó ngay cả khi chúng nhận ra lang="hi".

Vì vậy, bạn có thể sử dụng giá trị chi tiết cho lang nhưng không được sử dụng nhiều.Sử dụng đánh dấu đơn giản như lang="hi" cho bất kỳ phần nào chính bằng ngôn ngữ khác (nói, một câu hoặc nhiều hơn) là thực tiễn tốt, mặc dù không nhiều hơn nữa. Trước khi dành quá nhiều thời gian cho nó, hãy xem xét những lợi ích thiết thực mà bạn có thể mong đợi. Ví dụ: nếu bạn xem xét sử dụng dấu gạch nối phía máy khách như hyphenate.js, thì việc đánh dấu lang trở nên cần thiết; nhưng sau đó bạn cần phải kiểm tra sự mong đợi của phần mềm đó, thay vì chỉ các thông số chung.

Một lời cảnh báo: Tôi đã thấy kết quả kỳ lạ khi sử dụng lang="ru" cho tiếng Nga được viết bằng chữ cái Latinh. Lý do là các trình duyệt có thể chuyển sang ý tưởng của họ về "font chữ cho tiếng Nga", gây ra sự kết hợp các phông chữ. Nhưng biện pháp khắc phục đơn giản là thực hiện một số cài đặt phông chữ nhất quán cho tất cả các văn bản của bạn, ghi đè mặc định của trình duyệt, trong các trường hợp như thế này.

Các chuỗi như “Taw on far eg ih-he” không thể được phân loại có ý nghĩa như ở một số ngôn ngữ. Nếu bạn sử dụng ngôn ngữ đánh dấu, sử dụng lang="" (với chuỗi rỗng làm giá trị), vì đây là cách xác định rõ ràng chỉ ra rằng ngôn ngữ không được chỉ định!

+0

Cảm ơn, tôi không biết bạn có thể cung cấp một thuộc tính lang trống! Về thực tế là các công cụ tìm kiếm bỏ qua các thuộc tính lang - bạn sẽ có một liên kết cho điều đó không? Tôi luôn nghĩ rằng Google và cộng sự đã sử dụng nó cho cài đặt nâng cao của họ (hiển thị kết quả bằng tiếng Pháp, v.v.) – anotherdave

+0

Thông thường, công cụ tìm kiếm sử dụng thuộc tính 'lang', nhưng không có bằng chứng về điều đó. Các xét nghiệm cho thấy rằng chúng không có tác dụng. Tuyên bố không chính thức từ những người được công cụ tìm kiếm liên kết nói rằng các thuộc tính 'lang' quá không đáng tin cậy, thường sai đồng bằng, ví dụ: vì một số hệ thống tác giả phát ra 'lang =" vi "' mà không hỏi tác giả. Các công cụ tìm kiếm có thể đoán khá tốt ngôn ngữ từ nội dung và chúng thực hiện. –

+0

Thuộc tính lang rất quan trọng đối với khả năng truy cập và là yêu cầu WCAG 2.0. Trình đọc màn hình sử dụng giá trị của thuộc tính lang để xác định đúng giọng nói và công cụ phát âm để sử dụng trong khi phát lại. – charlieb

Các vấn đề liên quan