IE6警告の表示内容の変更

Internet Explore 6で表示される内容を変更するには、言語ファイルのカスタマイズを行うことになります。従って、ここで書いている内容はInternet Explore 6に限らない、言語ファイルの内容を修正する一般的な方法です。

言語ファイルのカスタマイズ

言語ファイルのカスタマイズを行うには、各言語のファイルを直接変更することも可能ですが、そうするとContaoのバージョンや言語ファイルが更新されたときに上書きして変更内容を失う可能性があります。

このように言語ファイルのカスタマイズをContaoで行うために、 system/config/langconfig.php というファイルが用意されています。このファイルを使用して、Contaoのバージョンや言語ファイルの更新に影響を受けないようにカスタマイズを行えます。

langconfig.phpの変更

system/config/langconfig.php のファイルは、<?phpで始まるPHPのファイルですが、初期状態では直接このファイルをアクセスするのを防ぐコード以外は何も含まれていません。

<?php if (!defined('TL_ROOT')) die('You cannot access this file directly!');

...(中略)...

?>

初期状態のコメント中に説明もありますが、以下のようにカスタマイズします。

  1. アクセスしている言語は $GLOBALS['TL_LANGUAGE'] に2文字の言語コードで入っています。
  2. 言語の翻訳文字列は $GLOBALS['TL_LANG'] に多元配列として格納されています。

Internet Explore 6の警告については、

  • $GLOBALS['TL_LANG']['ERR']['ie6warning'] に格納されています。
  • 格納されている文字列には4つのprintf(3)の書式文字列 %s が含まれています。
    • 最初と最後の%sは、全体を囲むdiv要素の開始と終了のタグに置き換わります。
    • 2つ目と3つ目の%sは、http://ie6countdown.com へのリンクを構成するa要素の開始と終了のタグに置き換わります。

以上に注意して、以下のようにPHPのコードを system/config/langconfig.php に書くことになります(読みやすくするため、効率を無視して代入する文字列を複数行に分けて書いています。

if ($GLOBALS['TL_LANGUAGE'] == 'ja') {
    $GLOBALS['TL_LANG']['ERR']['ie6warning'] = 
        '%s<strong>お願い</strong>: ご使用されているウェブブラウザーは' .
        '%sサポートの期限を過ぎたバージョン%sです。' .
        '<strong>このウェブサイトの動作に問題があるかもしれませんが、' .
        'ご了承ください。</strong>。%s';
}

langconfig.php の日本語はUTF-8で記述します。