/t and \t (tabulator) are different, so that is not a problem.
the problem is, that Catalog.GetString is called both within functions, and also in the field definition of a class (eg see bazaar.launchpad.net/openpetrac ... strings.cs).
if we have 3 slashes inside the function, the compiler gives a warning, both with Mono and .Net, that there is an invalid comment inside a function, when creating the xml documentation for the code. Wolfgang fixed that compiler warning here: bazaar.launchpad.net/openpetrac ... nerEdit.cs
If we use "// t:" or something, that would break the xml documentation for the fields.
And that is not even possible. It seems the parameter --add-comments for xgettext only enables accepting comments with triple slashes.
One other option that I can think of:
We are using Ict.Tools.GenerateI18N.exe anyway to create strings for the database documentation etc. The result is stored in i18n/GenerateI18N.CollectedGettext.cs and then included into the pot template.
We could extend that tool to parse all code, and create our own CollectedGettext.cs file, with comments for translators, and then gettext would just need to parse that file, and not all the source code. Basically we would replace the call to xgettext in function ParseWithGettext with our own parser. Then we could include all triple slash parameters from the functions, and all "// t:" or something from strings inside functions.
Just doing small things with the german translation enabled, I noticed that all the forms need a review, because the layout just does not look right in German. We probably need to have a on-the-fly layout function that looks at the label and button widths.