Hi,
I'll be brief
1) you already know that we use $1 $2 $x... for arguments, so if the string were to be translated completely we wouldn't do : "[trans get_songs] $refresh" but we would do "[trans get_songs $refresh]" and the translation would have "$1" in it. In that case, you can put the $1 wherever you want. Problem is, like you said, with entry boxes, where rearranging the entry box would be too cumbersome. In that case, I wonder what other applications do, or what the HIG suggests. You could take a look there. What I would suggest is to simply translate into : "Sarkiyi her 'X' (milisaniyede) al : " and let the user figure out that the entry next to the string is meant to replace the 'X'.
2) wow, that's way more complicated than an X to Y translation. I don't understand though what you mean with the 'den/dan/ten/tan' thing.. how would "from" take one of those 4 forms ? which one should be used depends on what ? on the value of $1 or something? you talk about 'preserve sound harmony' are you saying like in english "a car" vs. "an airplane" ? or something different ?
anyways..
a) nope, too specific and wouldn't make much sense to have that...
b) yes, but then it would break all other languages, don't forget you might have [] chars in other languages that shouldn't act as function calls.
I see two solutions :
1) create a new 'very generic' language file format, preferably in XML as it is extendable and would avoid any more problems like the ones you just suggested in case other special cases appear in the future. In which case, as you probably know, the team is very inactive lately and I would highly doubt that anyone would do this. I see you seem pretty experienced in Tcl (or at least, you have basic knowledge), so I would suggest you come up with a new lang format, in xml, I don't know, maybe something like :
<key name="from_x">
<translate lang="en">
<text>From $1</text>
<translate lang="tr">
<text>$1'%1</text>
<suffix keyword="%1" rule="turkish_suffixes" type="from">
<form>den</form>
<form>dan</form>
<form>ten</form>
<form>tan</form>
</suffix>
</translate>
</key>
<suffix_rules name="turkish_suffixes">
<code argument="type">
switch {$type} {
from {
if {$1 == "..." } { .... }
}
}
</code>
</suffix_rules>
Where you could set up rules for suffixes, and have code manage them, with custom arguments, etc... you see, that's the power of XML and with something like that, we could avoid any future problems with other languages.
Now... what this means is :
1) you would need to figure out something 'unbreakable' and fully extendable, and that does everything you need,
2) it must be easy to manage
3) it must be easy for new translators to join.. right now, it's easy "open notepad, write the key, and translate it", imagine a tutorial for something like that, I'm pretty sure noone would want to help translate amsn anymore..
4) you would have to code it
5) we need to stay backward compatible with older lang file versions
6) autoupdater of lang files must be adapted
7) choose whether we keep one file per lang or one file for all langs (in my above example, you see there's a "<translation lang="..">" which suggests one file for all translations)

probably make a script to automatically convert all lang files to new lang file format
9) would resolve many problems to have a script in which we would add the new keys for a lang, and it updates the XML, this way, translators can keep doing their job the same way without learning this new xml file format...
10) time...
Now, that was my first idea, it would be good, but cumbersome, complicated, would scare off new translators, etc... I don't like it that much but it would be the most 'extensible' thing.
My second idea would be :
2) a new plugin named "turkish something" (lang fix, or whatever you want to call it), which would simply hook the trans key, and do the modification you need. If anyone is bothered, he could use the plugin and see the perfect translations he wants, otherwise, too bad... just use the "most neutral" suffix...
p.s.: damn it, I NEVER succeed in being "brief".
thx for your time and for the effort
