Two quick thoughts on fallback languages: One general
could be to not select a language with a different script when one in
the same script is available. (At least for users with a preference
for a latin language - this may be different the other way around.)
This is a good idea, except that I don't really have tools to do this
right now, I think, at least not without adding a lot to Language
classes (maybe I'm wrong, I'll check). So for now I think I am going to
trust whoever composed the fallback chains and use those. So basically
the idea would be to display:
1. Title & description in user's display language. If the match happened
in those, it will be highlighted.
1.1 Failing to find those, walk back the fallback chain until some
title/description is found and display that one. Again, if the match
happened there, it will be highlighted.
1.2 If we still failed to find any label/description, just display Q-id
for label and nothing for description.
2. If we still did not display the actual string that was matched (i.e.
it is an alias, non-main language, etc.) - display it too, in addition
to what we already displayed.
3. If any string is displayed in language different from user's current
display language, it will have a mark that says in which language it is
displayed (except for Q-id string, obviously).
I think this should do for now, but we can always improve it later :)