5. 言語の扱い

5.1 強言語と弱言語
  skf では、codeset および charset 毎に言語が設定されている。その際、一つの言語に対して強弱の二つの水準が定義されている。
  
  (1) 強言語、または弱言語どおしの間では、強弱関係はない。後から設定したものが有効になる。
  (2) 弱言語が設定されている場合に、後から強言語を設定した場合には、後から行った設定が有効になる。
  (3) 強言語が設定されている場合に、後から弱言語を設定した場合には、後から行った設定が無視される。
  
5.2 言語設定
  skf では、「その時点で扱っている」言語を入力エンコーディング毎に一つ持ち、その言語が出力結果に反映される。この言語は入力と出力の指定、入力ファイルのエンコーディング (入力ストリームが MIME 等、codeset を持ってエンコーディングされている場合はそのエンコーディング) の判定結果などから得られるが、前の章で説明したとおり、skf では出力のエンコーディング、入力のエンコーディングの順に設定がなされ、言語もその順に、5.1 記載の強弱を用いて設定が行われる。また、MIME 等のエンコーディング付随の言語は、MIME エンコーディング終了時点で MIME の外のエンコーディング (未規定を含めて) に戻される。
  また、出力言語指定により、入力がその言語であることが (弱く) 仮定される。これは入力のコード判定に反映される。従って、言語用のエンコーディングで交差した変換を行う際には、言語判定に注意が必要である。通常はエンコーディングを明示指定する必要がある。
  
5.3 言語定義
  skf.h 参照。skf では以下の言語を識別する。
  
  (1) iso 639-1 の二文字言語表現
  (2) 0x00: 言語は未規定、または言語を指定していないことを示す
  (3) '@N': Unicode であり、言語中立であることを示す。
  (4) '@U': Unicode でないことを示す。言語中立かどうかとは無関係。
  (5) 'EM': ヨーロッパ系の混在言語であることを示す。
  (6) 'US': 米英語であること示す。
  
