openfoodfacts-androidapp icon indicating copy to clipboard operation
openfoodfacts-androidapp copied to clipboard

Honor the default unit from the nutrient taxonomy

Open Slawek234 opened this issue 5 years ago • 7 comments

When we add a Vitamin, fats, macro- microelements the default unit should be selected.

Current situation. The default unit is gram. Screenshot-2019-08-20-13-28-35

After entering the automatic units for the different nutrients. Screenshot-2019-08-20-13-28-12

Slawek234 avatar Aug 20 '19 11:08 Slawek234

On this page https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32011R1169&from=en , in Annex 13 I found a list of added vitamins and minerals with units.

Vitamin A (μg) Vitamin D (μg) Vitamin E (mg) Vitamin K (μg) Vitamin C (mg) Thiamin (mg) Riboflavin (mg) Niacin (mg) Vitamin B6 (mg) Folic acid (μg) Vitamin B12 (μg) Biotin (μg) Pantothenic acid (mg) Potassium (mg) Chloride (mg) Calcium (mg) Phosphorus (mg) Magnesium (mg) Iron (mg) Zinc (mg) Copper (mg) Manganese (mg) Fluoride (mg) Selenium(μg) Chromium (μg) Molybdenum (μg) Iodine (μg)

caffeine (mg)

Slawek234 avatar Oct 22 '19 15:10 Slawek234

@Slawek234 can you file on https://github.com/openfoodfacts/openfoodfacts-server ? I'd rather provide the nutrient translations as a downloadable file we can update on the fly. Also, the European Commission is making its translation memories available as opendata, so we'll be able to build on that.

teolemon avatar Oct 22 '19 15:10 teolemon

I think this is already implemented in openfoodfacts-server.

VaiTon avatar Nov 17 '19 09:11 VaiTon

https://static.openfoodfacts.org/data/taxonomies/nutrients.json

"vitamin-b2":{"is":"Vitamin B2 (Riboflavin)","tl":"Vitamin B2 (Riboflavin)","ny":"Vitamin B2 (Riboflavin)","ml":"Vitamin B2 (Riboflavin)","zu":"Vitamin B2 (Riboflavin)","ts":"Vitamin B2 (Riboflavin)","dv":1.7,"el":"Βιταμίνη B2 (Ριβοφλαβίνη)","cs":"Vitamin B2 (Riboflavin)","ce":"Vitamin B2 (Riboflavin)","ht":"Vitamin B2 (Riboflavin)","vi":"Vitamin B2 (Riboflavin)","ki":"Vitamin B2 (Riboflavin)","es":"Vitamina B2 (Riboflavina)","ch":"Vitamin B2 (Riboflavin)","bo":"Vitamin B2 (Riboflavin)","rm":"Vitamin B2 (Riboflavin)","la":"Vitamin B2 (Riboflavin)","mo":"Vitamin B2 (Riboflavin)","io":"Vitamin B2 (Riboflavin)","lt":"Vitaminas B2 (Riboflavinas)","ks":"Vitamin B2 (Riboflavin)","ms":"Vitamin B2 (Riboflavin)","tg":"Vitamin B2 (Riboflavin)","ik":"Vitamin B2 (Riboflavin)","ug":"Vitamin B2 (Riboflavin)","am":"Vitamin B2 (Riboflavin)","ja":"ビタミン B2","ig":"Vitamin B2 (Riboflavin)","ar":"Vitamin B2 (Riboflavin)","zh":"维生素B2(核黄素)","co":"Vitamin B2 (Riboflavin)","xx":"Vitamin B2 (Riboflavin)","za":"Vitamin B2 (Riboflavin)","gv":"Vitamin B2 (Riboflavin)","fa":"Vitamin B2 (Riboflavin)","ku":"Vitamin B2 (Riboflavin)","ky":"Vitamin B2 (Riboflavin)","gn":"Vitamin B2 (Riboflavin)","cr":"Vitamin B2 (Riboflavin)","rn":"Vitamin B2 (Riboflavin)","an":"Vitamin B2 (Riboflavin)","pi":"Vitamin B2 (Riboflavin)","ga":"Vitimín B2 (Ribeaflaivin)","xh":"Vitamin B2 (Riboflavin)","lv":"B2 vitamīns (Riboflavīns)","ln":"Vitamin B2 (Riboflavin)","nn":"Vitamin B2 (Riboflavin)","km":"Vitamin B2 (Riboflavin)","my":"Vitamin B2 (Riboflavin)","ru":"Vitamin B2 (Riboflavin)","gd":"Vitamin B2 (Riboflavin)","oc":"Vitamin B2 (Riboflavin)","oj":"Vitamin B2 (Riboflavin)","as":"Vitamin B2 (Riboflavin)","cv":"Vitamin B2 (Riboflavin)","mt":"Vitamina B2 (Riboflavina)","pl":"Witamina B2 (Ryboflawina)","af":"Vitamin B2 (Riboflavin)","wo":"Vitamin B2 (Riboflavin)","sv":"Vitamin B2 (Riboflavin)","tk":"Vitamin B2 (Riboflavin)","fr_synonyms":["Vitamine B2","Riboflavine"],"tr":"Vitamin B2 (Riboflavin)","tw":"Vitamin B2 (Riboflavin)","kk":"Vitamin B2 (Riboflavin)","av":"Vitamin B2 (Riboflavin)","su":"Vitamin B2 (Riboflavin)","bg":"Витамин B2 (Рибофлавин)","ia":"Vitamin B2 (Riboflavin)","ha":"Vitamin B2 (Riboflavin)","ve":"Vitamin B2 (Riboflavin)","os":"Vitamin B2 (Riboflavin)","uk":"Vitamin B2 (Riboflavin)","li":"Vitamin B2 (Riboflavin)","ak":"Vitamin B2 (Riboflavin)","eu":"Vitamin B2 (Riboflavin)","to":"Vitamin B2 (Riboflavin)","kj":"Vitamin B2 (Riboflavin)","hu":"B2-vitamin (Riboflavin)","ss":"Vitamin B2 (Riboflavin)","lg":"Vitamin B2 (Riboflavin)","bm":"Vitamin B2 (Riboflavin)","ka":"Vitamin B2 (Riboflavin)","ff":"Vitamin B2 (Riboflavin)","he":"ויטמין B2 (ריבופלבין)","ur":"Vitamin B2 (Riboflavin)","sc":"Vitamin B2 (Riboflavin)","kn":"Vitamin B2 (Riboflavin)","nl":"Vitamine B2 (Riboflavine)","de":"Vitamin B2 (Riboflavin)","kl":"Vitamin B2 (Riboflavin)","kw":"Vitamin B2 (Riboflavin)","bi":"Vitamin B2 (Riboflavin)","sk":"Vitamín B2","sm":"Vitamin B2 (Riboflavin)","ba":"Vitamin B2 (Riboflavin)","st":"Vitamin B2 (Riboflavin)","mk":"Vitamin B2 (Riboflavin)","mg":"Vitamin B2 (Riboflavin)","hi":"Vitamin B2 (Riboflavin)","ee":"Vitamin B2 (Riboflavin)","th":"Vitamin B2 (Riboflavin)","dz":"Vitamin B2 (Riboflavin)","sr":"Vitamin B2 (Riboflavin)","bh":"Vitamin B2 (Riboflavin)","ay":"Vitamin B2 (Riboflavin)","unit":"mg","qu":"Vitamin B2 (Riboflavin)","et":"Vitamiin B2 (Riboflaviin)","sl":"Vitamin B2 (Riboflavin)","fj":"Vitamin B2 (Riboflavin)","yo":"Vitamin B2 (Riboflavin)","id":"Vitamin B2 (Riboflavin)","nr":"Vitamin B2 (Riboflavin)","fi":"B2-vitamiini (Riboflaviini)","da":"Vitamin B2 (Riboflavin)","lu":"Vitamin B2 (Riboflavin)","mh":"Vitamin B2 (Riboflavin)","sw":"Vitamin B2 (Riboflavin)","dv_2016":1.3,"jv":"Vitamin B2 (Riboflavin)","ie":"Vitamin B2 (Riboflavin)","cy":"Vitamin B2 (Riboflavin)","mr":"Vitamin B2 (Riboflavin)","nl_be":"Vitamine B2 (Riboflavine)","az":"Vitamin B2 (Riboflavin)","ca":"Vitamin B2 (Riboflavin)","it":"Vitamina B2 (Riboflavina)","yi":"Vitamin B2 (Riboflavin)","se":"Vitamin B2 (Riboflavin)","ro":"Vitamina B2 (Riboflavină)","sq":"Vitamin B2 (Riboflavin)","or":"Vitamin B2 (Riboflavin)","vo":"Vitamin B2 (Riboflavin)","rw":"Vitamin B2 (Riboflavin)","hz":"Vitamin B2 (Riboflavin)","lb":"Vitamin B2 (Riboflavin)","en":"Vitamin B2 (Riboflavin)","ta":"Vitamin B2 (Riboflavin)","nb":"Vitamin B2 (Riboflavin)","br":"Vitamin B2 (Riboflavin)","sn":"Vitamin B2 (Riboflavin)","cu":"Vitamin B2 (Riboflavin)","ae":"Vitamin B2 (Riboflavin)","gl":"Vitamin B2 (Riboflavin)","aa":"Vitamin B2 (Riboflavin)","bs":"Vitamin B2 (Riboflavin)","gu":"Vitamin B2 (Riboflavin)","bn":"Vitamin B2 (Riboflavin)","tn":"Vitamin B2 (Riboflavin)","ho":"Vitamin B2 (Riboflavin)","si":"Vitamin B2 (Riboflavin)","kg":"Vitamin B2 (Riboflavin)","pa":"Vitamin B2 (Riboflavin)","lo":"Vitamin B2 (Riboflavin)","ng":"Vitamin B2 (Riboflavin)","ko":"Vitamin B2 (Riboflavin)","ps":"Vitamin B2 (Riboflavin)","te":"Vitamin B2 (Riboflavin)","kv":"Vitamin B2 (Riboflavin)","so":"Vitamin B2 (Riboflavin)","ty":"Vitamin B2 (Riboflavin)","om":"Vitamin B2 (Riboflavin)","be":"Vitamin B2 (Riboflavin)","nd":"Vitamin B2 (Riboflavin)","ii":"Vitamin B2 (Riboflavin)","ab":"Vitamin B2 (Riboflavin)","eo":"Vitamin B2 (Riboflavin)","fy":"Vitamin B2 (Riboflavin)","uz":"Vitamin B2 (Riboflavin)","hy":"Vitamin B2 (Riboflavin)","mi":"Vitamin B2 (Riboflavin)","fr":"Vitamine B2 (Riboflavine)","tt":"Vitamin B2 (Riboflavin)","ti":"Vitamin B2 (Riboflavin)","pt":"Vitamina B2 (Riboflavina)","ne":"Vitamin B2 (Riboflavin)","hr":"Vitamin B2 (Riboflavin)","na":"Vitamin B2 (Riboflavin)","sg":"Vitamin B2 (Riboflavin)","nv":"Vitamin B2 (Riboflavin)","kr":"Vitamin B2 (Riboflavin)","fo":"Vitamin B2 (Riboflavin)","sd":"Vitamin B2 (Riboflavin)","sa":"Vitamin B2 (Riboflavin)","no":"Vitamin B2 (Riboflavin)"}

"unit":"mg"

teolemon avatar Nov 23 '19 12:11 teolemon

@VaiTon A more canonical source might be: https://fr.openfoodfacts.org/cgi/nutrients.pl https://us.openfoodfacts.org/cgi/nutrients.pl

teolemon avatar Aug 22 '21 14:08 teolemon

@stefaniebosch and I would like to take our chance at this issue

machiav3lli avatar Nov 19 '21 23:11 machiav3lli

Here's our solution's idea:

  1. Make sure that the JSON file (https://static.openfoodfacts.org/data/taxonomies/nutrients.json) is saved

    • download & parse it if not.

    • the default unit is provided currently in the form: "unit":{"en":"mg"}

    • this needs more deliberation to see, when the file should be pulled

  2. In class ProductEditNutritionFactsFragment in function displayAddNutrientDialog()

  3. get the defualt unit from the saved JSON data.

  4. Get the correct index depending on the gotten value.

  5. The index should be used as argument unitSelectedIndex in addNutrientRow().

Points to consider:

  • The saved data from JSON can be possibly used in other places of the app

    • e.g. forcing the default unit in data view (to standardize the presentation and still allow users to easily make prefered input)
  • Consider if the basic fields (fat, saturated fat, Carbohyrate, …) also has to have other values than gram.

machiav3lli avatar Nov 21 '21 17:11 machiav3lli