2010-08-18 5 views
7

Wir erstellen eine Website, die Japanisch und Englisch verwendet. Wir wollen weg von den japanischen Standardschriftarten, die ClearType nicht verwenden können. Gibt es eine Möglichkeit, dem Browser zu sagen, dass er eine andere japanische Schriftart JUST für japanische Zeichen (wie Meiryo) und eine andere Schriftart nur für lateinische Zeichen (wie Helvetica) auf derselben Seite verwenden soll? Wir möchten nicht, dass englische Wörter die Schriftart Meiryo verwenden.Verwenden Sie verschiedene Schriftarten für lateinische Zeichen und japanische Zeichen mit CSS

Wir haben tatsächlich eine Spitze zuerst aus diesem Artikel in der CSS-Englisch-Schriften angeben: http://www.lukew.com/ff/entry.asp?118

Dies ist jedoch nicht in IE funktioniert. Auch wenn wir zuerst Helvetica, Verdana oder eine andere allgemein verfügbare Schriftart und dann die japanische Schriftart im CSS angeben, verwendet IE weiterhin die japanische Schriftart für englische Wörter. Firefox, Chrome usw. funktionieren wie erwartet.

(Wenn möglich, werden wir nicht hoffen, jedes englische Wort in einer Spanne, um etwas zu greifen, wie Verpackung)

Antwort

0

Wie sagen Sie die Seite, welche Sprache auf Bildschirm drucken?

Wenn Sie eine Variable erhalten, können Sie diese Variable nicht als Klasse verwenden, die Sie für ein div of body verwenden.

<body class="english"> 

oder

<body class="japanese"> 
5

Sie nicht umgehen kann jede Sprach Abschnitt mit einer Klasse und Schrift Markierung, wenn Sie wollen, dass diese Cross-Browser arbeiten. Es kann nicht nur mit CSS gemacht werden.

Sie können eine Sprachklasse manuell oder automatisch anwenden. Manuell könnte eine Menge Arbeit zu unterstützen und zu pflegen sein, ist aber robust. Dynamisch kann dies mit einem Backend-Skript oder Javascript erfolgen, indem eine Zeichenkette nach Zeichen gescannt wird, die in bestimmte Unicode-Zeichenblöcke fallen, und eine entsprechende Sprachklasse angewendet wird.

Sie können die Blockdefinitionen finden Sie hier (Japanisch ist Hiragana und Katakana): http://www.fileformat.info/info/unicode/block/index.htm

ich die Back-End-Weg würde empfehlen, dies zu tun, weil man auf der Seite eine Schriftart zu ändern könnte dazu führen, flackert oder Verschiebung der Elemente beim Laden der Seite.

+2

Hiragana und Katakana werden nur die Silbenzeichensätze, die Sie Weglassen alle Kanji (die CJK-Charaktere). –

3

Erstellen Sie die CSS-Klasse für englischen und japanischen Text.

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

Wenn ganz Seite in Japanisch ist, class = "ja" zu Body-Tag hinzufügen, wenn es mit gemischtem Inhalt ist, fügen Sie class = "ja" zu dem HTML-Elemente, die japanischen Text enthält, zum Beispiel:

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

Ich glaube, das ist der einzige Weg, es zu tun und die Art und Weise, wie es auf den meisten Seiten auf dieser japanischen/englischen Website gemacht wird http://www.jlptstudy.com/N5/ – PandaWood

+0

*** Hinweis: *** HTML hat ein 'lang'-universelles Attribut und CSS hat einen Selektor dafür: [Styling mit dem Attribut lang (w3.org; mehrere Sprachen)] (https://www.w3.org/International/questions/qa-css- lang) – hakre

2

Ich habe mein Problem mit 'Unicode-Bereich' CSS-Eigenschaft gelöst.

können Sie die Details finden Sie hier: https://developer.mozilla.org/en/docs/Web/CSS/@font-face/unicode-range

Beispiel:

/* 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>

Verwandte Themen