I'm using EPiFind to index custom objects in addition to CMS content, and some fields of my custom object are language-dependent.
How should I index my objects in order to use Search<TSource>(Language language) (or .FilterOnLanguages, or non-cms analog?) in queries?
1) should I store lanugage as a part of the object and have 1 object per lanugage (+ probably write my own extension to filter by this field)?
2) or should I add fields with proper prefix/suffix (or any other "language mark" on the field level), and have separate field for each language? (In this case I'm not sure how to efficiently filter results by language)
3) something else (maybe I missed a simple built-in way)?
You just stepped into the magic of EPiServer Find. Welcome :-)
What I mean with that is that you don't need to worry about that. Find will handle the language for you. Then you can search with Search<Type>(Language.YOURLANGUAGE) and get stemming on the language you are searching for.
Hope that help you.