Home   Single Page

ブラウザとロケール依存 URI

リソースはロケールやブラウザに依存する場合が多くあります。例えば、読みやすくするため、大きなフォントを設定したりします。

”*”を使ってスタイルシートの URL を指定すれば、ZK は自動的にこれを処理できます。アルゴリズムは以下のようになります。

  1. /my*.css のような URI の中で一つの"*"が指定されたら、"*"はユーザーブラウザの環境設定 (preference) によって適切なロケールと取り替えます。
    例えば、ユーザーの設定が de_DE とすると、ZK は /my_de_DE.css、/my_de.css、 /my.css を順番にウェブサイトから検索し、それらのうちの一つかが見つかるまで探します。
    何も見つからなかった場合、/my.css が使用されます。

  2. 二つ以上の"*"が /my*/lang*.css といった URI の中で指定された場合、はじめの"*"はインターネットイクスプローラーが"ie"、Safariが"saf"、その他のブラウザが"moz"[63]と取り替えられます。
    さして、最後のアスタリスクはステップ1の中で説明したように適切なロケールと取り替えられます。
    まとめとして、最後のアスタリスクはロケールを表します。一方、はじめのアスタリスクはブラウザの種類を表します。

  3. 上記以外の"*"は無視されます。

【メモ】:はじめのドット (".") の直前にロケールを表す最後のアスタリスクをおかなければなりません。
または、ドットがないなら、最後にアスタ リスクをおきます。さらに、その次にスラッシュ(/)が許可されません。
つまり、それはディレクトリーではなく、ファイル名の一部です。最後のアスタリス クは上記の条件を満足しない場合、削除されます。(無視ではない) 例えば、“/my/lang.css*” は ”/my/lang.css” と同様です。つまり、ロケールにとっては中立だと考えられます。

【ヒント】:このルールを採用して、ロケールではなくて、ブラウザの種類によってURIを指定することができます。
例えば、インターネットイクスプローラが現在のブラウザなら、"/my/lang*.css*" は "/my/langie.css" と取り替えられます。

以下の例中で、設定された (prefered) のロケールが de_DE で、ブラウザがインターネットイクスプローラと想定します。

URI

検索されるリソース

/css/norm*.css

  1. /norm_de_DE.css

  2. /norm_de.css

  3. /norm.css

/css-*/norm*.css

  1. /css-ie/norm_de_DE.css

  2. /css-ie/norm_de.css

  3. /css-ie/norm.css

/img*/pic*/lang*.png

  1. /imgie/pic*/lang_de_DE.png

  2. /imgie/pic*/lang_de.png

  3. /imgie/pic*/lang.png

/img*/lang.gif

  1. /img/lang.gif

/img/lang*.gif*

  1. /img/langie.gif

/img*/lang*.gif*

  1. /imgie/lang*.gif



[63] 今後はインターネットエクスプローラ・ファイヤフォックス・サファリの以外のブラウザもサポートする予定です。