Drupal の Internationalization モジュールを 6.x-1.3 へバージョンアップしたら、Viewページにすべての言語のノードが表示されるようになってしまった。サイトの構築 -> Views から該当するViewの編集ページを表示すると、フィルターの箇所に、「Error: handler for node > content_negotiation doesn't exist」と表示されてしまう。
Internationalization プロジェクトのサイトで調べてみると、同様の現象が報告されていて、どうやら、Views translation 6.x-1.3 の不具合らしく、includes/i18nviews.views.inc ファイルの該当箇所を以下のように変更することで改善できる。
function i18nviews_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'i18nviews') . '/includes',
),
'handlers' => array(
'content_negotiation_filter_handler' => array(
'parent' => 'views_handler_filter'/*,
'file' => 'includes/content_negotiation_filter_handler.inc'*/
),
),
);
}
なお、修正後は、Views のキャッシュをクリアする必要がある。(サイトの構築 -> Views -> Tools -> Basic)
参考:Error: handler for node > content_negotiation doesn't exist