Changes

Jump to navigation Jump to search
design proposal
Line 17: Line 17:     
* Products that have different labels in different languages, with the same barcode
 
* Products that have different labels in different languages, with the same barcode
** will be addressed by [[Project:Product versions]]
+
** will be addressed by [[Project:Product versions and history]]
 
* Products that have different labels in different languages, with a different barcode
 
* Products that have different labels in different languages, with a different barcode
 
** we simply store them as different products
 
** we simply store them as different products
Line 23: Line 23:  
* Translating ingredients
 
* Translating ingredients
 
** will be addressed by ingredients taxonomy
 
** will be addressed by ingredients taxonomy
 +
 +
== Current status ==
 +
 +
=== Data entry ===
 +
 +
* There is a field to indicate the "main" language of a product
 +
** Values entered in the product edit form are considered to be in the "main" language of the product
 +
** Values entered in fields for which we have a taxonomy (categories, countries, labels, traces) are mapped according to the "main" language of the product
 +
*** e.g. entering "jus de fruits" in the categories field when the main language is set to French will result in en:fruit-juices to be assigned.
 +
* Values for nutrition facts are global and assigned to a canonical field
 +
** Except when the nutrient's name is unknown (i.e. not in our current nutrient taxonomy)
 +
* Images are selected/cropped for the "main" language of the product (product front, ingredients and nutrition facts)
 +
 +
=== Data display ===
 +
 +
* Fields for which we have a taxonomy (categories, countries, labels, traces) are displayed in the target language. (target language is set by the subdomain, e.g. using http://world.openfoodfacts.org , we will see categories in English even for French products, using http://es.openfoodfacts.org will result in Spanish)
 +
** Only if the category exists in the taxonomy
 +
** Only if the target language exists for this category in the taxonomy
 +
*** If the target language doesn't exist, English is used to display the field value
 +
* Nutrition facts are displayed in the target language
 +
* Fields without a taxonomy are displayed in the language they were entered in
 +
** common name, quantity, packaging, brands, origin of ingredients, manufacturing or processing places, city/state/country, stores, link to the product page, best before date
 +
** ingredients
 +
* Images for product front, ingredients and nutrition facts are for the main language of the product (and not the target language)
 +
 +
 +
== Solution ==
 +
 +
=== Data entry ===
 +
 +
* Taxonomize as many fields as possible
 +
** Taxonomized field need to be completed in only one language
 +
** Packaging, origins of ingredients, purchase places
 +
*** Note: packaging and purchase places do not correspond to text on the label
 +
* Enable users to enter data for more than one language:
 +
** Select different images or different part of the images for product front, ingredients and nutrition facts
 +
** Enter data (text) for more than one language
 +
 +
=== Data display ===
 +
 +
* Taxonomized fields will be displayed in the target language
 +
* Display other fields and pictures in the target language if the product has data in that language
 +
* Indicate in which languages the product data is available, and provide a way to see it
 +
 +
=== Technical design ===
 +
 +
==== Taxonomize all or most multilingual tag fields ====
 +
 +
* Packaging, origins of ingredients and purchase places are tag fields (they contain comma separated values) that are not yet taxonomized
 +
* The existing taxonomy system will take care of the mapping between different languages
 +
* The taxonomies need to be created or completed
 +
* To be determined: what to do with brands?
 +
** Typically not translated
 +
*** But exceptions exist
 +
** Could benefit from being taxonomized in order to have a hierarchy
 +
 +
 +
==== Selection/crop of images in more than one language
 +
 +
* For product, ingredients and nutrition facts
 +
 +
==== Entry of fields in more than one language
 +
 +
* Keep all exisiting fields as-is
 +
** e.g. ingredients, generic_name etc.
 +
** "ingredients_text":"Chocolate, milk"
 +
** For compatibility and to enable incremental implementation and deployment
 +
* Create new fields suffixed by _lang, with a hash
 +
** "ingredients_text_lang":{"en":"Chocolate, milk", "fr":"Chocolat, lait"}
 +
* Create new languages field
 +
** Hash that contains languages for which we have values for at least one field
 +
** "languages":{"en":"1", "fr":"1"}

Navigation menu