• 締切済み

日本語がインストールされていないPCに向けて

こんにちは、 日本語/英語同時表記で、サイトを制作中なのですが、例えばCSSのmedia属性のような要領で、日本語がインストールされていないPCだけに向けて、CSSプロパティを指定する、といったことはできるのでしょうか?英語環境だけに対して、日本語webフォントを指定しようと思うのですが。また、日本語webフォントさえ指定すれば、PC自体に日本語インストールされていなくても、きちんと表示されるのでしょうか?ご存じの方、よろしくお願いします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

現状では無理です。 フォントを埋め込んだPDFでページを作成しましょう。

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

(1). そもそも、font-family はフォントの優先順位を指定するものです。 body { font-family: Baskerville, "Heisi Mincho W3", Symbol, serif; } 上の場合、まず Baskerville を採用し、そこにない文字を Heisi Mincho W3 から、更にそこにない文字を Symbol から、そこにもない文字を総称ファミリである serif の中から選びます(なので、CSS 規定では総称ファミリを末尾に指定することを推奨しているわけですが、書き忘れている人が多いですね)。 優先順位を調節すれば英数字と日本語文字に異なるフォントを指定することができます。Web Fonts を優先順位のどこかに組み込むことも可能なはずです。「はず」というのは、実はこの振る舞いをちゃんと守っているブラウザがまだ多くないからですが。 (2). 次に、lang 属性(XML なら xml:lang 属性)による言語指定は、その要素の子孫にまで及びます。 <body lang="ja"><p>日本語の段落</p></body> <body lang="en"><p>a paragraph in English</p></body> 上の場合、直接 lang 属性を持っていない p 要素でも、 p:lang(ja) {/* 日本語の場合 */} p:lang(en) {/* in case of English */} のように :lang() を使うことで文脈言語に応じたスタイルを指定することができます。言語は途中で切り替えることもできますので、 <html lang="en">...<p lang="ja">日本語に切り替え</p>...</html> html:lang(en) p:lang(ja) {/* 英語文の中で部分的に現れた日本語文 */} のように指定できます。某 HTML 文法チェッカも、伊達に lang 属性を推奨してるのでないわけで。 Web Fonts に対応していて :lang() に対応していないブラウザには IE4-7 がありますが、class 属性で代替することも(何とか)可能です。 (3). 必要になるか何とも言えませんが、コンテントネゴシエーションも考慮に入れて良いかもしれません。サーバ側で設定可能なら、ブラウザが要求する言語に応じて index.html.ja と index.html.en の適切な方を index.html として提供する、という感じのものです。これは、方向としては No.1 の方と同じです。 ただ、海外で日本語ページを見たいのに英語ページが送られてきたり、そのくせ言語設定を簡単に切り替えられるブラウザはほとんどなく(これで「モダンブラウザ」ってんだからねえ……)、使いづらいと言えば使いづらいかもしれません。 将来的なブラウザの改善を期待しつつ、現状では利用者の方で別言語へのリンクを辿れるようにするのが無難だと思います。 --- > 日本語webフォントさえ指定すれば、PC自体に日本語インストールされていなくても、きちんと表示されるのでしょうか? まあそうですが、Web Fonts 自体が古いようで新しいものですからまだブラウザ実装もマチマチですし、不幸にしてスタイルシートが読み込まれないケースなんていくらでもあります。 Windows にしろ Mac OS にしろ最近は日本語フォントもインストールされることが多いと思いますが、回線事情の良くない国で日本語フォントが入っていない端末を使う場合など、Web Fonts なんぞ読み込んでられないほど遅い。反面、ウェブメールで日本語文字が全て豆腐になるよりは、かろうじて読める程度で良いから Web Fonts を提供してほしい。ジレンマですね。 どういう用途を想定しておられるか分かりませんが、確実なのはローマ字にしておくことです。

  • ssk38
  • ベストアンサー率44% (22/49)
回答No.1

日本語を見たいか、英語を見たいか、は、クライアントのブラウザの設定を取得しないといけませんよね。 cgiでサーバ側で出力内容を制御するか、参考URLみたいにJavascriptでクライアント側で制御するか、どっちかじゃないでしょうか。

参考URL:
http://blog.masuidrive.jp/index.php/2008/09/19/how-to-detect-your-browser-language-from-javascript/