openfoodfacts / openfoodfacts-ios

Native (Swift) version of Open Food Facts for iOS. Coders & Decoders welcome 🤳🥫 😊
https://ios.openfoodfacts.org
Apache License 2.0
361 stars 160 forks source link

Create additive warning cards #173

Open teolemon opened 5 years ago

teolemon commented 5 years ago

Show overexposure risk for additives on the product, and show info from the taxonomy when clicking on it.

Proposed implementation

image

Example on the web version

https://world.openfoodfacts.org/additive/e250-sodium-nitrite

Taxonomy file

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

Excerpt of the taxonomy for 1 additive:

"en:e150c":{ "efsa_evaluation_adi":{ "en":"100" }, "efsa_evaluation_url":{ "en":"http://dx.doi.org/10.2903/j.efsa.2011.2004" }, "efsa_evaluation_date":{ "en":"2011-03-08" }, "efsa":{ "en":"http://www.efsa.europa.eu/fr/efsajournal/doc/3030.pdf" }, "additives_classes":{ "en":"en:colour" }, "name":{ "pt":"E150c - Caramelo de amónia", "da":"E150c - Ammonieret karamel", "lt":"E150c - Amoniakinė karamelė", "es":"E150c - Caramelo amónico", "nl":"E150c - Ammoniakkaramel", "mt":"E150c - Karamella tal-ammonja", "cs":"E150c - Amoniakový karamel", "sl":"E150c - Amonijev karamel", "sk":"E150c - Amoniakový karamel", "lv":"E150c - Amonija karamele", "fr":"E150c - Caramel ammoniacal", "fi":"E150c - Ammoniummenetelmän sokerikulööri", "pl":"E150c - Karmel amoniakalny", "et":"E150c - Ammooniumkaramell", "en":"E150c - Ammonia caramel", "el":"E150c - Εναμμωνιο καραμελοχρωμα", "ro":"E150c - Caramel amoniacal", "it":"E150c - Caramello ammoniacale", "hu":"E150c - Ammóniás karamell", "de":"E150c - Ammoniak-zuckerkulör", "bg":"E150c - Амониев карамел", "sv":"E150c - ammoniakprocessen" }, "e_number":{ "en":"150c" }, "efsa_evaluation_exposure_mean_greater_than_adi":{ "en":"en:children, en:toddlers" }, "efsa_evaluation":{ "en":"Scientific opinion on the re-evaluation of caramel colours -E 150 a,b,c,d- as food additives" }, "efsa_evaluation_exposure_95th_greater_than_adi":{ "en":"en:adults, en:children, en:toddlers" }, "efsa_evaluation_overexposure_risk":{ "en":"en:high" } },

Icon SVG files

https://static.openfoodfacts.org/images/misc/additives-efsa-evaluation-overexposure-risk-icon-moderate.svg https://static.openfoodfacts.org/images/misc/additives-efsa-evaluation-overexposure-risk-icon-high.svg

teolemon commented 5 years ago

Android implementation: https://github.com/openfoodfacts/openfoodfacts-androidapp/blob/3e0df5257c4b45e56c7afdf51446a821bec9b061/app/src/main/java/openfoodfacts/github/scrachx/openfood/views/product/ProductAttributeDetailsFragment.java#L136

msgctxt "adults"
msgid "Adults"
msgstr "Adults"

msgctxt "adults_age"
msgid "18 to 64"
msgstr "18 to 64"

msgctxt "adults_description"
msgid "From 18 years up to and including 64 years of age"
msgstr "From 18 years up to and including 64 years of age"

msgctxt "elderly"
msgid "Elderly"
msgstr "Elderly"

msgctxt "elderly_age"
msgid "65+"
msgstr "65+"

msgctxt "elderly_description"
msgid "From 65 years of age and older"
msgstr "From 65 years of age and older"

msgctxt "adolescents"
msgid "Adolescents"
msgstr "Adolescents"

msgctxt "adolescents_age"
msgid "10 to 17"
msgstr "10 to 17"

msgctxt "adolescents_description"
msgid "From 10 years up to and including 17 years of age"
msgstr "From 10 years up to and including 17 years of age"

msgctxt "children"
msgid "Children"
msgstr "Children"

msgctxt "children_age"
msgid "3 to 9"
msgstr "3 to 9"

msgctxt "children_description"
msgid "From 36 months up to and including 9 years of age"
msgstr "From 36 months up to and including 9 years of age"

msgctxt "toddlers"
msgid "Toddlers"
msgstr "Toddlers"

msgctxt "toddlers_age"
msgid "1 to 2"
msgstr "1 to 2"

msgctxt "toddlers_description"
msgid "From 12 months up to and including 35 months of age"
msgstr "From 12 months up to and including 35 months of age"

msgctxt "infants"
msgid "Infants"
msgstr "Infants"

msgctxt "infants_age"
msgid "< 1"
msgstr "< 1"

msgctxt "infants_description"
msgid "From more than 12 weeks up to and including 11 months of age"
msgstr "From more than 12 weeks up to and including 11 months of age"

msgctxt "additives_efsa_evaluation"
msgid "EFSA evaluation"
msgstr "EFSA evaluation"

msgctxt "additives_efsa_evaluation_overexposure_risk_title"
msgid "Risk of overexposure"
msgstr "Risk of overexposure"

msgctxt "additives_efsa_evaluation_overexposure_risk_high"
msgid "The European Food Safety Authority (EFSA) has determined that some population groups have a high risk of consuming too much <tag>."
msgstr "The European Food Safety Authority (EFSA) has determined that some population groups have a high risk of consuming too much <tag>."

msgctxt "additives_efsa_evaluation_overexposure_risk_moderate"
msgid "The European Food Safety Authority (EFSA) has determined that some population groups have a moderate risk of consuming too much <tag>."
msgstr "The European Food Safety Authority (EFSA) has determined that some population groups have a moderate risk of consuming too much <tag>."

msgctxt "additives_efsa_evaluation_overexposure_risk_description"
msgid "To evaluate your exposure to the <tag> food additive, you can browse our list of products that contain it. See the list of <nb_products> products with <tag> below."
msgstr "To evaluate your exposure to the <tag> food additive, you can browse our list of products that contain it. See the list of <nb_products> products with <tag> below."

msgctxt "additives_efsa_evaluation_overexposure_risk_products_link"
msgid "%d products with %s"
msgstr "%d products with %s"

msgctxt "additives_efsa_evaluation_overexposure_risk_no"
msgid "The European Food Safety Authority (EFSA) has determined that no population groups has more than 5% of members at risk of consuming more than the acceptable daily intake of <tag>."
msgstr "The European Food Safety Authority (EFSA) has determined that no population groups has more than 5% of members at risk of consuming more than the acceptable daily intake of <tag>."

msgctxt "additives_efsa_evaluation_overexposure_risk_icon_alt_high"
msgid "High risk of over exposure"
msgstr "High risk of over exposure"

msgctxt "additives_efsa_evaluation_overexposure_risk_icon_alt_moderate"
msgid "Moderate risk of over exposure"
msgstr "Moderate risk of over exposure"

msgctxt "additives_efsa_evaluation_exposure_greater_than_adi"
msgid "Risk of exceeding the acceptable daily intake (ADI)"
msgstr "Risk of exceeding the acceptable daily intake (ADI)"

msgctxt "additives_efsa_evaluation_exposure_greater_than_noael"
msgid "Risk of exceeding the maximum dose without adverse effect (No observed adverse effect level - NOAEL)"
msgstr "Risk of exceeding the maximum dose without adverse effect (No observed adverse effect level - NOAEL)"

msgctxt "additives_efsa_evaluation_exposure_mean_greater_than_adi"
msgid "Groups with more than 50% of members exceeding the acceptable daily intake (ADI)"
msgstr "Groups with more than 50% of members exceeding the acceptable daily intake (ADI)"

msgctxt "additives_efsa_evaluation_exposure_95th_greater_than_adi"
msgid "Groups with more than 5% of members exceeding the acceptable daily intake (ADI)"
msgstr "Groups with more than 5% of members exceeding the acceptable daily intake (ADI)"

msgctxt "additives_efsa_evaluation_exposure_mean_greater_than_noael"
msgid "Groups with more than 50% of members exceeding the maximum dose without adverse effect (No observed adverse effect level - NOAEL)"
msgstr "Groups with more than 50% of members exceeding the maximum dose without adverse effect (No observed adverse effect level - NOAEL)"

msgctxt "additives_efsa_evaluation_exposure_95th_greater_than_noael"
msgid "Groups with more than 5% of members exceeding the maximum dose without adverse effect (No observed adverse effect level - NOAEL)"
msgstr "Groups with more than 5% of members exceeding the maximum dose without adverse effect (No observed adverse effect level - NOAEL)"

msgctxt "exposure_title_95th"
msgid "Some people"
msgstr "Some people"

msgctxt "exposure_description_95th"
msgid "over 5%"
msgstr "over 5%"

msgctxt "exposure_title_mean"
msgid "Most people"
msgstr "Most people"

msgctxt "exposure_description_mean"
msgid "over 50%"
msgstr "over 50%"
Noroking commented 3 years ago

Hello, I have 6 months experience with Swift. I'm new to GitHub and I would like to help.

teolemon commented 3 years ago

@khoitruongminh

khoi-truong commented 3 years ago

@teolemon can you assign this to me. I take it.

teolemon commented 3 years ago

@khoitruongminh assigned 👍

amberhandal commented 2 years ago

Hello, I would like to work on this!