Zend_Controller_Router_Routeを拡張した新しいルーターを作成することで、問題を解決しました。クラスの「match」メソッドをオーバーライドし、元の一致コードに数行のコードを追加しました。
.....
foreach( $translateMessages as $key => $val ) {
if (($originalPathPart = array_search($pathPart, $val)) !== false) {
$pathPart = $originalPathPart;
if (!$this->_localeSet) {
$locale = Zend_Registry::get('Zend_Locale');
$locale->setLocale($key); // Set Locale by translated key language
$this->_localeSet = true; // Added to class with default value false
$this->_activeLocale = $key; // Added to class with default value ''
}else{
// A second translated key but this is not same language.
// Then rise 404 error
if ($this->_activeLocale != $key) {
//FIXME: Rise 404 error
throw new Exception("URL Not Found");
}
}
}
}
.....