2009-03-03 26 views
7

Tôi đang làm việc trên trò chơi ghi nhớ javascript yêu cầu các ký tự tiếng Nhật phải được hiển thị. Có một cách trình duyệt chéo (s) phát hiện hỗ trợ cho các ngôn ngữ Châu á, hoặc Nhật Bản đặc biệt?Có thể phát hiện hỗ trợ ngôn ngữ Đông Á không?

window.navigator.language sẽ được đặt thành ngôn ngữ của trình duyệt nhưng bỏ qua những người không đặt tiếng Nhật làm ngôn ngữ trình duyệt của họ (?).

Trả lời

6

Có (các) cách trình duyệt chéo để phát hiện hỗ trợ cho ngôn ngữ Châu Á hoặc tiếng Nhật không?

Bạn có nghĩa là "đã cài đặt phông chữ tiếng Nhật" chưa? Bởi vì khía cạnh khác duy nhất của “hỗ trợ ngôn ngữ châu Á” mà các hệ điều hành hiện đại có thể đã được cấu hình là làm việc với các mã hóa ký tự như Shift-JIS (hay còn gọi là mã 932 trên Windows). Nhưng bạn thường không cần điều đó vì bạn chỉ có thể sử dụng UTF-8, sạch hơn và được hỗ trợ ở mọi nơi.

Nói chung, bạn không thể trực tiếp biết liệu phông chữ cho một phạm vi ký tự cụ thể có được cài đặt hay không, nhưng có các cách vòng xoay. Ví dụ: ví dụ: đo kích thước được hiển thị của văn bản trên trang:

var half= document.createElement('span'); 
var full= document.createElement('span'); 
half.appendChild(document.createTextNode('\uFF71')); 
full.appendChild(document.createTextNode('\u30A2')); 
document.body.insertBefore(half, document.body.firstChild); 
document.body.insertBefore(full, document.body.firstChild); 
var havejapanesefont= half.offsetWidth!=full.offsetWidth; 
document.body.removeChild(half); 
document.body.removeChild(full); 

Thành phần tạm thời này có chứa các biến thể nửa chiều rộng và chiều rộng của katakana ‘a’. Nếu phông chữ tiếng Nhật có sẵn, chúng tôi mong đợi chúng có độ rộng khác nhau. Nếu không có phông chữ như vậy tồn tại, chúng có nhiều khả năng sẽ được hiển thị dưới dạng hình chữ nhật tương tự 'không thể hoàn lại' có cùng chiều rộng.

+0

Rất thông minh! –

+0

Đúng, chỉ là phông chữ và đó chỉ là loại mẹo tôi đang tìm kiếm, cảm ơn :) – Annan

2

Máy chủ của bạn có thể kiểm tra tiêu đề Accept-Charset, nếu đó không phải là ký tự tiếng Nhật, hãy chuyển hướng đến trang cảnh báo. Thật không may, như this thread cho biết, tiêu đề không có sẵn cho javascript.

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