2010-08-18 40 views
7

Chúng tôi đang tạo một trang web sử dụng cả tiếng Nhật và tiếng Anh. Chúng tôi muốn thoát khỏi các phông chữ mặc định của Nhật Bản mà không thể sử dụng ClearType. Có cách nào để nói với trình duyệt để sử dụng một phông chữ Nhật Bản JUST cho các ký tự Nhật Bản (Giống như Meiryo) và một phông chữ chỉ cho các ký tự latin (Giống như Helvetica) trên cùng một trang? Chúng tôi không muốn bất kỳ từ tiếng Anh nào sử dụng phông chữ Meiryo.Sử dụng các phông chữ khác nhau cho các ký tự Latinh và các ký tự tiếng Nhật với CSS

Chúng tôi thực sự sử dụng một mẹo để xác định phông chữ tiếng Anh đầu tiên trong CSS từ bài viết này: http://www.lukew.com/ff/entry.asp?118

Tuy nhiên, điều này không làm việc trong IE. Ngay cả khi chúng tôi chỉ định Helvetica, Verdana hoặc bất kỳ phông chữ nào có sẵn rộng rãi khác trước và sau đó là phông chữ tiếng Nhật trong CSS, IE vẫn sẽ sử dụng phông chữ tiếng Nhật cho các từ tiếng Anh. Firefox, Chrome, v.v. hoạt động như mong đợi.

(Nếu có thể, chúng tôi hy vọng không phải nhờ đến một cái gì đó giống như gói mỗi từ tiếng Anh trong một khoảng)

Trả lời

0

How are you nói với trang ngôn ngữ để in ra màn hình?

Nếu bạn đang nhận được một biến, bạn có thể không sử dụng biến này như là một lớp mà bạn sử dụng cho một div của cơ thể.

<body class="english"> 

hoặc

<body class="japanese"> 
5

Bạn không thể nhận được xung quanh đánh dấu tất cả các phần ngôn ngữ với một lớp và phông chữ nếu bạn muốn điều này để làm việc qua trình duyệt. Nó không thể được thực hiện chỉ với CSS.

Bạn có thể áp dụng lớp ngôn ngữ theo cách thủ công hoặc tự động. Thủ công có thể là rất nhiều công việc để hỗ trợ và duy trì, nhưng là mạnh mẽ. Tự động nó có thể được thực hiện bằng cách sử dụng một kịch bản back-end hoặc Javascript, bằng cách quét một chuỗi ký tự nằm trong một số khối ký tự unicode, và áp dụng một lớp ngôn ngữ cho phù hợp.

Bạn có thể tìm thấy các định nghĩa khối đây (tiếng Nhật là Hiragana và Katakana): http://www.fileformat.info/info/unicode/block/index.htm

tôi khuyên bạn nên cách back-end để làm điều này, bởi vì thay đổi một phông chữ trên trang có thể gây ra chập chờn hoặc chuyển của các yếu tố trong khi tải trang.

+2

Hiragana và katakana được chỉ bộ ký tự âm tiết, bạn đang rời ra tất cả các kanji (các nhân vật CJK). –

3

Tạo lớp css cho văn bản tiếng Anh và tiếng Nhật.

.ja { font-family: meiryo, sans-serif; } 
.en { font-family: arial, verdana, sans-serif; } 

Nếu toàn bộ trang là bằng tiếng Nhật, thêm class = "ja" vào thẻ cơ thể, nếu có nội dung hỗn hợp, thêm class = "ja" tới phần tử html có chứa văn bản tiếng Nhật, ví dụ:

<td class="ja">日本語</td> 
+1

Tôi tin rằng đây là cách duy nhất nó có thể được thực hiện, và cách nó được thực hiện trên hầu hết các trang tại trang web tiếng Nhật/tiếng Anh này http://www.jlptstudy.com/N5/ – PandaWood

+0

*** Gợi ý: *** HTML có thuộc tính phổ biến 'lang' và CSS có bộ chọn cho nó: [Tạo kiểu bằng cách sử dụng thuộc tính lang (w3.org; nhiều ngôn ngữ)] (https://www.w3.org/International/questions/qa-css- lang) – hakre

2

Tôi đã giải quyết được sự cố của mình bằng cách sử dụng thuộc tính CSS 'unicode-range'.

Bạn có thể tìm thấy những thông tin chi tiết ở đây: https://developer.mozilla.org/en/docs/Web/CSS/@font-face/unicode-range

Ví dụ:

/* bengali */ 
 
@font-face { 
 
    font-family: 'Atma'; 
 
    font-style: normal; 
 
    font-weight: 400; 
 
    src: url(https://fonts.gstatic.com/s/atma/v2/tUcVDHNCVY7oFp6g2zLOiQ.woff2) format('woff2'); 
 
    unicode-range: u+0980-09FF; 
 
} 
 

 

 
body { 
 
    font-family: 'Atma', arial, sans-serif; 
 
    font-size: 18px; 
 
}
<p>Example is better than precept.</p> 
 
<p>উপদেশের চেয়ে দৃষ্টান্ত ভালো।</p>

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