diff --git a/.github/workflows/docker_stable.yaml b/.github/workflows/docker_stable.yaml
index 65c31dd9dc..e892b24d13 100644
--- a/.github/workflows/docker_stable.yaml
+++ b/.github/workflows/docker_stable.yaml
@@ -36,7 +36,7 @@ jobs:
push: true
target: production
build-args:
- branch: stable
+ branch=stable
tags: inventree/inventree:stable
- name: Image Digest
run: echo ${{ steps.docker_build.outputs.digest }}
diff --git a/.github/workflows/docker_tag.yaml b/.github/workflows/docker_tag.yaml
index 5de27f48be..a9f1c646fc 100644
--- a/.github/workflows/docker_tag.yaml
+++ b/.github/workflows/docker_tag.yaml
@@ -34,5 +34,5 @@ jobs:
push: true
target: production
build-args:
- tag: ${{ github.event.release.tag_name }}
+ tag=${{ github.event.release.tag_name }}
tags: inventree/inventree:${{ github.event.release.tag_name }}
diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py
index 98e03fdc0e..e21e2fb0fc 100644
--- a/InvenTree/InvenTree/serializers.py
+++ b/InvenTree/InvenTree/serializers.py
@@ -620,7 +620,7 @@ class DataFileExtractSerializer(serializers.Serializer):
# Check for missing required columns
if required:
if name not in self.columns:
- raise serializers.ValidationError(_("Missing required column") + f": '{name}'")
+ raise serializers.ValidationError(_(f"Missing required column: '{name}'"))
for col in self.columns:
@@ -629,7 +629,7 @@ class DataFileExtractSerializer(serializers.Serializer):
# Check for duplicated columns
if col in cols_seen:
- raise serializers.ValidationError(_("Duplicate column") + f": '{col}'")
+ raise serializers.ValidationError(_(f"Duplicate column: '{col}'"))
cols_seen.add(col)
diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py
index 4fb3dc61bb..c45be06f4b 100644
--- a/InvenTree/InvenTree/settings.py
+++ b/InvenTree/InvenTree/settings.py
@@ -659,6 +659,7 @@ LANGUAGES = [
('es-mx', _('Spanish (Mexican)')),
('fr', _('French')),
('he', _('Hebrew')),
+ ('hu', _('Hungarian')),
('it', _('Italian')),
('ja', _('Japanese')),
('ko', _('Korean')),
diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py
index 09de857b68..b4314f6738 100644
--- a/InvenTree/InvenTree/version.py
+++ b/InvenTree/InvenTree/version.py
@@ -9,7 +9,7 @@ import re
import common.models
# InvenTree software version
-INVENTREE_SW_VERSION = "0.6.0 dev"
+INVENTREE_SW_VERSION = "0.7.0 dev"
# InvenTree API version
INVENTREE_API_VERSION = 26
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 640df9a958..95f96bede6 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-19 14:45\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 23:03\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Keine Seriennummer angegeben"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ungültige Gruppe: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Ungültige Gruppe {group}"
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ungültige/Keine Gruppe {group}"
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
@@ -290,12 +290,14 @@ msgid "No data columns supplied"
msgstr "Keine Spalten angegeben"
#: InvenTree/serializers.py:623
-msgid "Missing required column"
-msgstr "Erforderliche Spalte fehlt"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
+msgstr "Erforderliche Spalte '{name}' fehlt"
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
-msgstr "Doppelte Spalte"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
+msgstr "Doppelte Spalte: '{col}'"
#: InvenTree/settings.py:655
msgid "German"
@@ -991,18 +993,18 @@ msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
#: build/serializers.py:208
msgid "Integer quantity required for trackable parts"
-msgstr ""
+msgstr "Ganzzahl für verfolgbare Teile erforderlich"
#: build/serializers.py:211
msgid "Integer quantity required, as the bill of materials contains trackable parts"
-msgstr ""
+msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78
#: stock/serializers.py:314 templates/js/translated/stock.js:239
@@ -1016,15 +1018,15 @@ msgstr "Seriennummer für dieses Endprodukt eingeben"
#: build/serializers.py:239
msgid "Auto Allocate Serial Numbers"
-msgstr ""
+msgstr "Seriennummern automatisch zuweisen"
#: build/serializers.py:240
msgid "Automatically allocate required items with matching serial numbers"
-msgstr ""
+msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen"
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
-msgstr ""
+msgstr "Folgende Seriennummern existieren bereits"
#: build/serializers.py:327 build/serializers.py:392
msgid "A list of build outputs must be provided"
@@ -1060,7 +1062,7 @@ msgstr "Status"
#: build/serializers.py:428
msgid "Accept Unallocated"
-msgstr ""
+msgstr "Nicht zugewiesene akzeptieren"
#: build/serializers.py:429
msgid "Accept that stock items have not been fully allocated to this build order"
@@ -1072,7 +1074,7 @@ msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
#: build/serializers.py:444
msgid "Accept Incomplete"
-msgstr ""
+msgstr "Unvollständig Zuweisung akzeptieren"
#: build/serializers.py:445
msgid "Accept that the required number of build outputs have not been completed"
@@ -1088,7 +1090,7 @@ msgstr "Bauauftrag hat unvollständige Aufbauten"
#: build/serializers.py:467 build/templates/build/build_base.html:95
msgid "No build outputs have been created for this build order"
-msgstr ""
+msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt"
#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829
#: part/models.py:2988
@@ -1373,7 +1375,7 @@ msgstr "Endproduktaktionen"
#: build/templates/build/detail.html:250
msgid "Complete selected build outputs"
-msgstr ""
+msgstr "Ausgewählte Endprodukt fertigstellen"
#: build/templates/build/detail.html:251
msgid "Complete outputs"
@@ -1381,11 +1383,11 @@ msgstr "Endprodukte fertigstellen"
#: build/templates/build/detail.html:253
msgid "Delete selected build outputs"
-msgstr ""
+msgstr "Ausgewählte Endprodukte löschen"
#: build/templates/build/detail.html:254
msgid "Delete outputs"
-msgstr ""
+msgstr "Endprodukte löschen"
#: build/templates/build/detail.html:270
msgid "Completed Build Outputs"
@@ -1504,7 +1506,7 @@ msgstr "{name} Datei zum Hochladen auswählen"
#: common/models.py:352
msgid "Settings key (must be unique - case insensitive)"
-msgstr ""
+msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
#: common/models.py:354
msgid "Settings value"
@@ -1979,7 +1981,7 @@ msgstr "Plugins zum Hinzufügen von URLs aktivieren"
#: common/models.py:983
msgid "Enable navigation integration"
-msgstr ""
+msgstr "Navigations-Integration aktivieren"
#: common/models.py:984
msgid "Enable plugins to integrate into navigation"
@@ -1999,15 +2001,15 @@ msgstr "Terminplan-Integration aktivieren"
#: common/models.py:998
msgid "Enable plugins to run scheduled tasks"
-msgstr ""
+msgstr "Geplante Aufgaben aktivieren"
#: common/models.py:1004
msgid "Enable event integration"
-msgstr ""
+msgstr "Ereignis-Integration aktivieren"
#: common/models.py:1005
msgid "Enable plugins to respond to internal events"
-msgstr ""
+msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
#: common/models.py:1020 common/models.py:1228
msgid "Settings key (must be unique - case insensitive"
@@ -4395,7 +4397,7 @@ msgstr "Vererbtes einschließen"
#: part/serializers.py:685
msgid "Include BOM items which are inherited from templated parts"
-msgstr ""
+msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
#: part/serializers.py:690
msgid "Skip Invalid Rows"
@@ -4411,35 +4413,35 @@ msgstr "Bestehende Stückliste löschen"
#: part/serializers.py:735
msgid "Delete existing BOM items before uploading"
-msgstr ""
+msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
#: part/serializers.py:762
msgid "No part column specified"
-msgstr ""
+msgstr "Keine Bauteilspalte angegeben"
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr "Mehrere übereinstimmende Teile gefunden"
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr "Keine passenden Teile gefunden"
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr "Teil ist nicht als Komponente angelegt"
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr "Menge nicht angegeben"
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
-msgstr ""
+msgstr "Mindestens eine Stückliste-Position ist erforderlich"
#: part/tasks.py:58
msgid "Low stock notification"
@@ -4643,7 +4645,7 @@ msgstr "Bestand aller Varianten von %(full_name)s"
#: part/templates/part/detail.html:43
msgid "Part Stock Allocations"
-msgstr ""
+msgstr "Teil-Bestandszuordnungen"
#: part/templates/part/detail.html:60
msgid "Part Test Templates"
@@ -5062,7 +5064,7 @@ msgstr "Benutzt in"
#: part/templates/part/part_sidebar.html:34
#: stock/templates/stock/stock_sidebar.html:8
msgid "Allocations"
-msgstr ""
+msgstr "Zuweisungen"
#: part/templates/part/part_sidebar.html:48
msgid "Test Templates"
@@ -5201,16 +5203,16 @@ msgstr "Stückliste hochladen"
#: part/templates/part/upload_bom.html:19
msgid "BOM upload requirements"
-msgstr ""
+msgstr "Anforderungen an Stückliste-Dateien"
#: part/templates/part/upload_bom.html:23
#: part/templates/part/upload_bom.html:90
msgid "Upload BOM File"
-msgstr ""
+msgstr "Stückliste-Datei hochgeladen"
#: part/templates/part/upload_bom.html:29
msgid "Submit BOM Data"
-msgstr ""
+msgstr "Stückliste hochladen"
#: part/templates/part/upload_bom.html:37
msgid "Requirements for BOM upload"
@@ -5336,7 +5338,7 @@ msgstr "Interne Preisspanne löschen"
#: plugin/integration.py:138
msgid "No author found"
-msgstr ""
+msgstr "Kein Autor gefunden"
#: plugin/integration.py:152
msgid "No date found"
@@ -5352,15 +5354,15 @@ msgstr "Plugin-Konfigurationen"
#: plugin/models.py:32
msgid "Key"
-msgstr ""
+msgstr "Schlüssel"
#: plugin/models.py:33
msgid "Key of plugin"
-msgstr ""
+msgstr "Schlüssel des Plugins"
#: plugin/models.py:41
msgid "PluginName of the plugin"
-msgstr ""
+msgstr "Name des Plugins"
#: plugin/models.py:47
msgid "Is the plugin active"
@@ -5408,7 +5410,7 @@ msgstr "Quell-URL"
#: plugin/serializers.py:51
msgid "Source for the package - this can be a custom registry or a VCS path"
-msgstr ""
+msgstr "Quelle für das Paket - dies kann eine eigene Registry oder ein VCS-Pfad sein"
#: plugin/serializers.py:56
msgid "Package Name"
@@ -5416,7 +5418,7 @@ msgstr "Paket-Name"
#: plugin/serializers.py:57
msgid "Name for the Plugin Package - can also contain a version indicator"
-msgstr ""
+msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten"
#: plugin/serializers.py:60
msgid "Confirm plugin installation"
@@ -5424,15 +5426,15 @@ msgstr "Plugin-Installation bestätigen"
#: plugin/serializers.py:61
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
-msgstr ""
+msgstr "Dies wird dieses Plugin sofort in die aktuelle Instanz installieren. Die Instanz wird sofort in Wartung gehen."
#: plugin/serializers.py:76
msgid "Installation not confirmed"
-msgstr ""
+msgstr "Installation nicht bestätigt"
#: plugin/serializers.py:78
msgid "Either packagename of URL must be provided"
-msgstr ""
+msgstr "Entweder Paketname oder URL muss angegeben werden"
#: report/api.py:234 report/api.py:278
#, python-brace-format
@@ -5587,11 +5589,11 @@ msgstr "Menge ist erforderlich"
#: stock/api.py:508
msgid "Valid part must be supplied"
-msgstr ""
+msgstr "Gültiges Teil muss angegeben werden"
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
-msgstr ""
+msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576
#: stock/templates/stock/item_base.html:195
@@ -5790,23 +5792,23 @@ msgstr "Artikel wurde einem Kundenauftrag zugewiesen"
#: stock/models.py:1195
msgid "Stock item is installed in another item"
-msgstr ""
+msgstr "Lagerartikel ist in anderem Element verbaut"
#: stock/models.py:1198
msgid "Stock item contains other items"
-msgstr ""
+msgstr "Lagerartikel enthält andere Artikel"
#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
-msgstr ""
+msgstr "Artikel wurde einem Kunden zugewiesen"
#: stock/models.py:1204
msgid "Stock item is currently in production"
-msgstr ""
+msgstr "Lagerartikel wird aktuell produziert"
#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
-msgstr ""
+msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
#: stock/models.py:1214 stock/serializers.py:832
msgid "Duplicate stock items"
@@ -5814,15 +5816,15 @@ msgstr "Artikel duplizeren"
#: stock/models.py:1218
msgid "Stock items must refer to the same part"
-msgstr ""
+msgstr "Lagerartikel müssen auf dasselbe Teil verweisen"
#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
-msgstr ""
+msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen"
#: stock/models.py:1226
msgid "Stock status codes must match"
-msgstr ""
+msgstr "Status-Codes müssen zusammenpassen"
#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
@@ -5899,19 +5901,19 @@ msgstr "Seriennummern existieren bereits"
#: stock/serializers.py:405
msgid "Select stock item to install"
-msgstr ""
+msgstr "Lagerartikel für Installation auswählen"
#: stock/serializers.py:421
msgid "Stock item is unavailable"
-msgstr ""
+msgstr "Lagerartikel ist nicht verfügbar"
#: stock/serializers.py:428
msgid "Selected part is not in the Bill of Materials"
-msgstr ""
+msgstr "Ausgewähltes Teil ist nicht in der Stückliste"
#: stock/serializers.py:646
msgid "Part must be salable"
-msgstr ""
+msgstr "Teil muss verkaufbar sein"
#: stock/serializers.py:650
msgid "Item is allocated to a sales order"
@@ -5923,7 +5925,7 @@ msgstr "Artikel ist einem Fertigungsauftrag zugeordnet"
#: stock/serializers.py:684
msgid "Customer to assign stock items"
-msgstr ""
+msgstr "Kunde zum Zuweisen von Lagerartikel"
#: stock/serializers.py:690
msgid "Selected company is not a customer"
@@ -5931,7 +5933,7 @@ msgstr "Ausgewählte Firma ist kein Kunde"
#: stock/serializers.py:698
msgid "Stock assignment notes"
-msgstr ""
+msgstr "Notizen zur Lagerzuordnung"
#: stock/serializers.py:708 stock/serializers.py:938
msgid "A list of stock items must be provided"
@@ -5939,27 +5941,27 @@ msgstr "Eine Liste der Lagerbestände muss angegeben werden"
#: stock/serializers.py:796
msgid "Stock merging notes"
-msgstr ""
+msgstr "Notizen zur Lagerartikelzusammenführung"
#: stock/serializers.py:801
msgid "Allow mismatched suppliers"
-msgstr ""
+msgstr "Unterschiedliche Lieferanten erlauben"
#: stock/serializers.py:802
msgid "Allow stock items with different supplier parts to be merged"
-msgstr ""
+msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben"
#: stock/serializers.py:807
msgid "Allow mismatched status"
-msgstr ""
+msgstr "Unterschiedliche Status erlauben"
#: stock/serializers.py:808
msgid "Allow stock items with different status codes to be merged"
-msgstr ""
+msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben"
#: stock/serializers.py:818
msgid "At least two stock items must be provided"
-msgstr ""
+msgstr "Mindestens zwei Lagerartikel müssen angegeben werden"
#: stock/serializers.py:900
msgid "StockItem primary key value"
@@ -5979,7 +5981,7 @@ msgstr "neuer Eintrag"
#: stock/templates/stock/item.html:48
msgid "Stock Item Allocations"
-msgstr ""
+msgstr "Lagerartikel Zuweisungen"
#: stock/templates/stock/item.html:64
msgid "Child Stock Items"
@@ -6169,11 +6171,11 @@ msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
#: stock/templates/stock/item_base.html:264
msgid "This stock item is allocated to Sales Order"
-msgstr ""
+msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen"
#: stock/templates/stock/item_base.html:272
msgid "This stock item is allocated to Build Order"
-msgstr ""
+msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen"
#: stock/templates/stock/item_base.html:278
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
@@ -6571,7 +6573,7 @@ msgstr "URLs"
#: templates/InvenTree/settings/mixins/urls.html:8
#, python-format
msgid "The Base-URL for this plugin is %(base)s."
-msgstr ""
+msgstr "Die Basis-URL für dieses Plugin ist %(base)s."
#: templates/InvenTree/settings/mixins/urls.html:23
msgid "Open in new tab"
@@ -7035,7 +7037,7 @@ msgstr "Hilf bei der Übersetzung!"
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
-msgstr ""
+msgstr "Die Übersetzung von InvenTree wird von Nutzern via Crowdin betrieben. Wir ermutigen zur und freuen uns über jede Mithilfe."
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
@@ -7122,12 +7124,12 @@ msgstr "E-Mail-Adresse bestätigen"
#: templates/account/email_confirm.html:16
#, python-format
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
-msgstr ""
+msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail-Adresse für den Benutzer %(user_display)s ist."
#: templates/account/email_confirm.html:27
#, python-format
msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
-msgstr ""
+msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte fordern Sie eine neue E-Mail Bestätigung an."
#: templates/account/login.html:6 templates/account/login.html:16
#: templates/account/login.html:39
@@ -7139,13 +7141,13 @@ msgstr "Einloggen"
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
-msgstr ""
+msgstr "Bitte melden Sie sich mit einem Ihrer bestehenden Drittkonten an oder registrieren Sie sich für ein Konto und melden Sie sich unten an:"
#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
-msgstr ""
+msgstr "Wenn Sie noch kein Konto erstellt haben, dann bitteregistrieren Sie sich zuerst."
#: templates/account/login.html:42
msgid "Forgot Password?"
@@ -7200,7 +7202,7 @@ msgstr "Ungültiger Schlüssel"
#: templates/account/password_reset_from_key.html:11
#, python-format
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
-msgstr ""
+msgstr "Der Link zum Zurücksetzen des Kennworts war ungültig, da er bereits verwendet wurde. Bitte fordern Sie eine neue Passwortwiederherstellung an."
#: templates/account/password_reset_from_key.html:18
msgid "Change password"
@@ -7217,7 +7219,7 @@ msgstr "Anmelden"
#: templates/account/signup.html:13
#, python-format
msgid "Already have an account? Then please sign in."
-msgstr ""
+msgstr "Haben Sie bereits ein Konto? Dann melden Sie sich bitte an."
#: templates/account/signup.html:27
msgid "Or use a SSO-provider for signup"
@@ -7237,28 +7239,28 @@ msgstr "Authentifizieren"
#: templates/allauth_2fa/backup_tokens.html:6
msgid "Two-Factor Authentication Backup Tokens"
-msgstr ""
+msgstr "Zwei-Faktor-Authentifizierung Backup-Codes"
#: templates/allauth_2fa/backup_tokens.html:17
msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones."
-msgstr ""
+msgstr "Backup-Token wurden generiert, werden aber aus Sicherheitsgründen hier nicht angezeigt. Drücken Sie den Knopf unten um neue zu generieren."
#: templates/allauth_2fa/backup_tokens.html:20
msgid "No tokens. Press the button below to generate some."
-msgstr ""
+msgstr "Keine Token. Drücken Sie den Knopf um neue anzulegen."
#: templates/allauth_2fa/backup_tokens.html:27
msgid "Generate backup tokens"
-msgstr ""
+msgstr "Backup-Codes generieren"
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
-msgstr ""
+msgid "Back to settings"
+msgstr "Zurück zu den Einstellungen"
#: templates/allauth_2fa/remove.html:6
msgid "Disable Two-Factor Authentication"
-msgstr ""
+msgstr "Zwei-Faktor-Authentifizierung deaktivieren"
#: templates/allauth_2fa/remove.html:9
msgid "Are you sure?"
@@ -7266,7 +7268,7 @@ msgstr "Bist du sicher?"
#: templates/allauth_2fa/remove.html:14
msgid "Disable Two-Factor"
-msgstr ""
+msgstr "Zwei-Faktor deaktivieren"
#: templates/allauth_2fa/setup.html:6
msgid "Setup Two-Factor Authentication"
@@ -7290,7 +7292,7 @@ msgstr "Geben Sie das von der App generierte Token ein:"
#: templates/allauth_2fa/setup.html:35
msgid "Verify"
-msgstr ""
+msgstr "Überprüfen"
#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
msgid "Add Link"
@@ -7426,7 +7428,7 @@ msgstr "Fehler 405: Methode nicht erlaubt"
#: templates/js/translated/api.js:213
msgid "HTTP method not allowed at URL"
-msgstr ""
+msgstr "HTTP-Methode für diese URL nicht erlaubt"
#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081
msgid "Error 408: Timeout"
@@ -7573,11 +7575,11 @@ msgstr "Barcode entspricht keinem Lagerort"
#: templates/js/translated/bom.js:75
msgid "Display row data"
-msgstr ""
+msgstr "Zeilendaten anzeigen"
#: templates/js/translated/bom.js:131
msgid "Row Data"
-msgstr ""
+msgstr "Zeilendaten"
#: templates/js/translated/bom.js:249
msgid "Download BOM Template"
@@ -7615,7 +7617,7 @@ msgstr "Parameter-Daten einschließen"
#: templates/js/translated/bom.js:308
msgid "Include part parameter data in exported BOM"
-msgstr ""
+msgstr "Teil-Parameter in Stückliste-Export einschließen"
#: templates/js/translated/bom.js:313
msgid "Include Stock Data"
@@ -7647,7 +7649,7 @@ msgstr "Ersatzteil entfernen"
#: templates/js/translated/bom.js:565
msgid "Select and add a new substitute part using the input below"
-msgstr ""
+msgstr "Wählen Sie ein neues Ersatzteil aus und fügen Sie sie mit den folgenden Eingaben hinzu"
#: templates/js/translated/bom.js:576
msgid "Are you sure you wish to remove this substitute part link?"
@@ -7739,7 +7741,7 @@ msgstr "Bauauftrag erstellen"
#: templates/js/translated/build.js:140
msgid "Build order is ready to be completed"
-msgstr ""
+msgstr "Bauauftrag ist bereit abgeschlossen zu werden"
#: templates/js/translated/build.js:145
msgid "Build Order is incomplete"
@@ -7765,7 +7767,7 @@ msgstr "Die Stückliste enthält verfolgbare Teile"
#: templates/js/translated/build.js:226
msgid "Build outputs must be generated individually"
-msgstr ""
+msgstr "Endprodukte müssen individuell angelegt werden"
#: templates/js/translated/build.js:234
msgid "Trackable parts can have serial numbers specified"
@@ -7821,7 +7823,7 @@ msgstr "Endprodukte fertigstellen"
#: templates/js/translated/build.js:576
msgid "Delete Build Outputs"
-msgstr ""
+msgstr "Endprodukte entfernen"
#: templates/js/translated/build.js:665
msgid "No build order allocations found"
@@ -8107,15 +8109,15 @@ msgstr "Eingabe leeren"
#: templates/js/translated/forms.js:2479
msgid "File Column"
-msgstr ""
+msgstr "Dateispalte"
#: templates/js/translated/forms.js:2479
msgid "Field Name"
-msgstr ""
+msgstr "Feldname"
#: templates/js/translated/forms.js:2491
msgid "Select Columns"
-msgstr ""
+msgstr "Spalten auswählen"
#: templates/js/translated/helpers.js:19
msgid "YES"
@@ -8599,7 +8601,7 @@ msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet"
#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
-msgstr ""
+msgstr "Die Stückliste zu validieren markiert jede Zeile als gültig"
#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
@@ -8863,11 +8865,11 @@ msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
#: templates/js/translated/stock.js:637
msgid "Confirm stock assignment"
-msgstr ""
+msgstr "Bestand Zuweisung bestätigen"
#: templates/js/translated/stock.js:638
msgid "Assign Stock to Customer"
-msgstr ""
+msgstr "Einem Kunden zuordnen"
#: templates/js/translated/stock.js:715
msgid "Warning: Merge operation cannot be reversed"
@@ -8879,11 +8881,11 @@ msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werde
#: templates/js/translated/stock.js:718
msgid "Stock transaction history will be deleted for merged items"
-msgstr ""
+msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht"
#: templates/js/translated/stock.js:719
msgid "Supplier part information will be deleted for merged items"
-msgstr ""
+msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht"
#: templates/js/translated/stock.js:805
msgid "Confirm stock item merge"
@@ -8955,7 +8957,7 @@ msgstr "KEIN ERGEBNIS"
#: templates/js/translated/stock.js:1264
msgid "Pass test"
-msgstr ""
+msgstr "Test bestanden"
#: templates/js/translated/stock.js:1267
msgid "Add test result"
@@ -9088,7 +9090,7 @@ msgstr "Status Code muss ausgewählt werden"
#: templates/js/translated/stock.js:2464
msgid "Allocated Quantity"
-msgstr ""
+msgstr "Zugewiesene Menge"
#: templates/js/translated/stock.js:2659
msgid "Invalid date"
@@ -9140,7 +9142,7 @@ msgstr "Lagerartikel entfernen"
#: templates/js/translated/stock.js:2973
msgid "Install another stock item into this item"
-msgstr ""
+msgstr "Einen weiteren Lagerartikel in dieses Teil installiert"
#: templates/js/translated/stock.js:2974
msgid "Stock items can only be installed if they meet the following criteria"
@@ -9148,11 +9150,11 @@ msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erf
#: templates/js/translated/stock.js:2976
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
-msgstr ""
+msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
#: templates/js/translated/stock.js:2977
msgid "The Stock Item is currently available in stock"
-msgstr ""
+msgstr "Dieser Lagerartikel ist aktuell vorhanden"
#: templates/js/translated/stock.js:2978
msgid "The Stock Item is serialized and does not belong to another item"
@@ -9160,7 +9162,7 @@ msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Tei
#: templates/js/translated/stock.js:2991
msgid "Select part to install"
-msgstr ""
+msgstr "Teil zur Installation auswählen"
#: templates/js/translated/table_filters.js:56
msgid "Trackable Part"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 51ac59a646..77cb4dffeb 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index d7ac9a9b72..3bc254a1fa 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Cadena de número de serie vacía"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Grupo inválido: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "No se encontraron números de serie"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 45d149fe65..d504f75c52 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Groupe invalide : {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Groupe invalide {group}"
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Invalide/aucun groupe {group}"
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index d0119cf91c..1e499733e1 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "קבוצה שגויה: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr "קבוצה שגויה {group}"
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "קבוצה שגויה / לא נמצאה {group}"
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "מספרים סידוריים לא נמצאו"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "כמות המספרים הסידוריים ({s}) מוכרים להיות תואמים לכמות ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.mo b/InvenTree/locale/hu/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..71cbdf3e9d
Binary files /dev/null and b/InvenTree/locale/hu/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..cbba57513b
--- /dev/null
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -0,0 +1,9641 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#: templates/js/translated/order.js:1973
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-02-22 11:37+1100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: InvenTree/api.py:55
+msgid "API endpoint not found"
+msgstr ""
+
+#: InvenTree/api.py:101
+msgid "No action specified"
+msgstr ""
+
+#: InvenTree/api.py:116
+msgid "No matching action found"
+msgstr ""
+
+#: InvenTree/fields.py:100
+msgid "Enter date"
+msgstr ""
+
+#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46
+#: order/forms.py:57 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:596
+msgid "Confirm"
+msgstr ""
+
+#: InvenTree/forms.py:142
+msgid "Confirm delete"
+msgstr ""
+
+#: InvenTree/forms.py:143
+msgid "Confirm item deletion"
+msgstr ""
+
+#: InvenTree/forms.py:174
+msgid "Enter password"
+msgstr ""
+
+#: InvenTree/forms.py:175
+msgid "Enter new password"
+msgstr ""
+
+#: InvenTree/forms.py:182
+msgid "Confirm password"
+msgstr ""
+
+#: InvenTree/forms.py:183
+msgid "Confirm new password"
+msgstr ""
+
+#: InvenTree/forms.py:215
+msgid "Select Category"
+msgstr ""
+
+#: InvenTree/forms.py:236
+msgid "Email (again)"
+msgstr ""
+
+#: InvenTree/forms.py:240
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:260
+msgid "You must type the same email each time."
+msgstr ""
+
+#: InvenTree/helpers.py:439
+#, python-brace-format
+msgid "Duplicate serial: {n}"
+msgstr ""
+
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
+#: stock/views.py:1082
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:449
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:501
+#, python-brace-format
+msgid "Invalid group: {g}"
+msgstr ""
+
+#: InvenTree/helpers.py:510
+#, python-brace-format
+msgid "Invalid group {group}"
+msgstr ""
+
+#: InvenTree/helpers.py:516
+#, python-brace-format
+msgid "Invalid/no group {group}"
+msgstr ""
+
+#: InvenTree/helpers.py:522
+msgid "No serial numbers found"
+msgstr ""
+
+#: InvenTree/helpers.py:526
+#, python-brace-format
+msgid "Number of unique serial number ({s}) must match quantity ({q})"
+msgstr ""
+
+#: InvenTree/models.py:176
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:177
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:188 stock/models.py:1995
+#: templates/js/translated/attachment.js:119
+msgid "Attachment"
+msgstr ""
+
+#: InvenTree/models.py:189
+msgid "Select file to attach"
+msgstr ""
+
+#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:127 part/models.py:860
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:540
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:196 build/models.py:332 part/models.py:861
+#: stock/models.py:529
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+msgid "Comment"
+msgstr ""
+
+#: InvenTree/models.py:199
+msgid "File comment"
+msgstr ""
+
+#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1235
+#: common/models.py:1236 common/models.py:1464 common/models.py:1465
+#: part/models.py:2301 part/models.py:2321
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2816
+msgid "User"
+msgstr ""
+
+#: InvenTree/models.py:209
+msgid "upload date"
+msgstr ""
+
+#: InvenTree/models.py:232
+msgid "Filename must not be empty"
+msgstr ""
+
+#: InvenTree/models.py:255
+msgid "Invalid attachment directory"
+msgstr ""
+
+#: InvenTree/models.py:265
+#, python-brace-format
+msgid "Filename contains illegal character '{c}'"
+msgstr ""
+
+#: InvenTree/models.py:268
+msgid "Filename missing extension"
+msgstr ""
+
+#: InvenTree/models.py:275
+msgid "Attachment with this filename already exists"
+msgstr ""
+
+#: InvenTree/models.py:282
+msgid "Error renaming file"
+msgstr ""
+
+#: InvenTree/models.py:317
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1450
+#: company/models.py:415 label/models.py:112 part/models.py:804
+#: part/models.py:2485 plugin/models.py:40 report/models.py:177
+#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:319
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2609
+msgid "Name"
+msgstr ""
+
+#: InvenTree/models.py:340 build/models.py:209
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/company_base.html:68
+#: company/templates/company/manufacturer_part.html:76
+#: company/templates/company/supplier_part.html:73 label/models.py:119
+#: order/models.py:125 part/models.py:827 part/templates/part/category.html:74
+#: part/templates/part/part_base.html:163
+#: part/templates/part/set_category.html:14 report/models.py:190
+#: report/models.py:553 report/models.py:592
+#: report/templates/report/inventree_build_order_base.html:118
+#: stock/templates/stock/location.html:93
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
+#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/company.js:551
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1701 templates/js/translated/stock.js:2438
+#: templates/js/translated/stock.js:2621 templates/js/translated/stock.js:2666
+msgid "Description"
+msgstr ""
+
+#: InvenTree/models.py:341
+msgid "Description (optional)"
+msgstr ""
+
+#: InvenTree/models.py:349
+msgid "parent"
+msgstr ""
+
+#: InvenTree/serializers.py:65 part/models.py:2803
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/serializers.py:299
+msgid "Filename"
+msgstr ""
+
+#: InvenTree/serializers.py:334
+msgid "Invalid value"
+msgstr ""
+
+#: InvenTree/serializers.py:355
+msgid "Data File"
+msgstr ""
+
+#: InvenTree/serializers.py:356
+msgid "Select data file for upload"
+msgstr ""
+
+#: InvenTree/serializers.py:380
+msgid "Unsupported file type"
+msgstr ""
+
+#: InvenTree/serializers.py:386
+msgid "File is too large"
+msgstr ""
+
+#: InvenTree/serializers.py:407
+msgid "No columns found in file"
+msgstr ""
+
+#: InvenTree/serializers.py:410
+msgid "No data rows found in file"
+msgstr ""
+
+#: InvenTree/serializers.py:533
+msgid "No data rows provided"
+msgstr ""
+
+#: InvenTree/serializers.py:536
+msgid "No data columns supplied"
+msgstr ""
+
+#: InvenTree/serializers.py:623
+#, python-brace-format
+msgid "Missing required column: '{name}'"
+msgstr ""
+
+#: InvenTree/serializers.py:632
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
+msgstr ""
+
+#: InvenTree/settings.py:655
+msgid "German"
+msgstr ""
+
+#: InvenTree/settings.py:656
+msgid "Greek"
+msgstr ""
+
+#: InvenTree/settings.py:657
+msgid "English"
+msgstr ""
+
+#: InvenTree/settings.py:658
+msgid "Spanish"
+msgstr ""
+
+#: InvenTree/settings.py:659
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:660
+msgid "French"
+msgstr ""
+
+#: InvenTree/settings.py:661
+msgid "Hebrew"
+msgstr ""
+
+#: InvenTree/settings.py:662
+msgid "Hungarian"
+msgstr ""
+
+#: InvenTree/settings.py:663
+msgid "Italian"
+msgstr ""
+
+#: InvenTree/settings.py:664
+msgid "Japanese"
+msgstr ""
+
+#: InvenTree/settings.py:665
+msgid "Korean"
+msgstr ""
+
+#: InvenTree/settings.py:666
+msgid "Dutch"
+msgstr ""
+
+#: InvenTree/settings.py:667
+msgid "Norwegian"
+msgstr ""
+
+#: InvenTree/settings.py:668
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:669
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:670
+msgid "Russian"
+msgstr ""
+
+#: InvenTree/settings.py:671
+msgid "Swedish"
+msgstr ""
+
+#: InvenTree/settings.py:672
+msgid "Thai"
+msgstr ""
+
+#: InvenTree/settings.py:673
+msgid "Turkish"
+msgstr ""
+
+#: InvenTree/settings.py:674
+msgid "Vietnamese"
+msgstr ""
+
+#: InvenTree/settings.py:675
+msgid "Chinese"
+msgstr ""
+
+#: InvenTree/status.py:94
+msgid "Background worker check failed"
+msgstr ""
+
+#: InvenTree/status.py:98
+msgid "Email backend not configured"
+msgstr ""
+
+#: InvenTree/status.py:101
+msgid "InvenTree system health checks failed"
+msgstr ""
+
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:308
+msgid "Pending"
+msgstr ""
+
+#: InvenTree/status_codes.py:102
+msgid "Placed"
+msgstr ""
+
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
+msgid "Complete"
+msgstr ""
+
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:318
+msgid "Cancelled"
+msgstr ""
+
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
+msgid "Lost"
+msgstr ""
+
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
+msgid "Returned"
+msgstr ""
+
+#: InvenTree/status_codes.py:143 order/models.py:961
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
+msgid "Shipped"
+msgstr ""
+
+#: InvenTree/status_codes.py:183
+msgid "OK"
+msgstr ""
+
+#: InvenTree/status_codes.py:184
+msgid "Attention needed"
+msgstr ""
+
+#: InvenTree/status_codes.py:185
+msgid "Damaged"
+msgstr ""
+
+#: InvenTree/status_codes.py:186
+msgid "Destroyed"
+msgstr ""
+
+#: InvenTree/status_codes.py:188
+msgid "Rejected"
+msgstr ""
+
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2196
+msgid "Merged stock items"
+msgstr ""
+
+#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:299
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:302
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:317
+msgid "Production"
+msgstr ""
+
+#: InvenTree/validators.py:25
+msgid "Not a valid currency code"
+msgstr ""
+
+#: InvenTree/validators.py:53
+msgid "Invalid character in part name"
+msgstr ""
+
+#: InvenTree/validators.py:66
+#, python-brace-format
+msgid "IPN must match regex pattern {pat}"
+msgstr ""
+
+#: InvenTree/validators.py:80 InvenTree/validators.py:94
+#: InvenTree/validators.py:108
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
+msgstr ""
+
+#: InvenTree/validators.py:116
+#, python-brace-format
+msgid "Illegal character in name ({x})"
+msgstr ""
+
+#: InvenTree/validators.py:137 InvenTree/validators.py:153
+msgid "Overage value must not be negative"
+msgstr ""
+
+#: InvenTree/validators.py:155
+msgid "Overage must not exceed 100%"
+msgstr ""
+
+#: InvenTree/validators.py:162
+msgid "Invalid value for overage"
+msgstr ""
+
+#: InvenTree/views.py:538
+msgid "Delete Item"
+msgstr ""
+
+#: InvenTree/views.py:587
+msgid "Check box to confirm item deletion"
+msgstr ""
+
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
+msgid "Edit User Information"
+msgstr ""
+
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
+msgid "Set Password"
+msgstr ""
+
+#: InvenTree/views.py:632
+msgid "Password fields must match"
+msgstr ""
+
+#: InvenTree/views.py:883 templates/navbar.html:126
+msgid "System Information"
+msgstr ""
+
+#: barcodes/api.py:54 barcodes/api.py:152
+msgid "Must provide barcode_data parameter"
+msgstr ""
+
+#: barcodes/api.py:128
+msgid "No match found for barcode data"
+msgstr ""
+
+#: barcodes/api.py:130
+msgid "Match found for barcode data"
+msgstr ""
+
+#: barcodes/api.py:155
+msgid "Must provide stockitem parameter"
+msgstr ""
+
+#: barcodes/api.py:162
+msgid "No matching stock item found"
+msgstr ""
+
+#: barcodes/api.py:193
+msgid "Barcode already matches Stock Item"
+msgstr ""
+
+#: barcodes/api.py:197
+msgid "Barcode already matches Stock Location"
+msgstr ""
+
+#: barcodes/api.py:201
+msgid "Barcode already matches Part"
+msgstr ""
+
+#: barcodes/api.py:207 barcodes/api.py:219
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
+
+#: barcodes/api.py:225
+msgid "Barcode associated with Stock Item"
+msgstr ""
+
+#: build/forms.py:20
+msgid "Confirm cancel"
+msgstr ""
+
+#: build/forms.py:20 build/views.py:62
+msgid "Confirm build cancellation"
+msgstr ""
+
+#: build/models.py:135
+msgid "Invalid choice for parent build"
+msgstr ""
+
+#: build/models.py:139 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
+#: report/templates/report/inventree_build_order_base.html:106
+#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2414
+msgid "Build Order"
+msgstr ""
+
+#: build/models.py:140 build/templates/build/build_base.html:13
+#: build/templates/build/index.html:8 build/templates/build/index.html:12
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
+#: part/templates/part/part_sidebar.html:21 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:139
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
+msgid "Build Orders"
+msgstr ""
+
+#: build/models.py:200
+msgid "Build Order Reference"
+msgstr ""
+
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2714
+#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_po_report.html:92
+#: report/templates/report/inventree_so_report.html:92
+#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
+msgid "Reference"
+msgstr ""
+
+#: build/models.py:212
+msgid "Brief description of the build"
+msgstr ""
+
+#: build/models.py:221 build/templates/build/build_base.html:169
+#: build/templates/build/detail.html:88
+msgid "Parent Build"
+msgstr ""
+
+#: build/models.py:222
+msgid "BuildOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:227 build/templates/build/build_base.html:77
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2247 part/models.py:2263 part/models.py:2282
+#: part/models.py:2299 part/models.py:2401 part/models.py:2523
+#: part/models.py:2613 part/models.py:2689 part/models.py:2996
+#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/templates/part/part_pricing.html:12
+#: part/templates/part/set_category.html:13
+#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_build_order_base.html:110
+#: report/templates/report/inventree_po_report.html:90
+#: report/templates/report/inventree_so_report.html:90
+#: templates/InvenTree/search.html:80
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
+#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
+#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
+#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:935 templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:2891 templates/js/translated/stock.js:2990
+msgid "Part"
+msgstr ""
+
+#: build/models.py:235
+msgid "Select part to build"
+msgstr ""
+
+#: build/models.py:240
+msgid "Sales Order Reference"
+msgstr ""
+
+#: build/models.py:244
+msgid "SalesOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:249 templates/js/translated/build.js:1643
+#: templates/js/translated/order.js:1564
+msgid "Source Location"
+msgstr ""
+
+#: build/models.py:253
+msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
+msgstr ""
+
+#: build/models.py:258
+msgid "Destination Location"
+msgstr ""
+
+#: build/models.py:262
+msgid "Select location where the completed items will be stored"
+msgstr ""
+
+#: build/models.py:266
+msgid "Build Quantity"
+msgstr ""
+
+#: build/models.py:269
+msgid "Number of stock items to build"
+msgstr ""
+
+#: build/models.py:273
+msgid "Completed items"
+msgstr ""
+
+#: build/models.py:275
+msgid "Number of stock items which have been completed"
+msgstr ""
+
+#: build/models.py:279 part/templates/part/part_base.html:234
+msgid "Build Status"
+msgstr ""
+
+#: build/models.py:283
+msgid "Build status code"
+msgstr ""
+
+#: build/models.py:287 build/serializers.py:218 stock/models.py:533
+msgid "Batch Code"
+msgstr ""
+
+#: build/models.py:291 build/serializers.py:219
+msgid "Batch code for this build output"
+msgstr ""
+
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
+msgid "Creation Date"
+msgstr ""
+
+#: build/models.py:298 order/models.py:563
+msgid "Target completion date"
+msgstr ""
+
+#: build/models.py:299
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:1996
+msgid "Completion Date"
+msgstr ""
+
+#: build/models.py:308
+msgid "completed by"
+msgstr ""
+
+#: build/models.py:316 templates/js/translated/build.js:1967
+msgid "Issued by"
+msgstr ""
+
+#: build/models.py:317
+msgid "User who issued this build order"
+msgstr ""
+
+#: build/models.py:325 build/templates/build/build_base.html:190
+#: build/templates/build/detail.html:116 order/models.py:143
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:1003
+#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:1979 templates/js/translated/order.js:864
+msgid "Responsible"
+msgstr ""
+
+#: build/models.py:326
+msgid "User responsible for this build order"
+msgstr ""
+
+#: build/models.py:331 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:102
+#: company/templates/company/supplier_part.html:126
+#: part/templates/part/part_base.html:354 stock/models.py:527
+#: stock/templates/stock/item_base.html:375
+msgid "External Link"
+msgstr ""
+
+#: build/models.py:336 build/serializers.py:380
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:147 order/models.py:814 order/models.py:1071
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:17 part/models.py:988
+#: part/templates/part/detail.html:140 part/templates/part/part_sidebar.html:57
+#: report/templates/report/inventree_build_order_base.html:173
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1345 templates/js/translated/stock.js:1927
+msgid "Notes"
+msgstr ""
+
+#: build/models.py:337
+msgid "Extra build notes"
+msgstr ""
+
+#: build/models.py:756
+msgid "No build output specified"
+msgstr ""
+
+#: build/models.py:759
+msgid "Build output is already completed"
+msgstr ""
+
+#: build/models.py:762
+msgid "Build output does not match Build Order"
+msgstr ""
+
+#: build/models.py:1154
+msgid "Build item must specify a build output, as master part is marked as trackable"
+msgstr ""
+
+#: build/models.py:1163
+#, python-brace-format
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
+msgstr ""
+
+#: build/models.py:1173
+msgid "Stock item is over-allocated"
+msgstr ""
+
+#: build/models.py:1179 order/models.py:1189
+msgid "Allocation quantity must be greater than zero"
+msgstr ""
+
+#: build/models.py:1185
+msgid "Quantity must be 1 for serialized stock"
+msgstr ""
+
+#: build/models.py:1242
+msgid "Selected stock item not found in BOM"
+msgstr ""
+
+#: build/models.py:1302 stock/templates/stock/item_base.html:347
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: templates/navbar.html:35
+msgid "Build"
+msgstr ""
+
+#: build/models.py:1303
+msgid "Build to allocate parts"
+msgstr ""
+
+#: build/models.py:1319 build/serializers.py:570 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:404 stock/serializers.py:635
+#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
+#: stock/templates/stock/item_base.html:23
+#: stock/templates/stock/item_base.html:369
+#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
+#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2041
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:729
+#: templates/js/translated/stock.js:2752
+msgid "Stock Item"
+msgstr ""
+
+#: build/models.py:1320
+msgid "Source stock item"
+msgstr ""
+
+#: build/models.py:1332 build/serializers.py:188
+#: build/templates/build/build_base.html:82
+#: build/templates/build/detail.html:35 common/models.py:1275
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2705
+#: part/templates/part/detail.html:995 part/templates/part/detail.html:1081
+#: part/templates/part/part_pricing.html:16
+#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_build_order_base.html:114
+#: report/templates/report/inventree_po_report.html:91
+#: report/templates/report/inventree_so_report.html:91
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
+#: stock/forms.py:139 stock/serializers.py:293
+#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:264
+#: stock/templates/stock/item_base.html:272
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
+#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
+#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
+#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
+#: templates/js/translated/build.js:1658
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:392
+#: templates/js/translated/stock.js:589 templates/js/translated/stock.js:759
+#: templates/js/translated/stock.js:2801 templates/js/translated/stock.js:2903
+msgid "Quantity"
+msgstr ""
+
+#: build/models.py:1333
+msgid "Stock quantity to allocate to build"
+msgstr ""
+
+#: build/models.py:1341
+msgid "Install into"
+msgstr ""
+
+#: build/models.py:1342
+msgid "Destination stock item"
+msgstr ""
+
+#: build/serializers.py:138 build/serializers.py:599
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:164
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:189
+msgid "Enter quantity for build output"
+msgstr ""
+
+#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:208
+msgid "Integer quantity required for trackable parts"
+msgstr ""
+
+#: build/serializers.py:211
+msgid "Integer quantity required, as the bill of materials contains trackable parts"
+msgstr ""
+
+#: build/serializers.py:225 order/serializers.py:820 stock/forms.py:78
+#: stock/serializers.py:314 templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:393
+msgid "Serial Numbers"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Enter serial numbers for build outputs"
+msgstr ""
+
+#: build/serializers.py:239
+msgid "Auto Allocate Serial Numbers"
+msgstr ""
+
+#: build/serializers.py:240
+msgid "Automatically allocate required items with matching serial numbers"
+msgstr ""
+
+#: build/serializers.py:274 stock/api.py:549
+msgid "The following serial numbers already exist"
+msgstr ""
+
+#: build/serializers.py:327 build/serializers.py:392
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:369 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
+#: stock/serializers.py:1029 stock/templates/stock/item_base.html:315
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
+#: templates/js/translated/build.js:1309 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:565
+#: templates/js/translated/stock.js:730 templates/js/translated/stock.js:937
+#: templates/js/translated/stock.js:1808 templates/js/translated/stock.js:2693
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:370
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:376 build/templates/build/build_base.html:142
+#: build/templates/build/detail.html:63 order/models.py:557
+#: order/serializers.py:247 stock/templates/stock/item_base.html:189
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1783
+#: templates/js/translated/stock.js:2770 templates/js/translated/stock.js:2919
+msgid "Status"
+msgstr ""
+
+#: build/serializers.py:428
+msgid "Accept Unallocated"
+msgstr ""
+
+#: build/serializers.py:429
+msgid "Accept that stock items have not been fully allocated to this build order"
+msgstr ""
+
+#: build/serializers.py:439 templates/js/translated/build.js:150
+msgid "Required stock has not been fully allocated"
+msgstr ""
+
+#: build/serializers.py:444
+msgid "Accept Incomplete"
+msgstr ""
+
+#: build/serializers.py:445
+msgid "Accept that the required number of build outputs have not been completed"
+msgstr ""
+
+#: build/serializers.py:455 templates/js/translated/build.js:154
+msgid "Required build quantity has not been completed"
+msgstr ""
+
+#: build/serializers.py:464
+msgid "Build order has incomplete outputs"
+msgstr ""
+
+#: build/serializers.py:467 build/templates/build/build_base.html:95
+msgid "No build outputs have been created for this build order"
+msgstr ""
+
+#: build/serializers.py:495 build/serializers.py:544 part/models.py:2829
+#: part/models.py:2988
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:505
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:514
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:561
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:576 stock/serializers.py:642
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:632 order/serializers.py:747
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:638
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:645
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:673 order/serializers.py:990
+msgid "Allocation items must be provided"
+msgstr ""
+
+#: build/tasks.py:98
+msgid "Stock required for build order"
+msgstr ""
+
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:220 build/views.py:53
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:87
+msgid "Build Description"
+msgstr ""
+
+#: build/templates/build/build_base.html:101
+#, python-format
+msgid "This Build Order is allocated to Sales Order %(link)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:108
+#, python-format
+msgid "This Build Order is a child of Build Order %(link)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:115
+msgid "Build Order is ready to mark as completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:120
+msgid "Build Order cannot be completed as outstanding outputs remain"
+msgstr ""
+
+#: build/templates/build/build_base.html:125
+msgid "Required build quantity has not yet been completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:130
+msgid "Stock has not been fully allocated to this Build Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:151
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1991 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
+msgid "Target Date"
+msgstr ""
+
+#: build/templates/build/build_base.html:156
+#, python-format
+msgid "This build was due on %(target)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:156
+#: build/templates/build/build_base.html:201
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:93
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:356
+msgid "Overdue"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1940
+#: templates/js/translated/table_filters.js:365
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:176
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
+#: order/templates/order/sales_order_base.html:28
+#: report/templates/report/inventree_build_order_base.html:136
+#: report/templates/report/inventree_so_report.html:77
+#: stock/templates/stock/item_base.html:309
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2428
+msgid "Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:183
+#: build/templates/build/detail.html:109
+#: report/templates/report/inventree_build_order_base.html:153
+msgid "Issued By"
+msgstr ""
+
+#: build/templates/build/build_base.html:228
+msgid "Incomplete Outputs"
+msgstr ""
+
+#: build/templates/build/build_base.html:229
+msgid "Build Order cannot be completed as incomplete build outputs remain"
+msgstr ""
+
+#: build/templates/build/cancel.html:5
+msgid "Are you sure you wish to cancel this build?"
+msgstr ""
+
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr ""
+
+#: build/templates/build/detail.html:39
+msgid "Stock Source"
+msgstr ""
+
+#: build/templates/build/detail.html:44
+msgid "Stock can be taken from any available location."
+msgstr ""
+
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:133
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
+msgid "Destination"
+msgstr ""
+
+#: build/templates/build/detail.html:57
+msgid "Destination location not specified"
+msgstr ""
+
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:333
+#: templates/js/translated/stock.js:1797 templates/js/translated/stock.js:2926
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:238
+msgid "Batch"
+msgstr ""
+
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1962
+msgid "Created"
+msgstr ""
+
+#: build/templates/build/detail.html:138
+msgid "No target date set"
+msgstr ""
+
+#: build/templates/build/detail.html:147
+msgid "Build not complete"
+msgstr ""
+
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
+msgid "Child Build Orders"
+msgstr ""
+
+#: build/templates/build/detail.html:173
+msgid "Allocate Stock to Build"
+msgstr ""
+
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+msgid "Unallocate stock"
+msgstr ""
+
+#: build/templates/build/detail.html:178
+msgid "Unallocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
+msgid "Order required parts"
+msgstr ""
+
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:463
+#: part/templates/part/category.html:177
+msgid "Order Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:197
+msgid "Untracked stock has been fully allocated for this Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:201
+msgid "Untracked stock has not been fully allocated for this Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:208
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:218
+msgid "This Build Order does not have any associated untracked BOM items"
+msgstr ""
+
+#: build/templates/build/detail.html:227
+msgid "Incomplete Build Outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:231
+msgid "Create new build output"
+msgstr ""
+
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
+msgstr ""
+
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
+msgstr ""
+
+#: build/templates/build/detail.html:250
+msgid "Complete selected build outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:253
+msgid "Delete selected build outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:254
+msgid "Delete outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:270
+msgid "Completed Build Outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:216
+#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
+msgid "Attachments"
+msgstr ""
+
+#: build/templates/build/detail.html:298
+msgid "Build Notes"
+msgstr ""
+
+#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:230
+msgid "Edit Notes"
+msgstr ""
+
+#: build/templates/build/detail.html:502
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:503
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
+#: build/templates/build/index.html:18 part/templates/part/detail.html:323
+msgid "New Build Order"
+msgstr ""
+
+#: build/templates/build/index.html:37 build/templates/build/index.html:38
+msgid "Print Build Orders"
+msgstr ""
+
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
+msgid "Display calendar view"
+msgstr ""
+
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
+msgid "Display list view"
+msgstr ""
+
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
+#: build/views.py:73
+msgid "Build was cancelled"
+msgstr ""
+
+#: build/views.py:114
+msgid "Delete Build Order"
+msgstr ""
+
+#: common/files.py:65
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:67
+msgid "Error reading file (invalid encoding)"
+msgstr ""
+
+#: common/files.py:72
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:74
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:76
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:34
+msgid "File"
+msgstr ""
+
+#: common/forms.py:35
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:50
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:51
+#, python-brace-format
+msgid "Select {name} file to upload"
+msgstr ""
+
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
+msgstr ""
+
+#: common/models.py:354
+msgid "Settings value"
+msgstr ""
+
+#: common/models.py:388
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:408
+msgid "Value must be a boolean value"
+msgstr ""
+
+#: common/models.py:419
+msgid "Value must be an integer value"
+msgstr ""
+
+#: common/models.py:442
+msgid "Key string must be unique"
+msgstr ""
+
+#: common/models.py:561
+msgid "No group"
+msgstr ""
+
+#: common/models.py:603
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:604
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:611
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:613
+msgid "String descriptor for the server instance"
+msgstr ""
+
+#: common/models.py:617
+msgid "Use instance name"
+msgstr ""
+
+#: common/models.py:618
+msgid "Use the instance name in the title-bar"
+msgstr ""
+
+#: common/models.py:624 company/models.py:100 company/models.py:101
+msgid "Company name"
+msgstr ""
+
+#: common/models.py:625
+msgid "Internal company name"
+msgstr ""
+
+#: common/models.py:630
+msgid "Base URL"
+msgstr ""
+
+#: common/models.py:631
+msgid "Base URL for server instance"
+msgstr ""
+
+#: common/models.py:637
+msgid "Default Currency"
+msgstr ""
+
+#: common/models.py:638
+msgid "Default currency"
+msgstr ""
+
+#: common/models.py:644
+msgid "Download from URL"
+msgstr ""
+
+#: common/models.py:645
+msgid "Allow download of remote images and files from external URL"
+msgstr ""
+
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:652
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:658
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:659
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:663
+msgid "Allow Duplicate IPN"
+msgstr ""
+
+#: common/models.py:664
+msgid "Allow multiple parts to share the same IPN"
+msgstr ""
+
+#: common/models.py:670
+msgid "Allow Editing IPN"
+msgstr ""
+
+#: common/models.py:671
+msgid "Allow changing the IPN value while editing a part"
+msgstr ""
+
+#: common/models.py:677
+msgid "Copy Part BOM Data"
+msgstr ""
+
+#: common/models.py:678
+msgid "Copy BOM data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:684
+msgid "Copy Part Parameter Data"
+msgstr ""
+
+#: common/models.py:685
+msgid "Copy parameter data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:691
+msgid "Copy Part Test Data"
+msgstr ""
+
+#: common/models.py:692
+msgid "Copy test data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:698
+msgid "Copy Category Parameter Templates"
+msgstr ""
+
+#: common/models.py:699
+msgid "Copy category parameter templates when creating a part"
+msgstr ""
+
+#: common/models.py:705 part/models.py:2525 report/models.py:183
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:417
+msgid "Template"
+msgstr ""
+
+#: common/models.py:706
+msgid "Parts are templates by default"
+msgstr ""
+
+#: common/models.py:712 part/models.py:951 templates/js/translated/bom.js:1300
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:429
+msgid "Assembly"
+msgstr ""
+
+#: common/models.py:713
+msgid "Parts can be assembled from other components by default"
+msgstr ""
+
+#: common/models.py:719 part/models.py:957
+#: templates/js/translated/table_filters.js:433
+msgid "Component"
+msgstr ""
+
+#: common/models.py:720
+msgid "Parts can be used as sub-components by default"
+msgstr ""
+
+#: common/models.py:726 part/models.py:968
+msgid "Purchaseable"
+msgstr ""
+
+#: common/models.py:727
+msgid "Parts are purchaseable by default"
+msgstr ""
+
+#: common/models.py:733 part/models.py:973
+#: templates/js/translated/table_filters.js:441
+msgid "Salable"
+msgstr ""
+
+#: common/models.py:734
+msgid "Parts are salable by default"
+msgstr ""
+
+#: common/models.py:740 part/models.py:963
+#: templates/js/translated/table_filters.js:46
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:445
+msgid "Trackable"
+msgstr ""
+
+#: common/models.py:741
+msgid "Parts are trackable by default"
+msgstr ""
+
+#: common/models.py:747 part/models.py:983
+#: part/templates/part/part_base.html:147
+#: templates/js/translated/table_filters.js:42
+msgid "Virtual"
+msgstr ""
+
+#: common/models.py:748
+msgid "Parts are virtual by default"
+msgstr ""
+
+#: common/models.py:754
+msgid "Show Import in Views"
+msgstr ""
+
+#: common/models.py:755
+msgid "Display the import wizard in some part views"
+msgstr ""
+
+#: common/models.py:761
+msgid "Show Price in Forms"
+msgstr ""
+
+#: common/models.py:762
+msgid "Display part price in some forms"
+msgstr ""
+
+#: common/models.py:773
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:774
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:785
+msgid "Show Price History"
+msgstr ""
+
+#: common/models.py:786
+msgid "Display historical pricing for Part"
+msgstr ""
+
+#: common/models.py:792
+msgid "Show related parts"
+msgstr ""
+
+#: common/models.py:793
+msgid "Display related parts for a part"
+msgstr ""
+
+#: common/models.py:799
+msgid "Create initial stock"
+msgstr ""
+
+#: common/models.py:800
+msgid "Create initial stock on part creation"
+msgstr ""
+
+#: common/models.py:806
+msgid "Internal Prices"
+msgstr ""
+
+#: common/models.py:807
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:813
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:814
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:820
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:821
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:828
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:829
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:835 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:836
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:842
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:843
+msgid "Default page size for PDF reports"
+msgstr ""
+
+#: common/models.py:853
+msgid "Test Reports"
+msgstr ""
+
+#: common/models.py:854
+msgid "Enable generation of test reports"
+msgstr ""
+
+#: common/models.py:860
+msgid "Stock Expiry"
+msgstr ""
+
+#: common/models.py:861
+msgid "Enable stock expiry functionality"
+msgstr ""
+
+#: common/models.py:867
+msgid "Sell Expired Stock"
+msgstr ""
+
+#: common/models.py:868
+msgid "Allow sale of expired stock"
+msgstr ""
+
+#: common/models.py:874
+msgid "Stock Stale Time"
+msgstr ""
+
+#: common/models.py:875
+msgid "Number of days stock items are considered stale before expiring"
+msgstr ""
+
+#: common/models.py:877
+msgid "days"
+msgstr ""
+
+#: common/models.py:882
+msgid "Build Expired Stock"
+msgstr ""
+
+#: common/models.py:883
+msgid "Allow building with expired stock"
+msgstr ""
+
+#: common/models.py:889
+msgid "Stock Ownership Control"
+msgstr ""
+
+#: common/models.py:890
+msgid "Enable ownership control over stock locations and items"
+msgstr ""
+
+#: common/models.py:896
+msgid "Build Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:897
+msgid "Prefix value for build order reference"
+msgstr ""
+
+#: common/models.py:902
+msgid "Build Order Reference Regex"
+msgstr ""
+
+#: common/models.py:903
+msgid "Regular expression pattern for matching build order reference"
+msgstr ""
+
+#: common/models.py:907
+msgid "Sales Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:908
+msgid "Prefix value for sales order reference"
+msgstr ""
+
+#: common/models.py:913
+msgid "Purchase Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:914
+msgid "Prefix value for purchase order reference"
+msgstr ""
+
+#: common/models.py:920
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:921
+msgid "Enable password forgot function on the login pages"
+msgstr ""
+
+#: common/models.py:926
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:927
+msgid "Enable self-registration for users on the login pages"
+msgstr ""
+
+#: common/models.py:932
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:933
+msgid "Enable SSO on the login pages"
+msgstr ""
+
+#: common/models.py:938
+msgid "Email required"
+msgstr ""
+
+#: common/models.py:939
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:944
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:945
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:950
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:951
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:956
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:957
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:962
+msgid "Group on signup"
+msgstr ""
+
+#: common/models.py:963
+msgid "Group to which new users are assigned on registration"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enforce MFA"
+msgstr ""
+
+#: common/models.py:969
+msgid "Users must use multifactor security."
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:977
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:984
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:990
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:991
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:997
+msgid "Enable schedule integration"
+msgstr ""
+
+#: common/models.py:998
+msgid "Enable plugins to run scheduled tasks"
+msgstr ""
+
+#: common/models.py:1004
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:1005
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1020 common/models.py:1228
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show subscribed parts"
+msgstr ""
+
+#: common/models.py:1052
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1058
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1064
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1070
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1076
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1077
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1082
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1083
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1088
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1089
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1094
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1095
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1100
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1101
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1106
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1107
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1112
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1113
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1118
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1119
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1124
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1125
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1130
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1131
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1136
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1137
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1142
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1143
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1148
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1149
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1154
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1155
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1161
+msgid "Inline label display"
+msgstr ""
+
+#: common/models.py:1162
+msgid "Display PDF labels in the browser, instead of downloading as a file"
+msgstr ""
+
+#: common/models.py:1168
+msgid "Inline report display"
+msgstr ""
+
+#: common/models.py:1169
+msgid "Display PDF reports in the browser, instead of downloading as a file"
+msgstr ""
+
+#: common/models.py:1175
+msgid "Search Preview Results"
+msgstr ""
+
+#: common/models.py:1176
+msgid "Number of results to show in search preview window"
+msgstr ""
+
+#: common/models.py:1182
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1183
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1189
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1190
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1196
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1197
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1203
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1204
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1210
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1211
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1276 company/forms.py:43
+msgid "Price break quantity"
+msgstr ""
+
+#: common/models.py:1283 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
+msgid "Price"
+msgstr ""
+
+#: common/models.py:1284
+msgid "Unit price at specified quantity"
+msgstr ""
+
+#: common/models.py:1441 common/models.py:1580
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1442
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1451
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1456 part/models.py:978 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:412
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1457
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1471
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1472
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1479
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1480
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1547
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1548
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1556
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1557
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1564
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1565
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1571
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1572
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1581
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1586
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1587
+msgid "Was the work on this message finished?"
+msgstr ""
+
+#: common/views.py:93 order/templates/order/purchase_order_detail.html:24
+#: order/views.py:243 part/views.py:210
+#: templates/patterns/wizard/upload.html:35
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:94 order/views.py:244
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/views.py:211 templates/patterns/wizard/match_fields.html:51
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:95
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:440
+msgid "Fields matching failed"
+msgstr ""
+
+#: common/views.py:495
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19
+#: part/templates/part/import_wizard/match_references.html:19
+#: templates/patterns/wizard/match_fields.html:26
+#: templates/patterns/wizard/upload.html:33
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:14
+msgid "URL"
+msgstr ""
+
+#: company/forms.py:25 part/forms.py:47
+msgid "Image URL"
+msgstr ""
+
+#: company/models.py:105
+msgid "Company description"
+msgstr ""
+
+#: company/models.py:106
+msgid "Description of the company"
+msgstr ""
+
+#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
+#: templates/js/translated/company.js:349
+msgid "Website"
+msgstr ""
+
+#: company/models.py:113
+msgid "Company website URL"
+msgstr ""
+
+#: company/models.py:117 company/templates/company/company_base.html:115
+msgid "Address"
+msgstr ""
+
+#: company/models.py:118
+msgid "Company address"
+msgstr ""
+
+#: company/models.py:121
+msgid "Phone number"
+msgstr ""
+
+#: company/models.py:122
+msgid "Contact phone number"
+msgstr ""
+
+#: company/models.py:125 company/templates/company/company_base.html:129
+#: templates/InvenTree/settings/user.html:48
+msgid "Email"
+msgstr ""
+
+#: company/models.py:125
+msgid "Contact email address"
+msgstr ""
+
+#: company/models.py:128 company/templates/company/company_base.html:136
+msgid "Contact"
+msgstr ""
+
+#: company/models.py:129
+msgid "Point of contact"
+msgstr ""
+
+#: company/models.py:131
+msgid "Link to external company information"
+msgstr ""
+
+#: company/models.py:139 part/models.py:870
+msgid "Image"
+msgstr ""
+
+#: company/models.py:144
+msgid "is customer"
+msgstr ""
+
+#: company/models.py:144
+msgid "Do you sell items to this company?"
+msgstr ""
+
+#: company/models.py:146
+msgid "is supplier"
+msgstr ""
+
+#: company/models.py:146
+msgid "Do you purchase items from this company?"
+msgstr ""
+
+#: company/models.py:148
+msgid "is manufacturer"
+msgstr ""
+
+#: company/models.py:148
+msgid "Does this company manufacture parts?"
+msgstr ""
+
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:155
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:144 templates/js/translated/bom.js:541
+msgid "Base Part"
+msgstr ""
+
+#: company/models.py:324 company/models.py:539
+msgid "Select part"
+msgstr ""
+
+#: company/models.py:335 company/templates/company/company_base.html:73
+#: company/templates/company/manufacturer_part.html:91
+#: company/templates/company/supplier_part.html:97
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:517
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:234
+#: templates/js/translated/table_filters.js:384
+msgid "Manufacturer"
+msgstr ""
+
+#: company/models.py:336 templates/js/translated/part.js:235
+msgid "Select manufacturer"
+msgstr ""
+
+#: company/models.py:342 company/templates/company/manufacturer_part.html:96
+#: company/templates/company/supplier_part.html:105
+#: templates/js/translated/company.js:533
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+msgid "MPN"
+msgstr ""
+
+#: company/models.py:343 templates/js/translated/part.js:246
+msgid "Manufacturer Part Number"
+msgstr ""
+
+#: company/models.py:349
+msgid "URL for external manufacturer part link"
+msgstr ""
+
+#: company/models.py:355
+msgid "Manufacturer part description"
+msgstr ""
+
+#: company/models.py:409 company/models.py:558
+#: company/templates/company/manufacturer_part.html:6
+#: company/templates/company/manufacturer_part.html:23
+#: stock/templates/stock/item_base.html:392
+msgid "Manufacturer Part"
+msgstr ""
+
+#: company/models.py:416
+msgid "Parameter name"
+msgstr ""
+
+#: company/models.py:422
+#: report/templates/report/inventree_test_report_base.html:95
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1332
+msgid "Value"
+msgstr ""
+
+#: company/models.py:423
+msgid "Parameter value"
+msgstr ""
+
+#: company/models.py:429 part/models.py:945 part/models.py:2493
+#: part/templates/part/part_base.html:288
+#: templates/InvenTree/settings/settings.html:324
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+msgid "Units"
+msgstr ""
+
+#: company/models.py:430
+msgid "Parameter units"
+msgstr ""
+
+#: company/models.py:502
+msgid "Linked manufacturer part must reference the same base part"
+msgstr ""
+
+#: company/models.py:545 company/templates/company/company_base.html:78
+#: company/templates/company/supplier_part.html:87 order/models.py:227
+#: order/templates/order/order_base.html:112
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:399
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/table_filters.js:388
+msgid "Supplier"
+msgstr ""
+
+#: company/models.py:546 templates/js/translated/part.js:216
+msgid "Select supplier"
+msgstr ""
+
+#: company/models.py:551 company/templates/company/supplier_part.html:91
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+msgid "SKU"
+msgstr ""
+
+#: company/models.py:552 templates/js/translated/part.js:227
+msgid "Supplier stock keeping unit"
+msgstr ""
+
+#: company/models.py:559
+msgid "Select manufacturer part"
+msgstr ""
+
+#: company/models.py:565
+msgid "URL for external supplier part link"
+msgstr ""
+
+#: company/models.py:571
+msgid "Supplier part description"
+msgstr ""
+
+#: company/models.py:576 company/templates/company/supplier_part.html:119
+#: part/models.py:2717 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_po_report.html:93
+#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
+msgid "Note"
+msgstr ""
+
+#: company/models.py:580 part/models.py:1817
+msgid "base cost"
+msgstr ""
+
+#: company/models.py:580 part/models.py:1817
+msgid "Minimum charge (e.g. stocking fee)"
+msgstr ""
+
+#: company/models.py:582 company/templates/company/supplier_part.html:112
+#: stock/models.py:495 stock/templates/stock/item_base.html:340
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1923
+msgid "Packaging"
+msgstr ""
+
+#: company/models.py:582
+msgid "Part packaging"
+msgstr ""
+
+#: company/models.py:584 part/models.py:1819
+msgid "multiple"
+msgstr ""
+
+#: company/models.py:584
+msgid "Order multiple"
+msgstr ""
+
+#: company/serializers.py:70
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:71
+msgid "Currency Code"
+msgstr ""
+
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
+msgid "Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:279
+msgid "Create Purchase Order"
+msgstr ""
+
+#: company/templates/company/company_base.html:26
+msgid "Company actions"
+msgstr ""
+
+#: company/templates/company/company_base.html:31
+msgid "Edit company information"
+msgstr ""
+
+#: company/templates/company/company_base.html:32
+#: templates/js/translated/company.js:265
+msgid "Edit Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:36
+msgid "Delete company"
+msgstr ""
+
+#: company/templates/company/company_base.html:37
+#: company/templates/company/company_base.html:159
+msgid "Delete Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:53
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:56
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr ""
+
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:683
+#: stock/templates/stock/item_base.html:292
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2734
+#: templates/js/translated/table_filters.js:392
+msgid "Customer"
+msgstr ""
+
+#: company/templates/company/company_base.html:108
+msgid "Uses default currency"
+msgstr ""
+
+#: company/templates/company/company_base.html:122
+msgid "Phone"
+msgstr ""
+
+#: company/templates/company/company_base.html:205
+#: part/templates/part/part_base.html:471
+msgid "Upload Image"
+msgstr ""
+
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:118
+msgid "Supplier Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:19
+#: order/templates/order/order_wizard/select_parts.html:44
+msgid "Create new supplier part"
+msgstr ""
+
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:118
+#: part/templates/part/detail.html:356
+msgid "New Supplier Part"
+msgstr ""
+
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:127
+#: company/templates/company/manufacturer_part.html:156
+#: part/templates/part/category.html:171 part/templates/part/detail.html:365
+#: part/templates/part/detail.html:394
+msgid "Options"
+msgstr ""
+
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:177
+msgid "Order parts"
+msgstr ""
+
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
+msgid "Delete parts"
+msgstr ""
+
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
+msgid "Delete Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103
+msgid "Manufacturer Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:66
+msgid "Create new manufacturer part"
+msgstr ""
+
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:384
+msgid "New Manufacturer Part"
+msgstr ""
+
+#: company/templates/company/detail.html:107
+msgid "Supplier Stock"
+msgstr ""
+
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
+#: order/templates/order/purchase_orders.html:8
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
+#: users/models.py:45
+msgid "Purchase Orders"
+msgstr ""
+
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
+msgid "Create new purchase order"
+msgstr ""
+
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
+msgid "New Purchase Order"
+msgstr ""
+
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
+#: order/templates/order/sales_orders.html:8
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
+#: users/models.py:46
+msgid "Sales Orders"
+msgstr ""
+
+#: company/templates/company/detail.html:147
+#: order/templates/order/sales_orders.html:20
+msgid "Create new sales order"
+msgstr ""
+
+#: company/templates/company/detail.html:148
+#: order/templates/order/sales_orders.html:21
+msgid "New Sales Order"
+msgstr ""
+
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:1281
+msgid "Assigned Stock"
+msgstr ""
+
+#: company/templates/company/detail.html:184
+msgid "Company Notes"
+msgstr ""
+
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:215
+#: part/templates/part/detail.html:438
+msgid "Delete Supplier Parts?"
+msgstr ""
+
+#: company/templates/company/detail.html:385
+#: company/templates/company/manufacturer_part.html:216
+#: part/templates/part/detail.html:439
+msgid "All selected supplier parts will be deleted"
+msgstr ""
+
+#: company/templates/company/index.html:8
+msgid "Supplier List"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178
+#: templates/navbar.html:46
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+msgid "Order part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:565
+msgid "Edit manufacturer part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:566
+msgid "Delete manufacturer part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:66
+#: company/templates/company/supplier_part.html:63
+msgid "Internal Part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:114
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:38 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:188 templates/navbar.html:45
+msgid "Suppliers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:129
+#: part/templates/part/detail.html:367
+msgid "Delete supplier parts"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:129
+#: company/templates/company/manufacturer_part.html:158
+#: company/templates/company/manufacturer_part.html:254
+#: part/templates/part/detail.html:367 part/templates/part/detail.html:396
+#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
+#: users/models.py:217
+msgid "Delete"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:143
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:190 part/templates/part/part_sidebar.html:9
+msgid "Parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:147
+#: part/templates/part/detail.html:195
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:66
+msgid "New Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:158
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:191
+#: part/templates/part/detail.html:895
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:239
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:251
+msgid "Delete Parameters"
+msgstr ""
+
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:7
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
+#: stock/templates/stock/item_base.html:404
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1880
+msgid "Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:863
+msgid "Edit supplier part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:864
+msgid "Delete supplier part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:138
+#: company/templates/company/supplier_part_navbar.html:12
+msgid "Supplier Part Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
+#: templates/js/translated/stock.js:369
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
+#: company/templates/company/supplier_part_navbar.html:19
+msgid "Supplier Part Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:89
+msgid "Order Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
+msgid "Pricing Information"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1319
+msgid "Add Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:210
+msgid "No price break information found"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:224 part/views.py:1381
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:238 part/views.py:1367
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:263
+msgid "Edit price break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:264
+msgid "Delete price break"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:15
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:150
+#: templates/InvenTree/settings/sidebar.html:41
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1712 templates/navbar.html:28
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
+msgid "Supplier Part Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
+msgid "Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:137
+#: stock/templates/stock/location.html:151
+#: stock/templates/stock/location.html:163
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2633
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
+#: company/views.py:50
+msgid "New Supplier"
+msgstr ""
+
+#: company/views.py:56
+msgid "New Manufacturer"
+msgstr ""
+
+#: company/views.py:61 templates/InvenTree/search.html:208
+#: templates/navbar.html:57
+msgid "Customers"
+msgstr ""
+
+#: company/views.py:62
+msgid "New Customer"
+msgstr ""
+
+#: company/views.py:69
+msgid "Companies"
+msgstr ""
+
+#: company/views.py:70
+msgid "New Company"
+msgstr ""
+
+#: company/views.py:129 part/views.py:591
+msgid "Download Image"
+msgstr ""
+
+#: company/views.py:158 part/views.py:623
+msgid "Image size exceeds maximum allowable size for download"
+msgstr ""
+
+#: company/views.py:165 part/views.py:630
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
+#: company/views.py:174 part/views.py:639
+msgid "Supplied URL is not a valid image file"
+msgstr ""
+
+#: label/api.py:57 report/api.py:203
+msgid "No valid objects provided to template"
+msgstr ""
+
+#: label/models.py:113
+msgid "Label name"
+msgstr ""
+
+#: label/models.py:120
+msgid "Label description"
+msgstr ""
+
+#: label/models.py:127
+msgid "Label"
+msgstr ""
+
+#: label/models.py:128
+msgid "Label template file"
+msgstr ""
+
+#: label/models.py:134 report/models.py:294
+msgid "Enabled"
+msgstr ""
+
+#: label/models.py:135
+msgid "Label template is enabled"
+msgstr ""
+
+#: label/models.py:140
+msgid "Width [mm]"
+msgstr ""
+
+#: label/models.py:141
+msgid "Label width, specified in mm"
+msgstr ""
+
+#: label/models.py:147
+msgid "Height [mm]"
+msgstr ""
+
+#: label/models.py:148
+msgid "Label height, specified in mm"
+msgstr ""
+
+#: label/models.py:154 report/models.py:287
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:155
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:258
+msgid "Query filters (comma-separated list of key=value pairs),"
+msgstr ""
+
+#: label/models.py:259 label/models.py:319 label/models.py:366
+#: report/models.py:318 report/models.py:455 report/models.py:493
+msgid "Filters"
+msgstr ""
+
+#: label/models.py:318
+msgid "Query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: label/models.py:365
+msgid "Part query filters (comma-separated value of key=value pairs)"
+msgstr ""
+
+#: order/forms.py:24 order/templates/order/order_base.html:52
+msgid "Place order"
+msgstr ""
+
+#: order/forms.py:35 order/templates/order/order_base.html:60
+msgid "Mark order as complete"
+msgstr ""
+
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
+msgid "Cancel order"
+msgstr ""
+
+#: order/models.py:125
+msgid "Order description"
+msgstr ""
+
+#: order/models.py:127
+msgid "Link to external page"
+msgstr ""
+
+#: order/models.py:135
+msgid "Created By"
+msgstr ""
+
+#: order/models.py:142
+msgid "User or group responsible for this order"
+msgstr ""
+
+#: order/models.py:147
+msgid "Order notes"
+msgstr ""
+
+#: order/models.py:214 order/models.py:542
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:219 order/models.py:557
+msgid "Purchase order status"
+msgstr ""
+
+#: order/models.py:228
+msgid "Company from which the items are being ordered"
+msgstr ""
+
+#: order/models.py:231 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
+msgid "Supplier Reference"
+msgstr ""
+
+#: order/models.py:231
+msgid "Supplier order reference code"
+msgstr ""
+
+#: order/models.py:238
+msgid "received by"
+msgstr ""
+
+#: order/models.py:243
+msgid "Issue Date"
+msgstr ""
+
+#: order/models.py:244
+msgid "Date order was issued"
+msgstr ""
+
+#: order/models.py:249
+msgid "Target Delivery Date"
+msgstr ""
+
+#: order/models.py:250
+msgid "Expected date for order delivery. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:256
+msgid "Date order was completed"
+msgstr ""
+
+#: order/models.py:285
+msgid "Part supplier must match PO supplier"
+msgstr ""
+
+#: order/models.py:420
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:553
+msgid "Company to which the items are being sold"
+msgstr ""
+
+#: order/models.py:559
+msgid "Customer Reference "
+msgstr ""
+
+#: order/models.py:559
+msgid "Customer order reference code"
+msgstr ""
+
+#: order/models.py:564
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:567 order/models.py:1048
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
+msgid "Shipment Date"
+msgstr ""
+
+#: order/models.py:574
+msgid "shipped by"
+msgstr ""
+
+#: order/models.py:640
+msgid "Order cannot be completed as no parts have been assigned"
+msgstr ""
+
+#: order/models.py:644
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:650
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:806
+msgid "Item quantity"
+msgstr ""
+
+#: order/models.py:812
+msgid "Line item reference"
+msgstr ""
+
+#: order/models.py:814
+msgid "Line item notes"
+msgstr ""
+
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2395
+msgid "Order"
+msgstr ""
+
+#: order/models.py:856 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
+#: report/templates/report/inventree_po_report.html:77
+#: stock/templates/stock/item_base.html:354
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1857 templates/js/translated/stock.js:2715
+msgid "Purchase Order"
+msgstr ""
+
+#: order/models.py:877
+msgid "Supplier part"
+msgstr ""
+
+#: order/models.py:884 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
+#: templates/js/translated/table_filters.js:312
+msgid "Received"
+msgstr ""
+
+#: order/models.py:885
+msgid "Number of items received"
+msgstr ""
+
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:361
+#: templates/js/translated/stock.js:1911
+msgid "Purchase Price"
+msgstr ""
+
+#: order/models.py:893
+msgid "Unit purchase price"
+msgstr ""
+
+#: order/models.py:901
+msgid "Where does the Purchaser want this item to be stored?"
+msgstr ""
+
+#: order/models.py:956 part/templates/part/part_pricing.html:112
+#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:957
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:962
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1049
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1056
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1057
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1065
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1072
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1079
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1080
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1090
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1093
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1171 order/models.py:1173
+msgid "Stock item has not been assigned"
+msgstr ""
+
+#: order/models.py:1177
+msgid "Cannot allocate stock item to a line with a different part"
+msgstr ""
+
+#: order/models.py:1179
+msgid "Cannot allocate stock to a line without a part"
+msgstr ""
+
+#: order/models.py:1182
+msgid "Allocation quantity cannot exceed stock quantity"
+msgstr ""
+
+#: order/models.py:1186
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:1192 order/serializers.py:740
+msgid "Quantity must be 1 for serialized stock item"
+msgstr ""
+
+#: order/models.py:1195
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1196
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1204
+msgid "Line"
+msgstr ""
+
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1213
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1225
+msgid "Item"
+msgstr ""
+
+#: order/models.py:1226
+msgid "Select stock item to allocate"
+msgstr ""
+
+#: order/models.py:1229
+msgid "Enter stock allocation quantity"
+msgstr ""
+
+#: order/serializers.py:173
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:211 order/serializers.py:796
+msgid "Line Item"
+msgstr ""
+
+#: order/serializers.py:217
+msgid "Line item does not match purchase order"
+msgstr ""
+
+#: order/serializers.py:227 order/serializers.py:295
+msgid "Select destination location for received items"
+msgstr ""
+
+#: order/serializers.py:251
+msgid "Barcode Hash"
+msgstr ""
+
+#: order/serializers.py:252
+msgid "Unique identifier field"
+msgstr ""
+
+#: order/serializers.py:269
+msgid "Barcode is already in use"
+msgstr ""
+
+#: order/serializers.py:307
+msgid "Line items must be provided"
+msgstr ""
+
+#: order/serializers.py:324
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:335
+msgid "Supplied barcode values must be unique"
+msgstr ""
+
+#: order/serializers.py:587
+msgid "Sale price currency"
+msgstr ""
+
+#: order/serializers.py:655
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:705 order/serializers.py:808
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:727
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:821
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:845 order/serializers.py:970
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:848 order/serializers.py:973
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:900
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:910
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
+#: order/templates/order/delete_attachment.html:5
+#: stock/templates/stock/attachment_delete.html:5
+msgid "Are you sure you want to delete this attachment?"
+msgstr ""
+
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
+msgstr ""
+
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
+msgstr ""
+
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
+msgid "Receive items"
+msgstr ""
+
+#: order/templates/order/order_base.html:58
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
+msgid "Complete Order"
+msgstr ""
+
+#: order/templates/order/order_base.html:84
+#: order/templates/order/sales_order_base.html:79
+msgid "Order Reference"
+msgstr ""
+
+#: order/templates/order/order_base.html:89
+#: order/templates/order/sales_order_base.html:84
+msgid "Order Description"
+msgstr ""
+
+#: order/templates/order/order_base.html:94
+#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2451
+msgid "Order Status"
+msgstr ""
+
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
+#: report/templates/report/inventree_build_order_base.html:122
+msgid "Issued"
+msgstr ""
+
+#: order/templates/order/order_base.html:219
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_complete.html:7
+msgid "Mark this order as complete?"
+msgstr ""
+
+#: order/templates/order/order_complete.html:10
+msgid "This order has line items which have not been marked as received."
+msgstr ""
+
+#: order/templates/order/order_complete.html:11
+msgid "Completing this order means that the order and line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_issue.html:8
+msgid "After placing this purchase order, line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:12
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_references.html:21
+#: templates/patterns/wizard/match_fields.html:28
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:29
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:52
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
+#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:602 templates/js/translated/stock.js:770
+#: templates/patterns/wizard/match_fields.html:70
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:13
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:15
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:11
+msgid "Step 1 of 2 - Select Part Suppliers"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:16
+msgid "Select suppliers"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:20
+msgid "No purchaseable parts selected"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:33
+msgid "Select Supplier"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:57
+msgid "No price"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:65
+#, python-format
+msgid "Select a supplier for %(name)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:77
+#: part/templates/part/set_category.html:32
+msgid "Remove part"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:8
+msgid "Step 2 of 2 - Select Purchase Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:12
+msgid "Select existing purchase orders, or create new orders."
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:31
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
+msgid "Items"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:32
+msgid "Select Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:45
+#, python-format
+msgid "Create new purchase order for %(name)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:68
+#, python-format
+msgid "Select a purchase order for %(name)s"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
+msgid "Purchase Order Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:181
+#: order/templates/order/sales_order_detail.html:23
+#: order/templates/order/sales_order_detail.html:244
+msgid "Add Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:123
+msgid "Order Notes"
+msgstr ""
+
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
+msgid "Print Order Reports"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:102
+msgid "This Sales Order has not been fully allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:122
+#: templates/js/translated/order.js:1253
+msgid "Customer Reference"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
+msgid "Edit Sales Order"
+msgstr ""
+
+#: order/templates/order/sales_order_cancel.html:8
+#: stock/templates/stock/stockitem_convert.html:13
+msgid "Warning"
+msgstr ""
+
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:18
+msgid "Sales Order Items"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+msgid "Actions"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
+msgstr ""
+
+#: order/views.py:99
+msgid "Cancel Order"
+msgstr ""
+
+#: order/views.py:108 order/views.py:134
+msgid "Confirm order cancellation"
+msgstr ""
+
+#: order/views.py:111 order/views.py:137
+msgid "Order cannot be cancelled"
+msgstr ""
+
+#: order/views.py:125
+msgid "Cancel sales order"
+msgstr ""
+
+#: order/views.py:151
+msgid "Issue Order"
+msgstr ""
+
+#: order/views.py:160
+msgid "Confirm order placement"
+msgstr ""
+
+#: order/views.py:170
+msgid "Purchase order issued"
+msgstr ""
+
+#: order/views.py:197
+msgid "Confirm order completion"
+msgstr ""
+
+#: order/views.py:208
+msgid "Purchase order completed"
+msgstr ""
+
+#: order/views.py:245
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:489
+msgid "Update prices"
+msgstr ""
+
+#: order/views.py:747
+#, python-brace-format
+msgid "Ordered {n} parts"
+msgstr ""
+
+#: order/views.py:858
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:864
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:867
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:872
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
+#: part/api.py:499
+msgid "Valid"
+msgstr ""
+
+#: part/api.py:500
+msgid "Validate entire Bill of Materials"
+msgstr ""
+
+#: part/api.py:505
+msgid "This option must be selected"
+msgstr ""
+
+#: part/api.py:847
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:851
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:866
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+msgid "This field is required"
+msgstr ""
+
+#: part/bom.py:125 part/models.py:83 part/models.py:879
+#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
+msgid "Default Location"
+msgstr ""
+
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
+msgid "Available Stock"
+msgstr ""
+
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
+msgid "Select part category"
+msgstr ""
+
+#: part/forms.py:121
+msgid "Add parameter template to same level categories"
+msgstr ""
+
+#: part/forms.py:125
+msgid "Add parameter template to all categories"
+msgstr ""
+
+#: part/forms.py:145
+msgid "Input quantity for price calculation"
+msgstr ""
+
+#: part/models.py:84
+msgid "Default location for parts in this category"
+msgstr ""
+
+#: part/models.py:87
+msgid "Default keywords"
+msgstr ""
+
+#: part/models.py:87
+msgid "Default keywords for parts in this category"
+msgstr ""
+
+#: part/models.py:97 part/models.py:2569 part/templates/part/category.html:15
+#: part/templates/part/part_app_base.html:10
+msgid "Part Category"
+msgstr ""
+
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
+#: users/models.py:40
+msgid "Part Categories"
+msgstr ""
+
+#: part/models.py:360 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:17 part/templates/part/category.html:133
+#: part/templates/part/category.html:153
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:452
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:532 part/models.py:544
+#, python-brace-format
+msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
+msgstr ""
+
+#: part/models.py:674
+msgid "Next available serial numbers are"
+msgstr ""
+
+#: part/models.py:678
+msgid "Next available serial number is"
+msgstr ""
+
+#: part/models.py:683
+msgid "Most recent serial number is"
+msgstr ""
+
+#: part/models.py:778
+msgid "Duplicate IPN not allowed in part settings"
+msgstr ""
+
+#: part/models.py:803 part/models.py:2622
+msgid "Part name"
+msgstr ""
+
+#: part/models.py:810
+msgid "Is Template"
+msgstr ""
+
+#: part/models.py:811
+msgid "Is this part a template part?"
+msgstr ""
+
+#: part/models.py:821
+msgid "Is this part a variant of another part?"
+msgstr ""
+
+#: part/models.py:822
+msgid "Variant Of"
+msgstr ""
+
+#: part/models.py:828
+msgid "Part description"
+msgstr ""
+
+#: part/models.py:833 part/templates/part/category.html:86
+#: part/templates/part/part_base.html:302
+msgid "Keywords"
+msgstr ""
+
+#: part/models.py:834
+msgid "Part keywords to improve visibility in search results"
+msgstr ""
+
+#: part/models.py:841 part/models.py:2319 part/models.py:2568
+#: part/templates/part/part_base.html:265
+#: part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:223
+#: templates/js/translated/part.js:1268
+msgid "Category"
+msgstr ""
+
+#: part/models.py:842
+msgid "Part category"
+msgstr ""
+
+#: part/models.py:847 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1684
+msgid "IPN"
+msgstr ""
+
+#: part/models.py:848
+msgid "Internal Part Number"
+msgstr ""
+
+#: part/models.py:854
+msgid "Part revision or version number"
+msgstr ""
+
+#: part/models.py:855 part/templates/part/part_base.html:281
+#: report/models.py:196 templates/js/translated/part.js:622
+msgid "Revision"
+msgstr ""
+
+#: part/models.py:877
+msgid "Where is this item normally stored?"
+msgstr ""
+
+#: part/models.py:924 part/templates/part/part_base.html:347
+msgid "Default Supplier"
+msgstr ""
+
+#: part/models.py:925
+msgid "Default supplier part"
+msgstr ""
+
+#: part/models.py:932
+msgid "Default Expiry"
+msgstr ""
+
+#: part/models.py:933
+msgid "Expiry time (in days) for stock items of this part"
+msgstr ""
+
+#: part/models.py:938 part/templates/part/part_base.html:196
+msgid "Minimum Stock"
+msgstr ""
+
+#: part/models.py:939
+msgid "Minimum allowed stock level"
+msgstr ""
+
+#: part/models.py:946
+msgid "Stock keeping units for this part"
+msgstr ""
+
+#: part/models.py:952
+msgid "Can this part be built from other parts?"
+msgstr ""
+
+#: part/models.py:958
+msgid "Can this part be used to build other parts?"
+msgstr ""
+
+#: part/models.py:964
+msgid "Does this part have tracking for unique items?"
+msgstr ""
+
+#: part/models.py:969
+msgid "Can this part be purchased from external suppliers?"
+msgstr ""
+
+#: part/models.py:974
+msgid "Can this part be sold to customers?"
+msgstr ""
+
+#: part/models.py:979
+msgid "Is this part active?"
+msgstr ""
+
+#: part/models.py:984
+msgid "Is this a virtual part, such as a software product or license?"
+msgstr ""
+
+#: part/models.py:989
+msgid "Part notes - supports Markdown formatting"
+msgstr ""
+
+#: part/models.py:992
+msgid "BOM checksum"
+msgstr ""
+
+#: part/models.py:992
+msgid "Stored BOM checksum"
+msgstr ""
+
+#: part/models.py:995
+msgid "BOM checked by"
+msgstr ""
+
+#: part/models.py:997
+msgid "BOM checked date"
+msgstr ""
+
+#: part/models.py:1001
+msgid "Creation User"
+msgstr ""
+
+#: part/models.py:1819
+msgid "Sell multiple"
+msgstr ""
+
+#: part/models.py:2369
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2386
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2406 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1312
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2407
+msgid "Enter a name for the test"
+msgstr ""
+
+#: part/models.py:2412
+msgid "Test Description"
+msgstr ""
+
+#: part/models.py:2413
+msgid "Enter description for this test"
+msgstr ""
+
+#: part/models.py:2418 templates/js/translated/part.js:1723
+#: templates/js/translated/table_filters.js:276
+msgid "Required"
+msgstr ""
+
+#: part/models.py:2419
+msgid "Is this test required to pass?"
+msgstr ""
+
+#: part/models.py:2424 templates/js/translated/part.js:1731
+msgid "Requires Value"
+msgstr ""
+
+#: part/models.py:2425
+msgid "Does this test require a value when adding a test result?"
+msgstr ""
+
+#: part/models.py:2430 templates/js/translated/part.js:1738
+msgid "Requires Attachment"
+msgstr ""
+
+#: part/models.py:2431
+msgid "Does this test require a file attachment when adding a test result?"
+msgstr ""
+
+#: part/models.py:2442
+#, python-brace-format
+msgid "Illegal character in template name ({c})"
+msgstr ""
+
+#: part/models.py:2478
+msgid "Parameter template name must be unique"
+msgstr ""
+
+#: part/models.py:2486
+msgid "Parameter Name"
+msgstr ""
+
+#: part/models.py:2493
+msgid "Parameter Units"
+msgstr ""
+
+#: part/models.py:2523
+msgid "Parent Part"
+msgstr ""
+
+#: part/models.py:2525 part/models.py:2574 part/models.py:2575
+#: templates/InvenTree/settings/settings.html:218
+msgid "Parameter Template"
+msgstr ""
+
+#: part/models.py:2527
+msgid "Data"
+msgstr ""
+
+#: part/models.py:2527
+msgid "Parameter Value"
+msgstr ""
+
+#: part/models.py:2579 templates/InvenTree/settings/settings.html:227
+msgid "Default Value"
+msgstr ""
+
+#: part/models.py:2580
+msgid "Default Parameter Value"
+msgstr ""
+
+#: part/models.py:2614
+msgid "Part ID or part name"
+msgstr ""
+
+#: part/models.py:2617 templates/js/translated/model_renderers.js:182
+msgid "Part ID"
+msgstr ""
+
+#: part/models.py:2618
+msgid "Unique part ID value"
+msgstr ""
+
+#: part/models.py:2621
+msgid "Part Name"
+msgstr ""
+
+#: part/models.py:2625
+msgid "Part IPN"
+msgstr ""
+
+#: part/models.py:2626
+msgid "Part IPN value"
+msgstr ""
+
+#: part/models.py:2629
+msgid "Level"
+msgstr ""
+
+#: part/models.py:2630
+msgid "BOM level"
+msgstr ""
+
+#: part/models.py:2690
+msgid "Select parent part"
+msgstr ""
+
+#: part/models.py:2698
+msgid "Sub part"
+msgstr ""
+
+#: part/models.py:2699
+msgid "Select part to be used in BOM"
+msgstr ""
+
+#: part/models.py:2705
+msgid "BOM quantity for this BOM item"
+msgstr ""
+
+#: part/models.py:2707 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: templates/js/translated/table_filters.js:92
+msgid "Optional"
+msgstr ""
+
+#: part/models.py:2707
+msgid "This BOM item is optional"
+msgstr ""
+
+#: part/models.py:2710 part/templates/part/upload_bom.html:55
+msgid "Overage"
+msgstr ""
+
+#: part/models.py:2711
+msgid "Estimated build wastage quantity (absolute or percentage)"
+msgstr ""
+
+#: part/models.py:2714
+msgid "BOM item reference"
+msgstr ""
+
+#: part/models.py:2717
+msgid "BOM item notes"
+msgstr ""
+
+#: part/models.py:2719
+msgid "Checksum"
+msgstr ""
+
+#: part/models.py:2719
+msgid "BOM line checksum"
+msgstr ""
+
+#: part/models.py:2723 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:882
+#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
+msgid "Inherited"
+msgstr ""
+
+#: part/models.py:2724
+msgid "This BOM item is inherited by BOMs for variant parts"
+msgstr ""
+
+#: part/models.py:2729 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:874
+msgid "Allow Variants"
+msgstr ""
+
+#: part/models.py:2730
+msgid "Stock items for variant parts can be used for this BOM item"
+msgstr ""
+
+#: part/models.py:2815 stock/models.py:357
+msgid "Quantity must be integer value for trackable parts"
+msgstr ""
+
+#: part/models.py:2824 part/models.py:2826
+msgid "Sub part must be specified"
+msgstr ""
+
+#: part/models.py:2955
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2977
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2989
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2997
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:3008
+msgid "Part 1"
+msgstr ""
+
+#: part/models.py:3012
+msgid "Part 2"
+msgstr ""
+
+#: part/models.py:3012
+msgid "Select Related Part"
+msgstr ""
+
+#: part/models.py:3044
+msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
+msgstr ""
+
+#: part/serializers.py:667
+msgid "Select part to copy BOM from"
+msgstr ""
+
+#: part/serializers.py:678
+msgid "Remove Existing Data"
+msgstr ""
+
+#: part/serializers.py:679
+msgid "Remove existing BOM items before copying"
+msgstr ""
+
+#: part/serializers.py:684
+msgid "Include Inherited"
+msgstr ""
+
+#: part/serializers.py:685
+msgid "Include BOM items which are inherited from templated parts"
+msgstr ""
+
+#: part/serializers.py:690
+msgid "Skip Invalid Rows"
+msgstr ""
+
+#: part/serializers.py:691
+msgid "Enable this option to skip invalid rows"
+msgstr ""
+
+#: part/serializers.py:734
+msgid "Clear Existing BOM"
+msgstr ""
+
+#: part/serializers.py:735
+msgid "Delete existing BOM items before uploading"
+msgstr ""
+
+#: part/serializers.py:762
+msgid "No part column specified"
+msgstr ""
+
+#: part/serializers.py:805
+msgid "Multiple matching parts found"
+msgstr ""
+
+#: part/serializers.py:808
+msgid "No matching part found"
+msgstr ""
+
+#: part/serializers.py:811
+msgid "Part is not designated as a component"
+msgstr ""
+
+#: part/serializers.py:820
+msgid "Quantity not provided"
+msgstr ""
+
+#: part/serializers.py:828
+msgid "Invalid quantity"
+msgstr ""
+
+#: part/serializers.py:847
+msgid "At least one BOM item is required"
+msgstr ""
+
+#: part/tasks.py:58
+msgid "Low stock notification"
+msgstr ""
+
+#: part/templates/part/bom.html:6
+msgid "You do not have permission to edit the BOM."
+msgstr ""
+
+#: part/templates/part/bom.html:15
+#, python-format
+msgid "The BOM for %(part)s has changed, and must be validated.
"
+msgstr ""
+
+#: part/templates/part/bom.html:17
+#, python-format
+msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
+msgstr ""
+
+#: part/templates/part/bom.html:21
+#, python-format
+msgid "The BOM for %(part)s has not been validated."
+msgstr ""
+
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:273
+msgid "BOM actions"
+msgstr ""
+
+#: part/templates/part/bom.html:34
+msgid "Delete Items"
+msgstr ""
+
+#: part/templates/part/category.html:28 part/templates/part/category.html:32
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:36
+msgid "Subscribe to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:42
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:47
+msgid "Edit category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:52
+msgid "Delete category"
+msgstr ""
+
+#: part/templates/part/category.html:53
+msgid "Delete Category"
+msgstr ""
+
+#: part/templates/part/category.html:61
+msgid "Create new part category"
+msgstr ""
+
+#: part/templates/part/category.html:62
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:80 part/templates/part/category.html:93
+msgid "Category Path"
+msgstr ""
+
+#: part/templates/part/category.html:94
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category_sidebar.html:7
+msgid "Subcategories"
+msgstr ""
+
+#: part/templates/part/category.html:119
+msgid "Parts (Including subcategories)"
+msgstr ""
+
+#: part/templates/part/category.html:156
+msgid "Export Part Data"
+msgstr ""
+
+#: part/templates/part/category.html:157 part/templates/part/category.html:181
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:160
+msgid "Create new part"
+msgstr ""
+
+#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+msgid "New Part"
+msgstr ""
+
+#: part/templates/part/category.html:175
+msgid "Set category"
+msgstr ""
+
+#: part/templates/part/category.html:175
+msgid "Set Category"
+msgstr ""
+
+#: part/templates/part/category.html:179
+msgid "Print Labels"
+msgstr ""
+
+#: part/templates/part/category.html:181
+msgid "Export Data"
+msgstr ""
+
+#: part/templates/part/category.html:195
+msgid "Part Parameters"
+msgstr ""
+
+#: part/templates/part/category.html:288
+msgid "Create Part Category"
+msgstr ""
+
+#: part/templates/part/category.html:315
+msgid "Create Part"
+msgstr ""
+
+#: part/templates/part/category_delete.html:5
+msgid "Are you sure you want to delete category"
+msgstr ""
+
+#: part/templates/part/category_delete.html:8
+#, python-format
+msgid "This category contains %(count)s child categories"
+msgstr ""
+
+#: part/templates/part/category_delete.html:9
+msgid "If this category is deleted, these child categories will be moved to the"
+msgstr ""
+
+#: part/templates/part/category_delete.html:11
+msgid "category"
+msgstr ""
+
+#: part/templates/part/category_delete.html:13
+msgid "top level Parts category"
+msgstr ""
+
+#: part/templates/part/category_delete.html:25
+#, python-format
+msgid "This category contains %(count)s parts"
+msgstr ""
+
+#: part/templates/part/category_delete.html:27
+#, python-format
+msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
+msgstr ""
+
+#: part/templates/part/category_delete.html:29
+msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
+msgstr ""
+
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
+msgid "Duplicate Part"
+msgstr ""
+
+#: part/templates/part/copy_part.html:10
+#, python-format
+msgid "Make a copy of part '%(full_name)s'."
+msgstr ""
+
+#: part/templates/part/copy_part.html:14
+#: part/templates/part/create_part.html:11
+msgid "Possible Matching Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:15
+#: part/templates/part/create_part.html:12
+msgid "The new part may be a duplicate of these existing parts"
+msgstr ""
+
+#: part/templates/part/create_part.html:17
+#, python-format
+msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
+msgstr ""
+
+#: part/templates/part/detail.html:21
+msgid "Part Stock"
+msgstr ""
+
+#: part/templates/part/detail.html:33
+#, python-format
+msgid "Showing stock for all variants of %(full_name)s"
+msgstr ""
+
+#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
+msgid "Part Test Templates"
+msgstr ""
+
+#: part/templates/part/detail.html:65
+msgid "Add Test Template"
+msgstr ""
+
+#: part/templates/part/detail.html:122
+msgid "Sales Order Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:162
+msgid "Part Variants"
+msgstr ""
+
+#: part/templates/part/detail.html:166
+msgid "Create new variant"
+msgstr ""
+
+#: part/templates/part/detail.html:167
+msgid "New Variant"
+msgstr ""
+
+#: part/templates/part/detail.html:194
+msgid "Add new parameter"
+msgstr ""
+
+#: part/templates/part/detail.html:231 part/templates/part/part_sidebar.html:52
+msgid "Related Parts"
+msgstr ""
+
+#: part/templates/part/detail.html:235 part/templates/part/detail.html:236
+msgid "Add Related"
+msgstr ""
+
+#: part/templates/part/detail.html:256 part/templates/part/part_sidebar.html:18
+msgid "Bill of Materials"
+msgstr ""
+
+#: part/templates/part/detail.html:261
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:265 templates/js/translated/bom.js:283
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:267
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:277
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:281
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:286
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:287
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:300
+msgid "Assemblies"
+msgstr ""
+
+#: part/templates/part/detail.html:317
+msgid "Part Builds"
+msgstr ""
+
+#: part/templates/part/detail.html:342
+msgid "Build Order Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:352
+msgid "Part Suppliers"
+msgstr ""
+
+#: part/templates/part/detail.html:380
+msgid "Part Manufacturers"
+msgstr ""
+
+#: part/templates/part/detail.html:396
+msgid "Delete manufacturer parts"
+msgstr ""
+
+#: part/templates/part/detail.html:578
+msgid "Delete selected BOM items?"
+msgstr ""
+
+#: part/templates/part/detail.html:579
+msgid "All selected BOM items will be deleted"
+msgstr ""
+
+#: part/templates/part/detail.html:628
+msgid "Create BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:685
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:693
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:788
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/detail.html:845
+msgid "Edit Part Notes"
+msgstr ""
+
+#: part/templates/part/detail.html:958
+#, python-format
+msgid "Purchase Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:970
+#, python-format
+msgid "Unit Price-Cost Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:982
+#, python-format
+msgid "Supplier Unit Cost - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:1071
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: templates/patterns/wizard/match_fields.html:8
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: templates/patterns/wizard/match_fields.html:19
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: templates/patterns/wizard/match_fields.html:34
+msgid "File Fields"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: templates/patterns/wizard/match_fields.html:41
+msgid "Remove column"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: templates/patterns/wizard/match_fields.html:59
+msgid "Duplicate selection"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: templates/patterns/wizard/upload.html:11
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:15
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:13
+msgid "Import Parts from File"
+msgstr ""
+
+#: part/templates/part/part_app_base.html:12
+msgid "Part List"
+msgstr ""
+
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
+#: part/templates/part/part_base.html:35
+msgid "Subscribe to notifications for this part"
+msgstr ""
+
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:35
+#: stock/templates/stock/location.html:33
+msgid "Barcode actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:39
+#: stock/templates/stock/location.html:35 templates/qr_button.html:1
+msgid "Show QR Code"
+msgstr ""
+
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:55
+#: stock/templates/stock/location.html:36
+msgid "Print Label"
+msgstr ""
+
+#: part/templates/part/part_base.html:51
+msgid "Show pricing information"
+msgstr ""
+
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:112
+#: stock/templates/stock/location.html:44
+msgid "Stock actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:63
+msgid "Count part stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:69
+msgid "Transfer part stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:84
+msgid "Part actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:87
+msgid "Duplicate part"
+msgstr ""
+
+#: part/templates/part/part_base.html:90
+msgid "Edit part"
+msgstr ""
+
+#: part/templates/part/part_base.html:93
+msgid "Delete part"
+msgstr ""
+
+#: part/templates/part/part_base.html:112
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:116
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:120
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:124
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:128
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:132
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:138
+#: part/templates/part/part_base.html:146
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:139
+#: templates/js/translated/company.js:508
+#: templates/js/translated/company.js:765
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:156
+#: part/templates/part/part_base.html:579
+msgid "Show Part Details"
+msgstr ""
+
+#: part/templates/part/part_base.html:173
+#, python-format
+msgid "This part is a variant of %(link)s"
+msgstr ""
+
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
+msgid "In Stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
+msgid "Required for Build Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:217
+msgid "Required for Sales Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:224
+msgid "Allocated to Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+msgid "Can Build"
+msgstr ""
+
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
+msgid "Building"
+msgstr ""
+
+#: part/templates/part/part_base.html:295
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/part_base.html:324
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/part_base.html:328
+#: stock/templates/stock/item_base.html:168
+msgid "Search for serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:449 part/templates/part/prices.html:144
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:492
+msgid "No matching images found"
+msgstr ""
+
+#: part/templates/part/part_base.html:573
+msgid "Hide Part Details"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:100
+#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25
+#: part/templates/part/prices.html:52 part/templates/part/prices.html:103
+#: part/templates/part/prices.html:120
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:104
+#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32
+#: part/templates/part/prices.html:59 part/templates/part/prices.html:108
+#: part/templates/part/prices.html:125
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
+#: templates/js/translated/bom.js:857
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49
+#: part/templates/part/prices.html:243
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69
+msgid "Unit Purchase Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76
+msgid "Total Purchase Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:128
+#: part/templates/part/prices.html:134
+msgid "No pricing information is available for this part."
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:12
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:26
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:34
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:48
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
+msgid "Select from existing images"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid ""
+"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
+#, python-format
+msgid "Are you sure you want to delete part '%(full_name)s'?"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:22
+#, python-format
+msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:32
+#, python-format
+msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:43
+#, python-format
+msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:54
+#, python-format
+msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:65
+#, python-format
+msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
+msgstr ""
+
+#: part/templates/part/prices.html:16
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:22
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:23
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:50
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:117
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:118
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:140
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:156 part/templates/part/prices.html:177
+#: part/templates/part/prices.html:201 part/templates/part/prices.html:231
+#: part/templates/part/prices.html:257 part/templates/part/prices.html:285
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:181
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:190
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:200
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:215 part/views.py:1390
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:230
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:256
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:296
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/set_category.html:9
+msgid "Set category for the following parts"
+msgstr ""
+
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
+msgid "No Stock"
+msgstr ""
+
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
+msgid "Low Stock"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:13
+msgid "Upload Bill of Materials"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:19
+msgid "BOM upload requirements"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:23
+#: part/templates/part/upload_bom.html:90
+msgid "Upload BOM File"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:29
+msgid "Submit BOM Data"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:37
+msgid "Requirements for BOM upload"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:39
+msgid "The BOM file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/upload_bom.html:39
+msgid "BOM Upload Template"
+msgstr ""
+
+#: part/templates/part/upload_bom.html:40
+msgid "Each part must already exist in the database"
+msgstr ""
+
+#: part/templates/part/variant_part.html:9
+msgid "Create new part variant"
+msgstr ""
+
+#: part/templates/part/variant_part.html:10
+#, python-format
+msgid "Create a new variant of template '%(full_name)s'."
+msgstr ""
+
+#: part/templatetags/inventree_extras.py:125
+msgid "Unknown database"
+msgstr ""
+
+#: part/views.py:90
+msgid "Set Part Category"
+msgstr ""
+
+#: part/views.py:140
+#, python-brace-format
+msgid "Set category for {n} parts"
+msgstr ""
+
+#: part/views.py:212
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:509
+msgid "None"
+msgstr ""
+
+#: part/views.py:568
+msgid "Part QR Code"
+msgstr ""
+
+#: part/views.py:670
+msgid "Select Part Image"
+msgstr ""
+
+#: part/views.py:696
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:699
+msgid "Part image not found"
+msgstr ""
+
+#: part/views.py:850
+msgid "Confirm Part Deletion"
+msgstr ""
+
+#: part/views.py:857
+msgid "Part was deleted"
+msgstr ""
+
+#: part/views.py:866
+msgid "Part Pricing"
+msgstr ""
+
+#: part/views.py:1015
+msgid "Create Part Parameter Template"
+msgstr ""
+
+#: part/views.py:1025
+msgid "Edit Part Parameter Template"
+msgstr ""
+
+#: part/views.py:1032
+msgid "Delete Part Parameter Template"
+msgstr ""
+
+#: part/views.py:1091 templates/js/translated/part.js:315
+msgid "Edit Part Category"
+msgstr ""
+
+#: part/views.py:1129
+msgid "Delete Part Category"
+msgstr ""
+
+#: part/views.py:1135
+msgid "Part category was deleted"
+msgstr ""
+
+#: part/views.py:1144
+msgid "Create Category Parameter Template"
+msgstr ""
+
+#: part/views.py:1245
+msgid "Edit Category Parameter Template"
+msgstr ""
+
+#: part/views.py:1301
+msgid "Delete Category Parameter Template"
+msgstr ""
+
+#: part/views.py:1323
+msgid "Added new price break"
+msgstr ""
+
+#: part/views.py:1399
+msgid "Edit Internal Price Break"
+msgstr ""
+
+#: part/views.py:1407
+msgid "Delete Internal Price Break"
+msgstr ""
+
+#: plugin/integration.py:138
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:152
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:27
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:33
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:41
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:47
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/models.py:199
+msgid "Plugin"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:42
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:43
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:48
+msgid "API Key"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:49
+msgid "Key required for accessing external API"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:52
+msgid "Numerical"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:53
+msgid "A numerical setting"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:58
+msgid "Choice Setting"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:59
+msgid "A setting with multiple choices"
+msgstr ""
+
+#: plugin/serializers.py:50
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:51
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:60
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:61
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:76
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:78
+msgid "Either packagename of URL must be provided"
+msgstr ""
+
+#: report/api.py:235 report/api.py:282
+#, python-brace-format
+msgid "Template file '{template}' is missing or does not exist"
+msgstr ""
+
+#: report/models.py:178
+msgid "Template name"
+msgstr ""
+
+#: report/models.py:184
+msgid "Report template file"
+msgstr ""
+
+#: report/models.py:191
+msgid "Report template description"
+msgstr ""
+
+#: report/models.py:197
+msgid "Report revision number (auto-increments)"
+msgstr ""
+
+#: report/models.py:288
+msgid "Pattern for generating report filenames"
+msgstr ""
+
+#: report/models.py:295
+msgid "Report template is enabled"
+msgstr ""
+
+#: report/models.py:319
+msgid "StockItem query filters (comma-separated list of key=value pairs)"
+msgstr ""
+
+#: report/models.py:327
+msgid "Include Installed Tests"
+msgstr ""
+
+#: report/models.py:328
+msgid "Include test results for stock items installed inside assembled item"
+msgstr ""
+
+#: report/models.py:378
+msgid "Build Filters"
+msgstr ""
+
+#: report/models.py:379
+msgid "Build query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: report/models.py:421
+msgid "Part Filters"
+msgstr ""
+
+#: report/models.py:422
+msgid "Part query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: report/models.py:456
+msgid "Purchase order query filters"
+msgstr ""
+
+#: report/models.py:494
+msgid "Sales order query filters"
+msgstr ""
+
+#: report/models.py:548
+msgid "Snippet"
+msgstr ""
+
+#: report/models.py:549
+msgid "Report snippet file"
+msgstr ""
+
+#: report/models.py:553
+msgid "Snippet file description"
+msgstr ""
+
+#: report/models.py:588
+msgid "Asset"
+msgstr ""
+
+#: report/models.py:589
+msgid "Report asset file"
+msgstr ""
+
+#: report/models.py:592
+msgid "Asset file description"
+msgstr ""
+
+#: report/templates/report/inventree_build_order_base.html:147
+msgid "Required For"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:21
+msgid "Stock Item Test Report"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:79
+#: stock/models.py:519 stock/templates/stock/item_base.html:158
+#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
+#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:424
+msgid "Serial Number"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:88
+msgid "Test Results"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:93
+#: stock/models.py:1976
+msgid "Test"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:94
+#: stock/models.py:1982
+msgid "Result"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2649
+msgid "Date"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:108
+msgid "Pass"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:110
+msgid "Fail"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:587 templates/js/translated/stock.js:757
+#: templates/js/translated/stock.js:2909
+msgid "Serial"
+msgstr ""
+
+#: stock/api.py:501
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/api.py:508
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/api.py:533
+msgid "Serial numbers cannot be supplied for a non-trackable part"
+msgstr ""
+
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:576
+#: stock/templates/stock/item_base.html:195
+#: templates/js/translated/stock.js:1833
+msgid "Expiry Date"
+msgstr ""
+
+#: stock/forms.py:75 stock/forms.py:199
+msgid "Expiration date for this stock item"
+msgstr ""
+
+#: stock/forms.py:78
+msgid "Enter unique serial numbers (or leave blank)"
+msgstr ""
+
+#: stock/forms.py:133
+msgid "Destination for serialized stock (by default, will remain in current location)"
+msgstr ""
+
+#: stock/forms.py:135
+msgid "Serial numbers"
+msgstr ""
+
+#: stock/forms.py:135
+msgid "Unique serial numbers (must match quantity)"
+msgstr ""
+
+#: stock/forms.py:137 stock/forms.py:171
+msgid "Add transaction note (optional)"
+msgstr ""
+
+#: stock/forms.py:169
+msgid "Destination location for uninstalled items"
+msgstr ""
+
+#: stock/forms.py:173
+msgid "Confirm uninstall"
+msgstr ""
+
+#: stock/forms.py:173
+msgid "Confirm removal of installed stock items"
+msgstr ""
+
+#: stock/models.py:62 stock/models.py:613
+#: stock/templates/stock/item_base.html:418
+msgid "Owner"
+msgstr ""
+
+#: stock/models.py:63 stock/models.py:614
+msgid "Select Owner"
+msgstr ""
+
+#: stock/models.py:338
+msgid "StockItem with this serial number already exists"
+msgstr ""
+
+#: stock/models.py:374
+#, python-brace-format
+msgid "Part type ('{pf}') must be {pe}"
+msgstr ""
+
+#: stock/models.py:384 stock/models.py:393
+msgid "Quantity must be 1 for item with a serial number"
+msgstr ""
+
+#: stock/models.py:385
+msgid "Serial number cannot be set if quantity greater than 1"
+msgstr ""
+
+#: stock/models.py:407
+msgid "Item cannot belong to itself"
+msgstr ""
+
+#: stock/models.py:413
+msgid "Item must have a build reference if is_building=True"
+msgstr ""
+
+#: stock/models.py:420
+msgid "Build reference does not point to the same part object"
+msgstr ""
+
+#: stock/models.py:463
+msgid "Parent Stock Item"
+msgstr ""
+
+#: stock/models.py:472
+msgid "Base part"
+msgstr ""
+
+#: stock/models.py:480
+msgid "Select a matching supplier part for this stock item"
+msgstr ""
+
+#: stock/models.py:486 stock/templates/stock/location.html:16
+#: stock/templates/stock/stock_app_base.html:8
+msgid "Stock Location"
+msgstr ""
+
+#: stock/models.py:489
+msgid "Where is this stock item located?"
+msgstr ""
+
+#: stock/models.py:496
+msgid "Packaging this stock item is stored in"
+msgstr ""
+
+#: stock/models.py:502 stock/templates/stock/item_base.html:300
+msgid "Installed In"
+msgstr ""
+
+#: stock/models.py:505
+msgid "Is this item installed in another item?"
+msgstr ""
+
+#: stock/models.py:521
+msgid "Serial number for this item"
+msgstr ""
+
+#: stock/models.py:535
+msgid "Batch code for this stock item"
+msgstr ""
+
+#: stock/models.py:539
+msgid "Stock Quantity"
+msgstr ""
+
+#: stock/models.py:548
+msgid "Source Build"
+msgstr ""
+
+#: stock/models.py:550
+msgid "Build for this stock item"
+msgstr ""
+
+#: stock/models.py:561
+msgid "Source Purchase Order"
+msgstr ""
+
+#: stock/models.py:564
+msgid "Purchase order for this stock item"
+msgstr ""
+
+#: stock/models.py:570
+msgid "Destination Sales Order"
+msgstr ""
+
+#: stock/models.py:577
+msgid "Expiry date for stock item. Stock will be considered expired after this date"
+msgstr ""
+
+#: stock/models.py:590
+msgid "Delete on deplete"
+msgstr ""
+
+#: stock/models.py:590
+msgid "Delete this Stock Item when stock is depleted"
+msgstr ""
+
+#: stock/models.py:600 stock/templates/stock/item.html:128
+msgid "Stock Item Notes"
+msgstr ""
+
+#: stock/models.py:609
+msgid "Single unit purchase price at time of purchase"
+msgstr ""
+
+#: stock/models.py:1096
+msgid "Part is not set as trackable"
+msgstr ""
+
+#: stock/models.py:1102
+msgid "Quantity must be integer"
+msgstr ""
+
+#: stock/models.py:1108
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({n})"
+msgstr ""
+
+#: stock/models.py:1111
+msgid "Serial numbers must be a list of integers"
+msgstr ""
+
+#: stock/models.py:1114
+msgid "Quantity does not match serial numbers"
+msgstr ""
+
+#: stock/models.py:1121
+#, python-brace-format
+msgid "Serial numbers already exist: {exists}"
+msgstr ""
+
+#: stock/models.py:1192
+msgid "Stock item has been assigned to a sales order"
+msgstr ""
+
+#: stock/models.py:1195
+msgid "Stock item is installed in another item"
+msgstr ""
+
+#: stock/models.py:1198
+msgid "Stock item contains other items"
+msgstr ""
+
+#: stock/models.py:1201
+msgid "Stock item has been assigned to a customer"
+msgstr ""
+
+#: stock/models.py:1204
+msgid "Stock item is currently in production"
+msgstr ""
+
+#: stock/models.py:1207
+msgid "Serialized stock cannot be merged"
+msgstr ""
+
+#: stock/models.py:1214 stock/serializers.py:832
+msgid "Duplicate stock items"
+msgstr ""
+
+#: stock/models.py:1218
+msgid "Stock items must refer to the same part"
+msgstr ""
+
+#: stock/models.py:1222
+msgid "Stock items must refer to the same supplier part"
+msgstr ""
+
+#: stock/models.py:1226
+msgid "Stock status codes must match"
+msgstr ""
+
+#: stock/models.py:1397
+msgid "StockItem cannot be moved as it is not in stock"
+msgstr ""
+
+#: stock/models.py:1896
+msgid "Entry notes"
+msgstr ""
+
+#: stock/models.py:1953
+msgid "Value must be provided for this test"
+msgstr ""
+
+#: stock/models.py:1959
+msgid "Attachment must be uploaded for this test"
+msgstr ""
+
+#: stock/models.py:1977
+msgid "Test name"
+msgstr ""
+
+#: stock/models.py:1983
+msgid "Test result"
+msgstr ""
+
+#: stock/models.py:1989
+msgid "Test output value"
+msgstr ""
+
+#: stock/models.py:1996
+msgid "Test result attachment"
+msgstr ""
+
+#: stock/models.py:2002
+msgid "Test notes"
+msgstr ""
+
+#: stock/serializers.py:173
+msgid "Purchase price of this stock item"
+msgstr ""
+
+#: stock/serializers.py:180
+msgid "Purchase currency of this stock item"
+msgstr ""
+
+#: stock/serializers.py:294
+msgid "Enter number of stock items to serialize"
+msgstr ""
+
+#: stock/serializers.py:309
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:315
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030
+msgid "Destination stock location"
+msgstr ""
+
+#: stock/serializers.py:333
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:346
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:363 stock/views.py:1108
+msgid "Serial numbers already exist"
+msgstr ""
+
+#: stock/serializers.py:405
+msgid "Select stock item to install"
+msgstr ""
+
+#: stock/serializers.py:421
+msgid "Stock item is unavailable"
+msgstr ""
+
+#: stock/serializers.py:428
+msgid "Selected part is not in the Bill of Materials"
+msgstr ""
+
+#: stock/serializers.py:646
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:650
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:654
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:684
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:690
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:698
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:708 stock/serializers.py:938
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:796
+msgid "Stock merging notes"
+msgstr ""
+
+#: stock/serializers.py:801
+msgid "Allow mismatched suppliers"
+msgstr ""
+
+#: stock/serializers.py:802
+msgid "Allow stock items with different supplier parts to be merged"
+msgstr ""
+
+#: stock/serializers.py:807
+msgid "Allow mismatched status"
+msgstr ""
+
+#: stock/serializers.py:808
+msgid "Allow stock items with different status codes to be merged"
+msgstr ""
+
+#: stock/serializers.py:818
+msgid "At least two stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:900
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:928
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
+msgid "Stock Tracking Information"
+msgstr ""
+
+#: stock/templates/stock/item.html:29
+msgid "New Entry"
+msgstr ""
+
+#: stock/templates/stock/item.html:48
+msgid "Stock Item Allocations"
+msgstr ""
+
+#: stock/templates/stock/item.html:64
+msgid "Child Stock Items"
+msgstr ""
+
+#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:93
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:150
+msgid "Installed Stock Items"
+msgstr ""
+
+#: stock/templates/stock/item.html:154 templates/js/translated/stock.js:3018
+msgid "Install Stock Item"
+msgstr ""
+
+#: stock/templates/stock/item.html:304 templates/js/translated/stock.js:1480
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:42
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
+msgid "Unlink Barcode"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:44
+msgid "Link Barcode"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+msgid "Scan to Location"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:53
+msgid "Printing actions"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:72
+msgid "Stock adjustment actions"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:76
+#: stock/templates/stock/location.html:51 templates/stock_table.html:50
+msgid "Count stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:79 templates/stock_table.html:48
+msgid "Add stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:82 templates/stock_table.html:49
+msgid "Remove stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:85
+msgid "Serialize stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:89
+#: stock/templates/stock/location.html:57
+msgid "Transfer stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:92 templates/stock_table.html:54
+msgid "Assign to customer"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:95
+msgid "Return to stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:98
+msgid "Uninstall stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:98
+msgid "Uninstall"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:102
+msgid "Install stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:102
+msgid "Install"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:117
+msgid "Convert to variant"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:120
+msgid "Duplicate stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:122
+msgid "Edit stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:125
+msgid "Delete stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:163
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:163
+msgid "Navigate to previous serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:172
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:172
+msgid "Navigate to next serial number"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:199
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:199
+#: templates/js/translated/table_filters.js:252
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:201
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:201
+#: templates/js/translated/table_filters.js:258
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:208
+#: templates/js/translated/stock.js:1846
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:213
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:217
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:235
+msgid "You are not in the list of owners of this item. This stock item cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:242
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:243
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:256
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:264
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:272
+msgid "This stock item is allocated to Build Order"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:278
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:319
+#: templates/js/translated/build.js:1317
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:326
+msgid "Barcode Identifier"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:368
+msgid "Parent Item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:386
+msgid "No manufacturer set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:411
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:492
+msgid "Edit Stock Status"
+msgstr ""
+
+#: stock/templates/stock/item_delete.html:9
+msgid "Are you sure you want to delete this stock item?"
+msgstr ""
+
+#: stock/templates/stock/item_delete.html:12
+#, python-format
+msgid "This will remove %(qty)s units of %(full_name)s from stock."
+msgstr ""
+
+#: stock/templates/stock/item_serialize.html:5
+msgid "Create serialized items from this stock item."
+msgstr ""
+
+#: stock/templates/stock/item_serialize.html:7
+msgid "Select quantity to serialize, and unique serial numbers."
+msgstr ""
+
+#: stock/templates/stock/location.html:37
+msgid "Check-in Items"
+msgstr ""
+
+#: stock/templates/stock/location.html:65
+msgid "Location actions"
+msgstr ""
+
+#: stock/templates/stock/location.html:67
+msgid "Edit location"
+msgstr ""
+
+#: stock/templates/stock/location.html:69
+msgid "Delete location"
+msgstr ""
+
+#: stock/templates/stock/location.html:79
+msgid "Create new stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:80
+msgid "New Location"
+msgstr ""
+
+#: stock/templates/stock/location.html:99
+#: stock/templates/stock/location.html:105
+msgid "Location Path"
+msgstr ""
+
+#: stock/templates/stock/location.html:106
+msgid "Top level stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:119
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:179
+#: stock/templates/stock/location_sidebar.html:5
+msgid "Sublocations"
+msgstr ""
+
+#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
+#: templates/stats.html:109 users/models.py:42
+msgid "Stock Locations"
+msgstr ""
+
+#: stock/templates/stock/location.html:186 templates/stock_table.html:30
+msgid "Printing Actions"
+msgstr ""
+
+#: stock/templates/stock/location.html:190 templates/stock_table.html:34
+msgid "Print labels"
+msgstr ""
+
+#: stock/templates/stock/location_delete.html:7
+msgid "Are you sure you want to delete this stock location?"
+msgstr ""
+
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:20
+msgid "Child Items"
+msgstr ""
+
+#: stock/templates/stock/stock_uninstall.html:8
+msgid "The following stock items will be uninstalled"
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:730
+msgid "Convert Stock Item"
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:8
+#, python-format
+msgid "This stock item is current an instance of %(part)s"
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:9
+msgid "It can be converted to one of the part variants listed below."
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:14
+msgid "This action cannot be easily undone"
+msgstr ""
+
+#: stock/templates/stock/tracking_delete.html:6
+msgid "Are you sure you want to delete this stock tracking entry?"
+msgstr ""
+
+#: stock/views.py:162 templates/js/translated/stock.js:140
+msgid "Edit Stock Location"
+msgstr ""
+
+#: stock/views.py:269 stock/views.py:709 stock/views.py:835 stock/views.py:1117
+msgid "Owner is required (ownership control is enabled)"
+msgstr ""
+
+#: stock/views.py:284
+msgid "Stock Location QR code"
+msgstr ""
+
+#: stock/views.py:303
+msgid "Return to Stock"
+msgstr ""
+
+#: stock/views.py:312
+msgid "Specify a valid location"
+msgstr ""
+
+#: stock/views.py:323
+msgid "Stock item returned from customer"
+msgstr ""
+
+#: stock/views.py:334
+msgid "Delete All Test Data"
+msgstr ""
+
+#: stock/views.py:351
+msgid "Confirm test data deletion"
+msgstr ""
+
+#: stock/views.py:352
+msgid "Check the confirmation box"
+msgstr ""
+
+#: stock/views.py:456
+msgid "Stock Item QR Code"
+msgstr ""
+
+#: stock/views.py:481
+msgid "Uninstall Stock Items"
+msgstr ""
+
+#: stock/views.py:578 templates/js/translated/stock.js:1075
+msgid "Confirm stock adjustment"
+msgstr ""
+
+#: stock/views.py:589
+msgid "Uninstalled stock items"
+msgstr ""
+
+#: stock/views.py:611 templates/js/translated/stock.js:333
+msgid "Edit Stock Item"
+msgstr ""
+
+#: stock/views.py:761
+msgid "Create new Stock Location"
+msgstr ""
+
+#: stock/views.py:862
+msgid "Create new Stock Item"
+msgstr ""
+
+#: stock/views.py:1004 templates/js/translated/stock.js:313
+msgid "Duplicate Stock Item"
+msgstr ""
+
+#: stock/views.py:1086
+msgid "Quantity cannot be negative"
+msgstr ""
+
+#: stock/views.py:1186
+msgid "Delete Stock Location"
+msgstr ""
+
+#: stock/views.py:1199
+msgid "Delete Stock Item"
+msgstr ""
+
+#: stock/views.py:1210
+msgid "Delete Stock Tracking Entry"
+msgstr ""
+
+#: stock/views.py:1217
+msgid "Edit Stock Tracking Entry"
+msgstr ""
+
+#: stock/views.py:1226
+msgid "Add Stock Tracking Entry"
+msgstr ""
+
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
+#: templates/404.html:5 templates/404.html:11
+msgid "Page Not Found"
+msgstr ""
+
+#: templates/404.html:14
+msgid "The requested page does not exist"
+msgstr ""
+
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
+#: templates/InvenTree/index.html:7
+msgid "Index"
+msgstr ""
+
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
+msgstr ""
+
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
+msgid "Latest Parts"
+msgstr ""
+
+#: templates/InvenTree/index.html:119
+msgid "BOM Waiting Validation"
+msgstr ""
+
+#: templates/InvenTree/index.html:145
+msgid "Recently Updated"
+msgstr ""
+
+#: templates/InvenTree/index.html:168
+msgid "Depleted Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:191
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:202
+msgid "Stale Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:224
+msgid "Build Orders In Progress"
+msgstr ""
+
+#: templates/InvenTree/index.html:235
+msgid "Overdue Build Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:255
+msgid "Outstanding Purchase Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:266
+msgid "Overdue Purchase Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:286
+msgid "Outstanding Sales Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:297
+msgid "Overdue Sales Orders"
+msgstr ""
+
+#: templates/InvenTree/search.html:8
+msgid "Search Results"
+msgstr ""
+
+#: templates/InvenTree/settings/barcode.html:8
+msgid "Barcode Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/build.html:8
+msgid "Build Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/category.html:7
+msgid "Category Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:8
+msgid "Currency Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:19
+msgid "Base Currency"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:24
+msgid "Exchange Rates"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:38
+msgid "Last Update"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:44
+msgid "Never"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:49
+msgid "Update Now"
+msgstr ""
+
+#: templates/InvenTree/settings/global.html:9
+msgid "Server Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:29
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/settings.html:5
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:5
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:8
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:23
+msgid "Open in new tab"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:7
+msgid "Part Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:44
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:62
+msgid "Part Parameter Templates"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:33
+msgid "Plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:38
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:51
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:92
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:115
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:124
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:126
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:71
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:77
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:86
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:88
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:94
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:100
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:104
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:108
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:112
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:117
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:122
+msgid "Sign Key"
+msgstr ""
+
+#: templates/InvenTree/settings/po.html:7
+msgid "Purchase Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/user_reports.html:9
+msgid "Report Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:33
+msgid "No value set"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:38
+msgid "Edit setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:115
+msgid "Edit Plugin Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:117
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:119
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:208
+msgid "No category parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:230
+#: templates/InvenTree/settings/settings.html:329
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:231
+#: templates/InvenTree/settings/settings.html:330
+msgid "Delete Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:309
+msgid "No part parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:313
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:6
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:9
+#: templates/InvenTree/settings/user.html:12
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:11
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:13
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:15
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:17
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:24
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:27
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:33
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:39
+msgid "Categories"
+msgstr ""
+
+#: templates/InvenTree/settings/so.html:7
+msgid "Sales Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/stock.html:7
+msgid "Stock Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:18
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
+msgid "Change Password"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
+msgid "Username"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:36
+msgid "First Name"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:40
+msgid "Last Name"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:75
+msgid "Verified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:77
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:79
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:85
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:86
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:149
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:95
+#: templates/InvenTree/settings/user.html:201
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:96
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:104
+msgid "Add Email Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:109
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:117
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:122
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:157
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:162
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:172
+msgid "Multifactor"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:177
+msgid "You have these factors available:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:187
+msgid "TOTP"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:193
+msgid "Static"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
+msgid "You currently do not have any factors set up."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:209
+msgid "Change factors"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:210
+msgid "Setup multifactor"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:212
+msgid "Remove multifactor"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, python-format
+msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
+msgstr ""
+
+#: templates/InvenTree/settings/user_homepage.html:9
+msgid "Home Page Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_labels.html:9
+msgid "Label Settings"
+msgstr ""
+
+#: templates/about.html:10
+msgid "InvenTree Version Information"
+msgstr ""
+
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620
+#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584
+#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986
+#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39
+#: templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
+msgid "InvenTree Version"
+msgstr ""
+
+#: templates/about.html:25
+msgid "Development Version"
+msgstr ""
+
+#: templates/about.html:28
+msgid "Up to Date"
+msgstr ""
+
+#: templates/about.html:30
+msgid "Update Available"
+msgstr ""
+
+#: templates/about.html:53
+msgid "InvenTree Documentation"
+msgstr ""
+
+#: templates/about.html:58
+msgid "API Version"
+msgstr ""
+
+#: templates/about.html:63
+msgid "Python Version"
+msgstr ""
+
+#: templates/about.html:68
+msgid "Django Version"
+msgstr ""
+
+#: templates/about.html:73
+msgid "View Code on GitHub"
+msgstr ""
+
+#: templates/about.html:78
+msgid "Credits"
+msgstr ""
+
+#: templates/about.html:83
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:88
+msgid "Submit Bug Report"
+msgstr ""
+
+#: templates/about.html:95 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:95
+msgid "copy version information"
+msgstr ""
+
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm Email Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
+msgstr ""
+
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:21
+#, python-format
+msgid ""
+"Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:25
+#, python-format
+msgid ""
+"If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:42
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:20
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:22
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/allauth_2fa/authenticate.html:5
+msgid "Two-Factor Authentication"
+msgstr ""
+
+#: templates/allauth_2fa/authenticate.html:12
+msgid "Authenticate"
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:6
+msgid "Two-Factor Authentication Backup Tokens"
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:17
+msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones."
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:20
+msgid "No tokens. Press the button below to generate some."
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:27
+msgid "Generate backup tokens"
+msgstr ""
+
+#: templates/allauth_2fa/backup_tokens.html:31
+#: templates/allauth_2fa/setup.html:40
+msgid "Back to settings"
+msgstr ""
+
+#: templates/allauth_2fa/remove.html:6
+msgid "Disable Two-Factor Authentication"
+msgstr ""
+
+#: templates/allauth_2fa/remove.html:9
+msgid "Are you sure?"
+msgstr ""
+
+#: templates/allauth_2fa/remove.html:14
+msgid "Disable Two-Factor"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:6
+msgid "Setup Two-Factor Authentication"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:10
+msgid "Step 1"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:14
+msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)."
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:23
+msgid "Step 2"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:27
+msgid "Input a token generated by the app:"
+msgstr ""
+
+#: templates/allauth_2fa/setup.html:35
+msgid "Verify"
+msgstr ""
+
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
+#: templates/base.html:97
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:100
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:100
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:1335
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
+#: templates/js/translated/build.js:2048
+#: templates/js/translated/table_filters.js:178
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
+#: templates/image_download.html:8
+msgid "Specify URL for downloading image"
+msgstr ""
+
+#: templates/image_download.html:11
+msgid "Must be a valid image URL"
+msgstr ""
+
+#: templates/image_download.html:12
+msgid "Remote server must be accessible"
+msgstr ""
+
+#: templates/image_download.html:13
+msgid "Remote image must not exceed maximum allowable file size"
+msgstr ""
+
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056
+msgid "No Response"
+msgstr ""
+
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/translated/api.js:192
+msgid "Error 400: Bad request"
+msgstr ""
+
+#: templates/js/translated/api.js:193
+msgid "API request returned error code 400"
+msgstr ""
+
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/translated/api.js:212
+msgid "Error 405: Method Not Allowed"
+msgstr ""
+
+#: templates/js/translated/api.js:213
+msgid "HTTP method not allowed at URL"
+msgstr ""
+
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/translated/api.js:221
+msgid "Unhandled Error Code"
+msgstr ""
+
+#: templates/js/translated/api.js:222
+msgid "Error code"
+msgstr ""
+
+#: templates/js/translated/attachment.js:78
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/translated/attachment.js:100
+msgid "Edit Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:110
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:111
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:167
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:180
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:187
+msgid "Delete attachment"
+msgstr ""
+
+#: templates/js/translated/barcode.js:29
+msgid "Scan barcode data here using wedge scanner"
+msgstr ""
+
+#: templates/js/translated/barcode.js:31
+msgid "Enter barcode data"
+msgstr ""
+
+#: templates/js/translated/barcode.js:35
+msgid "Barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:53
+msgid "Enter optional notes for stock transfer"
+msgstr ""
+
+#: templates/js/translated/barcode.js:54
+msgid "Enter notes"
+msgstr ""
+
+#: templates/js/translated/barcode.js:92
+msgid "Server error"
+msgstr ""
+
+#: templates/js/translated/barcode.js:113
+msgid "Unknown response from server"
+msgstr ""
+
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1046
+msgid "Invalid server response"
+msgstr ""
+
+#: templates/js/translated/barcode.js:233
+msgid "Scan barcode data below"
+msgstr ""
+
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
+msgid "Scan Barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:291
+msgid "No URL in response"
+msgstr ""
+
+#: templates/js/translated/barcode.js:309
+msgid "Link Barcode to Stock Item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:332
+msgid "This will remove the association between this stock item and the barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:338
+msgid "Unlink"
+msgstr ""
+
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1027
+msgid "Remove stock item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:439
+msgid "Check Stock Items into Location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
+msgid "Check In"
+msgstr ""
+
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
+msgid "Error transferring stock"
+msgstr ""
+
+#: templates/js/translated/barcode.js:507
+msgid "Stock Item already scanned"
+msgstr ""
+
+#: templates/js/translated/barcode.js:511
+msgid "Stock Item already in this location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:518
+msgid "Added stock item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:525
+msgid "Barcode does not match Stock Item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:568
+msgid "Check Into Location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:633
+msgid "Barcode does not match a valid location"
+msgstr ""
+
+#: templates/js/translated/bom.js:75
+msgid "Display row data"
+msgstr ""
+
+#: templates/js/translated/bom.js:131
+msgid "Row Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:249
+msgid "Download BOM Template"
+msgstr ""
+
+#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:519
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:520
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/bom.js:294
+msgid "Cascading"
+msgstr ""
+
+#: templates/js/translated/bom.js:295
+msgid "Download cascading / multi-level BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:300
+msgid "Levels"
+msgstr ""
+
+#: templates/js/translated/bom.js:301
+msgid "Select maximum number of BOM levels to export (0 = all levels)"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
+msgid "Include Parameter Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:308
+msgid "Include part parameter data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:313
+msgid "Include Stock Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:314
+msgid "Include part stock data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:319
+msgid "Include Manufacturer Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:320
+msgid "Include part manufacturer data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:325
+msgid "Include Supplier Data"
+msgstr ""
+
+#: templates/js/translated/bom.js:326
+msgid "Include part supplier data in exported BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:509
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:565
+msgid "Select and add a new substitute part using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:576
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:582
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:621
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:622
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:741
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:750
+msgid "Open subassembly"
+msgstr ""
+
+#: templates/js/translated/bom.js:822
+msgid "Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:837
+msgid "Purchase Price Range"
+msgstr ""
+
+#: templates/js/translated/bom.js:844
+msgid "Purchase Price Average"
+msgstr ""
+
+#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+msgid "View BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:953
+msgid "Validate BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:955
+msgid "This line has been validated"
+msgstr ""
+
+#: templates/js/translated/bom.js:957
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+msgid "Edit BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+msgid "Delete BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+msgid "No BOM items found"
+msgstr ""
+
+#: templates/js/translated/bom.js:1116
+msgid "Are you sure you want to delete this BOM item?"
+msgstr ""
+
+#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+msgid "Required Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:1340
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:85
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:119
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:140
+msgid "Build order is ready to be completed"
+msgstr ""
+
+#: templates/js/translated/build.js:145
+msgid "Build Order is incomplete"
+msgstr ""
+
+#: templates/js/translated/build.js:173
+msgid "Complete Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:214 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/build.js:216 templates/js/translated/stock.js:95
+#: templates/js/translated/stock.js:184
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/build.js:225
+msgid "The Bill of Materials contains trackable parts"
+msgstr ""
+
+#: templates/js/translated/build.js:226
+msgid "Build outputs must be generated individually"
+msgstr ""
+
+#: templates/js/translated/build.js:234
+msgid "Trackable parts can have serial numbers specified"
+msgstr ""
+
+#: templates/js/translated/build.js:235
+msgid "Enter serial numbers to generate multiple single build outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:242
+msgid "Create Build Output"
+msgstr ""
+
+#: templates/js/translated/build.js:273
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:284
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:293
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:301
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:324
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:342
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:431
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:576
+msgid "Delete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:665
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:703 templates/js/translated/order.js:1848
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:885
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2059
+#: templates/js/translated/order.js:1982
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2060
+#: templates/js/translated/order.js:1983
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1354
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1364
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1389
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1406
+msgid "Quantity Per"
+msgstr ""
+
+#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
+#: templates/js/translated/build.js:2055 templates/js/translated/order.js:2227
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2307
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+msgid "Order stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2300
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1499
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1551
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1565
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1600
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1674
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1613
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1690
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1875
+msgid "No builds matching query"
+msgstr ""
+
+#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1644
+#: templates/js/translated/stock.js:2603
+msgid "Select"
+msgstr ""
+
+#: templates/js/translated/build.js:1912
+msgid "Build order is overdue"
+msgstr ""
+
+#: templates/js/translated/build.js:1973 templates/js/translated/stock.js:2822
+msgid "No user information"
+msgstr ""
+
+#: templates/js/translated/build.js:1985
+msgid "No information"
+msgstr ""
+
+#: templates/js/translated/build.js:2036
+msgid "No parts allocated for"
+msgstr ""
+
+#: templates/js/translated/company.js:65
+msgid "Add Manufacturer"
+msgstr ""
+
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+msgid "Add Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:99
+msgid "Edit Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:108
+msgid "Delete Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
+msgid "Add Supplier"
+msgstr ""
+
+#: templates/js/translated/company.js:193
+msgid "Add Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:208
+msgid "Edit Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:218
+msgid "Delete Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:286
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/translated/company.js:363
+msgid "Parts Supplied"
+msgstr ""
+
+#: templates/js/translated/company.js:372
+msgid "Parts Manufactured"
+msgstr ""
+
+#: templates/js/translated/company.js:387
+msgid "No company information found"
+msgstr ""
+
+#: templates/js/translated/company.js:406
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:423
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:480
+msgid "No manufacturer parts found"
+msgstr ""
+
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
+msgid "Template part"
+msgstr ""
+
+#: templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
+msgid "Assembled part"
+msgstr ""
+
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+msgid "No parameters found"
+msgstr ""
+
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+msgid "Edit parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+msgid "Delete parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:737
+msgid "No supplier parts found"
+msgstr ""
+
+#: templates/js/translated/filters.js:178
+#: templates/js/translated/filters.js:429
+msgid "true"
+msgstr ""
+
+#: templates/js/translated/filters.js:182
+#: templates/js/translated/filters.js:430
+msgid "false"
+msgstr ""
+
+#: templates/js/translated/filters.js:204
+msgid "Select filter"
+msgstr ""
+
+#: templates/js/translated/filters.js:286
+msgid "Reload data"
+msgstr ""
+
+#: templates/js/translated/filters.js:290
+msgid "Add new filter"
+msgstr ""
+
+#: templates/js/translated/filters.js:293
+msgid "Clear all filters"
+msgstr ""
+
+#: templates/js/translated/filters.js:338
+msgid "Create filter"
+msgstr ""
+
+#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/translated/forms.js:353
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:368
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:382
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:396
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:681
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1129 templates/modals.html:19
+#: templates/modals.html:43
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/translated/forms.js:1558
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1768
+msgid "Searching"
+msgstr ""
+
+#: templates/js/translated/forms.js:2013
+msgid "Clear input"
+msgstr ""
+
+#: templates/js/translated/forms.js:2479
+msgid "File Column"
+msgstr ""
+
+#: templates/js/translated/forms.js:2479
+msgid "Field Name"
+msgstr ""
+
+#: templates/js/translated/forms.js:2491
+msgid "Select Columns"
+msgstr ""
+
+#: templates/js/translated/helpers.js:19
+msgid "YES"
+msgstr ""
+
+#: templates/js/translated/helpers.js:21
+msgid "NO"
+msgstr ""
+
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:1051
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/translated/label.js:30
+msgid "Stock item(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:48 templates/js/translated/label.js:98
+#: templates/js/translated/label.js:153
+msgid "No Labels Found"
+msgstr ""
+
+#: templates/js/translated/label.js:49
+msgid "No labels found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:80
+msgid "Select Stock Locations"
+msgstr ""
+
+#: templates/js/translated/label.js:81
+msgid "Stock location(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:99
+msgid "No labels found which match selected stock location(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:135
+msgid "Part(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:154
+msgid "No labels found which match the selected part(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:228
+msgid "stock items selected"
+msgstr ""
+
+#: templates/js/translated/label.js:236
+msgid "Select Label"
+msgstr ""
+
+#: templates/js/translated/label.js:251
+msgid "Select Label Template"
+msgstr ""
+
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:610
+msgid "Cancel"
+msgstr ""
+
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985
+#: templates/modals.html:28 templates/modals.html:51
+msgid "Submit"
+msgstr ""
+
+#: templates/js/translated/modals.js:118
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/translated/modals.js:392
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/translated/modals.js:551
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/translated/modals.js:609
+msgid "Accept"
+msgstr ""
+
+#: templates/js/translated/modals.js:666
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/translated/modals.js:937
+msgid "Invalid response from server"
+msgstr ""
+
+#: templates/js/translated/modals.js:937
+msgid "Form data missing from server response"
+msgstr ""
+
+#: templates/js/translated/modals.js:949
+msgid "Error posting form data"
+msgstr ""
+
+#: templates/js/translated/modals.js:1046
+msgid "JSON response missing form data"
+msgstr ""
+
+#: templates/js/translated/modals.js:1061
+msgid "Error 400: Bad Request"
+msgstr ""
+
+#: templates/js/translated/modals.js:1062
+msgid "Server returned error code 400"
+msgstr ""
+
+#: templates/js/translated/modals.js:1085
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:40
+msgid "Company ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:77
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:130
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:147
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:287
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:307
+msgid "Category ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:344
+msgid "Manufacturer Part ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:373
+msgid "Supplier Part ID"
+msgstr ""
+
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
+msgid "Add Customer"
+msgstr ""
+
+#: templates/js/translated/order.js:231
+msgid "Create Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:366
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:460
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:461
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:486
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2255
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:587
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:588
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:590
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:609
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:610
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
+msgid "No purchase orders found"
+msgstr ""
+
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
+msgid "Order is overdue"
+msgstr ""
+
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:987
+msgid "No line items found"
+msgstr ""
+
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
+msgid "Total Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
+msgid "Delete line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
+msgid "Receive line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1206
+msgid "No sales orders found"
+msgstr ""
+
+#: templates/js/translated/order.js:1244
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
+msgid "No sales order allocations found"
+msgstr ""
+
+#: templates/js/translated/order.js:1898
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1915
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1916
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1560
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:2297
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2303
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
+msgstr ""
+
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:2498
+msgid "No matching line items"
+msgstr ""
+
+#: templates/js/translated/part.js:54
+msgid "Part Attributes"
+msgstr ""
+
+#: templates/js/translated/part.js:58
+msgid "Part Creation Options"
+msgstr ""
+
+#: templates/js/translated/part.js:62
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:66
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:80
+msgid "Add Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:164
+msgid "Create Initial Stock"
+msgstr ""
+
+#: templates/js/translated/part.js:165
+msgid "Create an initial stock item for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:172
+msgid "Initial Stock Quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:173
+msgid "Specify initial stock quantity for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:180
+msgid "Select destination stock location"
+msgstr ""
+
+#: templates/js/translated/part.js:198
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:199
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:207
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:208
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:264
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:265
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:273
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:280
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:281
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:294
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:338
+msgid "Edit Part"
+msgstr ""
+
+#: templates/js/translated/part.js:340
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:420
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:425
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:427
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:444
+msgid "Validating the BOM will mark each line item as valid"
+msgstr ""
+
+#: templates/js/translated/part.js:454
+msgid "Validate Bill of Materials"
+msgstr ""
+
+#: templates/js/translated/part.js:457
+msgid "Validated Bill of Materials"
+msgstr ""
+
+#: templates/js/translated/part.js:481
+msgid "Copy Bill of Materials"
+msgstr ""
+
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+msgid "Trackable part"
+msgstr ""
+
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+msgid "Virtual part"
+msgstr ""
+
+#: templates/js/translated/part.js:525
+msgid "Subscribed part"
+msgstr ""
+
+#: templates/js/translated/part.js:529
+msgid "Salable part"
+msgstr ""
+
+#: templates/js/translated/part.js:644
+msgid "No variants found"
+msgstr ""
+
+#: templates/js/translated/part.js:1012
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:1036
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
+msgid "No parts found"
+msgstr ""
+
+#: templates/js/translated/part.js:1273
+msgid "No category"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+#: templates/js/translated/table_filters.js:425
+msgid "Low stock"
+msgstr ""
+
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2564
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1403
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2583
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1642
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2627
+msgid "Path"
+msgstr ""
+
+#: templates/js/translated/part.js:1700
+msgid "No test templates matching query"
+msgstr ""
+
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1271
+msgid "Edit test result"
+msgstr ""
+
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1518
+msgid "Delete test result"
+msgstr ""
+
+#: templates/js/translated/part.js:1758
+msgid "This test is defined for a parent part"
+msgstr ""
+
+#: templates/js/translated/part.js:1780
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1794
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1819
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/translated/part.js:1874
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/translated/part.js:1875
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/translated/part.js:1976
+msgid "Single Price"
+msgstr ""
+
+#: templates/js/translated/part.js:1995
+msgid "Single Price Difference"
+msgstr ""
+
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
+#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
+#: templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/stock.js:75
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:103
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:112
+msgid "Parent stock location"
+msgstr ""
+
+#: templates/js/translated/stock.js:155
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:234
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:240
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:383
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:396
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:421
+msgid "Find Serial Number"
+msgstr ""
+
+#: templates/js/translated/stock.js:425 templates/js/translated/stock.js:426
+msgid "Enter serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:442
+msgid "Enter a serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:462
+msgid "No matching serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:471
+msgid "More than one matching result found"
+msgstr ""
+
+#: templates/js/translated/stock.js:516
+msgid "Export Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:527
+msgid "Include Sublocations"
+msgstr ""
+
+#: templates/js/translated/stock.js:528
+msgid "Include stock items in sublocations"
+msgstr ""
+
+#: templates/js/translated/stock.js:637
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:638
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:715
+msgid "Warning: Merge operation cannot be reversed"
+msgstr ""
+
+#: templates/js/translated/stock.js:716
+msgid "Some information will be lost when merging stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:718
+msgid "Stock transaction history will be deleted for merged items"
+msgstr ""
+
+#: templates/js/translated/stock.js:719
+msgid "Supplier part information will be deleted for merged items"
+msgstr ""
+
+#: templates/js/translated/stock.js:805
+msgid "Confirm stock item merge"
+msgstr ""
+
+#: templates/js/translated/stock.js:806
+msgid "Merge Stock Items"
+msgstr ""
+
+#: templates/js/translated/stock.js:901
+msgid "Transfer Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:902
+msgid "Move"
+msgstr ""
+
+#: templates/js/translated/stock.js:908
+msgid "Count Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:909
+msgid "Count"
+msgstr ""
+
+#: templates/js/translated/stock.js:913
+msgid "Remove Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:914
+msgid "Take"
+msgstr ""
+
+#: templates/js/translated/stock.js:918
+msgid "Add Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:919 users/models.py:213
+msgid "Add"
+msgstr ""
+
+#: templates/js/translated/stock.js:923 templates/stock_table.html:58
+msgid "Delete Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:1012
+msgid "Quantity cannot be adjusted for serialized stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:1012
+msgid "Specify stock quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:1052
+msgid "You must select at least one available stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1210
+msgid "PASS"
+msgstr ""
+
+#: templates/js/translated/stock.js:1212
+msgid "FAIL"
+msgstr ""
+
+#: templates/js/translated/stock.js:1217
+msgid "NO RESULT"
+msgstr ""
+
+#: templates/js/translated/stock.js:1264
+msgid "Pass test"
+msgstr ""
+
+#: templates/js/translated/stock.js:1267
+msgid "Add test result"
+msgstr ""
+
+#: templates/js/translated/stock.js:1293
+msgid "No test results found"
+msgstr ""
+
+#: templates/js/translated/stock.js:1349
+msgid "Test Date"
+msgstr ""
+
+#: templates/js/translated/stock.js:1501
+msgid "Edit Test Result"
+msgstr ""
+
+#: templates/js/translated/stock.js:1523
+msgid "Delete Test Result"
+msgstr ""
+
+#: templates/js/translated/stock.js:1552
+msgid "In production"
+msgstr ""
+
+#: templates/js/translated/stock.js:1556
+msgid "Installed in Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1564
+msgid "Assigned to Sales Order"
+msgstr ""
+
+#: templates/js/translated/stock.js:1570
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:1728
+msgid "Stock item is in production"
+msgstr ""
+
+#: templates/js/translated/stock.js:1733
+msgid "Stock item assigned to sales order"
+msgstr ""
+
+#: templates/js/translated/stock.js:1736
+msgid "Stock item assigned to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:1740
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1742
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1748
+msgid "Serialized stock item has been allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1750
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1752
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1757
+msgid "Stock item has been installed in another item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1764
+msgid "Stock item has been rejected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1766
+msgid "Stock item is lost"
+msgstr ""
+
+#: templates/js/translated/stock.js:1768
+msgid "Stock item is destroyed"
+msgstr ""
+
+#: templates/js/translated/stock.js:1772
+#: templates/js/translated/table_filters.js:188
+msgid "Depleted"
+msgstr ""
+
+#: templates/js/translated/stock.js:1822
+msgid "Stocktake"
+msgstr ""
+
+#: templates/js/translated/stock.js:1895
+msgid "Supplier part not specified"
+msgstr ""
+
+#: templates/js/translated/stock.js:1933
+msgid "No stock items matching query"
+msgstr ""
+
+#: templates/js/translated/stock.js:1954 templates/js/translated/stock.js:2002
+msgid "items"
+msgstr ""
+
+#: templates/js/translated/stock.js:2042
+msgid "batches"
+msgstr ""
+
+#: templates/js/translated/stock.js:2069
+msgid "locations"
+msgstr ""
+
+#: templates/js/translated/stock.js:2071
+msgid "Undefined location"
+msgstr ""
+
+#: templates/js/translated/stock.js:2270
+msgid "Set Stock Status"
+msgstr ""
+
+#: templates/js/translated/stock.js:2284
+msgid "Select Status Code"
+msgstr ""
+
+#: templates/js/translated/stock.js:2285
+msgid "Status code must be selected"
+msgstr ""
+
+#: templates/js/translated/stock.js:2464
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2659
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/translated/stock.js:2681
+msgid "Details"
+msgstr ""
+
+#: templates/js/translated/stock.js:2706
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2725
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2744
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2762
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2785
+msgid "Added"
+msgstr ""
+
+#: templates/js/translated/stock.js:2793
+msgid "Removed"
+msgstr ""
+
+#: templates/js/translated/stock.js:2834
+msgid "Edit tracking entry"
+msgstr ""
+
+#: templates/js/translated/stock.js:2835
+msgid "Delete tracking entry"
+msgstr ""
+
+#: templates/js/translated/stock.js:2886
+msgid "No installed items"
+msgstr ""
+
+#: templates/js/translated/stock.js:2937
+msgid "Uninstall Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2973
+msgid "Install another stock item into this item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2974
+msgid "Stock items can only be installed if they meet the following criteria"
+msgstr ""
+
+#: templates/js/translated/stock.js:2976
+msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2977
+msgid "The Stock Item is currently available in stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:2978
+msgid "The Stock Item is serialized and does not belong to another item"
+msgstr ""
+
+#: templates/js/translated/stock.js:2991
+msgid "Select part to install"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:56
+msgid "Trackable Part"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:60
+msgid "Assembled Part"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:64
+msgid "Validated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:72
+msgid "Allow Variant Stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:183
+msgid "Include sublocations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:111
+msgid "Include locations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:402
+msgid "Include subcategories"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:437
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:218
+msgid "Is Serialized"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:225
+msgid "Serial number GTE"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:226
+msgid "Serial number greater than or equal to"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:229
+msgid "Serial number LTE"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:230
+msgid "Serial number less than or equal to"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
+msgid "Serial number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:239
+msgid "Batch code"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:374
+msgid "Active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:164
+msgid "Show stock for active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:169
+msgid "Part is an assembly"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:173
+msgid "Is allocated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:174
+msgid "Item has been allocated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:179
+msgid "Stock is available for use"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:184
+msgid "Include stock in sublocations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:189
+msgid "Show stock items which are depleted"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:194
+msgid "Show items which are in stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:198
+msgid "In Production"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:199
+msgid "Show items which are in production"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:203
+msgid "Include Variants"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:204
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
+msgid "Show items which have been assigned to a customer"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
+msgid "Stock status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:243
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:244
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:253
+msgid "Show stock items which have expired"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:259
+msgid "Show stock which is close to expiring"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:285
+msgid "Build status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:339
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:315
+#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:347
+msgid "Order status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
+msgid "Outstanding"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:403
+msgid "Include parts in subcategories"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:407
+msgid "Has IPN"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:408
+msgid "Part has internal part number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:413
+msgid "Show active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:421
+msgid "Stock available"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:449
+msgid "Purchasable"
+msgstr ""
+
+#: templates/js/translated/tables.js:368
+msgid "Loading data"
+msgstr ""
+
+#: templates/js/translated/tables.js:371
+msgid "rows per page"
+msgstr ""
+
+#: templates/js/translated/tables.js:376
+msgid "Showing all rows"
+msgstr ""
+
+#: templates/js/translated/tables.js:378
+msgid "Showing"
+msgstr ""
+
+#: templates/js/translated/tables.js:378
+msgid "to"
+msgstr ""
+
+#: templates/js/translated/tables.js:378
+msgid "of"
+msgstr ""
+
+#: templates/js/translated/tables.js:378
+msgid "rows"
+msgstr ""
+
+#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:385
+msgid "No matching results"
+msgstr ""
+
+#: templates/js/translated/tables.js:388
+msgid "Hide/Show pagination"
+msgstr ""
+
+#: templates/js/translated/tables.js:391
+msgid "Refresh"
+msgstr ""
+
+#: templates/js/translated/tables.js:394
+msgid "Toggle"
+msgstr ""
+
+#: templates/js/translated/tables.js:397
+msgid "Columns"
+msgstr ""
+
+#: templates/js/translated/tables.js:400
+msgid "All"
+msgstr ""
+
+#: templates/navbar.html:42
+msgid "Buy"
+msgstr ""
+
+#: templates/navbar.html:54
+msgid "Sell"
+msgstr ""
+
+#: templates/navbar.html:114
+msgid "Logout"
+msgstr ""
+
+#: templates/navbar.html:116
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:136
+msgid "About InvenTree"
+msgstr ""
+
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
+#: templates/qr_code.html:11
+msgid "QR data not provided"
+msgstr ""
+
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
+msgstr ""
+
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
+msgstr ""
+
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
+#: templates/stats.html:13
+msgid "Instance Name"
+msgstr ""
+
+#: templates/stats.html:18
+msgid "Database"
+msgstr ""
+
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
+msgstr ""
+
+#: templates/stats.html:33
+msgid "Docker Mode"
+msgstr ""
+
+#: templates/stats.html:34
+msgid "Server is deployed using docker"
+msgstr ""
+
+#: templates/stats.html:39
+msgid "Plugin Support"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Plugin support enabled"
+msgstr ""
+
+#: templates/stats.html:45
+msgid "Plugin support disabled"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:75
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:78
+msgid "Email settings not configured"
+msgstr ""
+
+#: templates/stock_table.html:14
+msgid "Export Stock Information"
+msgstr ""
+
+#: templates/stock_table.html:20
+msgid "Barcode Actions"
+msgstr ""
+
+#: templates/stock_table.html:36
+msgid "Print test reports"
+msgstr ""
+
+#: templates/stock_table.html:43
+msgid "Stock Options"
+msgstr ""
+
+#: templates/stock_table.html:48
+msgid "Add to selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:49
+msgid "Remove from selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:50
+msgid "Stocktake selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:51
+msgid "Move selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:51
+msgid "Move stock"
+msgstr ""
+
+#: templates/stock_table.html:52
+msgid "Merge selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:52
+msgid "Merge stock"
+msgstr ""
+
+#: templates/stock_table.html:53
+msgid "Order selected items"
+msgstr ""
+
+#: templates/stock_table.html:55
+msgid "Change status"
+msgstr ""
+
+#: templates/stock_table.html:55
+msgid "Change stock status"
+msgstr ""
+
+#: templates/stock_table.html:58
+msgid "Delete selected items"
+msgstr ""
+
+#: templates/yesnolabel.html:4
+msgid "Yes"
+msgstr ""
+
+#: templates/yesnolabel.html:6
+msgid "No"
+msgstr ""
+
+#: users/admin.py:64
+msgid "Users"
+msgstr ""
+
+#: users/admin.py:65
+msgid "Select which users are assigned to this group"
+msgstr ""
+
+#: users/admin.py:187
+msgid "The following users are members of multiple groups:"
+msgstr ""
+
+#: users/admin.py:210
+msgid "Personal info"
+msgstr ""
+
+#: users/admin.py:211
+msgid "Permissions"
+msgstr ""
+
+#: users/admin.py:214
+msgid "Important dates"
+msgstr ""
+
+#: users/models.py:200
+msgid "Permission set"
+msgstr ""
+
+#: users/models.py:208
+msgid "Group"
+msgstr ""
+
+#: users/models.py:211
+msgid "View"
+msgstr ""
+
+#: users/models.py:211
+msgid "Permission to view items"
+msgstr ""
+
+#: users/models.py:213
+msgid "Permission to add items"
+msgstr ""
+
+#: users/models.py:215
+msgid "Change"
+msgstr ""
+
+#: users/models.py:215
+msgid "Permissions to edit items"
+msgstr ""
+
+#: users/models.py:217
+msgid "Permission to delete items"
+msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 146938fa46..341568fbcc 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index ec2e7c82fd..537c6a0b92 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Numero seriale vuoto"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Gruppo non valido: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Nessun numero di serie trovato"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr "La quantità è richiesta"
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 6c39cc70ff..9950bc4aea 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "シリアル番号は空です"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "無効なグループ: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "シリアル番号が見つかりません"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 6a68799a65..1cb8e0cac0 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "수량 값은 0보다 커야 합니다"
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 64190d6ca7..84b0bc7bdd 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Leeg serienummer"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ongeldige groep: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Geen serienummers gevonden"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 590cd9fe2c..4dfa473710 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Tom serienummerstreng"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ugyldig gruppe: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Ugyldig gruppe {group}"
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ugyldig/ingen gruppe {group}"
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Ingen serienummer funnet"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "Angi antall for build utgang"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 74d0d6091d..6f9b3ea0bf 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Nieprawidłowa grupa: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Nieprawidłowa grupa {group}"
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Nieprawidłowa/Brak grupy {group}"
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 8aebfec50b..1e5441e8c4 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 581aaef8d6..14ce2c217d 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Недопустимая группа {group}"
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Недопустимая/несуществующая группа {group}"
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 41855e602e..8aae1b4156 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Tom serienummersträng"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ogiltig grupp: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Inga serienummer hittades"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index f96d272fac..2cfd65c5c6 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 437de0dd78..0fbee1f4c1 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:03\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index d364825e86..b37175d84b 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr ""
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 8378fb6ddb..d9e4448811 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-18 20:36+0000\n"
-"PO-Revision-Date: 2022-02-18 20:38\n"
+"POT-Creation-Date: 2022-02-20 22:01+0000\n"
+"PO-Revision-Date: 2022-02-20 22:02\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -95,26 +95,26 @@ msgid "Empty serial number string"
msgstr "空序列号字符串"
#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
-#: InvenTree/helpers.py:502
+#: InvenTree/helpers.py:501
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "无效的群组: {g}"
-#: InvenTree/helpers.py:512
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:518
+#: InvenTree/helpers.py:516
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:524
+#: InvenTree/helpers.py:522
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:528
+#: InvenTree/helpers.py:526
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
@@ -290,11 +290,13 @@ msgid "No data columns supplied"
msgstr ""
#: InvenTree/serializers.py:623
-msgid "Missing required column"
+#, python-brace-format
+msgid "Missing required column: '{name}'"
msgstr ""
#: InvenTree/serializers.py:632
-msgid "Duplicate column"
+#, python-brace-format
+msgid "Duplicate column: '{col}'"
msgstr ""
#: InvenTree/settings.py:655
@@ -991,7 +993,7 @@ msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
#: build/serializers.py:201 build/serializers.py:590 order/models.py:280
-#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:827
+#: order/serializers.py:240 part/serializers.py:471 part/serializers.py:826
#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1022,7 +1024,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:274 stock/api.py:551
+#: build/serializers.py:274 stock/api.py:549
msgid "The following serial numbers already exist"
msgstr ""
@@ -4417,27 +4419,27 @@ msgstr ""
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:806
+#: part/serializers.py:805
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:809
+#: part/serializers.py:808
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:812
+#: part/serializers.py:811
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:821
+#: part/serializers.py:820
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:829
+#: part/serializers.py:828
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:848
+#: part/serializers.py:847
msgid "At least one BOM item is required"
msgstr ""
@@ -5587,7 +5589,7 @@ msgstr ""
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:535
+#: stock/api.py:533
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -7251,7 +7253,7 @@ msgstr ""
#: templates/allauth_2fa/backup_tokens.html:31
#: templates/allauth_2fa/setup.html:40
-msgid "back to settings"
+msgid "Back to settings"
msgstr ""
#: templates/allauth_2fa/remove.html:6
diff --git a/InvenTree/templates/allauth_2fa/backup_tokens.html b/InvenTree/templates/allauth_2fa/backup_tokens.html
index 2fe30e8222..2257baecb3 100644
--- a/InvenTree/templates/allauth_2fa/backup_tokens.html
+++ b/InvenTree/templates/allauth_2fa/backup_tokens.html
@@ -28,6 +28,6 @@
-{% trans "back to settings" %}
+{% trans "Back to settings" %}
{% endblock %}
diff --git a/InvenTree/templates/allauth_2fa/setup.html b/InvenTree/templates/allauth_2fa/setup.html
index ce795a3c98..2b74ad9c47 100644
--- a/InvenTree/templates/allauth_2fa/setup.html
+++ b/InvenTree/templates/allauth_2fa/setup.html
@@ -37,6 +37,6 @@
{% endblock %}
diff --git a/LICENSE b/LICENSE
index 8ec64a2798..a07b8befba 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2017-2021 InvenTree
+Copyright (c) 2017-2022 InvenTree
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal