Well I didnt provided much of usefull really and I don't even know much more about this 2da. It seems to be quite hardcoded I just used a copy&paste and testing when I was making my own tokens.
I needed to do only token that shows one direct line from TLK and gender-like token so it was pretty easy.
From what I figured:
Token collumn is a string that must be put into < and > in order to get the token to working.
ActionCode collumn is hardcoded and does refer to various 2da or hardcoded checks depending on values:
Seems that value of 1 is "gender-check" that shows StrRef1 for male and StrRef2 for female, and maybe StrRef3/4 for Both/None:?
Value of 2 and 3 seems to work as a no-check that shows StrRef1 for all characters. I didnt used other vales most of the rest of them is bound to 2das, it seems that 5 and 6 are race-checks that are bound into racialtypes.2da etc.
Collumn Default is used maybe if the check for anything returns -1 which is not in given 2da/or anything? Seems not used anyway.
collumn Category? I dont have a clue, I think its unused, I put there 0 and it worked fine.
If you want to show a direct line from a TLK without any check, you can use either ActionCode of 2, or 3 and then StrRef1 to TLK line OR just use ActionCode of 1 and then put the same tlk line into all StrRefs.
If you want to show something different for male and female just use ActionCode of 1 and then StrRef1 for male and StrRef2 for female.
This is what I added into stringtokens for the czech language unofficial translation.
58 FirstName1 1 5180 112011 112011 112011 112011 0
59 FirstName2 3 5180 112012 112012 112012 112012 0
60 FirstName3 3 5180 112013 112013 112013 112013 0
61 FirstName4 3 5180 112014 112014 112014 112014 0
62 FirstName5 3 5180 112015 112015 112015 112015 0
63 FirstName6 3 5180 112016 112016 112016 112016 0
64 FirstName7 3 5180 112017 112017 112017 112017 0
58 FullName1 1 5180 112018 112018 112018 112018 0
59 FullName2 2 5180 112019 112019 112019 112019 0
60 FullName3 2 5180 112020 112020 112020 112020 0
61 FullName4 2 5180 112021 112021 112021 112021 0
62 FullName5 2 5180 112022 112022 112022 112022 0
63 FullName6 2 5180 112023 112023 112023 112023 0
64 FullName7 2 5180 112024 112024 112024 112024 0
72 i/y 1 -1 3159 3151 -1 -1 0
73 el/la 1 -1 112026 112027 -1 -1 0
74 y/a 1 -1 112028 112029 -1 -1 0
75 sam/a 1 -1 112041 112042 -1 -1 0
76 /a 1 -1 -1 3119 -1 -1 0
In order to allow language inflection, I changed all lines in dialog.tlk where was FirstName or FullName into one of these. The values on line 72 (which should be 65 but it doesnt matter) and below were for additional differences in words for male/female my language have.