"He eats tons of fish."
Translation:Él come toneladas de pescado.
The reason is simply because pescado by itself is a noun. De pescado is an adjectival phrase, but we don't make a whole phrase agree in number with the noun it is modifying. Other examples:
Some bottles of wine. Unas botellas de vino.
Many slices of cheese. Muchas partes de queso.
Yes vino and queso are mass or uncountable nouns as is pescado. The previous explanation could probably be enhanced by saying that when talking about the quantity of an uncountable noun, the only word that would be put into the plural is the unit of measure you are using to count. With countable nouns, the countable noun is probably already in the plural once you introduce the unit of measure. Consider the following
A box of wine, two boxes of wine but
A box of cookies, two boxes of cookies
A ton of fish, two tons of fish
A ton of books, two tons of books.
This is a property of uncountable nouns and will apply to any language that has them.
It is also figurative in Spanish. These quantity exaggerations are highly translatable just because they are so absurd that no one tries to take them literally. Ella tiene un millón de zapatos. She has a million shoes. Even Imelda Marcos had no where near that. We can also say in English I ate a mountain of fish (and drank an ocean or a river of beer).
I looked up "comer" and "comerse" in Wordreference. "Comerse" means to eat up or use up. Or figuratively it can be used for things like blowing through money. So, I think it would be like this: if I eat the last half of the 1/2 gallon carton of ice cream and there's none left for anyone else, that's "comerse." If I eat a 1/2 cup serving of the ice cream, that's "comer." I suppose if someone gobbled down a ton of fish leaving nothing, that would be comerse. If someone likes fish and eats it three or four times a week, but always in moderation, that would be comer--but might seem like eating a lot of fish to the majority of us.
Anyone else have thoughts on this? Any native speakers out there?
No. That is wrong. It's the equivalent of saying he eats tons of cow. Pez is the name of the animal swimming around. Pescado is what you eat. An easy way to remember that is to look at the word pescado. Pez is the animal. Pescar is the verb to fish. Which means that pescado is derived from the past participle of the verb to fish. It essentially means fished, or that which is fished.
That would be a difficult thing for English speakers to get right, except that the fish you eat in Spanish is called pescado, not pez or peces. Pescado is the past participle of the verb pescar - to fish. But it's used as an uncountable noun, so it's in the singular. If you were saying there were tons of fish in the sea (still alive and "unfished", the Spanish would be peces.