Translation:Biz balık yedik.
Because of the ''we'' yani ''biz''.
yedim - ben yedin - sen yedi - o yedik - biz yediniz - siz yediler - onlar
Perhaps the question is "why is it -dik and -sek when everywhere else "biz" has an ending in -z?"
It is the same reason why you say "oldun" and not "oldusun." There are two sets of personal endings which are used after different suffixes :)
I guess "biz" is always the odd one out:
- babam, kitabım, ederim, ettim
- baban, kitabın, edersin, ettin
- babamız, kitabımız, ederiz
m yok?, ettik
m? z? k??
- babanız, kitabınız, edersiniz, ettiniz
- babaları, kitapları, ederler, ettiler
All the others have sort of consistent "signs" (m, n, niz, lEr) even if the details of what comes before them differ (e.g. -sin vs. -in), though the -si is a bit odd, but "biz" is just all over the place - sometimes "miz", sometimes just "iz", and sometimes... ik.
I don't know why this is. But actually in some dialects of Turkish (for example around Adana) they also use -k instead of -z. For example: "Adanalıyık" instead of "Adanalıyız" (We are from Adana).
As Selcen_Ozturk mentioned in some dialects and in Azerbaijani they use -(y)Ik instead of -(y)Iz (we are). I don't really know why. Nişanyan etymological dictionary claims that the ending -z could be about plurality or duality giving examples of words like ikiz (twin), göz (eye), diz (knee), boynuz (horn). So the z sound in biz, siz and the related endings might be related to this theory as well.
So there are actually three sets if you also count the possessive endings. There is no irregularity in any of them, I don't understand what you mean by oddness. I think they don't have to have a logical relation between each other.
Possessive set (my, your, his...)
my --> -(I)m
your --> -(I)n
his --> -(s)I
our --> -(I)mIz
your --> -(I)nIz
their --> -lArI or -(s)I
First Set (I am, you are, he is...)
I am --> -(y)Im
You are --> -sIn
He is --> -
We are --> -(y)Iz
You are --> -sInIz
They are --> -lAr or -
Second Set (This is not related to the copula and more like an independent conjugation like 'he runS' in English)
(1st sing) --> -m
(2nd sing) --> -n
(3rd sing) --> -
(1st pl) --> -k
(2nd pl) --> -nIz
(3rd pl) --> -lAr or -
So we use simple present, present continuous and future tenses with the copula just like in English (I am doing, I am going to do... except simple present) Because just like doing and done are participles in English and that's why they have to be used with the copula, yapar, yapıyor, yapmakta, yapmış and yapacak are participles in Turkish as well so they are used with the copula (1st set)
Why is bir balık yedik wrong? İt should simply mean we ate a fish. İt dosnt have to be translated as we ate one fish, does it? And biz balık yedik doesnt say if it is one or more.
Indeed, it means "we ate a fish".
But the English sentence is not "we ate a fish" but simple "we ate fish" -- not one fish but some unspecified quantity of meat from fish.