More work on translations

This commit is contained in:
Oliver Walters 2020-02-12 10:25:46 +11:00
parent 28e9d842bf
commit 50fee1bfe5
7 changed files with 644 additions and 189 deletions

View File

@ -5,6 +5,8 @@ Django views for interacting with common models
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
from django.utils.translation import ugettext as _
from InvenTree.views import AjaxCreateView, AjaxUpdateView, AjaxDeleteView from InvenTree.views import AjaxCreateView, AjaxUpdateView, AjaxDeleteView
from . import models from . import models
@ -16,7 +18,7 @@ class CurrencyCreate(AjaxCreateView):
model = models.Currency model = models.Currency
form_class = forms.CurrencyEditForm form_class = forms.CurrencyEditForm
ajax_form_title = 'Create new Currency' ajax_form_title = _('Create new Currency')
class CurrencyEdit(AjaxUpdateView): class CurrencyEdit(AjaxUpdateView):
@ -24,12 +26,12 @@ class CurrencyEdit(AjaxUpdateView):
model = models.Currency model = models.Currency
form_class = forms.CurrencyEditForm form_class = forms.CurrencyEditForm
ajax_form_title = 'Edit Currency' ajax_form_title = _('Edit Currency')
class CurrencyDelete(AjaxDeleteView): class CurrencyDelete(AjaxDeleteView):
""" View for deleting an existing Currency object """ """ View for deleting an existing Currency object """
model = models.Currency model = models.Currency
ajax_form_title = 'Delete Currency' ajax_form_title = _('Delete Currency')
ajax_template_name = "common/delete_currency.html" ajax_template_name = "common/delete_currency.html"

View File

@ -6,6 +6,7 @@ Django views for interacting with Company app
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
from django.utils.translation import ugettext as _
from django.views.generic import DetailView, ListView, UpdateView from django.views.generic import DetailView, ListView, UpdateView
from django.urls import reverse from django.urls import reverse
@ -93,12 +94,12 @@ class CompanyImage(AjaxUpdateView):
""" View for uploading an image for the Company """ """ View for uploading an image for the Company """
model = Company model = Company
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Update Company Image' ajax_form_title = _('Update Company Image')
form_class = CompanyImageForm form_class = CompanyImageForm
def get_data(self): def get_data(self):
return { return {
'success': 'Updated company image', 'success': _('Updated company image'),
} }
@ -108,11 +109,11 @@ class CompanyEdit(AjaxUpdateView):
form_class = EditCompanyForm form_class = EditCompanyForm
context_object_name = 'company' context_object_name = 'company'
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Edit Company' ajax_form_title = _('Edit Company')
def get_data(self): def get_data(self):
return { return {
'info': 'Edited company information', 'info': _('Edited company information'),
} }
@ -122,11 +123,11 @@ class CompanyCreate(AjaxCreateView):
context_object_name = 'company' context_object_name = 'company'
form_class = EditCompanyForm form_class = EditCompanyForm
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = "Create new Company" ajax_form_title = _("Create new Company")
def get_data(self): def get_data(self):
return { return {
'success': "Created new company", 'success': _("Created new company"),
} }
@ -136,12 +137,12 @@ class CompanyDelete(AjaxDeleteView):
model = Company model = Company
success_url = '/company/' success_url = '/company/'
ajax_template_name = 'company/delete.html' ajax_template_name = 'company/delete.html'
ajax_form_title = 'Delete Company' ajax_form_title = _('Delete Company')
context_object_name = 'company' context_object_name = 'company'
def get_data(self): def get_data(self):
return { return {
'danger': 'Company was deleted', 'danger': _('Company was deleted'),
} }
@ -166,7 +167,7 @@ class SupplierPartEdit(AjaxUpdateView):
context_object_name = 'part' context_object_name = 'part'
form_class = EditSupplierPartForm form_class = EditSupplierPartForm
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Edit Supplier Part' ajax_form_title = _('Edit Supplier Part')
class SupplierPartCreate(AjaxCreateView): class SupplierPartCreate(AjaxCreateView):
@ -175,7 +176,7 @@ class SupplierPartCreate(AjaxCreateView):
model = SupplierPart model = SupplierPart
form_class = EditSupplierPartForm form_class = EditSupplierPartForm
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Create new Supplier Part' ajax_form_title = _('Create new Supplier Part')
context_object_name = 'part' context_object_name = 'part'
def get_form(self): def get_form(self):
@ -232,7 +233,7 @@ class SupplierPartDelete(AjaxDeleteView):
success_url = '/supplier/' success_url = '/supplier/'
ajax_template_name = 'company/partdelete.html' ajax_template_name = 'company/partdelete.html'
ajax_form_title = 'Delete Supplier Part' ajax_form_title = _('Delete Supplier Part')
parts = [] parts = []
@ -302,7 +303,7 @@ class PriceBreakCreate(AjaxCreateView):
model = SupplierPriceBreak model = SupplierPriceBreak
form_class = EditPriceBreakForm form_class = EditPriceBreakForm
ajax_form_title = 'Add Price Break' ajax_form_title = _('Add Price Break')
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
def get_data(self): def get_data(self):
@ -337,7 +338,7 @@ class PriceBreakEdit(AjaxUpdateView):
model = SupplierPriceBreak model = SupplierPriceBreak
form_class = EditPriceBreakForm form_class = EditPriceBreakForm
ajax_form_title = 'Edit Price Break' ajax_form_title = _('Edit Price Break')
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
def get_form(self): def get_form(self):
@ -352,5 +353,5 @@ class PriceBreakDelete(AjaxDeleteView):
""" View for deleting a supplier price break """ """ View for deleting a supplier price break """
model = SupplierPriceBreak model = SupplierPriceBreak
ajax_form_title = "Delete Price Break" ajax_form_title = _("Delete Price Break")
ajax_template_name = 'modal_delete_form.html' ajax_template_name = 'modal_delete_form.html'

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-11 21:11+0000\n" "POT-Creation-Date: 2020-02-11 23:25+0000\n"
"PO-Revision-Date: 2020-02-02 08:07+0100\n" "PO-Revision-Date: 2020-02-02 08:07+0100\n"
"Last-Translator: Christian Schlüter <chschlue@gmail.com>\n" "Last-Translator: Christian Schlüter <chschlue@gmail.com>\n"
"Language-Team: C <kde-i18n-doc@kde.org>\n" "Language-Team: C <kde-i18n-doc@kde.org>\n"
@ -248,7 +248,7 @@ msgid "Allocate"
msgstr "zuweisen" msgstr "zuweisen"
#: build/templates/build/allocate_view.html:10 #: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18 #: company/templates/company/detail_part.html:18 order/views.py:448
msgid "Order Parts" msgid "Order Parts"
msgstr "Teile bestellen" msgstr "Teile bestellen"
@ -533,6 +533,20 @@ msgstr "Währungs-Wert"
msgid "Use this currency as the base currency" msgid "Use this currency as the base currency"
msgstr "Benutze diese Währung als Basis-Währung" msgstr "Benutze diese Währung als Basis-Währung"
#: common/views.py:21
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create new Currency"
msgstr "Neues Lagerobjekt hinzufügen"
#: common/views.py:29
msgid "Edit Currency"
msgstr ""
#: common/views.py:36
msgid "Delete Currency"
msgstr ""
#: company/models.py:74 #: company/models.py:74
msgid "Company name" msgid "Company name"
msgstr "Firmenname" msgstr "Firmenname"
@ -805,6 +819,84 @@ msgstr "Lagerbestand"
msgid "Sales Orders" msgid "Sales Orders"
msgstr "Bestellungen" msgstr "Bestellungen"
#: company/views.py:97
#, fuzzy
#| msgid "Company name"
msgid "Update Company Image"
msgstr "Firmenname"
#: company/views.py:102
msgid "Updated company image"
msgstr ""
#: company/views.py:112
#, fuzzy
#| msgid "Company"
msgid "Edit Company"
msgstr "Firma"
#: company/views.py:116
#, fuzzy
#| msgid "Link to external company information"
msgid "Edited company information"
msgstr "Link auf externe Firmeninformation"
#: company/views.py:126
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create new Company"
msgstr "Neues Lagerobjekt hinzufügen"
#: company/views.py:130
#, fuzzy
#| msgid "Created new stock item"
msgid "Created new company"
msgstr "Neues Lagerobjekt erstellt"
#: company/views.py:140
#, fuzzy
#| msgid "Company"
msgid "Delete Company"
msgstr "Firma"
#: company/views.py:145
#, fuzzy
#| msgid "Company address"
msgid "Company was deleted"
msgstr "Firmenadresse"
#: company/views.py:170
#, fuzzy
#| msgid "Supplier Part"
msgid "Edit Supplier Part"
msgstr "Zulieferer-Teil"
#: company/views.py:179
#, fuzzy
#| msgid "Supplier Part"
msgid "Create new Supplier Part"
msgstr "Zulieferer-Teil"
#: company/views.py:236
#, fuzzy
#| msgid "Supplier Part"
msgid "Delete Supplier Part"
msgstr "Zulieferer-Teil"
#: company/views.py:306
msgid "Add Price Break"
msgstr ""
#: company/views.py:341
msgid "Edit Price Break"
msgstr ""
#: company/views.py:356
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Price Break"
msgstr "Anhang löschen"
#: order/forms.py:21 #: order/forms.py:21
msgid "Place order" msgid "Place order"
msgstr "Bestellung aufgeben" msgstr "Bestellung aufgeben"
@ -892,7 +984,7 @@ msgstr "Empfangen"
msgid "Order Notes" msgid "Order Notes"
msgstr "Bestellungsbemerkungen" msgstr "Bestellungsbemerkungen"
#: order/templates/order/purchase_order_detail.html:15 #: order/templates/order/purchase_order_detail.html:15 order/views.py:747
msgid "Add Line Item" msgid "Add Line Item"
msgstr "Position hinzufügen" msgstr "Position hinzufügen"
@ -916,14 +1008,50 @@ msgstr "Referenz"
msgid "Items" msgid "Items"
msgstr "Positionen" msgstr "Positionen"
#: order/views.py:99
#, fuzzy
#| msgid "Purchase Order"
msgid "Create Purchase Order"
msgstr "Kaufvertrag"
#: order/views.py:129
#, fuzzy
#| msgid "Purchase Order"
msgid "Edit Purchase Order"
msgstr "Kaufvertrag"
#: order/views.py:149
#, fuzzy
#| msgid "Cancel order"
msgid "Cancel Order"
msgstr "Bestellung stornieren"
#: order/views.py:164 #: order/views.py:164
msgid "Confirm order cancellation" msgid "Confirm order cancellation"
msgstr "Bestell-Stornierung bestätigen" msgstr "Bestell-Stornierung bestätigen"
#: order/views.py:182
#, fuzzy
#| msgid "Issued"
msgid "Issue Order"
msgstr "Aufgegeben"
#: order/views.py:197 #: order/views.py:197
msgid "Confirm order placement" msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen" msgstr "Bestellungstätigung bestätigen"
#: order/views.py:218
#, fuzzy
#| msgid "Completed"
msgid "Complete Order"
msgstr "Fertig"
#: order/views.py:284
#, fuzzy
#| msgid "Required Parts"
msgid "Receive Parts"
msgstr "benötigte Teile"
#: order/views.py:351 #: order/views.py:351
msgid "Items received" msgid "Items received"
msgstr "Anzahl empfangener Positionen" msgstr "Anzahl empfangener Positionen"
@ -956,16 +1084,34 @@ msgstr "Zulieferer muss zum Teil und zur Bestellung passen"
msgid "Invalid SupplierPart selection" msgid "Invalid SupplierPart selection"
msgstr "Ungültige Wahl des Zulieferer-Teils" msgstr "Ungültige Wahl des Zulieferer-Teils"
#: part/bom.py:134 #: order/views.py:862
#, fuzzy
#| msgid "Add Line Item"
msgid "Edit Line Item"
msgstr "Position hinzufügen"
#: order/views.py:878
#, fuzzy
#| msgid "Delete Stock Item"
msgid "Delete Line Item"
msgstr "Lagerobjekt löschen"
#: order/views.py:883
#, fuzzy
#| msgid "Deleted {n} stock items"
msgid "Deleted line item"
msgstr "{n} Teile im Lager gelöscht"
#: part/bom.py:140
#, python-brace-format #, python-brace-format
msgid "Unsupported file format: {f}" msgid "Unsupported file format: {f}"
msgstr "Nicht unterstütztes Dateiformat: {f}" msgstr "Nicht unterstütztes Dateiformat: {f}"
#: part/bom.py:139 #: part/bom.py:145
msgid "Error reading BOM file (invalid data)" msgid "Error reading BOM file (invalid data)"
msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)" msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)"
#: part/bom.py:141 #: part/bom.py:147
msgid "Error reading BOM file (incorrect row size)" msgid "Error reading BOM file (incorrect row size)"
msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)" msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)"
@ -1015,181 +1161,181 @@ msgstr "Eintragsmenge zur Preisberechnung"
msgid "Select currency for price calculation" msgid "Select currency for price calculation"
msgstr "Währung zur Preisberechnung wählen" msgstr "Währung zur Preisberechnung wählen"
#: part/models.py:58 #: part/models.py:59
msgid "Default location for parts in this category" msgid "Default location for parts in this category"
msgstr "Standard-Standort für Teile dieser Kategorie" msgstr "Standard-Standort für Teile dieser Kategorie"
#: part/models.py:61 #: part/models.py:62
msgid "Default keywords for parts in this category" msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie" msgstr "Standard-Stichworte für Teile dieser Kategorie"
#: part/models.py:322 #: part/models.py:323
msgid "Part must be unique for name, IPN and revision" msgid "Part must be unique for name, IPN and revision"
msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein" msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein"
#: part/models.py:336 #: part/models.py:337
msgid "Part cannot be a template part if it is a variant of another part" msgid "Part cannot be a template part if it is a variant of another part"
msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist" msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist"
#: part/models.py:337 #: part/models.py:338
msgid "Part cannot be a variant of another part if it is already a template" msgid "Part cannot be a variant of another part if it is already a template"
msgstr "" msgstr ""
"Teil kann keine Variante eines anderen Teils sein wenn es bereits eine " "Teil kann keine Variante eines anderen Teils sein wenn es bereits eine "
"Vorlage ist" "Vorlage ist"
#: part/models.py:341 part/templates/part/detail.html:17 #: part/models.py:342 part/templates/part/detail.html:17
msgid "Part name" msgid "Part name"
msgstr "Name des Teils" msgstr "Name des Teils"
#: part/models.py:345 #: part/models.py:346
msgid "Is this part a template part?" msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?" msgstr "Ist dieses Teil eine Vorlage?"
#: part/models.py:354 #: part/models.py:355
msgid "Is this part a variant of another part?" msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
#: part/models.py:356 #: part/models.py:357
msgid "Part description" msgid "Part description"
msgstr "Beschreibung des Teils" msgstr "Beschreibung des Teils"
#: part/models.py:358 #: part/models.py:359
msgid "Part keywords to improve visibility in search results" msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
#: part/models.py:363 #: part/models.py:364
msgid "Part category" msgid "Part category"
msgstr "Teile-Kategorie" msgstr "Teile-Kategorie"
#: part/models.py:365 #: part/models.py:366
msgid "Internal Part Number" msgid "Internal Part Number"
msgstr "Interne Teilenummer" msgstr "Interne Teilenummer"
#: part/models.py:367 #: part/models.py:368
msgid "Part revision or version number" msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer" msgstr "Revisions- oder Versionsnummer"
#: part/models.py:369 #: part/models.py:370
msgid "Link to extenal URL" msgid "Link to extenal URL"
msgstr "Link zu einer Externen URL" msgstr "Link zu einer Externen URL"
#: part/models.py:375 #: part/models.py:376
msgid "Where is this item normally stored?" msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?" msgstr "Wo wird dieses Teil normalerweise gelagert?"
#: part/models.py:419 #: part/models.py:420
msgid "Default supplier part" msgid "Default supplier part"
msgstr "Standard-Zulieferer?" msgstr "Standard-Zulieferer?"
#: part/models.py:422 #: part/models.py:423
msgid "Minimum allowed stock level" msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand" msgstr "Minimal zulässiger Lagerbestand"
#: part/models.py:424 #: part/models.py:425
msgid "Stock keeping units for this part" msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil" msgstr "Stock Keeping Units (SKU) für dieses Teil"
#: part/models.py:426 #: part/models.py:427
msgid "Can this part be built from other parts?" msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
#: part/models.py:428 #: part/models.py:429
msgid "Can this part be used to build other parts?" msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bau von anderen genutzt werden?" msgstr "Kann dieses Teil zum Bau von anderen genutzt werden?"
#: part/models.py:430 #: part/models.py:431
msgid "Does this part have tracking for unique items?" msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
#: part/models.py:432 #: part/models.py:433
msgid "Can this part be purchased from external suppliers?" msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
#: part/models.py:434 #: part/models.py:435
msgid "Can this part be sold to customers?" msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?" msgstr "Kann dieses Teil an Kunden verkauft werden?"
#: part/models.py:436 #: part/models.py:437
msgid "Is this part active?" msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?" msgstr "Ist dieses Teil aktiv?"
#: part/models.py:438 #: part/models.py:439
msgid "Is this a virtual part, such as a software product or license?" msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
#: part/models.py:440 #: part/models.py:441
msgid "Part notes - supports Markdown formatting" msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
#: part/models.py:442 #: part/models.py:443
msgid "Stored BOM checksum" msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert" msgstr "Prüfsumme der Stückliste gespeichert"
#: part/models.py:947 #: part/models.py:948
msgid "Select file to attach" msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen" msgstr "Datei zum Anhängen auswählen"
#: part/models.py:949 #: part/models.py:950
msgid "File comment" msgid "File comment"
msgstr "Datei-Kommentar" msgstr "Datei-Kommentar"
#: part/models.py:1004 #: part/models.py:1005
msgid "Parameter template name must be unique" msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein" msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
#: part/models.py:1009 #: part/models.py:1010
msgid "Parameter Name" msgid "Parameter Name"
msgstr "Name des Parameters" msgstr "Name des Parameters"
#: part/models.py:1011 #: part/models.py:1012
msgid "Parameter Units" msgid "Parameter Units"
msgstr "Parameter Einheit" msgstr "Parameter Einheit"
#: part/models.py:1037 #: part/models.py:1038
msgid "Parent Part" msgid "Parent Part"
msgstr "Ausgangsteil" msgstr "Ausgangsteil"
#: part/models.py:1039 #: part/models.py:1040
msgid "Parameter Template" msgid "Parameter Template"
msgstr "Parameter Vorlage" msgstr "Parameter Vorlage"
#: part/models.py:1041 #: part/models.py:1042
msgid "Parameter Value" msgid "Parameter Value"
msgstr "Parameter Wert" msgstr "Parameter Wert"
#: part/models.py:1065 #: part/models.py:1066
msgid "Select parent part" msgid "Select parent part"
msgstr "Ausgangsteil auswählen" msgstr "Ausgangsteil auswählen"
#: part/models.py:1073 #: part/models.py:1074
msgid "Select part to be used in BOM" msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen" msgstr "Teil für die Nutzung in der Stückliste auswählen"
#: part/models.py:1079 #: part/models.py:1080
msgid "BOM quantity for this BOM item" msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
#: part/models.py:1082 #: part/models.py:1083
msgid "Estimated build wastage quantity (absolute or percentage)" msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
#: part/models.py:1085 #: part/models.py:1086
msgid "BOM item reference" msgid "BOM item reference"
msgstr "Referenz des Objekts auf der Stückliste" msgstr "Referenz des Objekts auf der Stückliste"
#: part/models.py:1088 #: part/models.py:1089
msgid "BOM item notes" msgid "BOM item notes"
msgstr "Notizen zum Stücklisten-Objekt" msgstr "Notizen zum Stücklisten-Objekt"
#: part/models.py:1090 #: part/models.py:1091
msgid "BOM line checksum" msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste" msgstr "Prüfsumme der Stückliste"
#: part/models.py:1153 #: part/models.py:1154
msgid "Part cannot be added to its own Bill of Materials" msgid "Part cannot be added to its own Bill of Materials"
msgstr "Teil kann nicht zu seiner eigenen Stückliste hinzugefügt werden" msgstr "Teil kann nicht zu seiner eigenen Stückliste hinzugefügt werden"
#: part/models.py:1160 #: part/models.py:1161
#, python-brace-format #, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
@ -1210,7 +1356,7 @@ msgstr "Datei"
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
#: part/templates/part/attachments.html:34 #: part/templates/part/attachments.html:34 part/views.py:118
msgid "Edit attachment" msgid "Edit attachment"
msgstr "Anhang bearbeiten" msgstr "Anhang bearbeiten"
@ -1434,6 +1580,12 @@ msgstr "Tracking"
msgid "Attachments" msgid "Attachments"
msgstr "Anhänge" msgstr "Anhänge"
#: part/views.py:75
#, fuzzy
#| msgid "Add Attachment"
msgid "Add part attachment"
msgstr "Anhang hinzufügen"
#: part/views.py:80 #: part/views.py:80
#, fuzzy #, fuzzy
#| msgid "Add Attachment" #| msgid "Add Attachment"
@ -1446,11 +1598,41 @@ msgstr "Anhang hinzufügen"
msgid "Part attachment updated" msgid "Part attachment updated"
msgstr "Anhänge" msgstr "Anhänge"
#: part/views.py:137
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Part Attachment"
msgstr "Anhang löschen"
#: part/views.py:143
#, fuzzy
#| msgid "Delete attachment"
msgid "Deleted part attachment"
msgstr "Anhang löschen"
#: part/views.py:151
#, fuzzy
#| msgid "Select part category"
msgid "Set Part Category"
msgstr "Teilekategorie wählen"
#: part/views.py:199 #: part/views.py:199
#, python-brace-format #, python-brace-format
msgid "Set category for {n} parts" msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen" msgstr "Kategorie für {n} Teile setzen"
#: part/views.py:234
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create Variant"
msgstr "Neues Lagerobjekt hinzufügen"
#: part/views.py:304
#, fuzzy
#| msgid "Supplier Part"
msgid "Duplicate Part"
msgstr "Zulieferer-Teil"
#: part/views.py:309 #: part/views.py:309
#, fuzzy #, fuzzy
#| msgid "Supplier part" #| msgid "Supplier part"
@ -1469,6 +1651,12 @@ msgstr "Neues Lagerobjekt hinzufügen"
msgid "Created new part" msgid "Created new part"
msgstr "Neues Lagerobjekt erstellt" msgstr "Neues Lagerobjekt erstellt"
#: part/views.py:595
#, fuzzy
#| msgid "Part Notes"
msgid "Part QR Code"
msgstr "Teil-Bemerkungen"
#: part/views.py:612 #: part/views.py:612
msgid "Upload Part Image" msgid "Upload Part Image"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-11 21:11+0000\n" "POT-Creation-Date: 2020-02-11 23:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -244,7 +244,7 @@ msgid "Allocate"
msgstr "" msgstr ""
#: build/templates/build/allocate_view.html:10 #: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18 #: company/templates/company/detail_part.html:18 order/views.py:448
msgid "Order Parts" msgid "Order Parts"
msgstr "" msgstr ""
@ -496,6 +496,18 @@ msgstr ""
msgid "Use this currency as the base currency" msgid "Use this currency as the base currency"
msgstr "" msgstr ""
#: common/views.py:21
msgid "Create new Currency"
msgstr ""
#: common/views.py:29
msgid "Edit Currency"
msgstr ""
#: common/views.py:36
msgid "Delete Currency"
msgstr ""
#: company/models.py:74 #: company/models.py:74
msgid "Company name" msgid "Company name"
msgstr "" msgstr ""
@ -743,6 +755,62 @@ msgstr ""
msgid "Sales Orders" msgid "Sales Orders"
msgstr "" msgstr ""
#: company/views.py:97
msgid "Update Company Image"
msgstr ""
#: company/views.py:102
msgid "Updated company image"
msgstr ""
#: company/views.py:112
msgid "Edit Company"
msgstr ""
#: company/views.py:116
msgid "Edited company information"
msgstr ""
#: company/views.py:126
msgid "Create new Company"
msgstr ""
#: company/views.py:130
msgid "Created new company"
msgstr ""
#: company/views.py:140
msgid "Delete Company"
msgstr ""
#: company/views.py:145
msgid "Company was deleted"
msgstr ""
#: company/views.py:170
msgid "Edit Supplier Part"
msgstr ""
#: company/views.py:179
msgid "Create new Supplier Part"
msgstr ""
#: company/views.py:236
msgid "Delete Supplier Part"
msgstr ""
#: company/views.py:306
msgid "Add Price Break"
msgstr ""
#: company/views.py:341
msgid "Edit Price Break"
msgstr ""
#: company/views.py:356
msgid "Delete Price Break"
msgstr ""
#: order/forms.py:21 #: order/forms.py:21
msgid "Place order" msgid "Place order"
msgstr "" msgstr ""
@ -830,7 +898,7 @@ msgstr ""
msgid "Order Notes" msgid "Order Notes"
msgstr "" msgstr ""
#: order/templates/order/purchase_order_detail.html:15 #: order/templates/order/purchase_order_detail.html:15 order/views.py:747
msgid "Add Line Item" msgid "Add Line Item"
msgstr "" msgstr ""
@ -854,14 +922,38 @@ msgstr ""
msgid "Items" msgid "Items"
msgstr "" msgstr ""
#: order/views.py:99
msgid "Create Purchase Order"
msgstr ""
#: order/views.py:129
msgid "Edit Purchase Order"
msgstr ""
#: order/views.py:149
msgid "Cancel Order"
msgstr ""
#: order/views.py:164 #: order/views.py:164
msgid "Confirm order cancellation" msgid "Confirm order cancellation"
msgstr "" msgstr ""
#: order/views.py:182
msgid "Issue Order"
msgstr ""
#: order/views.py:197 #: order/views.py:197
msgid "Confirm order placement" msgid "Confirm order placement"
msgstr "" msgstr ""
#: order/views.py:218
msgid "Complete Order"
msgstr ""
#: order/views.py:284
msgid "Receive Parts"
msgstr ""
#: order/views.py:351 #: order/views.py:351
msgid "Items received" msgid "Items received"
msgstr "" msgstr ""
@ -894,16 +986,28 @@ msgstr ""
msgid "Invalid SupplierPart selection" msgid "Invalid SupplierPart selection"
msgstr "" msgstr ""
#: part/bom.py:134 #: order/views.py:862
msgid "Edit Line Item"
msgstr ""
#: order/views.py:878
msgid "Delete Line Item"
msgstr ""
#: order/views.py:883
msgid "Deleted line item"
msgstr ""
#: part/bom.py:140
#, python-brace-format #, python-brace-format
msgid "Unsupported file format: {f}" msgid "Unsupported file format: {f}"
msgstr "" msgstr ""
#: part/bom.py:139 #: part/bom.py:145
msgid "Error reading BOM file (invalid data)" msgid "Error reading BOM file (invalid data)"
msgstr "" msgstr ""
#: part/bom.py:141 #: part/bom.py:147
msgid "Error reading BOM file (incorrect row size)" msgid "Error reading BOM file (incorrect row size)"
msgstr "" msgstr ""
@ -951,179 +1055,179 @@ msgstr ""
msgid "Select currency for price calculation" msgid "Select currency for price calculation"
msgstr "" msgstr ""
#: part/models.py:58 #: part/models.py:59
msgid "Default location for parts in this category" msgid "Default location for parts in this category"
msgstr "" msgstr ""
#: part/models.py:61 #: part/models.py:62
msgid "Default keywords for parts in this category" msgid "Default keywords for parts in this category"
msgstr "" msgstr ""
#: part/models.py:322 #: part/models.py:323
msgid "Part must be unique for name, IPN and revision" msgid "Part must be unique for name, IPN and revision"
msgstr "" msgstr ""
#: part/models.py:336 #: part/models.py:337
msgid "Part cannot be a template part if it is a variant of another part" msgid "Part cannot be a template part if it is a variant of another part"
msgstr "" msgstr ""
#: part/models.py:337 #: part/models.py:338
msgid "Part cannot be a variant of another part if it is already a template" msgid "Part cannot be a variant of another part if it is already a template"
msgstr "" msgstr ""
#: part/models.py:341 part/templates/part/detail.html:17 #: part/models.py:342 part/templates/part/detail.html:17
msgid "Part name" msgid "Part name"
msgstr "" msgstr ""
#: part/models.py:345 #: part/models.py:346
msgid "Is this part a template part?" msgid "Is this part a template part?"
msgstr "" msgstr ""
#: part/models.py:354 #: part/models.py:355
msgid "Is this part a variant of another part?" msgid "Is this part a variant of another part?"
msgstr "" msgstr ""
#: part/models.py:356 #: part/models.py:357
msgid "Part description" msgid "Part description"
msgstr "" msgstr ""
#: part/models.py:358 #: part/models.py:359
msgid "Part keywords to improve visibility in search results" msgid "Part keywords to improve visibility in search results"
msgstr "" msgstr ""
#: part/models.py:363 #: part/models.py:364
msgid "Part category" msgid "Part category"
msgstr "" msgstr ""
#: part/models.py:365 #: part/models.py:366
msgid "Internal Part Number" msgid "Internal Part Number"
msgstr "" msgstr ""
#: part/models.py:367 #: part/models.py:368
msgid "Part revision or version number" msgid "Part revision or version number"
msgstr "" msgstr ""
#: part/models.py:369 #: part/models.py:370
msgid "Link to extenal URL" msgid "Link to extenal URL"
msgstr "" msgstr ""
#: part/models.py:375 #: part/models.py:376
msgid "Where is this item normally stored?" msgid "Where is this item normally stored?"
msgstr "" msgstr ""
#: part/models.py:419 #: part/models.py:420
msgid "Default supplier part" msgid "Default supplier part"
msgstr "" msgstr ""
#: part/models.py:422 #: part/models.py:423
msgid "Minimum allowed stock level" msgid "Minimum allowed stock level"
msgstr "" msgstr ""
#: part/models.py:424 #: part/models.py:425
msgid "Stock keeping units for this part" msgid "Stock keeping units for this part"
msgstr "" msgstr ""
#: part/models.py:426 #: part/models.py:427
msgid "Can this part be built from other parts?" msgid "Can this part be built from other parts?"
msgstr "" msgstr ""
#: part/models.py:428 #: part/models.py:429
msgid "Can this part be used to build other parts?" msgid "Can this part be used to build other parts?"
msgstr "" msgstr ""
#: part/models.py:430 #: part/models.py:431
msgid "Does this part have tracking for unique items?" msgid "Does this part have tracking for unique items?"
msgstr "" msgstr ""
#: part/models.py:432 #: part/models.py:433
msgid "Can this part be purchased from external suppliers?" msgid "Can this part be purchased from external suppliers?"
msgstr "" msgstr ""
#: part/models.py:434 #: part/models.py:435
msgid "Can this part be sold to customers?" msgid "Can this part be sold to customers?"
msgstr "" msgstr ""
#: part/models.py:436 #: part/models.py:437
msgid "Is this part active?" msgid "Is this part active?"
msgstr "" msgstr ""
#: part/models.py:438 #: part/models.py:439
msgid "Is this a virtual part, such as a software product or license?" msgid "Is this a virtual part, such as a software product or license?"
msgstr "" msgstr ""
#: part/models.py:440 #: part/models.py:441
msgid "Part notes - supports Markdown formatting" msgid "Part notes - supports Markdown formatting"
msgstr "" msgstr ""
#: part/models.py:442 #: part/models.py:443
msgid "Stored BOM checksum" msgid "Stored BOM checksum"
msgstr "" msgstr ""
#: part/models.py:947 #: part/models.py:948
msgid "Select file to attach" msgid "Select file to attach"
msgstr "" msgstr ""
#: part/models.py:949 #: part/models.py:950
msgid "File comment" msgid "File comment"
msgstr "" msgstr ""
#: part/models.py:1004 #: part/models.py:1005
msgid "Parameter template name must be unique" msgid "Parameter template name must be unique"
msgstr "" msgstr ""
#: part/models.py:1009 #: part/models.py:1010
msgid "Parameter Name" msgid "Parameter Name"
msgstr "" msgstr ""
#: part/models.py:1011 #: part/models.py:1012
msgid "Parameter Units" msgid "Parameter Units"
msgstr "" msgstr ""
#: part/models.py:1037 #: part/models.py:1038
msgid "Parent Part" msgid "Parent Part"
msgstr "" msgstr ""
#: part/models.py:1039 #: part/models.py:1040
msgid "Parameter Template" msgid "Parameter Template"
msgstr "" msgstr ""
#: part/models.py:1041 #: part/models.py:1042
msgid "Parameter Value" msgid "Parameter Value"
msgstr "" msgstr ""
#: part/models.py:1065 #: part/models.py:1066
msgid "Select parent part" msgid "Select parent part"
msgstr "" msgstr ""
#: part/models.py:1073 #: part/models.py:1074
msgid "Select part to be used in BOM" msgid "Select part to be used in BOM"
msgstr "" msgstr ""
#: part/models.py:1079 #: part/models.py:1080
msgid "BOM quantity for this BOM item" msgid "BOM quantity for this BOM item"
msgstr "" msgstr ""
#: part/models.py:1082 #: part/models.py:1083
msgid "Estimated build wastage quantity (absolute or percentage)" msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "" msgstr ""
#: part/models.py:1085 #: part/models.py:1086
msgid "BOM item reference" msgid "BOM item reference"
msgstr "" msgstr ""
#: part/models.py:1088 #: part/models.py:1089
msgid "BOM item notes" msgid "BOM item notes"
msgstr "" msgstr ""
#: part/models.py:1090 #: part/models.py:1091
msgid "BOM line checksum" msgid "BOM line checksum"
msgstr "" msgstr ""
#: part/models.py:1153 #: part/models.py:1154
msgid "Part cannot be added to its own Bill of Materials" msgid "Part cannot be added to its own Bill of Materials"
msgstr "" msgstr ""
#: part/models.py:1160 #: part/models.py:1161
#, python-brace-format #, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "" msgstr ""
@ -1144,7 +1248,7 @@ msgstr ""
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: part/templates/part/attachments.html:34 #: part/templates/part/attachments.html:34 part/views.py:118
msgid "Edit attachment" msgid "Edit attachment"
msgstr "" msgstr ""
@ -1366,6 +1470,10 @@ msgstr ""
msgid "Attachments" msgid "Attachments"
msgstr "" msgstr ""
#: part/views.py:75
msgid "Add part attachment"
msgstr ""
#: part/views.py:80 #: part/views.py:80
msgid "Added attachment" msgid "Added attachment"
msgstr "" msgstr ""
@ -1374,11 +1482,31 @@ msgstr ""
msgid "Part attachment updated" msgid "Part attachment updated"
msgstr "" msgstr ""
#: part/views.py:137
msgid "Delete Part Attachment"
msgstr ""
#: part/views.py:143
msgid "Deleted part attachment"
msgstr ""
#: part/views.py:151
msgid "Set Part Category"
msgstr ""
#: part/views.py:199 #: part/views.py:199
#, python-brace-format #, python-brace-format
msgid "Set category for {n} parts" msgid "Set category for {n} parts"
msgstr "" msgstr ""
#: part/views.py:234
msgid "Create Variant"
msgstr ""
#: part/views.py:304
msgid "Duplicate Part"
msgstr ""
#: part/views.py:309 #: part/views.py:309
msgid "Copied part" msgid "Copied part"
msgstr "" msgstr ""
@ -1391,6 +1519,10 @@ msgstr ""
msgid "Created new part" msgid "Created new part"
msgstr "" msgstr ""
#: part/views.py:595
msgid "Part QR Code"
msgstr ""
#: part/views.py:612 #: part/views.py:612
msgid "Upload Part Image" msgid "Upload Part Image"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-11 21:11+0000\n" "POT-Creation-Date: 2020-02-11 23:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -244,7 +244,7 @@ msgid "Allocate"
msgstr "" msgstr ""
#: build/templates/build/allocate_view.html:10 #: build/templates/build/allocate_view.html:10
#: company/templates/company/detail_part.html:18 #: company/templates/company/detail_part.html:18 order/views.py:448
msgid "Order Parts" msgid "Order Parts"
msgstr "" msgstr ""
@ -496,6 +496,18 @@ msgstr ""
msgid "Use this currency as the base currency" msgid "Use this currency as the base currency"
msgstr "" msgstr ""
#: common/views.py:21
msgid "Create new Currency"
msgstr ""
#: common/views.py:29
msgid "Edit Currency"
msgstr ""
#: common/views.py:36
msgid "Delete Currency"
msgstr ""
#: company/models.py:74 #: company/models.py:74
msgid "Company name" msgid "Company name"
msgstr "" msgstr ""
@ -743,6 +755,62 @@ msgstr ""
msgid "Sales Orders" msgid "Sales Orders"
msgstr "" msgstr ""
#: company/views.py:97
msgid "Update Company Image"
msgstr ""
#: company/views.py:102
msgid "Updated company image"
msgstr ""
#: company/views.py:112
msgid "Edit Company"
msgstr ""
#: company/views.py:116
msgid "Edited company information"
msgstr ""
#: company/views.py:126
msgid "Create new Company"
msgstr ""
#: company/views.py:130
msgid "Created new company"
msgstr ""
#: company/views.py:140
msgid "Delete Company"
msgstr ""
#: company/views.py:145
msgid "Company was deleted"
msgstr ""
#: company/views.py:170
msgid "Edit Supplier Part"
msgstr ""
#: company/views.py:179
msgid "Create new Supplier Part"
msgstr ""
#: company/views.py:236
msgid "Delete Supplier Part"
msgstr ""
#: company/views.py:306
msgid "Add Price Break"
msgstr ""
#: company/views.py:341
msgid "Edit Price Break"
msgstr ""
#: company/views.py:356
msgid "Delete Price Break"
msgstr ""
#: order/forms.py:21 #: order/forms.py:21
msgid "Place order" msgid "Place order"
msgstr "" msgstr ""
@ -830,7 +898,7 @@ msgstr ""
msgid "Order Notes" msgid "Order Notes"
msgstr "" msgstr ""
#: order/templates/order/purchase_order_detail.html:15 #: order/templates/order/purchase_order_detail.html:15 order/views.py:747
msgid "Add Line Item" msgid "Add Line Item"
msgstr "" msgstr ""
@ -854,14 +922,38 @@ msgstr ""
msgid "Items" msgid "Items"
msgstr "" msgstr ""
#: order/views.py:99
msgid "Create Purchase Order"
msgstr ""
#: order/views.py:129
msgid "Edit Purchase Order"
msgstr ""
#: order/views.py:149
msgid "Cancel Order"
msgstr ""
#: order/views.py:164 #: order/views.py:164
msgid "Confirm order cancellation" msgid "Confirm order cancellation"
msgstr "" msgstr ""
#: order/views.py:182
msgid "Issue Order"
msgstr ""
#: order/views.py:197 #: order/views.py:197
msgid "Confirm order placement" msgid "Confirm order placement"
msgstr "" msgstr ""
#: order/views.py:218
msgid "Complete Order"
msgstr ""
#: order/views.py:284
msgid "Receive Parts"
msgstr ""
#: order/views.py:351 #: order/views.py:351
msgid "Items received" msgid "Items received"
msgstr "" msgstr ""
@ -894,16 +986,28 @@ msgstr ""
msgid "Invalid SupplierPart selection" msgid "Invalid SupplierPart selection"
msgstr "" msgstr ""
#: part/bom.py:134 #: order/views.py:862
msgid "Edit Line Item"
msgstr ""
#: order/views.py:878
msgid "Delete Line Item"
msgstr ""
#: order/views.py:883
msgid "Deleted line item"
msgstr ""
#: part/bom.py:140
#, python-brace-format #, python-brace-format
msgid "Unsupported file format: {f}" msgid "Unsupported file format: {f}"
msgstr "" msgstr ""
#: part/bom.py:139 #: part/bom.py:145
msgid "Error reading BOM file (invalid data)" msgid "Error reading BOM file (invalid data)"
msgstr "" msgstr ""
#: part/bom.py:141 #: part/bom.py:147
msgid "Error reading BOM file (incorrect row size)" msgid "Error reading BOM file (incorrect row size)"
msgstr "" msgstr ""
@ -951,179 +1055,179 @@ msgstr ""
msgid "Select currency for price calculation" msgid "Select currency for price calculation"
msgstr "" msgstr ""
#: part/models.py:58 #: part/models.py:59
msgid "Default location for parts in this category" msgid "Default location for parts in this category"
msgstr "" msgstr ""
#: part/models.py:61 #: part/models.py:62
msgid "Default keywords for parts in this category" msgid "Default keywords for parts in this category"
msgstr "" msgstr ""
#: part/models.py:322 #: part/models.py:323
msgid "Part must be unique for name, IPN and revision" msgid "Part must be unique for name, IPN and revision"
msgstr "" msgstr ""
#: part/models.py:336 #: part/models.py:337
msgid "Part cannot be a template part if it is a variant of another part" msgid "Part cannot be a template part if it is a variant of another part"
msgstr "" msgstr ""
#: part/models.py:337 #: part/models.py:338
msgid "Part cannot be a variant of another part if it is already a template" msgid "Part cannot be a variant of another part if it is already a template"
msgstr "" msgstr ""
#: part/models.py:341 part/templates/part/detail.html:17 #: part/models.py:342 part/templates/part/detail.html:17
msgid "Part name" msgid "Part name"
msgstr "" msgstr ""
#: part/models.py:345 #: part/models.py:346
msgid "Is this part a template part?" msgid "Is this part a template part?"
msgstr "" msgstr ""
#: part/models.py:354 #: part/models.py:355
msgid "Is this part a variant of another part?" msgid "Is this part a variant of another part?"
msgstr "" msgstr ""
#: part/models.py:356 #: part/models.py:357
msgid "Part description" msgid "Part description"
msgstr "" msgstr ""
#: part/models.py:358 #: part/models.py:359
msgid "Part keywords to improve visibility in search results" msgid "Part keywords to improve visibility in search results"
msgstr "" msgstr ""
#: part/models.py:363 #: part/models.py:364
msgid "Part category" msgid "Part category"
msgstr "" msgstr ""
#: part/models.py:365 #: part/models.py:366
msgid "Internal Part Number" msgid "Internal Part Number"
msgstr "" msgstr ""
#: part/models.py:367 #: part/models.py:368
msgid "Part revision or version number" msgid "Part revision or version number"
msgstr "" msgstr ""
#: part/models.py:369 #: part/models.py:370
msgid "Link to extenal URL" msgid "Link to extenal URL"
msgstr "" msgstr ""
#: part/models.py:375 #: part/models.py:376
msgid "Where is this item normally stored?" msgid "Where is this item normally stored?"
msgstr "" msgstr ""
#: part/models.py:419 #: part/models.py:420
msgid "Default supplier part" msgid "Default supplier part"
msgstr "" msgstr ""
#: part/models.py:422 #: part/models.py:423
msgid "Minimum allowed stock level" msgid "Minimum allowed stock level"
msgstr "" msgstr ""
#: part/models.py:424 #: part/models.py:425
msgid "Stock keeping units for this part" msgid "Stock keeping units for this part"
msgstr "" msgstr ""
#: part/models.py:426 #: part/models.py:427
msgid "Can this part be built from other parts?" msgid "Can this part be built from other parts?"
msgstr "" msgstr ""
#: part/models.py:428 #: part/models.py:429
msgid "Can this part be used to build other parts?" msgid "Can this part be used to build other parts?"
msgstr "" msgstr ""
#: part/models.py:430 #: part/models.py:431
msgid "Does this part have tracking for unique items?" msgid "Does this part have tracking for unique items?"
msgstr "" msgstr ""
#: part/models.py:432 #: part/models.py:433
msgid "Can this part be purchased from external suppliers?" msgid "Can this part be purchased from external suppliers?"
msgstr "" msgstr ""
#: part/models.py:434 #: part/models.py:435
msgid "Can this part be sold to customers?" msgid "Can this part be sold to customers?"
msgstr "" msgstr ""
#: part/models.py:436 #: part/models.py:437
msgid "Is this part active?" msgid "Is this part active?"
msgstr "" msgstr ""
#: part/models.py:438 #: part/models.py:439
msgid "Is this a virtual part, such as a software product or license?" msgid "Is this a virtual part, such as a software product or license?"
msgstr "" msgstr ""
#: part/models.py:440 #: part/models.py:441
msgid "Part notes - supports Markdown formatting" msgid "Part notes - supports Markdown formatting"
msgstr "" msgstr ""
#: part/models.py:442 #: part/models.py:443
msgid "Stored BOM checksum" msgid "Stored BOM checksum"
msgstr "" msgstr ""
#: part/models.py:947 #: part/models.py:948
msgid "Select file to attach" msgid "Select file to attach"
msgstr "" msgstr ""
#: part/models.py:949 #: part/models.py:950
msgid "File comment" msgid "File comment"
msgstr "" msgstr ""
#: part/models.py:1004 #: part/models.py:1005
msgid "Parameter template name must be unique" msgid "Parameter template name must be unique"
msgstr "" msgstr ""
#: part/models.py:1009 #: part/models.py:1010
msgid "Parameter Name" msgid "Parameter Name"
msgstr "" msgstr ""
#: part/models.py:1011 #: part/models.py:1012
msgid "Parameter Units" msgid "Parameter Units"
msgstr "" msgstr ""
#: part/models.py:1037 #: part/models.py:1038
msgid "Parent Part" msgid "Parent Part"
msgstr "" msgstr ""
#: part/models.py:1039 #: part/models.py:1040
msgid "Parameter Template" msgid "Parameter Template"
msgstr "" msgstr ""
#: part/models.py:1041 #: part/models.py:1042
msgid "Parameter Value" msgid "Parameter Value"
msgstr "" msgstr ""
#: part/models.py:1065 #: part/models.py:1066
msgid "Select parent part" msgid "Select parent part"
msgstr "" msgstr ""
#: part/models.py:1073 #: part/models.py:1074
msgid "Select part to be used in BOM" msgid "Select part to be used in BOM"
msgstr "" msgstr ""
#: part/models.py:1079 #: part/models.py:1080
msgid "BOM quantity for this BOM item" msgid "BOM quantity for this BOM item"
msgstr "" msgstr ""
#: part/models.py:1082 #: part/models.py:1083
msgid "Estimated build wastage quantity (absolute or percentage)" msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "" msgstr ""
#: part/models.py:1085 #: part/models.py:1086
msgid "BOM item reference" msgid "BOM item reference"
msgstr "" msgstr ""
#: part/models.py:1088 #: part/models.py:1089
msgid "BOM item notes" msgid "BOM item notes"
msgstr "" msgstr ""
#: part/models.py:1090 #: part/models.py:1091
msgid "BOM line checksum" msgid "BOM line checksum"
msgstr "" msgstr ""
#: part/models.py:1153 #: part/models.py:1154
msgid "Part cannot be added to its own Bill of Materials" msgid "Part cannot be added to its own Bill of Materials"
msgstr "" msgstr ""
#: part/models.py:1160 #: part/models.py:1161
#, python-brace-format #, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "" msgstr ""
@ -1144,7 +1248,7 @@ msgstr ""
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: part/templates/part/attachments.html:34 #: part/templates/part/attachments.html:34 part/views.py:118
msgid "Edit attachment" msgid "Edit attachment"
msgstr "" msgstr ""
@ -1366,6 +1470,10 @@ msgstr ""
msgid "Attachments" msgid "Attachments"
msgstr "" msgstr ""
#: part/views.py:75
msgid "Add part attachment"
msgstr ""
#: part/views.py:80 #: part/views.py:80
msgid "Added attachment" msgid "Added attachment"
msgstr "" msgstr ""
@ -1374,11 +1482,31 @@ msgstr ""
msgid "Part attachment updated" msgid "Part attachment updated"
msgstr "" msgstr ""
#: part/views.py:137
msgid "Delete Part Attachment"
msgstr ""
#: part/views.py:143
msgid "Deleted part attachment"
msgstr ""
#: part/views.py:151
msgid "Set Part Category"
msgstr ""
#: part/views.py:199 #: part/views.py:199
#, python-brace-format #, python-brace-format
msgid "Set category for {n} parts" msgid "Set category for {n} parts"
msgstr "" msgstr ""
#: part/views.py:234
msgid "Create Variant"
msgstr ""
#: part/views.py:304
msgid "Duplicate Part"
msgstr ""
#: part/views.py:309 #: part/views.py:309
msgid "Copied part" msgid "Copied part"
msgstr "" msgstr ""
@ -1391,6 +1519,10 @@ msgstr ""
msgid "Created new part" msgid "Created new part"
msgstr "" msgstr ""
#: part/views.py:595
msgid "Part QR Code"
msgstr ""
#: part/views.py:612 #: part/views.py:612
msgid "Upload Part Image" msgid "Upload Part Image"
msgstr "" msgstr ""

View File

@ -96,7 +96,7 @@ class PurchaseOrderCreate(AjaxCreateView):
""" View for creating a new PurchaseOrder object using a modal form """ """ View for creating a new PurchaseOrder object using a modal form """
model = PurchaseOrder model = PurchaseOrder
ajax_form_title = "Create Purchase Order" ajax_form_title = _("Create Purchase Order")
form_class = order_forms.EditPurchaseOrderForm form_class = order_forms.EditPurchaseOrderForm
def get_initial(self): def get_initial(self):
@ -126,7 +126,7 @@ class PurchaseOrderEdit(AjaxUpdateView):
""" View for editing a PurchaseOrder using a modal form """ """ View for editing a PurchaseOrder using a modal form """
model = PurchaseOrder model = PurchaseOrder
ajax_form_title = 'Edit Purchase Order' ajax_form_title = _('Edit Purchase Order')
form_class = order_forms.EditPurchaseOrderForm form_class = order_forms.EditPurchaseOrderForm
def get_form(self): def get_form(self):
@ -146,7 +146,7 @@ class PurchaseOrderCancel(AjaxUpdateView):
""" View for cancelling a purchase order """ """ View for cancelling a purchase order """
model = PurchaseOrder model = PurchaseOrder
ajax_form_title = 'Cancel Order' ajax_form_title = _('Cancel Order')
ajax_template_name = 'order/order_cancel.html' ajax_template_name = 'order/order_cancel.html'
form_class = order_forms.CancelPurchaseOrderForm form_class = order_forms.CancelPurchaseOrderForm
@ -179,7 +179,7 @@ class PurchaseOrderIssue(AjaxUpdateView):
""" View for changing a purchase order from 'PENDING' to 'ISSUED' """ """ View for changing a purchase order from 'PENDING' to 'ISSUED' """
model = PurchaseOrder model = PurchaseOrder
ajax_form_title = 'Issue Order' ajax_form_title = _('Issue Order')
ajax_template_name = "order/order_issue.html" ajax_template_name = "order/order_issue.html"
form_class = order_forms.IssuePurchaseOrderForm form_class = order_forms.IssuePurchaseOrderForm
@ -215,7 +215,7 @@ class PurchaseOrderComplete(AjaxUpdateView):
form_class = order_forms.CompletePurchaseOrderForm form_class = order_forms.CompletePurchaseOrderForm
model = PurchaseOrder model = PurchaseOrder
ajax_template_name = "order/order_complete.html" ajax_template_name = "order/order_complete.html"
ajax_form_title = "Complete Order" ajax_form_title = _("Complete Order")
context_object_name = 'order' context_object_name = 'order'
def get_context_data(self): def get_context_data(self):
@ -281,7 +281,7 @@ class PurchaseOrderReceive(AjaxUpdateView):
""" """
form_class = order_forms.ReceivePurchaseOrderForm form_class = order_forms.ReceivePurchaseOrderForm
ajax_form_title = "Receive Parts" ajax_form_title = _("Receive Parts")
ajax_template_name = "order/receive_parts.html" ajax_template_name = "order/receive_parts.html"
# Where the parts will be going (selected in POST request) # Where the parts will be going (selected in POST request)
@ -445,7 +445,7 @@ class OrderParts(AjaxView):
""" """
ajax_form_title = "Order Parts" ajax_form_title = _("Order Parts")
ajax_template_name = 'order/order_wizard/select_parts.html' ajax_template_name = 'order/order_wizard/select_parts.html'
# List of Parts we wish to order # List of Parts we wish to order
@ -744,7 +744,7 @@ class POLineItemCreate(AjaxCreateView):
model = PurchaseOrderLineItem model = PurchaseOrderLineItem
context_object_name = 'line' context_object_name = 'line'
form_class = order_forms.EditPurchaseOrderLineItemForm form_class = order_forms.EditPurchaseOrderLineItemForm
ajax_form_title = 'Add Line Item' ajax_form_title = _('Add Line Item')
def post(self, request, *arg, **kwargs): def post(self, request, *arg, **kwargs):
@ -859,7 +859,7 @@ class POLineItemEdit(AjaxUpdateView):
model = PurchaseOrderLineItem model = PurchaseOrderLineItem
form_class = order_forms.EditPurchaseOrderLineItemForm form_class = order_forms.EditPurchaseOrderLineItemForm
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Edit Line Item' ajax_form_title = _('Edit Line Item')
def get_form(self): def get_form(self):
form = super().get_form() form = super().get_form()
@ -875,10 +875,10 @@ class POLineItemDelete(AjaxDeleteView):
""" """
model = PurchaseOrderLineItem model = PurchaseOrderLineItem
ajax_form_title = 'Delete Line Item' ajax_form_title = _('Delete Line Item')
ajax_template_name = 'order/po_lineitem_delete.html' ajax_template_name = 'order/po_lineitem_delete.html'
def get_data(self): def get_data(self):
return { return {
'danger': 'Deleted line item', 'danger': _('Deleted line item'),
} }

View File

@ -72,7 +72,7 @@ class PartAttachmentCreate(AjaxCreateView):
""" """
model = PartAttachment model = PartAttachment
form_class = part_forms.EditPartAttachmentForm form_class = part_forms.EditPartAttachmentForm
ajax_form_title = "Add part attachment" ajax_form_title = _("Add part attachment")
ajax_template_name = "modal_form.html" ajax_template_name = "modal_form.html"
def get_data(self): def get_data(self):
@ -115,7 +115,7 @@ class PartAttachmentEdit(AjaxUpdateView):
model = PartAttachment model = PartAttachment
form_class = part_forms.EditPartAttachmentForm form_class = part_forms.EditPartAttachmentForm
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Edit attachment' ajax_form_title = _('Edit attachment')
def get_data(self): def get_data(self):
return { return {
@ -134,13 +134,13 @@ class PartAttachmentDelete(AjaxDeleteView):
""" View for deleting a PartAttachment """ """ View for deleting a PartAttachment """
model = PartAttachment model = PartAttachment
ajax_form_title = "Delete Part Attachment" ajax_form_title = _("Delete Part Attachment")
ajax_template_name = "part/attachment_delete.html" ajax_template_name = "part/attachment_delete.html"
context_object_name = "attachment" context_object_name = "attachment"
def get_data(self): def get_data(self):
return { return {
'danger': 'Deleted part attachment' 'danger': _('Deleted part attachment')
} }
@ -148,7 +148,7 @@ class PartSetCategory(AjaxUpdateView):
""" View for settings the part category for multiple parts at once """ """ View for settings the part category for multiple parts at once """
ajax_template_name = 'part/set_category.html' ajax_template_name = 'part/set_category.html'
ajax_form_title = 'Set Part Category' ajax_form_title = _('Set Part Category')
form_class = part_forms.SetPartCategoryForm form_class = part_forms.SetPartCategoryForm
category = None category = None
@ -231,7 +231,7 @@ class MakePartVariant(AjaxCreateView):
model = Part model = Part
form_class = part_forms.EditPartForm form_class = part_forms.EditPartForm
ajax_form_title = 'Create Variant' ajax_form_title = _('Create Variant')
ajax_template_name = 'part/variant_part.html' ajax_template_name = 'part/variant_part.html'
def get_part_template(self): def get_part_template(self):
@ -301,7 +301,7 @@ class PartDuplicate(AjaxCreateView):
model = Part model = Part
form_class = part_forms.EditPartForm form_class = part_forms.EditPartForm
ajax_form_title = "Duplicate Part" ajax_form_title = _("Duplicate Part")
ajax_template_name = "part/copy_part.html" ajax_template_name = "part/copy_part.html"
def get_data(self): def get_data(self):
@ -592,7 +592,7 @@ class PartDetail(DetailView):
class PartQRCode(QRCodeView): class PartQRCode(QRCodeView):
""" View for displaying a QR code for a Part object """ """ View for displaying a QR code for a Part object """
ajax_form_title = "Part QR Code" ajax_form_title = _("Part QR Code")
def get_qr_data(self): def get_qr_data(self):
""" Generate QR code data for the Part """ """ Generate QR code data for the Part """