As for german and other (still) inflecting languages, the output of \ordinalstringnum and related commands is not very useful, as it's only the nominative singular masculine of the strong form:
\ordinalstringnum{1} in german gives "erster" without simple possibility to modify it to e.g. "erste", "erstes", "erstem" and so on – see the whole list here.
I propose to modify it to output just the (let's call it) stem, for german this would be:
ers, zwei, drit, vier, fünf, sechs, sieb, ach, neun, zehn, …, zwanzigs, einundzwanzigs, zweiundzwanzigs, … (this is already rendered correctly, just with the -"ter")
An author needs to add the ending "ter", "tes", "te" etc. to print out a real word, but he can modify it according to the syntactical requirements.
Another way would be to output "erste", "zweite" etc., which would match the least common of the inflected forms, the author then would just need to add "r", "s", "ø" etc.
In the first version the code retains better legibility, in the second it's shortened as much as possible.
The same problem exists with outher languages as well, for example in french the output is "premier", but needs to be premi{er,ers,ère,ères}. For all the other ordinals it's Xième{s} and the current output therefore can be retained.
As for german and other (still) inflecting languages, the output of \ordinalstringnum and related commands is not very useful, as it's only the nominative singular masculine of the strong form:
\ordinalstringnum{1}
in german gives "erster" without simple possibility to modify it to e.g. "erste", "erstes", "erstem" and so on – see the whole list here. I propose to modify it to output just the (let's call it) stem, for german this would be: ers, zwei, drit, vier, fünf, sechs, sieb, ach, neun, zehn, …, zwanzigs, einundzwanzigs, zweiundzwanzigs, … (this is already rendered correctly, just with the -"ter") An author needs to add the ending "ter", "tes", "te" etc. to print out a real word, but he can modify it according to the syntactical requirements. Another way would be to output "erste", "zweite" etc., which would match the least common of the inflected forms, the author then would just need to add "r", "s", "ø" etc. In the first version the code retains better legibility, in the second it's shortened as much as possible.The same problem exists with outher languages as well, for example in french the output is "premier", but needs to be premi{er,ers,ère,ères}. For all the other ordinals it's Xième{s} and the current output therefore can be retained.