2011-07-27 23 views
6

Tôi muốn chuyển đổi chữ số thành các chữ số của ngôn ngữ khác, làm cách nào tôi có thể thực hiện việc này?số charcode chuyển đổi thành một số langauge khác

Tôi muốn có thể hỗ trợ nhiều ngôn ngữ nhất có thể (các ngôn ngữ được hỗ trợ dịch google). Tôi đã đọc và tôi tin rằng điều này có thể được thực hiện từ charcode.

Dưới đây là một số mã tôi đã sao chép từ một số ứng dụng Javascript, nhưng nó chỉ hỗ trợ 2 ngôn ngữ.

TextTools.arabicNumber = function (str) { 
    var res = String(str).replace(/([0-9])/g, function (s, n, ofs, all) { 
     return String.fromCharCode(0x0660 + n * 1); 
    }); 
    return res; 
} 
TextTools.farsiNumber = function (str) { 
    var res = String(str).replace(/([0-9])/g, function (s, n, ofs, all) { 
     return String.fromCharCode(0x06F0 + n * 1); 
    }); 
    return res; 
} 

Trả lời

9

Bạn đã giải quyết được vấn đề cơ bản, bạn chỉ cần xem tiêu chuẩn Unicode để tìm các ký tự số khác tồn tại ở đâu. Bạn có thể kiểm tra Code Charts hoặc chỉ sử dụng Wikipedia cho các phạm vi ký tự. Tuy nhiên, một số điều thú vị cần lưu ý:

Không phải mọi ngôn ngữ/văn hóa đều sử dụng hệ thống số thập phân vị trí, mặc dù hầu hết các hệ thống mở rộng đều làm. Bạn sẽ muốn xác minh rằng các ký hiệu số được sử dụng giống như cách chúng ở phương Tây để chắc chắn bạn đã nhận được nó đúng. Đối với tất cả những gì tôi biết, các số Nhật Bản hoặc Hàn Quốc được viết ra bằng cách sử dụng một hệ thống khác nhưng họ sử dụng các số phương Tây trong các ngữ cảnh khác giống như cách phương Tây thực hiện. Bạn sẽ cần phải xác minh tất cả điều này để đảm bảo bạn đã có một hệ thống làm việc chính xác.

Nhưng từ góc độ dịch thuật kỹ thuật, giả sử bạn chỉ chuyển đổi chữ số phương Tây sang chữ số trong tập lệnh khác, bạn đã hiểu nó.

ETA: Trong tham chiếu đến nhận xét, hãy xem xét trường hợp traditional Hebrew numbers. Các số được tạo thành đơn vị + hàng chục + hàng trăm (thực sự là hàng trăm + hàng chục đơn vị khi đọc từ phải sang trái). Vì vậy, 456 trở thành 400 + 50 + 6 hoặc bằng tiếng Do Thái, תנו.

+0

không có mã này không phải là mã của tôi, tôi nhận được từ một số trang web khác và được thêm vào đây để sử dụng ví dụ. ok cho phép nói rằng tôi muốn thêm số hebrew, làm thế nào tôi có thể làm điều đó từ biểu đồ mã mà bạn đã cho? – Basit

+0

Kiểm tra liên kết này http://www.i18nguy.com/unicode/hebrew-numbers.html. Có vẻ như các số hebrew truyền thống không phải là vị trí nhưng phụ gia, vì vậy bạn xây dựng chúng như bạn sẽ số La Mã. Số Hebrew hiện đại được thực hiện bằng cách sử dụng các chữ số phương Tây. –

+0

một điều cuối cùng. các liên kết biểu đồ mã bạn đã cung cấp, chủ yếu là các chữ cái. bạn có thể cung cấp liên kết khác nhau của biểu đồ mã, cung cấp cho con số quá cho hầu hết các ngôn ngữ có sẵn. – Basit

2

Tôi không chắc chắn sẽ có giải pháp chung cho nhiều ngôn ngữ. Tôi không có hiểu biết tốt, nhưng như mọi người đã chỉ ra trong thảo luận tiếng Do Thái, nếu các nhân vật khác nhau, thứ tự hoặc giải thích có thể khác. Như bạn đã học ở trường cấp hai, có một bản dịch đơn giản cho chữ số La Mã, nhưng nó không chỉ là một phép chuyển đổi ký tự thành ký tự. Tôi nghĩ bạn sẽ cần nhắm mục tiêu các ngôn ngữ cụ thể và tham khảo ý kiến ​​chuyên gia (hoặc wikipedia) để xây dựng mã cho từng ngôn ngữ.

Tôi nghĩ có thể google dịch sẽ biết cách thực hiện việc này, nhưng có vẻ như họ không thuộc về số quick check. Đúng nếu tôi sai.

Nhưng đối với những người mà chỉ là chuyển ngữ, đây là những con số unicode cho một loại ngôn ngữ: roman numerals, Tamil, Arabic, Devanagari, Bengali, Gurmukhi, Gujarati, Thai, Tibetan, Mongolian, Hangzhou vv Thật dễ dàng để tìm thêm bằng cách sử dụng tiện ích này tôi đã viết.

+0

ya google không dịch số, nếu không chúng tôi không lo lắng về việc viết riêng của chúng tôi. btw tiện ích của bạn là thực sự tốt, tôi thực sự thích nó. chỉ cần một điều tho, làm thế nào tôi có thể tìm thấy danh sách đầy đủ các ngôn ngữ được hỗ trợ, vì vậy tôi có thể nhìn vào chúng quá .. tôi đã thử gõ arabic mà didnt làm việc, họ cần tên uniqe đặc biệt cho nó để hiển thị, vì vậy tôi tự hỏi đâu là danh sách đầy đủ các tên. – Basit

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