Indexing a method return (depending on Internationalization)
- by Hedde
Consider a django model with an IntegerField with some choices, e.g.
COLORS = (
    (0, _(u"Blue"),
    (1, _(u"Red"),
    (2, _(u"Yellow"),
)
class Foo(models.Model):
    # ...other fields...
    color = models.PositiveIntegerField(choices=COLOR, verbose_name=_(u"color"))
My current (haystack) index:
class FooIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    color = CharField(model_attr='color')
    def prepare_color(self, obj):
        return obj.get_color_display()
site.register(Product, ProductIndex)
This obviously only works for keyword "yellow", but not for any (available) translations. 
Question:
What's would be a good way to solve this problem? (indexing method returns based on the active language)
What I have tried:
I created a function that runs a loop over every available language (from settings) appending any translation to a list, evaluating this against the query, pre search. If any colors are matched it converts them backwards into their numeric representation to evaluate against obj.color, but this feels wrong.