I am making a German-language version of my iOS app, and I'm trying to make sure I have a great search experience for German-speakers, but I don't speak any German, so I'm having a hard time figuring out exactly how to handle some of the unique aspects of the language. In particular, I'm trying to figure out how German-speaking people would expect umlaut and ß to be handled in search.
- Should I expect that users will always use ß and not "ss", ö and not "oe", etc., or will there be users who would prefer to enter the latter? For example, if a user searches for "muesstet", should it match content containing "müßtet"?
- Should searches match when diacritics are simply removed? For example, if someone searches for "mussen" should it match "müssen"?
- Is ß always equivalent to "ss"? Looking at this conjugation chart, it looks like some conjugations use "ss" and others "ß". Should I simply not be messing with converting between these two?
There was some interest in the comments and answers for more technical details, so I'll provide them here, although you don't need to understand this to be able to answer the question.
My app is a Japanese-English dictionary, which I am expanding to also be a Japanese-German dictionary. When users search in German, it will be matching German definitions of Japanese words. I want to make sure I match whatever form German users would naturally type queries, including matching conjugated forms of words to matches that are unconjugated, or vice versa.
Internally, I’m using SQLite’s Full Text Search module. In English, this provides a tokenizer (“porter”) that handles all of this for you, including lemmatization of the words. But it doesn’t exist in other languages. So I’m using the built-in iOS lemmatization (NSLinguisticTagger) for German, and built-in String Transforms to convert diacritics.
However, what doesn’t exist in the system is the logic of when to use the string transform, so that I match as broad as possible, without matching things that would be obviously wrong to match to a German-speaking person. That’s what I’m looking for advice on here.