Skip to content

Commit 80c123f

Browse files
committed
New Crowdin translations by GitHub Action
1 parent 21e8e0b commit 80c123f

File tree

108 files changed

+4581
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+4581
-0
lines changed

de-DE/code/starter/main.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Gross Groceries recipe card
2+
3+
# Ingredients and amounts for 1 person
4+
5+
6+
# Number of servings
7+
8+
9+
# Scaled-up ingredients
10+
11+
12+
# Print recipe instructions
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
name: "Python Bytes - Gross Groceries"
2+
identifier: "python-bytes-gross-groceries"
3+
type: python
4+
build: true

de-DE/images/banner.png

42.4 KB
Loading

de-DE/mentor.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Mentor Notes: Gross Groceries
2+
3+
## Project Overview
4+
5+
In this project, learners will use Python to help a strange restaurant owner create a revolting recipe card. They’ll start with simple ingredients and build up to printing full recipe instructions using f-strings. By the end, learners will have used variables, strings, numbers, simple arithmetic, and f-strings across multiple steps.
6+
7+
---
8+
9+
## What Learners Will Practise
10+
11+
- Creating and using variables
12+
- Combining strings and numbers with f-strings
13+
- Performing basic multiplication in code
14+
- Writing multi-line Python programs with clear structure
15+
16+
---
17+
18+
## Teaching Tips
19+
20+
- Encourage learners to come up with their own disgusting ingredients — the sillier, the better!
21+
- Prompt them to read printed output carefully to understand the effect of their changes.
22+
- Reinforce that f-strings are a powerful way to combine text and values without needing multiple `+` symbols.
23+
24+
---
25+
26+
## Extension Ideas
27+
28+
- Let learners use `input()` to ask how many people the recipe should serve
29+
- Encourage them to use `\n` to format multi-line recipe cards
30+
- Add even more ingredients or steps to the recipe

de-DE/meta.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
title: Python bytes - Gross groceries
2+
hero_image: images/banner.png
3+
description: Write a revolting recipe card using variables, f-strings, and maths
4+
meta_title: Learn to code with Gross Groceries | Python Bytes
5+
meta_description: Learn how to use Python f-strings and variables to print a disgusting recipe for an odd restaurant.
6+
version: 1
7+
listed: true
8+
copyedit: false
9+
last_tested: "2025-04-14"
10+
steps:
11+
- title: step_1
12+
- title: step_2
13+
completion:
14+
- engaged
15+
- title: step_3
16+
- title: step_4
17+
- title: step_5
18+
completion:
19+
- internal
20+
- external

de-DE/resources/dataframe.json

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
[
2+
{
3+
"filename": "meta.yml",
4+
"path": "en\/",
5+
"content": "title: Python bytes - Gross groceries\nhero_image: images\/banner.png\ndescription: Write a revolting recipe card using variables, f-strings, and maths\nmeta_title: Learn to code with Gross Groceries | Python Bytes\nmeta_description: Learn how to use Python f-strings and variables to print a disgusting recipe for an odd restaurant.\nversion: 1\nlisted: false\ncopyedit: false\nlast_tested: \"2025-04-14\"\nsteps:\n - title: step_1\n - title: step_2\n completion:\n - engaged\n - title: step_3\n - title: step_4\n - title: step_5\n completion:\n - internal\n - external\n"
6+
},
7+
{
8+
"filename": "main.py",
9+
"path": "en\/code\/starter\/",
10+
"content": "# Gross Groceries recipe card\n\n# Ingredients and amounts for 1 person\n\n\n# Number of servings\n\n\n# Scaled-up ingredients\n\n\n# Print recipe instructions\n"
11+
},
12+
{
13+
"filename": "project_config.yml",
14+
"path": "en\/code\/starter\/",
15+
"content": "name: \"Python Bytes - Gross Groceries\"\nidentifier: \"python-bytes-gross-groceries\"\ntype: python\nbuild: true\n"
16+
},
17+
{
18+
"filename": "mentor.md",
19+
"path": "en\/",
20+
"content": "# Mentor Notes: Gross Groceries\n\n## Project Overview\n\nIn this project, learners will use Python to help a strange restaurant owner create a revolting recipe card. They’ll start with simple ingredients and build up to printing full recipe instructions using f-strings. By the end, learners will have used variables, strings, numbers, simple arithmetic, and f-strings across multiple steps.\n\n---\n\n## What Learners Will Practise\n\n- Creating and using variables\n- Combining strings and numbers with f-strings\n- Performing basic multiplication in code\n- Writing multi-line Python programs with clear structure\n\n---\n\n## Teaching Tips\n\n- Encourage learners to come up with their own disgusting ingredients — the sillier, the better!\n- Prompt them to read printed output carefully to understand the effect of their changes.\n- Reinforce that f-strings are a powerful way to combine text and values without needing multiple `+` symbols.\n\n---\n\n## Extension Ideas\n\n- Let learners use `input()` to ask how many people the recipe should serve\n- Encourage them to use `\\n` to format multi-line recipe cards\n- Add even more ingredients or steps to the recipe\n"
21+
},
22+
{
23+
"filename": "step_1.md",
24+
"path": "en\/",
25+
"content": "<h2 class=\"c-project-heading--task\">Write your first disgusting ingredient<\/h2>\n--- task ---\nAdd a gross ingredient and print it using an f-string\n--- \/task ---\n\n<h2 class=\"c-project-heading--explainer\">Start your recipe<\/h2>\n\nThe owner of an odd restaurant has decided to use code to help make their recipes. You're the coder they've hired. 🧑‍💻 \nYour job is to help create the grossest recipe card ever 🤢\n\nLet’s start by adding your first ingredient. But before we write any code, you’ll notice some lines that start with `#` — these are **comments**.\n\nComments are notes in your code that help you (and others!) understand what each part does. Python ignores them when your program runs.\n\nNow try this:\n\n1. Choose a disgusting ingredient like `'maggot mash 🐛'` or `'slug slime 🐌'`.\n2. Decide how much of it you want to use. Let’s say `50` grams.\n3. Use an **f-string** to print the amount and the ingredient.\n\n<div class=\"c-project-code\">\n--- code ---\n---\nlanguage: python\nfilename: main.py\nline_numbers: true\nline_number_start: 3\nline_highlights: 5-6,11\n---\n# Ingredients and amounts for 1 person\n\ningredient_1 = 'maggot mash 🐛'\namount_1 = 50\n# Number of servings\n\n\n# Scaled-up ingredients\nprint(f'{amount_1}g of {ingredient_1}')\n--- \/code ---\n<\/div>\n\n<div class=\"c-project-output\">\n<pre>50g of maggot mash 🐛<\/pre>\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--tip\">\n\n### Tip\n\nIf your code prints nothing or shows an error, check that:\n- You used **quotes** around your ingredient name (it's a string!)\n- You’ve spelled the variable names correctly\n- You used the `f` before the string in `print(f'...')`\n\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--debug\">\n\n### Debugging\n\n- If Python says there's a `NameError`, you may have a typo in your variable name\n- If you see `{amount_1}` in the output instead of the number, make sure your string starts with `f`\n\n<\/div>\n"
26+
},
27+
{
28+
"filename": "step_2.md",
29+
"path": "en\/",
30+
"content": "<h2 class=\"c-project-heading--task\">Feed more people<\/h2>\n--- task ---\nAdd a servings variable and use it to scale up your ingredient\n--- \/task ---\n\n<h2 class=\"c-project-heading--explainer\">Make it serve more than one!<\/h2>\n\nRight now, your ingredient amount is for just **one** person. But what if you wanted to feed 3, or even 10 people?\n\nInstead of writing new numbers, you can **multiply** the amount by the number of servings — using maths inside your f-string!\n\nLet’s add a variable called `servings`, and update your print line to use it:\n\n<div class=\"c-project-code\">\n--- code ---\n---\nlanguage: python\nfilename: main.py\nline_numbers: true\nline_number_start: 7\nline_highlights: 8,11\n---\n# Number of servings\nservings = 3\n\n# Scaled-up ingredients\nprint(f'{amount_1 * servings}g of {ingredient_1}')\n--- \/code ---\n<\/div>\n\n<div class=\"c-project-output\">\n<pre>150g of maggot mash 🐛<\/pre>\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--tip\">\n\n### Tip\n\nYou can do maths inside an f-string using `{}` — Python works it out before printing the message!\n\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--debug\">\n\n### Debugging\n\n- Make sure your variable name is `servings`, not `serving` or `serves`\n- Don’t forget the `*` for multiplication\n\n<\/div>\n"
31+
},
32+
{
33+
"filename": "step_3.md",
34+
"path": "en\/",
35+
"content": "<h2 class=\"c-project-heading--task\">Add more ingredients<\/h2>\n--- task ---\nAdd two more gross ingredients and scale them up using f-strings\n--- \/task ---\n\n<h2 class=\"c-project-heading--explainer\">Make your recipe extra disgusting<\/h2>\n\nOne ingredient is never enough for a proper disgusting dish! Let's add two more ingredients to your recipe.\n\n1. Add `ingredient_2` and `ingredient_3` — give them gross names like `'sock juice 🧦'` or `'toenail sprinkles 🦶'`.\n2. Add matching `amount_2` and `amount_3` values.\n3. Use f-strings to print out **all three ingredients**, scaled up using your `servings` variable.\n\n<div class=\"c-project-code\">\n--- code ---\n---\nlanguage: python\nfilename: main.py\nline_numbers: true\nline_number_start: 3\nline_highlights: 8-10,11-12,18-19\n---\ningredient_2 = 'sock juice 🧦'\namount_2 = 30\n\ningredient_3 = 'toenail sprinkles 🦶'\namount_3 = 10\n# Number of servings\nservings = 3\n\n# Scaled-up ingredients\nprint(f'{amount_1 * servings}g of {ingredient_1}')\nprint(f'{amount_2 * servings}ml of {ingredient_2}')\nprint(f'{amount_3 * servings}g of {ingredient_3}')\n--- \/code ---\n<\/div>\n\n<div class=\"c-project-output\">\n<pre>150g of maggot mash 🐛\n90ml of sock juice 🧦\n30g of toenail sprinkles 🦶<\/pre>\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--tip\">\n\n### Tip\n\nYou can label each ingredient with different units like `g` (grams) or `ml` (millilitres) depending on what it is!\n\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--debug\">\n\n### Debugging\n\n- Make sure your variable names match exactly — Python is case-sensitive!\n- Don’t forget to multiply by `servings` inside each f-string\n\n<\/div>\n"
36+
},
37+
{
38+
"filename": "step_4.md",
39+
"path": "en\/",
40+
"content": "<h2 class=\"c-project-heading--task\">Start your recipe instructions<\/h2>\n--- task ---\nUse an f-string to describe the number of people and the first ingredient\n--- \/task ---\n\n<h2 class=\"c-project-heading--explainer\">Tell the chef what to do<\/h2>\n\nNow it’s time to turn your ingredient list into an actual recipe! 🍲\n\nYour first step will be to describe the number of people being fed and the first ingredient to be added.\n\n<div class=\"c-project-code\">\n--- code ---\n---\nlanguage: python\nfilename: main.py\nline_numbers: true\nline_number_start: 21\nline_highlights: 22-23\n---\n# Print recipe instructions\nprint()\nprint(f'To make this revolting recipe for {servings} people add {amount_1 * servings}g of {ingredient_1} to a large bowl.')\n--- \/code ---\n<\/div>\n\n<div class=\"c-project-output\">\n<pre>To make this revolting recipe for 3 people add 150g of maggot mash 🐛 to a large bowl.<\/pre>\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--tip\">\n\n### Tip\n\nYou can do **maths inside an f-string**! \nThis lets you calculate the ingredient amounts and show them inside a sentence without needing extra lines of code.\n\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--debug\">\n\n### Debugging\n\n- Make sure you used `* servings` inside the `{}` for the amount\n- Don’t forget the `f` at the start of your string\n\n<\/div>\n"
41+
},
42+
{
43+
"filename": "step_5.md",
44+
"path": "en\/",
45+
"content": "<h2 class=\"c-project-heading--task\">Finish your disgusting recipe<\/h2>\n--- task ---\nUse more f-strings to describe how to prepare your ingredients\n--- \/task ---\n\n<h2 class=\"c-project-heading--explainer\">Serve it up 🤢<\/h2>\n\nLet’s finish the recipe by printing the rest of the disgusting instructions.\n\nYou’ll describe:\n- What to pour in next\n- How to garnish it with sprinkles\n- How to serve it to your (un)lucky guests!\n\nAdd these final lines to your program:\n\n<div class=\"c-project-code\">\n--- code ---\n---\nlanguage: python\nfilename: main.py\nline_numbers: true\nline_number_start: 21\nline_highlights: 24-27\n---\n# Print recipe instructions\nprint()\nprint(f'To make this revolting recipe for {servings} people add {amount_1 * servings}g of {ingredient_1} to a large bowl.')\nprint()\nprint(f'Pour over {amount_2 * servings}ml of {ingredient_2}.')\nprint()\nprint(f'Sprinkle with {amount_3 * servings}g of {ingredient_3} and serve cold 🧊. Yum!')\n--- \/code ---\n<\/div>\n\n<div class=\"c-project-output\">\n<pre>To make this revolting recipe for 3 people add 150g of maggot mash 🐛 to a large bowl.\n\nPour over 90ml of sock juice 🧦.\n\nSprinkle with 30g of toenail sprinkles 🦶 and serve cold 🧊. Yum!<\/pre>\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--tip\">\n\n### Tip\n\nAdding `print()` with nothing in it is a great way to add blank lines in your output. \nYou can combine text, variables, and maths all in the same f-string!\n\n<\/div>\n\n<div class=\"c-project-callout c-project-callout--debug\">\n\n### Debugging\n\n- Check that every sentence is inside a `print(f'...')`\n- Watch your brackets and punctuation carefully!\n\n<\/div>\n"
46+
},
47+
{
48+
"filename": "main.py",
49+
"path": "en\/solutions\/",
50+
"content": "# Gross Groceries recipe card\n\n# Ingredients and amounts for 1 person\n\ningredient_1 = 'maggot mash 🐛'\namount_1 = 50\n\ningredient_2 = 'sock juice 🧦'\namount_2 = 30\n\ningredient_3 = 'toenail sprinkles 🦶'\namount_3 = 10\n# Number of servings\nservings = 3\n\n# Scaled-up ingredients\nprint(f'{amount_1 * servings}g of {ingredient_1}')\nprint(f'{amount_2 * servings}ml of {ingredient_2}')\nprint(f'{amount_3 * servings}g of {ingredient_3}')\n\n# Print recipe instructions\nprint()\nprint(f'To make this revolting recipe for {servings} people add {amount_1 * servings}g of {ingredient_1} to a large bowl.')\nprint()\nprint(f'Pour over {amount_2 * servings}ml of {ingredient_2}.')\nprint()\nprint(f'Sprinkle with {amount_3 * servings}g of {ingredient_3} and serve cold 🧊. Yum!')\n"
51+
},
52+
{
53+
"filename": "README.md",
54+
"path": "python-bytes-gross-groceries\/",
55+
"content": "# Python bytes - Gross groceries\n\n![A cartoon recipe card with gross ingredients like sock juice and toenail sprinkles](en\/images\/banner.png)\n\nProject description\n\nFind the project online at [projects.raspberrypi.org\/en\/projects\/python-bytes-gross-groceries](https:\/\/projects.raspberrypi.org\/en\/projects\/python-bytes-gross-groceries)\n\n## Resources\nFor project materials and solutions, see [en\/resources](https:\/\/github.com\/raspberrypilearning\/python-bytes-gross-groceries\/tree\/master\/en\/resources) and [en\/solutions](https:\/\/github.com\/raspberrypilearning\/python-bytes-gross-groceries\/tree\/master\/en\/solutions).\n\n## Contributing\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Licence\nSee [LICENCE.md](LICENCE.md)\n"
56+
},
57+
{
58+
"filename": "CONTRIBUTING.md",
59+
"path": "python-bytes-gross-groceries\/",
60+
"content": "# Contributing\n\nAll contributions are assumed to be licensed under the same licence as the source, i.e. [CC BY-SA](http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/). This licence must remain in all derivatives of this work.\n\n## Issues\n\nIf you find a mistake, bug, or other problem, please [open an issue](https:\/\/github.com\/raspberrypilearning\/python-bytes-gross-groceries\/issues) in this repository.\n\n## Pull requests\n\nAll edits to a resource should be made to the draft branch or to a fork of the repo. These patches can then be submitted as a pull request.\n\nIf you fix a mistake, bug, or problem or have something to contribute, please create a pull request for each modification. Please consider grouping modifications sensibly, e.g. don't bundle typo fixes in the same pull request as code changes, file them separately instead.\n\nPlease note that sometimes things are done for pedagogical reasons so changes which make sense from a software engineering perspective (reducing duplication or making use of more advanced programming language features) may not be suitable to maintain the intended educational value.\n\n## Derivatives\n\nSee [LICENCE.md](LICENCE.md) for content licence. The licence must remain in all derivatives of this work.\n\n## Translation\n\nYou can help us make this project available to more people around the world by translating it. For more information, please go to [rpf.io\/translate](https:\/\/rpf.io\/translate).\n"
61+
},
62+
{
63+
"filename": "LICENCE.md",
64+
"path": "python-bytes-gross-groceries\/",
65+
"content": "# Licence\n\nUnless otherwise specified, everything in this repository is covered by the following licence:\n\n[![Creative Commons licence](http:\/\/i.creativecommons.org\/l\/by-sa\/4.0\/88x31.png)](http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/)\n\n**Python bytes - Gross groceries** by the [Raspberry Pi Foundation](http:\/\/www.raspberrypi.org) is licensed under a [Creative Commons Attribution 4.0 International licence](http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/).\n\nBased on a work at https:\/\/github.com\/raspberrypilearning\/python-bytes-gross-groceries.\n"
66+
},
67+
{
68+
"filename": "crowdin.yml",
69+
"path": "python-bytes-gross-groceries\/",
70+
"content": "files:\n - source: \/en\/**\/*.*\n translation: \/%locale%\/**\/%original_file_name%\n"
71+
}
72+
]

de-DE/solutions/main.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Gross Groceries recipe card
2+
3+
# Ingredients and amounts for 1 person
4+
5+
ingredient_1 = 'maggot mash 🐛'
6+
amount_1 = 50
7+
8+
ingredient_2 = 'sock juice 🧦'
9+
amount_2 = 30
10+
11+
ingredient_3 = 'toenail sprinkles 🦶'
12+
amount_3 = 10
13+
# Number of servings
14+
servings = 3
15+
16+
# Scaled-up ingredients
17+
print(f'{amount_1 * servings}g of {ingredient_1}')
18+
print(f'{amount_2 * servings}ml of {ingredient_2}')
19+
print(f'{amount_3 * servings}g of {ingredient_3}')
20+
21+
# Print recipe instructions
22+
print()
23+
print(f'To make this revolting recipe for {servings} people add {amount_1 * servings}g of {ingredient_1} to a large bowl.')
24+
print()
25+
print(f'Pour over {amount_2 * servings}ml of {ingredient_2}.')
26+
print()
27+
print(f'Sprinkle with {amount_3 * servings}g of {ingredient_3} and serve cold 🧊. Yum!')

de-DE/step_1.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<h2 class="c-project-heading--task">Write your first disgusting ingredient</h2>
2+
3+
\--- task ---
4+
5+
Add a gross ingredient and print it using an f-string.
6+
7+
\--- /task ---
8+
9+
<h2 class="c-project-heading--explainer">Start your recipe</h2>
10+
11+
The owner of an odd restaurant has decided to use code to help make their recipes. You're the coder they've hired. 🧑‍💻
12+
Your job is to help create the grossest recipe card ever 🤢
13+
14+
Let’s start by adding your first ingredient. But before we write any code, you’ll notice some lines that start with `#` — these are **comments**.
15+
16+
Comments are notes in your code that help you (and others!) understand what each part does. Python ignores them when your program runs.
17+
18+
Now try this:
19+
20+
1. Choose a disgusting ingredient like `'maggot mash 🐛'` or `'slug slime 🐌'`.
21+
2. Decide how much of it you want to use. Let’s say `50` grams.
22+
3. Use an **f-string** to print the amount and the ingredient.
23+
24+
<div class="c-project-code">
25+
--- code ---
26+
---
27+
language: python
28+
filename: main.py
29+
line_numbers: true
30+
line_number_start: 3
31+
line_highlights: 5-6,11
32+
---
33+
34+
# Ingredients and amounts for 1 person
35+
36+
ingredient_1 = 'maggot mash 🐛'
37+
amount_1 = 50
38+
39+
# Number of servings
40+
41+
# Scaled-up ingredients
42+
43+
print(f'{amount_1}g of {ingredient_1}')
44+
45+
\--- /code ---
46+
47+
</div>
48+
49+
<div class="c-project-output">
50+
<pre>50g of maggot mash 🐛</pre>
51+
</div>
52+
53+
<div class="c-project-callout c-project-callout--tip">
54+
55+
### Tip
56+
57+
If your code prints nothing or shows an error, check that:
58+
59+
- You used **quotes** around your ingredient name (it's a string!)
60+
- You’ve spelled the variable names correctly
61+
- You used the `f` before the string in `print(f'...')`
62+
63+
</div>
64+
65+
<div class="c-project-callout c-project-callout--debug">
66+
67+
### Debugging
68+
69+
- If Python says there's a `NameError`, you may have a typo in your variable name
70+
- If you see `{amount_1}` in the output instead of the number, make sure your string starts with `f`
71+
72+
</div>

0 commit comments

Comments
 (0)