Data Contributions
This guide covers how to contribute ingredient data in your language.
Each language also has detailed food rules covering naming conventions, qualifier syntax, label definitions, and processing steps. These are especially useful when using LLMs to generate or expand data:
Available Languages
| Code | Language | Status |
|---|---|---|
nl |
Dutch | 1,312 foods, actively maintained |
fr |
French | 1,311 foods |
en |
English | Open to contributions |
de |
German | Open to contributions |
| other | Your language? | Start here |
Folder Structure
Data/
├── nl/ # Dutch
│ ├── Foods/ # One file per label/category
│ │ ├── groente.json
│ │ ├── fruit.json
│ │ └── ...
│ ├── Labels.json
│ ├── Units.json
│ ├── Categories.json
│ ├── Tags.json
│ └── Tools.json
│
├── fr/ # French (same structure)
│ └── ...
│
└── {language-code}/ # Your language
└── ...
Food items share stable UUIDs across language files. When translating, keep the same id so that "aardappel" (NL) and "pomme de terre" (FR) are linked.
How to Contribute
Option 1: Start from Scratch
- Create a folder with your ISO 639-1 language code (e.g.,
de,es) - Create JSON files following the JSON format
- Submit a pull request
Option 2: Translate Existing Data
- Export the Dutch data using MealieSync
- Translate the names, plurals, descriptions, and aliases
- Keep the same structure and IDs (for cross-language linking)
- Submit a pull request
Option 3: Use AI/LLM Assistance
MealieSync's JSON format works well with AI tools:
- Use an LLM to generate ingredients in your language based on the Dutch data structure
- Have the AI create descriptions, plurals, and aliases
- Review and correct the output
- Validate with MealieSync's
-WhatIfmode before importing - Submit a pull request
This is a fast way to bootstrap a new language or expand an existing dataset with cuisine-specific ingredients.
Data Quality Guidelines
What Makes a Good Ingredient?
Include:
- Raw ingredients (vegetables, fruits, meats, herbs)
- Semi-prepared products used as ingredients (flour, pasta, bouillon)
- Sauces and condiments added to dishes
- Pre-prepared items purchased ready-to-use (smoked fish, deli meats)
Do not include:
- Dishes or recipes (mashed potatoes, croissants, smoothies)
- Ready-to-eat meals (frozen pizza, pre-made salads)
- Brand names (use generic terms)
- Terms that are too generic ("juice", "dough")
- Obscure items unknown to most people
Naming Rules
- Use the common name in your language
- Always singular. Plural goes in
pluralName - No brand names. Use generic terms
- Native language first. English only if internationally adopted
| Wrong | Correct |
|---|---|
| maple syrup | ahornsiroop (Dutch) |
| Heinz ketchup | ketchup |
| potatoes | potato |
Aliases
Aliases are alternative names for the exact same ingredient.
Good aliases:
- Synonyms: "spud" for potato
- Translations: "maizena" for cornstarch
- Spelling variants: "jalapeno" for jalapeño
- Spaced variants: "soy sauce" for soysauce
Not aliases (create separate entries instead):
- Varieties: "Granny Smith" is not an alias for "apple"
- Derived products: "lemon juice" is not an alias for "lemon"
- Different products: "bok choy" is not an alias for "cabbage"
- Preparations: "espresso" is not an alias for "coffee"
Rule of thumb: if in doubt, create a separate ingredient.
When to Split Ingredients
Always create separate entries for:
| Situation | Example |
|---|---|
| Different plant parts | cilantro (leaf) vs coriander seed |
| Fresh vs dried | ginger vs ginger powder |
| Whole vs ground | nutmeg vs ground nutmeg |
| Zest/juice/peel | lemon vs lemon zest vs lemon juice |
| Different cuts | chicken breast vs chicken thigh |
Label Assignment
Label by what it is, not where it comes from:
| Ingredient | Wrong | Correct |
|---|---|---|
| oyster sauce | Seafood | Sauces & Condiments |
| fish stock | Seafood | Stocks & Broths |
| mozzarella | Dairy | Cheese |
| honey | Baking | Sweets |
| tofu | Dairy | Legumes |
Descriptions
Format: [Brief definition]; [typical use or characteristics].
Examples:
- "Dark sauce from oyster extract; savory flavor enhancer in Asian cuisine."
- "Fatty fish; pink flesh, versatile preparation."
- "Spice blend for Cajun dishes; spicy with paprika and cayenne."
Keep descriptions concise and informative.
Checklist Before Submitting
- [ ] Items are ingredients (not dishes or recipes)
- [ ] Primary name is in the target language
- [ ] Names are singular (plural in
pluralName) - [ ] Aliases are true synonyms (not varieties or derivatives)
- [ ] Correct labels assigned
- [ ] No duplicates (check aliases too)
- [ ] No brand names
- [ ] Fresh/dried and whole/ground are properly split
- [ ] JSON files use the wrapper format