2011-06-21 47 views
12

Tôi đang cố gắng tìm một tài nguyên có thể được sử dụng để kết nối Ngôn ngữ (hoặc có thể là Tập lệnh) với các khối ký tự Unicode. Một tài nguyên như vậy sẽ được sử dụng để tra cứu các câu hỏi như "Unicode Blocks nào được sử dụng bằng tiếng Pháp?" hoặc "Ngôn ngữ nào sử dụng khối từ 0A80-0AFF (http://unicodinator.com/#Block-Gujarati)?" Bạn có biết một nguồn tài nguyên như vậy không?Làm cách nào để liên kết các khối Unicode thành Ngôn ngữ/Tập lệnh?

Tôi có thể mong đợi có thể tìm thấy thông tin này dễ dàng tại unicode.org. Tôi đã nhanh chóng có thể tìm thấy một bảng tuyệt vời có liên quan Mã quốc gia cho các ngôn ngữ (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html). Nhưng tôi đã dành khá nhiều thời gian để không có may mắn khi tìm kiếm thứ gì đó liên quan đến khối Unicode với ngôn ngữ. Có thể tôi có vấn đề về thuật ngữ ngăn tôi kết nối các dấu chấm ở đây ...

Tôi không cầu kỳ về chính xác ý nghĩa của "ngôn ngữ" (mã Java Locale hoặc mã ISO 639 hoặc bất kỳ thứ gì) trong trường hợp này . Tôi cũng hiểu rằng có thể không có câu trả lời chính xác vì, ví dụ, một tài liệu tiếng Ả Rập có thể chứa tiếng Latinh và văn bản khác ngoài các ký tự từ các khối tiếng Ả Rập (http://unicodinator.com/#Block-Arabic, http://unicodinator.com/#Block-Arabic_Supplement). Nhưng chắc chắn phải có một số bảng nói rằng "những ngôn ngữ này đi với những khối" ... Tôi cũng không cầu kỳ về định dạng (XML, CSV, bất cứ điều gì), tôi có thể dễ dàng chuyển đổi thành dữ liệu tôi có thể sử dụng cho ứng dụng của mình . Và một lần nữa, tôi nhận ra rằng tài liệu tham khảo có thể sẽ kết nối Scripts tới Chặn, chứ không phải Ngôn ngữ (mặc dù Tập lệnh có thể được ánh xạ tới Ngôn ngữ).

Tôi nhận ra đây sẽ là bảng nhiều người (vì nhiều ngôn ngữ sử dụng các ký tự từ nhiều khối và nhiều khối được nhiều ngôn ngữ sử dụng); Tôi nhận ra điều này không thể được trả lời chính xác vì các điểm mã Unicode không phải là ngôn ngữ cụ thể - tuy nhiên, không có câu hỏi về "ngôn ngữ nào có ở quốc gia này" (câu trả lời có thể là "hầu hết trong số họ" cho hầu hết các quốc gia), như thế này (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html) vẫn có thể tạo, có ý nghĩa và hữu ích.

lý do tại sao Tôi muốn một điều như vậy: Tôi muốn nâng cao http://unicodinator.com với bản đồ nhiệt toàn cầu cho các khối mã và danh sách ngôn ngữ; Tôi cũng có một khái niệm trò chơi mà tôi đang sửa đổi. Ngoài ra, có lẽ có nhiều cách sử dụng khác mà người khác có thể có cho việc này (tạo phông chữ? Heuristic, nhanh chóng, phát hiện ngôn ngữ tốt nhất đoán bây giờ API Google Translate sẽ biến mất? Dự án nghiên cứu?).

+0

gì về khối có thể thuộc về nhiều ngôn ngữ? –

+1

yes @Ignacio, chắc chắn sẽ có nhiều mối quan hệ. – jlarson

+1

Tôi không nghĩ rằng điều này là đáng trả lời. Xem xét các từ mượn từ các ngôn ngữ khác. Tiếng Anh thường không có dấu, nhưng bạn sẽ tìm thấy "sơ yếu lý lịch" trong bất kỳ từ điển tiếng Anh nào. –

Trả lời

10

Tôi nhận được câu trả lời từ chính Unicode.org!Trong tiểu dự án CLDR, có những tài liệu như:

cho mỗi id ngôn ngữ mà bạn có thể tìm kiếm cho "exemplarCharacters":

<exemplarCharacters>[\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 ء آ أ ؤ إ ئ ا ب ت ة ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي ى]</exemplarCharacters> 
<exemplarCharacters type="auxiliary">[\u200C\u200D\u200E\u200F]</exemplarCharacters> 
<exemplarCharacters type="currencySymbol" draft="contributed">[a b c d e f g h i j k l m n o p q r s t u v w x y z]</exemplarCharacters> 
<exemplarCharacters type="index" draft="contributed">[ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]</exemplarCharacters> 

Hoặc , có trang này: http://unicode.org/repos/cldr-tmp/trunk/diff/by_type/misc.exemplarCharacters.html với những gì trông giống như tất cả chúng. Tôi sẽ làm việc trên reshuffling dữ liệu này vào một langid -> blockid bản đồ của một số loại, mà tôi có thể sẽ nhận thức @borrible các "Trả lời" (chứ không phải là làm cho tôi câu trả lời).

+0

Đó là những gì dữ liệu dành cho. Xem thêm: http://unicode.org/cldr/charts/supplemental/index.html –

1

Không có tài nguyên như vậy và vì lý do đơn giản: các chỉ định điểm mã Unicode là ngôn ngữ độc lập. Vì vậy, mỗi điểm mã có thể được sử dụng bởi nhiều ngôn ngữ.

Tất nhiên có một số ký tự nhất định ánh xạ trực tiếp tới một ngôn ngữ nhưng nói chung, mỗi điểm mã sẽ được chia sẻ. Do đó nó không có ý nghĩa nhiều để tạo ra điểm mã cho các bảng ngôn ngữ.

Nếu bạn đang tìm cách phát hiện ngôn ngữ, chắc chắn đây là không phải cách để tiếp tục.

+0

Một lần nữa, tôi nhận ra tất cả điều này, tuy nhiên, rõ ràng là một số khối liên kết với một số ngôn ngữ hoặc bộ ngôn ngữ cụ thể (tiếng Ả Rập, Cyrillic, CJK ...). Không phải cho tất cả các khối hoặc các điểm mã, nhưng ít nhất một số. Vì vậy, nó có vẻ hợp lý để tin rằng điều này nên được ghi lại ở đâu đó – jlarson

+0

Và không, tôi không cố gắng để phát hiện ngôn ngữ ... – jlarson

+0

Cyrillic không phải là một ngôn ngữ, đó là một kịch bản. Tiếng Ả Rập là cả ngôn ngữ và tập lệnh, nhưng tập lệnh được sử dụng cho nhiều ngôn ngữ khác ngoài tiếng Ả Rập. Tôi nghĩ rằng doanh nghiệp nói chung của bạn sẽ làm việc tốt nhất để tìm kiếm các kịch bản, không phải ngôn ngữ ... –

3

Tự tạo dữ liệu (gần đúng) như thế nào? Một ví dụ có thể là sử dụng language wikipedias khác nhau - tải xuống đủ dữ liệu theo từng ngôn ngữ, tạo danh sách các ký tự được sử dụng trong các tài liệu có số lượng và đặt trong ngưỡng để loại bỏ các văn bản vay mượn nhỏ khỏi các ngôn ngữ khác. Nó sẽ là gần đúng nhưng có thể là một điểm khởi đầu tốt.

+0

Tôi thực sự sẽ làm gần như chính xác điều đó trừ khi ai đó có thể chỉ cho tôi cái gì đó đã tồn tại. – jlarson

1

Tôi không nghĩ rằng các biểu mẫu của CLDR sẽ cho kết quả chính xác. Bạn có thể tìm thấy mỗi ký tự thuộc tính tập lệnh từ các tệp Scripts.txtScriptExtensions.txt của mỗi ký tự. Để biết thêm đọc (Unicode Script Property)

Sau khi bạn có kịch bản, bạn có thể liên hệ nó với ngôn ngữ trong CLDR sử dụng phần languageData của supplementalData.xml

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