Repository: saleor/saleor

Issue:
Email is not completely translated
The main part of the email("You're receiving this e-mail...") is not translated. The parts after are properly translated. However, the text in text/plain is completely correctly translated. I've tried it with different languages (german and russian).

However, the text in text/plain is completely correctly translated:
```
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit



Hi!

Sie bekommen diese E-Mail weil Sie oder jemand anders ein Passwort für Ihren Benutzeraccount auf localhost:8000 angefordert hat.
Sie können diese Nachricht ignorieren, wenn sie es nicht selber angefordert haben.
Klicken Sie unten um Ihr Passwort zurückzusetzen.


http://localhost:8000/de/account/password/reset/MQ/5ez-e13a9786c6c548232f8b/


Dies ist eine automatisch generierte E-Mail, bitte antworten Sie nicht auf diese E-Mail-Adresse.
Mit freundlichen Grüßen, Saleor e-commerce
```

### Steps to reproduce the problem
1.  go to password reset page (e.g. /de/account/password/reset/)
2. provide email and click on send

### What I expected to happen
a fully translated email

### Screenshots
<img width="712" alt="email" src="https://user-images.githubusercontent.com/15652645/77230292-7c6b6900-6b93-11ea-94ae-c7c1be7587d2.png">

**System information**
Operating system: macOS Catalina & Windows 10



Discussion:
Hi! This is because it is not fully translated, contributions can be made at https://www.transifex.com/mirumee/saleor-1/
Hi, thanks for the fast reply! There is actually a translation for this phrase: https://www.transifex.com/mirumee/saleor-1/translate/#de/storefrontpo/164691015.

Also, the same text is correctly translated in text/plain. I think it's a different problem.
It is possible the translations inside saleor are outdated. I will synchronize them on Monday, and I will check the emails are fully translated.
Hi sorry been very busy lately, I will take a look whenever I can.
Can i help you with that? 
Not really, would be more time consuming to! But I really can't, I don't have such spare time available, I'm already totally overwhelm. I will try to find someone to investigate.

Resolving patch:
diff --git a/saleor/order/utils.py b/saleor/order/utils.py
--- a/saleor/order/utils.py
+++ b/saleor/order/utils.py
@@ -1,9 +1,15 @@
 from functools import wraps
+from uuid import uuid4
 
 from django.conf import settings
+from django.contrib.staticfiles import finders as static_finders
+from django.core.files.base import ContentFile
+from django.core.files.storage import default_storage
 from django.db import transaction
+from django.template.loader import get_template
 from django.utils import timezone
 from prices import Money, TaxedMoney
+from weasyprint import HTML
 
 from ..account.models import User
 from ..core.taxes import zero_money
@@ -338,3 +344,12 @@ def get_voucher_discount_for_order(order: Order) -> Money:
 
 def match_orders_with_new_user(user: User) -> None:
     Order.objects.confirmed().filter(user_email=user.email, user=None).update(user=user)
+
+
+def generate_invoice_pdf_for_order(invoice):
+    logo_path = static_finders.find("images/logo-light.svg")
+    rendered_template = get_template("invoice.html").render(
+        {"invoice": invoice, "order": invoice.order, "logo_path": f"file://{logo_path}"}
+    )
+    content_file = ContentFile(HTML(string=rendered_template).write_pdf())
+    return default_storage.save(f"{uuid4()}.pdf", content_file)


Test patch: