I’m sorry for this post, but it will be a summary of my pain, because really, this is the worst realization of localization feature I ever seen. It works even worse than machine translation on usual websites.
I will start from OpenPrices. It has the best localization between all OFF projects, because right now it just doesn’t have it. But even here there is a problem… For some reason, all product links lead to French site of OFF.
Just why? I know that France is one of the most important countries because of huge number of contributors from there, but it doesn’t mean that this redirection should be to French website with French language as main for all users. And even in the foot links lead to “world.” domain
If we started this theme already. Why is there so overcomplicated prefix system of OFF’s sites and their languages? As far as I understand it now, it has a next structure:
[country-code].[lang_code].openfoodfacts.org
But I wasted many weeks before I realized what is the reason that I need to log in too often and why the annoying constant language change happen, when I go between different projects and products… I just didn’t think that I can have redirections to different country/language subdomains… And I can’t change this behavior.
I guess, I got that idea, why it is implemented in this way. Possibly, you wanted to separate products that are sold in different countries and show only them to me. Again, it took me some days before I realized why products that were modified or were added by me not always are displayed on some subdomains I used because I didn’t think it can be the reason because it wasn’t specified anywhere. But then there is a new question: just for why to add this isolation? In most cases I just need to find some product in all database. And even if I want to do some more specific search query, why just can’t it be search filter option or setting option?
If it will be just just a filter option on one domain, it will also significantly simplify your localization problems. You won’t need to implement this over-complicated language hierarchy, where every country should have a separate subdomain with separate and unique list of available languages and it will solve the problem of constant redirections between different subdomains and languages.
I think that we should just have one site openfoodfacts.org with these 4 options and that’s it:
- interface language
- preferred language for displaying parameters that cannot be translated (as product name), maybe it should be order of languages in descending order of preference
- language used for adding/editing products by default; if I use Swedish interface in USA it doesn’t mean that products will have Swedish names and descriptions.
- country filter for my searches (only if I need it and it should not be chosen by default); something as “show only products that are relevant for country ['x]”
In current realization, that is used now, again, there are plenty problems with redirections, logins and translation too (how for instance do you choose, that some language should/not be used for some country subdomain?).
And you even started to use similar logic in your mobile app! But there are other localization problems in it.
- Interface language is used for adding and editing products by default. It is a strange and annoying decision, because as I mentioned earlier, they should not be the same thing. I can want to use Kazakh interface language in USA because it is just more comfortable for me, but products still are in English mostly. But even if I chose other language, when I use “Take more pictures”, for some reason first of these pictures automatically will be used for the interface language (that I switched from it earlier).
- Categories are not really useful outside English and maybe French languages.
- It is not clear, how brand names should be added when they are in many languages.
- It is not clear why there are plenty variants how weigh/quantity info can be added “1L, 1l, 1 liter, 1 литр etc”. Again, it makes hard to localize it

