From 564635c368bc6ac08d8e5a34ec898c93c514a3e5 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 12 Feb 2020 08:11:59 +1100 Subject: [PATCH] Add some translatable strings --- .../templates/build/delete_build_item.html | 6 +- .../build/templates/build/unallocate.html | 5 +- InvenTree/build/views.py | 48 +-- InvenTree/locale/de/LC_MESSAGES/django.po | 403 ++++++++++++------ InvenTree/locale/en/LC_MESSAGES/django.po | 366 ++++++++++------ InvenTree/locale/es/LC_MESSAGES/django.po | 366 ++++++++++------ 6 files changed, 794 insertions(+), 400 deletions(-) diff --git a/InvenTree/build/templates/build/delete_build_item.html b/InvenTree/build/templates/build/delete_build_item.html index 37ed0dfa32..f9c41b9eb5 100644 --- a/InvenTree/build/templates/build/delete_build_item.html +++ b/InvenTree/build/templates/build/delete_build_item.html @@ -1,7 +1,9 @@ {% extends "modal_delete_form.html" %} +{% load i18n %} +{% load inventree_extras %} {% block pre_form_content %} -Are you sure you want to unallocate these parts? +{% trans "Are you sure you want to unallocate these parts?" %}
-This will remove {{ item.quantity }} parts from build '{{ item.build.title }}'. +This will remove {% decimal item.quantity %} parts from build '{{ item.build.title }}'. {% endblock %} \ No newline at end of file diff --git a/InvenTree/build/templates/build/unallocate.html b/InvenTree/build/templates/build/unallocate.html index 503bc354f6..f6543b3732 100644 --- a/InvenTree/build/templates/build/unallocate.html +++ b/InvenTree/build/templates/build/unallocate.html @@ -1,9 +1,10 @@ {% extends "modal_form.html" %} - +{% load i18n %} +{% load inventree_extras %} {% block pre_form_content %} {{ block.super }} -Are you sure you wish to unallocate all stock for this build? +{% trans "Are you sure you wish to unallocate all stock for this build?" %} {% endblock %} \ No newline at end of file diff --git a/InvenTree/build/views.py b/InvenTree/build/views.py index 6a09a3234e..feda6ee9eb 100644 --- a/InvenTree/build/views.py +++ b/InvenTree/build/views.py @@ -53,7 +53,7 @@ class BuildCancel(AjaxUpdateView): model = Build ajax_template_name = 'build/cancel.html' - ajax_form_title = 'Cancel Build' + ajax_form_title = _('Cancel Build') context_object_name = 'build' form_class = forms.CancelBuildForm @@ -71,12 +71,12 @@ class BuildCancel(AjaxUpdateView): if confirm: build.cancelBuild(request.user) else: - form.errors['confirm_cancel'] = ['Confirm build cancellation'] + form.errors['confirm_cancel'] = [_('Confirm build cancellation')] valid = False data = { 'form_valid': valid, - 'danger': 'Build was cancelled' + 'danger': _('Build was cancelled') } return self.renderJsonResponse(request, form, data=data) @@ -92,7 +92,7 @@ class BuildAutoAllocate(AjaxUpdateView): model = Build form_class = forms.ConfirmBuildForm context_object_name = 'build' - ajax_form_title = 'Allocate Stock' + ajax_form_title = _('Allocate Stock') ajax_template_name = 'build/auto_allocate.html' def get_context_data(self, *args, **kwargs): @@ -105,7 +105,7 @@ class BuildAutoAllocate(AjaxUpdateView): context['build'] = build context['allocations'] = build.getAutoAllocations() except Build.DoesNotExist: - context['error'] = 'No matching build found' + context['error'] = _('No matching build found') return context @@ -124,8 +124,8 @@ class BuildAutoAllocate(AjaxUpdateView): valid = False if confirm is False: - form.errors['confirm'] = ['Confirm stock allocation'] - form.non_field_errors = 'Check the confirmation box at the bottom of the list' + form.errors['confirm'] = [_('Confirm stock allocation')] + form.non_field_errors = _('Check the confirmation box at the bottom of the list') else: build.autoAllocate() valid = True @@ -145,7 +145,7 @@ class BuildUnallocate(AjaxUpdateView): model = Build form_class = forms.ConfirmBuildForm - ajax_form_title = "Unallocate Stock" + ajax_form_title = _("Unallocate Stock") ajax_template_name = "build/unallocate.html" def post(self, request, *args, **kwargs): @@ -158,8 +158,8 @@ class BuildUnallocate(AjaxUpdateView): valid = False if confirm is False: - form.errors['confirm'] = ['Confirm unallocation of build stock'] - form.non_field_errors = 'Check the confirmation box' + form.errors['confirm'] = [_('Confirm unallocation of build stock')] + form.non_field_errors = _('Check the confirmation box') else: build.unallocateStock() valid = True @@ -182,7 +182,7 @@ class BuildComplete(AjaxUpdateView): model = Build form_class = forms.CompleteBuildForm context_object_name = "build" - ajax_form_title = "Complete Build" + ajax_form_title = _("Complete Build") ajax_template_name = "build/complete.html" def get_form(self): @@ -255,14 +255,14 @@ class BuildComplete(AjaxUpdateView): if confirm is False: form.errors['confirm'] = [ - 'Confirm completion of build', + _('Confirm completion of build'), ] else: try: location = StockLocation.objects.get(id=loc_id) valid = True except StockLocation.DoesNotExist: - form.errors['location'] = ['Invalid location selected'] + form.errors['location'] = [_('Invalid location selected')] serials = [] @@ -306,7 +306,7 @@ class BuildComplete(AjaxUpdateView): def get_data(self): """ Provide feedback data back to the form """ return { - 'info': 'Build marked as COMPLETE' + 'info': _('Build marked as COMPLETE') } @@ -382,7 +382,7 @@ class BuildCreate(AjaxCreateView): model = Build context_object_name = 'build' form_class = forms.EditBuildForm - ajax_form_title = 'Start new Build' + ajax_form_title = _('Start new Build') ajax_template_name = 'modal_form.html' def get_initial(self): @@ -405,7 +405,7 @@ class BuildCreate(AjaxCreateView): def get_data(self): return { - 'success': 'Created new build', + 'success': _('Created new build'), } @@ -415,12 +415,12 @@ class BuildUpdate(AjaxUpdateView): model = Build form_class = forms.EditBuildForm context_object_name = 'build' - ajax_form_title = 'Edit Build Details' + ajax_form_title = _('Edit Build Details') ajax_template_name = 'modal_form.html' def get_data(self): return { - 'info': 'Edited build', + 'info': _('Edited build'), } @@ -429,7 +429,7 @@ class BuildDelete(AjaxDeleteView): model = Build ajax_template_name = 'build/delete_build.html' - ajax_form_title = 'Delete Build' + ajax_form_title = _('Delete Build') class BuildItemDelete(AjaxDeleteView): @@ -439,12 +439,12 @@ class BuildItemDelete(AjaxDeleteView): model = BuildItem ajax_template_name = 'build/delete_build_item.html' - ajax_form_title = 'Unallocate Stock' + ajax_form_title = _('Unallocate Stock') context_object_name = 'item' def get_data(self): return { - 'danger': 'Removed parts from build allocation' + 'danger': _('Removed parts from build allocation') } @@ -454,7 +454,7 @@ class BuildItemCreate(AjaxCreateView): model = BuildItem form_class = forms.EditBuildItemForm ajax_template_name = 'build/create_build_item.html' - ajax_form_title = 'Allocate new Part' + ajax_form_title = _('Allocate new Part') part = None available_stock = None @@ -570,11 +570,11 @@ class BuildItemEdit(AjaxUpdateView): model = BuildItem ajax_template_name = 'modal_form.html' form_class = forms.EditBuildItemForm - ajax_form_title = 'Edit Stock Allocation' + ajax_form_title = _('Edit Stock Allocation') def get_data(self): return { - 'info': 'Updated Build Item', + 'info': _('Updated Build Item'), } def get_form(self): diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index fc53b0aed0..482e34a335 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-10 11:09+0000\n" +"POT-Creation-Date: 2020-02-11 21:11+0000\n" "PO-Revision-Date: 2020-02-02 08:07+0100\n" "Last-Translator: Christian Schlüter \n" "Language-Team: C \n" @@ -105,7 +105,7 @@ msgstr "Zerstört" #: InvenTree/status_codes.py:92 build/templates/build/allocate_edit.html:28 #: build/templates/build/allocate_view.html:21 -#: part/templates/part/part_base.html:116 part/templates/part/tabs.html:21 +#: part/templates/part/part_base.html:106 part/templates/part/tabs.html:21 msgid "Allocated" msgstr "Zugeordnet" @@ -150,15 +150,15 @@ msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)" msgid "Confirm build completion" msgstr "Bau-Fertigstellung bestätigen" -#: build/models.py:53 +#: build/models.py:54 msgid "Brief description of the build" msgstr "Kurze Beschreibung des Baus" -#: build/models.py:62 +#: build/models.py:63 msgid "Select part to build" msgstr "Teil für den Bau wählen" -#: build/models.py:68 +#: build/models.py:69 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" @@ -166,46 +166,46 @@ msgstr "" "Lager-Entnahmestandort für diesen Bau wählen (oder leer lassen für einen " "beliebigen Lager-Standort)" -#: build/models.py:74 +#: build/models.py:75 msgid "Number of parts to build" msgstr "Anzahl der zu bauenden Teile" -#: build/models.py:80 +#: build/models.py:81 msgid "Build status" msgstr "Bau-Status" -#: build/models.py:83 +#: build/models.py:84 msgid "Batch code for this build output" msgstr "Chargennummer für diese Bau-Ausgabe" -#: build/models.py:95 +#: build/models.py:96 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: build/models.py:97 +#: build/models.py:98 msgid "Extra build notes" msgstr "Notizen für den Bau" -#: build/models.py:382 +#: build/models.py:383 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "Ausgewähltes Lagerobjekt nicht in BOM für Teil '{p}' gefunden" -#: build/models.py:385 +#: build/models.py:386 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" "zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:403 +#: build/models.py:404 msgid "Build to allocate parts" msgstr "Bau starten um Teile zuzuweisen" -#: build/models.py:410 +#: build/models.py:411 msgid "Stock Item to allocate to build" msgstr "Lagerobjekt dem Bau zuweisen" -#: build/models.py:418 +#: build/models.py:419 msgid "Stock quantity to allocate to build" msgstr "Lagerobjekt-Anzahl dem Bau zuweisen" @@ -261,10 +261,17 @@ msgid "Description" msgstr "Beschreibung" #: build/templates/build/allocate_view.html:22 -#: part/templates/part/part_base.html:122 +#: part/templates/part/part_base.html:112 msgid "On Order" msgstr "bestellt" +#: build/templates/build/delete_build_item.html:6 +#, fuzzy +#| msgid "Are you sure you want to delete the following Supplier Parts?" +msgid "Are you sure you want to unallocate these parts?" +msgstr "" +"Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" + #: build/templates/build/detail.html:8 msgid "Build Details" msgstr "Bau-Status" @@ -302,7 +309,7 @@ msgstr "Los" #: build/templates/build/detail.html:42 #: company/templates/company/detail_part.html:90 #: company/templates/company/partdetail.html:54 -#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91 +#: part/templates/part/detail.html:50 part/templates/part/part_base.html:81 #: stock/templates/stock/item_base.html:120 msgid "URL" msgstr "URL" @@ -359,11 +366,135 @@ msgstr "Notizen" msgid "Assign Parts" msgstr "Teile zuweisen" +#: build/templates/build/unallocate.html:8 +msgid "Are you sure you wish to unallocate all stock for this build?" +msgstr "" + +#: build/views.py:56 +#, fuzzy +#| msgid "Can Build" +msgid "Cancel Build" +msgstr "Herstellbar?" + +#: build/views.py:74 +#, fuzzy +#| msgid "Confirm order cancellation" +msgid "Confirm build cancellation" +msgstr "Bestell-Stornierung bestätigen" + +#: build/views.py:79 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:95 +#, fuzzy +#| msgid "Allocate Stock to Build" +msgid "Allocate Stock" +msgstr "Lagerbestand dem Bau zuweisen" + +#: build/views.py:108 +msgid "No matching build found" +msgstr "" + +#: build/views.py:127 +#, fuzzy +#| msgid "Confirm order cancellation" +msgid "Confirm stock allocation" +msgstr "Bestell-Stornierung bestätigen" + +#: build/views.py:128 +msgid "Check the confirmation box at the bottom of the list" +msgstr "" + +#: build/views.py:148 build/views.py:442 +#, fuzzy +#| msgid "Unallocate" +msgid "Unallocate Stock" +msgstr "Zuweisung aufheben" + +#: build/views.py:161 +msgid "Confirm unallocation of build stock" +msgstr "" + +#: build/views.py:162 +msgid "Check the confirmation box" +msgstr "" + +#: build/views.py:185 +#, fuzzy +#| msgid "Completed" +msgid "Complete Build" +msgstr "Fertig" + +#: build/views.py:258 +#, fuzzy +#| msgid "Confirm build completion" +msgid "Confirm completion of build" +msgstr "Bau-Fertigstellung bestätigen" + +#: build/views.py:265 +#, fuzzy +#| msgid "Invalid part selection" +msgid "Invalid location selected" +msgstr "Ungültige Teileauswahl" + #: build/views.py:290 stock/views.py:884 #, python-brace-format msgid "The following serial numbers already exist: ({sn})" msgstr "Die folgende Seriennummer existiert bereits: ({sn})" +#: build/views.py:309 +msgid "Build marked as COMPLETE" +msgstr "" + +#: build/views.py:385 +#, fuzzy +#| msgid "Can Build" +msgid "Start new Build" +msgstr "Herstellbar?" + +#: build/views.py:408 +#, fuzzy +#| msgid "Created new stock item" +msgid "Created new build" +msgstr "Neues Lagerobjekt erstellt" + +#: build/views.py:418 +#, fuzzy +#| msgid "Build Details" +msgid "Edit Build Details" +msgstr "Bau-Status" + +#: build/views.py:423 +msgid "Edited build" +msgstr "" + +#: build/views.py:432 +msgid "Delete Build" +msgstr "" + +#: build/views.py:447 +#, fuzzy +#| msgid "Receive parts to this location" +msgid "Removed parts from build allocation" +msgstr "Teile in diesen Ort empfangen" + +#: build/views.py:457 +#, fuzzy +#| msgid "Create new Stock Item" +msgid "Allocate new Part" +msgstr "Neues Lagerobjekt hinzufügen" + +#: build/views.py:573 +#, fuzzy +#| msgid "Edit Stock Location" +msgid "Edit Stock Allocation" +msgstr "Lagerobjekt-Standort bearbeiten" + +#: build/views.py:577 +msgid "Updated Build Item" +msgstr "" + #: common/models.py:69 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -706,7 +837,7 @@ msgstr "Link auf externe Seite" msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:159 order/models.py:210 part/views.py:1080 +#: order/models.py:159 order/models.py:210 part/views.py:1109 #: stock/models.py:440 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -825,224 +956,240 @@ msgstr "Zulieferer muss zum Teil und zur Bestellung passen" msgid "Invalid SupplierPart selection" msgstr "Ungültige Wahl des Zulieferer-Teils" -#: part/bom.py:107 +#: part/bom.py:134 #, python-brace-format msgid "Unsupported file format: {f}" msgstr "Nicht unterstütztes Dateiformat: {f}" -#: part/bom.py:112 +#: part/bom.py:139 msgid "Error reading BOM file (invalid data)" msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)" -#: part/bom.py:114 +#: part/bom.py:141 msgid "Error reading BOM file (incorrect row size)" msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)" -#: part/forms.py:37 +#: part/forms.py:37 stock/forms.py:91 +msgid "File Format" +msgstr "Dateiformat" + +#: part/forms.py:37 stock/forms.py:91 +msgid "Select output file format" +msgstr "Ausgabe-Dateiformat auswählen" + +#: part/forms.py:39 +msgid "Cascading" +msgstr "" + +#: part/forms.py:39 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: part/forms.py:58 msgid "Confirm that the BOM is correct" msgstr "Bestätigen, dass die Stückliste korrekt ist" -#: part/forms.py:49 +#: part/forms.py:70 msgid "Select BOM file to upload" msgstr "Stücklisten-Datei zum Upload auswählen" -#: part/forms.py:73 +#: part/forms.py:94 msgid "Select part category" msgstr "Teilekategorie wählen" -#: part/forms.py:81 +#: part/forms.py:102 msgid "Perform 'deep copy' which will duplicate all BOM data for this part" msgstr "" "Tiefe Kopie ausführen. Dies wird alle Daten der Stückliste für dieses Teil " "duplizieren" -#: part/forms.py:86 +#: part/forms.py:107 msgid "Confirm part creation" msgstr "Erstellen des Teils bestätigen" -#: part/forms.py:172 +#: part/forms.py:193 msgid "Input quantity for price calculation" msgstr "Eintragsmenge zur Preisberechnung" -#: part/forms.py:175 +#: part/forms.py:196 msgid "Select currency for price calculation" msgstr "Währung zur Preisberechnung wählen" -#: part/models.py:57 +#: part/models.py:58 msgid "Default location for parts in this category" msgstr "Standard-Standort für Teile dieser Kategorie" -#: part/models.py:60 +#: part/models.py:61 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:309 +#: part/models.py:322 msgid "Part must be unique for name, IPN and revision" msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein" -#: part/models.py:323 +#: part/models.py:336 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" -#: part/models.py:324 +#: part/models.py:337 msgid "Part cannot be a variant of another part if it is already a template" msgstr "" "Teil kann keine Variante eines anderen Teils sein wenn es bereits eine " "Vorlage ist" -#: part/models.py:328 part/templates/part/detail.html:17 +#: part/models.py:341 part/templates/part/detail.html:17 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:332 +#: part/models.py:345 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:341 +#: part/models.py:354 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:343 +#: part/models.py:356 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:345 +#: part/models.py:358 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:350 +#: part/models.py:363 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:352 +#: part/models.py:365 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:354 +#: part/models.py:367 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:356 +#: part/models.py:369 msgid "Link to extenal URL" msgstr "Link zu einer Externen URL" -#: part/models.py:362 +#: part/models.py:375 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:406 +#: part/models.py:419 msgid "Default supplier part" msgstr "Standard-Zulieferer?" -#: part/models.py:409 +#: part/models.py:422 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:411 +#: part/models.py:424 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:413 +#: part/models.py:426 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:415 +#: part/models.py:428 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bau von anderen genutzt werden?" -#: part/models.py:417 +#: part/models.py:430 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:419 +#: part/models.py:432 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:421 +#: part/models.py:434 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:423 +#: part/models.py:436 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:425 +#: part/models.py:438 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?" -#: part/models.py:427 +#: part/models.py:440 msgid "Part notes - supports Markdown formatting" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" -#: part/models.py:429 +#: part/models.py:442 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:936 +#: part/models.py:947 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: part/models.py:938 +#: part/models.py:949 msgid "File comment" msgstr "Datei-Kommentar" -#: part/models.py:993 +#: part/models.py:1004 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:998 +#: part/models.py:1009 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:1000 +#: part/models.py:1011 msgid "Parameter Units" msgstr "Parameter Einheit" -#: part/models.py:1026 +#: part/models.py:1037 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:1028 +#: part/models.py:1039 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:1030 +#: part/models.py:1041 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:1054 +#: part/models.py:1065 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:1062 +#: part/models.py:1073 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:1068 +#: part/models.py:1079 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:1071 +#: part/models.py:1082 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:1074 +#: part/models.py:1085 msgid "BOM item reference" msgstr "Referenz des Objekts auf der Stückliste" -#: part/models.py:1077 +#: part/models.py:1088 msgid "BOM item notes" msgstr "Notizen zum Stücklisten-Objekt" -#: part/models.py:1079 +#: part/models.py:1090 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1142 +#: part/models.py:1153 msgid "Part cannot be added to its own Bill of Materials" msgstr "Teil kann nicht zu seiner eigenen Stückliste hinzugefügt werden" -#: part/models.py:1149 +#: part/models.py:1160 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" @@ -1112,7 +1259,7 @@ msgstr "Teile (inklusive Unter-Kategorien)" msgid "Part Details" msgstr "Teile-Details" -#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85 +#: part/templates/part/detail.html:22 part/templates/part/part_base.html:75 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -1216,34 +1363,44 @@ msgstr "Teil-Bemerkungen" msgid "This part is not active" msgstr "Dieses Teil ist nicht aktiv" -#: part/templates/part/part_base.html:47 +#: part/templates/part/part_base.html:37 msgid "Star this part" msgstr "Teil favorisieren" -#: part/templates/part/part_base.html:53 +#: part/templates/part/part_base.html:43 msgid "Show pricing information" msgstr "Kosteninformationen ansehen" -#: part/templates/part/part_base.html:105 +#: part/templates/part/part_base.html:95 msgid "Available Stock" msgstr "Verfügbarer Lagerbestand" -#: part/templates/part/part_base.html:110 +#: part/templates/part/part_base.html:100 msgid "In Stock" msgstr "Auf Lager" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:121 msgid "Build Status" msgstr "Bau-Status" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:125 msgid "Can Build" msgstr "Herstellbar?" -#: part/templates/part/part_base.html:140 +#: part/templates/part/part_base.html:130 msgid "Underway" msgstr "unterwegs" +#: part/templates/part/part_thumb.html:16 +#, fuzzy +#| msgid "Select part" +msgid "Select from existing images" +msgstr "Teil auswählen" + +#: part/templates/part/part_thumb.html:17 +msgid "Upload new image" +msgstr "" + #: part/templates/part/tabs.html:9 msgid "Parameters" msgstr "Parameter" @@ -1277,195 +1434,189 @@ msgstr "Tracking" msgid "Attachments" msgstr "Anhänge" -#: part/views.py:77 +#: part/views.py:80 #, fuzzy #| msgid "Add Attachment" msgid "Added attachment" msgstr "Anhang hinzufügen" -#: part/views.py:119 +#: part/views.py:122 #, fuzzy #| msgid "Part Attachments" msgid "Part attachment updated" msgstr "Anhänge" -#: part/views.py:196 +#: part/views.py:199 #, python-brace-format msgid "Set category for {n} parts" msgstr "Kategorie für {n} Teile setzen" -#: part/views.py:306 +#: part/views.py:309 #, fuzzy #| msgid "Supplier part" msgid "Copied part" msgstr "Zulieferer-Teil" -#: part/views.py:414 +#: part/views.py:417 #, fuzzy #| msgid "Create new Stock Item" msgid "Create new part" msgstr "Neues Lagerobjekt hinzufügen" -#: part/views.py:419 +#: part/views.py:422 #, fuzzy #| msgid "Created new stock item" msgid "Created new part" msgstr "Neues Lagerobjekt erstellt" -#: part/views.py:609 +#: part/views.py:612 msgid "Upload Part Image" msgstr "" -#: part/views.py:614 +#: part/views.py:617 part/views.py:652 msgid "Updated part image" msgstr "" -#: part/views.py:623 +#: part/views.py:626 #, fuzzy #| msgid "Select part" msgid "Select Part Image" msgstr "Teil auswählen" -#: part/views.py:627 -#, fuzzy -#| msgid "Select part" -msgid "Selected part image" -msgstr "Teil auswählen" +#: part/views.py:655 +msgid "Part image not found" +msgstr "" -#: part/views.py:637 +#: part/views.py:666 #, fuzzy #| msgid "Edit notes" msgid "Edit Part Properties" msgstr "Bermerkungen bearbeiten" -#: part/views.py:659 +#: part/views.py:688 msgid "Validate BOM" msgstr "" -#: part/views.py:821 +#: part/views.py:850 msgid "No BOM file provided" msgstr "Keine Stückliste angegeben" -#: part/views.py:1082 +#: part/views.py:1111 msgid "Enter a valid quantity" msgstr "Bitte eine gültige Anzahl eingeben" -#: part/views.py:1106 part/views.py:1109 +#: part/views.py:1135 part/views.py:1138 msgid "Select valid part" msgstr "Bitte ein gültiges Teil auswählen" -#: part/views.py:1115 +#: part/views.py:1144 msgid "Duplicate part selected" msgstr "Teil doppelt ausgewählt" -#: part/views.py:1143 +#: part/views.py:1172 msgid "Select a part" msgstr "Teil auswählen" -#: part/views.py:1147 +#: part/views.py:1176 msgid "Specify quantity" msgstr "Anzahl angeben" -#: part/views.py:1324 +#: part/views.py:1356 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1396 #, fuzzy #| msgid "Confirm part creation" msgid "Confirm Part Deletion" msgstr "Erstellen des Teils bestätigen" -#: part/views.py:1331 +#: part/views.py:1403 msgid "Part was deleted" msgstr "" -#: part/views.py:1340 +#: part/views.py:1412 #, fuzzy #| msgid "Part packaging" msgid "Part Pricing" msgstr "Teile-Packaging" -#: part/views.py:1462 +#: part/views.py:1534 #, fuzzy #| msgid "Parameter Template" msgid "Create Part Parameter Template" msgstr "Parameter Vorlage" -#: part/views.py:1470 +#: part/views.py:1542 #, fuzzy #| msgid "Parameter Template" msgid "Edit Part Parameter Template" msgstr "Parameter Vorlage" -#: part/views.py:1477 +#: part/views.py:1549 #, fuzzy #| msgid "Parameter Template" msgid "Delete Part Parameter Template" msgstr "Parameter Vorlage" -#: part/views.py:1485 +#: part/views.py:1557 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1535 +#: part/views.py:1607 #, fuzzy #| msgid "Edit attachment" msgid "Edit Part Parameter" msgstr "Anhang bearbeiten" -#: part/views.py:1549 +#: part/views.py:1621 #, fuzzy #| msgid "Delete attachment" msgid "Delete Part Parameter" msgstr "Anhang löschen" -#: part/views.py:1565 +#: part/views.py:1637 #, fuzzy #| msgid "Part category" msgid "Edit Part Category" msgstr "Teile-Kategorie" -#: part/views.py:1600 +#: part/views.py:1672 #, fuzzy #| msgid "Select part category" msgid "Delete Part Category" msgstr "Teilekategorie wählen" -#: part/views.py:1606 +#: part/views.py:1678 #, fuzzy #| msgid "Part category" msgid "Part category was deleted" msgstr "Teile-Kategorie" -#: part/views.py:1614 +#: part/views.py:1686 #, fuzzy #| msgid "Select part category" msgid "Create new part category" msgstr "Teilekategorie wählen" -#: part/views.py:1665 +#: part/views.py:1737 #, fuzzy #| msgid "Created new stock item" msgid "Create BOM item" msgstr "Neues Lagerobjekt erstellt" -#: part/views.py:1731 +#: part/views.py:1803 #, fuzzy #| msgid "Edit Stock Item" msgid "Edit BOM item" msgstr "Lagerobjekt bearbeiten" -#: part/views.py:1779 +#: part/views.py:1851 #, fuzzy #| msgid "Confirm build completion" msgid "Confim BOM item deletion" msgstr "Bau-Fertigstellung bestätigen" -#: stock/forms.py:91 -msgid "File Format" -msgstr "Dateiformat" - -#: stock/forms.py:91 -msgid "Select output file format" -msgstr "Ausgabe-Dateiformat auswählen" - #: stock/forms.py:93 msgid "Include stock items in sub locations" msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 930ff589f8..e9fdbcdf75 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-10 11:09+0000\n" +"POT-Creation-Date: 2020-02-11 21:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -104,7 +104,7 @@ msgstr "" #: InvenTree/status_codes.py:92 build/templates/build/allocate_edit.html:28 #: build/templates/build/allocate_view.html:21 -#: part/templates/part/part_base.html:116 part/templates/part/tabs.html:21 +#: part/templates/part/part_base.html:106 part/templates/part/tabs.html:21 msgid "Allocated" msgstr "" @@ -149,59 +149,59 @@ msgstr "" msgid "Confirm build completion" msgstr "" -#: build/models.py:53 +#: build/models.py:54 msgid "Brief description of the build" msgstr "" -#: build/models.py:62 +#: build/models.py:63 msgid "Select part to build" msgstr "" -#: build/models.py:68 +#: build/models.py:69 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" msgstr "" -#: build/models.py:74 +#: build/models.py:75 msgid "Number of parts to build" msgstr "" -#: build/models.py:80 +#: build/models.py:81 msgid "Build status" msgstr "" -#: build/models.py:83 +#: build/models.py:84 msgid "Batch code for this build output" msgstr "" -#: build/models.py:95 +#: build/models.py:96 msgid "Link to external URL" msgstr "" -#: build/models.py:97 +#: build/models.py:98 msgid "Extra build notes" msgstr "" -#: build/models.py:382 +#: build/models.py:383 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" -#: build/models.py:385 +#: build/models.py:386 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:403 +#: build/models.py:404 msgid "Build to allocate parts" msgstr "" -#: build/models.py:410 +#: build/models.py:411 msgid "Stock Item to allocate to build" msgstr "" -#: build/models.py:418 +#: build/models.py:419 msgid "Stock quantity to allocate to build" msgstr "" @@ -257,10 +257,14 @@ msgid "Description" msgstr "" #: build/templates/build/allocate_view.html:22 -#: part/templates/part/part_base.html:122 +#: part/templates/part/part_base.html:112 msgid "On Order" msgstr "" +#: build/templates/build/delete_build_item.html:6 +msgid "Are you sure you want to unallocate these parts?" +msgstr "" + #: build/templates/build/detail.html:8 msgid "Build Details" msgstr "" @@ -298,7 +302,7 @@ msgstr "" #: build/templates/build/detail.html:42 #: company/templates/company/detail_part.html:90 #: company/templates/company/partdetail.html:54 -#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91 +#: part/templates/part/detail.html:50 part/templates/part/part_base.html:81 #: stock/templates/stock/item_base.html:120 msgid "URL" msgstr "" @@ -355,11 +359,107 @@ msgstr "" msgid "Assign Parts" msgstr "" +#: build/templates/build/unallocate.html:8 +msgid "Are you sure you wish to unallocate all stock for this build?" +msgstr "" + +#: build/views.py:56 +msgid "Cancel Build" +msgstr "" + +#: build/views.py:74 +msgid "Confirm build cancellation" +msgstr "" + +#: build/views.py:79 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:95 +msgid "Allocate Stock" +msgstr "" + +#: build/views.py:108 +msgid "No matching build found" +msgstr "" + +#: build/views.py:127 +msgid "Confirm stock allocation" +msgstr "" + +#: build/views.py:128 +msgid "Check the confirmation box at the bottom of the list" +msgstr "" + +#: build/views.py:148 build/views.py:442 +msgid "Unallocate Stock" +msgstr "" + +#: build/views.py:161 +msgid "Confirm unallocation of build stock" +msgstr "" + +#: build/views.py:162 +msgid "Check the confirmation box" +msgstr "" + +#: build/views.py:185 +msgid "Complete Build" +msgstr "" + +#: build/views.py:258 +msgid "Confirm completion of build" +msgstr "" + +#: build/views.py:265 +msgid "Invalid location selected" +msgstr "" + #: build/views.py:290 stock/views.py:884 #, python-brace-format msgid "The following serial numbers already exist: ({sn})" msgstr "" +#: build/views.py:309 +msgid "Build marked as COMPLETE" +msgstr "" + +#: build/views.py:385 +msgid "Start new Build" +msgstr "" + +#: build/views.py:408 +msgid "Created new build" +msgstr "" + +#: build/views.py:418 +msgid "Edit Build Details" +msgstr "" + +#: build/views.py:423 +msgid "Edited build" +msgstr "" + +#: build/views.py:432 +msgid "Delete Build" +msgstr "" + +#: build/views.py:447 +msgid "Removed parts from build allocation" +msgstr "" + +#: build/views.py:457 +msgid "Allocate new Part" +msgstr "" + +#: build/views.py:573 +msgid "Edit Stock Allocation" +msgstr "" + +#: build/views.py:577 +msgid "Updated Build Item" +msgstr "" + #: common/models.py:69 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -675,7 +775,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:159 order/models.py:210 part/views.py:1080 +#: order/models.py:159 order/models.py:210 part/views.py:1109 #: stock/models.py:440 msgid "Quantity must be greater than zero" msgstr "" @@ -794,220 +894,236 @@ msgstr "" msgid "Invalid SupplierPart selection" msgstr "" -#: part/bom.py:107 +#: part/bom.py:134 #, python-brace-format msgid "Unsupported file format: {f}" msgstr "" -#: part/bom.py:112 +#: part/bom.py:139 msgid "Error reading BOM file (invalid data)" msgstr "" -#: part/bom.py:114 +#: part/bom.py:141 msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:37 +#: part/forms.py:37 stock/forms.py:91 +msgid "File Format" +msgstr "" + +#: part/forms.py:37 stock/forms.py:91 +msgid "Select output file format" +msgstr "" + +#: part/forms.py:39 +msgid "Cascading" +msgstr "" + +#: part/forms.py:39 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: part/forms.py:58 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:49 +#: part/forms.py:70 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:73 +#: part/forms.py:94 msgid "Select part category" msgstr "" -#: part/forms.py:81 +#: part/forms.py:102 msgid "Perform 'deep copy' which will duplicate all BOM data for this part" msgstr "" -#: part/forms.py:86 +#: part/forms.py:107 msgid "Confirm part creation" msgstr "" -#: part/forms.py:172 +#: part/forms.py:193 msgid "Input quantity for price calculation" msgstr "" -#: part/forms.py:175 +#: part/forms.py:196 msgid "Select currency for price calculation" msgstr "" -#: part/models.py:57 +#: part/models.py:58 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:60 +#: part/models.py:61 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:309 +#: part/models.py:322 msgid "Part must be unique for name, IPN and revision" msgstr "" -#: part/models.py:323 +#: part/models.py:336 msgid "Part cannot be a template part if it is a variant of another part" msgstr "" -#: part/models.py:324 +#: part/models.py:337 msgid "Part cannot be a variant of another part if it is already a template" msgstr "" -#: part/models.py:328 part/templates/part/detail.html:17 +#: part/models.py:341 part/templates/part/detail.html:17 msgid "Part name" msgstr "" -#: part/models.py:332 +#: part/models.py:345 msgid "Is this part a template part?" msgstr "" -#: part/models.py:341 +#: part/models.py:354 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:343 +#: part/models.py:356 msgid "Part description" msgstr "" -#: part/models.py:345 +#: part/models.py:358 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:350 +#: part/models.py:363 msgid "Part category" msgstr "" -#: part/models.py:352 +#: part/models.py:365 msgid "Internal Part Number" msgstr "" -#: part/models.py:354 +#: part/models.py:367 msgid "Part revision or version number" msgstr "" -#: part/models.py:356 +#: part/models.py:369 msgid "Link to extenal URL" msgstr "" -#: part/models.py:362 +#: part/models.py:375 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:406 +#: part/models.py:419 msgid "Default supplier part" msgstr "" -#: part/models.py:409 +#: part/models.py:422 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:411 +#: part/models.py:424 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:413 +#: part/models.py:426 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:415 +#: part/models.py:428 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:417 +#: part/models.py:430 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:419 +#: part/models.py:432 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:421 +#: part/models.py:434 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:423 +#: part/models.py:436 msgid "Is this part active?" msgstr "" -#: part/models.py:425 +#: part/models.py:438 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:427 +#: part/models.py:440 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:429 +#: part/models.py:442 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:936 +#: part/models.py:947 msgid "Select file to attach" msgstr "" -#: part/models.py:938 +#: part/models.py:949 msgid "File comment" msgstr "" -#: part/models.py:993 +#: part/models.py:1004 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:998 +#: part/models.py:1009 msgid "Parameter Name" msgstr "" -#: part/models.py:1000 +#: part/models.py:1011 msgid "Parameter Units" msgstr "" -#: part/models.py:1026 +#: part/models.py:1037 msgid "Parent Part" msgstr "" -#: part/models.py:1028 +#: part/models.py:1039 msgid "Parameter Template" msgstr "" -#: part/models.py:1030 +#: part/models.py:1041 msgid "Parameter Value" msgstr "" -#: part/models.py:1054 +#: part/models.py:1065 msgid "Select parent part" msgstr "" -#: part/models.py:1062 +#: part/models.py:1073 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:1068 +#: part/models.py:1079 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:1071 +#: part/models.py:1082 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:1074 +#: part/models.py:1085 msgid "BOM item reference" msgstr "" -#: part/models.py:1077 +#: part/models.py:1088 msgid "BOM item notes" msgstr "" -#: part/models.py:1079 +#: part/models.py:1090 msgid "BOM line checksum" msgstr "" -#: part/models.py:1142 +#: part/models.py:1153 msgid "Part cannot be added to its own Bill of Materials" msgstr "" -#: part/models.py:1149 +#: part/models.py:1160 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" @@ -1077,7 +1193,7 @@ msgstr "" msgid "Part Details" msgstr "" -#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85 +#: part/templates/part/detail.html:22 part/templates/part/part_base.html:75 msgid "IPN" msgstr "" @@ -1181,34 +1297,42 @@ msgstr "" msgid "This part is not active" msgstr "" -#: part/templates/part/part_base.html:47 +#: part/templates/part/part_base.html:37 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:53 +#: part/templates/part/part_base.html:43 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:105 +#: part/templates/part/part_base.html:95 msgid "Available Stock" msgstr "" -#: part/templates/part/part_base.html:110 +#: part/templates/part/part_base.html:100 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:121 msgid "Build Status" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:125 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:140 +#: part/templates/part/part_base.html:130 msgid "Underway" msgstr "" +#: part/templates/part/part_thumb.html:16 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/part_thumb.html:17 +msgid "Upload new image" +msgstr "" + #: part/templates/part/tabs.html:9 msgid "Parameters" msgstr "" @@ -1242,151 +1366,147 @@ msgstr "" msgid "Attachments" msgstr "" -#: part/views.py:77 +#: part/views.py:80 msgid "Added attachment" msgstr "" -#: part/views.py:119 +#: part/views.py:122 msgid "Part attachment updated" msgstr "" -#: part/views.py:196 +#: part/views.py:199 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:306 +#: part/views.py:309 msgid "Copied part" msgstr "" -#: part/views.py:414 +#: part/views.py:417 msgid "Create new part" msgstr "" -#: part/views.py:419 +#: part/views.py:422 msgid "Created new part" msgstr "" -#: part/views.py:609 +#: part/views.py:612 msgid "Upload Part Image" msgstr "" -#: part/views.py:614 +#: part/views.py:617 part/views.py:652 msgid "Updated part image" msgstr "" -#: part/views.py:623 +#: part/views.py:626 msgid "Select Part Image" msgstr "" -#: part/views.py:627 -msgid "Selected part image" +#: part/views.py:655 +msgid "Part image not found" msgstr "" -#: part/views.py:637 +#: part/views.py:666 msgid "Edit Part Properties" msgstr "" -#: part/views.py:659 +#: part/views.py:688 msgid "Validate BOM" msgstr "" -#: part/views.py:821 +#: part/views.py:850 msgid "No BOM file provided" msgstr "" -#: part/views.py:1082 +#: part/views.py:1111 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1106 part/views.py:1109 +#: part/views.py:1135 part/views.py:1138 msgid "Select valid part" msgstr "" -#: part/views.py:1115 +#: part/views.py:1144 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1143 +#: part/views.py:1172 msgid "Select a part" msgstr "" -#: part/views.py:1147 +#: part/views.py:1176 msgid "Specify quantity" msgstr "" -#: part/views.py:1324 +#: part/views.py:1356 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1396 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1331 +#: part/views.py:1403 msgid "Part was deleted" msgstr "" -#: part/views.py:1340 +#: part/views.py:1412 msgid "Part Pricing" msgstr "" -#: part/views.py:1462 +#: part/views.py:1534 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1470 +#: part/views.py:1542 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1477 +#: part/views.py:1549 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1485 +#: part/views.py:1557 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1535 +#: part/views.py:1607 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:1549 +#: part/views.py:1621 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:1565 +#: part/views.py:1637 msgid "Edit Part Category" msgstr "" -#: part/views.py:1600 +#: part/views.py:1672 msgid "Delete Part Category" msgstr "" -#: part/views.py:1606 +#: part/views.py:1678 msgid "Part category was deleted" msgstr "" -#: part/views.py:1614 +#: part/views.py:1686 msgid "Create new part category" msgstr "" -#: part/views.py:1665 +#: part/views.py:1737 msgid "Create BOM item" msgstr "" -#: part/views.py:1731 +#: part/views.py:1803 msgid "Edit BOM item" msgstr "" -#: part/views.py:1779 +#: part/views.py:1851 msgid "Confim BOM item deletion" msgstr "" -#: stock/forms.py:91 -msgid "File Format" -msgstr "" - -#: stock/forms.py:91 -msgid "Select output file format" -msgstr "" - #: stock/forms.py:93 msgid "Include stock items in sub locations" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 930ff589f8..e9fdbcdf75 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-10 11:09+0000\n" +"POT-Creation-Date: 2020-02-11 21:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -104,7 +104,7 @@ msgstr "" #: InvenTree/status_codes.py:92 build/templates/build/allocate_edit.html:28 #: build/templates/build/allocate_view.html:21 -#: part/templates/part/part_base.html:116 part/templates/part/tabs.html:21 +#: part/templates/part/part_base.html:106 part/templates/part/tabs.html:21 msgid "Allocated" msgstr "" @@ -149,59 +149,59 @@ msgstr "" msgid "Confirm build completion" msgstr "" -#: build/models.py:53 +#: build/models.py:54 msgid "Brief description of the build" msgstr "" -#: build/models.py:62 +#: build/models.py:63 msgid "Select part to build" msgstr "" -#: build/models.py:68 +#: build/models.py:69 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" msgstr "" -#: build/models.py:74 +#: build/models.py:75 msgid "Number of parts to build" msgstr "" -#: build/models.py:80 +#: build/models.py:81 msgid "Build status" msgstr "" -#: build/models.py:83 +#: build/models.py:84 msgid "Batch code for this build output" msgstr "" -#: build/models.py:95 +#: build/models.py:96 msgid "Link to external URL" msgstr "" -#: build/models.py:97 +#: build/models.py:98 msgid "Extra build notes" msgstr "" -#: build/models.py:382 +#: build/models.py:383 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" -#: build/models.py:385 +#: build/models.py:386 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:403 +#: build/models.py:404 msgid "Build to allocate parts" msgstr "" -#: build/models.py:410 +#: build/models.py:411 msgid "Stock Item to allocate to build" msgstr "" -#: build/models.py:418 +#: build/models.py:419 msgid "Stock quantity to allocate to build" msgstr "" @@ -257,10 +257,14 @@ msgid "Description" msgstr "" #: build/templates/build/allocate_view.html:22 -#: part/templates/part/part_base.html:122 +#: part/templates/part/part_base.html:112 msgid "On Order" msgstr "" +#: build/templates/build/delete_build_item.html:6 +msgid "Are you sure you want to unallocate these parts?" +msgstr "" + #: build/templates/build/detail.html:8 msgid "Build Details" msgstr "" @@ -298,7 +302,7 @@ msgstr "" #: build/templates/build/detail.html:42 #: company/templates/company/detail_part.html:90 #: company/templates/company/partdetail.html:54 -#: part/templates/part/detail.html:50 part/templates/part/part_base.html:91 +#: part/templates/part/detail.html:50 part/templates/part/part_base.html:81 #: stock/templates/stock/item_base.html:120 msgid "URL" msgstr "" @@ -355,11 +359,107 @@ msgstr "" msgid "Assign Parts" msgstr "" +#: build/templates/build/unallocate.html:8 +msgid "Are you sure you wish to unallocate all stock for this build?" +msgstr "" + +#: build/views.py:56 +msgid "Cancel Build" +msgstr "" + +#: build/views.py:74 +msgid "Confirm build cancellation" +msgstr "" + +#: build/views.py:79 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:95 +msgid "Allocate Stock" +msgstr "" + +#: build/views.py:108 +msgid "No matching build found" +msgstr "" + +#: build/views.py:127 +msgid "Confirm stock allocation" +msgstr "" + +#: build/views.py:128 +msgid "Check the confirmation box at the bottom of the list" +msgstr "" + +#: build/views.py:148 build/views.py:442 +msgid "Unallocate Stock" +msgstr "" + +#: build/views.py:161 +msgid "Confirm unallocation of build stock" +msgstr "" + +#: build/views.py:162 +msgid "Check the confirmation box" +msgstr "" + +#: build/views.py:185 +msgid "Complete Build" +msgstr "" + +#: build/views.py:258 +msgid "Confirm completion of build" +msgstr "" + +#: build/views.py:265 +msgid "Invalid location selected" +msgstr "" + #: build/views.py:290 stock/views.py:884 #, python-brace-format msgid "The following serial numbers already exist: ({sn})" msgstr "" +#: build/views.py:309 +msgid "Build marked as COMPLETE" +msgstr "" + +#: build/views.py:385 +msgid "Start new Build" +msgstr "" + +#: build/views.py:408 +msgid "Created new build" +msgstr "" + +#: build/views.py:418 +msgid "Edit Build Details" +msgstr "" + +#: build/views.py:423 +msgid "Edited build" +msgstr "" + +#: build/views.py:432 +msgid "Delete Build" +msgstr "" + +#: build/views.py:447 +msgid "Removed parts from build allocation" +msgstr "" + +#: build/views.py:457 +msgid "Allocate new Part" +msgstr "" + +#: build/views.py:573 +msgid "Edit Stock Allocation" +msgstr "" + +#: build/views.py:577 +msgid "Updated Build Item" +msgstr "" + #: common/models.py:69 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -675,7 +775,7 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:159 order/models.py:210 part/views.py:1080 +#: order/models.py:159 order/models.py:210 part/views.py:1109 #: stock/models.py:440 msgid "Quantity must be greater than zero" msgstr "" @@ -794,220 +894,236 @@ msgstr "" msgid "Invalid SupplierPart selection" msgstr "" -#: part/bom.py:107 +#: part/bom.py:134 #, python-brace-format msgid "Unsupported file format: {f}" msgstr "" -#: part/bom.py:112 +#: part/bom.py:139 msgid "Error reading BOM file (invalid data)" msgstr "" -#: part/bom.py:114 +#: part/bom.py:141 msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:37 +#: part/forms.py:37 stock/forms.py:91 +msgid "File Format" +msgstr "" + +#: part/forms.py:37 stock/forms.py:91 +msgid "Select output file format" +msgstr "" + +#: part/forms.py:39 +msgid "Cascading" +msgstr "" + +#: part/forms.py:39 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: part/forms.py:58 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:49 +#: part/forms.py:70 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:73 +#: part/forms.py:94 msgid "Select part category" msgstr "" -#: part/forms.py:81 +#: part/forms.py:102 msgid "Perform 'deep copy' which will duplicate all BOM data for this part" msgstr "" -#: part/forms.py:86 +#: part/forms.py:107 msgid "Confirm part creation" msgstr "" -#: part/forms.py:172 +#: part/forms.py:193 msgid "Input quantity for price calculation" msgstr "" -#: part/forms.py:175 +#: part/forms.py:196 msgid "Select currency for price calculation" msgstr "" -#: part/models.py:57 +#: part/models.py:58 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:60 +#: part/models.py:61 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:309 +#: part/models.py:322 msgid "Part must be unique for name, IPN and revision" msgstr "" -#: part/models.py:323 +#: part/models.py:336 msgid "Part cannot be a template part if it is a variant of another part" msgstr "" -#: part/models.py:324 +#: part/models.py:337 msgid "Part cannot be a variant of another part if it is already a template" msgstr "" -#: part/models.py:328 part/templates/part/detail.html:17 +#: part/models.py:341 part/templates/part/detail.html:17 msgid "Part name" msgstr "" -#: part/models.py:332 +#: part/models.py:345 msgid "Is this part a template part?" msgstr "" -#: part/models.py:341 +#: part/models.py:354 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:343 +#: part/models.py:356 msgid "Part description" msgstr "" -#: part/models.py:345 +#: part/models.py:358 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:350 +#: part/models.py:363 msgid "Part category" msgstr "" -#: part/models.py:352 +#: part/models.py:365 msgid "Internal Part Number" msgstr "" -#: part/models.py:354 +#: part/models.py:367 msgid "Part revision or version number" msgstr "" -#: part/models.py:356 +#: part/models.py:369 msgid "Link to extenal URL" msgstr "" -#: part/models.py:362 +#: part/models.py:375 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:406 +#: part/models.py:419 msgid "Default supplier part" msgstr "" -#: part/models.py:409 +#: part/models.py:422 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:411 +#: part/models.py:424 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:413 +#: part/models.py:426 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:415 +#: part/models.py:428 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:417 +#: part/models.py:430 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:419 +#: part/models.py:432 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:421 +#: part/models.py:434 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:423 +#: part/models.py:436 msgid "Is this part active?" msgstr "" -#: part/models.py:425 +#: part/models.py:438 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:427 +#: part/models.py:440 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:429 +#: part/models.py:442 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:936 +#: part/models.py:947 msgid "Select file to attach" msgstr "" -#: part/models.py:938 +#: part/models.py:949 msgid "File comment" msgstr "" -#: part/models.py:993 +#: part/models.py:1004 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:998 +#: part/models.py:1009 msgid "Parameter Name" msgstr "" -#: part/models.py:1000 +#: part/models.py:1011 msgid "Parameter Units" msgstr "" -#: part/models.py:1026 +#: part/models.py:1037 msgid "Parent Part" msgstr "" -#: part/models.py:1028 +#: part/models.py:1039 msgid "Parameter Template" msgstr "" -#: part/models.py:1030 +#: part/models.py:1041 msgid "Parameter Value" msgstr "" -#: part/models.py:1054 +#: part/models.py:1065 msgid "Select parent part" msgstr "" -#: part/models.py:1062 +#: part/models.py:1073 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:1068 +#: part/models.py:1079 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:1071 +#: part/models.py:1082 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:1074 +#: part/models.py:1085 msgid "BOM item reference" msgstr "" -#: part/models.py:1077 +#: part/models.py:1088 msgid "BOM item notes" msgstr "" -#: part/models.py:1079 +#: part/models.py:1090 msgid "BOM line checksum" msgstr "" -#: part/models.py:1142 +#: part/models.py:1153 msgid "Part cannot be added to its own Bill of Materials" msgstr "" -#: part/models.py:1149 +#: part/models.py:1160 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" @@ -1077,7 +1193,7 @@ msgstr "" msgid "Part Details" msgstr "" -#: part/templates/part/detail.html:22 part/templates/part/part_base.html:85 +#: part/templates/part/detail.html:22 part/templates/part/part_base.html:75 msgid "IPN" msgstr "" @@ -1181,34 +1297,42 @@ msgstr "" msgid "This part is not active" msgstr "" -#: part/templates/part/part_base.html:47 +#: part/templates/part/part_base.html:37 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:53 +#: part/templates/part/part_base.html:43 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:105 +#: part/templates/part/part_base.html:95 msgid "Available Stock" msgstr "" -#: part/templates/part/part_base.html:110 +#: part/templates/part/part_base.html:100 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:131 +#: part/templates/part/part_base.html:121 msgid "Build Status" msgstr "" -#: part/templates/part/part_base.html:135 +#: part/templates/part/part_base.html:125 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:140 +#: part/templates/part/part_base.html:130 msgid "Underway" msgstr "" +#: part/templates/part/part_thumb.html:16 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/part_thumb.html:17 +msgid "Upload new image" +msgstr "" + #: part/templates/part/tabs.html:9 msgid "Parameters" msgstr "" @@ -1242,151 +1366,147 @@ msgstr "" msgid "Attachments" msgstr "" -#: part/views.py:77 +#: part/views.py:80 msgid "Added attachment" msgstr "" -#: part/views.py:119 +#: part/views.py:122 msgid "Part attachment updated" msgstr "" -#: part/views.py:196 +#: part/views.py:199 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:306 +#: part/views.py:309 msgid "Copied part" msgstr "" -#: part/views.py:414 +#: part/views.py:417 msgid "Create new part" msgstr "" -#: part/views.py:419 +#: part/views.py:422 msgid "Created new part" msgstr "" -#: part/views.py:609 +#: part/views.py:612 msgid "Upload Part Image" msgstr "" -#: part/views.py:614 +#: part/views.py:617 part/views.py:652 msgid "Updated part image" msgstr "" -#: part/views.py:623 +#: part/views.py:626 msgid "Select Part Image" msgstr "" -#: part/views.py:627 -msgid "Selected part image" +#: part/views.py:655 +msgid "Part image not found" msgstr "" -#: part/views.py:637 +#: part/views.py:666 msgid "Edit Part Properties" msgstr "" -#: part/views.py:659 +#: part/views.py:688 msgid "Validate BOM" msgstr "" -#: part/views.py:821 +#: part/views.py:850 msgid "No BOM file provided" msgstr "" -#: part/views.py:1082 +#: part/views.py:1111 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1106 part/views.py:1109 +#: part/views.py:1135 part/views.py:1138 msgid "Select valid part" msgstr "" -#: part/views.py:1115 +#: part/views.py:1144 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1143 +#: part/views.py:1172 msgid "Select a part" msgstr "" -#: part/views.py:1147 +#: part/views.py:1176 msgid "Specify quantity" msgstr "" -#: part/views.py:1324 +#: part/views.py:1356 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1396 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1331 +#: part/views.py:1403 msgid "Part was deleted" msgstr "" -#: part/views.py:1340 +#: part/views.py:1412 msgid "Part Pricing" msgstr "" -#: part/views.py:1462 +#: part/views.py:1534 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1470 +#: part/views.py:1542 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1477 +#: part/views.py:1549 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1485 +#: part/views.py:1557 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1535 +#: part/views.py:1607 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:1549 +#: part/views.py:1621 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:1565 +#: part/views.py:1637 msgid "Edit Part Category" msgstr "" -#: part/views.py:1600 +#: part/views.py:1672 msgid "Delete Part Category" msgstr "" -#: part/views.py:1606 +#: part/views.py:1678 msgid "Part category was deleted" msgstr "" -#: part/views.py:1614 +#: part/views.py:1686 msgid "Create new part category" msgstr "" -#: part/views.py:1665 +#: part/views.py:1737 msgid "Create BOM item" msgstr "" -#: part/views.py:1731 +#: part/views.py:1803 msgid "Edit BOM item" msgstr "" -#: part/views.py:1779 +#: part/views.py:1851 msgid "Confim BOM item deletion" msgstr "" -#: stock/forms.py:91 -msgid "File Format" -msgstr "" - -#: stock/forms.py:91 -msgid "Select output file format" -msgstr "" - #: stock/forms.py:93 msgid "Include stock items in sub locations" msgstr ""