My guess is that you get wrong a product count because the product visibility filter is missing. Try adding it like this:
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToFilter('language', array('eq' => array('English')))
->addAttributeToSelect('*')
->addCategoryFilter(Mage::getModel('catalog/category')->load($cat_id))
->setVisibility(
Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds()
);
addition:
the custom collection you set to the list.phtml
will not be the same the system uses in the paginator. The paginator block Mage_Catalog_Block_Product_List_Toolbar
will get the original product collection from $this->_getProductCollection()
(see here), which does not have your filter.
I'm afraid, a change to the collection in the template file is not enough. You might have to override the Mage_Catalog_Block_Product_List
block, specifically, its function _getProductCollection()
to implement the necessary filtering.
addition 2
A proposed override for the function Mage_Catalog_Block_Product_List::_getProductCollection
:
protected function _getProductCollection()
{
$collection = parent::_getProductCollection();
$collection->addAttributeToFilter('language', array('eq' => array('English')));
$this->_productCollection = $collection;
return $this->_productCollection;
}