When you have an application with an intended international audience, you are likely to run into issues with names. The W3C has some interesting documentation on names, but I'm not sure how good it is UX wise to follow their suggestions.
The simplest option is to just force everyone to enter their display name in a Latin script. Simple and fine for people whose names are given in Latin script anyway, I can imagine this being anything from problematic (when people are for example reading the Thai version of the website), to just plain offensive to some people.
Another option is to allow people to enter their display name in any script that they like. While this is now simpler in not offending people, it would make it difficult for other people using the application to understand the non-Latin names. For example, most people will struggle to see the difference between "กานดา" and "กุหลาบ" (both Thai names).
An option which I tend to lean towards is allowing people to enter their display name in a non-Latin script, but require them to provide a Latin-script transliteration to be included into the displayed name. Using the example before, that would be like comparing "กานดา (Kanda)" and "กุหลาบ (Kulap)". The problem then becomes having many fields to be filled in when someone is creating an account, as well as having to explain what a Latin-script is in the first place.
The best option is going to be some trade-off, but without much experience in internationalised applications I would only be making a best guess given my perspective.
How would you handle this?
What experience do you have with using names in a non-Latin script?
What are some examples of how other applications have handled this?
Edit: The application itself will be international in multiple translations, but the content from all translations will be visible on every translation.
Edit 2: I'm talking about a non-unique display name here, not a username. So it's fine if there are duplicates.